dissertation-4-dissertation/sty/lineno/ednmath0.sty

203 lines
7.1 KiB
Plaintext
Raw Normal View History

2014-04-22 17:46:24 +01:00
%% Macro package `ednmath0.sty' for LaTeX2e,
%% copyright (C) 2004 Uwe L\"uck,
%% http://www.contact-ednotes.sty.de.vu
%% --author-maintained;
%% math support for `lineno.sty' and `ednotes.sty'.
%%
\def\fileversion{v0.2b} \def\filedate{2005/01/10}
%% This program can be redistributed and/or modified under the
%% terms of the LaTeX Project Public License distributed from
%% CTAN archives in directory macros/latex/base/lppl.txt; either
%% version 1.3a of the License, or any later version.
%% The latest version of this license is in
%% http://www.latex-project.org/lppl.txt
%% There is NO WARRANTY.
%% This code is very EXPERIMENTAL!
%%
%% Please report bugs, problems, and suggestions via
%%
%% http://www.contact-ednotes.sty@web.de
%
%% * MAIN FEATURE *
%
% lineno.sty's \linelabel and ednotes.sty's commands are enabled
% to work in math mode if it's "entered in outer mode"
% (including `displaymath' and `equation' environments).
% (lineno.sty is the package by Stephan Boettcher.)
% They will even work in tabular environments that are adjusted
% to notes by package `edtable.sty'.
%
% CAVEATS:
% -- Does not work yet in environments like LaTeX's
% `eqnarray'. (This could probably repaired along the lines
% of Edtable.sty--we're short of time and will try later.)
% -- Useful error messages when (i) math mode is entered from
% inner mode or when (ii) a math display gets not line number
% are missing at present.
%
%% * USAGE: *
%
% * Most simple: *
% --If you are working with ednotes and want to use its
% commands in math mode, load ednotes.sty--version 0.8
% onwards--with its package option `mathnotes'.
% --If you don't work with ednotes, only with lineno, you
% get the main feature of making \linelabel work in math mode
% by loading lineno.sty--version 4.1 onwards--with its
% package option `mathrefs'.
%
% * Switch off and on: *
% To reduce danger resulting from missing error messages
% ("caveat" above), you may switch these new math facilities
% off by \NoNotesToMath where you don't expect to need them.
% You may switch them on again by \NotesToMath where you want
% to use them, being aware of the danger. Both commands work
% locally, so you can replace one of them by enclosing it in
% a group. E.g., even, after \NoNotesToMath you can use an
% environment as follows:
% \begin{NotesToMath}
% <text>
% \end{NotesToMath}
% (I am not quite sure that this is useful.)
%
% * Customize ellipsis: *
% ednotes' \lemmaellipsis is changed to expand to
% \mathlemmaellipsis when entering math, and this is preset
% to be LaTeX's \mathellipsis. (This is three dots as
% \mathinner.) You can change this by redefining
% \mathlemmaellipsis, e.g.:
% \renewcommand{\mathlemmaellipsis}{\cdots}
% If you need \cdots as the ellipsis at a single place only,
% you may, of course, use the `<...>' option of \<, e.g.:
% $ x = \Anote{a\<<\cdots>bcd\>e}{Indeed?} - y $
%
% * Customize note mode: *
% For variant readings, you may want that the note is
% usually set in math mode--so you may want that you
% needn't type the dollar signs in the note text.
% Note that you can do this by customizing \notefmt,
% and you can do this by customizing \Anotefmt (e.g.)
% to have this feature for \Anote only.
%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{ednmath0}[\filedate\space\fileversion\space
math support for lineno/ednotes (ul)]
%
%% User commands:
\def\NotesToMath{\let\@LN@mathhook\@LN@labelinmath
\@bsphack \@esphack
% For \begin{NotesToMath}
}
\def\NoNotesToMath{\@bsphack
\def\@LN@mathhook{\@parmoderr\@gobble}%
\@esphack
}
\def\endNotesToMath{\@bsphack\@Esphack}
\let\endNoNotesToMath\endNotesToMath
%
%% Core code for lineno.sty:
\@ifundefined{@LN@postlabel}{%
\PackageError{ednmath0}{%
Bad lineno.sty version%
}{%
lineno.sty from 2004/08/16 or later
must be loaded earlier.%
}%
}{%
\def\@LN@labelinmath#1{%
\ifmmode
\@LN@postlabel{#1}%
\else
\@parmoderr
\fi
}
}
%
%% Core code for ednotes.sty:
\@ifundefined{@EN@note}{%
% v0.01 sent a warning in this case. Considered superfluous now.
}{%
\def\@EN@themathlemmatag{%
\ifmmode
\toks@\expandafter{\@EN@lemmatag}%
\edef\@EN@lemmatag{%
$%
\def\noexpand\lemmaellipsis{%
\noexpand\mathlemmaellipsis}%
\the\toks@
$%
}%
% \expandafter \def \expandafter \@EN@lemmatag
% \expandafter {\expandafter $\expandafter
% \def \expandafter \lemmaellipsis \expandafter {%
% \expandafter \mathlemmaellipsis \expandafter }%
% \@EN@lemmatag $}%
\fi
}
% To be sure, \lemmaellipsis doesn't need to be changed when
% ednotes `\<...\>' feature is not used. Though I prefer to
% use one hook only in ednotes for both situations, with and
% without `\<...\>'.
%
% The final \unskip in ednotes' \@EN@lemmatag would undo a final
% \quad. That's OK: outside math the same happens.
% In v0.01, \NoNotesToMath undid ednotes changes for math mode.
% However, re-appearence of \linelabel error messages suffices.
%
% Now add lemma switch to the left of \[No]NotesToMath:
\toks@\expandafter{\NotesToMath}
\edef\NotesToMath{%
\let \noexpand\@EN@mathlemmatag \noexpand\@EN@themathlemmatag
\the\toks@
}
% \typeout{\string\NotesToMath: \meaning\NotesToMath}
\toks@\expandafter{\NoNotesToMath}
\edef\NoNotesToMath{%
\let \noexpand\@EN@mathlemmatag \relax
\the\toks@
}
% \typeout{\string\NoNotesToMath: \meaning\NoNotesToMath}
}
% We need no extra device for a choice for users whether the *note*
% should be set in math mode or in horizontal mode by default
% (which might depend on the kind ["layer"] of notes).
% This can be done already by customization of ednotes' \notefmt.
% However, we might change ednotes' default \notefmt to default
% \renewcommand*{\notefmt}[1]{$#1$}
%
\let\mathlemmaellipsis\mathellipsis
%% TODO: Since when has LaTeX provided \mathellipsis?
%% -> \Needs...
%
% Default:
\NotesToMath
%
\endinput
%% TODO: Without \linenumberdisplaymath, in displaymath,
%% an error should be shown. Use, e.g., that in a displaymath
%% \ifinner is false.
%% TODO: E.g., by changing \everymath, perhaps can be warned
%% that the math group is in a box already, so the vertical
%% items will get lost.
%% TODO: Adjust `eqnarray' (in Edtable?) as well.
%% VERSION HISTORY:
v0.01 2004/08/16 First version, sent to Christian.
v0.02 2004/08/16 Considerably simplified for ednotes.
2004/08/19 Added ellipsis stuff, documentation, and
instructions. Uncapitalized package names.
Added \end[No]NotesToMath.
2004/08/20 Added \@bsphack and \@esphack; corrected
ednotes extension (too much deleted, completely
wrong), introducing \@EN@themathlemmatag.
v0.02b .../08/31 Rearranged preamble concerning maintenance.
v0.1 2004/09/20 Removed mentions of `linenox0.sty'.
v0.2 2004/10/07 Removed another mention of `linenox0.sty';
Instructions: `lineno' or `ednotes.sty' option.
v0.2a 2004/11/07 LPPL v1.3a.
v0.2b 2005/01/10 Contact via http.