diff options
author | Karl Berry <karl@freefriends.org> | 2006-07-08 00:45:13 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2006-07-08 00:45:13 +0000 |
commit | d3b974a90a027f4e3109e15c5412d8f83085c284 (patch) | |
tree | 56b6cf3b21ebb2884ae3a039887b184e080dc783 /Master/texmf-dist/source/latex/semantic | |
parent | c595c45087165b3b8ae636cfe06fed1e8585e51d (diff) |
semantic update needed from 2002, from kaja
git-svn-id: svn://tug.org/texlive/trunk@1783 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/semantic')
-rw-r--r-- | Master/texmf-dist/source/latex/semantic/semantic.dtx | 903 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/semantic/semantic.ins | 24 |
2 files changed, 476 insertions, 451 deletions
diff --git a/Master/texmf-dist/source/latex/semantic/semantic.dtx b/Master/texmf-dist/source/latex/semantic/semantic.dtx index 28bd2c47a0c..fb5aab64536 100644 --- a/Master/texmf-dist/source/latex/semantic/semantic.dtx +++ b/Master/texmf-dist/source/latex/semantic/semantic.dtx @@ -1,19 +1,32 @@ +% \RCS$Revision: 1.11 $ +% \RCS$Date: 2003/10/28 13:45:57 $ +% %\iffalse metacomment -% (c)1995--2002 Peter Møller Neergaard and Arne John Glenstrup -% This files must be distributed, installed and used freely. You especially -% welcome to get inspiration (if possible) from the source code. +% +%% +%% semantic.dtx (c)1995--2002 Peter Møller Neergaard and +%% Arne John Glenstrup +%% +% +% This program may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.2 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.2 or later is part of all distributions of LaTeX +% version 1999/12/01 or later. +% +% This program consists of the files semantic.dtx and semantic.ins % -% Install by running tex with "semantic.ins". +% This file is the source code containing the package. +% +% You install the package by running tex on semantic.ins, i.e., % -% To get the documentation run latex twice on this file and then print the -% file semantic.dvi. +% tex semantic.ins % -% This file is distributed in the hope that it will be useful, -% but WITHOUT ANY WARRANTY; without even the implied warranty of -% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. %\fi % \DeleteShortVerb{\|} -% \CheckSum{1909} +% \CheckSum{1918} % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z @@ -90,10 +103,9 @@ % % \MakeShortVerb{\"} % -% \GetInfo{semantic.sty} % \title{The \semantic\ package\thanks -% {This file has version \fileversion\ and is dated -% \filedate.}\thanks{Michael John Downes of AMS provided a patch to +% {This file has version \semanticVersionPrint\ and is dated +% \semanticDate. It is CVS revision \RCSRevision, dated \RCSDate.}\thanks{Michael John Downes of AMS provided a patch to % make the \semantic compatible with \texttt{amsmath} v.2.01.}} % \author{Peter M{\o}ller Neergaard^^A % \thanks{\texttt{turtle}@\texttt{turtle@linearity.org}, @@ -108,7 +120,7 @@ % languages using \LaTeX. The package provides commands that % facilitates the use of the notation of semantics and compilation % in your documents. It provides an easy way to define new -% ligatures, \eg making "=>" a short hand for "\RightArrow". It +% ligatures, \eg making "=>" a short hand for \cmd{\RightArrow}. It % fascilitates the drawing of inference rules and allows you to draw % T-diagrams in the "picture" environment. It supports writing % extracts of computer languages in a uniform way. It comes with a @@ -132,7 +144,7 @@ % % \noindent \semantic\ is a \LaTeXe\ package facilitating the writing % of notation of programming languages and compilation. To use it, the -% file \texttt{semantic.sty} should be placed so that \LaTeX\ can find +% file "semantic.sty" should be placed so that \LaTeX\ can find % it. % % The \semantic\ package consists of several parts, which can be used @@ -152,7 +164,7 @@ % % In the following we describe the use of the various parts of % \semantic and the installation. We also give a short introduction to the -% two files \texttt{semantic.dtx} and \texttt{semantic.ins}. +% two files "semantic.dtx" and "semantic.ins". % % This package is---like most other computer-programs---provided with % several bugs, insuffiencies and inconsistencies. They should be regarded @@ -186,13 +198,13 @@ % % In the first case you just include % \begin{code} -% "\usepackage{semantic}" +% \cmd{\usepackage}\marg{semantic} % \end{code} % in your document preamble. % % In the other case you include % \begin{code} -% "\usepackage["\meta{parts}"]{semantic}" +% \cmd{usepackage}\oarg{parts}\marg{semantic} % \end{code} % in your document preamble. \meta{parts} is a comma % separated list of the parts you wants to include. The possibilities @@ -205,7 +217,7 @@ % % \DescribeMacro{\mathlig} When the package is loaded, you can define new % ligatures for use in the math environments by using the -% "\mathlig{"\meta{character sequence}"}{"\meta{ligature commands}"}" +% \cmd{\mathlig}\marg{character sequence}\marg{ligature commands} % command. \meta{character sequence} is a sequence of % \DeleteShortVerb{\"}\DeleteShortVerb{\|}^^A % characters\footnote{There are some restrictions on the characters you can @@ -225,9 +237,9 @@ % % \DescribeMacro{\mathligson}\DescribeMacro{\mathligsoff} By default, math % ligatures are in effect when the \package{mathligs} package is loaded, -% but this can be turned off and on by using the commands "\mathligsoff" and -% "\mathligson". Thus, typing `"$-><-$" "\mathligsoff" "$-><-$" -% "\mathligson" "$-><-$"' +% but this can be turned off and on by using the commands \cmd{\mathligsoff} and +% \cmd{\mathligson}. Thus, typing `"$-><-$" \cmd{\mathligsoff} "$-><-$" +% \cmd{\mathligson} "$-><-$"' % will produce $\rightarrow\leftarrow$ $-{}>{}<{}-$ $\rightarrow\leftarrow$. % % \subsection{Protecting Fragile Math Commands} @@ -236,7 +248,7 @@ % \DescribeMacro{\mathligprotect} Unfortunately, some macros used in math % mode will break when using % \package{mathligs}, so they need to be turned into protected macros with the -% declaration "\mathligprotect{"\meta{macro}"}". \emph{NOTE:} This +% declaration \cmd{\mathligprotect}\marg{macro}. \emph{NOTE:} This % declaration only needs to be issued once, best in the preamble. % % @@ -261,23 +273,23 @@ % {p,\mathrm{M} ->* p'',\mathrm{M''}} \;\;\;\; % \inference[$->*_2$]{}{p,\mathrm{M} ->* p,\mathrm{M}} % \] -% are easily set using "\inference" and "\inference*". The syntax is +% are easily set using \cmd{\inference} and \cmd{\inference*}. The syntax is % \begin{code} -% "\inference["\meta{name}"]{"\meta{line$_1$}" \\ "\lttdots" \\ "\meta{line$_n$}"}{"\meta{conclusion}"}" +% \cmd{\inference}\oarg{name}"{"\meta{line$_1$}" \\ \cmd{\lttdots} \\ "\meta{line$_n$}"}"\marg{conclusion} % \end{code} % and % \begin{code} -% "\inference*["\meta{name}"]{"\meta{line$_1$}" \\ "\lttdots" \\ "\meta{line$_n$}"}{"\meta{conclusion}"}" +% \cmd{\inference}"*"\oarg{name}"{"\meta{line$_1$}" \\ \cmd{\lttdots} \\ "\meta{line$_n$}"}"\marg{conclusion} % \end{code} % where $n \geq 0$ so that you can also type axioms. When using -% "\inference" the bar will be as wide as the conclusion and the premise, -% whichever is widest; while "\inference*" only will make the +% \cmd{\inference} the bar will be as wide as the conclusion and the premise, +% whichever is widest; while \cmd{\inference*} only will make the % bar as wide as the conclusion (It(2) above). The % optional names are typeset on the side of the inferences that they appear. % % Each line consists of premises seperated by "&": % \begin{code} -% \meta{premise$_1$}"&"\lttdots"&"\meta{premise$_m$} +% \meta{premise$_1$}"&\cmd{\lttdots}&"\meta{premise$_m$} % \end{code} % Note that $m$ can also be zero, which is used when typing axioms. Each % premise and the conclusion are by default set in math mode (\see however @@ -337,13 +349,13 @@ % \makeatother^^A % }^^A % The lengths are changed using the three commands -% "\setnamespace{"\meta{length}"}", "\setpremisesend{"\meta{length}"}" og -% "\setpremisesspace{"\meta{length}"}". \meta{length} can be given in both +% \cmd{\setnamespace}\marg{length}, \cmd{\setpremisesend}\marg{length} and +% \cmd{\setpremisesspace}\marg{length}. \meta{length} can be given in both % absolute units like "pt" and "cm" and in relative units like "em" and "ex". % The default values are: 1$\frac{1}{2}$"em" for "premisesspace", % $\frac{3}{4}$"em" for "premisesend" and $\frac{1}{2}$"em" for "namespace". % Note that the lengths \emph{cannot} be altered using the ordinary -% \LaTeX-commands "\setlength" and "\addtolength". +% \LaTeX-commands \cmd{\setlength} and \cmd{\addtolength}. % % Besides that, the appearance of inference rules is like fractions in math: % Among other things the premises will \emph{normally} be at same height @@ -384,7 +396,7 @@ % \parmark % \DescribeMacro{\predicate} % To set up a single predicate (a premise or conclusion) the single-argument -% command "\predicate" is used. This allows a finer control of the +% command \cmd{\predicate} is used. This allows a finer control of the % formatting. As an example, all premises and conclusions can be set in % mathematics mode by the command: % \begin{code} @@ -392,15 +404,15 @@ % \end{code} % % \parmark -% \semantic\ uses "\predicate" on a premise only when the premise does not -% contain a nested "\inference".\footnote{What \semantic\ precisely does is -% to append the tokens \CSname{inference} \CSname{end} to the code of a +% \semantic\ uses \cmd{\predicate} on a premise only when the premise does not +% contain a nested \cmd{\inference}.\footnote{What \semantic\ precisely does is +% to append the tokens \cs{inference} \cs{end} to the code of a % premise, when it has isolated it. \semantic\ then uses \TeX's pattern % matching to search this new list of tokens for an appearance of the token -% \CSname{inference}. When this is found the following token is examened, -% and if it is \CSname{end}, \semantic\ concludes that the premise does not +% \cs{inference}. When this is found the following token is examened, +% and if it is \cs{end}, \semantic\ concludes that the premise does not % contain a nested inference rule} So even if the declaration above has been -% given, "\inference" is \emph{never} be executed in math mode. Neither is +% given, \cmd{\inference} is \emph{never} be executed in math mode. Neither is % it used on the premises if you write: % \begin{code} % "\inference{\inference"\lttdots"}{"\lttdots"}" @@ -410,14 +422,14 @@ % \DescribeMacro{\predicatebegin} % \DescribeMacro{\predicateend} % \label{ref:changePredicateBegin} -% The default definition of "\predicate" is "\predicatebegin #1\predicateend", -% where "\predicatebegin" and "\predicateend" are defined to `"$"'. In this +% The default definition of \cmd{\predicate} is "\predicatebegin #1\predicateend", +% where \cmd{\predicatebegin} and \cmd{\predicateend} are defined to `"$"'. In this % way the premises and conlusions are set in math % % \parmark -% The motivation for introducing "\predicatebegin" and "\predicateend" +% The motivation for introducing \cmd{\predicatebegin} and \cmd{\predicateend} % was, however, to use \TeX's pattern matching on macro arguments to do even -% more sophisticated formatting by redefining "\predicatebegin". +% more sophisticated formatting by redefining \cmd{\predicatebegin}. % \label{pattern matching} % If for example, \emph{every} \textsl{expression} is to be evaluated in an % \textsl{environment} giving a \textsl{value}, and you would like to set @@ -462,10 +474,10 @@ % \end{center} % These commands should only be used in a "picture" environement and are % \begin{code} -% "\program{"\meta{program}","\meta{implementation language}"}" \\ -% "\interpreter{"\meta{source}","\meta{implemenation language}"}" \\ -% "\compiler{"\meta{source}","\meta{machine}","\meta{target}"}" \\ -% "\machine{"\meta{machine}"}" +% \cmd{\program}"{"\meta{program}","\meta{implementation language}"}" \\ +% \cmd{\interpreter}"{"\meta{source}","\meta{implemenation language}"}" \\ +% \cmd{\compiler}"{"\meta{source}","\meta{machine}","\meta{target}"}" \\ +% \cmd{\machine}\marg{machine} % \end{code} % The arguments can be a either a string describing the language (please do % not begin the string with a macro name), or one of the four commands. @@ -484,7 +496,7 @@ % When you are use a command as an argument \semantic, will copy the % language from the nested command and automaticly place the two figures in % proportion to each other. In this way, big T- diagrams can easily be -% drawn. The hole construction should be placed using af "\put" command, +% drawn. The hole construction should be placed using af \cmd{\put} command, % where the \emph{reference point} is the center of the bottom of the figure % corresponding to the outermost command. An example (with the % reference point marked by @@ -505,12 +517,12 @@ % " \put(110,0){\program{P,\compiler{C,\machine{M},\program{P,M}}}}" \\ % "\end{picture}" % \end{code} -% Note from the second example that when "\compiler" is used as +% Note from the second example that when \cmd{\compiler} is used as % ``implementation language''-argument it is by convention attributed to the % right of the figure. It is also worth mentioning that there is no strict % demand on which command you should choose as the outermost, \emph{ie} the % second example could also be written (with a change of the parameters of -% "\put" due to the new reference point) as +% \cmd{\put} due to the new reference point) as % \begin{code} % "\put(160,-20){\compiler{\program{P,C},\machine{M},\program{P,M}}}" % \end{code} @@ -540,7 +552,7 @@ % % For calculating the dimensions of the "picture"-environment, one needs the % dimensions of the individual figures. In units of -% "\unitlength" they are the following: +% \cmd{\unitlength} they are the following: % % \ifmulticols % \begin{multicols}{2} @@ -572,13 +584,13 @@ % The \semantic\ package supports this by allowing you to reserve a certain % \emph{style} for certain language constructs. The fundamental command is % \begin{code} -% "\reservestyle{"\CSname{\meta{stylename}}"}{"\meta{formatting}"}" +% \cmd{\reservestyle}\marg{\cs{stylename}}\marg{formatting} % \end{code} -% "reservestyle" reserves \CSname{\meta{stylename}} as the macro to define +% \cmd{\reservestyle} reserves \cs{\meta{stylename}} as the macro to define % the language constructs. The language constructs will be set using % \meta{formatting}. % -% The reserved macro \CSname{\meta{stylename}} should be given a comma +% The reserved macro \cs{\meta{stylename}} should be given a comma % separated list of words to reserve. For instance to reserve the words % $\<let>$ and $\<in>$ as % commands, which all are set using a bold font, you can put @@ -607,7 +619,7 @@ % \DescribeMacro{\set\protect\meta{style}} % If you only want to type a reserved word a single time, it can seem tedious % first to reserve the word and then refer to it once using "\<"$\cdots$">". -% Instead you can use the command "\set"\meta{style} that is defined for each +% Instead you can use the command \cs{set\meta{style}} that is defined for each % style you reserve. % % \subsection{Bells and Whistles: Spacing in Math Mode} @@ -619,8 +631,8 @@ % However, this soon becomes tedious and \semantic have several ways to try to % work around this. % -% The first option is to provide "\reservestyle" with an optional spacing -% command, \eg "\mathinner". For instance +% The first option is to provide \cmd{\reservestyle} with an optional spacing +% command, \eg \cmd{\mathinner}. For instance % \begin{code} % "\reservestyle[\mathinner]{\command}{\mathbf}" % \end{code} @@ -635,7 +647,7 @@ % will make $\<in>$ use the spacing of the relational symbols. The space % command is applied to all the words in the reservation. Thus if you would % like $\<in>$ and $\<let>$ to have different space commands, you must -% specify them in two different "\command". +% specify them in two different \cmd{\command}. % % The drawback of using the math spacing is that in the rare cases where you % use the reserved words in super- or subscripts, most of the spacing will @@ -645,7 +657,7 @@ % \begin{code} % "\command{let[let\;], in[\;in\;]}" % \end{code} -% The formatting of "\command" (with the setting above: "\mathbf") will still +% The formatting of \cmd{\command} (with the setting above: \cmd{\mathbf}) will still % be used so it is only necessary to provide the replacement text. Note % that each word in the reservation can have its own optional replacement % text. @@ -705,14 +717,14 @@ % % \DescribeMacro{\eval} % \DescribeMacro{\comp} -% To support writing denotational, semantics the commands "\comp" and "\eval" +% To support writing denotational, semantics the commands \cmd{\comp} and \cmd{\eval} % are provided to describe the evaluation of programs respectively % expressions. They have the same syntax: -% "\comp{"\meta{command}"}{"\meta{environment}"}", which yields +% \cmd{\comp}\marg{command}\marg{environment}, which yields % \comp{\meta{command}}{\meta{environment}}. If you need to describe more % than one kind of evaluations, e.g.\ both \evalsymbol\ and \evalsymbol[*], -% you can provide an optional argument immediately after "\comp" or -% "\eval", respectively. As an example a denotational rule for a +% you can provide an optional argument immediately after \cmd{\comp} or +% \cmd{\eval}, respectively. As an example a denotational rule for a % sequencing two commands % \[ % \comp{C1 ; C2}{d} = \mathtt{d'} \quad \texttt{if $\comp{C1}{d} = \mathtt{d''}$ and $\comp{C2}{d''} = \mathtt{d'}$} @@ -729,14 +741,13 @@ % \DescribeMacro{\evalsymbol} % \DescribeMacro{\compsymbol} % As shown above, you can get the evaluation symbol in itself. This is done by -% "\compsymbol" or "\evalsymbol", respectively. These commands can also be +% \cmd{\compsymbol} or \cmd{\evalsymbol}, respectively. These commands can also be % supplied with an optional argument, e.g.\ "\evalsymbol[*]" to get % \evalsymbol[*]. % % \DescribeMacro{\exe} The result of executing a program on a machine -% with som data can be described using "\exe", which has the syntax -% "\exe{"\meta{program}"}["\meta{machine}"]{"\meta{data}"}", where -% \meta{machine} is optional. The third Futumara projection +% with som data can be described using \cmd{\exe}, which has the syntax +% \cmd{\exe}\marg{program}\oarg{machine}\marg{data}. The third Futumara projection % $\mathtt{cogen} = \exe{spec}{spec.spec}$ can be written % "$\mathtt{cogen} = \exe{spec}{spec.spec}$". As an alternative, you % can also give the machine \texttt{L} explicit: @@ -754,7 +765,7 @@ % documentation of the code. "semantic.ins" is used only to guide % \package{docstrip} in generating "semantic.sty" from "semantic.dtx". % -% {\makeatletter To get \@bblb\ and \@bbrb, used in "\comp", "\eval" and "\exe" +% {\makeatletter To get \@bblb\ and \@bbrb, used in \cmd{\comp}, \cmd{\eval} and \cmd{\exe} % \semantic, tries to load the package \package{bbold} written by % \textsc{A. Jeffrey}. If this is not installed on your system, the symbols % are simulated by drawing together two sharps. However, we recommend @@ -764,43 +775,23 @@ % In addition to the users guide, you can also get the fully documented code. % You need this, however, if you want to see how the macros are implemented % the macros or if you want to change some part of the package. You should -% start by editing "semantic.dtx", change the two lines (near line~3320) -% \begin{code} -% "\OnlyDescription % Make to a comment to get the documentation"\\ -% "\DisableCrossrefs % Remove comment if the index is ready or if"\\ -% \end{code} -% into a comment, and remove "%" from the begining of the next two lines: -% \begin{code} -% "%\CodelineIndex % Make a index of the command usage"\\ -% "%\RecordChanges % Make the changes history" -% \end{code} -% Then you should run \LaTeX\ twice on the edited file to get a correct table -% of contents. Then you generate the index and change history, using -% "makeindex": +% start by editing "semantic.dtx" and remove the percentage signs from the +% four lines starting at Line~\ref{lin:AlsoImplementation} +% \begin{verbatim} +% % \AlsoImplementation +% % \EnableCrossrefs +% % \CodelineIndex +% % \RecordChanges +% \end{verbatim} +% After saving the changes, you should run \LaTeX\ twice on the edited +% file to get a correct table of contents. Then you generate the index +% and change history, using "makeindex": % \begin{code} % "makeindex -s gind.ist semantic" \\ % "makeindex -s gglo.ist -o semantic.gls semantic.glo" % \end{code} % After another run of \LaTeX, then the documentation is ready for printing. % -% "semantic.dtx" is designed to be used with \package{doc} and -% \package{docstrip}. It therefore contains the package code but most -% of it is a lot of comments. These comments constitute the users -% guide and the documentation of the code. When \TeX\ is runned on -% "semantic.ins", \package{doc} is used to remove all these comments, -% and the result is written in the package file "semantic.sty". When -% you make the users guide by running \LaTeX\ on "semantic.dtx", -% \LaTeX\ first skips about 815 lines of comments (containing the -% source of the users guide) before it gets to the lines normally -% making up the package file. Then follows nearly 2400~lines of intermixed -% comments and code defining the commands in the package. At last, -% \LaTeX\ arrives at a line "\documentclass{ltxdoc}" (\package{ltxdoc} -% is \LaTeXe's standard class for documenting). After a couple of -% packages loadings and some command definition, it reaches -% "\begin{document}" and "\docinput{semantic.dtx}". This makes \LaTeX\ -% read over "semantic.dtx" once more but this time skipping the -% \%-chars in the first column. -% % \medskip % \parmark[\copyright]^^A % At last the boring formal stuff: The package is protected by the The @@ -828,7 +819,7 @@ % \begin{columnItemize} % \item Add a grammar option if needed. % \item If at all possible, add a check for the existence of "manfnt.tfm". -% \item Use "\hrule" and "\vrule" instead of "\line" (cf.\ \package{Epic}) as +% \item Use \cmd{\hrule} and \cmd{\vrule} instead of \cmd{\line} (cf.\ \package{Epic}) as % much as possible to build the translation diagrams , since this will % improve performance. % \item Develop example macros that set an example and give the source text @@ -848,12 +839,10 @@ % be for printing the documentation: % \begin{macrocode} %<*documentation> -\makeatletter -\def\@currname{semantic} -\def\@currext{sty} +\makeatletter \def\@currname{semantic} \def\@currext{sty} %</documentation> % \end{macrocode} -% "\@currname" and "\@currext" is internal \LaTeX-macros containg the name +% \cmd{\@currname} and \cmd{\@currext} are internal \LaTeX-macros containg the name % and extension of the package currently being loaded. The code is % encapsulated in "<*documentation>"\lttdots"</documentation>". Thus it is % not included in the style file, when the package is installed. @@ -865,11 +854,27 @@ % The package code starts by identifying the file as a \LaTeXe\ package: % \begin{macrocode} %<*general> -\NeedsTeXFormat{LaTeX2e} +\NeedsTeXFormat{LaTeX2e} +% \end{macrocode} +% \begin{macro}{\semanticVersion} +% \begin{macro}{\semanticDate} +% Constants definining the package release. +% \begin{macrocode} +\newcommand{\semanticVersion}{2.0(epsilon)} +\newcommand{\semanticDate}{2003/10/28} +% \end{macrocode} +% \changes{2.0$\delta$}{2002/07/11}{Added.} +% \end{macro}^^A \semanticDate +% \changes{2.0$\delta$}{2002/07/11}{Added.} +% \end{macro}^^A \semanticVersion +% \begin{macrocode} \ProvidesPackage{semantic} - [2000/08/03 v2.0(gamma) Semantic Package] + [\semanticDate\space v\semanticVersion\space] +\typeout{Semantic Package v\semanticVersion\space [\semanticDate]} +\typeout{CVSId: $Id: semantic.dtx,v 1.11 2003/10/28 13:45:57 turtle Exp $} %</general> % \end{macrocode} +% \changes{2.0$\delta$}{2002/07/11}{Using \cs{typeout} to print (now) extended information to user.} % % \subsubsection{Avoid Naming Conflicts} % @@ -878,11 +883,11 @@ % % \begin{macro}{\@semanticNotDefinable} % \changes{2.0$\alpha$}{1996/05/18}{Added redefinition of -% \CSname{@notdefinable} during package loading} -% This replaces the internal \LaTeX\ command "\@notdefinable", which is +% \cs{@notdefinable} during package loading} +% This replaces the internal \LaTeX\ command \cmd{\@notdefinable}, which is % used to issue an error message when a command cannot be defined, during % loading of \semantic. The name of the command that could not be defined -% is saved by \LaTeX\ in "\reserved@a". +% is saved by \LaTeX\ in \cmd{\reserved@a}. % \begin{macrocode} %<*general> \newcounter{@@conflict} @@ -895,47 +900,47 @@ % \end{macrocode} % The macro types the name of the confliction macro to the user and then % marks that there has been a conflict by increasing the numbers of -% conflicts encountered. "\@notdefinable" is an internal \LaTeX\ +% conflicts encountered. \cmd{\@notdefinable} is an internal \LaTeX\ % command used to write an error message when a command cannot be % defined. It is temporarily saved for later restoring. % \end{macro} % % \begin{macro}{\TestForConflict} % \changes{2.0$\alpha$}{1996/05/18}{Added macro for testing for conlict -% instead of using \CSname{newcommand}} -% "\@testconflict" takes a list of macros (separated by comma) and testes +% instead of using \cs{newcommand}} +% \cmd{\@testconflict} takes a list of macros (separated by comma) and testes % that they are all undefined. If one of them is not undefined an error -% message will be issued. The syntax is choosen like "\DoNotIndex" from +% message will be issued. The syntax is choosen like \cmd{\DoNotIndex} from % \package{ltxdoc}. % \begin{macrocode} \newcommand{\TestForConflict}{} -\def\TestForConflict#1{\@test #1,,} +\def\TestForConflict#1{\sem@test #1,,} % \end{macrocode} -% The macro initialises the testing and then uses "\@test" to test the +% The macro initialises the testing and then uses \cmd{\@test} to test the % indiviual commands in the list. % \end{macro} % -% \begin{macro}{\@test} -% \begin{macro}{\@stest} +% \begin{macro}{\sem@test} % This is the command for doing the test of a single macro % \begin{macrocode} -\newcommand{\@test}{} \newcommand{\@temp}{} \newcommand{\@@next}{} -\def\@test#1,{% - \def\@temp{#1}% - \ifx \@temp\empty \let\@@next=\relax \else - \@ifdefinable{#1}{} \let\@@next=\@test \fi +\newcommand{\sem@test}{} +\newcommand{\sem@tmp}{} +\newcommand{\@@next}{} +\def\sem@test#1,{% + \def\sem@tmp{#1}% + \ifx \sem@tmp\empty \let\@@next=\relax \else + \@ifdefinable{#1}{} \let\@@next=\sem@test \fi \@@next} %</general> % \end{macrocode} % The macro takes a single argument. If its not empty, \ie\ the list has -% not been read to the end, the internal \LaTeX\ command "\@ifdefinable" +% not been read to the end, the internal \LaTeX\ command \cmd{\@ifdefinable} % is used to test if the command can be defined (\see\ -% \cite[p.~192]{LaTeXbook}). "\@stest" is used to remove spaces in front -% of the argument +% \cite[p.~192]{LaTeXbook}). % % To avoid to many unclosed "\if" the macro is made tail recursive by -% saving the next macro in "\@next". -% \end{macro} +% saving the next macro in \cmd{\@@next}. +% \changes{2.0$\delta$}{2002/06/19}{Renamed \cs{@temp} \cs{sem@tmp}.} % \end{macro} % % \subsubsection{Hack for the documentation} @@ -978,12 +983,12 @@ \toks1={} % \end{macrocode} % \begin{macro}{\@ddInput} -% "\@ddInput" adds its argument to the list of commands used for loading: +% \cmd{\@ddInput} adds its argument to the list of commands used for loading: % \begin{macrocode} \newcommand{\@ddInput}[1]{% \toks1=\expandafter{\the\toks1\noexpand#1}} % \end{macrocode} -% The "\expandafter" makes "\the" expand the tokens register~0 one level, +% The \cmd{\expandafter} makes \cmd{\the} expand the tokens register~0 one level, % thus listing all the loading instructions. % \end{macro} % @@ -1005,7 +1010,7 @@ % and the specified options are loaded (if no options are specifieed, then % all options are loaded) % \begin{macrocode} -\message{Semantic Package.^^JLoading} +\typeout{Loading features: } \def\sem@nticsLoader{} \edef\lo@d{\the\toks1} \ifx\lo@d\empty @@ -1017,9 +1022,9 @@ \else \lo@d \fi -\message{and general definitions.^^J} +\typeout{and general definitions.^^J} % \end{macrocode} -% "\sem@nticsLoader" is flag used for testing in the options file to check +% \cmd{\sem@nticsLoader} is flag used for testing in the options file to check % that the files are loaeded from the package. % % After loading the options the name space is cleaned up. @@ -1045,8 +1050,8 @@ %<*allOptions> \expandafter\ifx\csname sem@nticsLoader\endcsname\relax % \end{macrocode} -% A feature of "\csname"\meta{name}"\endcsname" is that the command -% sequence would be taken to be "\relax" if \CSname{\meta{name}} is not +% A feature of \cmd{\csname}\meta{name}\cmd{\endcsname} is that the command +% sequence would be taken to be \cmd{\relax} if \cs{\meta{name}} is not % defined. % \begin{macrocode} \PackageError{semantic}{% @@ -1083,9 +1088,9 @@ % This macro compares the next token with a given token (\#1), and if they % are identical, % the first choice (\#2) is expanded, else the second choice(\#3). -% This is a loan of "\@ifnextchar" from the \LaTeXe-base and it therefore -% uses the interal variables "\reserved@a"\lttdots"\reserved@d". The only -% change from "\@ifnextchar" is that spaces are not ignoree. This is +% This is a loan of \cmd{\@ifnextchar} from the \LaTeXe-base and it therefore +% uses the interal variables \cmd{\reserved@a}\lttdots\cmd{\reserved@d}. The only +% change from \cmd{\@ifnextchar} is that spaces are not ignoree. This is % appropriate for defining % the ligatures (eg.\ I do not want \verb*"- >" to be converted to % $\rightarrow$). @@ -1102,7 +1107,7 @@ % \begin{macro}{\@ifNextMacro} % This macro examines the next token, and if it is a macro, the first % option (\#1) is executed, else the second option (\#2). Like -% "\@ifnext", the code is mainly ``borrowed'' from the \LaTeX-source. +% \cmd{\@ifnext}, the code is mainly ``borrowed'' from the \LaTeX-source. % \begin{macrocode} \def\@ifNextMacro#1#2{% \def\reserved@a{#1}\def\reserved@b{#2}% @@ -1112,12 +1117,12 @@ \let\reserved@d\reserved@a \else \let\reserved@d\reserved@b\fi \reserved@d} % \end{macrocode} -% The test of whether it is a macro, is done in "\@ifnMacro" by comparing the -% catcodes of the token and a macro, "\@ifnMacro" (any other -% macro could have been used as well). The "\noexpand" secures that I compare -% the token and not its expansion. If \emph{eg} "\@noexpand" were left out and +% The test of whether it is a macro, is done in \cmd{\@ifnMacro} by comparing the +% catcodes of the token and a macro, \cmd{\@ifnMacro} (any other +% macro could have been used as well). The \cmd{\noexpand} secures that I compare +% the token and not its expansion. If \emph{eg} \cmd{\@noexpand} were left out and % the token were a macro, then it would be expanded and the first token in -% the macro be compared to the first token in "\@ifnMacro". +% the macro be compared to the first token in \cmd{\@ifnMacro}. % \end{macro} % % \begin{macro}{\@dropnext} @@ -1156,7 +1161,7 @@ \let\@oldNotDefinable=\relax \let\TestForConflict=\relax \let\@endmark=\relax -\let\@test=\relax +\let\sem@test=\relax %</general> % \end{macrocode} % @@ -1193,22 +1198,22 @@ % \end{macrocode} % \end{macro} % \begin{macro}{\mathlig} -% Now, for the definition of "\mathlig{"\meta{character -% sequence}"}{"\meta{ligature commands}"}", we first add the ligature +% Now, for the definition of \cmd{\mathlig}\marg{character +% sequence}\marg{ligature commands}, we first add the ligature % character sequence $c_1c_2\cdots c_n$ to the internal ligature % character lists, and then % we set up the macros "\@mathlig"$c_1c_2\cdots$ by calling -% "\@defligstep": +% \cmd{\@defligstep}: % \begin{macrocode} \DeclareRobustCommand\mathlig[1]{\@addligtolists#1\@@ - \if@mathligon\mathligon\fi + \if@mathligon\mathligson\fi \@setupfirstligchar#1\@@ \@defligstep{}#1\@@} % \end{macrocode} -% \changes{2.0$\beta$}{2000/08/02}{Corrected typo in \CSname{mathligson}.} +% \changes{2.0$\beta$}{2000/08/02}{Corrected typo in \cs{mathligson}.} % \end{macro} % \DescribeMacro{\@mathligson}\DescribeMacro{\@mathligsoff} -% We define macros "\@mathligson" and "\@mathligsoff" for turning math +% We define macros \cmd{\@mathligson} and \cmd{\@mathligsoff} for turning math % ligatures on and off internally without changing the status of the % "\if@mathligon" flag: % \begin{macrocode} @@ -1216,9 +1221,9 @@ \def\@mathligsoff{\if@mathligon\mathligsoff\@mathligontrue\fi} % \end{macrocode} % \begin{macro}{\mathligprotect} -% "\mathligprotect{"\meta{command}"}" defines \meta{command} to be a macro -% expanding into "\@mathligsoff"\emph{expansion -% of}\meta{command}"\@mathligson": +% \cmd{\mathligprotect}\marg{command} defines \meta{command} to be a macro +% expanding into \cmd{\@mathligsoff}\emph{expansion +% of}\meta{command}\cmd{\@mathligson}: % \begin{macrocode} \DeclareRobustCommand\mathligprotect[1]{\expandafter \def\expandafter#1\expandafter{% @@ -1226,7 +1231,7 @@ % \end{macrocode} % \end{macro} % \begin{macro}{\mathligson} -% "\mathligson" changes the math code of all the characters that can occur +% \cmd{\mathligson} changes the math code of all the characters that can occur % as the first character of a ligature character sequence to be active, and % sets the "\if@mathligon" flag: % \begin{macrocode} @@ -1240,9 +1245,9 @@ % \changes{2.0$\beta$}{2000/08/02}{Ligature turned on when ligatures are loaded (moved from \texttt{shorthand} option).} % \end{macro} % \begin{macro}{\mathligsoff} -% "\mathligsoff" does the reverse actions: resetting math codes to their +% \cmd{\mathligsoff} does the reverse actions: resetting math codes to their % values as recorded at ligature definition time (stored in the -% "\@domathligfirsts" data structure). +% \cmd{\@domathligfirsts} data structure). % \begin{macrocode} \DeclareRobustCommand\mathligsoff{\def\do##1##2##3{\mathcode`##1=##2}% \@domathligfirsts\@mathligonfalse} @@ -1252,15 +1257,15 @@ % \subsubsection{Utilities} % \label{sec:Utilities} % -% \DescribeMacro{\@mathliglink} "\@mathliglink" is a dummy macro that +% \DescribeMacro{\@mathliglink} \cmd{\@mathliglink} is a dummy macro that % should never be expanded, so we issue an error if it is: % \begin{macrocode} \edef\@mathliglink{Error: \noexpand\verb|\string\@mathliglink| expanded} % \end{macrocode} % \DescribeMacro{\@ifcharacter}\DescribeMacro{\@ifactive} -% "\@ifcharacter"\meta{character}"{"\meta{truebranch}"}{"\meta{falsebranch}"}" +% \cmd{\@ifcharacter}\meta{character}\marg{truebranch}\marg{falsebranch} % is used to test whether \meta{character} is in fact a character and chooses the -% appropriate branch. "\@ifactive" is analogous. +% appropriate branch. \cmd{\@ifactive} is analogous. % \begin{macrocode} {\catcode`\A=11\catcode`\1=12\catcode`\~=13 % Letter, Other and Active \gdef\@ifcharacter#1{\ifcat A\noexpand#1\let\next\@firstoftwo @@ -1279,43 +1284,43 @@ % c_n$ are defined, and "\@mathlig"$c_1c_2\cdots c_n$ expands to the % commands that typeset the ligature. For $1<i<n$, if $c_1c_2\cdots c_i$ is % not also a ligature character sequence, it is defined as the (dummy) -% macro "\@mathliglink"\DescribeMacro{\@mathliglink}. +% macro \cmd{\@mathliglink}\DescribeMacro{\@mathliglink}. % % E.g.: if `"-><-"' has been defined to typeset as % "\rightarrow\leftarrow" and `"-->"' has been defined to typeset as -% "\longrightarrow", the following macros will be defined: +% \cmd{\longrightarrow}, the following macros will be defined: % \begin{center} % \begin{tabular}{ll} % \textbf{Macro} & \textbf{is defined as} \\ % "\@mathlig-" & "-" \\ -% "\@mathlig--" & "\@mathliglink" \\ -% "\@mathlig-->" & "\longrightarrow" \\ -% "\@mathlig->" & "\@mathliglink" \\ -% "\@mathlig-><" & "\@mathliglink" \\ +% "\@mathlig--" & \cmd{\@mathliglink} \\ +% "\@mathlig-->" & \cmd{\longrightarrow} \\ +% "\@mathlig->" & \cmd{\@mathliglink} \\ +% "\@mathlig-><" & \cmd{\@mathliglink} \\ % "\@mathlig-><-" & "\rightarrow\leftarrow" \\ % \end{tabular} % \end{center} % As it can be seen, "\@mathlig"$c$ expands to $c$, so that the original % meaning of a single character $c$ can be used. % -% The macro "\@domathligfirsts"\DescribeMacro{\@domathligfirsts} holds a +% The macro \cmd{\@domathligfirsts}\DescribeMacro{\@domathligfirsts} holds a % list of characters, which occur as a % first character in a ligature character sequence, with their % "mathcode"s and "catcode"s as defined when the ligature is defined. E.g.: % if ligatures have been defined for `"-><-"' and `"<--"', then -% "\@domathligfirsts" will expand into a token sequence containing the +% \cmd{\@domathligfirsts} will expand into a token sequence containing the % sequence % \begin{center} % "\do \-{8704}{12}\do \<{12604}{12}" % \end{center} % Thus, defining command "\do#1#2#3{"\emph{manipulate character}"#1}" and -% executing "\@domathligfirsts" manipulates all the first characters of +% executing \cmd{\@domathligfirsts} manipulates all the first characters of % ligature character sequences. % -% The macro "\@domathligfollows"\DescribeMacro{\@domathligfollows} is +% The macro \cmd{\@domathligfollows}\DescribeMacro{\@domathligfollows} is % analogous for characters that occur after the first character in a -% ligature character sequence. "\@makemathligsactive" and -% "\@makemathligsnormal" change the catcodes of these characters. +% ligature character sequence. \cmd{\@makemathligsactive} and +% \cmd{\@makemathligsnormal} change the catcodes of these characters. % \begin{macrocode} \def\@domathligfollows{}\def\@domathligfirsts{} \def\@makemathligsactive{\mathligson @@ -1324,10 +1329,10 @@ \def\do##1##2##3{\catcode`##1=##3}\@domathligfollows} % \end{macrocode} % \begin{macro}{\@ifinlist} -% "\@ifinlist{"\meta{character/mathcode/catcode list}"}"\discretionary{}{}{}^^A -% "{"\meta{character}"}"\discretionary{}{}{}^^A -% "{"\meta{true\-branch}"}"\discretionary{}{}{}^^A -% "{"\meta{false\-branch}"}" +% \cmd{\@ifinlist}\marg{character/mathcode/catcode list}\discretionary{}{}{}^^A +% \marg{character}\discretionary{}{}{}^^A +% \marg{true\-branch}\discretionary{}{}{}^^A +% \marg{false\-branch} % checks whether \meta{character} is in \meta{character/mathcode/catcode % list} and chooses the appropriate branch. % \begin{macrocode} @@ -1341,8 +1346,8 @@ % \label{sec:SettingUpTheDataStructures} % % \begin{macro}{\@addligto} -% "\@addligto{"\meta{character/mathcode/catcode -% list}"}{"\meta{character}"}" inserts (replaces) or adds the "mathcode" +% \cmd{\@addligto}\marg{character/mathcode/catcode +% list}\marg{character} inserts (replaces) or adds the "mathcode" % and "catcode" information into the \meta{character/mathcode/catcode % list}: % \begin{macrocode} @@ -1360,10 +1365,10 @@ % \begin{macro}{\@addligtolists} % \begin{macro}{\@addligtofollowlist} % \errorcontextlines=10 -% "\@addligtolists{"\meta{$c_1c_2\cdots{}c_n$}"}" adds $c_1$ to the -% "\@domathligfirsts" list and the remaining to the "\@domathligfollows" +% \cmd{\@addligtolists}\marg{$c_1c_2\cdots{}c_n$} adds $c_1$ to the +% \cmd{\@domathligfirsts} list and the remaining to the \cmd{\@domathligfollows} % list by only eating the first character and passing the remaining to -% "\@addligtofollowlist": +% \cmd{\@addligtofollowlist}: % \begin{macrocode} \def\@addligtolists#1{\expandafter\@addligto \expandafter\@domathligfirsts @@ -1378,10 +1383,10 @@ % \end{macro} % \begin{macro}{\@defligstep} % \begin{macro}{\@def@ligstep} -% "\@defligstep{"\meta{$c_1\cdots{}c_{i-1}$}"}{"\meta{$c_i$}"}" defines one +% \cmd{\@defligstep}\marg{$c_1\cdots{}c_{i-1}$}\marg{$c_i$} defines one % step in the parsing of a ligature character sequence: the % "\@mathlig"$c_1\cdots c_i$ macro. The (possibly active) characters are -% turned into letters by applying "\string" until the end of the sequence +% turned into letters by applying \cmd{\string} until the end of the sequence % is reached: % \begin{macrocode} \def\@defligstep#1#2{\def\@tempa##1{\ifx##1\endcsname @@ -1390,12 +1395,12 @@ \expandafter\@def@ligstep\csname @mathlig\@tempa#1#2\endcsname{#1#2}} % \end{macrocode} % when the end of ALL the characters of the sequence (i.e.{} $c_1c_2\cdots -% c_n$) is reached---signalled by the "\@@" control -% sequence inserted by "\mathlig"---"\@def@ligstep" can define the macro +% c_n$) is reached---signalled by the \cmd{\@@} control +% sequence inserted by \cmd{\mathlig}---\cmd{\@def@ligstep} can define the macro % "\@mathlig"$c_1c_2\cdots % c_n$ (note that the following tokens in the input stream are the ones -% following the first parameter of a "\mathlig" command). Otherwise, the -% process is repeated by calling "\@defligstep" again. +% following the first parameter of a \cmd{\mathlig} command). Otherwise, the +% process is repeated by calling \cmd{\@defligstep} again. % \begin{macrocode} \def\@def@ligstep#1#2#3{% \ifx#3\@@ @@ -1414,7 +1419,7 @@ % The first character, $c$, of a ligature sequence must receive special % treatment: if it is already active, we must redefine it to check whether % it is used inside or outside of math. When inside, it should expand to -% "\@startmathlig"$c$\SpecialUsageIndex{\@startmathlig}. +% \cmd{\@startmathlig}$c$\SpecialUsageIndex{\@startmathlig}. % \begin{macrocode} \def\@setupfirstligchar#1#2\@@{% \@ifactive{#1}{% @@ -1422,20 +1427,20 @@ \expandafter\string\expandafter#1\expandafter{#1}{#1}}% % \end{macrocode} % If on the other hand it is not active, we must define \emph{its active -% variant} to expand to "\@startmathlig"$c$. This cannot be done directly, +% variant} to expand to \cmd{\@startmathlig}$c$. This cannot be done directly, % as we cannot change the "catcode"s of characters once they've been read, -% so we call "\@defactive": +% so we call \cmd{\@defactive}: % \begin{macrocode} {\@defactive#1{\@startmathlig #1}\@namedef{@mathlig#1}{#1}}} % \end{macrocode} % \end{macro} % \begin{macro}{\@mathligredefactive} -% The use of "\@mathligredefactive" is tricky: the macro needs three +% The use of \cmd{\@mathligredefactive} is tricky: the macro needs three % versions of the character to be defined: an active (for defining), a -% letter (for "\@namedef"ining) and an expanded version (for wrapping the +% letter (for \cmd{\@namedef}ining) and an expanded version (for wrapping the % math mode check stuff around). thus it must be called by -% "\@mathligredefactive{"\meta{letter}"}{"\meta{expansion}"}{"\meta{active -% character}"}". +% \cmd{\@mathligredefactive}\marg{letter}\marg{expansion}\marg{active +% character}. % \begin{macrocode} \def\@mathligredefactive#1#2#3{% \def#3{{}\ifmmode\def\next{\@startmathlig#1}\else @@ -1448,7 +1453,7 @@ % The only way we can get an active version of a character $c$ is by % storing a list of possible characters, each with catcode 13 % (active). Actually, what we do is to have a list of macros, -% "\@definemathlig"$c$"{"\meta{expansion text}"}" that will define the +% \cmd{\@definemathlig}$c$\marg{expansion text} that will define the % active character $c$ to expand to \meta{expansion text}. % \begin{macrocode} \def\@defactive#1{\@ifundefined{@definemathlig\string#1}% @@ -1467,7 +1472,7 @@ % first characters of a ligature sequence. Characters like "$" "&" "^" "_" % "#" "\" and "%" don't really make sense. All these characters are put % into a comma separated list, -% "\@firstmathligs"\DescribeMacro{\@firstmathligs}. +% \cmd{\@firstmathligs}\DescribeMacro{\@firstmathligs}. % \begin{macrocode} \do{"}"\do{@}@\do{/}/\do{(}(\do{)})\do{[}[\do{]}]\do{=}= \do{?}?\do{!}!\do{`}`\do{'}'\do{|}|\do{~}~\do{<}<\do{>}> @@ -1481,12 +1486,12 @@ % % During parsing, % \begin{itemize} -% \item \DescribeMacro{\@seentoks}"\@seentoks" holds the characters seen +% \item \DescribeMacro{\@seentoks}\cmd{\@seentoks} holds the characters seen % so far. -% \item \DescribeMacro{\@lastvalidmathlig}"\@lastvalidmathlig" holds the +% \item \DescribeMacro{\@lastvalidmathlig}\cmd{\@lastvalidmathlig} holds the % macro corresponding to the longest % valid math ligature character sequence seen so far -% \item \DescribeMacro{\@pushedtoks}"\@pushedtoks" holds the remaining +% \item \DescribeMacro{\@pushedtoks}\cmd{\@pushedtoks} holds the remaining % characters seen that are not a % part of the valid ligature character sequence % \end{itemize} @@ -1498,28 +1503,28 @@ % The overall algorithm is as follows: % % \begin{itemize} -% \item [1] Let $i=1$. A character $c_i$ in "\@domathligfirsts" triggers +% \item [1] Let $i=1$. A character $c_i$ in \cmd{\@domathligfirsts} triggers % the following steps: % \item [2] % \begin{tabbing} -% "\@seentoks" := [ ] \\ -% "\@lastvalidmathlig" := \{\} \\ -% "\@pushedtoks" := [ ] +% \cmd{\@seentoks} := [ ] \\ +% \cmd{\@lastvalidmathlig} := \{\} \\ +% \cmd{\@pushedtoks} := [ ] % \end{tabbing} % \item [3] % \begin{tabbing}\qquad\=\qquad\=\qquad\=\kill -% if the macro "\@mathlig"$c_1c_2\cdots c_i$ is defined then \\ -% \>if "\@mathlig"$c_1c_2\cdots c_i$ is a "\@mathliglink" then \\ -% \>\>"\@pushedtoks" := "\@pushedtoks" ++ [$c_i$] \\ +% if the macro \cmd{\@mathlig}$c_1c_2\cdots c_i$ is defined then \\ +% \>if \cmd{\@mathlig}$c_1c_2\cdots c_i$ is a \cmd{\@mathliglink} then \\ +% \>\>\cmd{\@pushedtoks} := \cmd{\@pushedtoks} ++ [$c_i$] \\ % \>else \\ -% \>\>"\@lastvalidmathlig" := "\@mathlig"$c_1c_2\cdots c_i$ \\ -% \>\>"\@pushedtoks" := [ ] \\ -% \>"\@seentoks" := "\@seentoks" ++ [$c_i$] \\ +% \>\>\cmd{\@lastvalidmathlig} := \cmd{\@mathlig}$c_1c_2\cdots c_i$ \\ +% \>\>\cmd{\@pushedtoks} := [ ] \\ +% \>\cmd{\@seentoks} := \cmd{\@seentoks} ++ [$c_i$] \\ % else \\ % \>disable ligatures \\ -% \>expand "\@lastvalidmathlig" \\ +% \>expand \cmd{\@lastvalidmathlig} \\ % \>enable ligatures \\ -% \>put the "\@pushedtoks" and $c_i$ on the input stream \\ +% \>put the \cmd{\@pushedtoks} and $c_i$ on the input stream \\ % \>go to 1 % \end{tabbing} % \item [4] Let $i=i+1$; read next character $c_i$ and go to 3. @@ -1530,7 +1535,7 @@ % \begin{macro}{\@try@mathlig} % \begin{macro}{\@exitmathlig} % All this is accomplished by the following macros, starting with -% "\@startmathlig": +% \cmd{\@startmathlig}: % \begin{macrocode} \def\@startmathlig{\def\@lastvalidmathlig{}\@pushedtoks{}% \@seentoks{}\@trymathlig} @@ -1545,8 +1550,8 @@ %^^A \space last\meaning\@lastvalidmathlig}% \@ifundefined{@mathlig\the\@seentoks#1}{\@exitmathlig{#1}}% {\expandafter\ifx - \csname @mathlig\the\@seentoks#1\endcsname - \@mathliglink + \csname @mathlig\the\@seentoks#1\endcsname + \@mathliglink \expandafter\@pushedtoks \expandafter=\expandafter{\the\@pushedtoks#1}% \else @@ -1568,7 +1573,7 @@ % \begin{macro}{\patch@newmcodes@} % The \texttt{amsmath} package by AMS uses some non-alphanumeric % characters to produce for instance extended arrows. Consequently -% the "\newmcodes@" in \texttt{amsopn.sty} (2.01) fails with an error message if +% the \cmd{\newmcodes@} in \texttt{amsopn.sty} (2.01) fails with an error message if % the hyphen character has mathcode \"8000. So we in provide a patch % (suggested by Michael John Downes of AMS<). % \begin{macrocode} @@ -1584,7 +1589,7 @@ \AtBeginDocument{\let\newmcodes@=\patch@newmcodes@} %</ligature> % \end{macrocode} -% \changes{2.0$\gamma$}{2002/06/13}{Provided patch to make \semantic compatible with \texttt{amsmath} v. 2.01} +% \changes{2.0$\epsilon$}{2002/06/13}{Provided patch to make \semantic compatible with \texttt{amsmath} v. 2.01} % \end{macro} % % \subsubsection{ToDo} @@ -1594,8 +1599,8 @@ % \item Make removing of math ligatures possible (tricky!) % \item Make it possible to define a single char as a ligature % (redefinition) -% \item Check the use of "\@makemathligsactive": is it possible to -% replace it by "\mathligson"? +% \item Check the use of \cmd{\@makemathligsactive}: is it possible to +% replace it by \cmd{\mathligson}? % \end{itemize} % % \subsection{Inference Rules} @@ -1613,7 +1618,7 @@ % \begin{macro}{\@makeLength} % \changes{1.1}{1995/11/12}{Redefined the lengths commands, so that the lengths are evaluated each time}^^A % \begin{macro}{\@setLengths} -% \changes{1.1$\beta$}{1995/11/21}{Added setting of parameters for line skipping in \CSname{@setLengths}} +% \changes{1.1$\beta$}{1995/11/21}{Added setting of parameters for line skipping in \cs{@setLengths}} % First I define two auxiliary macros to facilitate the use of the lengths % controlling the appearance of an inference rule. My overall aim is to % allow the use of relative units ("em" and "ex"). To accomplish this, the @@ -1621,18 +1626,18 @@ % there are only a few lengths, it could been have been simpler and less % general, but I found it inspiring to work out a general solution. % -% "\@makelength{"\meta{users name}"}{"\meta{internal name}"}{"\meta{default -% value}"}{"\meta{stretch}"}" does all the definitions associated with -% making a new length: defines a new length "\@@"\meta{internal name}, makes +% \cmd{\@makelength}\marg{users name}\marg{internal name}\marg{default +% value}\marg{stretch} does all the definitions associated with +% making a new length: defines a new length \cs{@@\meta{internal name}}, makes % a command to evaluate it (with the current choice of font) -% "\@set"\meta{internal name} and makes the users command to change the -% length "\set"\meta{users name}. \meta{default value} is---of course---the +% \cs{@set\meta{internal name}} and makes the users command to change the +% length \cs{set\meta{users name}}. \meta{default value} is---of course---the % normal value used for the length, while \meta{stretch} is the stretch % parameter in case the premise should be set wider than its natural width. % -% The macro "\@setLengths" is used to evaluate all the lengths. When a new -% length is made using "\@makelength", the name of its evaluation macro, -% "\@set"\meta{internal name}, is added. +% The macro \cmd{\@setLengths} is used to evaluate all the lengths. When a new +% length is made using \cmd{\@makelength}, the name of its evaluation macro, +% \cs{@set\meta{internal name}}, is added. % \begin{macrocode} \newtoks\@@tempa \newtoks\@@tempb @@ -1657,21 +1662,21 @@ \setlength{\lineskip}{1pt}% \setlength{\lineskiplimit}{1pt}} % \end{macrocode} -% The first lines in "\@makelength" builds the name of the length in -% "\@@tempa" and the macro to evaluate it in "\@@tempb"---this requires some -% playing with "\csname"---and declares the corresponding length and command. +% The first lines in \cmd{\@makelength} builds the name of the length in +% \cmd{\@@tempa} and the macro to evaluate it in \cmd{\@@tempb}---this requires some +% playing with \cmd{\csname}---and declares the corresponding length and command. % Then the users command is builded: It contains a test "{\dimen0 = #1}" to % ensure that the given parameter is, in fact, a length and then it % redefines the evaluating command so that the length is the length % provided by the user, and a possibly stretch which is defined below and % cannot be altered by the user. At last the evaluating command is added to -% "\@setLengths"---the inspiration to this code I got from +% \cmd{\@setLengths}---the inspiration to this code I got from % \cite[378]{texbook}. % % The distance between the lines of premises is set by \TeX\ using its normal % lineskipping algorithm. As some environments, e.g.\ "tabular", sets all the -% lineskipping parameters, "\baselineskip", "\lineskip" and -% "\lineskiplimit", to zero it is necessary to set them in "\@setLengths". +% lineskipping parameters, \cmd{\baselineskip}, \cmd{\lineskip} and +% \cmd{\lineskiplimit}, to zero it is necessary to set them in \cmd{\@setLengths}. % \end{macro} % \end{macro} % @@ -1681,7 +1686,7 @@ % \begin{macro}{\setpremisesend} % \changes{1.2$\alpha$}{1996/01/31}{Changed to .75"em"} % \begin{macro}{\setnamespace} -% \changes{1.01}{1995/11/07}{Introduced \CSname{name\-space}}^^A +% \changes{1.01}{1995/11/07}{Introduced \cs{name\-space}}^^A % This is followed by the definition of some auxiliary internal registers: % \label{space setting} % \begin{macrocode} @@ -1695,7 +1700,7 @@ % \end{macro} % % Then comes some auxiliary internal registers -% \changes{1.1$\delta$}{1995/12/01}{Introduced \CSname{@@space} for use in comparisons} +% \changes{1.1$\delta$}{1995/12/01}{Introduced \cs{@@space} for use in comparisons} % \begin{macrocode} %<*general> \newdimen\@@maxwidth @@ -1710,15 +1715,15 @@ \newcommand{\@@space}{ } % \end{macrocode} % \begin{tabular}{lp{9.4cm}} -% "\@@maxwidth" & The largest width of a premise/ \\ -% "\@@cBox" & Holds the conclusion when it has been built \\ -% "\@@pBox" & The premises is built in this register \\ -% "\@@pLineBox" & Used to build a single line of the premise \\ -% "\@@aLineBox" & Contains the line to be adjusted \\ -% "\@@moreLines" & Flag telling if there is more lines of premises to process \\ -% "\@@moreLines" & Flag telling the divider should only be the length of +% \cmd{\@@maxwidth} & The largest width of a premise/ \\ +% \cmd{\@@cBox} & Holds the conclusion when it has been built \\ +% \cmd{\@@pBox} & The premises is built in this register \\ +% \cmd{\@@pLineBox} & Used to build a single line of the premise \\ +% \cmd{\@@aLineBox} & Contains the line to be adjusted \\ +% \cmd{\@@moreLines} & Flag telling if there is more lines of premises to process \\ +% \cmd{\@@moreLines} & Flag telling the divider should only be the length of % the conclusion \\ -% "\@@space" & Macro with a single space---used for comparison. +% \cmd{\@@space} & Macro with a single space---used for comparison. % \end{tabular} % % \begin{macro}{\predicate} @@ -1730,7 +1735,7 @@ % \changes{1.0}{1995/10/18}{Changed the name to avoid conflict with \LaTeX} % \changes{2.0}{1998/06/05}{Changed the default setting to "$" such that % the premises are set in math mode.} -% "\predicate" controls the setting of a single predicate cf.\ +% \cmd{\predicate} controls the setting of a single predicate cf.\ % p.~\pageref{pattern matching}. % \begin{macrocode} \newcommand{\predicate}[1]{\predicatebegin #1\predicateend} @@ -1756,9 +1761,9 @@ % characters. % % \begin{macro}{\inference} -% \changes{1.0}{1995/18/10}{Changed some names due to a conflict with \LaTeX's \CSname{rule}} -% \changes{1.01}{1995/11/07}{Inserted a space in front of the name using \CSname{name\-space}} -% \changes{1.1}{1995/11/15}{Removed \CSname{@pInference}} +% \changes{1.0}{1995/18/10}{Changed some names due to a conflict with \LaTeX's \cs{rule}} +% \changes{1.01}{1995/11/07}{Inserted a space in front of the name using \cs{name\-space}} +% \changes{1.1}{1995/11/15}{Removed \cs{@pInference}} % \changes{2.0}{1998/05/20}{Added check for starred version} % This is the entry macro. It starts the parameter parsig by testing % for the starred version; this is stored in the value of @@ -1802,7 +1807,7 @@ % \end{macro} % % \begin{macro}{\@inferenceMiddle} -% It typesets the premises in the box~"\@@pBox". +% It typesets the premises in the box~\cmd{\@@pBox}. % \begin{macrocode} \long\def\@inferenceMiddle#1{% \@setLengths% @@ -1820,7 +1825,7 @@ % typesetting in its own group to prevent interferring with a % premise being typeset on the outer levels. We therefore typeset % the premises inside a group and moves them one level out by -% "\unvbox" inside a~"\vbox". +% \cmd{\unvbox} inside a~\cmd{\vbox}. % \begin{macrocode} \@inferenceBack } @@ -1844,9 +1849,9 @@ % to math mode. % \begin{macrocode} \setbox\@@pBox=\vtop{\unvbox\@@pBox - \vskip 4\fontdimen8\textfont3}% + \vskip 4\fontdimen8\textfont3}% \setbox\@@cBox=\vbox{\vskip 4\fontdimen8\textfont3% - \box\@@cBox}% + \box\@@cBox}% % \end{macrocode} % Add the space corresponding to a fraction bar in a display below % the premises and above the conclusion. @@ -1887,7 +1892,7 @@ % \end{macrocode} % We end the typesetting by testing for an optional argument. If % this is not provided we simply ends the group started by -% "\inference". +% \cmd{\inference}. % \end{macro} % % \begin{macro}{\@inferenceBackName} @@ -1900,7 +1905,7 @@ \unhbox3% \fi % \end{macrocode} -% and end the group started by "\inference". +% and end the group started by \cmd{\inference}. % \begin{macrocode} \egroup } @@ -1910,21 +1915,21 @@ % \subsubsection{Processing of Premises} % % Then comes the code that processes a list of premises and set them in -% "\@@pBox". I do a lot of gambots adding and deleting extra tokens so that +% \cmd{\@@pBox}. I do a lot of gambots adding and deleting extra tokens so that % \TeX's pattern mathcing on macro arguments can be used to find nestings, % linebreaks etc.\ as I belive this to be faster than actually reading % one token at a time using \TeX\ primitives. % % \begin{macro}{\@premises} -% \changes{1.1}{1995/11/25}{Initially set \CSname{@max\-width} equal to the width of the conclusion} -% \changes{1.1$\gamma$}{1995/11/12}{Changed \CSname{@premises} so the +% \changes{1.1}{1995/11/25}{Initially set \cs{@max\-width} equal to the width of the conclusion} +% \changes{1.1$\gamma$}{1995/11/12}{Changed \cs{@premises} so the % premises can extend over several lines} % This initialises the processing of the list of premises line by line. A -% line is recognised in "\@processPremises", which does the processing by +% line is recognised in \cmd{\@processPremises}, which does the processing by % matching on its terminating "\\". Since there is not a "\\" after the last % premise, I insert \verb*"\\ \end" as an end marker after the list of -% premises. In this way, "\@processPremises" can assume that every line is -% followed by "\\", and if this is followed by "\end", it has reached the +% premises. In this way, \cmd{\@processPremises} can assume that every line is +% followed by "\\", and if this is followed by \cmd{\end}, it has reached the % end. % \begin{macrocode} \newcommand{\@premises}[1]{% @@ -1940,15 +1945,15 @@ % between the premises and at the end (with half the strechability) % cf.~p.~\pageref{space setting}. To accomplish this, I need to know the % width of the widest line, but this can only be found while processing -% the premises. It is saved in "\@@maxwidth" so that "\@adjustPremises" adjusts -% all lines to it. By initially setting "\@@maxwidth" to the width of the +% the premises. It is saved in \cmd{\@@maxwidth} so that \cmd{\@adjustPremises} adjusts +% all lines to it. By initially setting \cmd{\@@maxwidth} to the width of the % conclusion, no line will become narrower than the conclusion. And due to the % glue, the premises will appear centered if the conclusion is wider than the % premises. % \end{macro} % % \begin{macro}{\@adjustPremises} -% This macro adjusts the lines of premises to "\@@maxwidth": +% This macro adjusts the lines of premises to \cmd{\@@maxwidth}: % \begin{macrocode} \newcommand{\@adjustPremises}{% \setbox\@@pBox=\vbox{% @@ -1967,26 +1972,26 @@ }% } % \end{macrocode} -% The lines set are put in "\@@pBox" in reverse order. They are taken from -% "\@@pBox" one by one by emptying ("\unvbox") "\@@pBox", setting -% "\@@aLineBox" to the last box in the vertical list just emptied and putting -% the rest back in "\@@pBox". I do not expect this to be as bas as it sounds, -% because presumably the "\unvbox" is not a actual copying but only some +% The lines set are put in \cmd{\@@pBox} in reverse order. They are taken from +% \cmd{\@@pBox} one by one by emptying (\cmd{\unvbox}) \cmd{\@@pBox}, setting +% \cmd{\@@aLineBox} to the last box in the vertical list just emptied and putting +% the rest back in \cmd{\@@pBox}. I do not expect this to be as bas as it sounds, +% because presumably the \cmd{\unvbox} is not a actual copying but only some % pointer operation, which can be done in constant time (cf.\ the hints on % \cite[120]{texbook}). % -% All this is done inside a "\vbox" so the contents of "\@@aLineBox" can be +% All this is done inside a \cmd{\vbox} so the contents of \cmd{\@@aLineBox} can be % added to the list being build simply using "\hbox to "\lttdots\ (doing the -% adjusting simultaneousnessly). Being inside a "\vbox" has the additional +% adjusting simultaneousnessly). Being inside a \cmd{\vbox} has the additional % advantage that \TeX\ is in internal vertical mode so that there -% is added lineskip automaticly in accordance with "\baselineskip" etc.\ +% is added lineskip automaticly in accordance with \cmd{\baselineskip} etc.\ % (cf.~\cite[80]{texbook}). As the macro is in no sense recursive, it is no -% problem changing "\@aLineBox" globally. +% problem changing \cmd{\@aLineBox} globally. % \end{macro} % % \begin{macro}{\@processPremises}\mbox{}^^A -% \changes{1.1$\beta$}{1995/11/21}{Fixed bug that made an empty premise sometimes contain \CSname{pSpace}} -% \changes{1.1$\beta$}{1995/11/21}{Moved the processing of spaces to \CSname{@inferenceOrPremis}} +% \changes{1.1$\beta$}{1995/11/21}{Fixed bug that made an empty premise sometimes contain \cs{pSpace}} +% \changes{1.1$\beta$}{1995/11/21}{Moved the processing of spaces to \cs{@inferenceOrPremis}} % \begin{macrocode} \def\@processPremises#1\\#2\end{% % \end{macrocode} @@ -1998,16 +2003,16 @@ \@processPremiseLine #1&\end% \setbox\@@pLineBox=\hbox{\unhbox\@@pLineBox \unskip}% % \end{macrocode} -% The first line is typesetted in "\@@pLineBox" and additional space -% is removed. We use "\@processPremiseLine" that like -% "\@processPremises" gets "&\end" added so that it recognizes the +% The first line is typesetted in \cmd{\@@pLineBox} and additional space +% is removed. We use \cmd{\@processPremiseLine} that like +% \cmd{\@processPremises} gets "&\end" added so that it recognizes the % end of line. After the line has been set % \begin{macrocode} \ifdim \wd\@@pLineBox > \z@ % % \end{macrocode} -% If the premise is not empty, we add it to "\@@pBox", that when finished -% will contain the lines (in reverse order---cf.~"\@adjustPremises"), and if -% necessary "\@@maxwidth" is increased. +% If the premise is not empty, we add it to \cmd{\@@pBox}, that when finished +% will contain the lines (in reverse order---cf.~\cmd{\@adjustPremises}), and if +% necessary \cmd{\@@maxwidth} is increased. % \begin{macrocode} \setbox\@@pLineBox=% \hbox{\hskip\@@pEnd \unhbox\@@pLineBox \hskip\@@pEnd}% @@ -2017,15 +2022,15 @@ \setbox\@@pBox=\vbox{\box\@@pLineBox\unvbox\@@pBox}% \fi % % \end{macrocode} -% If there are more line we process them. +% If there are more lines we process them. % \begin{macrocode} - \def\@temp{#2}% - \ifx \@temp\empty \else % + \def\sem@tmp{#2}% + \ifx \sem@tmp\empty \else % \@ReturnAfterFi{% \@processPremises #2\end % }% % \end{macrocode} -% "\@ReturnAfterFi" is a trick due to Heiko Oberdik to ensure that we +% \cmd{\@ReturnAfterFi} is a trick due to Heiko Oberdik to ensure that we % get a tail recursive macro. % \begin{macrocode} \fi% @@ -2041,9 +2046,9 @@ % This pattern splits the line into the first premise (\#1---possibly % empty) and the following premises (\#2---possibly none). % \begin{macrocode} - \def\@temp{#1}% - \ifx \@temp\empty \else% - \ifx \@temp\@@space \else% + \def\sem@tmp{#1}% + \ifx \sem@tmp\empty \else% + \ifx \sem@tmp\@@space \else% \setbox\@@pLineBox=% \hbox{\unhbox\@@pLineBox% \@inferenceOrPremis #1\inference\end% @@ -2054,12 +2059,12 @@ % If the first premise is non-empty, which in this context means that % it is neither empty nor a space (\verb*+& &+ should be regarded as an % empty premise), it is typesetted using -% "\@inferenceOrPremis", and an appropriate spacing to the next premise is +% \cmd{\@inferenceOrPremis}, and an appropriate spacing to the next premise is % added. Note that this space is also added after the last premise but then -% removed again, when \LaTeX\ has returned to "\@processPremises". +% removed again, when \LaTeX\ has returned to \cmd{\@processPremises}. % \begin{macrocode} - \def\@temp{#2}% - \ifx \@temp\empty \else% + \def\sem@tmp{#2}% + \ifx \sem@tmp\empty \else% \@ReturnAfterFi{% \@processPremiseLine#2\end% }% @@ -2067,32 +2072,32 @@ } % \end{macrocode} % If there are any premises in the -% \emph{following premises} we use "\@processPremisesLine" +% \emph{following premises} we use \cmd{\@processPremisesLine} % tail recursively. % \end{macro} % % \begin{macro}{\@inferenceOrPremis} -% "@inferenceOrPremis" decides wether there is a nested "\@inference" in a +% "@inferenceOrPremis" decides wether there is a nested \cmd{\@inference} in a % premise. % \begin{macrocode} \def\@inferenceOrPremis#1\inference{% - \@ifnext \end + \@ifnext \end {\@dropnext{\predicate{\ignorespaces #1}\unskip}}% {\@processInference #1\inference}% } % \end{macrocode} % The calling macro appends the argument with "\inference \end". We -% then test whether "\inference" followd by the token~"\end". If +% then test whether \cmd{\inference} followd by the token~\cmd{\end}. If % this is the case, we conclude that premise did not originally -% contain a nesting (\emph{ie} "\inference"). In this case, -% the "\end"-token is removed and the premise is set using -% "\predicate". Otherwise, "\inference" -% "\end" is removed and the inference rule is set---all this is done by -% "\@processInference". +% contain a nesting (\emph{ie} \cmd{\inference}). In this case, +% the \cmd{\end}-token is removed and the premise is set using +% \cmd{\predicate}. Otherwise, \cmd{\inference} +% \cmd{\end} is removed and the inference rule is set---all this is done by +% \cmd{\@processInference}. % \end{macro} % % \begin{macro}{\@processInference} -% Remove "\inference" "\end" from the testing for a nested +% Remove \cmd{\inference} \cmd{\end} from the testing for a nested % appearance of an inference rule. Typesets the inference and % adjust its vertical placement such that the baseline of its % conclusion match the baseline of a plain premise. @@ -2162,41 +2167,41 @@ \newtoks\@@tempSymbol % \end{macrocode} % \begin{tabular}{lp{9.2cm}} -% "\@@Nested" & Flag telling if the current diagram is nested within another \\ -% "\@@Left" & Flag telling that a nested diagram should be drawn to the +% \cmd{\@@Nested} & Flag telling if the current diagram is nested within another \\ +% \cmd{\@@Left} & Flag telling that a nested diagram should be drawn to the % left---if not set, the nested diagram is drawn to the right \\ -% "\@@Right" & Flag telling that a nested diagram should be drawn above +% \cmd{\@@Right} & Flag telling that a nested diagram should be drawn above % the current one---if not set, the diagram is drawn below % the current one \\ -% "\@@xShift" & Horizontal shift from the local origin to the starting -% position in units of "\unitlength". \\ -% "\@@yShift" & Vertical shift from the local origin to the starting -% position in units of "\unitlength" \\ -% "\@@Symbol" & The current machine symbol (i.e.\ the letter designating +% \cmd{\@@xShift} & Horizontal shift from the local origin to the starting +% position in units of \cmd{\unitlength}. \\ +% \cmd{\@@yShift} & Vertical shift from the local origin to the starting +% position in units of \cmd{\unitlength} \\ +% \cmd{\@@Symbol} & The current machine symbol (i.e.\ the letter designating % the programme/machine) \\ -% "\@@tempSymbol" & Used as temporary storage for different symbols +% \cmd{\@@tempSymbol} & Used as temporary storage for different symbols % \end{tabular} % -% When \LaTeX's "\put" command is invoked, it raises a "\hbox" to -% the given offset, giving it height zero, and puts a "\hss" in the end +% When \LaTeX's \cmd{\put} command is invoked, it raises a \cmd{\hbox} to +% the given offset, giving it height zero, and puts a \cmd{\hss} in the end % so that it will end up with zero width too. It expands the "picture" command -% given in "{"\lttdots"}" just before the "\hss", so they can be drawn -% from a local origin (given as coordinates to "\put"). The +% given in "{"\lttdots"}" just before the \cmd{\hss}, so they can be drawn +% from a local origin (given as coordinates to \cmd{\put}). The % diagram commands are adapted to this scheme. Thus they are all constructed % according to a common scheme: % \begin{itemize} % \item The offset (x in "count1" and y in "count2") from the local % origin to the starting position is calculated: If the diagram is % \emph{not} nested, the bottom should be centered around the position -% given by "\put". If the diagram is nested, the bottom should +% given by \cmd{\put}. If the diagram is nested, the bottom should % be at the current vertical position, if the diagram is to be drawn % \emph{upwards}. Conversely, the top should be at the current vertical % position if the diagram is to be drawn \emph{downwards}. If the % diagram should go to the \emph{left}, the right side should be at % the current horizontal position, and conversely. -% \item A "\hbox" is shifted to the given offset using "\hskip" and -% "\raise". Inside the box the frame of the diagram is drawn first. -% This is done using the "\put", "\line" and other +% \item A \cmd{\hbox} is shifted to the given offset using \cmd{\hskip} and +% \cmd{\raise}. Inside the box the frame of the diagram is drawn first. +% This is done using the \cmd{\put}, \cmd{\line} and other % "picture" commands. This relies on the way the % "picture" commands are construtced. It is admittely a little % bad style to use the commands in a non-documented ways, but it takes up a @@ -2210,15 +2215,15 @@ % consists of letters, it is considered a language symbol and is % set in the appropriate place. If itis a macro, however, the nested diagram % will be drawn, returning the language symbol using the global register -% "\@@symbol", which afterwards is set inside the diagram. +% \cmd{\@@symbol}, which afterwards is set inside the diagram. % -% \item If the diagram is nested, it is finally ensure, that "\@@symbol" +% \item If the diagram is nested, it is finally ensure, that \cmd{\@@symbol} % is set globally accordingly to the orientation. Thus it returns % the symbol to the ``calling'' diagram. % \end{itemize} % % Most of the translation diagrams are coded with a small stup, that -% packs the arguments (that are separated by commas) followed by an "\end", +% packs the arguments (that are separated by commas) followed by an \cmd{\end}, % so that \TeX's pattern matching can separate them. % % \begin{macro}{\compiler} @@ -2361,23 +2366,23 @@ % \begin{macro}{\@saveBeforeSymbolMacro} % These macros parse a single argument. As there is some testing of % the following token, it is splitted into four macros, the main one being -% "\@parseArg". It is given the offset to a possibly nested diagram and the +% \cmd{\@parseArg}. It is given the offset to a possibly nested diagram and the % position of the symbol within the current diagram. All it does is -% testing wether the argument is a command ("\@doSymbolMacro") or some +% testing wether the argument is a command (\cmd{\@doSymbolMacro}) or some % text string ("@\getSymbol"), and then passing the parameters on to the % appropriate macro. % \begin{macrocode} \def\@parseArg(#1)(#2){% \@ifNextMacro{\@doSymbolMacro(#1)(#2)}{\@getSymbol(#2)}} % \end{macrocode} -% "\@getSymbol" is used when the argument is ``plain'' text. It simply -% passes the parameters to "\@putSymbol", which does the setting up. +% \cmd{\@getSymbol} is used when the argument is ``plain'' text. It simply +% passes the parameters to \cmd{\@putSymbol}, which does the setting up. % \begin{macrocode} \def\@getSymbol(#1)#2\end{\@putSymbol[#2]{#1}} % \end{macrocode} -% "\@doSymbolMacro" is used when the argument has been identified as a +% \cmd{\@doSymbolMacro} is used when the argument has been identified as a % macro. It tests if there is an optional argument, which is then saved -% in "\@@symbol" using "\@saveBeforeSymbolMacro" and "\@@tempSymbol". +% in \cmd{\@@symbol} using \cmd{\@saveBeforeSymbolMacro} and \cmd{\@@tempSymbol}. % Then the macro is expanded. % \begin{macrocode} \def\@doSymbolMacro(#1)(#2)#3{% @@ -2402,8 +2407,8 @@ % % \begin{macro}{\@putSymbol} % This is an auxiliary macro that sets as default set the text of register -% "\@@symbol" on the given position. If, however, a parameter is given, -% "\@@symbol" is set to this parameter before "\@@symbol" is set. The +% \cmd{\@@symbol} on the given position. If, however, a parameter is given, +% \cmd{\@@symbol} is set to this parameter before \cmd{\@@symbol} is set. The % macro is used by all the diagrams to set the symbols when they have % been determined. % \begin{macrocode} @@ -2426,32 +2431,32 @@ % % \begin{macro}{\reservestyle} % \changes{2.0$\alpha$}{1996/05/18}{Added commands for setting reserved -% words: \CSname{reservestyle} and \CSname{<}} -% "\reservestyle" defines the typesetting style for a class of reserved +% words: \cs{reservestyle} and \cs{<}} +% \cmd{\reservestyle} defines the typesetting style for a class of reserved % words by defining a command for defining reserved words % from this class % \begin{macrocode} \newcommand{\reservestyle}[3][]{ \newcommand{#2}{\@parseDefineReserved{#1}{#3}} % \end{macrocode} -% "\reservestyle" takes an optional command to control the spacing, \eg -% "\mathinner", a command \CSname{\meta{name}} and a formatting +% \cmd{\reservestyle} takes an optional command to control the spacing, \eg +% \cmd{\mathinner}, a command \cs{\meta{name}} and a formatting % macro. The commandname is defined to call an internal parsing function, -% "\@parseDefineReserved" which will reserve the concrete words. +% \cmd{\@parseDefineReserved} which will reserve the concrete words. % \begin{macrocode} \expandafter\expandafter\expandafter\def \expandafter\csname set\expandafter\@gobble\string#2\endcsname##1% {#1{#3{##1}}}} % \end{macrocode} -% Defines the command \CSname{set\meta{name}} as a shortcut to get the +% Defines the command \cs{set\meta{name}} as a shortcut to get the % specified style. For an explanation of the expansion of -% \CSname{set\meta{name}}, see the definition of "@xdefineReserved" on +% \cs{set\meta{name}}, see the definition of "@xdefineReserved" on % p.~\pageref{page:styleExpansion}. % \end{macro} ^^A \reservestyle % % \begin{macro}{\@parseDefineReserved}^^A % \begin{macro}{\@xparseDefineReserved}^^A -% "\@parseDefineReserved" parses the parameters and set up the following +% \cmd{\@parseDefineReserved} parses the parameters and set up the following % two internal registers, which are used when defining each word. % \begin{macrocode} \newtoks\@@spacing @@ -2477,26 +2482,26 @@ % % \begin{macro}{\@defineReserved}^^A % \begin{macro}{\@xdefineReserved} -% The two commands define a reserved word: "\@defineReserved" testes if -% it is the last argument and makes it possible for "\@xdefineReserved" to -% test if an alternative text is provided. "\@xdefineReserved" also +% The two commands define a reserved word: \cmd{\@defineReserved} testes if +% it is the last argument and makes it possible for \cmd{\@xdefineReserved} to +% test if an alternative text is provided. \cmd{\@xdefineReserved} also % defines the reserved word. % \begin{macrocode} \def\@defineReserved#1,{% \@ifnextchar\end % \end{macrocode} -% Testes if this is the last word ("\end" is following the comma) to +% Testes if this is the last word (\cmd{\end} is following the comma) to % decide if another iteration should be done after defining the word in % "#1". % \begin{macrocode} {\@xdefineReserved #1[]\END\@gobble}% % \end{macrocode} -% If is was the last then remove the endmarker "\end". +% If is was the last then remove the endmarker \cmd{\end}. % \begin{macrocode} {\@xdefineReserved#1[]\END\@defineReserved}} % \end{macrocode} -% "[]" is inserted to ensure "\@xdefineReserved" that all -% definitions have a pair of and "\END" makes it possible to remove an +% "[]" is inserted to ensure \cmd{\@xdefineReserved} that all +% definitions have a pair of and \cmd{\END} makes it possible to remove an % extra set of brackets, if there was already a pair of brackets in "#1". % \begin{macrocode} \def\@xdefineReserved#1[#2]#3\END{% @@ -2511,18 +2516,18 @@ % \end{macrocode} % \label{page:styleExpansion} % This defines the reserved word given in "#1" to the text given in -% "#2". Saving "#2" in token register 0 is done to avoid having "\edef" +% "#2". Saving "#2" in token register 0 is done to avoid having \cmd{\edef} % expanding any commands in the text (\see \cite[p.~216]{texbook}). % % The reserved words are saved as macros with the names enclosed in angle % brackets. They can thus only be expanded using -% "\csname"\lttdots"\endcsname". The typesetting ("{#1{#3}}") is done +% \cmd{\csname}\lttdots\cmd{\endcsname}. The typesetting ("{#1{#3}}") is done % inside a group so it is possible to use style changing commands like -% "\scriptstyle" (though it would admittedly be strange). By enclosing -% the text "#2" in brackets one argument commands like "\textbf" are also +% \cmd{\scriptstyle} (though it would admittedly be strange). By enclosing +% the text "#2" in brackets one argument commands like \cmd{\textbf} are also % possible. % -% Be aware that the use of "\def" to +% Be aware that the use of \cmd{\def} to % define the command, allows redefinition of a already reserved words an % even other macros. % \end{macro} ^^A \@xdefineReserved @@ -2530,11 +2535,11 @@ % % \begin{macro}{\setreserved} % \begin{macro}{\<} -% "\setreserved" is a command for internal use (however provided for the +% \cmd{\setreserved} is a command for internal use (however provided for the % user if necessary to avoid conflict on "\<") to typeset a reserved word. -% "\setreserved" is used by "\<", +% \cmd{\setreserved} is used by "\<", % the command to typeset reserved words, and the argument is thus -% delimited by a ">" (the use being "\<"\meta{name}">"). +% delimited by a ">" (the use being \cs{<\meta{name}>}). % \begin{macrocode} \def\setreserved#1>{% \expandafter\let\expandafter\reserved@a\csname<#1>\endcsname @@ -2551,7 +2556,7 @@ % \end{macrocode} % Typesetting of the reserved word is done by expanding the macro defined % for the name. The macro name is first build in the internal \LaTeX\ -% register "\reserved@a" so it can be tested if the name is defined. +% register \cmd{\reserved@a} so it can be tested if the name is defined. % \end{macro} % \end{macro} % @@ -2571,12 +2576,12 @@ % \changes{1.2$\alpha$}{1996/01/31}{Changed the names} % \changes{1.2$\alpha$}{1996/01/31}{Added permanent use of document main font} % \makeatletter\changes{2.0}{1998/05/24}{Moved to the new "shorthand" options part and made ligatures for $\@bblb$ and $\@bbrb$.}\makeatother -% \changes{2.0}{1998/05/24}{Introduced the math mode commands \CSname{@mbblb} and \CSname{@mbbrb}.} +% \changes{2.0}{1998/05/24}{Introduced the math mode commands \cs{@mbblb} and \cs{@mbbrb}.} % \makeatletter % If \package{bbold}, is installed it is used to make \@bblb\ og \@bbrb. % Otherwise two brackets are drawn together. To make this transparent to the -% rest of the package, two commands "\@bblb" (\textbf{b}lackboard -% \textbf{b}old \textbf{l}eft \textbf{b}racket) and "\bbrb" +% rest of the package, two commands \cmd{\@bblb} (\textbf{b}lackboard +% \textbf{b}old \textbf{l}eft \textbf{b}racket) and \cmd{\bbrb} % (\textbf{b}lackboard \textbf{b}old \textbf{r}ight \textbf{b}racket) are % defined , which in both cases gives \@bblb\ or \@bbrb, respectively. % \begin{macrocode} @@ -2641,16 +2646,16 @@ % I have given a lot of thoughts to the problem of choosing a good syntax. % The most essential requirement was that syntax should be consistent and % simple/intuitive, close to that used in \emph{Introduction to the Semantics -% of Programming Languages}. To a semanticer, the most natural way to get -% \eval{\lttdots}{x} would probably appear to be "\eval["\lttdots"]x" +% of Programming Languages}. To a semantics person, the most natural way to get +% \eval{\lttdots}{x} would probably be "\eval["\lttdots"]x" % and indeed "\eval**["\lttdots"]x" rather than "\eval[**]{"\lttdots"}{x}". % This is however a departure from the standard syntax of \LaTeX. And even % more decisively, one cannot make an analogoues syntax for -% "\evalsymbol" since it is undecidable whether it is followed by a +% \cmd{\evalsymbol} since it is undecidable whether it is followed by a % symbol: Does \emph{eg} "\evalsymbol test" mean ``\evalsymbol[t]est'' or % ``\evalsymbol test''? This makes it necessary to use brackets in connection -% with "\evalsymbol" and in order to have a consistent syntax, I have made -% the same decission for "\eval". +% with \cmd{\evalsymbol} and in order to have a consistent syntax, I have made +% the same decission for \cmd{\eval}. %\begin{macro}{\evalsymbol} %\begin{macro}{\compsymbol}\mbox{} % \changes{1.0}{1995/10/18}{Settled on a syntax and described my considerations} @@ -2671,7 +2676,7 @@ % just special cases of the other commands (with the decided % syntax). Furthermore the names were translated from danish into english} % \changes{1.2$\alpha$}{1996/01/30}{Made a brand new definition to avoid an -% error when using \CSname{comp} and \CSname{eval} with displaymath} +% error when using \cs{comp} and \cs{eval} with displaymath} % \begin{macrocode} \newcommand{\eval}[3][]% {\mbox{$\mathcal{E}^{#1}$\@bblb \texttt{#2}\@bbrb}% @@ -2693,12 +2698,12 @@ \mbox{\@bblb\texttt{#1}\@bbrb$^\mathtt{#2}\mathtt{(#3)}$}} %</shorthand> % \end{macrocode} -% The command "\exe" is a stub that checks if the second argument begins +% The command \cmd{\exe} is a stub that checks if the second argument begins % with an optional sharp by looking at the token following the first % argument. If a bracket is not provided, an empty second argument is -% added before the control is given to "\@exe", which does the setting. +% added before the control is given to \cmd{\@exe}, which does the setting. % There is no place to do an expedient linebreak, so everything is -% encapsulated in a "\mbox". +% encapsulated in a \cmd{\mbox}. % \end{macro} % % \subsection{End of All Options Files} @@ -2720,37 +2725,33 @@ % The document preamble and the code to generate code is placed at the end, % so that the documentation may be printed before \semantic\ is installed. % For the use of \package{docstrip}, the code is marked as conditional -% code, so that it is not included in "semantic.sty" when installing the +% code, so that it is not included in "semantic.sty" when installing the % package. % \begin{macrocode} %<*documentation> \documentclass{ltxdoc} \usepackage[latin1]{inputenc} -\usepackage[T1]{fontenc} - % Checks if the package for multiple columns is installed and if that - % is the case, then load it. Borrowed from the standard package \ - % ``doc.dtx'' +% \end{macrocode} +% We test whether multiple columns are supported (the package is +% loaded by \package{ltxdoc}): +% \begin{macrocode} \newif\ifmulticols \IfFileExists{multicol.sty}{\multicolstrue}{} - -\newif\ifdanger -\dangertrue % Make this line into a comment, if the manual font - % ``manfnt.tfm'' is not installed on your system +% \end{macrocode} +% We make a command \cmd{\command} for the dangerous bend sign (used in the +% \TeX-book). If the font "manfnt.tfm" is not installed on your +% system, you should turn the second line, \cmd{\dangertrue} into a +% comment: +% \begin{macrocode} +\newif\ifdanger +\dangertrue \DeclareFontFamily{U}{manual}{} \DeclareFontShape{U}{manual}{m}{n}{<-> manfnt }{} - \newcommand{\danger} {{\fontencoding{U}\fontfamily{manual}\selectfont\symbol{127}}} - -\OnlyDescription % Make to a comment to get the documentation -\DisableCrossrefs % Remove comment if the index is ready or if you - % do not wish the index (e.g. when only printing - % the users guide) -% \CodelineIndex % Make a index of the command usage -% \RecordChanges % Make the changes history - -\makeatletter - +% \end{macrocode} +% We define some abbreviations used in the text, +% \begin{macrocode} \usepackage{xspace} \newcommand{\ie}{\emph{ie}\xspace} \newcommand{\eg}{\emph{eg}\xspace} @@ -2758,26 +2759,63 @@ \newcommand{\semantic}{\texttt{semantic}\xspace} \newcommand{\lttdots}{\ensuremath{\mathtt{\ldots}}} \newcommand{\ExplicitSpace}{\texttt{\char'040}} -\newcommand{\CSname}[1]{\texttt{\protect\bslash#1}} +% \end{macrocode} +% a command for typesetting the names of other packages. +% \begin{macrocode} \newcommand{\package}[1]{\textsf{#1}} - -\def\GetInfo#1{% - \def\filename{#1}% - {\def\ver##1(##2)##3\relax{% - \def\tc{##1}% - \def\td{##2}% - \ifx \td\empty % - \else % - \edef\td{$\csname ##2\endcsname$}% - \fi}% - \def\tb##1 v##2 ##3\end{% - \gdef\filedate{##1}% - \ver ##2()\relax% - \xdef\fileversion{\tc\expandafter\noexpand\td}% - \gdef\fileinfo{##3}}% - \edef\ta{\csname ver@#1\endcsname}% - \expandafter\tb\ta\end\relax}} - +% \end{macrocode} +% and a command for printing CVS tags. +% \begin{macrocode} +\def\RCS$#1: #2 ${\@namedef{RCS#1}{#2}} +% \end{macrocode} +% \changes{2.0(delta)}{2002/06/19}{Included the RCS revision in the file information} +% +% We make a command \cmd{\labelnextline} for labelling the following line +% \begin{macrocode} +\newcommand{\labelnextline}[1]{{% + \count8\inputlineno \advance\count8\@ne + \@bsphack + \protected@write\@auxout{}% + {\string\newlabel{#1}{{\the\count8}{\thepage}}}% + \@esphack}} +% \end{macrocode} +% We then define that the default is to typeset only the manual so we +% can live without cross references. +% \begin{macrocode} +\OnlyDescription +\DisableCrossrefs +% \end{macrocode} +% You can change this behaviour by uncommenting line two to five +% below. That will include the implementation and also add +% crossreferences, an index of the command usage and definitions, and +% the change history. +% \begin{macrocode} +\labelnextline{lin:AlsoImplementation} + % \AlsoImplementation + % \EnableCrossrefs + % \CodelineIndex + % \RecordChanges +% \end{macrocode} +% We define the command \cmd{\semanticVersionPrint} containing the commands to +% to typeset the version number with neatly formatting of the Greek letter. +% \begin{macrocode} +\makeatletter +{\def\ver#1(#2)#3\relax{% + \def\tc{#1}% + \def\td{#2}% + \ifx\td\empty + \else \edef\td{$\csname #2\endcsname$}\fi}% + \expandafter\ver\semanticVersion()\relax + \xdef\semanticVersionPrint{\tc\td}} +% \end{macrocode} +% (\cmd{\tc} and \cmd{\td} are use similarly in \LaTeX's \cmd{\GetInfo}.) +% \changes{2.0\delta}{2002/07/12}{Deleted \cs{GetInfo}.} +% \changes{2.0\delta}{2002/07/12}{Introduced \cs{semanticVersionPrint} to give a formatted version number.} +% We define a command \cmd{\parmark}\oarg{mark} which starts a +% paragraph with \meta{mark} to the left of the paragraph. This is to +% put dangerous bends around certain paragraphs. If \meta{mark} is +% not given, the default set with \cmd{\setparagraphmark} is used. +% \begin{macrocode} \newtoks\p@rm@rk \newcommand{\setparagraphmark}[1]{\p@rm@rk={#1}} \newcommand{\parmark}[1][\the\p@rm@rk]{% @@ -2785,11 +2823,16 @@ \clubpenalty=10000% \noindent\hangindent=\wd0 \hangafter=-2% \llap{\raise.35em\hbox{\vbox to\z@{\box0 \vss}\hfill}}} - +% \end{macrocode} +% We make an environment for typesetting small pieces of code +% \begin{macrocode} \newenvironment{code} {\begin{verse}\small} {\end{verse}} - +% \end{macrocode} +% and a variant of the "itemize" environment to be used inside +% columns (we choose smaller values of the indentation). +% \begin{macrocode} \newenvironment{columnItemize}% {\begin{list}% {$\bullet$}% @@ -2798,68 +2841,30 @@ \setlength{\labelsep}{\leftmargin}% \addtolength{\labelsep}{-\labelwidth}}}% {\end{list}} - +% \end{macrocode} +% Finally, we print a (hopefully) comforting message to the user +% \begin{macrocode} \typeout{} \typeout{NOTE: If LaTeX complains} \typeout{\@spaces\@spaces Font U/manual/m/n/9 manfnt at % 9.0 not loadable: ...} -\typeout{\@spaces\space\space then comment out the line (around 2700)} +\typeout{\@spaces\space\space then comment out the line (around 2725)} \typeout{\@spaces\@spaces \protect\dangertrue} \typeout{} \typeout{There will be some overfull and underfull boxes, % and some moved marginpars.} \typeout{Do not bother!!!} \typeout{} - \makeatother - +% \end{macrocode} +% before we finally starts typesetting the manual. +% \begin{macrocode} \begin{document} \DocInput{semantic.dtx} \end{document} %</documentation> % \end{macrocode} % -% The preamble contains the normal choosing of codetables etc., it checks -% whether -% the requested non-standard package can be found, and it defines some -% commands (described below) for the use of the documentation and types out -% some ``relaxing'' messages to the users. I do not know -% any way to check whether a named font is on the system---"\IfFileExist" -% cannot -% be used since it searches the path in---say---"TEXINPUT", while the fonts are -% searched using the path "TFMINPUT". -% -% The commands defined are described below: -% \begin{description} -% \item[\CSname{ifmulticols}] is a conditional ensuring that \TeX\ branches over -% parts setting up multiple columns, when this is not provided. -% \item[\CSname{ifdanger}] is a conditional that tells whether the dangerous bend -% sign from \emph{The \TeX-book} is available. The manualfont ("manfnt") -% is declared to NFSS and the command "\danger" is defined anyway. It will -% however only be used and therefore tried loaded if "\ifdanger" is true. -% \item[\CSname{semantic}] gives the package symbol (name in a -% typewriter-font) -% \item[\CSname{eg}, \CSname{see}, and \CSname{ie}] Abbreviations written -% with emphasis -% \item[\CSname{lttdots}] gives ellipsis in a typewriter-font -% \item[\CSname{CSname}] typesets a command name when this is not possible using -% the standard notation, |"|\lttdots|"|, from \package{ltxdoc} (eg.\ in -% headers). Intentionally given a name close to \TeX's "\csname". -% \item[\CSname{package}] sets the name of \LaTeX-package. -% \item[\CSname{GetInfo}] defines the commands "\fileversion", "\filedate" -% and "\fileinfo", providing information about \semantic\ given in -% "\providespackage". It is mainly borrowed from a command with the same -% name in \package{ltxdoc} but has been changed to type the additional -% greek letter in the package version provided in parenthesis. -% \item[\CSname{parmark} and \CSname{setparagraphmark}] is used to set a -% given symbol in front of a paragraph. "\setparagraphmark" defines the -% symbol to be used by "\parmark" if no argument is given explicit. -% \item[\texttt{code}] Environment for displaying examples in the Users Guide. -% \item[\texttt{columnitemize}] Makes an itemization where the bullet is not -% indented, since indentation would make the text too narrow when the -% text is set in columns. -% \end{description} -% % \begin{thebibliography}{1} % \bibitem{texbook} % \textsc{D.E.~Knuth} \emph{The \TeX-book}, 1994, Addison-Wesley diff --git a/Master/texmf-dist/source/latex/semantic/semantic.ins b/Master/texmf-dist/source/latex/semantic/semantic.ins index 7614a6415b9..66a595723db 100644 --- a/Master/texmf-dist/source/latex/semantic/semantic.ins +++ b/Master/texmf-dist/source/latex/semantic/semantic.ins @@ -1,5 +1,25 @@ -% Styreprogram til at lave semantik-pakken udfra .dtx filen. -% Skal blot køres igennem TeX og senere indarbejdes direkte i semantic.dtx. +%% CVSId: $Id: semantic.ins,v 1.6 2002/07/11 17:30:07 turtle Exp $ +%% semantic.ins (c)1995--2002 Peter Møller Neergaard and +%% Arne John Glenstrup +%% +% +% This program may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.2 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.2 or later is part of all distributions of LaTeX +% version 1999/12/01 or later. +% +% This program consists of the files semantic.dtx and semantic.ins +% +% This file is the driver program used to install the semantic package from +% the file semantic.dtx. +% +% You install the package by running tex on semantic.ins, i.e., +% +% tex semantic.ins +% \def\batchfile{semantic.ins} \input docstrip |