diff options
Diffstat (limited to 'Master/texmf-dist/doc/latex/axodraw2/axodraw2-man.tex')
-rw-r--r-- | Master/texmf-dist/doc/latex/axodraw2/axodraw2-man.tex | 364 |
1 files changed, 202 insertions, 162 deletions
diff --git a/Master/texmf-dist/doc/latex/axodraw2/axodraw2-man.tex b/Master/texmf-dist/doc/latex/axodraw2/axodraw2-man.tex index 03569ef2a77..346ac8cd97c 100644 --- a/Master/texmf-dist/doc/latex/axodraw2/axodraw2-man.tex +++ b/Master/texmf-dist/doc/latex/axodraw2/axodraw2-man.tex @@ -10,7 +10,7 @@ % How to typeset filenames and program names: Use \file and \program % to allow stylistic changes. -% Basic definition of \file would bes \def\file#1{\texttt{#1}}, but +% Basic definition of \file would be \def\file#1{\texttt{#1}}, but % that would not allow line breaks in long names. So define it by % \DeclareUrlCommand from url package. (We can't use \url itself, % because that provokes hyperref into making a hyperlink.) @@ -34,6 +34,9 @@ } +\hyphenation{Jaxo-Draw} + + \begin{document} %% ?? To get settings useful to test compatibility of axodraw2 with @@ -57,7 +60,7 @@ Nikhef 2015-025 \vspace{20mm} \begin{center} -{\LARGE\bf\sc Axodraw Version 2} +{\LARGE\bf\sc Manual for Axodraw Version 2} \end{center} \vspace{5mm} \begin{center} @@ -73,13 +76,15 @@ University Park, Pennsylvania 16802, USA} \\ Science Park 105, 1098 XG Amsterdam, The Netherlands} \\ \texttt{t68 at nikhef dot nl} \\ \vspace{1.0cm} -(3 June 2016) +(31 January 2018) \end{center} \vspace{5mm} \begin{abstract} -We present version two of the \LaTeX{} graphical style file Axodraw. -It has a number of new drawing primitives and many extra options, and +This is the reference manual for version two of the \LaTeX{} graphical +style file Axodraw. +Relative to version one, +it has a number of new drawing primitives and many extra options, and it can now work with \program{pdflatex} to directly produce output in PDF file format (but with the aid of an auxiliary program). \end{abstract} @@ -97,38 +102,36 @@ output in PDF file format (but with the aid of an auxiliary program). \label{sec:intro} This is the documentation for axodraw2, a \LaTeX{} package for drawing -Feynman graphs (and other simple graphics). This version is a +Feynman graphs (and other simple graphics). This is version 2 and a substantial update of the original axodraw package \cite{axodraw1}, -which was released -in 1994, and which has become rather popular in the preparation of articles in -elementary-particle physics. One of its advantages is that its -drawing primitives are included in the .tex document, in a -human-writable form. (This also allows convenient production of -axodraw figures by other software, e.g., Jaxodraw -\cite{jaxodraw1,jaxodraw2}.) -This is in distinction to methods that -use a separate program to create graphics files that are read in -during the processing of the \LaTeX{} file. The objects needed in -Feynman graphs are often difficult to draw at high quality with -conventional computer graphics software. +which was released in 1994, and which has become rather popular in the +preparation of articles in elementary-particle physics. One of its +advantages is that its drawing primitives are included in the +\file{.tex} document, in a human-writable form. (This also allows +convenient production of axodraw figures by other software, e.g., +Jaxodraw \cite{jaxodraw1,jaxodraw2}.) This is in distinction to +methods that use a separate program to create graphics files that are +read in during the processing of the \LaTeX{} file. The objects +needed in Feynman graphs are often difficult to draw at high quality +with conventional computer graphics software. The original axodraw package has hardly been modified since its introduction. The new version addresses several later needs. A detailed list of the changes is given in Sec.\ \ref{sec:changes}. One change arises from the fact that \TeX{} (and hence \LaTeX{}) -themselves do not possess sufficiently useful methods of drawing +itself does not possess sufficiently useful methods of drawing complicated graphics, so that the drawing of the graphics is actually -done inserting suitable code in the final output file (postscript or -pdf). The original axodraw worked only with the -\program{latex}-\program{dvips} processing chain to put the diagrams in -the final postscript file.\footnote{A pdf file can be produced from - the postscript file by a program like \program{ps2pdf}.} Now we also -have in common use the \program{pdflatex} (and \program{lualatex} and -\program{xelatex}) programs that directly produce pdf. The new version -of axodraw works with \program{pdflatex}, \program{lualatex}, and -\program{xelatex}, as well as with the \program{latex}-\program{dvips} -method. +done by inserting suitable code in the final output file (postscript +or pdf). The original axodraw worked only with the +\program{latex}-\program{dvips} processing chain to put the diagrams +in the final postscript file.\footnote{A pdf file can be produced from + the postscript file by a program like \program{ps2pdf}.} Now we +also have in common use the \program{pdflatex} (and \program{lualatex} +and \program{xelatex}) programs that directly produce pdf. The new +version of axodraw works with \program{pdflatex}, \program{lualatex}, +and \program{xelatex}, as well as with the +\program{latex}-\program{dvips} method. Furthermore, more kinds of graphical object and greater flexibility in their properties have been found useful for Feynman graphs. The new @@ -144,14 +147,14 @@ colors, with much better compatibility with modern packages used to set colors in the normal \LaTeX{} part of a document. Since some of the changes (especially in the internal coding) -introduce potential incompatibilities with the original version of -axodraw, the new version of the style file is given a new name -\file{axodraw2.sty}. Then the many legacy documents (e.g., on +introduce incompatibilities (Sec.\ \ref{sec:compat}) with the original +version of axodraw, the new version of the style file is given a new +name \file{axodraw2.sty}. Then the many legacy documents (e.g., on \url{http://arxiv.org}) that use the old axodraw will continue to use the old version, and will therefore continue to be compilable without -any need for any possible changes in the source document, and with unchanged -output. Even so, as regards the coding of diagrams, there are very -few backwardly incompatible changes in axodraw2. +any need for any possible changes in the source document, and with +unchanged output. Even so, as regards the coding of diagrams, there +are very few backwardly incompatible changes in axodraw2. The software is available under the GNU General Public License \cite{GPL} version 3. @@ -179,11 +182,11 @@ axodraw2, has the following main changes: \item Axodraw2 works both when pdf output is produced directly using the programs \program{pdflatex}, \program{lualatex}, and \program{xelatex}, as well as when a postscript file is produced by - the latex--dvips method. The old version only worked when - postscript output was produced. However, an auxiliary program is - needed when using \program{pdflatex}, \program{lualatex}, or - \program{xelatex}. See Sec.\ \ref{sec:doc.compile} for how this is - done. + the \program{latex}--\program{dvips} method. The old version only + worked when postscript output was produced. However, an auxiliary + program is needed when using \program{pdflatex}, \program{lualatex}, + or \program{xelatex}. See Sec.\ \ref{sec:doc.compile} for how this + is done. \item In the original axodraw, a diagram is coded inside a \verb+picture+ environment of \LaTeX. Now, a specialized @@ -202,9 +205,9 @@ axodraw2, has the following main changes: \item Substantial improvements have been made in the treatment of color. When named colors are used, axodraw2's use of color is generally compatible with that of the modern, \LaTeX-standard - \file{color.sty} package. It also provides all the macros that were - defined in v.\ 1 of axodraw, including those of the \file{colordvi.sty} - package used by v.\ 1. + \file{color.sty} package. It also provides all the color-setting + macros that were defined in v.\ 1 of axodraw, including those of the + \file{colordvi.sty} package used by v.\ 1. \item The various types of line can now be produced as double lines, e.g., @@ -245,7 +248,7 @@ axodraw2, has the following main changes: \item Since there are now many more possibilities to specify the properties of a line, optional arguments to the main line drawing - commands can be used to specify them in a keyword style. + commands can be used to specify properties in a keyword style. \item A new macro named \verb+\Arc+ is introduced. With the aid of optional arguments, this unifies the behavior of various arc-drawing @@ -256,7 +259,7 @@ axodraw2, has the following main changes: macro retained as a synonym. \item The behavior of arcs is changed to what we think is more natural - behavior when the specified opening is outside the natural range. + behavior when the specified opening angle is outside the natural range. \item What we call macros for drawing objects with postscript text are now implemented within \LaTeX{} instead of relying on instructions @@ -273,19 +276,19 @@ axodraw2, has the following main changes: \item The macros originally specified as \verb+\B2Text+, \verb+\G2Text+, and \verb+\C2Text+ are now named \verb+\BTwoText+, - \verb+\GTwoText+, and \verb+\CTwoText+. The intent of the - original code was to define macros with names \verb+\B2Text+, etc. - However in normal \TeX, macro names of more than one character - must only contain letters, unlike typical programming languages - that also allow digits. So the rules for \TeX{} macro names mean - that in defining, for example \verb+\def\B2Text(#1,#2)#3#4{...}+, - the original version of axodraw actually defined a macro named - named \verb+\B+, obligatorially followed by \verb+2Text+. This - caused a conflict if the user wished to define a macro \verb+\B+. - If it is desired to retain the old behavior, then the following - should be placed in the preamble of the .tex file, then the - axodraw2 package should be invoked in the source document with the - \texttt{v1compatible} option: + \verb+\GTwoText+, and \verb+\CTwoText+. The intent of the original + code was to define macros with names \verb+\B2Text+, etc. However + in \TeX, under normal circumstances, macro names of more than one + character must only contain letters, unlike typical programming + languages that also allow digits. So the rules for \TeX{} macro + names mean that in defining, for example + \verb+\def\B2Text(#1,#2)#3#4{...}+, the original version of axodraw + actually defined a macro named named \verb+\B+, obligatorially + followed by \verb+2Text+. This caused a conflict if the user wished + to define a macro \verb+\B+. If it is desired to retain the old + behavior, then the following should be placed in the preamble of the + \file{.tex} file, then the axodraw2 package should be invoked in the + source document with the \texttt{v1compatible} option: \begin{verbatim} \usepackage[v1compatible]{axodraw2} \end{verbatim} @@ -295,28 +298,29 @@ axodraw2, has the following main changes: \subsection{Changes relative to axodraw4j distributed with JaxoDraw} \label{sec:changes.wrt.4j} -The JaxoDraw program \cite{jaxodraw2} is distributed with a -version of axodraw called axodraw4j. As of July 2014, this was -effectively a predecessor of axodraw2, but without the possibility of -working with \program{pdflatex}. (The suffix ``4j'' is intended to mean ``for -JaxoDraw''.) +The JaxoDraw program \cite{jaxodraw2} is distributed with a version of +axodraw called axodraw4j. At the time of writing (July 2016), this +was effectively a predecessor of axodraw2, but without the possibility +of working with \program{pdflatex}. (The suffix ``4j'' is intended to +mean ``for JaxoDraw''.) The changes in axodraw2 relative to the version of axodraw4j dated -2008/11/19 are the following subset of those listed in Sec.\ +2011/03/22 are the following subset of those listed in Sec.\ \ref{sec:changes.wrt.1}: \begin{itemize} -\item Correction of the oval-drawing bug. \item The ability to work with \program{pdflatex}, \program{lualatex}, and \program{xelatex}. -\item The improvements in the handling of color. +\item The improvements in the handling of color and fonts. \item The double and arrow options for B\'ezier lines. \item The dash option for gluons and photons. \item Color option for all lines. \item Correction of inconsistency of length unit between \TeX{} and postscript. \item Better drawing of double gluons and photons. -\item The gluon circle, polygon, rotated box, \verb+\ECirc+, - \verb+\EBoxc+, and the \verb+\AxoGrid+ macros +\item Addition of the macros for making gluon circles, polygons, and rotated + boxes. +\item Addition of the macros + \verb+\ECirc+, \verb+\EBoxc+, and \verb+\AxoGrid+. \item A series of ``LongArrow'' macros for drawing lines with the arrow at the end. The same effect could only be achieved in axodraw4j with arrowpos=1 option to the basic line-drawing @@ -335,18 +339,22 @@ The changes in axodraw2 relative to the version of axodraw4j dated %--------------- \subsection{Backward compatibility, etc} +\label{sec:compat} The official user interface of axodraw2 is backward-compatible with versions 1 and 4j, with the exception of the issue mentioned above -about the commands that have the signatures \verb+\B2Text+, -\verb+\G2Text+, and \verb+\C2Text+. There are some minor changes in -the objects that are drawn, mostly concerning the exact dimensions of -default arrows and the scaling of the sizes of text objects. The -scoping of color changes is significantly different, but improved. +about the commands that had the signatures \verb+\B2Text+, +\verb+\G2Text+, and \verb+\C2Text+ in the old version. + +As to behavior, there are some minor changes in the objects that are +drawn, mostly concerning the exact dimensions of default arrows. The +scaling of the sizes of text objects is changed. The scoping of color +changes is substantially changed, but improved. The old axodraw only used the tools available in \LaTeX{} in the early -1990s. The new version needs a more modern installation. It has been -extensively tested with TeXLive 2011 and 2016. +1990s. The new version needs a more modern installation. +Installations for which axodraw2 has been tested include TeXLive 2011 +and 2016. We have tested backwards compatibility by compiling the version 1 manual with axodraw2; only a trivially modified preamble was needed. @@ -355,19 +363,29 @@ which has a large number of JaxoDraw figures (processed automatically to pieces of axodraw code imported into the document); only changes in the preamble were needed. -Axodraw2 uses the following \LaTeX{} packages: \program{keyval}, -\program{ifthen}, \program{graphicx}, \program{color}, \program{ifxetex}. -It defines its own set of 73 named colors --- Sec.\ \ref{sec:colors} ---- which are the same as the 68 defined as dvips-defined names in the -color package, plus 5 more. - -In addition axodraw2 provides an \verb+axopicture+ environment -inside of which axodraw2's graphics are coded and drawn. In the old -axodraw, \LaTeX's \verb+picture+ environment was used instead. We -recommend the use of \verb+axopicture+ environment in axodraw2, and -that is the only method we document. However, old diagrams coded with +In addition, axodraw2 provides an \verb+axopicture+ environment inside +of which axodraw2's graphics are coded and drawn. In the old axodraw, +\LaTeX's \verb+picture+ environment was used instead. In axodraw2, we +recommend only the use of \verb+axopicture+ environment, and that is +the only method we document. However, old diagrams coded with \verb+picture+ environment continue to work. +Some possible compatibility issues could arise because the old and new +versions load a different set of external packages. The old version +loaded the packages \file{epsf.sty} and \file{colordvi.sty}, and so +macros defined by these packages were available. The new version does +not load these now essentially-obsolete packages; so they should be +loaded from the document if they happen to be needed. But the new +version does define some macros for setting colors that correspond to +those in \file{colordvi.sty}; these are defined using facilities from +the standard \LaTeX{} \file{color.sty} package. Axodraw2 loads the +following \LaTeX{} packages: \program{keyval}, \program{ifthen}, +\program{graphicx}, \program{color}, \program{ifxetex}. It defines +its own set of 73 named colors which are the 68 dvips-defined names +(as coded in \file{colordvi.sty} and used in axodraw v.\ 1), plus 5 +more. + + %========================= \section{Installation} @@ -376,31 +394,47 @@ that is the only method we document. However, old diagrams coded with %--------------- \subsection{Installation from standard \TeX{} distribution} -At the moment that this document was written, axodraw2 was not part of any -standard \TeX{} distribution. +At the moment that this document was updated (January 2018), axodraw2 +was part of both the main \TeX{} distributions, TeXLive and MiKTeX. +The easiest way to install axodraw2 is therefore from the package +manager of your \TeX{} distribution. (There is one complication +concerning the \program{axohelp} program --- see below.) + +You can also obtain axodraw2 from CTAN at +\url{http://ctan.org/pkg/axodraw2}, and install it manually, following +the instructions in Sec.\ \ref{sec:manual.install} below. -It is on CTAN at \url{http://ctan.org/tex-archive/graphics/axodraw2}, -so that it should eventually be part of the standard distributions -(TeXLive and MiKTeX). After that, axodraw2 will either be installed -by default or can be installed by using the package manager of the -\TeX{} distribution. When available, this will be the easiest method -of installation. +\paragraph{\program{axohelp} in TeXLive} +In TeXLive 2017, a binary executable for the \program{axohelp} was not +provided, even though the rest of the axodraw2 package was provided. +Thus you could use axodraw2 with the \program{latex} but not with +\program{pdflatex} unless you compiled and installed the program +\program{axohelp} yourself following the instructions below. This is +planned to be changed in TeXLive 2018, when \program{axohelp} should +be provided as part of the distribution when the package axodraw2 is +installed from the package manager. + +\paragraph{\program{axohelp} in MiKTeX} +The axodraw2 package including an executable \program{axohelp.exe} was +provided by MiKTeX when this was checked in January 2018. %--------------- \subsection{Manual installation} +\label{sec:manual.install} %For a manual installation, the minimum that needs to be done is to put -For a manual installation, what needs to be done is to put -the file \file{axodraw2.sty} in a place where it will be found by -the \program{latex} program. If you wish to use axodraw2 with -\program{pdflatex}, you will also need to compile the \program{axohelp} -program and put it in an appropriate directory. Documentation can -also be installed if you want. +For a manual installation, what needs to be done is to put the file +\file{axodraw2.sty} in a place where it will be found by the +\program{latex} program. If you wish to use axodraw2 with +\program{pdflatex}, you will also need to compile the +\program{axohelp} program --- see Sec.\ \ref{sec:axohelp} --- and put +it in an appropriate directory. Documentation can also be installed +if you want. %-- -\subsubsection{Style file texttt{axodraw2.sty}} +\subsubsection{Style file \protect\file{axodraw2.sty}} If you merely want to try out axodraw2, just put the file \file{axodraw2.sty} in the same directory as the \file{.tex} @@ -415,11 +449,18 @@ as is usual, under the directory \file{/usr/local/texlive}. Then an appropriate place for axodraw2 is in a directory \file{/usr/local/texlive/texmf-local/tex/latex/axodraw2}. You will need to run the \program{texhash} program in this last case. For such -a system-wide installation, you will probably have to do these +a system-wide installation, you may have to do these operations as an administrative user (e.g., root), possibly supplemented by running the relevant commands with the \program{sudo} program. +But note that if you later install the axodraw2 package from the +package manager of you \TeX{} distribution, it's a good idea to delete +the files you installed manually. Otherwise when you use axodraw2 in +a document, then the wrong version of \file{axodraw2.sty} may get +used. This is a particularly important issue after possible future +updates to axodraw2 get installed by the package manager. + %-- \subsubsection{Helper program \program{axohelp}} \label{sec:axohelp} @@ -444,7 +485,8 @@ instead of \program{cc}. For Microsoft Windows, if you do not have a C compiler available, you can use the Windows binary \file{axohelp.exe} we have provided. It -should work with Windows 7 or higher. +was compiled on Windows 10, and should work with at least that version +of Windows. In any case once you have the executable (named \program{axohelp} on unix-like systems, or \program{axohelp.exe} on a Microsoft system), put @@ -556,8 +598,8 @@ use a large enough magnification, or to use an actual print out. \emph{Note about sending a document to others}: If for example, you submit an article to arXiv.org, it is likely that their automated -system for processing the file will not run axohelp. So together with -the tex file, you one should also submit the .ax2 file. +system for processing the file will not run \program{axohelp}. So together with +the tex file, you one should also submit the \file{.ax2} file. %----------------------- @@ -693,10 +735,8 @@ auxiliary program, \program{axohelp}, as in pdflatex example \end{verbatim} What happens is that during a run of \program{pdflatex}, axodraw2 -%writes a file \file{example.ax1} with specifications of its writes a file \file{example.ax1} containing specifications of its graphical objects. Then running \program{axohelp} reads the -%\file{example.ax1} file, computes the necessary pdf code to draw the \file{example.ax1} file, computes the necessary pdf code to draw the objects, and writes the results to \file{example.ax2}. The next run of \program{pdflatex} reads \file{example.ax2} and uses it to put the @@ -5006,95 +5046,95 @@ axodraw2. \appendix -\section{The axohelp program: Information for developers} +\section{The \program{axohelp} program: Information for developers} \label{sec:axohelp.devel} -This appendix provides some details on how the axohelp program works. +This appendix provides some details on how the \program{axohelp} program works. Most of the information is only relevant to people who wish to modify -or extend axodraw2 and therefore may need to modify axohelp as well. +or extend axodraw2 and therefore may need to modify \program{axohelp} as well. -The reason for axohelp's existence is that axodraw needs to perform +The reason for \program{axohelp}'s existence is that axodraw needs to perform substantial geometric calculations. When axodraw is used with pdflatex to produce pdf output directly, suitable calculational facilities are not available, neither within the PDF language nor within \LaTeX{} itself. Therefore when axodraw is used under -pdflatex, we use our program axohelp to perform the calculations. +pdflatex, we use our program \program{axohelp} to perform the calculations. -The mode of operation is as follows. Let us assume that the .tex file -being compiled by the pdflatex program is called paper.tex. When one -issues the command +The mode of operation is as follows. Let us assume that the +\file{.tex} file being compiled by the \program{pdflatex} program is +called \file{paper.tex}. When one issues the command \begin{verbatim} pdflatex paper \end{verbatim} the reaction of the system is of course to translate all \TeX{} related objects into a PDF file. Most (but not all) axodraw objects -need non-trivial calculations and hence their -specifications are placed inside a file called paper.ax1. At the end -of the processing \program{pdflatex} will place a message on the screen -that mentions that the user should run the command +need non-trivial calculations and hence their specifications are +placed inside a file called \file{paper.ax1}. At the end of the +processing \program{pdflatex} will place a message on the screen that +mentions that the user should run the command \begin{verbatim} axohelp paper \end{verbatim} for the processing of this graphical information. In principle it is -possible to arrange for axohelp to be invoked automatically from +possible to arrange for \program{axohelp} to be invoked automatically from within pdflatex. But for this to be done, the running of general external commands from pdflatex would have to be enabled. That is a security risk, and is therefore normally disabled by default for pdflatex. -When run, axohelp reads the file paper.ax1, processes the contents, -and produces a file paper.ax2. For each axodraw object, it contains -both the code to be placed in the pdf file, and a copy of the -corresponding specification that was in paper.ax1. - -When pdflatex is run again, it sees that the file paper.ax2 is present -and reads it in to give essentially an array of objects, one for each -processed axodraw object. Then during the processing of the document, -whenever axodraw runs into an axodraw object in need of external -calculation, it determines whether an exactly corresponding -specification was present in the file paper.ax2. If not, it means that -the graphical information in the file paper.tex has changed since the -last run of axohelp and the graphics information is invalidated. In -that case, at the end of the program the message to run axohelp will -be printed again. But if instead there is an exact match between an -axodraw object in the current paper.tex and its specification in -paper.ax2, then the corresponding pdf code will be placed in the PDF -file. If all axodraw commands have a proper match in the paper.ax2 -file, there will be no message in the paper.log file and on the screen -about rerunning axohelp; then the PDF file should contain the correct -information for drawing the axodraw objects (at least if there are no -\TeX{} errors). - -In a sense the situation with axohelp is no different from the use of +When run, \program{axohelp} reads the file \file{paper.ax1}, processes the +contents, and produces a file \file{paper.ax2}. For each axodraw +object, it contains both the code to be placed in the pdf file, and a +copy of the corresponding specification that was in \file{paper.ax1}. + +When pdflatex is run again, it sees that the file \file{paper.ax2} is +present and reads it in to give essentially an array of objects, one +for each processed axodraw object. Then during the processing of the +document, whenever axodraw runs into an axodraw object in need of +external calculation, it determines whether an exactly corresponding +specification was present in the file \file{paper.ax2}. If not, it +means that the graphical information in the file \file{paper.tex} has +changed since the last run of \program{axohelp} and the graphics information is +invalidated. In that case, at the end of the program the message to +run \program{axohelp} will be printed again. But if instead there is an exact +match between an axodraw object in the current \file{paper.tex} and +its specification in \file{paper.ax2}, then the corresponding pdf code +will be placed in the PDF file. If all axodraw commands have a proper +match in the \file{paper.ax2} file, there will be no message in the +paper.log file and on the screen about rerunning \program{axohelp}; then the PDF +file should contain the correct information for drawing the axodraw +objects (at least if there are no \TeX{} errors). + +In a sense the situation with \program{axohelp} is no different from the use of makeindex when one prepares a document that contains an index. In that case one also has to run \LaTeX{} once to prepare a file for the makeindex program, then run this program which prepares another file and finally run \LaTeX{} again. Note that if you submit a paper to arXiv.org, it is likely that their automated system for processing the -file will not run axohelp. So together with paper.tex, you one should -also submit the .ax2 file. +file will not run \program{axohelp}. So together with \file{paper.tex}, you one +should also submit the \file{.ax2} file. -The complete source of the axohelp program can be found in the file -axohelp.c. This file contains a bit less than 4000 lines of C code but -should translate -without problems with any C compiler --- see Sec.\ \ref{sec:axohelp} -for an appropriate command line on typical Unix-like systems. +The complete source of the \program{axohelp} program can be found in the file +\file{axohelp.c}. This file contains a bit less than 4000 lines of C +code but should translate without problems with any C compiler --- see +Sec.\ \ref{sec:axohelp} for an appropriate command line on typical +Unix-like systems. -The axohelp program functions as follows: +The \program{axohelp} program functions as follows: \begin{enumerate} -\item The .ax1 file is located, space is allocated for it and the complete -file is read and closed again. +\item The \file{.ax1} file is located, space is allocated for it and + the complete file is read and closed again. \item The input is analysed and split in individual object specifications, of which a list is made. \item The list of object specifications is processed one by one. Before the processing of each object specification, the system is brought to a default state to avoid that there is a memory of the previous object. -\item In the .ax2 file, for each object is written both the +\item In the \file{.ax2} file, for each object is written both the corresponding pdf code and a copy of the specification of the object - as was earlier read from the .ax1 file. Before the output for an - object is written to the .ax2 file it is optimized a bit to avoid - superfluous spaces and linefeeds. + as was earlier read from the \file{.ax1} file. Before the output + for an object is written to the \file{.ax2} file it is optimized a + bit to avoid superfluous spaces and linefeeds. \end{enumerate} Processing an object from the input involves finding the proper routine for @@ -5109,7 +5149,7 @@ Finally the array is optimized and written to file. A user who would like to extend the system with new objects should take the above structure into account. There is an array that gives the correspondence between axodraw object names and the corresponding -routine in axohelp. For each object, this array also gives the number +routine in \program{axohelp}. For each object, this array also gives the number of parameters and whether the stroking or non-stroking color space should be used. @@ -5121,11 +5161,11 @@ section named ``PDF utilities''. This is important from the viewpoint of future action. When new graphical languages will be introduced and it will be needed to modify axodraw2 such that it can produce code for those languages, it should be much easier if code in the supporting -axohelp program needs to be changed in as few places as possible. +\program{axohelp} program needs to be changed in as few places as possible. They form a set of graphics primitives used by other subroutines. Some of these subroutines in the ``PDF utilities'' section of -axohelp.c have names similar to operators in the postscript language -that perform the same function. +\file{axohelp.c} have names similar to operators in the postscript +language that perform the same function. %--#] Appendix : %>>#[ bibliography : |