summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/lineno/ednmath0.sty
blob: 363c6c6aa5c45a9dab4b8945c7d7ee8afd595fd1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
%% 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.