summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/source/latex
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2006-01-11 23:55:03 +0000
committerKarl Berry <karl@freefriends.org>2006-01-11 23:55:03 +0000
commitd0224e39132d2b2a13571f3b4ce9ececbbd2634a (patch)
treee206cb1700cbd5651c5037d2286992873c31cd8e /Master/texmf-dist/source/latex
parent852770c15a43a13ef4dfee0594bf733d944cb459 (diff)
trunk/Master/texmf-dist/source/latex/metre
git-svn-id: svn://tug.org/texlive/trunk@382 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex')
-rw-r--r--Master/texmf-dist/source/latex/metre/metre.dtx4068
-rw-r--r--Master/texmf-dist/source/latex/metre/metre.ins42
2 files changed, 4110 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/metre/metre.dtx b/Master/texmf-dist/source/latex/metre/metre.dtx
new file mode 100644
index 00000000000..6a918778227
--- /dev/null
+++ b/Master/texmf-dist/source/latex/metre/metre.dtx
@@ -0,0 +1,4068 @@
+% \iffalse meta-comment
+%
+% metre.dtx
+% Copyright 2000 2001 Gianfranco Boggio-Togna
+%
+% 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 metre.dtx and metre.ins
+%
+%<*driver>
+\documentclass[11pt]{ltxdoc}
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{\medskipamount}
+\usepackage{metre}
+\MakeShortVerb{|}
+\def\M@yields{ yields\kern .15em\relax}
+%\EnableCrossrefs
+%\CodelineIndex
+\DisableCrossrefs
+% To get the documented source of the package, comment out
+% the next line and uncomment the following one.
+\OnlyDescription
+%\AlsoImplementation
+\begin{document}
+ \renewcommand{\IndexMin}{100ex}
+ \setcounter{IndexColumns}{2}
+ \renewcommand{\usage}[1]{#1}
+ \IndexPrologue{\section{Index of commands} The index does not include %
+ the commands listed on pp. \pageref{metsym} and \pageref{accsym}}
+ \DocInput{metre.dtx}
+ \PrintIndex
+\end{document}
+%</driver>
+%
+% \fi
+%
+% \CheckSum{5562}
+%
+% \title{{\LARGE\tt metre.sty}\\
+% A \LaTeX{} package for classicists\\
+% {\small Version 1.0\ \ (2001/12/05)}\\}
+% \author{Gianfranco Boggio\,--Togna
+% \thanks{Author's address: C.P. 14021, I-20140 Milano}\\
+% \textsl{gbt\kern .08em @\kern .1em acm.org}}
+% \date{}
+% \maketitle
+% \vspace{-2ex}
+% \begin{center}
+% \begin{minipage}{.7\linewidth}
+% \small\it
+% \begin{center}
+% Questo piccolo lavoro \`e dedicato ai\\
+% miei insegnanti di greco e latino del\\
+% Liceo Ginnasio `Girolamo Rossi' di Ventimiglia.
+% \end{center}
+% \end{minipage}
+% \end{center}
+% \vspace{2ex}
+% \section*{License}
+% \noindent \copyright\ Copyright 2000 2001 Gianfranco Boggio\,--Togna.\par
+% 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
+% \texttt{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.\par
+% This program consists of the files \texttt{metre.dtx} and
+% \texttt{metre.ins}.
+% \section*{Acknowledgement}
+% The author wishes to thank Dr.~Rainer Thiel of
+% Philipps--Universit\"at, Marburg, for providing him with
+% much material and expert advice on the \textit{arcana}
+% of classical philology. Without Dr.~Thiel's
+% assistance, the package would never have seen
+% the light of day.
+%
+% \newpage
+%
+% \section*{Introduction}
+%
+% The package provides classicists with some of the tools that are needed
+% for typesetting scholarly publications dealing with Greek and Latin
+% texts, with special emphasis on Greek verse.
+%
+% As the name suggests, the core of the package is a comprehensive set of
+% commands for generating metrical schemes and for placing prosodical marks
+% on text set in the Latin or the Greek alphabet.
+%
+% The rest of the package provides a miscellany of commands for symbols
+% (most of them not directly related to metre) that are often used
+% in critical editions of classical texts.
+%
+% The package does not require any special font: all symbols are taken
+% from the Computer Modern OT1 fonts (included in all distributions of
+% \TeX) or are generated by means of \TeX{} primitives.
+%
+% \section*{Notation}
+%
+% The notation used for quantities that can appear as command arguments
+% is that of \textit{The \TeX{}book}:
+% \begin{tabbing}
+% mmmm\=mmmmmmm\=\kill
+% \>\meta{dimen}\>a legitimate \TeX{} dimension.\\
+% \>\meta{number}\>a (signed) integer.\\
+% \>\meta{factor}\>a (signed) decimal constant.\\
+% \end{tabbing}
+%
+% Many commands accept an \meta{optional argument} that can be used
+% to modify the effect of the command. The \meta{optional argument}
+% is specified according to the usual \LaTeX{} conventions: within
+% square brackets, after the command name.
+% \newpage
+% \tableofcontents
+%
+% \newpage
+%
+% \section{Package option\label{option}}
+%
+% The package has one option, which can be specified in the usual way
+% within square brackets (e.g.~|\usepackage[en]{metre}|). The option
+% determines the vertical placement of the metrical symbols generated
+% by |\metra|.
+%
+% The default style is the one that is commonly used in Germany
+% (and universally in Italy). The base of the metrical symbols is aligned
+% with the baseline of the surrounding text and composite symbols are
+% built upwards from the baseline: \metra{\m\b\bm\mb\bbm}.
+%
+% The |en|\footnote{%
+% |En| selects the same style as |en| with one difference:
+% the \textit{macron} in \metra{\bbmb} is placed on the horizontal axis
+% \metra[\ms{En}]{\m\bbmb\m}\,, while the |[en]| option puts the
+% \textit{breve} on the axis \metra[\ms{en}]{\m\bbmb\m}\,.}
+% option selects an alternative style which is usual in English typography
+% (for instance, in books published by Oxford University Press).
+% The horizontal axis of the metrical symbols is aligned with the axis of
+% characters such as |=| in the surrounding text and symbols, whether
+% simple or composite, are roughly symmetrical with respect to the
+% axis: \metra[\ms{en}]{\m\b\bm\mb\bbm}.
+%
+% You can change the style \label{style} at any time with the
+% |\MetraStyle| command (see sect.~\ref{metrastyle}).
+%
+% \newpage
+%
+% \section{Metrical notation}
+%
+% \subsection{The \texttt{\protect\bslash metra} command}
+%
+% \subsubsection{Metrical symbols\label{metra}}
+%
+% The |\metra| \DescribeMacro{\metra} command takes one argument and
+% generates the metrical scheme defined by the commands given within the
+% argument.
+%
+% The list of metrical symbols and corresponding commands is on page
+% \pageref{metsym}; it includes all the symbols (marked [\textit{W}] in
+% the table) used by M.\,L.~West in \textit{Greek Metre} (Oxford, 1982).
+% The commands for metrical symbols are defined only within the argument
+% of |\metra| and are not available outside it. The text typeset by
+% |\metra| is never split across lines; if it does not fit within the line,
+% \TeX{} gives an |Overfull box| message.
+%
+% The |\r|, |\R|, |\t| and |\T| commands take an \meta{optional argument},
+% a \meta{factor} which is multiplied by the |ex| value for the font in use
+% for the metrical symbols; the result is the amount by which the symbol
+% is raised (\meta{factor} $> 0$) or lowered (\meta{factor} $< 0$).
+%
+% The metrical symbols are separated by a short space, whose size may be set
+% with the |\InterSigna| command (see sect. \ref{intersigna}). To generate a
+% larger space (typically between feet) use the |\s| \DescribeMacro{\s}
+% command; you can modify the size of the space generated by |\s| with the
+% |\InterPedes| command (see sect.~\ref{interpedes}). You can also use the
+% standard \TeX{} and \LaTeX{} commands for horizontal spacing.
+%
+% The |\v| \DescribeMacro{\v} command inserts a comma.
+%
+% \subsubsection{Placing marks on symbols}
+%
+% The |\'| \DescribeMacro{\'} and |\`| commands place an accent (respectively
+% acute or grave) over the metrical symbol which follows: |\'\m|\M@yields
+% \metra{\'\m}\,, |\`\m| \DescribeMacro{\`}\M@yields \metra{\`\m}\,.
+% Both commands accept an \meta{optional argument}, a \meta{factor} which
+% specifies the displacement of the accent to the right, as a fraction of
+% the width of the symbol. The default value (.5) places the accent over the
+% midpoint of the symbol: |\'[.25]\bb|\M@yields \metra{\'[.25]\bb},
+% |\'\bb|\M@yields \metra{\'\bb}, |\'[.75]\bb|\M@yields \metra{\'[.75]\bb}.
+% For convenience, a set of commands (see page \pageref{accsym}) is provided
+% for generating the most common combinations of accents and symbols.
+%
+% The |\k| \DescribeMacro{\k} command places the symbol for \textit{catalexis}
+% under the symbol which follows: |\k\m|\M@yields \metra{\k\m}\,,
+% |\k\bm|\M@yields \metra{\k\bm}\,. The |\K| \DescribeMacro{\K} command
+% generates a slightly larger symbol: |\K\m|\M@yields \metra{\K\m}\,,
+% |\K\bm|\M@yields \metra{\K\bm}\,.
+%
+% The |\q| \DescribeMacro{\q} command encloses the argument in some kind of
+% \textit{``quotation marks''}; the type of mark used is selected by
+% the character that follows the command.
+% The |\Q| \DescribeMacro{\Q} command generates slightly larger marks.\par
+% \vspace{2ex}
+% \tabskip 4em plus 4em minus 2em%
+% \halign to \hsize{%
+% \hfill#\hfill\tabskip 1em plus 1em&\hfill#\hfill
+% \tabskip 4em plus 4em minus 2em\cr
+% \it Type&\it to get\cr
+% \noalign{\smallskip}
+% |\q(\bbm|&\metra{\q(\bbm}\cr
+% |\Q(\bbm|&\metra{\Q(\bbm}\cr
+% |\q'\bbm|&\metra{\q'\bbm}\cr
+% |\Q'\bbm|&\metra{\Q'\bbm}\cr
+% |\q"\bbm|&\metra{\q"\bbm}\cr
+% |\Q"\bbm|&\metra{\Q"\bbm}\cr
+% |\q!\bbm|&\metra{\q!\bbm}\cr
+% |\Q!\bbm|&\metra{\Q!\bbm}\cr
+% |\q<\bbm|&\metra{\q<\bbm}\cr
+% |\Q<\bbm|&\metra{\Q<\bbm}\cr
+% }
+%
+% The |\d| \DescribeMacro{\d} command places the symbol for \textit{caesura}
+% at the middle point of the symbol which follows: |\d\mbb|\M@yields
+% \metra{\d\mbb}\,, |\d\bbm|\M@yields \metra{\d\bbm}\,.
+%
+% The |\S| \DescribeMacro{\S} command has one argument: a sequence of
+% characters, which is raised from the baseline by 1.25 times
+% the \texttt{ex} value for the font in use for the metrical symbols
+% and set in a smaller size: |\C\S{H}|\M@yields \metra{\C\S{H}}. You can
+% change the amount by which the argument is raised by specifying an
+% \meta{optional argument}. The argument is a \meta{factor} which is
+% multiplied by the \texttt{ex} value for the font in use for the metrical
+% symbols; the result is added to the default value. |\S[-.3]?\mb| \M@yields
+% \metra{\S[-.3]?\mb}, |\bm\S[-.3]?| \M@yields \metra{\bm\S[-.3]?}.
+%
+% \subsubsection{Placing annotations on symbols}\label{annot}
+%
+% The |\n| \DescribeMacro{\n} command has two arguments: the first is the
+% text to be placed over a symbol; the second is the command for the symbol.
+% The |\ni| \DescribeMacro{\ni} command places the text \textit{under}
+% the symbol. |\n1\m|\M@yields \metra{\n1\m}\,,
+% |\ni1\m|\M@yields \metra{\ni1\m}\,.
+%
+% The |\N| \DescribeMacro{\N} command has three arguments: the first is
+% the text to be placed over a symbol; the second is the command for the
+% symbol itself; the third is the text to be placed \textit{under} the symbol.
+% The |\mbbx| and |\bbmx| commands are meant to be used in conjunction
+% with |\N|: |\N{25}\mbbx{36}|\M@yields \metra{\N{25}\mbbx{36}}\,,
+% |\N{25}\bbmx{36}|\M@yields \metra{\N{25}\bbmx{36}}\,.
+%
+% In some circumstances (for instance, if the metrical symbol is
+% surrounded by taller symbols) it may be necessary to increase the
+% spacing between the symbol and the text above or under it. This can
+% be achieved by specifying an \meta{optional argument}, a \meta{factor}
+% which is multiplied by the value of the default spacing. For the |\N|
+% command, the new spacing applies to both sides.
+%
+% In metrical schemes, |\n| and |\N| can be used to give a reference to
+% one or more line numbers within the text. It is advisable to restrict
+% such references to one or two numbers. For more than two
+% numbers (and whenever the numbers placed over different symbols
+% overlap) it is usually better to place a single mark over
+% the symbol. The corresponding list of line numbers can be given in a
+% separate note, which may be generated with the |\numeri|
+% \DescribeMacro{\numeri}command: the argument is a sequence of
+% characters that \textit{must} contain a colon: the text preceding the
+% colon is set in italics (it is assumed that the same text, also set in
+% italics, appears over the symbol).
+%
+% It is also possible to stack the numbers up vertically by using the
+% |\structa| command (see page \pageref{structa}):
+%
+% |\n{\structa{20}{36}}\mb| \M@yields \metra{\n{\structa{20}{36}}\mb}
+%
+% |\n{\structa{31}{\structa{54}{108}}}\mb| \M@yields
+% \metra{\n{\structa{31}{\structa{54}{108}}}\mb}
+%
+% |\n{\structa[.1]{31;54}{108}}\mb|\ \ yields \kern .5em\relax
+% \metra{\n{\structa[.1]{31;54}{108}}\mb}
+% \newpage
+% \centerline{\Large METRICAL SYMBOLS}\par
+% \label{metsym}
+% \vspace {1ex}
+% \begin{tabbing}
+% mmmmmmm\=mmmmmmmmm\=mmmmmmmmmm\=\kill
+% |\m|\>\metra{\m}\>long [\textit{W}]\\
+% |\b|\>\metra{\b}\>short [\textit{W}]\\
+% |\a|\>\metra{\a}\>anceps [\textit{W}]\\
+% |\ma|\>\metra{\ma}\>long syllable in anceps position [\textit{W}]\\
+% |\bba|\>\metra{\bba}\>`teilbares Anceps'\\
+% |\bm|\>\metra{\bm}\>usually long [\textit{W}]\\
+% |\mb|\>\metra{\mb}\>usually short [\textit{W}]\\
+% |\bbmb|\>\metra{\bbmb}\>short replaceable by resolvable long\\
+% |\bbm|\>\metra{\bbm}\>resolvable long [\textit{W}]\\
+% |\bbmx|\>\metra{\bbmx}\>\textsl{see sect.~\ref{annot} %
+% (page \pageref{annot})}\\
+% |\bb|\>\metra{\bb}\>resolved long [\textit{W}]\\
+% |\bbb|\>\metra{\bbb}\>`teilbares Breve'\\
+% |\mbb|\>\metra{\mbb}\>contractible biceps [\textit{W}]\\
+% |\mbbx|\>\metra{\mbbx}\>\textsl{see sect.~\ref{annot} %
+% (page \pageref{annot})}\\
+% |\pm|\>\metra{\pm}\>\\
+% |\ppm|\>\metra{\ppm}\>contracted biceps [\textit{W}]\\
+% |\vppm|\>\metra{\vppm}\\
+% |\vpppm|\>\metra{\vpppm}\\
+% |\tsmb|\>\metra{\tsmb}\>triseme (equivalent to \metra{\m\b}) [\textit{W}]\\
+% |\tsbm|\>\metra{\tsbm}\>triseme (equivalent to \metra{\b\m}) [\textit{W}]\\
+% |\tsmm|\>\metra{\tsmm}\>tetraseme (equivalent to \metra{\m\m}) [\textit{W}]\\
+% |\ps|\>\metra{\ps}\>pentaseme\\
+% |\oo|\>\metra{\oo}\>two positions of which one at least
+% must be long [\textit{W}]\\
+% |\C|\>\metra{\C}\>word-end [\textit{W}]\\
+% |\Ppp|\>\metra{\Ppp}\>often word end [\textit{W}]\\
+% |\Pp|\>\metra{\Pp}\>less often word end [\textit{W}]\\
+% |\Pxp|\>\metra{\Pxp}\\
+% |\Pppp|\>\metra{\Pppp}\>\\
+% |\Ppppp|\>\metra{\Ppppp}\>\\
+% |\Cc|\>\metra{\Cc}\>period-end (or beginning) [\textit{W}]\\
+% |\Ccc|\>\metra{\Ccc}\>strophe-end (or beginning) [\textit{W}]\\
+% |\c|\>\metra{\c}\>({\it caesura}) same as \verb/\C/ but with wider spacing\\
+% |\cc|\>\metra{\cc}\>same as \verb/\Cc/ but with wider spacing\\
+% |\ccc|\>\metra{\ccc}\>same as \verb/\Ccc/ but with wider spacing\\
+% |\ppp|\>\metra{\ppp}\>same as \verb/\Ppp/ but with wider spacing\\
+% |\pp|\>\metra{\pp}\>same as \verb/\Pp/ but with wider spacing\\
+% |\pxp|\>\metra{\pxp}\>same as \verb/\Pxp/ but with wider spacing\\
+% |\pppp|\>\metra{\pppp}\>same as \verb/\Pppp/ but with wider spacing\\
+% |\ppppp|\>\metra{\ppppp}\>same as \verb/\Ppppp/ but with wider spacing\\
+% |\p|\>\metra{\p}\>syncopation \\
+% |\r|\ |\R|\>\metra{\r\s\R}\>in responsion with [\textit{W}]\\
+% |\t|\ |\T|\>\metra{\t\s\T}\>beginning or end of composition [\textit{W}]\\
+% |\x|\>\metra{\x}\>change of speaker [\textit{W}]\\
+% \end{tabbing}
+% \vspace{8ex}
+% \hrule height .6pt
+% \vspace{8ex}
+% \begin{center}
+% {\Large SYMBOLS WITH ACCENT}\par
+% \end{center}
+% \label{accsym}
+% \vspace {1ex}
+% \tabskip 4em plus 4em minus 2em%
+% \halign to \hsize{%
+% #\hfill\tabskip 1em plus 1em&\hfill#\hfill
+% \tabskip 3em plus 3em minus 2em
+% &#\hfill\tabskip 1em plus 1em&\hfill#\hfill
+% \tabskip 4em plus 4em minus 2em \cr
+% |\M|&\metra{\M}&|\gM|&\metra{\gM}\cr
+% |\B|&\metra{\B}&|\gB|&\metra{\gB}\cr
+% |\Bm|&\metra{\Bm}&|\gBm|&\metra{\gBm}\cr
+% |\Mb|&\metra{\Mb}&|\gMb|&\metra{\gMb}\cr
+% |\Mbb|&\metra{\Mbb}&|\gMbb|&\metra{\gMbb}\cr
+% |\mBb|&\metra{\mBb}&|\gmBb|&\metra{\gmBb}\cr
+% |\mbB|&\metra{\mbB}&|\gmbB|&\metra{\gmbB}\cr
+% |\BBm|&\metra{\BBm}&|\gBBm|&\metra{\gBBm}\cr
+% |\Bbm|&\metra{\Bbm}&|\gBbm|&\metra{\gBbm}\cr
+% |\bBm|&\metra{\bBm}&|\gbBm|&\metra{\gbBm}\cr
+% |\BB|&\metra{\BB}&|\gBB|&\metra{\gBB}\cr
+% |\Bb|&\metra{\Bb}&|\gBb|&\metra{\gBb}\cr
+% |\bB|&\metra{\bB}&|\gbB|&\metra{\gbB}\cr
+% }
+% \newpage
+%
+% \subsubsection{Changing the appearance of the symbols}
+%
+% You can change the appearance of the metrical symbols with these
+% commands:
+%
+% \begin{list}{}{\leftmargin 0pt}
+%
+% \item |\MetraStyle|\DescribeMacro{\MetraStyle}\label{metrastyle}
+% changes the style (see sect.~\ref{option}) for the metrical symbols.
+% The argument is either |en| (or |En|) for the `English' style or
+% |st| for the standard, default style.
+%
+% \item |\InterSigna| \DescribeMacro{\InterSigna} \label{intersigna} sets
+% the size of the space between adjacent metrical symbols. The argument is a
+% \meta{factor} which is multiplied by the width of a \textit{macron}
+% (default:~.2).
+%
+% \item |\InterPedes| \DescribeMacro{\InterPedes}\label{interpedes} sets
+% the size of the space generated by the |\s| command. The argument is a
+% \meta{factor} which is multiplied by the width of a \textit{macron}
+% (default:~.67).
+%
+% \item |\SubSigna| \DescribeMacro{\SubSigna} modifies the distance between
+% the horizontal axis of the metrical symbols and the baseline of the
+% surrounding text. The parameter is a \meta{factor} which is multiplied
+% by the \texttt{ex} value for the font in use immediately before the
+% |\metra| command; the result is added to the default displacement
+% of the axis from the baseline.
+%
+% \item |\Intervallum| \DescribeMacro{\Intervallum} sets the spacing between
+% the components of composite symbols such as |\bm| or |\mb|. It may be
+% necessary to increase the spacing if the output is to be printed on a
+% low-resolution device. The parameter is a \meta{factor} which is multiplied
+% by the \texttt{ex} value for the font in use for the metrical symbols
+% (default:~.08).
+%
+% \item |\Magnitudo| \DescribeMacro{\Magnitudo} modifies the size of the
+% metrical symbols. The parameter is a \meta{number}: a positive value
+% increases the size, a negative value decreases it. |\Magnitudo{+1}|
+% selects the next higher font size in the \LaTeX{} font hierarchy extending
+% from |\tiny| to |\Huge|; |\Magnitudo{-1}| the next lower.
+%
+% \end{list}
+%
+% The effect of these commands, unless they occur inside a \TeX{}
+% \textit{group}, applies to the rest of the document from the point of
+% use forwards. You can confine the effect to the argument of a single
+% |\metra| command by placing the command(s) inside an \meta{optional argument}.
+% For convenience, an abbreviated form of the command names is provided
+% for use (only) within the optional argument: |\ms|, |\is|, |\ip|, |\ss|,
+% |\i|, |\m|, with the obvious meaning. |\en| and |\st| may be used as
+% shorthand for |\ms{en}| and |\ms{st}|.
+%
+% \subsection{The environments}
+%
+% The two environments, \texttt{metrica} and \texttt{metrike}, allow you
+% to place prosodical marks over text set in, respectively, the Latin
+% and the Greek alphabet.
+%
+% To place a \textit{macron} over a letter, put |\=| \DescribeMacro{\=}
+% in front of the letter; to place a \textit{breve}, put |\-| \DescribeMacro{\-}
+% in front of the letter (the standard \TeX{} control sequence |\u| may also
+% be used). |\begin{metrica} \=a\-e \end{metrica}|\M@yields
+% \begin{metrica} \=a\-e \end{metrica}.
+%
+% To place a \textit{macron} or \textit{breve} over a diphthong, enclose
+% the diphthong in braces: |{\metrica \={ae}}|\M@yields{\metrica \={ae}}.
+%
+% The environments appear to be compatible with most \LaTeX{}
+% environments. They are \textbf{not} compatible with the \LaTeX{}
+% \texttt{tabbing} environment, which redefines some critical
+% control sequences.
+%
+% By default, the \textit{macron} and \textit{breve} are placed at the
+% natural height for an accent. In some cases, this may make the metrical
+% structure difficult to grasp at a glance. The |\Elevatio|
+% \DescribeMacro{\Elevatio} command causes the prosodical marks to be placed
+% at a constant distance from the baseline; the command argument is the
+% distance, a \meta{factor} of the \texttt{ex} value for the font in use.
+% Note that the distance may be negative, in which case the metrical symbol
+% is placed \textit{under} the letter. |\Elevatio{0}| restores the default.
+%
+% The effect of the |\Elevatio| command, unless it occurs inside a \TeX{}
+% \textit{group}, applies to the rest of the document from the point of
+% use forwards. To modify the vertical spacing for a single instance of
+% the environment, give the command inside the environment.
+%
+% The |\Translatio| \DescribeMacro{\Translatio} command is analogous to
+% |\Elevatio| and controls the horizontal position of the prosodical marks.
+% The argument is a \meta{factor} of the \texttt{em} value for the font
+% in use; prosodical marks are shifted to the right by this amount. A value
+% around .1 is generally satisfactory for text set in italics.
+% \newpage
+% Within the environments, the following commands are defined:
+%
+% |\c|, |\cc|, |\ccc|, |\C|, |\Cc|, |\Ccc|,
+% |\p|, |\pp|, |\ppp|, |\pppp|, |\ppppp|, |\Pp|, |\Ppp|, |\Pppp|, |\Ppppp|,
+% |\pxp|, |\Pxp| with the meaning they have within the argument of |\metra|.
+%
+% |\pos|, |\Pos|, |\!|, as abbreviations for |\positio|, |\Positio|, |\dubia|.
+% (see sect.~\ref{diacr})
+% \SpecialUsageIndex{\pos}
+% \SpecialUsageIndex{\Pos}
+% \SpecialUsageIndex{\!}
+%
+% |\e| and |\t| as abbreviations for |\Elevatio| and |\Translatio|.
+% \SpecialUsageIndex{\e}
+% \SpecialUsageIndex{\t}
+%
+% In case of conflicts, definition of these commands may be suppressed
+% by specifying an \meta{optional parameter} for the environment,
+% with the value |n| or |N| (e.g. |\begin{metrike}[n]|,
+% |\begin{metrica}[N]|).
+%
+% \subsubsection{The \texttt{metrica} environment}
+%
+% \DescribeEnv{metrica}To place an accent over a letter carrying a
+% prosodical mark, put the accent before the letter: |\=`a|\M@yields
+% {\metrica\=`a}\,, |\-'a|\M@yields {\metrica\-'a}\,,
+% |\='{ae}|\M@yields {\metrica\='{ae}}\,.
+%
+% \subsubsection{The \texttt{metrike} environment}
+%
+% \DescribeEnv{metrike} If a letter carries diacritical marks, the letter
+% and \textbf{all} its marks (including the character for \textit{iota}
+% subscript) must be enclosed in braces to form a single argument for
+% |\=| and |\-|.
+%
+% If either \texttt{ibycus4} or \texttt{Babel} (with the
+% \texttt{polutonikogreek} option) is loaded, it is used automatically; if
+% both are present, \texttt{ibycus4} is selected.
+% If you use another package for Greek fonts, you must issue the
+% |\MetrikeFont|\DescribeMacro{\MetrikeFont}\ command before the first
+% use of the environment. The argument of |\MetrikeFont| is the sequence
+% of commands that selects the Greek fonts. The command also accepts two
+% single-letter symbolic parameters: |i| or |I| to select the
+% \texttt{ibycus4} fonts, |b| or |B| to select the \texttt{Babel} fonts.
+%
+% The effect of the |\MetrikeFont| command, unless the command occurs inside
+% a \TeX{} \textit{group}, applies to the rest of the document from the
+% point of use forwards.
+% \newpage
+%
+% \subsection{The \texttt{\protect\bslash sigla} command}
+%
+% The command |\sigla| \DescribeMacro{\sigla} generates abbreviations for
+% the names of metres (but it may also be used to generate other types of
+% abbreviations). Within the argument of |\sigla| some characters and
+% control sequences have a special meaning:
+% \begin{tabbing}
+% \hskip 3em{\it T}\={\it ype}\ \ \ \ {\it to }\={\it get}
+% \hskip 7em{\it T}\={\it ype}\ \ \ \ {\it to }\={\it get}\\
+% \>|l_|\>\sigla{l_}\>|_l|\>\sigla{_l}\\
+% \>|l/|\>\sigla{l/}\>|/l|\>\sigla{/l}\\
+% \>|l:|\>\sigla{l:}\>|:l|\>\sigla{:l}\\
+% \>|l\+|\>\sigla{l\+}\>|\+l|\>\sigla{\+l}\\
+% \>|\d|\>\sigla{\d}\ \ {\small(isolated)}
+% \>|\D|\>\sigla{\D}\ \ {\small(next to a letter)}\\
+% \>|\s|\>\sigla{\s}\\
+% \end{tabbing}
+% \SpecialUsageIndex{\d}
+% The |\charcolon| and |\charslash| commands yield `:' and `/'.
+% The |\S| command is available with the meaning it has within the
+% argument of |\metra|.
+% \SpecialUsageIndex{\charcolon}
+% \SpecialUsageIndex{\charslash}
+% \SpecialUsageIndex{\S}
+%
+% The following commands are also defined,
+% with the meaning they have within the argument of |\metra|:
+% |\r|, |\x|, |\c|, |\cc|, |\ccc|, |\C|, |\Cc|, |\Ccc|, |\p|, |\pp|,
+% |\ppp|, |\pppp|, |\ppppp|, |\Pp|, |\Ppp|, |\Pppp|, |\Ppppp|, |\pxp|,
+% |\Pxp|.
+% Definition of these commands may be suppressed by specifying an
+% \meta{optional parameter} for the |\sigla| command, with the value
+% |n| or |N| (e.g. |\sigla[n]|).
+%
+% For complicated abbreviations, some explicit adjustment of spacing may be
+% necessary; this can be achieved by using the characters `|>|' and `|<|'.
+% `|>|' inserts a space of approximately $1/18$th of |1em|; `|<|' inserts a
+% \textit{negative} space of the same length.
+%
+% For example, the following command:\par
+% \vskip 1ex
+% {\parindent 0pt \parskip 0pt
+% |\sigla{gl>\S[.4]{\metra{\bb}}\c \S{\metra{\bb}}<<cr|\par
+% |ia_ /3io k>\D{} \d{} D\S3 E>\S2 ph<\S{3d} tl<:|\par
+% \vskip 2ex
+% yields: \sigla{gl>\S[.4]{\metra{\bb}}\c\S{\metra{\bb}}<<cr\ \ %
+% <<<ia_ /3io%
+% k>\D{} \d{} D\S3 E>\S2 ph<\S{3d} tl<:}
+% }
+% \vskip 1ex
+% By default abbreviations are set in italics. You can change the style
+% with the |\FaciesSiglorum |\DescribeMacro{\FaciesSiglorum} command:
+% the argument is the sequence of \LaTeX{} or \TeX{} commands to be used
+% for setting the text. The effect of the command, unless it occurs inside
+% a \TeX{} \textit{group}, applies to the rest of the document from the
+% point of use forwards.
+%
+% \newpage
+%
+% \section{Other signs}
+%
+% \subsection{Brackets}
+%
+% Each command yields the symbol on the right:
+% \vspace{1.5ex}
+% \tabskip 4em plus 4em minus 2em%
+% \halign to \hsize{%
+% #\hfill\tabskip 1em plus 1em&\hfill#\hfill
+% \tabskip 4em plus 4em minus 2em
+% &#\hfill\tabskip 1em plus 1em
+% &\hfill#\hfill
+% \tabskip 4em plus 4em minus 2em
+% &#\hfill\cr
+% |\angus|&\angus&|\Angus|&\Angus&\textit{(uncus angulatus)}\cr
+% |\angud|&\angud&|\Angud|&\Angud\cr
+% |\quadras|&\quadras&|\Quadras|&\Quadras&\textit{(uncus quadratus)}\cr
+% |\quadrad|&\quadrad&|\Quadrad|&\Quadrad\cr
+% |\alas|&\alas&|\Alas|&\Alas&\textit{(uncus alatus)}\cr
+% |\alad|&\alad&|\alad|&\alad\cr
+% |\semi[|&\semi[&|\semi]|&\semi]\cr
+% |\crux|&\crux&|\Crux|&\Crux\cr
+% }
+% \SpecialUsageIndex{\angus}
+% \SpecialUsageIndex{\Angus}
+% \SpecialUsageIndex{\angud}
+% \SpecialUsageIndex{\Angud}
+% \SpecialUsageIndex{\quadras}
+% \SpecialUsageIndex{\Quadras}
+% \SpecialUsageIndex{\quadrad}
+% \SpecialUsageIndex{\Quadrad}
+% \SpecialUsageIndex{\alas}
+% \SpecialUsageIndex{\Alas}
+% \SpecialUsageIndex{\alad}
+% \SpecialUsageIndex{\Alad}
+% \SpecialUsageIndex{\semi[}
+% \SpecialUsageIndex{\semi]}
+% \SpecialUsageIndex{\crux}
+% \SpecialUsageIndex{\Crux}
+%
+% \subsection{Special symbols}
+%
+% Each command yields the symbol on the right:
+% \vspace{1.5ex}
+% \tabskip 4em plus 4em minus 2em%
+% \halign to \hsize{%
+% #\hfill\tabskip 1em plus 1em&\hfill#\hfill
+% \tabskip 4em plus 4em minus 2em
+% &#\hfill\tabskip 1em plus 1em&\hfill#\hfill
+% \tabskip 4em plus 4em minus 2em \cr
+% |\anaclasis|&\anaclasis&|\Anaclasis|&\Anaclasis\cr
+% |\antisigma|&\antisigma&|\Antisigma|&\Antisigma\cr
+% |\asteriscus|&\asteriscus&|\Asteriscus|&\Asteriscus\cr
+% |\catalexis|&\catalexis&|\Catalexis|&\Catalexis\cr
+% |\diple|&\diple&|\Diple|&\Diple\cr
+% |\diple*|&\diple*&|\Diple*|&\Diple*\cr
+% |\antidiple|&\antidiple&|\Antidiple|&\Antidiple\cr
+% |\antidiple*|&\antidiple*&|\Antidiple*|&\Antidiple*\cr
+% |\obelus|&\obelus&|\Obelus|&\Obelus\cr
+% |\obelus*|&\obelus*&|\Obelus*|&\Obelus*\cr
+% |\respondens|&\respondens&|\Respondens|&\Respondens\cr
+% |\terminus|&\terminus&|\Terminus|&\Terminus\cr
+% |\terminus*|&\terminus*&|\Terminus*|&\Terminus*\cr
+% }
+% \SpecialUsageIndex{\anaclasis}
+% \SpecialUsageIndex{\Anaclasis}
+% \SpecialUsageIndex{\antisigma}
+% \SpecialUsageIndex{\Antisigma}
+% \SpecialUsageIndex{\asteriscus}
+% \SpecialUsageIndex{\Asteriscus}
+% \SpecialUsageIndex{\catalexis}
+% \SpecialUsageIndex{\Catalexis}
+% \SpecialUsageIndex{\diple}
+% \SpecialUsageIndex{\antidiple}
+% \SpecialUsageIndex{\Diple}
+% \SpecialUsageIndex{\Antidiple}
+% \SpecialUsageIndex{\diple*}
+% \SpecialUsageIndex{\antidiple*}
+% \SpecialUsageIndex{\Diple*}
+% \SpecialUsageIndex{\Antidiple*}
+% \SpecialUsageIndex{\obelus}
+% \SpecialUsageIndex{\Obelus}
+% \SpecialUsageIndex{\obelus*}
+% \SpecialUsageIndex{\Obelus*}
+% \SpecialUsageIndex{\respondens}
+% \SpecialUsageIndex{\Respondens}
+% \SpecialUsageIndex{\terminus}
+% \SpecialUsageIndex{\Terminus}
+% \SpecialUsageIndex{\terminus*}
+% \SpecialUsageIndex{\Terminus*}
+%
+% All the commands for special symbols take an \meta{optional argument},
+% a \meta{factor} which is multiplied by the |ex| value for the font in use;
+% the result is the amount by which the symbol is raised (\meta{factor} $> 0$)
+% or lowered (\meta{factor} $< 0$).
+%
+% Some of the characters (e.g.~|\diple|, |\obelus|, |\antisigma|) are usually
+% placed in front of a line of text, in the left margin. The |\margini|
+% command \DescribeMacro{\margini} puts the text given in the argument in
+% the left margin of the page; |\margini*| \DescribeMacro{\margini*} puts
+% the text in the right margin. The argument is implicitly considered to
+% form a \TeX{} \textit{group}, as if it were enclosed by an additional set
+% of braces. An \meta{optional argument} can specify a \meta{dimen} which
+% is added to the default displacement from the margin of the main text
+% (a positive value moves the argument further away from the center of
+% the page).
+%
+% \subsection{Diacritics}\label{diacr}
+%
+% Each of the following commands places the corresponding mark over the
+% letter given as argument:\par\vspace \medskipamount
+% {\parskip 0pt
+% \DescribeMacro{\macron}%
+% \kern 7em \hbox to 9em{|\macron e| \hfill \macron e}\par
+% \DescribeMacro{\breve}%
+% \kern 7em \hbox to 9em{|\breve e| \hfill \breve e}\par
+% \DescribeMacro{\acutus}%
+% \kern 7em \hbox to 9em{|\acutus e| \hfill \acutus e}\par
+% \DescribeMacro{\gravis}%
+% \kern 7em \hbox to 9em{|\gravis e| \hfill \gravis e}\par
+% \DescribeMacro{\circumflexus}%
+% \kern 7em \hbox to 9em{|\circumflexus e| \hfill \circumflexus e}\par
+% \DescribeMacro{\diaeresis}%
+% \kern 7em \hbox to 9em{|\diaeresis e| \hfill \diaeresis e}\par
+% }
+% The commands take an \meta{optional argument}, a \meta{factor} which
+% is multiplied by the |ex| value for the font in use; the result is the
+% amount by which the mark is raised (\meta{factor} $> 0$) or lowered
+% (\meta{factor} $< 0$).
+% \textit{\large Note}: the \TeX{} mathematical accent normally associated
+% with |\breve| may be generated with the command |\Breve|.
+%
+% The |\cons| \DescribeMacro{\cons} command places a semicircle under the
+% letter that follows, to indicate \textit{consonantization} of a vowel:
+% |\cons{u}|\M@yields \cons{u}\,.
+%
+% The argument of the |\dubia| \DescribeMacro{\dubia} command is a letter,
+% under which the command places a small dot to show that the letter is
+% only partially preserved in a manuscript or epigraphical text.
+% If the letter carries diacritical marks, these must all be included in
+% the argument.
+%
+% The |\dubiae| \DescribeMacro{\dubiae} command has one parameter, a string
+% of letters, and places a small dot under each of the letters. If a letter
+% within the string carries diacritical marks, it must be enclosed, together
+% with all the marks, within braces.
+%
+% The \texttt{*}-forms \DescribeMacro{\dubia*} are meant to be used in
+% conjunction with fonts, like those of |ibycus4|, \DescribeMacro{\dubiae*}
+% that have ligatures for all combinations of a letter and the dot. The
+% use of ligatures allows a more precise positioning of the dot, taking the
+% shape of the letter into account.
+%
+% The |\erasa| command \DescribeMacro{\erasa} \M@yields \erasa.
+%
+% The |\positio| \DescribeMacro{\positio} command yields the symbol \positio\,,
+% which is used between a mute and a liquid to show that the combination
+% \textit{makes position\/}, i.e.~closes and thereby lengthens the preceding
+% syllable. |\Positio| \DescribeMacro{\Positio} generates a slightly
+% larger symbol \Positio\,.
+%
+% The |\punctum| \DescribeMacro{\punctum} command places a small dot under
+% a space, to show that a letter is missing.
+% |\Punctum| \DescribeMacro{\Punctum} yields a dot enclosed within parentheses.
+% Both commands take an \meta{optional argument}, a \meta{number} that is
+% interpreted as a repetition count.
+% \textit{\large Caution}: sometimes the dot is immediately followed,
+% in the text, by a left square bracket; if you write |\punctum[|\ \,\TeX{}
+% will interpret the bracket as the start of the optional
+% argument and give an error message. Use either |\punctum{}[|
+% or |\punctum\lbrack|.
+%
+% \subsection{Ties}\label{tie}
+%
+% The commands described in this section allow you to place \textit{tie}
+% symbols above a sequence of up to three adjacent characters or under it.
+% All combinations are allowed, including some that are not particularly
+% sensible or useful.
+%
+% |\tie| \DescribeMacro{\tie} places $\frown$ above the characters.
+%
+% |\itie| \DescribeMacro{\itie} places $\smile$ below the characters.
+%
+% |\tie*| \DescribeMacro{\tie*} places $\frown$ below the characters.
+%
+% |\itie*| \DescribeMacro{\itie*} places $\smile$ above the characters.
+%
+% The size of the symbol is chosen so that it embraces all the text. In
+% some cases, you may wish to use a smaller or larger size. An
+% \meta{optional argument} can specify a \meta{factor} which
+% is multiplied by the width of the text: the size of the symbol is then
+% chosen as if the text had that width. Keep in mind, however, that only
+% a limited range of symbol sizes is available in the Computer Modern fonts.
+%
+% When any of the \textit{tie} commands is used within the argument
+% of |\metra|, a \meta{factor} of .6 is applied automatically and
+% an explicit \meta{factor}, if specified, applies to the width
+% as modified by the automatic factor. While |\tie{a e}|\M@yields
+% \tie{a e}, |\metra{\tie{\m\s\m}}|\M@yields \metra{\tie{\m\s\m}}
+%
+% Examples:\par
+% \begin{tabbing}
+% \hskip 2.5em\=xtie{abc}\hskip 5em\=abc%
+% \hskip 4em\=xtie{abc}\hskip 5em\=abc\kill
+% \>|\tie{ae}|\>\tie{ae}\>|\itie{ae}|\>\itie{ae}\\
+% \>|\tie{uae}|\>\tie{uae}\>|\itie{uae}|\>\itie{uae}\\
+% \>|\tie{a e}|\>\tie{a e}\>|\itie{a e}|\>\itie{a e}\\
+% \>|a\tie{ }e|\>a\tie{ }e\>|a\itie{ }e|\>a\itie{ }e\\
+% \>|\tie[.6]{a e}|\>\tie[.6]{a e}\>|\itie[.6]{a e}|\>\itie[.6]{a e}\\
+% \>|\tie[.8]{a e}|\>\tie[.8]{a e}\>|\itie[.8]{a e}|\>\itie[.8]{a e}\\
+% \end{tabbing}
+% \begin{verse}
+% |Oceanum\itie{ }interea surgens Aurora reliquit.|\\
+% |It portis iubar\itie[.6]{e e}xorto delecta iuventus.|\par
+% Oceanum\itie{ }interea surgens Aurora reliquit.\\
+% It portis iubar\itie[.6]{e e}xorto delecta iuventus.\par
+% \end{verse}
+%
+% \subsection{Interlinear signs}
+%
+% The signs generated by the commands described in this section are those
+% commonly used for marking strophic divisions in Greek lyrical poetry.
+% The symbols are inserted between lines or placed at the end of the text.
+%
+% The commands must be used inside a \LaTeX{} environment (such as |verse|)
+% in which each line is terminated by |\\|, or else within the scope of
+% the \TeX{} |\obeylines| command. The normal form of the commands is
+% used within \LaTeX{} environments, while the \texttt{*}-form
+% must be used within the scope of |\obeylines|.
+%
+% The commands must appear at the end of a line and, if used within a \LaTeX{}
+% environment, must \textit{not} be followed by |\\|. The symbol is inserted
+% after the line on which the command occurs and the distance between this line
+% and the line that follows (which may be empty for symbols that are
+% placed after the last line of the text) is increased by 15\%.
+%
+% The automatic increment of the interline spacing may be modified by an
+% \meta{optional argument}, a \meta{factor} which is multiplied by the
+% current value of |\baselineskip|; the result is added to the default
+% increment.
+%
+% The basic command is |\linea| \DescribeMacro{\linea} which generates
+% a short line \,\imago*{\linea}\, extending to the left of the
+% margin of the surrounding text by half its length.
+% There are two variants of |\linea|, both available in two sizes:\par
+% \noindent\kern 1em\imago*{\bifida}\kern 2em |\lineabifida| or
+% |\bifida| \DescribeMacro{\bifida}\par
+% \SpecialUsageIndex{\lineabifida}
+% \noindent\kern 1em\imago*{\Bifida}\kern 2em |\Lineabifida| or
+% |\Bifida| \DescribeMacro{\Bifida}\par
+% \SpecialUsageIndex{\Lineabifida}
+% \noindent\kern 1em\imago*{\lunata}\kern 2em |\linealunata| or
+% |\lunata| \DescribeMacro{\lunata}\par
+% \SpecialUsageIndex{\linealunata}
+% \noindent\kern 1em\imago*{\Lunata}\kern 2em |\Linealunata| or
+% |\Lunata| \DescribeMacro{\Lunata}
+% \SpecialUsageIndex{\Linealunata}
+%
+% The |\geminata| \DescribeMacro{\geminata} command yields a pair of lines,
+% each identical to the line generated by |\linea|:\ \imago[-.3]{\geminata}\,.
+%
+%
+% You can place some text (for instance, parentheses or a question mark)
+% on either side of the symbols generated by the commands listed above
+% by means of the |\antelineam|\DescribeMacro{\antelineam}\ and |\postlineam|
+% commands. The commands must appear \DescribeMacro{\postlineam} at the
+% beginning of the line which follows the symbol. Each command takes one
+% argument: the text to be placed before or after the symbol.
+% The text is implicitly considered to form a \TeX{} \textit{group}, as if it
+% were enclosed by an additional set of braces. Within the argument, any command
+% selecting the font to be used for the text must \textit{not} appear within
+% a \textit{group}; if, for instance, you wish to use parentheses taken from
+% the smallest font available to \LaTeX{} you should write:
+% |\antelineam{\tiny(}| and |\postlineam{\tiny)}| and \textbf{not}
+% |\antelineam{{\tiny(}}| or |\postlineam{{\tiny)}}|.
+%
+% The |\coronis| \DescribeMacro{\coronis} command generates a stylized
+% representation of the symbol sometimes found in manuscripts.
+% Because of its peculiar shape, the symbol \margini{\imago*{\coronis}}
+% is not placed between lines but to the left of the text.
+%
+% \subsubsection*{Generating the signs within the text}
+%
+% To generate one of the signs described in this section within ordinary
+% text, use the |\imago| \DescribeMacro{\imago} command. The argument is
+% the name of the command yielding the sign: |\imago{\bifida}|
+% \M@yields\imago{\bifida}.
+% The sign is generated at its natural distance from the baseline.
+% The distance may be modified by an \meta{optional argument}; the argument,
+% a \meta{factor}, is multiplied by the current value of
+% |\baselineskip| and the result is added to the default distance.
+% |\imago[-.6]{\bifida}|\M@yields\imago[-.6]{\bifida}.
+%
+% The \texttt{*}-form of the command \DescribeMacro{\imago*} automatically
+% aligns the sign with the surrounding text: |\imago*{\bifida}|%
+% \M@yields \imago*{\bifida}.
+%
+% \subsubsection*{Defining new signs}
+%
+% The |\novalinea| \DescribeMacro{\novalinea} command defines
+% a new command that yields a line placed at the same height as the line
+% generated by |\linea| but having a different length and/or indentation
+% from the text margin. The command has four parameters:
+% \begin{list}{}{\parsep 0pt\itemsep 0pt\labelsep 1.5em \topsep 0pt}
+% \item[\textit{1}] the name of the new command;
+% \item[\textit{2}] the indentation, relative to the left margin of the
+% text, of the line;
+% \item[\textit{3}] the length of the line;
+% \item[\textit{4}] the amount by which the interline spacing should be
+% increased, given as a \meta{factor} that is to be multiplied by the value of
+% |\baselineskip|.
+% \end{list}{}{}
+% For instance, the command |\novalinea{\Linea}{-.5em}{2em}{.2}| defines
+% |\Linea| as a command that yields a line of length \texttt{2em}, indented
+% to the left of the text margin by $1/4$ of its length; the interline
+% spacing is increased by 20\%.
+%
+% The |\novageminata| \DescribeMacro{\novageminata} command, with the
+% same parameters as |\novalinea|, defines a new command that yields
+% a pair of lines similar to those generated by |\geminata|.
+%
+% Definitions made with these two commands are valid within the
+% \TeX{} \textit{group} within which they occur. It is therefore possible
+% to restrict their effect to a section of the document by enclosing the
+% section within braces and placing the definitions after the opening brace.
+%
+% Note that it is possible to change the definition of |\linea| by
+% saying |\novalinea{\linea}|\texttt{\ldots}\ Changing the definition
+% of |\linea| automatically changes the appearance of |\geminata|,
+% |\bifida|, |\Bifida|, |\lunata| and |\Lunata|.
+%
+% If you prefer a typographical style that puts the interlinear signs
+% into the margin, away from the text, you need only change the definition
+% of |\linea| (setting the appropriate value for indentation) in the preamble
+% and all the document will be typeset in this style.
+%
+% \subsection{\textit{Miscellanea}}
+%
+% The |\lineola| \DescribeMacro{\lineola} command generates, at the point
+% where it is used, a horizontal line having the length given in the
+% command argument. The line is placed at the same height, relative to
+% the baseline of the text, as the line generated by |\linea|. You can
+% change the height by specifying an \meta{optional argument}: a \meta{factor}
+% which is multiplied by the value of |\baselineskip|; the result
+% is added to the default displacement from the baseline.
+%
+% The |\Lineola| \DescribeMacro{\Lineola} command generates a horizontal
+% line over the text given in the command argument. The command accepts an
+% \meta{optional argument}, with the same meaning as the corresponding
+% argument of |\lineola|. |\Lineola[-.25]{mrs}| \M@yields \Lineola[-.25]{mrs}.
+% \newpage
+% The |\structa| \DescribeMacro{\structa} command \label{structa} takes two
+% arguments and places the text given in the second argument over the text
+% given in the first argument. Both arguments are implicitly considered
+% to form \TeX{} \textit{groups}, as if each argument were enclosed by
+% an additional set of braces.
+% The command takes an \meta{optional argument}, a \meta{factor} which is
+% multiplied by the |ex| value for the font in use; the result is
+% the amount by which the text in the second argument is raised
+% (\meta{factor} $> 0$) or lowered (\meta{factor} $< 0$).
+% |w\structa{xy}{\tiny ab}z| \M@yields w\structa{xy}{\tiny ab}z.
+%
+% \vspace{5ex}
+% \begingroup
+% \Large
+% Happy
+% \begin{metrica}
+% T\kern -.1667em \lower .5ex \hbox{\-E}\kern-.125em Xing\,!%
+% \end{metrica}
+% \endgroup
+% \newpage
+% \PrintIndex
+% \StopEventually{}
+% \parindent 0pt
+% \newpage
+% \setlength{\parskip}{.3ex}
+%
+% \section{The package code} \label{sec:code}
+%
+% \subsection{Preliminaries}
+%
+% \begin{macrocode}
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{metre}%
+ [2001/12/05 v. 1.0 A package for classicists]
+% \end{macrocode}
+%
+% Set the style for |\metra|:
+% \begin{macrocode}
+\DeclareOption{st}{\def\M@opt@style{0}}
+\DeclareOption{en}{\def\M@opt@style{1}}
+\DeclareOption{En}{\def\M@opt@style{2}}
+\ExecuteOptions{st}
+\ProcessOptions
+% \end{macrocode}
+%
+% \begin{macrocode}
+\RequirePackage{relsize}
+% \end{macrocode}
+%
+% Suppress all |relsize| warnings which would needlessly
+% alarm the user.
+%
+% \begin{macrocode}
+\renewcommand{\rs@size@warning}[2]{\relax}
+% \end{macrocode}
+%
+% \subsection{Variables}
+%
+% Set to 1 if |ibycus| is loaded.
+% \begin{macrocode}
+\newcount\M@ibycus
+% \end{macrocode}
+%
+% Set to 1 while we are within the parameter of |\metra|.
+% \begin{macrocode}
+\newcount\M@metra
+% \end{macrocode}
+%
+% The font number (as defined by |relsize|) for the font used in |\metra|.
+%
+% \begin{macrocode}
+\newcount\M@metra@font
+% \end{macrocode}
+%
+% |True| if we must generate a grave accent.
+%
+% \begin{macrocode}
+\newif\ifM@gravis
+% \end{macrocode}
+%
+% |True| if we must generate the \textit{inter signa} space.
+%
+% \begin{macrocode}
+\newif\ifM@inter
+% \end{macrocode}
+%
+% |True| if the symbol just generated is some sort of vertical bar.
+%
+% \begin{macrocode}
+\newif\ifM@vert@bar
+% \end{macrocode}
+%
+% |True| if we must generate a stand-alone interlinear sign.
+%
+% \begin{macrocode}
+\newif\ifM@imago
+% \end{macrocode}
+%
+% |True| if we just want to set the |\dimen| registers for |\linea|.
+%
+% \begin{macrocode}
+\newif\ifM@linea@dimen
+% \end{macrocode}
+%
+% |True| if we have the *-form of a command.
+%
+% \begin{macrocode}
+\newif\ifM@starred
+% \end{macrocode}
+%
+% |True| if we must generate a character at a larger size.
+%
+% \begin{macrocode}
+\newif\ifM@big
+% \end{macrocode}
+%
+% Boxes for the basic symbols:
+%
+% \begin{macrocode}
+\newbox\M@box@m% macron
+\newbox\M@box@b% breve
+\newbox\M@box@tsmb% triseme (macron + breve)
+\newbox\M@box@tsbm% triseme (breve + macron)
+\newbox\M@box@tsmm% tetraseme (macron + macron)
+\newbox\M@box@ps% pentaseme (macron + macron)
+\newbox\M@box@a% anceps
+\newbox\M@box@o% one half of `eolic base'
+\newbox\M@box@k% catalexis
+\newbox\M@box@K% catalexis (large)
+\newbox\M@box@p% dot
+\newbox\M@box@A% acute accent
+\newbox\M@box@G% grave accent
+% \end{macrocode}
+%
+% Registers for some important dimensions:
+%
+% \begin{macrocode}
+\newdimen\M@dim@m% width of macron box
+\newdimen\M@dim@b% width of breve box
+\newdimen\M@dim@p% width of dot box
+\newdimen\M@dim@s% size of space
+% \end{macrocode}
+%
+% The amount by which the breve is lowered in the |[en]| style.
+%
+% \begin{macrocode}
+\newdimen\M@dim@bsink
+% \end{macrocode}
+%
+% The amount by which a symbol has actually sunk.
+%
+% \begin{macrocode}
+\newdimen\M@dim@sunk
+% \end{macrocode}
+%
+% |ex| value for the font being used for the metrical symbols.
+%
+% \begin{macrocode}
+\newdimen\M@metra@ex
+% \end{macrocode}
+%
+% |ex| value for the font in use before |\metra|.
+%
+% \begin{macrocode}
+\newdimen\M@text@ex
+% \end{macrocode}
+%
+% Space before and after a \textit{caesura}.
+%
+% \begin{macrocode}
+\newdimen\M@dim@c@ext
+% \end{macrocode}
+%
+% Space inside a double or triple \textit{caesura}.
+%
+% \begin{macrocode}
+\newdimen\M@dim@c@int
+% \end{macrocode}
+%
+% Space before and after a \textit{caesura}.
+%
+% \begin{macrocode}
+\newdimen\M@dim@c@Ext
+% \end{macrocode}
+%
+% Indentation, height and length of |\linea|.
+%
+% \begin{macrocode}
+\newdimen\M@linea@indent
+\newdimen\M@linea@height
+\newdimen\M@linea@length
+% \end{macrocode}
+%
+% \subsection{Inizialization}
+%
+% \begin{macrocode}
+\AtBeginDocument{%
+ \@ifpackageloaded{ibycus4}{\M@ibycus\@ne}{\M@ibycus\z@}%
+ \let\M@prevsize=\relax
+ \def\M@before@linea{\relax}%
+% \end{macrocode}
+%
+% The metrical symbols are taken from the font at |\relsize{+2}|:
+%
+% \begin{macrocode}
+ \let\M@step@up=\tw@
+}
+% \end{macrocode}
+%
+% \subsection{Global commands}
+%
+% \begin{macrocode}
+\newcommand{\InterSigna}[1]{\def\M@interS{#1}}
+\newcommand{\InterPedes}[1]{\def\M@interP{#1}}
+\newcommand{\SubSigna}[1]{\def\M@subS{#1}}
+\newcommand{\Magnitudo}[1]{\def\M@magnitudo{#1}}
+\newcommand{\Elevatio}[1]{\def\M@elevatio{#1}}
+\newcommand{\Translatio}[1]{\def\M@translatio{#1}}
+\newcommand{\Intervallum}[1]{\def\M@intervallum{#1}}
+\newcommand{\FaciesSiglorum}[1]{\def\M@facies{#1}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\MetraStyle}[1]{\M@MetraStyle#1}
+\def\M@MetraStyle#1#2{%
+ \let\M@opt=\relax
+ \ifx e#1\relax
+ \ifx n#2\relax
+ \let\M@opt=1\relax
+ \fi
+ \fi
+ \ifx E#1\relax
+ \ifx n#2\relax
+ \let\M@opt=2\relax
+ \fi
+ \fi
+ \ifx s#1\relax
+ \ifx t#2\relax
+ \let\M@opt=0\relax
+ \fi
+ \fi
+ \ifx \M@opt\relax
+ \PackageError{metre}%
+ {Illegal option for \protect\MetraStyle}%
+ {Valid options are `en', `En', `st'.}%
+ \else
+ \edef\M@opt@style{\M@opt}%
+ \fi
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\MetrikeFont}[1]{\def\M@MetrikeFont{#1}}
+% \end{macrocode}
+%
+% Set the default values.
+%
+% \begin{macrocode}
+\InterSigna{.2}%
+\InterPedes{.67}%
+\SubSigna{0}%
+\Magnitudo{0}%
+\Elevatio{0}%
+\Translatio{0}%
+\Intervallum{.08}%
+\FaciesSiglorum{\it}%
+% \end{macrocode}
+%
+% \subsection{The \texttt{\protect\bslash metra} command}
+%
+% \begin{macrocode}
+\newcommand{\metra}[2][\relax]{%
+% \end{macrocode}
+%
+% Check for a recursive call and set a flag to show
+% we are within |\metra|.
+%
+% \begin{macrocode}
+ \ifnum \M@metra=\@ne
+ \PackageError{metre}{Recursive use of \protect\metra}%
+ {You cannot use \protect\metra within%
+ the argument \MessageBreak
+ of another \protect\metra command}%
+ \fi
+ \M@metra=\@ne
+% \end{macrocode}
+%
+% Save the information about the current font size and make sure we are
+% in horizontal mode.
+%
+% \begin{macrocode}
+ \let\M@text@fontsize=\@currsize
+ \M@text@ex=\fontdimen5\the\font
+ \leavevmode
+% \end{macrocode}
+% \newpage
+% Start a group so that all command definitions stay local.
+%
+% \begin{macrocode}
+ \begingroup
+% \end{macrocode}
+% Initial setup, including execution of commands in the optional argument.
+% \begin{macrocode}
+ \M@metra@setup{#1}%
+% \end{macrocode}
+%
+% The text is set as a single |\hbox| so that it can be moved
+% up and down as necessary. This also has the advantage of
+% preventing the metrical scheme from being split across lines.
+%
+% \begin{macrocode}
+ \dimen0=\if 0\M@opt@style 0\else .5\fi \M@text@ex
+ \advance \dimen0 by \M@subS \M@text@ex
+ \raise \dimen0 \hbox{\hss\M@interfalse #2\hss}%
+ \endgroup
+ \M@metra=\z@
+ \relax
+}
+% \end{macrocode}
+%
+% \subsubsection{\texttt{\protect\bslash metra} set up}
+%
+% \begin{macrocode}
+\def\M@metra@setup#1{%
+% \end{macrocode}
+%
+% Execute the commands (if any) in the optional argument.
+%
+% \begin{macrocode}
+ \let\is=\InterSigna
+ \let\i=\Intervallum
+ \let\ip=\InterPedes
+ \let\ss=\SubSigna
+ \let\m=\Magnitudo
+ \let\ms=\MetraStyle
+ \def\en{\MetraStyle{en}}%
+ \def\En{\MetraStyle{En}}%
+ \def\st{\MetraStyle{st}}%
+ #1\relax
+% \end{macrocode}
+%
+% Switch to the CMR font that will be used for all symbols.
+%
+% \begin{macrocode}
+ \M@cmr
+% \end{macrocode}
+%
+% Select the font size.
+%
+% \begin{macrocode}
+ \count255=\M@magnitudo
+ \advance \count255 by \M@step@up
+ \relsize{\count255}%
+ \let\M@metra@fontsize=\@currsize
+ \M@metra@ex=1ex
+% \end{macrocode}
+%
+% Avoid rebuilding the boxes if the font size has not changed from
+% the previous use of |\metra|.
+%
+% \begin{macrocode}
+ \ifx \@currsize \M@prevsize
+ \relax
+ \else
+ \M@makeboxes
+ \global\let\M@prevsize=\@currsize
+ \fi
+% \end{macrocode}
+%
+% Set a few dimensional registers that may be affected by commands
+% in the optional argument.
+%
+% \begin{macrocode}
+ \M@dim@c@ext=\M@interP\M@dim@m
+ \M@dim@c@int=\M@interS\M@dim@m
+ \M@dim@c@ext=1.33\M@dim@c@ext
+ \M@dim@c@Ext=\M@dim@c@int
+ \M@dim@s=\M@interP\M@dim@m
+% \end{macrocode}
+%
+% Now make all the macros available:
+%
+% \begin{macrocode}
+ \let\a \M@a
+ \let\b \M@b \let\B \M@B
+ \let\gB \M@gB
+ \let\bb \M@bb \let\BB \M@BB
+ \let\gBB \M@gBB
+ \let\Bb \M@Bb
+ \let\gBb \M@gBb
+ \let\bB \M@bB
+ \let\gbB \M@gbB
+ \let\bm \M@bm \let\Bm \M@Bm
+ \let\gBm \M@gBm
+ \let\bba \M@bba
+ \let\bbb \M@bbb
+ \let\bbm \M@bbm \let\BBm \M@BBm
+ \let\gBBm \M@gBBm
+ \let\Bbm \M@Bbm
+ \let\gBbm \M@gBbm
+ \let\bBm \M@bBm
+ \let\gbBm \M@gbBm
+ \let\bbmx \M@bbmx
+ \let\bbmb \M@bbmb
+ \let\m \M@m \let\M \M@M
+ \let\gM \M@gM
+ \let\ma \M@ma
+ \let\mb \M@mb \let\Mb \M@Mb
+ \let\gMb \M@gMb
+ \let\mbb \M@mbb \let\Mbb \M@Mbb
+ \let\gMbb \M@gMbb
+ \let\mBb \M@mBb
+ \let\gmBb \M@gmBb
+ \let\mbB \M@mbB
+ \let\gmbB \M@gmbB
+ \let\mbbx \M@mbbx
+ \let\c \M@c \let\cc \M@cc \let\ccc \M@ccc
+ \let\C \M@C \let\Cc \M@Cc \let\Ccc \M@Ccc
+ \let\d \M@d
+ \let\k \M@k \let\K \M@K
+ \let\n \M@n \let\ni \M@ni \let\N \M@N
+ \let\o \M@o \let\oo \M@oo
+ \let\p \M@p \let\pp \M@pp \let\Pp \M@Pp
+ \let\pxp \M@pxp \let\Pxp \M@Pxp
+ \let\pm \M@pm \let\ppm \M@ppm \let\pppm \M@pppm
+ \let\vppm \M@vppm \let\vpppm \M@vpppm
+ \let\ppp \M@ppp \let\pppp \M@pppp \let\ppppp \M@ppppp
+ \let\Ppp \M@Ppp \let\Pppp \M@Pppp \let\Ppppp \M@Ppppp
+ \let\q \M@q \let\Q \M@Q
+ \let\r \M@r \let\R \M@R
+ \let\s \M@s
+ \let\S \M@super@metra
+ \let\t \M@t \let\T \M@T
+ \let\tsbm \M@tsbm
+ \let\tsmb \M@tsmb
+ \let\tsmm \M@tsmm
+ \let\ps \M@ps
+ \let\v \M@v
+ \let\x \M@x
+ \let\'\M@acutus \let\`\M@gravis
+}
+% \end{macrocode}
+%
+% \subsubsection{Manufacturing the basic boxes}
+%
+% \textit{``The horror! The horror!''}. Here is the package's heart of darkness.
+% For each basic metrical symbol we build a box that encloses, as
+% precisely as possible, the `inked' part of the character box.
+% A few of the magic numbers that are sprinkled throughout this truly messy
+% code have been derived from the Metafont source but most have been arrived
+% at \textit{provando e riprovando}. A cleaner solution would have
+% been to extract the information from the GF files with a program;
+% but writing the program would have been hardly less boring and would
+% have taken up much more time.
+%
+% \begin{macrocode}
+\def\M@makeboxes{%
+ \M@metra@font=%
+ \ifx \@currsize \Large 6 \else
+ \ifx \@currsize \large 5 \else
+ \ifx \@currsize \normalsize 4 \else
+ \ifx \@currsize \small 3 \else
+ \ifx \@currsize \footnotesize 2 \else
+ \ifx \@currsize \scriptsize 1 \else
+ \ifx \@currsize \LARGE 7 \else
+ \ifx \@currsize \huge 8 \else
+ \ifx \@currsize \Huge 9 \else
+ \ifx \@currsize \tiny 0
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+% \end{macrocode}
+%
+% Macron and breve
+%
+% \begin{macrocode}
+ \setbox0=\hbox{\char22}%
+ \global\M@dim@m=.73\wd0
+ \global\M@dim@b=.59\wd0
+ \ifnum 2>\M@metra@font \global\M@dim@b=.58\wd0
+ \else
+ \ifnum 4=\M@metra@font \global\M@dim@b=.575\wd0
+ \else
+ \ifnum 5=\M@metra@font \global\M@dim@b=.575\wd0
+ \else
+ \ifnum 6=\M@metra@font \global\M@dim@b=.5775\wd0
+ \else
+ \ifnum 7=\M@metra@font \global\M@dim@b=.595\wd0
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \global\M@dim@p=.25\wd0
+ \global\setbox\M@box@m=\hbox to \M@dim@m{%
+ \hss
+ \dimen0=1.235\M@metra@ex
+ \ifcase \@ptsize
+ \ifnum 1=\M@metra@font \dimen0=1.2\M@metra@ex
+ \else
+ \ifnum 9=\M@metra@font \dimen0=1.25\M@metra@ex
+ \fi
+ \fi
+ \or
+ \ifnum 0=\M@metra@font \dimen0=1.25\M@metra@ex
+ \else
+ \ifnum 9=\M@metra@font \dimen0=1.25\M@metra@ex
+ \fi
+ \fi
+ \or
+ \ifnum 0=\M@metra@font \dimen0=1.25\M@metra@ex
+ \else
+ \ifnum 7<\M@metra@font \dimen0=1.25\M@metra@ex
+ \fi
+ \fi
+ \fi
+ \lower\dimen0\hbox{\char22}%
+ \hss
+ }%
+ \dimen0=.089\M@metra@ex
+ \ifcase \@ptsize
+ \ifnum 4>\M@metra@font
+ \dimen0=.08\M@metra@ex
+ \else
+ \ifnum 6<\M@metra@font
+ \dimen0=.05\M@metra@ex
+ \fi
+ \fi
+ \or
+ \dimen0=.08\M@metra@ex
+ \or
+ \dimen0=.08\M@metra@ex
+ \fi
+ \global\ht\M@box@m=\dimen0
+ \global\dp\M@box@m=\z@
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \global\setbox\M@box@b=\hbox to \M@dim@b{%
+ \hss
+ \lower 1.142\M@metra@ex\hbox{\char21}%
+ \hss}%
+ \global\ht\M@box@b=.495\M@metra@ex
+ \global\dp\M@box@b=\z@
+ \global\M@dim@bsink=.4\ht\M@box@b
+% \end{macrocode}
+%
+% Dot
+%
+% \begin{macrocode}
+ \global\setbox\M@box@p=\hbox to \M@dim@p{%
+ \hss
+ \lower 1.3\M@metra@ex\hbox{\char95}%
+ \hss}%
+ \global\ht\M@box@p=.15\M@metra@ex
+ \global\dp\M@box@p=\z@
+% \end{macrocode}
+%
+% Triseme (equivalent to \metra{\m\b})
+%
+% \begin{macrocode}
+ \global\setbox\M@box@tsmb=\hbox{%
+ \vrule height .4\M@metra@ex width \ht\M@box@m
+ \hbox to 1.667\M@dim@m{%
+ \leaders\hrule height \ht\M@box@m\hfill}}%
+ \dimen0=1.667\M@dim@m
+ \advance \dimen0 by \ht\M@box@m
+ \global\wd\M@box@tsmb=\dimen0
+ \global\ht\M@box@tsmb=.2\M@metra@ex
+ \global\dp\M@box@tsmb=\z@
+% \end{macrocode}
+%
+% Triseme (equivalent to \metra{\b\m})
+%
+% \begin{macrocode}
+ \global\setbox\M@box@tsbm=\hbox{%
+ \hbox to 1.667\M@dim@m{%
+ \leaders\hrule height \ht\M@box@m\hfill}%
+ \vrule height .4\M@metra@ex width \ht\M@box@m}%
+ \dimen0=1.667\M@dim@m
+ \advance \dimen0 by \ht\M@box@m
+ \global\wd\M@box@tsbm=\dimen0
+ \global\ht\M@box@tsbm=.2\M@metra@ex
+ \global\dp\M@box@tsbm=\z@
+% \end{macrocode}
+%
+% Tetraseme
+%
+% \begin{macrocode}
+ \global\setbox\M@box@tsmm=\hbox{%
+ \vrule height .4\M@metra@ex width \ht\M@box@m%
+ \hbox to 1.667\M@dim@m{%
+ \leaders\hrule height \ht\M@box@m\hfill}%
+ \vrule height .4\M@metra@ex width \ht\M@box@m%
+ \kern \ht\M@box@m}%
+ \dimen0=1.667\M@dim@m
+ \advance \dimen0 by 2\ht\M@box@m
+ \global\wd\M@box@tsmm=\dimen0
+ \global\ht\M@box@tsmm=.2\M@metra@ex
+ \global\dp\M@box@tsmm=\z@
+% \end{macrocode}
+%
+% Pentaseme
+%
+% \begin{macrocode}
+ \global\setbox\M@box@ps=\hbox{%
+ \vrule height .4\M@metra@ex width \ht\M@box@m%
+ \hbox to .82\M@dim@m{%
+ \leaders\hrule height \ht\M@box@m\hfill}%
+ \vrule height .4\M@metra@ex width \ht\M@box@m%
+ \hbox to .825\M@dim@m{%
+ \leaders\hrule height \ht\M@box@m\hfill}%
+ \vrule height .4\M@metra@ex width \ht\M@box@m%
+ \kern \ht\M@box@m}%
+ \dimen0=1.667\M@dim@m
+ \advance \dimen0 by 3\ht\M@box@m
+ \global\wd\M@box@ps=\dimen0
+ \global\ht\M@box@ps=.2\M@metra@ex
+ \global\dp\M@box@ps=\z@
+% \end{macrocode}
+%
+% Acute accent
+%
+% \begin{macrocode}
+ \global\setbox\M@box@A=\hbox{%
+ \hss
+ \lower 1.1\M@metra@ex\hbox{\char19}%
+ \hss}%
+ \global\ht\M@box@A=.175\M@metra@ex
+ \global\dp\M@box@A=\z@
+% \end{macrocode}
+%
+% Grave accent
+%
+% \begin{macrocode}
+ \global\setbox\M@box@G=\hbox{%
+ \hss
+ \lower 1.1\M@metra@ex\hbox{\char18}%
+ \hss}%
+ \global\ht\M@box@G=.2\M@metra@ex
+ \global\dp\M@box@G=\z@
+% \end{macrocode}
+%
+% The symbols that follow are all taken from the math font.
+%
+% \begin{macrocode}
+ \begingroup
+% \end{macrocode}
+%
+% Catalexis (large)
+%
+% \begin{macrocode}
+ \begingroup$\textstyle
+ \global\setbox\M@box@K=\hbox{%
+ \lower 1.25ex \hbox{\hss\symbol{"5E}\hss}}%
+ $\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \relsize{-3}%
+% \end{macrocode}
+%
+% Catalexis (small)
+%
+% \begin{macrocode}
+ \begingroup$\scriptscriptstyle
+ \global\setbox\M@box@k=\hbox{%
+ \lower 1.25ex \hbox{\hss\symbol{"5E}\hss}}%
+ $\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+ \dimen0=\f@baselineskip
+ \fontencoding{OMS}\fontfamily{cmsy}\fontseries{m}%
+ \fontshape{n}%
+ \fontsize{\f@size}{\dimen0}%
+ \selectfont
+% \end{macrocode}
+% \newpage
+% Anceps
+%
+% \begin{macrocode}
+ \begingroup
+ \relsize{-2}%
+ \global\setbox0=\hbox{\symbol{"02}}%
+ \global\setbox\M@box@a=%
+ \hbox to .675\wd0{\hss\symbol{"02}\hss}%
+ \endgroup
+ \global\ht\M@box@a=.82\ht0
+ \global\dp\M@box@a=\z@
+% \end{macrocode}
+%
+% Circle
+%
+% \begin{macrocode}
+ \dimen0=\f@baselineskip
+ \begingroup
+ \relsize{+1}%
+ \fontsize{\f@size}{\dimen0}%
+ \selectfont
+ \setbox0=\hbox{\symbol{"0E}}%
+ \global\setbox\M@box@o=\hbox to .733\wd0{\hss%
+ \lower .08\M@metra@ex\hbox{\symbol{"0E}}\hss}%
+ \endgroup
+ \global\ht\M@box@o=.8\ht0
+ \global\dp\M@box@o=\z@
+ \endgroup
+}
+% \end{macrocode}
+%
+% \subsubsection{Generating the symbols}
+%
+% All the dirty work done in |\M@makeboxes| pays off now. Putting
+% the symbols together is child's play, like stacking
+% LEGO{\kern .1em \raise 1ex \hbox{\tiny \textregistered}}
+% pieces.
+%
+% The general scheme is that, for each user command |\|\textit{x},
+% there is a macro |\M@@|\textit{x} that sets the symbol and a macro
+% |\M@|\textit{x} which calls |\M@@|\textit{x} and takes care of
+% \textit{inter signa} spacing.
+%
+% \begin{macrocode}
+\def\M@s{\kern \M@dim@s \nobreak}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@m{\copy\M@box@m}
+\def\M@m{\M@head \M@@m \M@tail}
+\def\M@M{\M@head \M@acutus \M@@m \M@tail}
+\def\M@gM{\M@head \M@gravis \M@@m \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@lm{\M@@m \kern -\wd\M@box@m \kern \wd\M@box@b \M@@m}
+\def\M@lm{\M@head \M@@lm \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@b{\hbox{\M@en@check{\M@dim@bsink}\copy \M@box@b}}
+\def\M@b{\M@head \M@@b \M@tail}
+\def\M@B{\M@head \M@acutus \M@@b \M@tail}
+\def\M@gB{\M@head \M@gravis \M@@b \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@a{%
+ \M@head \M@en@check{.4\ht\M@box@a}\copy\M@box@a
+ \M@dirty@trick\M@box@a \M@tail}
+\def\M@@ma{%
+ \M@en@check{.4\ht\M@box@a}\M@stack{\M@box@m}{\M@box@a}}
+\def\M@ma{\M@head \M@@ma \M@tail}
+\def\M@Ma{\M@head \M@acutus \M@@ma \M@tail}
+\def\M@gMa{\M@head \M@gravis \M@@ma \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@o{%
+ \M@head \M@en@check{.4\ht\M@box@o}\copy \M@box@o \M@tail}
+\def\M@oo{\M@o \M@o}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@bb{\M@@b\M@@b}
+\def\M@bb{\M@head \M@@bb \M@tail}
+\def\M@Bb{\M@head \M@A{.5}\M@@b \M@@b \M@tail}
+\def\M@gBb{\M@gravistrue \M@Bb \M@gravisfalse}
+\def\M@bB{\M@head \M@@b \M@A{.5}\M@@b \M@tail}
+\def\M@gbB{\M@gravistrue \M@bB \M@gravisfalse}
+\def\M@BB{\M@head \M@acutus \M@@bb \M@tail}
+\def\M@gBB{\M@head \M@gravis \M@bb \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@bm{%
+ \setbox0=\M@stack{\M@box@b}{\M@box@m}%
+ \dimen0=\M@dim@bsink
+ \advance \dimen0 by \M@intervallum\M@metra@ex
+ \advance \dimen0 by \ht\M@box@m
+ \M@en@check{\dimen0}\box0\relax
+}
+\def\M@bm{\M@head \M@@bm \M@tail}
+\def\M@Bm{\M@head \M@acutus \M@@bm \M@tail}
+\def\M@gBm{\M@head \M@gravis \M@bm \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@mb{%
+ \setbox0=\M@stack{\M@box@m}{\M@box@b}%
+ \M@en@check{\M@dim@bsink}\box0\relax
+}
+\def\M@mb{\M@head \M@@mb \M@tail}
+\def\M@Mb{\M@head \M@acutus \M@@mb \M@tail}
+\def\M@gMb{\M@head \M@gravis \M@mb \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@mbb{\M@@mb \kern -\wd\M@box@m \kern \wd\M@box@b \M@@mb}
+\def\M@mbb{\M@head \M@@mbb \M@tail}
+\def\M@Mbb{\M@head \M@acutus \M@@mbb \M@tail}
+\def\M@mBb{\M@head \M@acutus[.25]\M@@mbb \M@tail}
+\def\M@mbB{\M@head \M@acutus[.75]\M@@mbb \M@tail}
+\def\M@gMbb{\M@head \M@gravis \M@@mbb \M@tail}
+\def\M@gmBb{\M@head \M@gravis[.25]\M@@mbb \M@tail}
+\def\M@gmbB{\M@head \M@gravis[.75]\M@@mbb \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@bbm{\M@@bm \kern -\wd\M@box@m \kern \wd\M@box@b \M@@bm}
+\def\M@bbm{\M@head \M@@bbm \M@tail}
+\def\M@BBm{\M@head \M@acutus \M@@bbm \M@tail}
+\def\M@Bbm{\M@head \M@acutus[.25]\M@@bbm \M@tail}
+\def\M@bBm{\M@head \M@acutus[.75]\M@@bbm \M@tail}
+\def\M@gBBm{\M@head \M@gravis \M@@bbm \M@tail}
+\def\M@gBbm{\M@head \M@gravis[.25]\M@@bbm \M@tail}
+\def\M@gbBm{\M@head \M@gravis[.75]\M@@bbm \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@bba{%
+ \edef\M@opt@save{\M@opt@style}%
+ \def\M@opt@style{0}%
+ \setbox0=\hbox{\M@@bb}%
+ \edef\M@opt@style{\M@opt@save}%
+ \setbox0=\hbox to \wd0{\hss\M@stack{0}{\M@box@a}\hss}%
+ \M@en@check{.5\ht\M@box@a}\box0\relax
+}
+\def\M@bba{\M@head \M@@bba \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@bbb{%
+ \edef\M@opt@save{\M@opt@style}%
+ \def\M@opt@style{0}%
+ \setbox0=\hbox{\M@@bb}%
+ \edef\M@opt@style{\M@opt@save}%
+ \setbox0=\hbox to \wd0{\hss\M@stack{0}{\M@box@b}\hss}%
+ \M@en@check{\M@dim@bsink}\box0\relax
+}
+\def\M@bbb{\M@head \M@@bbb \M@tail}
+% \end{macrocode}
+%
+% This strange symbol needs some extra work.
+%
+% \begin{macrocode}
+\def\M@bbmb{%
+ \M@head
+ \dimen0=\M@intervallum\M@metra@ex
+ \if 2\M@opt@style % the [En] option
+ \edef\M@opt@save{\M@opt@style}%
+ \def\M@opt@style{0}%
+ \setbox0=\hbox{\M@@lm}%
+ \copy0
+ \kern -\wd0
+ \dimen1=\dimen0
+ \advance \dimen1 by \ht\M@box@b
+ \lower \dimen1 \hbox to \wd0{\hss\M@@b\hss}%
+ \global\M@dim@sunk=\dimen1
+ \kern -\wd0
+ \dimen1=\dimen0
+ \advance \dimen1 by \ht\M@box@m
+ \raise \dimen1 \hbox to \wd0{\hss\M@@bb\hss}%
+ \edef\M@opt@style{\M@opt@save}%
+ \else
+ \edef\M@opt@save{\M@opt@style}%
+ \def\M@opt@style{0}%
+ \setbox0=\hbox{\M@@bbm}%
+ \edef\M@opt@style{\M@opt@save}%
+ \global\M@dim@sunk=\z@
+ \hbox to \wd0{\hss\M@@b\hss}%
+ \kern -\wd0
+ \advance \dimen0 by \ht\M@box@b
+ \advance \dimen0 by -\M@dim@sunk
+ \raise \dimen0 \box0
+ \fi
+ \M@tail
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@p{%
+ \M@head
+ \if 0\M@opt@style
+ \relax
+ \else
+ \lower .5\ht\M@box@p
+ \fi
+ \copy\M@box@p
+ \M@tail
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@pm{%
+ \setbox0=\hbox{\hss\copy\M@box@p\hss}%
+ \M@stack{0}{\M@box@m}%
+}
+\def\M@pm{\M@head \M@@pm \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@ppm{%
+ \setbox0=\hbox{\copy\M@box@p\kern .33\wd\M@box@p\copy\M@box@p}%
+ \M@stack{0}{\M@box@m}%
+}
+\def\M@ppm{\M@head \M@@ppm \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@pppm{%
+ \M@head
+ \setbox0=\hbox{\M@@ppm}%
+ \ht0=1.2\ht0
+ \M@stack{\M@box@p}{0}%
+ \M@tail
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@pp{%
+ \setbox0=\vbox{\copy\M@box@p
+ \nointerlineskip\kern 2\M@dim@bsink
+ \copy\M@box@p
+ }%
+ \M@en@caesura{.25\M@dim@bsink}%
+}
+\def\M@pp{\kern \M@dim@c@ext \M@@pp \kern \M@dim@c@ext
+ \M@interfalse}
+\def\M@Pp{\kern \M@dim@c@Ext \M@@pp \kern \M@dim@c@Ext
+ \M@interfalse}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@pxp{%
+ \setbox0=\vbox{\vskip 1.125\M@dim@bsink
+ \nointerlineskip \vskip .5\ht\M@box@p
+ \copy\M@box@p
+ \nointerlineskip \vskip 2.25\M@dim@bsink
+ \copy\M@box@p
+ \nointerlineskip \vskip 1.125\M@dim@bsink
+ \nointerlineskip \vskip .5\ht\M@box@p
+ }%
+ \M@en@caesura{1\M@dim@bsink}%
+}
+\def\M@pxp{\kern \M@dim@c@ext \M@@pxp \kern \M@dim@c@ext
+ \M@interfalse}
+\def\M@Pxp{\kern \M@dim@c@Ext \M@@pxp \kern \M@dim@c@Ext
+ \M@interfalse}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@ppp{%
+ \setbox0=\vbox{\copy\M@box@p
+ \nointerlineskip\vskip 2.25\M@dim@bsink
+ \copy\M@box@p
+ \nointerlineskip\vskip 2.25\M@dim@bsink
+ \copy\M@box@p
+ }%
+ \M@en@caesura{1\M@dim@bsink}%
+}
+\def\M@ppp{\kern \M@dim@c@ext \M@@ppp \kern \M@dim@c@ext
+ \M@interfalse}
+\def\M@Ppp{\kern \M@dim@c@Ext \M@@ppp \kern \M@dim@c@Ext
+ \M@interfalse}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@pppp{%
+ \setbox0=\vbox{\copy\M@box@p
+ \nointerlineskip\vskip 1.26\M@dim@bsink
+ \copy\M@box@p
+ \nointerlineskip\vskip 1.26\M@dim@bsink
+ \copy\M@box@p
+ \nointerlineskip\vskip 1.26\M@dim@bsink
+ \copy\M@box@p
+ }%
+ \M@en@caesura{1\M@dim@bsink}%
+}
+\def\M@pppp{\kern \M@dim@c@ext \M@@pppp \kern \M@dim@c@ext
+ \M@interfalse}
+\def\M@Pppp{\kern \M@dim@c@Ext \M@@pppp \kern \M@dim@c@Ext
+ \M@interfalse}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@ppppp{%
+ \setbox0=\vbox{\copy\M@box@p
+ \nointerlineskip\vskip .775\M@dim@bsink
+ \copy\M@box@p
+ \nointerlineskip\vskip .775\M@dim@bsink
+ \copy\M@box@p
+ \nointerlineskip\vskip .775\M@dim@bsink
+ \copy\M@box@p
+ \nointerlineskip\vskip .775\M@dim@bsink
+ \copy\M@box@p
+ }%
+ \M@en@caesura{\M@dim@bsink}%
+}
+\def\M@ppppp{\kern \M@dim@c@ext \M@@ppppp \kern \M@dim@c@ext
+ \M@interfalse}
+\def\M@Ppppp{\kern \M@dim@c@Ext \M@@ppppp \kern \M@dim@c@Ext
+ \M@interfalse}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@vppm{%
+ \setbox0=\hbox{\M@@pm}%
+ \ht0=1.3\ht0
+ \M@stack{\M@box@p}{0}%
+}
+\def\M@vppm{\M@head \M@@vppm \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@vpppm{%
+ \setbox0=\hbox{\M@@vppm}%
+ \ht0=1.15\ht0
+ \M@stack{\M@box@p}{0}%
+}
+\def\M@vpppm{\M@head \M@@vpppm \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@caesura{%
+ \setbox0=\hbox{%
+ \vrule width .03em depth .21\M@metra@ex
+ height 1.25\M@metra@ex
+ }%
+ \M@en@caesura{\z@}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@C{\kern \M@dim@c@Ext \M@caesura \kern \M@dim@c@Ext
+ \M@interfalse}
+\def\M@c{\kern \M@dim@c@ext \M@caesura \kern \M@dim@c@ext
+ \M@interfalse}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@cc{\kern \M@dim@c@ext \M@caesura \kern \M@dim@c@int
+ \M@caesura \kern \M@dim@c@ext
+ \M@interfalse}
+\def\M@Cc{\kern \M@dim@c@Ext \M@caesura \kern \M@dim@c@int
+ \M@caesura \kern \M@dim@c@Ext
+ \M@interfalse}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@ccc{\kern \M@dim@c@ext \M@caesura \kern \M@dim@c@int
+ \M@caesura \kern \M@dim@c@int
+ \M@caesura \kern \M@dim@c@ext
+ \M@interfalse}
+\def\M@Ccc{\kern \M@dim@c@Ext \M@caesura \kern \M@dim@c@int
+ \M@caesura \kern \M@dim@c@int
+ \M@caesura \kern \M@dim@c@Ext
+ \M@interfalse}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@v{%
+ \begingroup
+ \M@text@fontsize
+ \setbox0=\hbox{,},\kern -\wd0 \kern \M@dim@s
+ \endgroup
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@r{\M@bigfalse\M@@r}
+\def\M@R{\M@bigtrue\M@@r}
+\newcommand{\M@@r}[1][0]{\leavevmode
+ \M@head
+ \setbox0=\hbox{%
+ $\ifM@big \scriptstyle
+ \else \scriptscriptstyle \fi \sim$\unskip}%
+ \dimen0=\ifM@big -.05\else .1\fi\M@metra@ex
+ \advance \dimen0 by #1\M@metra@ex
+ \if 0\M@opt@style
+ \relax
+ \else
+ \advance \dimen0 by -\M@dim@bsink
+ \fi
+ \raisebox {\dimen0}[\z@][\z@]{\copy0}%
+ \M@dirty@trick 0\relax
+ \M@tail
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@t{\M@bigfalse\M@@t}
+\def\M@T{\M@bigtrue\M@@t}
+\newcommand{\M@@t}[1][0]{\leavevmode
+ \M@head
+ \setbox0=\hbox{%
+ $\ifM@big \scriptstyle \else
+ \scriptscriptstyle \fi \otimes$\unskip}%
+ \dimen0=\ifM@big -.05 \else .1 \fi \M@metra@ex
+ \advance \dimen0 by #1\M@metra@ex
+ \if 0\M@opt@style
+ \relax
+ \else
+ \advance \dimen0 by -\M@dim@bsink
+ \fi
+ \raisebox {\dimen0}[\z@][\z@]{\copy0}%
+ \M@dirty@trick 0\relax
+ \M@tail
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@x{%
+ \M@head
+ \setbox0=\vbox{\copy\M@box@p
+ \nointerlineskip\kern 2\M@dim@bsink
+ \copy\M@box@p
+ }%
+ \setbox0=\hbox{\copy0\kern \wd\M@box@p \copy0}%
+ \M@en@check{.5\ht0}%
+ \copy0
+ \M@tail
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@tsmb{\M@head \copy\M@box@tsmb \M@tail}
+\def\M@tsbm{\M@head \copy\M@box@tsbm \M@tail}
+\def\M@tsmm{\M@head \copy\M@box@tsmm \M@tail}
+\def\M@ps{\M@head \copy\M@box@ps \M@tail}
+% \end{macrocode}
+%
+% \subsubsection{Service macros}
+%
+% Switch to CMR OT1.
+%
+% \begin{macrocode}
+\def\M@cmr{\fontencoding{OT1}\fontfamily{cmr}\fontseries{m}%
+ \fontshape{n}\selectfont
+}
+% \end{macrocode}
+%
+% Generate \textit{inter signa} spacing.
+%
+% \begin{macrocode}
+\def\M@head{\leavevmode
+ \ifM@inter
+ \expandafter\hskip\M@interS\M@dim@m\relax
+ \fi
+ \M@interfalse
+ \M@vert@barfalse
+}
+\def\M@tail{\M@intertrue}
+% \end{macrocode}
+%
+% Stack one box on top of another, keeping them centered
+% around the vertical axis.
+%
+% \begin{macrocode}
+\def\M@stack#1#2{%
+ \hbox{%
+ \dimen0=\wd#1\relax
+ \ifdim \dimen0<\wd#2\relax
+ \dimen0=\wd#2\relax
+ \fi
+ \dimen1=\ht#2\relax
+ \advance \dimen1 by \M@intervallum\M@metra@ex
+ \hbox to \dimen0{\hss\copy#2\hss}%
+ \kern -\dimen0
+ \raise \dimen1 \hbox to \dimen0{\hss\copy#1\hss}%
+ }%
+}
+% \end{macrocode}
+%
+% This macro (used by |\tie| and |\n|) stacks |\box1| over
+% (|\dimen2|\textgreater0) or under (|\dimen2|\textless0) |\box0|.
+% |\dimen2| holds the amount by which to raise/lower; |\dimen3| the
+% (possible) correction for \textit{inter signa} space.
+%
+% |\box0| is actually set only if the parameter is 0.
+%
+% \begin{macrocode}
+\def\M@Stack#1{%
+ \ifnum #1=\z@
+ \copy0
+ \fi
+ \dimen0=\wd0
+ \advance \dimen0 by -\dimen3
+ \advance \dimen0 by \wd1
+ \kern -.5\dimen0
+ \raisebox {\dimen2}[\z@][\z@]{\copy1}%
+ \dimen0=\wd0
+ \advance \dimen0 by -\wd1
+ \advance \dimen0 by -\dimen3
+ \dimen0=.5\dimen0
+ \kern \dimen0\relax
+}
+% \end{macrocode}
+%
+% If using the English style, lower the box and remember the amount
+% by which it has been lowered.
+%
+% \begin{macrocode}
+\def\M@en@check#1{%
+ \if 0\M@opt@style
+ \relax
+ \else
+ \global\M@dim@sunk=#1\relax
+ \lower #1\relax
+ \fi
+}
+% \end{macrocode}
+%
+% If using the English style, lower the \textit{caesura} symbols so
+% that they come out in the same position as in the standard style.
+%
+% \begin{macrocode}
+\def\M@en@caesura#1{%
+ \dimen0=\if 0\M@opt@style 0\else .5\fi\M@text@ex
+ \advance \dimen0 by \M@subS\M@text@ex
+ \advance \dimen0 by #1\relax
+ \lower \dimen0 \copy0
+ \M@vert@bartrue
+}
+% \end{macrocode}
+%
+% \subsubsection{Placing marks on symbols}
+%
+% Put an accent over a symbol.
+%
+% \begin{macrocode}
+\newcommand{\M@acutus}[2][.5]{%
+ \M@head \M@A{#1}{#2}\M@tail}
+\newcommand{\M@gravis}[2][.5]{%
+ \M@gravistrue \M@A{#1}{#2}\M@gravisfalse}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@A#1#2{%
+ \setbox1=\hbox{#2}%
+ \dimen1=\ht1
+ \dimen2=\ht\M@box@b
+ \if 0\M@opt@style
+ \relax
+ \else
+ \advance \dimen2 by -\M@dim@sunk
+ \fi
+ \ifdim \dimen1<\dimen2
+ \dimen1=\dimen2
+ \fi
+ \copy1\relax
+ \dimen0=#1\wd1
+ \advance \dimen0 by -1.5\wd1
+ \kern \dimen0
+ \raise \dimen1
+ \hbox to \wd1{%
+ \hss
+ \ifM@gravis
+ \ifdim \wd1>\M@dim@m
+ \kern -.1\wd\M@box@G
+ \fi
+ \copy\M@box@G
+ \else
+ \ifdim \wd1>\M@dim@m
+ \kern .1\wd\M@box@A
+ \fi
+ \copy\M@box@A
+ \fi
+ \hss
+ }%
+ \dimen0=#1\wd1
+ \advance \dimen0 by -.5\wd1
+ \kern -\dimen0\relax
+}
+% \end{macrocode}
+%
+% Put the mark for \textit{catalexis} under a symbol.
+%
+% \begin{macrocode}
+\def\M@k#1{\M@head \M@@Kk{#1}{\M@box@k}\relax \M@tail}
+\def\M@K#1{\M@head \M@@Kk{#1}{\M@box@K}\relax \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@Kk#1#2{%
+ \global\M@dim@sunk=\z@
+ \setbox1=\hbox{#1}%
+ \dimen1=.667\ht\M@box@b
+ \ifx #2\M@box@K
+ \dimen1=1.33\dimen1
+ \fi
+ \advance \dimen1 by \M@dim@sunk
+ #1\relax
+ \kern -\wd1
+ \raisebox {-\dimen1}[\z@][\z@]%
+ {\hbox to \wd1{\hss\copy#2\hss}}%
+}
+% \end{macrocode}
+%
+% Put some kind of quotation marks around the argument .
+%
+% \begin{macrocode}
+\def\M@q#1#2{\M@head \M@@q{#1}{0}{#2}\relax \M@tail}
+\def\M@Q#1#2{\M@head \M@@q{#1}{1}{#2}\relax \M@tail}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@q#1#2#3{%
+ \dimen0=\z@
+ \if 0\M@opt@style
+ \relax
+ \else
+ \advance \dimen0 by -\M@dim@bsink
+ \fi
+ \dimen1=\z@
+ \def\M@q@size{4}%
+ \def\M@Q@size{2}%
+ \ifx !#1\relax
+ \def\M@q@ante{\M@cmr\texttt{\char"0D}}%
+ \def\M@q@post{\M@cmr\texttt{\char"0D}}%
+ \dimen1=-.075em
+ \else \ifx '#1\relax
+ \def\M@q@ante{\M@cmr\char"60}%
+ \def\M@q@post{\M@cmr\char"27}%
+ \else \ifx (#1\relax
+ \def\M@q@ante{%
+ \fontencoding{OML}\fontfamily{cmm}\fontseries{m}%
+ \fontshape{it}\selectfont\symbol{"2C}}%
+ \def\M@q@post{%
+ \fontencoding{OML}\fontfamily{cmm}\fontseries{m}%
+ \fontshape{it}\selectfont\symbol{"2D}}%
+ \def\M@q@size{6}%
+ \def\M@Q@size{5}%
+ \advance \dimen0 by .33ex
+ \dimen1=.05em
+ \else \ifx "#1\relax
+ \def\M@q@ante{\M@cmr\char"5C}%
+ \def\M@q@post{\M@cmr\char"22}%
+ \dimen1=.05em
+ \else \ifx <#1\relax
+ \def\M@q@ante{%
+ \fontencoding{U}\fontfamily{lasy}%
+ \fontseries{b}\fontshape{n}%
+ \selectfont\symbol{"28}%
+ \kern -.2em\symbol{"28}\kern .1em\relax}%
+ \def\M@q@post{%
+ \fontencoding{U}\fontfamily{lasy}%
+ \fontseries{b}\fontshape{n}%
+ \selectfont\kern .1em\symbol{"29}%
+ \kern -.2em\symbol{"29}}%
+ \def\M@q@size{5}%
+ \def\M@Q@size{3}%
+ \dimen1=-.05em
+ \advance \dimen0 by .33ex
+ \else
+ \PackageError{metre}%
+ {Invalid character after %
+ \protect\q \space or \protect\Q}%
+ {Valid characters are: \protect( %
+ \protect' \protect" %
+ \protect! \protect<}%
+ \fi\fi\fi\fi\fi
+ \raise \dimen0 \hbox{%
+ \begingroup
+ \relsize{-\if 1#2\M@Q@size\else \M@q@size\fi}%
+ \setbox0=\hbox{\M@q@ante}%
+ \copy0
+ \endgroup
+ }%
+ \M@dirty@trick 0\relax
+ \leavevmode \kern \dimen1
+ {\M@interfalse#3}%
+ \leavevmode \kern \dimen1
+ \raise \dimen0 \hbox{%
+ \begingroup
+ \relsize{-\if 1#2\M@Q@size\else \M@q@size\fi}%
+ \setbox0=\hbox{\M@q@post}%
+ \copy0
+ \endgroup
+ }%
+ \M@dirty@trick 0\relax
+}
+% \end{macrocode}
+%
+% Put a \textit{caesura} in the middle of a symbol.
+%
+% \begin{macrocode}
+\def\M@d#1{\M@head \M@@d#1\relax \M@tail}
+\def\M@@d#1{%
+ \setbox1=\hbox{#1}%
+ #1\relax \kern -\wd1
+ \hbox to \wd1{\hfill \M@caesura \hfill}%
+}
+% \end{macrocode}
+%
+% Raise text to superscript.
+%
+% \begin{macrocode}
+\newcommand{\M@super@metra}[2][0]{%
+ \begingroup
+ \tiny
+ \setbox0=\hbox{#2}%
+ \dimen0=1.25\M@metra@ex
+ \advance \dimen0 by
+ \if 0\M@opt@style
+ \z@
+ \else
+ \ifM@vert@bar -.5\M@text@ex \else -\M@dim@bsink \fi
+ \fi
+ \advance \dimen0 by \M@subS\M@text@ex
+ \advance \dimen0 by -\ht0
+ \advance \dimen0 by #1\M@metra@ex
+ \raise \dimen0 \hbox{\kern .05\wd0#2}%
+ \endgroup
+ \M@vert@barfalse
+}
+% \end{macrocode}
+%
+% \subsubsection{A very dirty trick}
+%
+% This seemingly absurd piece of code solves a very annoying and
+% mysterious problem that occurs after symbols taken from the math font.
+% The problem can be seen by turning the macro into a no-op and
+% compiling this text:\par
+% \quad\quad |\metra{\a\bbm}\par\metra{\a\bbm}|\par
+% Depending on the DVI driver and the font in use, you may see nothing amiss;
+% but, more likely, you will find that in one of the metrical schemes
+% (usually the second) a very thin space has crept under the first
+% \textit{macron}. The problem seems to arise from the change of
+% |\baselineskip| due to the font switch and, from some experiments
+% I have done, I got the impression that it occurs within the DVI
+% driver itself (I could see nothing in the DVI file that would account for
+% the thin space). In any case, this cannot be considered a bug,
+% as Knuth obviously had no reason to envisage the unorthodox use to which
+% math symbols are put in |metre|.
+%
+% After spending an inordinate amount of time hunting for a solution,
+% I finally hit upon the idea behind this dirty trick.
+% The question mark, being raised by 1 metre (actually 1 metre plus
+% a whisker), buffers the shock of the font switch and then vanishes
+% harmlessly into empty space.
+%
+% The macro parameter is the identifier of the box containing the math symbol.
+% \begin{macrocode}
+\def\M@dirty@trick#1{%
+ \kern -\wd#1\relax
+ \raisebox {100cm}[\z@][\z@]{\hbox to \wd#1{\hss?\hss}}%
+}
+% \end{macrocode}
+%
+% \subsubsection{Placing annotations on symbols}
+%
+% \begin{macrocode}
+\newcommand{\M@n}[3][1]{\M@@n{\hss#2\hss}{#3}{0}{#1}{0}}
+\newcommand{\M@ni}[3][1]{\M@@n{\hss#2\hss}{#3}{1}{#1}{0}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@n#1#2#3#4#5{%
+% \end{macrocode}
+% All the work is done by |\M@@n|:
+%
+% |#1| is the text to be set above or below |#2| depending on the value
+% of |#3| (0~= above, 1 = below) at a distance that may be modified
+% by |#4|.
+%
+% The box containing |#2| is generated only if |#5| = 0
+%
+% \begin{macrocode}
+ \M@head
+ \global\M@dim@sunk=\z@
+ \ifM@inter
+ \dimen3=\M@interS\M@dim@m
+ \else
+ \dimen3=\z@
+ \fi
+ \setbox0=\hbox{#2}%
+ \begingroup
+ \tiny \global\setbox1=\hbox{#1}%
+ \endgroup
+ \dimen2=\M@intervallum\M@metra@ex
+ \dimen2=1.5\dimen2
+ \ifnum #3=\z@
+ \advance \dimen2 by \dp1
+ \advance \dimen2 by \ht0
+ \else
+ \dimen2=-\dimen2
+ \advance \dimen2 by -\ht1
+ \advance \dimen2 by -\M@dim@sunk
+ \fi
+ \dimen2=#4\dimen2
+ \M@Stack#5\relax
+ \M@tail
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\M@N}[4][1]{%
+ \M@@n{%
+ \ifx #3\mbbx
+ \hfil #2\relax \hfil \kern \M@dim@b
+ \else
+ \ifx #3\bbmx
+ \kern \M@dim@b \hfil #2\relax \hfil
+ \else
+ \hfil #2\relax \hfil
+ \fi
+ \fi
+ }{#3}{0}{#1}{0}%
+ \M@interfalse
+ \M@@n{%
+ \ifx #3\mbbx
+ \kern \M@dim@b \hfil #4\relax \hfil
+ \else
+ \ifx #3\bbmx
+ \hfil #4\relax \hfil \kern \M@dim@b
+ \else
+ \hfil #4\relax \hfil
+ \fi
+ \fi
+ }{#3}{1}{#1}{1}%
+}
+% \end{macrocode}
+%
+% These two odd symbols are defined here because
+% they do not make much sense except as arguments of |\N|.
+%
+% \begin{macrocode}
+\def\M@mbbx{%
+ \M@head
+ \setbox0=\hbox{\M@@mbb}%
+ \if 0\M@opt@style
+ \dimen0=\M@intervallum\M@metra@ex
+ \setbox1=\hbox{\m}%
+ \advance \dimen0 by \ht1
+ \raise \dimen0
+ \fi
+ \copy0 \kern -\M@dim@m
+ \M@interfalse \M@@bbm
+ \M@tail
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@bbmx{%
+ \M@head
+ \setbox0=\hbox{\M@@bbm}%
+ \copy0
+ \dimen2=\M@dim@sunk
+ \kern -\M@dim@m \M@interfalse
+ \if 0\M@opt@style
+ \dimen0=\M@intervallum\M@metra@ex
+ \setbox1=\hbox{\m}%
+ \advance \dimen0 by \ht1
+ \raise \dimen0
+ \fi
+ \hbox{\M@@mbb}%
+ \global\M@dim@sunk=\dimen2
+ \M@tail
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\numeri}[1]{\M@numeri#1\end}
+\def\M@numeri#1:#2\end{\bgroup\tiny{\it #1}:%
+ \kern .2em#2\egroup}
+% \end{macrocode}
+%
+% \subsection{The \texttt{metrica} environment}
+%
+% Define abbreviations for common commands
+%
+% \begin{macrocode}
+\def\M@abbrev{%
+ \def\c{\metra{\c}}%
+ \def\C{\metra{\C}}%
+ \def\cc{\metra{\cc}}%
+ \def\Cc{\metra{\Cc}}%
+ \def\ccc{\metra{\ccc}}%
+ \def\Ccc{\metra{\Ccc}}%
+ \def\p{\metra{\p}}%
+ \def\pp{\metra{\pp}}%
+ \def\Pp{\metra{\Pp}}%
+ \def\ppp{\metra{\ppp}}%
+ \def\Ppp{\metra{\Ppp}}%
+ \def\pppp{\metra{\pppp}}%
+ \def\Pppp{\metra{\Pppp}}%
+ \def\ppppp{\metra{\ppppp}}%
+ \def\Ppppp{\metra{\Ppppp}}%
+ \def\pxp{\metra{\pxp}}%
+ \def\Pxp{\metra{\Pxp}}%
+ \def\pos{\positio}%
+ \def\Pos{\Positio}%
+ \def\!{\dubia}%
+ \let\e=\Elevatio
+ \let\t=\Translatio
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newenvironment{metrica}[1][\relax]{\leavevmode
+ \ifx n#1\relax
+ \else
+ \ifx N#1\relax
+ \else
+ \ifx \relax#1\relax
+ \M@abbrev
+ \else
+ \PackageError{metre}{%
+ Invalid optional parameter for %
+ the metrica environment}%
+ {The optional parameter must be either `n' or `N'}%
+ \fi
+ \fi
+ \fi
+% \end{macrocode}
+%
+% Define the commands for prosodical marks.
+%
+% \begin{macrocode}
+ \def\={\M@tempus{2}}%
+ \def\-{\M@tempus{1}}%
+ \let\u=\-%
+ \ignorespaces
+ }{}%
+% \end{macrocode}
+%
+% Place a macron (|#1| = 2) or a breve (|#1| = 1) over |#2|.
+%
+% \begin{macrocode}
+\def\M@tempus#1#2{\leavevmode
+ \def\M@accent{\relax}%
+ \if '#2\relax
+ \def\M@accent{19}%
+ \else
+ \if `#2\relax
+ \def\M@accent{18}%
+ \fi
+ \fi
+ \let\next=\relax
+ \if \M@accent\relax
+ \def\M@char{#2}%
+ \let\next=\M@@tempus% no accent
+ \else
+ \let\next=\M@@@tempus% accent
+ \fi
+ \next{#1}%
+}
+\def\M@@@tempus#1#2{%
+ \def\M@char{#2}%
+ \M@@tempus#1\relax
+}
+\def\M@ij#1#2\end{%
+ \ifx i#1\relax
+ \def\M@char{\i}%
+ \else
+ \ifx j#1\relax
+ \def\M@char{\j}%
+ \else
+ \def\M@char{#1}%
+ \fi
+ \fi
+ \ifx i#2\relax
+ \edef\M@char{\M@char\i}%
+ \else
+ \ifx j#2\relax
+ \edef\M@char{\M@char\j}%
+ \else
+ \edef\M@char{\M@char#2}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@tempus#1{%
+ \dimen0=1ex
+ \dimen0=\M@elevatio\dimen0
+ \ifdim \dimen0=\z@
+ \expandafter\M@ij\M@char\end
+ \fi
+ \dimen3=1em
+ \dimen3=\M@translatio\dimen3
+ \setbox0=\hbox{\M@char}%
+ \dimen1=\wd0
+ \dimen2=\dimen0
+ \ifdim \dimen0=\z@
+ \ifdim \wd0=\z@
+ \dimen2=1ex
+ \else
+ \dimen2=\ht0
+ \fi
+ \fi
+ \setbox0=\hbox{%
+ \M@char
+ \kern -\dimen1
+ \kern \dimen3
+ \raise \dimen2 \hbox to \dimen1{%
+ \begingroup
+ \M@cmr
+ \hss
+ \raisebox {-1ex}[\z@][\z@]{\hbox{\char2#1}}%
+ \hss
+ \endgroup
+ }%
+ \kern -\dimen3
+ }%
+% \end{macrocode}
+%
+% Adjust the height to account for the accent.
+%
+% \begin{macrocode}
+ \ht0=1.3\ht0
+% \end{macrocode}
+%
+% Check for an accent.
+%
+% \begin{macrocode}
+ \if \M@accent\relax
+% \end{macrocode}
+%
+% If no accent, just set the box.
+%
+% \begin{macrocode}
+ \copy0
+ \else
+% \end{macrocode}
+%
+% otherwise put the accent on top of the macron or breve.
+%
+% \begin{macrocode}
+ \ifdim \dimen0=\z@
+ \dimen0=1.05\ht0
+ \else
+ \ifdim \dimen0<\z@
+ \dimen0=.8\dimen0
+ \else
+ \dimen0=1.2\dimen0
+ \fi
+ \fi
+ \copy0
+ \kern -\wd0
+ \kern \dimen3
+ \raise \dimen0 \hbox to \wd0{%
+ \begingroup
+ \M@cmr
+ \hss
+ \lower 1ex \hbox{\expandafter\char\M@accent}%
+ \hss
+ \endgroup
+ }%
+ \kern -\dimen3
+ \fi
+}
+% \end{macrocode}
+%
+% \subsection{The \texttt{metrike} environment}
+%
+% This is much the same as the |metrica| environment.
+% Accents and other diacritical marks are taken care of by |ibycus4| or
+% |Babel|.
+%
+% \begin{macrocode}
+\newenvironment{metrike}[1][\relax]{\leavevmode
+ \ifx n#1\relax
+ \else
+ \ifx N#1\relax
+ \else
+ \ifx \relax#1\relax
+ \M@abbrev
+ \else
+ \PackageError{metre}{%
+ Invalid optional parameter for %
+ the metrike environment}%
+ {The optional parameter must be either `n' or `N'}%
+ \fi
+ \fi
+ \fi
+ \def\={\M@gtempus{2}}%
+ \def\-{\M@gtempus{1}}%
+ \let\u=\-%
+ \ifx \M@MetrikeFont \@undefined
+ \ifnum \M@ibycus=\@ne
+ \def\M@@MF{\fontencoding{OT1}\greek}%
+ \else
+ \ifx \l@greek \@undefined
+ \PackageError{metre}{No font available for Greek text}%
+ {You must use the \protect\MetrikeFont command}%
+ \else
+ \def\M@@MF{\selectlanguage{polutonikogreek}}%
+ \fi
+ \fi
+ \else
+ \if i\M@MetrikeFont
+ \def\M@@MF{\fontencoding{OT1}\greek}%
+ \else
+ \if I\M@MetrikeFont
+ \def\M@@MF{\fontencoding{OT1}\greek}%
+ \else
+ \if b\M@MetrikeFont
+ \def\M@@MF{\selectlanguage{polutonikogreek}}%
+ \else
+ \if B\M@MetrikeFont
+ \def\M@@MF{\selectlanguage{polutonikogreek}}%
+ \else
+ \def\M@@MF{\M@MetrikeFont}%
+ \fi
+ \fi
+ \fi
+ \fi
+ \fi
+ \M@@MF
+ \ignorespaces
+ }{}%
+% \end{macrocode}
+%
+% Place a macron (|#1| = 2) or a breve (|#1| = 1) over |#2|.
+%
+% \begin{macrocode}
+\def\M@gtempus#1#2{\leavevmode
+ \setbox0=\hbox{#2}%
+ \dimen0=1ex
+ \dimen0=\M@elevatio\dimen0
+ \ifdim \dimen0=\z@
+ \dimen0=\ht0
+ \fi
+ \dimen3=1em
+ \dimen3=\M@translatio\dimen3
+ \copy0
+ \kern -\wd0
+ \dimen1=\wd0
+ \setbox1=\hbox{\M@bare #2\end}%
+ \advance \dimen1 by -\wd1
+ \kern \dimen1
+ \kern \dimen3
+ \raise \dimen0 \hbox to \wd1{%
+ \begingroup
+ \hss
+ \M@cmr
+ \raisebox {-1ex}[\z@][\z@]{\hbox{\char2#1}}%
+ \hss
+ \endgroup
+ }%
+ \kern -\dimen3\relax
+}
+% \end{macrocode}
+% \newpage
+% Compute the width of the bare letter, without diacritics.
+% \begin{macrocode}
+\def\M@bare#1{%
+ \let\next=\M@bare
+ \ifnum \M@ibycus=\@ne
+ \ifx #1\end
+ \let\next=\relax
+ \else \ifx '#1\relax
+ \else \ifx `#1\relax
+ \else \ifx (#1\relax
+ \else \ifx )#1\relax
+ \else \ifx =#1\relax
+ \else \ifx |#1\relax
+ \else
+ #1\relax
+ \fi\fi\fi\fi\fi\fi\fi
+ \else
+ \ifx #1\end
+ \let\next=\relax
+ \else \ifx '#1\relax
+ \else \ifx `#1\relax
+ \else \ifx <#1\relax
+ \else \ifx >#1\relax
+ \else \ifx ~#1\relax
+ \else \ifx |#1\relax
+ \else
+ #1\relax
+ \fi\fi\fi\fi\fi\fi\fi
+ \fi
+ \next
+}
+% \end{macrocode}
+%
+% \subsection{The \texttt{\protect\bslash sigla} command}
+%
+% The |\sigla| command uses a few active characters.
+% \begin{macrocode}
+\begingroup
+\catcode`\:=\active
+\catcode`\/=\active
+\catcode`\_=\active
+\catcode`<=\active
+\catcode`>=\active
+\gdef\sigla{%
+ \begingroup% \endgroup in \M@sigla
+ \dimen1=.056em
+ \catcode`\:=\active
+ \catcode`\/=\active
+ \catcode`\_=\active
+ \catcode`<=\active
+ \catcode`>=\active
+ \def/{\raisebox{.667ex}{\anaclasis}\kern -.1em\relax}%
+ \def_{%
+ \raisebox{-.5ex}[\z@][\z@]{$\scriptscriptstyle\wedge$}%
+ }%
+ \def:{%
+ \raisebox{-.02ex}{%
+ \begingroup
+ \M@cmr
+ \kern .1em \char95 \kern -.1em \char95
+ \endgroup
+ }%
+ }%
+ \def\D{$\delta$\kern -\dimen1\relax}%
+ \def\d{$\delta$}%
+ \def\s{$\int$}%
+ \def\+{%
+ \kern .056em
+ \raisebox{.667ex}[\z@][\z@]{$\scriptscriptstyle+$}%
+ }%
+ \def<{\kern -\dimen1\relax}%
+ \def>{\kern \dimen1\relax}%
+% \end{macrocode}
+%
+% |\S| has a slightly different definition from that of |\metra|.
+% \begin{macrocode}
+ \def\S{\M@super@sigla}%
+ \def\charcolon{\char"3A}%
+ \def\charslash{\char"2F}%
+% \end{macrocode}
+%
+% We chain to another macro so that the active characters within the
+% argument will be interpreted according to the definitions just given.
+% \begin{macrocode}
+ \M@sigla
+}
+\endgroup
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\M@sigla}[2][\relax]{%
+ \ifx n#1\relax
+ \else
+ \ifx N#1\relax
+ \else
+ \ifx \relax#1\relax
+ \def\c{\metra{\c}}%
+ \def\C{\metra{\C}}%
+ \def\cc{\metra{\cc}}%
+ \def\Cc{\metra{\Cc}}%
+ \def\ccc{\metra{\ccc}}%
+ \def\Ccc{\metra{\Ccc}}%
+ \def\p{\metra{\p}}%
+ \def\pp{\metra{\pp}}%
+ \def\Pp{\metra{\Pp}}%
+ \def\ppp{\metra{\ppp}}%
+ \def\Ppp{\metra{\Ppp}}%
+ \def\pppp{\metra{\pppp}}%
+ \def\Pppp{\metra{\Pppp}}%
+ \def\ppppp{\metra{\ppppp}}%
+ \def\Ppppp{\metra{\Ppppp}}%
+ \def\pxp{\metra{\pxp}}%
+ \def\Pxp{\metra{\Pxp}}%
+ \def\x{\metra{\x}\kern 3\dimen1\relax}%
+ \let\r=\respondens
+ \M@dim@c@ext=.36em
+ \M@dim@c@int=.12em
+ \M@dim@c@Ext=.5\M@dim@c@int
+ \else
+ \PackageError{metre}{%
+ Invalid optional parameter for \protect\sigla}%
+ {The optional parameter must be either `n' or `N'}%
+ \fi
+ \fi
+ \fi
+ \bgroup \leavevmode \M@facies #2\/\egroup \endgroup}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\M@super@sigla}[2][0]{%
+ \begingroup
+ \dimen0 =.75ex
+ \advance \dimen0 by #1ex
+ \dimen1 = 1em
+ \relsize{-4}%
+ \expandafter\M@super@sigla@check@it\f@shape\end
+ \raise \dimen0 \hbox{#2}%
+ \endgroup
+}
+% \end{macrocode}
+%
+% Check whether the parameter is to be set in italics.
+%
+% \begin{macrocode}
+\def\M@super@sigla@check@it#1#2\end{%
+ \kern .05\dimen1
+ \if i#1\relax
+ \if t#2\relax
+ \kern .05\dimen1\relax
+ \fi
+ \fi
+}
+% \end{macrocode}
+%
+% \subsection{Other signs}
+%
+% \subsubsection{Brackets}
+%
+% \begin{macrocode}
+\newcommand{\quadras}{\leavevmode \raise .16ex
+ \hbox{$\scriptstyle\lbrack\mskip-\thinmuskip\lbrack$}}
+\newcommand{\Quadras}{\leavevmode
+ $\textstyle\lbrack\mskip-\thinmuskip\lbrack$}
+\newcommand{\quadrad}{\leavevmode \raise .16ex
+ \hbox{$\scriptstyle\rbrack\mskip-\thinmuskip\rbrack$}}
+\newcommand{\Quadrad}{\leavevmode
+ $\textstyle\rbrack\mskip-\thinmuskip\rbrack$}
+\newcommand{\angus}{\leavevmode
+ \raise .16ex\hbox{$\scriptstyle\langle$}}
+\newcommand{\Angus}{\leavevmode $\textstyle\langle$}
+\newcommand{\angud}{\leavevmode
+ \raise .16ex\hbox{$\scriptstyle\rangle$}}
+\newcommand{\Angud}{\leavevmode $\textstyle\rangle$}
+\newcommand{\crux}{\leavevmode
+ \bgroup\M@cmr\textdagger\egroup}
+\newcommand{\Crux}{\leavevmode
+ \bgroup\M@cmr\relsize{1}\textdagger\egroup}
+\newcommand{\alas}{\leavevmode \bgroup\M@cmr\{\egroup}
+\newcommand{\Alas}{\leavevmode
+ \bgroup\M@cmr\relsize{1}\{\egroup}
+\newcommand{\alad}{\leavevmode \bgroup\M@cmr\}\egroup}
+\newcommand{\Alad}{\leavevmode
+ \bgroup\M@cmr\relsize{1}\}\egroup}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\semi}[1]{%
+ \ifx [#1\relax \M@semi@lb
+ \else
+ \ifx ]#1\relax \M@semi@rb
+ \else
+ \PackageError{metre}{Invalid argument for \protect\semi}%
+ {\protect\semi must be followed by \lbrack or \rbrack}%
+ \fi
+ \fi
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@semi@lb{\leavevmode
+ \setbox0=\hbox{o}%
+ \setbox0=\hbox to .67\wd0{%
+ \hss
+ \vrule height .5ex width .5pt depth .5ex
+ \lower .5ex \hbox to .6ex{%
+ \leaders\hrule height .4pt\hfill}%
+ }%
+ \box0\relax
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@semi@rb{\leavevmode
+ \setbox0=\hbox{o}%
+ \setbox0=\hbox to .67\wd0{%
+ \lower .5ex \hbox to .6ex{%
+ \leaders\hrule height .4pt\hfill}%
+ \vrule height .5ex width .5pt depth .5ex
+ \hss
+ }%
+ \box0\relax
+}
+% \end{macrocode}
+%
+% \subsubsection{Special symbols}
+%
+% \paragraph{anaclasis}
+%
+% \begin{macrocode}
+\newcommand{\anaclasis}[1][0]{\M@anaclasis0{#1}}
+\newcommand{\Anaclasis}[1][0]{\M@anaclasis1{#1}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@anaclasis#1#2{\leavevmode
+ \setbox0=\hbox{$\ifnum #1=\z@
+ \scriptscriptstyle
+ \else
+ \scriptstyle
+ \fi
+ \div$}%
+ \dimen0=\ifnum #1=\z@ .215\else .105\fi ex
+ \advance \dimen0 by #2ex
+ \raisebox {\dimen0}[\z@][\z@]{\box0}%
+}
+% \end{macrocode}
+%
+% \paragraph{antisigma}
+%
+% \begin{macrocode}
+\newcommand{\antisigma}[1][0]{\M@antisigma0{#1}}
+\newcommand{\Antisigma}[1][0]{\M@antisigma1{#1}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@antisigma#1#2{\leavevmode
+ \setbox0=\hbox{$\ifnum #1=\z@
+ \scriptscriptstyle
+ \else
+ \scriptstyle
+ \fi
+ \supset$}%
+ \dimen0=\ifnum #1=\z@ .19\else .105\fi ex
+ \advance \dimen0 by #2ex
+ \raisebox {\dimen0}[\z@][\z@]{\box0}%
+}
+% \end{macrocode}
+%
+% \paragraph{asteriscus}
+%
+% \begin{macrocode}
+\newcommand{\asteriscus}[1][0]{\M@aster0{#1}}
+\let\asteriskos=\asteriscus
+\newcommand{\Asteriscus}[1][0]{\M@aster1{#1}}
+\let\Asteriskos=\Asteriscus
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@aster#1#2{\leavevmode
+ \dimen1=1ex
+ \begingroup
+ \relsize {\ifnum #1=\z@ 1\else 2\fi}%
+ \setbox0=\hbox{$\times$}%
+ \setbox1=\hbox{$\cdot$}%
+ \ht0=.82\ht0
+ \setbox2=\hbox to .675\wd0{%
+ \hss
+ \copy0
+ \kern -\wd0
+ \rlap{\kern .1\wd0 \raise 0\ht0 \copy1}%
+ \rlap{\kern .32\wd0 \raise .35\ht0 \copy1}%
+ \rlap{\kern \ifnum #1=\z@ .55 \else .525\fi \wd0
+ \raise 0\ht0 \copy1}%
+ \rlap{\kern .32\wd0 \raise -.35\ht0 \copy1}%
+ \kern \wd0
+ \hss
+ }%
+ \dimen0=-\ifnum #1=\z@ .1\else .2\fi\dimen1
+ \advance \dimen0 by #2\dimen1
+ \raisebox {\dimen0}[\z@][\z@]{\box2}%
+ \endgroup
+}
+% \end{macrocode}
+%
+% \paragraph{catalexis}
+%
+% \begin{macrocode}
+\newcommand{\catalexis}[1][0]{\M@catalexis 0{#1}}
+\newcommand{\Catalexis}[1][0]{\M@catalexis 1{#1}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@catalexis#1#2{\leavevmode
+ \setbox0=\hbox{$\ifnum #1=\z@
+ \scriptscriptstyle
+ \else
+ \scriptstyle
+ \fi
+ \wedge$}%
+ \kern -.05\wd0
+ \dimen0=-\ifnum #1=\z@ .22\else .45\fi ex
+ \advance \dimen0 by #2ex
+ \raisebox {\dimen0}[\z@][\z@]{\box0}%
+ \kern .05\wd0\relax
+}
+% \end{macrocode}
+% \paragraph{diple}
+%
+% \begin{macrocode}
+\newcommand{\diple}{%
+ \@ifstar{\M@starredtrue\M@bigfalse\M@diple}%
+ {\M@starredfalse\M@bigfalse\M@diple}}
+\newcommand{\Diple}{%
+ \@ifstar{\M@starredtrue\M@bigtrue\M@diple}%
+ {\M@starredfalse\M@bigtrue\M@diple}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\M@diple}[1][0]{\leavevmode
+ \setbox0=\hbox{%
+ $\ifM@big \textstyle \else \scriptstyle \fi>$}%
+ \dimen0=\ifM@big -.05 \else .1 \fi ex
+ \dimen1=#1ex
+ \advance \dimen1 by \dimen0
+ \raisebox {\dimen1}[\z@][\z@]{\copy0}%
+ \ifM@starred
+ \ifM@big
+ \kern -.25\wd0 \dimen0=.55\ht0
+ \else
+ \kern -.2\wd0 \dimen0=.45\ht0
+ \fi
+ \advance \dimen0 by \dimen1
+ \raisebox {\dimen0}[\z@][\z@]%
+ {\hbox to 0pt{\hss $\scriptstyle\cdot$}}%
+ \dimen0=\ifM@big -.275 \else -.475 \fi \ht0
+ \advance \dimen0 by \dimen1
+ \raisebox {\dimen0}[\z@][\z@]%
+ {\hbox to 0pt{\hss $\scriptstyle\cdot$}}%
+ \kern \ifM@big .25 \else .2 \fi \wd0
+ \fi
+}
+% \end{macrocode}
+%
+% \paragraph{antidiple}
+%
+% \begin{macrocode}
+\newcommand{\antidiple}{%
+ \@ifstar{\M@starredtrue\M@bigfalse\M@antidiple}%
+ {\M@starredfalse\M@bigfalse\M@antidiple}}
+\newcommand{\Antidiple}{%
+ \@ifstar{\M@starredtrue\M@bigtrue\M@antidiple}%
+ {\M@starredfalse\M@bigtrue\M@antidiple}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\M@antidiple}[1][0]{\leavevmode
+ \setbox0=\hbox{%
+ $\ifM@big \textstyle \else \scriptstyle \fi<$}%
+ \dimen0=\ifM@big -.05 \else .1 \fi ex
+ \dimen1=#1ex
+ \advance \dimen1 by \dimen0
+ \raisebox {\dimen1}[\z@][\z@]{\copy0}%
+ \ifM@starred
+ \ifM@big
+ \kern -.5\wd0
+ \dimen0=.55\ht0
+ \else
+ \kern -.45\wd0
+ \dimen0=.45\ht0
+ \fi
+ \advance \dimen0 by \dimen1
+ \raisebox {\dimen0}[\z@][\z@]%
+ {\hbox to 0pt{\hss $\scriptstyle\cdot$}}%
+ \dimen0=\ifM@big -.325 \else -.5 \fi \ht0
+ \advance \dimen0 by \dimen1
+ \raisebox {\dimen0}[\z@][\z@]%
+ {\hbox to 0pt{\hss $\scriptstyle\cdot$}}%
+ \kern \ifM@big .5 \else .45 \fi \wd0
+ \fi
+}
+% \end{macrocode}
+%
+% \paragraph{obelus}
+%
+% \begin{macrocode}
+\newcommand{\obelus}{%
+ \@ifstar{\M@starredtrue\M@bigfalse\M@obelus}%
+ {\M@starredfalse\M@bigfalse\M@obelus}}
+\let\obelos=\obelus
+\newcommand{\Obelus}{%
+ \@ifstar{\M@starredtrue\M@bigtrue\M@obelus}%
+ {\M@starredfalse\M@bigtrue\M@obelus}}
+\let\Obelos=\Obelus
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\M@obelus}[1][0]{\leavevmode
+ \setbox0=\hbox to
+ \ifM@big
+ \ifM@starred 1 \else 1.5 \fi
+ \else
+ \ifM@starred .89 \else 1.33 \fi
+ \fi em
+ {\leaders \hrule height .33pt\hfill}%
+ \setbox1=\hbox{$\cdot$}%
+ \ifM@starred
+ \setbox0=\hbox{%
+ \copy0
+ \dimen0=\wd0
+ \advance \dimen0 by \wd1
+ \divide \dimen0 by 2
+ \kern -\dimen0
+ \rlap{\lower .1ex \copy1}%
+ \rlap{\lower 1ex \copy1}%
+ \kern \dimen0
+ }%
+ \fi
+ \dimen0=.48ex
+ \advance \dimen0 by #1ex
+ \raisebox {\dimen0}[\z@][\z@]{\box0}%
+}
+% \end{macrocode}
+%
+% \paragraph{respondens}
+%
+% \begin{macrocode}
+\newcommand{\respondens}{\M@bigfalse\M@respondens}
+\newcommand{\Respondens}{\M@bigtrue\M@respondens}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\M@respondens}[1][0]{\leavevmode
+ \setbox0=\hbox{%
+ $\ifM@big \textstyle \else \scriptstyle \fi \sim$}%
+ \dimen0=\ifM@big -.05 \else .1 \fi ex
+ \advance \dimen0 by #1ex
+ \kern .067em
+ \raisebox {\dimen0}[\z@][\z@]{\box0}%
+}
+% \end{macrocode}
+%
+% \paragraph{terminus}
+%
+% \begin{macrocode}
+\newcommand{\terminus}{%
+ \@ifstar{\M@starredtrue\M@bigfalse\M@terminus}%
+ {\M@starredfalse\M@bigfalse\M@terminus}}
+\newcommand{\Terminus}{%
+ \@ifstar{\M@starredtrue\M@bigtrue\M@terminus}%
+ {\M@starredfalse\M@bigtrue\M@terminus}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\M@terminus}[1][0]{\leavevmode
+ \setbox0=\hbox{%
+ $\ifM@big \textstyle \else \scriptstyle \fi
+ \ifM@starred \oplus \else \otimes \fi$}%
+ \dimen0=\ifM@big -.1 \else .1 \fi ex
+ \advance \dimen0 by #1ex
+ \raisebox {\dimen0}[\z@][\z@]{\box0}%
+}
+% \end{macrocode}
+%
+% \paragraph{margini}
+%
+% \begin{macrocode}
+\newcommand{\margini}{%
+ \@ifstar{\M@margini@star}{\M@margini@nostar}}
+\newcommand{\M@margini@star}[2][0pt]{\M@margini{1}{#1}{#2}}
+\newcommand{\M@margini@nostar}[2][0pt]{\M@margini{0}{#1}{#2}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@margini#1#2#3{\leavevmode
+ \setbox1=\hbox{#3}%
+ \strut
+ \vadjust{%
+ \kern -\dp\strutbox
+ \ifnum #1=\@ne
+ \hfill
+ \fi
+ \dimen0=1em
+ \advance \dimen0 by #2\relax
+ \vtop to \dp\strutbox{%
+ \baselineskip\dp\strutbox
+ \vss
+ \ifnum #1=\@ne
+ \rlap{\kern \dimen0\copy1}%
+ \else
+ \llap{\copy1\kern \dimen0}%
+ \fi
+ \null
+ }%
+ }%
+ \ignorespaces
+}
+% \end{macrocode}
+%
+% \newpage
+%
+% \subsubsection{Diacritics}
+%
+% \paragraph{accents}
+%
+% \begin{macrocode}
+\newcommand{\acutus}[2][0]{\M@movable@accent{#1}{#2}{19}}
+\newcommand{\gravis}[2][0]{\M@movable@accent{#1}{#2}{18}}
+\newcommand{\macron}[2][0]{\M@movable@accent{#1}{#2}{22}}
+\edef\Breve{\breve}
+\renewcommand{\breve}[2][0]{\M@movable@accent{#1}{#2}{21}}
+\newcommand{\circumflexus}[2][0]{\M@movable@accent{#1}{#2}{126}}
+\newcommand{\diaeresis}[2][0]{\M@movable@accent{#1}{#2}{127}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@movable@accent#1#2#3{\leavevmode
+ \begingroup
+ \setbox0=\hbox{#2}%
+ \copy0
+ \kern -\wd0
+ \dimen0 = \ht0
+ \ifdim \dimen0=\z@
+ \dimen0=1ex
+ \fi
+ \advance \dimen0 by -1ex
+ \advance \dimen0 by #1ex
+ \raise \dimen0
+ \hbox to \wd0{%
+ \hss \begingroup \M@cmr \char#3 \endgroup \hss}%
+ \endgroup
+}
+% \end{macrocode}
+%
+% \paragraph{cons}
+%
+% \begin{macrocode}
+\newcommand{\cons}[1]{%
+ \setbox0=\hbox{#1}%
+ \copy0
+ \kern -\wd0
+% \end{macrocode}
+%
+% The quarter-circles are taken from the \LaTeX{} \texttt{circle} font.
+%
+% \begin{macrocode}
+ \setbox1=\hbox{\hss\begingroup\tencirc\char3\char0\endgroup}%
+ \setbox1=\hbox to \wd0{\hss\kern .5\wd1\box1\hss}%
+ \dimen0=-.5\ht1
+ \ifdim \z@<\dp0
+ \advance \dimen0 by -.5\dp0
+ \fi
+ \raise \dimen0 \box1\relax
+}
+% \end{macrocode}
+%
+% \paragraph{dubia}
+%
+% \begin{macrocode}
+\newcommand{\dubia}{\@ifstar{\M@dubia@star}{\M@dubia}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@dubia@star#1{\M@dubia@ibycus{#1}}
+\def\M@dubia#1{\leavevmode
+ \setbox0=\hbox{[}%
+ \dimen0=\dp0
+ \setbox0=\hbox{#1}%
+ \ifdim \dp0=\z@
+ \dimen2=-.5ex
+ \else
+ \dimen2=-1.75\dimen0
+ \fi
+ \setbox1=\hbox{\bgroup \M@cmr .\egroup}%
+ \dimen3=\z@
+ \M@Stack 0\relax
+}
+\def\M@dubia@ibycus#1{\leavevmode
+ \ifnum \M@ibycus=\@ne
+ #1!%
+ \else
+ \PackageError{metre}{\protect\dubia* requires ibycus4}{}%
+ \fi
+}
+% \end{macrocode}
+%
+% \paragraph{dubiae}
+%
+% \begin{macrocode}
+\newcommand{\dubiae}{\@ifstar{\M@dubiae@star}{\M@dubiae@nostar}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@dubiae@star#1{\expandafter\M@dubiae@ibycus#1\end}
+\def\M@dubiae@nostar#1{\M@dubiae#1\end}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@dubiae#1{\leavevmode
+ \let\next=\M@dubiae
+ \ifx #1\end
+ \let\next=\relax
+ \else
+ \ifx #1\positio
+ #1\relax \else
+ \ifx #1\Positio
+ #1\relax \else
+ \ifx #1\pos
+ #1\relax \else
+ \ifx #1\Pos
+ #1\relax
+ \else
+ \setbox0=\hbox{[}%
+ \dimen0=\dp0
+ \setbox0=\hbox{#1}%
+ \ifdim \dp0=\z@
+ \dimen2=-.5ex
+ \else
+ \dimen2=-1.75\dimen0
+ \fi
+ \setbox1=\hbox{\bgroup \M@cmr .\egroup}%
+ \dimen3=\z@
+ \M@Stack 0\relax
+ \fi\fi\fi\fi
+ \fi
+ \next
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@dubiae@ibycus#1{\leavevmode
+ \ifx #1\end
+ \let\next=\relax
+ \else
+ \ifnum \M@ibycus=\z@
+ \PackageError{metre}{\protect\dubiae* requires ibycus4}{}%
+ \fi
+ \ifx #1\positio #1\relax \else
+ \ifx #1\Positio #1\relax \else
+ \ifx #1\pos #1\relax \else
+ \ifx #1\Pos #1\relax \else
+ #1!\relax
+ \fi\fi\fi\fi
+ \let\next=\M@dubiae@ibycus
+ \fi
+ \next
+}
+% \end{macrocode}
+%
+% \paragraph{erasa}
+%
+% \begin{macrocode}
+\newcommand{\erasa}[1][1]{\leavevmode
+ \@tempcnta=#1\relax
+ \@whilenum \@tempcnta>\z@ \do
+ {\M@erasa \advance \@tempcnta by \m@ne}%
+}
+\def\M@erasa{%
+ \setbox0=\hbox{\vrule width .025em depth .4ex height 1.5ex}%
+ \kern .125em
+ \copy0 \kern .125em
+ \copy0 \kern .125em
+ \copy0 \kern .115em\relax
+}
+% \end{macrocode}
+%
+% \paragraph{positio}
+%
+% \begin{macrocode}
+\newcommand{\positio}{\leavevmode
+ \raise .85ex \hbox{\vrule width .02em depth \z@ height .75ex}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\Positio}{\leavevmode
+ \raise .75ex \hbox{\vrule width .02em depth \z@ height .94ex}%
+}
+% \end{macrocode}
+%
+% \paragraph{punctum}
+%
+% \begin{macrocode}
+\newcommand{\punctum}{\@ifnextchar[{\M@punctum}{\M@punctum[1]}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@punctum[#1]{\leavevmode
+ \@tempcnta=#1\relax
+ \@whilenum \@tempcnta>\z@ \do
+ {\M@@punctum \advance \@tempcnta by \m@ne}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@punctum{%
+ \setbox0=\hbox{[}%
+ \setbox1=\hbox to .5em{\hss \bgroup \M@cmr .\egroup \hss}%
+ \lower .9\dp0 \box1\relax
+}
+% \end{macrocode}
+%
+% \paragraph{Punctum}
+%
+% \begin{macrocode}
+\newcommand{\Punctum}{\@ifnextchar[{\M@Punctum}{\M@Punctum[1]}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@Punctum[#1]{\leavevmode
+ \@tempcnta=#1\relax
+ \@whilenum \@tempcnta>\z@ \do
+ {\M@@Punctum \advance \@tempcnta by \m@ne}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@@Punctum{%
+ \setbox0=\hbox{[}%
+ \setbox1=\hbox{%
+ \begingroup \M@cmr
+ {\relsize{-4}\hbox{(}\kern -.15em}%
+ .%
+ {\relsize{-4}\kern -.15em\hbox{)}}%
+ \endgroup
+ }%
+ \lower .9\dp0 \copy1\relax
+}
+% \end{macrocode}
+%
+% \subsubsection{Ties}
+%
+% \begin{macrocode}
+\newcommand{\tie}{\@ifstar\M@tie@star\M@tie@nostar}
+\newcommand{\itie}{\@ifstar\M@itie@star\M@itie@nostar}
+\newcommand{\M@tie@star}[2][1]{\M@tie{#2}{0}{1}{#1}}
+\newcommand{\M@tie@nostar}[2][1]{\M@tie{#2}{0}{0}{#1}}
+\newcommand{\M@itie@star}[2][1]{\M@tie{#2}{1}{0}{#1}}
+\newcommand{\M@itie@nostar}[2][1]{\M@tie{#2}{1}{1}{#1}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@tie#1#2#3#4{%
+% \end{macrocode}
+%
+% |#1| the text above/below which the tie should go\\
+% |#2| 0 = |tie| ($\frown$), 1 = |itie| ($\smile$)\\
+% |#3| 0 = above, 1 = below\\
+% |#4| scale factor for the text width
+% \begin{macrocode}
+ \leavevmode
+ \setbox0=\hbox{#1}%
+ \ifnum \M@metra=\@ne
+ \global\M@dim@sunk=\z@
+ \fi
+ \dimen3=\z@
+ \ifM@inter
+ \dimen3=\M@interS\M@dim@m%
+ \fi
+ \ifdim \ht0=\z@ % tie over space
+ \ifdim \z@=\dp0
+ \ht0=1ex
+ \fi
+ \fi
+ \dimen0=#4\wd0
+ \ifnum \M@metra=\@ne
+ \dimen0=.6\dimen0
+ \fi
+ \begingroup
+% \end{macrocode}
+%
+% We step through the available font sizes until we find a symbol
+% long enough to fit the text.
+%
+% \begin{macrocode}
+ \relsize{-10}%
+ \wd1=\z@
+ \@whiledim \wd1<.95\dimen0 \do{%
+ \ifx \@currsize \Huge
+ \dimen0=\z@
+ \else
+ $%
+ \dimen1=\f@baselineskip
+ \fontencoding{OML}\fontfamily{cmm}\fontseries{m}%
+ \fontshape{it}\fontsize{\ssf@size}{\dimen1}\selectfont
+ \global\setbox1=\hbox{%
+ \hss\symbol{"5\ifnum 0=#2F\else E\fi}\hss}%
+ \ifdim \wd1<\dimen0
+ \fontsize{\sf@size}{\dimen1}\selectfont
+ \global\setbox1=\hbox{%
+ \hss\symbol{"5\ifnum 0=#2F\else E\fi}\hss}%
+ \ifdim \wd1<\dimen0
+ \fontsize{\tf@size}{\dimen1}\selectfont
+ \global\setbox1=\hbox{%
+ \hss\symbol{"5\ifnum 0=#2F\else E\fi}\hss}%
+ \fi
+ \fi
+ $%
+ \fi
+ \ifdim \wd1<\dimen0
+ \relsize{+1}%
+ \fi
+ \global\dimen4=\fontdimen5\the\font
+ }%
+ \endgroup
+ \ifnum #3=\z@
+ \dimen2=1.067\ht0
+ \divide \dimen4 by 2
+ \advance \dimen4 by -\ht1
+ \advance \dimen2 by .6\dimen4
+ \else
+ \dimen2=-1.05\ht1
+ \advance \dimen2 by -.75pt
+ \fi
+ \ifnum #3=\@ne
+ \ifdim \z@<\dp0
+ \advance \dimen2 by -1\dp0
+ \fi
+ \fi
+ \ifnum \M@metra=\@ne
+ \advance \dimen2 by -\M@dim@sunk
+ \fi
+ \M@Stack 0\relax
+}
+% \end{macrocode}
+%
+% \newpage
+%
+% \subsubsection{Interlinear signs}
+%
+% \paragraph{linea}
+%
+% \begin{macrocode}
+\newcommand{\M@linea@star}[1][0]{\M@linea{1}{#1\baselineskip}}
+\newcommand{\M@linea@nostar}[1][0]{\M@linea{0}{#1\baselineskip}}
+% \end{macrocode}
+% The actual |\linea| command is defined by means of |\novalinea|
+% at the end of this section.
+% \begin{macrocode}
+\def\M@linea#1#2{%
+% \end{macrocode}
+% |#1| is 1 for the \texttt{*}-form, 0 for the normal form;\\
+% |#2| is the additional |\baselineskip| increment.\\
+% |\dimen1| is the displacement from the text margin;\\
+% |\dimen2| is the length of the line;\\
+% |\dimen3| is the |\baselineskip| increment
+% \begin{macrocode}
+ \leavevmode
+ \let\next=\relax
+ \ifnum #1=\@ne
+ \let\next=\@gobble
+ \fi
+ \global\M@linea@length=\dimen2
+ \dimen0=.75\baselineskip
+ \ifM@imago
+ \advance \dimen0 by #2\relax
+ \global\M@linea@indent=\z@
+ \else
+ \advance \dimen3 by #2\relax
+ \vadjust{\kern \dimen3}%
+ \ifnum #1=\@ne
+ \par
+ \else
+ \\%
+ \fi
+ \leavevmode
+ \kern \dimen1
+ \global\M@linea@indent=\dimen1
+ \fi
+ \raisebox {\dimen0}[\z@][\z@]%
+ {\hbox to \dimen2{\leaders\hrule\hfill}}%
+ \global\M@linea@height=\dimen0
+ \ifM@imago
+ \else
+ \dimen0=\dimen2
+ \advance \dimen0 by \dimen1
+ \kern -\dimen0
+ \fi
+ \if \M@before@linea\relax
+ \else
+ \expandafter\M@@before@linea\M@before@linea
+ \fi
+ \next
+}
+% \end{macrocode}
+%
+% \paragraph{geminata}
+%
+% \begin{macrocode}
+\newcommand{\geminata}{%
+ \@ifstar{\M@geminata@star}{\M@geminata@nostar}}
+\newcommand{\M@geminata@star}[1][0]%
+ {\M@geminata{1}{#1\baselineskip}}
+\newcommand{\M@geminata@nostar}[1][0]%
+ {\M@geminata{0}{#1\baselineskip}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@geminata#1#2{%
+% \end{macrocode}
+% |#1|: 1 for the \texttt{*}-form, 2 for the normal form;\\
+% |#2|: the additional displacement from the preceding line\\
+% |\dimen1| is the displacement from the text margin;\\
+% |\dimen2| is the length;\\
+% |\dimen3| is the |\baselineskip| increment
+% \begin{macrocode}
+ \leavevmode
+ \M@linea@dimentrue \linea \M@linea@dimenfalse
+ \let\next=\relax
+ \ifnum #1=\@ne \let\next=\@gobble \fi
+ \dimen0=.75\baselineskip
+ \ifM@imago
+ \advance \dimen0 by #2\relax
+ \else
+ \advance \dimen3 by #2\relax
+ \vadjust{\kern \dimen3}%
+ \ifnum #1=\@ne \par \else \\\fi
+ \leavevmode
+ \kern \dimen1
+ \fi
+ \raisebox {\dimen0}[\z@][\z@]%
+ {\hbox to \dimen2{\leaders\hrule\hfill}}%
+ \kern -\dimen2
+ \advance \dimen0 by -.075\baselineskip
+ \global\M@linea@height=\dimen0
+ \advance \dimen0 by -.075\baselineskip
+ \raisebox {\dimen0}[\z@][\z@]%
+ {\hbox to \dimen2{\leaders\hrule\hfill}}%
+ \ifM@imago
+ \else
+ \dimen0=\dimen2
+ \advance \dimen0 by \dimen1
+ \kern -\dimen0
+ \fi
+ \next
+}
+% \end{macrocode}
+%
+% \paragraph{bifida}
+%
+% \begin{macrocode}
+\newcommand{\bifida}{\def\M@before@linea{0}\linea}
+\let\lineabifida=\bifida
+\newcommand{\Bifida}{\def\M@before@linea{1}\linea}
+\let\Lineabifida=\Bifida
+\newcommand{\lunata}{\def\M@before@linea{2}\linea}
+\let\linealunata=\lunata
+\newcommand{\Lunata}{\def\M@before@linea{3}\linea}
+\let\Linealunata=\Lunata
+% \end{macrocode}
+% Place |>| or |(| in front of |\linea|
+% \begin{macrocode}
+\def\M@@before@linea#1{%
+ \leavevmode
+ \begingroup
+ \M@cmr
+ \ifM@imago
+ \dimen0=-\M@linea@length
+ \else
+ \dimen0=\M@linea@indent
+ \fi
+ \dimen1=\M@linea@height
+ \ifcase #1\relax
+ \setbox0=\hbox{$\scriptscriptstyle>$}%
+ \ifcase \@ptsize
+ \advance \dimen1 by -.327\ht0
+ \dimen2=-.785\wd0
+ \or
+ \advance \dimen1 by -.357\ht0
+ \dimen2=-.78\wd0
+ \or
+ \advance \dimen1 by -.33\ht0
+ \dimen2=-.78\wd0
+ \fi
+ \or
+ \setbox0=\hbox{$\scriptstyle>$}%
+ \ifcase \@ptsize
+ \advance \dimen1 by -.357\ht0
+ \dimen2=-.81\wd0
+ \or
+ \advance \dimen1 by -.405\ht0
+ \dimen2=-.78\wd0
+ \or
+ \advance \dimen1 by -.395\ht0
+ \dimen2=-.78\wd0
+ \fi
+ \or
+ \setbox0=\hbox{)}%
+ \dimen2=-.725\wd0
+ \advance \dimen1 by -.28\ht0
+ \or
+ \setbox0=\hbox{\bgroup \relsize{+1})\egroup}%
+ \dimen2=-.6\wd0
+ \advance \dimen1 by -.28\ht0
+ \fi
+ \kern \dimen0 \kern \dimen2
+ \ifM@imago
+ \else
+ \global\advance\M@linea@indent by \dimen2
+ \fi
+ \global\advance \M@linea@length by -\dimen2
+ \raisebox {\dimen1}[\z@][\z@]{\copy0}%
+ \advance \dimen2 by \wd0
+ \kern -\dimen0
+ \kern -\dimen2
+ \endgroup
+ \def\M@before@linea{\relax}%
+}
+% \end{macrocode}
+%
+% \paragraph{antelineam and postlineam}
+%
+% \begin{macrocode}
+\newcommand{\antelineam}{\M@adlineam{0}}
+\newcommand{\postlineam}{\M@adlineam{1}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@adlineam#1#2{\leavevmode
+ \setbox0=\hbox{\hss
+ \bgroup #2\relax \global\dimen0=-.5ex \egroup \hss}%
+ \kern \M@linea@indent
+ \ifnum #1=\z@
+ \kern -\wd0
+ \else
+ \kern \M@linea@length
+ \fi
+ \advance \dimen0 by \M@linea@height
+ \raisebox {\dimen0}[\z@][\z@]{\copy0}%
+ \kern -\M@linea@indent
+ \ifnum #1=\z@
+ \else
+ \kern -\wd0
+ \kern -\M@linea@length
+ \fi
+}
+% \end{macrocode}
+%
+% \paragraph{coronis}
+%
+% \begin{macrocode}
+\newcommand{\coronis}{%
+ \@ifstar{\M@coronis@star}{\M@coronis@nostar}}
+\let\koronis=\coronis
+\newcommand{\M@coronis@star}[1][0]%
+ {\M@coronis{1}{#1\baselineskip}}
+\newcommand{\M@coronis@nostar}[1][0]%
+ {\M@coronis{0}{#1\baselineskip}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@coronis#1#2{\leavevmode
+ \let\next=\relax
+ \begingroup
+ \normalsize
+ \global\dimen2=\baselineskip
+ \endgroup
+ \ifcase \@ptsize
+ \dimen0=.67em
+ \or
+ \dimen0=.7em
+ \or
+ \dimen0=.65em
+ \fi
+ \ifM@imago
+ \dimen3=\z@
+ \advance \dimen3 by #2\relax
+ \else
+ \ifnum #1=\@ne \let\next=\@gobble \fi
+ \vadjust{\kern #2}%
+ \ifnum #1=\@ne \par \else \\\fi
+ \leavevmode
+ \kern -1.6\dimen0
+ \fi
+ \dimen1=.75\dimen2
+ \ifM@imago \advance \dimen1 by \dimen3 \fi
+% \end{macrocode}
+% The central line
+% \begin{macrocode}
+ \raisebox {\dimen1}[\z@][\z@]%
+ {\hbox to \dimen0{\leaders \hrule \hfill}}%
+ \global\M@linea@length=\dimen0
+ \global\M@linea@height=\dimen1
+ \kern -\dimen0
+% \end{macrocode}
+% The lines above
+% \begin{macrocode}
+ \dimen1=\dimen2
+ \ifM@imago \advance \dimen1 by \dimen3 \fi
+ \raisebox {\dimen1}[0pt][0pt]%
+ {\hbox to \dimen0{%
+ \hss \hbox to .6\dimen0{\leaders \hrule \hfill}\hss}}%
+ \kern -\dimen0
+ \dimen1=1.1\dimen2
+ \ifM@imago \advance \dimen1 by \dimen3 \fi
+ \raisebox {\dimen1}[0pt][0pt]%
+ {\hbox to \dimen0{%
+ \hss \hbox to .4\dimen0{\leaders \hrule \hfill}\hss}}%
+ \kern -\dimen0
+ \dimen1=1.2\dimen2
+ \ifM@imago \advance \dimen1 by \dimen3 \fi
+ \raisebox {\dimen1}[\z@][\z@]%
+ {\hbox to \dimen0{%
+ \hss\hbox to .25\dimen0{\leaders \hrule \hfill}\hss}}%
+ \kern -\dimen0
+% \end{macrocode}
+% The lines below
+% \begin{macrocode}
+ \dimen1=\if \@ptsize 2 .375\else .35\fi\dimen2
+ \ifM@imago \advance \dimen1 by \dimen3 \fi
+ \raisebox {\dimen1}[\z@][\z@]%
+ {\hbox to \dimen0{%
+ \hss \hbox to .6\dimen0{\leaders \hrule \hfill}\hss}}%
+ \kern -\dimen0
+ \dimen1=\if \@ptsize 2 .275\else .25\fi\dimen2
+ \ifM@imago \advance \dimen1 by \dimen3 \fi
+ \raisebox {\dimen1}[0pt][0pt]%
+ {\hbox to \dimen0{%
+ \hss \hbox to .4\dimen0{\leaders \hrule \hfill}\hss}}%
+ \kern -\dimen0
+ \dimen1=\if \@ptsize 2 .175\else .15\fi\dimen2
+ \ifM@imago \advance \dimen1 by \dimen3 \fi
+ \raisebox {\dimen1}[\z@][\z@]%
+ {\hbox to \dimen0{%
+ \hss \hbox to .25\dimen0{\leaders \hrule \hfill}\hss}}%
+ \kern -\dimen0
+% \end{macrocode}
+% The bottom squiggle
+% \begin{macrocode}
+ \setbox0=\hbox{\begingroup
+ \fontencoding{OT1}\fontfamily{cmr}\fontseries{m}%
+ \fontshape{it}\selectfont ,\endgroup}%
+ \dimen1=\if \@ptsize 2 0\else -.03\fi\dimen2
+ \ifM@imago \advance \dimen1 by \dimen3 \fi
+ \raisebox {\dimen1}[\z@][\z@]%
+ {\hbox to \dimen0{\hss \kern -.1\wd0\box0\hss}}%
+ \kern -\dimen0
+% \end{macrocode}
+% The top squiggle
+% \begin{macrocode}
+ \setbox0=\hbox{\begingroup
+ \fontencoding{OT1}\fontfamily{cmr}\fontseries{m}%
+ \fontshape{it}\selectfont \char'140 \endgroup}%
+ \dimen1=.97\dimen2
+ \ifM@imago \advance \dimen1 by \dimen3 \fi
+ \raisebox {\dimen1}[\z@][\z@]%
+ {\hbox to \dimen0{\hss \kern -.5\wd0\box0\hss}}%
+ \kern -\dimen0
+% \end{macrocode}
+% The small circle
+% \begin{macrocode}
+ \setbox0=\hbox{\begingroup \tencirc \char"61 \endgroup}%
+ \setbox0=\hbox{\begingroup
+ \kern 1.1\wd0 \tencirc \char"61 \endgroup}%
+ \dimen1=\if \@ptsize 2 .85\else .86\fi\dimen2
+ \ifM@imago \advance \dimen1 by \dimen3 \fi
+ \raisebox {\dimen1}[0pt][0pt]%
+ {\hbox to \dimen0{\hss \box0 \hss}}%
+ \kern -\dimen0
+% \end{macrocode}
+% The big circle
+% \begin{macrocode}
+ \setbox0=\hbox{%
+ \hss \begingroup \tencirc \char"63 \endgroup \hss}%
+ \setbox0=\hbox{\hss \begingroup
+ \kern 1.05\wd0 \tencirc \char"63 \endgroup \hss}%
+ \dimen1=\if \@ptsize 2 .61\else .59\fi\dimen2
+ \ifM@imago \advance \dimen1 by \dimen3 \fi
+ \raisebox {\dimen1}[\z@][\z@]%
+ {\hbox to \dimen0{\hss \box0 \hss}}%
+ \ifM@imago
+ \else
+ \kern .6\dimen0
+ \fi
+ \next
+}
+% \end{macrocode}
+% \paragraph{Generating the signs within the text}
+%
+% \begin{macrocode}
+\newcommand{\imago}{\@ifstar{\M@imago@star}{\M@imago@nostar}}
+\newcommand{\M@imago@star}[2][0]{\M@imago{1}{#1}{#2}}
+\newcommand{\M@imago@nostar}[2][0]{\M@imago{0}{#1}{#2}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@imago#1#2#3{\leavevmode
+ \setbox0=\hbox{\begingroup \M@imagotrue {#3[#2]}\endgroup}%
+ \setbox1=\hbox to \M@linea@length{%
+ \hss
+ \ifnum #1=\@ne
+ \dimen0=\M@linea@height
+ \advance \dimen0 by -.4ex
+ \raisebox {-\dimen0}[\z@][\z@]{\box0}%
+ \else
+ \box0
+ \fi
+ }%
+ \box1\relax
+}
+% \end{macrocode}
+% \paragraph{Defining new signs}
+%
+% \begin{macrocode}
+\newcommand{\novalinea}[4]{%
+ \def#1{\leavevmode
+ \dimen1=#2\relax \dimen2=#3\relax
+ \dimen3=#4\baselineskip
+ \ifM@linea@dimen
+ \let\next=\relax
+ \else
+ \let\next=\M@do@linea
+ \fi
+ \next}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\def\M@do@linea{\@ifstar{\M@linea@star}{\M@linea@nostar}}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\newcommand{\novageminata}[4]{%
+ \def#1{\leavevmode
+ \dimen1=#2\relax \dimen2=#3\relax
+ \dimen3=#4\baselineskip
+ \@ifstar{\M@geminata@star}{\M@geminata@nostar}}%
+}
+% \end{macrocode}
+%
+% \begin{macrocode}
+\novalinea{\linea}{-.75em}{1.5em}{.15}
+% \end{macrocode}
+% \subsubsection{\textit{Miscellanea}}
+%
+% \paragraph{lineola}
+%
+% \begin{macrocode}
+\newcommand{\lineola}[2][0]{\leavevmode
+ \dimen0=.75\baselineskip
+ \advance \dimen0 by #1\baselineskip
+ \raisebox {\dimen0}[\z@][\z@]%
+ {\hbox to #2{\leaders \hrule \hfill}}%
+ \kern -#2\relax
+}
+% \end{macrocode}
+%
+% \paragraph{Lineola}
+%
+% \begin{macrocode}
+\newcommand{\Lineola}[2][0]{\leavevmode
+ \setbox0=\hbox{#2}%
+ \copy0 \kern -\wd0
+ \lineola[#1]{\wd0}%
+ \kern \wd0\relax
+}
+% \end{macrocode}
+%
+% \paragraph{structa}
+%
+% \begin{macrocode}
+\newcommand{\structa}[3][0]{\leavevmode
+ \setbox0=\hbox{\begingroup #2\endgroup}%
+ \ifdim \ht0=\z@
+ \ifdim \dp0=\z@
+ \ht0=1ex
+ \fi
+ \fi
+ \setbox1=\hbox to \wd0{\hss\begingroup #3\endgroup\hss}%
+ \dimen2 = \ht0
+ \advance \dimen2 by .15ex
+ \advance \dimen2 by #1ex
+ \dimen3 = \z@
+ \M@Stack 0\relax
+}
+% \end{macrocode}
+% \vspace{1ex}
+% \quad
+% \begin{metrica}
+% \Large\t{.11}\textit{f\kern .05em\=in\-is}%
+% \end{metrica}
+%
+%% \Finale
+%
+\endinput
diff --git a/Master/texmf-dist/source/latex/metre/metre.ins b/Master/texmf-dist/source/latex/metre/metre.ins
new file mode 100644
index 00000000000..e895c18aefe
--- /dev/null
+++ b/Master/texmf-dist/source/latex/metre/metre.ins
@@ -0,0 +1,42 @@
+%%
+%% This file will generate fast loadable files and documentation
+%% driver files from the doc files in this package when run through
+%% LaTeX or TeX.
+%%
+\input docstrip
+\preamble
+
+This is a generated file.
+
+Copyright 2000 2001 Gianfranco Boggio-Togna
+
+This file 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.
+
+\endpreamble
+\keepsilent
+\Msg{*** Generating the metre package ***}
+\generateFile{metre.sty}{t}{\from{metre.dtx}{package}}
+\Msg{==============================================}
+\Msg{}
+\Msg{ To finish the installation move the file}
+\Msg{ metre.sty into a directory searched by TeX.}
+\Msg{}
+\Msg{ The package requires `relsize.sty'}
+\Msg{ (from /macros/latex/contrib/other/misc).}
+\Msg{}
+\Msg{ To typeset the user guide run the file}
+\Msg{ `metre.dtx' through LaTeX.}
+\Msg{}
+\Msg{ Happy TeXing!}
+\Msg{}
+\Msg{==============================================}
+\endbatchfile
+
+
+