12 Meta-ALLPROSE

ToDo 4 This section contains private notes for another extension of ALLPROSE.

ALLPROSE allows to hyperlink types and functions within one library project. Unfortunately if the underlying libraries become bigger and bigger there is a need to link also to the documentation of the underlying libraries in a similar way as it is done within the library’s own documentation. If the underlying library is also produced using ALLPROSE, it might have been written by another person and using different LATEX packages.

Furthermore, some projects might need to extend one domain several times or simply need to split the project into more digestible parts.

Still, it would be desirable to maintain the inverse search feature.

Meta-ALLPROSE is intended to provide a solution to that problem.

The basic idea is that several projects that are written with ALLPROSE are put into subdirectories of a certain directory, say metaallprose. The directory metaallprose would contain a few files that do the appropriate hyperlinking.

So all the sources would lie in a directory structure similar to the following.

metaallprose/  
metaallprose/project1/  
metaallprose/project2/  
metaallprose/project3/  
...

  1. It should be possible to figure out the dependencies among the projects automatically.
  2. A script similar to tools/aldortypedef.pl.nw should generated for each project the list of types that are defined and used in that project.
  3. This information could be used in order to correctly generate links to the definitions of the types in the various projects.

I have already experimented with two file.

%% calix/calix.tex  
\documentclass{article}  
\usepackage{allprose}  
\newcommand{\ext}{.html}  
\begin{document}  
\author{Ralf Hemmecke}  
\title{The \xCalix{} Project\\{\small Version \LIBRARYVERSION}}  
\maketitle  
\hypertarget{sec:Contents}{}\tableofcontents  
 
abc\hyperref{../calixx/calixx\ext}{CATEGORY}{NAME}{LINK-TO CALIXx}  
 
\newpage  
def\hyperdef{category}{name}calix-text  
 
vloff  
\newpage  
ghi  
\end{document}

%% calixx/calixx.tex  
\documentclass{article}  
\usepackage{allprose}  
\newcommand{\ext}{.html}  
\begin{document}  
\author{Ralf Hemmecke}  
\title{The \xCalix{} Project\\{\small Version \LIBRARYVERSION}}  
\maketitle  
\hypertarget{sec:Contents}{}\tableofcontents  
 
ABC\hyperref{../calix/calix\ext#category.name}{}{}{link-to calix}  
 
ABC1\hyperref{calixx.dvi#A.B}{}{}{A+B}  
 
ABC2\hyperref{calixx.html}{A}{B}{A+B}  
 
ABC3\hyperref{calixx.html#A.B}{}{}{A+B}  
 
\newpage  
DEF\hyperdef{CATEGORY}{NAME}CALIXX-TEXT  
\newpage  
GHI  
ABC\hyperdef{A}{B}{A-B}  
 
\end{document}

If adtype and adname are defined appropriately by an appropriate hyperref, then the hyperlinks should be possible in .dvi, .pdf, and .html format.