203 lines
7.1 KiB
Plaintext
203 lines
7.1 KiB
Plaintext
|
%% 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.
|
||
|
|
||
|
|