summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex/semantic
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-07-08 00:45:13 +0000
committerKarl Berry <karl@freefriends.org>2006-07-08 00:45:13 +0000
commitd3b974a90a027f4e3109e15c5412d8f83085c284 (patch)
tree56b6cf3b21ebb2884ae3a039887b184e080dc783 /Master/texmf-dist/source/latex/semantic
parentc595c45087165b3b8ae636cfe06fed1e8585e51d (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.dtx903
-rw-r--r--Master/texmf-dist/source/latex/semantic/semantic.ins24
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