From 8abaae73c1bd5624110e77ebafcfba25e7d0694e Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Mon, 10 Jul 2006 22:34:26 +0000 Subject: ednotes 1.5 (10jul06) git-svn-id: svn://tug.org/texlive/trunk@1810 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/ednotes/CHANGES.txt | 31 +++ Master/texmf-dist/doc/latex/ednotes/README.txt | 150 ++++++------- Master/texmf-dist/doc/latex/ednotes/ednotes.pdf | Bin 234722 -> 247100 bytes Master/texmf-dist/doc/latex/ednotes/ednotes.tex | 5 + Master/texmf-dist/doc/latex/ednotes/varnrule.tex | 111 ++++++++++ Master/texmf-dist/tex/latex/ednotes/edcntwd0.sty | 19 +- Master/texmf-dist/tex/latex/ednotes/ednotes.sty | 261 ++++++++++++++++------- Master/texmf-dist/tpm/ednotes.tpm | 9 +- 8 files changed, 420 insertions(+), 166 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/ednotes/varnrule.tex (limited to 'Master/texmf-dist') diff --git a/Master/texmf-dist/doc/latex/ednotes/CHANGES.txt b/Master/texmf-dist/doc/latex/ednotes/CHANGES.txt index f05a95f96e0..c714e26716a 100644 --- a/Master/texmf-dist/doc/latex/ednotes/CHANGES.txt +++ b/Master/texmf-dist/doc/latex/ednotes/CHANGES.txt @@ -1,3 +1,34 @@ +CHANGES for ednotes.sty v1.3 2006/07/08: + +1. Customizing (different) footnote rules -- as invented by + Christian Tapp and Alex Rozhenko, implemented in manyfoot + v1.5 -- is now supported by ednotes at last. To learn + more on this new feature, please search ednotes.sty for + `Customizing *footnote rules*'. + + One application for this, asked for by Sergei Mariev + (who has inspired so many improvements) is demonstrated + in file varnrule.tex . + + (Jumping from v1.23 to v1.3 expresses my happiness about + this gain!) + +2. Overlapping lemmas work as I had desired for a long time + -- especially in "moving arguments" (e.g. section titles). + Moreover, my recent work on this had introduced another + bug -- that is fixed only now. + + Macros \IfLemmaTag and \IfTypesetting (each with two + arguments) have become public in case you need + something more special/general concerning overlapping + lemmas and/or moving arguments than what has been + provided so far. + +3. [Recent \includeonly features have been re-implemented + internally more parsimoniously -- I hope you won't + experience any effect of this.] + + CHANGES for ednotes.sty v1.23b 2006/01/26: 1. Remarks in documentation: how not to suppress hyphenation diff --git a/Master/texmf-dist/doc/latex/ednotes/README.txt b/Master/texmf-dist/doc/latex/ednotes/README.txt index ba63715211e..388e7dd0842 100644 --- a/Master/texmf-dist/doc/latex/ednotes/README.txt +++ b/Master/texmf-dist/doc/latex/ednotes/README.txt @@ -3,11 +3,11 @@ FIRST INSTRUCTIONS for EDNOTES - Distribution April 2005 - (this file April 26, 2005) + Distribution July 2006 + (this file July 8, 2006) - Uwe Lueck, dir. Christian Tapp - Munich/Goettingen, Germany + Uwe Lueck, Munich (Germany) + dir. Christian Tapp, Pittsburgh (USA) http://www.contact-ednotes.sty.de.vu ====================+=====+=======++=======+=====+==================== @@ -105,92 +105,92 @@ USAGE of `ednotes': CTAN folders. Here is just a guide through files and folders to increase your knowledge step by step: - 0. Oh, recently some of these explanations have been collected - in ednotes.pdf -- .txt input with .pdf output. - - 1. An overview of `ednotes' has appeared in TUGboat vol. 24. - no. 2; the above `ednotes' directory of CTAN contains an - updated .pdf version `ednotugb.pdf' of it. It demonstrates - through some examples what output certain commands produce. - It also compares `ednotes' with two other (La)TeX packages - for critical edition typesetting. - - 2. Next (or even first) we recommend reading the explanations at - the beginning of `ednotes.sty'. - - 3. You may find references to .sty files from the `ednotes' and - the `lineno' folder for reading about additional details of - usage. - - 4. `lineno.sty' provides commands and options that are very useful - to know for creating critical editions by `ednotes'. You can - read about these commands and options in `lineno.sty'. - Moreover, the explanations from `lineno.sty' can be printed - through `lineno.tex' or `lineno.pdf' obtainable from the above - `ednotes' directory. You find there as well an attempt at a - user's guide for `lineno' -- `ulineno.tex' and `ulineno.pdf'. - The latter is not quite up to date, but it may be helpful - though. -- When you use `ednotes', don't believe what the - `lineno' documentation tells about, e.g., - - \usepackage[edtable]{lineno} - - (such statements address usage of `lineno' without `ednotes'). - Many package options of `ednotes.sty' are just passed to - `lineno.sty', so the `lineno' documentation is `ednotes' - documentation in this respect. - - 5. `manyfoot' is another essential module for making `ednotes' - work, though you may hardly need to know about it, `ednotes' - is a kind of user interface for `manyfoot'. However, you may - inform yourself about offers of `manyfoot' for certain fine - points of critical edition typesetting through `manyfoot.dtx' - or `manyfoot.pdf' -- which you find in - - http://www.ctan.org/tex-archive/macros/latex/contrib/ncctools + 0. Oh, recently some of these explanations have been collected + in ednotes.pdf -- .txt input with .pdf output. + + 1. An overview of `ednotes' has appeared in TUGboat vol. 24. + no. 2; the above `ednotes' directory of CTAN contains an + updated .pdf version `ednotugb.pdf' of it. It demonstrates + through some examples what output certain commands produce. + It also compares `ednotes' with two other (La)TeX packages + for critical edition typesetting. + + 2. Next (or even first) we recommend reading the explanations at + the beginning of `ednotes.sty'. + + 3. You may find references to .sty files from the `ednotes' and + the `lineno' folder for reading about additional details of + usage. + + 4. `lineno.sty' provides commands and options that are very useful + to know for creating critical editions by `ednotes'. You can + read about these commands and options in `lineno.sty'. + Moreover, the explanations from `lineno.sty' can be printed + through `lineno.tex' or `lineno.pdf' obtainable from the above + `ednotes' directory. You find there as well an attempt at a + user's guide for `lineno' -- `ulineno.tex' and `ulineno.pdf'. + The latter is not quite up to date, but it may be helpful + though. -- When you use `ednotes', don't believe what the + `lineno' documentation tells about, e.g., - (e.g., cf. `CTAN' in the glossary). There are `nccfoots.dtx' - and `nccfoots.pdf' as well. Indeed you may find functions of - `manyfoot' useful just for your commentary passages. + \usepackage[edtable]{lineno} - 6. `perpage.sty' is mentioned here mainly to allow use of - `manyfoot's `perpage' option. It contains brief explanations. + (such statements address usage of `lineno' without `ednotes'). + Many package options of `ednotes.sty' are just passed to + `lineno.sty', so the `lineno' documentation is `ednotes' + documentation in this respect. - 7. `longtable', of course, is explained in `longtable.dtx' and - various guides for LaTeX. + 5. `manyfoot' is another essential module for making `ednotes' + work, though you may hardly need to know about it, `ednotes' + is a kind of user interface for `manyfoot'. However, you may + inform yourself about offers of `manyfoot' for certain fine + points of critical edition typesetting through `manyfoot.dtx' + or `manyfoot.pdf' -- which you find in - 8. We have prepared something for listing line numbers for index - terms. We don't take the time to integrate it here -- please - contact us (see below) if you are interested. + http://www.ctan.org/tex-archive/macros/latex/contrib/ncctools + + (e.g., cf. `CTAN' in the glossary). There are `nccfoots.dtx' + and `nccfoots.pdf' as well. Indeed you may find functions of + `manyfoot' useful just for your commentary passages. + + 6. `perpage.sty' is mentioned here mainly to allow use of + `manyfoot's `perpage' option. It contains brief explanations. + + 7. `longtable', of course, is explained in `longtable.dtx' and + various guides for LaTeX. + + 8. We have prepared something for listing line numbers for index + terms. We don't take the time to integrate it here -- please + contact us (see below) if you are interested. Standalone files: Some of the listed .sty files which are our work may be useful without using `ednotes': - 1. Whenever you use `manyfoot', you can load `mfparptc.sty' after - `manyfoot.sty' just to modify the behaviour of `manyfoot' in - the way that is explained in `mfparptc.sty'. + 1. Whenever you use `manyfoot', you can load `mfparptc.sty' after + `manyfoot.sty' just to modify the behaviour of `manyfoot' in + the way that is explained in `mfparptc.sty'. + + Moreover, there is a file `mfparxsp.sty', made for the + possibility that some `manyfoot' user has used an earlier + version of `mfparxsp.sty' which has become obsolete. - Moreover, there is a file `mfparxsp.sty', made for the - possibility that some `manyfoot' user has used an earlier - version of `mfparxsp.sty' which has become obsolete. + 2. For extending lineno.sty by packages from here, see - 2. For extending lineno.sty by packages from here, see + http://www.ctan.org/tex-archive/macros/latex/contrib/lineno - http://www.ctan.org/tex-archive/macros/latex/contrib/lineno + (e.g., cf. `CTAN' in the glossary). - (e.g., cf. `CTAN' in the glossary). - - 3. `ltabptch.sty', a patch for `longtable', can be used whenever - `longtable' is used. + 3. `ltabptch.sty', a patch for `longtable', can be used whenever + `longtable' is used. - 4. An additional file `lblchng1.sty' deals with page break - oscillations, by code as well as by explanations and - discussion. It can be used entirely independently from - any of the packages mentioned before. + 4. An additional file `lblchng1.sty' deals with page break + oscillations, by code as well as by explanations and + discussion. It can be used entirely independently from + any of the packages mentioned before. -Contact us: +CONTACT us: We would be happy about your suggestions and (in a way) about your bug reports. Since documentation is so poor at present, please feel @@ -201,7 +201,7 @@ Contact us: (Note: in TeX terms, the names in the file heading are `L\"uck' and `G\"ottingen.) -Newsletter: +NEWSLETTER: E.g., you may ask us to take your e-mail address into a mailing list for reporting `ednotes' changes. diff --git a/Master/texmf-dist/doc/latex/ednotes/ednotes.pdf b/Master/texmf-dist/doc/latex/ednotes/ednotes.pdf index 8bfe10a099a..0172d59cd68 100644 Binary files a/Master/texmf-dist/doc/latex/ednotes/ednotes.pdf and b/Master/texmf-dist/doc/latex/ednotes/ednotes.pdf differ diff --git a/Master/texmf-dist/doc/latex/ednotes/ednotes.tex b/Master/texmf-dist/doc/latex/ednotes/ednotes.tex index 0cd90e4ff74..12650ad0af0 100644 --- a/Master/texmf-dist/doc/latex/ednotes/ednotes.tex +++ b/Master/texmf-dist/doc/latex/ednotes/ednotes.tex @@ -80,8 +80,10 @@ alternative \texttt{ledmac}. These are some very down-to-earth advices for real \TeX-newbies. \verbatiminput{visible.txt} + \section{The main file: \texttt{ednotes.sty}} \verbatiminput{ednotes.sty} + \section{Supplementary macro files} \subsection{Tracking page break oscillations: \texttt{lblchng1.sty}} @@ -98,6 +100,9 @@ vertical spacing has been superseded by \texttt{manyfoot}'s more recent \cs{ExtraParaSkip}\,. \verbatiminput{mfparxsp.sty} +\section{\texttt{varnrule.tex}---customizing footnote rules} +\verbatiminput{varnrule.tex} + \end{document} end of Ednotes.tex diff --git a/Master/texmf-dist/doc/latex/ednotes/varnrule.tex b/Master/texmf-dist/doc/latex/ednotes/varnrule.tex new file mode 100644 index 00000000000..4e2d203314e --- /dev/null +++ b/Master/texmf-dist/doc/latex/ednotes/varnrule.tex @@ -0,0 +1,111 @@ +%% varnrule.tex -- demo for varying footnote rules with +%% ednotes.sty (manyfoot feature now supported by ednotes +%% -- search ednotes.sty for `Customizing *footnote rules*'). +%% Uwe Lueck http://contact-ednotes.sty.de.vu 2006/07/06 + +%% Present task: Sergei Mariev wants to use ordinary (numbered) +% footnotes as well as critical apparatuses. An ordinal footnote +% rule should separate the main text from the footnotes in any +% case. The additional footnotes should be separated by usual +% footnote rules as well. However, there shouldn't be a rule +% between the ordinary numbered footnotes and the remaining +% ones. +% +\documentclass[12pt]{article} + +% Below \endinput here, there is a sample for experiencing the +% manyfoot feature without ednotes ...: +% +%%%% \iffalse %% To switch to the mere manyfoot sample -- needs +%%%% %% removing percent signs preceding corresponding +%%%% %% \fi as well! + +\newcommand{\SelectAnoteRule}{[1]{no}} +\newcommand{\SelectBnoteRule}{[0]{default}} +% <- Priorities 1 and 0 will be overridden by priority 2 +% of the Standard LateX footnote rule, +% so there will be a footnote rule between main text and the +% footnotes in any case. Priority 1 above ensures that +% there will never be a visible rule between ordinary footnotes +% and the new A/B/C footnotes handled by manyfoot. +% `no' corresponds to \newcommand{\nofootnoterule} below; +% `default' refers to the standard footnote rule as stored +% by manyfoot. +% -- \newcommand{\Select... must come before loading ednotes. + +\usepackage[Bpara,Cpara]{ednotes} + +\renewcommand{\footnoterulepriority}{2} +% <- setting default priority, especially for the ordinary LaTeX +% footnotes. This priority is the maximal one here and thus +% overrides all the remaining ones. So there will be a rule +% between main text and the footnotes in any case. +% -- The previous line must come /after/ loading ednotes. + +\newcommand{\nofootnoterule}{} +% <- or \let\nofootnoterule\empty; or call it \emptyfootnoterule. +% If so, use `empty' instead of `no' above. +% -- This line may come anywhere before the first page +% is output. + +\begin{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\linenumbers + +%% Remove or add some percent signs for playing: +Some text.\footnote{Ordinary footnote.} +% \Anote{A lemma.}{A note.} +\Bnote{B lemma.}{B note.} +\Cnote{C lemma.}{C note.} + +\end{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + + +Code demonstrating manyfoot's feature of customized footnote rules: + +%%%% \fi + +\nofiles + +\usepackage[para,ruled]{manyfoot} +% <- I wasn't able to get the below -- much wanted -- results +% without the `ruled' option -- may someone do better!? + +\renewcommand{\footnoterulepriority}{2} +% <- setting default priority, especially for the ordinary LaTeX +% footnotes. This priority is the maximal one here and thus +% overrides all the remaining ones. So there will be a rule +% between main text and the footnotes in any case. + +\newcommand{\nofootnoterule}{} +% <- or \let\nofootnoterule\empty; or call it \emptyfootnoterule. +% If so, use `empty' instead of `no' below. + +\SelectFootnoteRule[1]{no} +\newfootnote[para]{A} +% <- Priorities 1 here and 0 below will be overridden by priority +% 2 of the Standard LateX footnote rule, +% so there will be a footnote rule between main text and the +% footnotes in any case. Priority 1 just above ensures that +% there will never be a visible rule between ordinary footnotes +% and the new ("level") footnotes handled by manyfoot. + +\SelectFootnoteRule[0]{default} +% <- `default' refers to the standard footnote rule as stored +% by manyfoot. +\newfootnote[para]{B} +\newfootnote[para]{C} +% <- Notes in A, B, C will be separated by rules in the usual way. + +\begin{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +%% Remove or add some percent signs for playing: +Some text.\footnote{Ordinary footnote.}% +% \FootnotetextA{}{A}% +\FootnotetextB{}{B}% +\FootnotetextC{}{C} + +\end{document} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +End of varnrule.tex + diff --git a/Master/texmf-dist/tex/latex/ednotes/edcntwd0.sty b/Master/texmf-dist/tex/latex/ednotes/edcntwd0.sty index 48c44001300..1d20e3a84f5 100644 --- a/Master/texmf-dist/tex/latex/ednotes/edcntwd0.sty +++ b/Master/texmf-dist/tex/latex/ednotes/edcntwd0.sty @@ -1,5 +1,5 @@ %% EdCntWd0.sty--count word occurrences with ednotes.sty. -\def\fileversion{0.32b} \def\filedate{2006/06/26} %% TODO +\def\fileversion{0.32d} \def\filedate{2006/07/06} %% TODO %% Copyright (C) 2004 Uwe L\"uck & Christian Tapp (direction) %% 2005 2006 Uwe L\"uck. @@ -51,7 +51,7 @@ % nothing but character tokens. (Cf. \csname on p. 203 of TeXbook.) % 4.) Customization: Index numbers appear as subscripts by default. % To change this, type -% \renewcommand*{\CWtextscript}{\textsuperscript} +% \renewcommand{\CWtextscript}{\textsuperscript} % or \let\CWtextscript\textsuperscript . % 5.) Pagewise/running line numbering: Switching from pagewise to % running line numbering needs an extra run or deletion of @@ -91,9 +91,10 @@ % \newif\if@CW@firstinpar \global\@CW@firstinpartrue %% ! % \c@CW@par identifies paragraphs which contain \countword. -% From v0.32a onwards, it is a LaTeX counter in order to -% work properly with \includeonly -\newcounter{CW@par} % \newcount\c@CW@par +% From v0.32a onwards, it is kind of a LaTeX counter in order +% to work properly with \includeonly: +\newcount\c@CW@par +\@addtoreset{CW@par}{@ckpt} % \@CW@wordlist is made a list of \countword-arguments in one % paragraph, to be written to the .aux . @@ -110,7 +111,10 @@ % When there is evidence that there are more occurrences of % \countword than in the previous run: \def\@CW@missingdata{\G@refundefinedtrue - \@EN@warning{Missing data for \string\countword}% + \@EN@warning{Missing data (.aux) for + \string\countword\MessageBreak}% +%Package ednotes Warning: Missing data (.aux) for \countword +%on inputline \CWtextscript?} %% <- TODO: warning when some \countword has been removed!? @@ -360,4 +364,5 @@ v0.32a /06/07 \c@CW@par with \includeonly. extended documentation; rearranged code. 2006/06/16 \@CW@missingdata. v0.32b /06/26 LPPL v1.3c. - + /06/29 `Missing data (.aux)' +v0.32c /07/06 \includeonly with less LaTeX counter features. diff --git a/Master/texmf-dist/tex/latex/ednotes/ednotes.sty b/Master/texmf-dist/tex/latex/ednotes/ednotes.sty index 6fb640b67e5..e5b04a6bd5e 100644 --- a/Master/texmf-dist/tex/latex/ednotes/ednotes.sty +++ b/Master/texmf-dist/tex/latex/ednotes/ednotes.sty @@ -5,7 +5,7 @@ %% --author-maintained, for critical editions %% (varying J. Lavagnino's and D. Wujastyk's EDMAC). %% -\def\fileversion{1.23b} \def\filedate{2006/06/26} %% TODO +\def\fileversion{1.3} \def\filedate{2006/07/06} %% TODO % %% This file can be redistributed and/or modified under %% the terms of the LaTeX Project Public License; either @@ -153,6 +153,10 @@ % Cf. EDMAC's \no@expands; EDMAC, however, deals with the % problem in a different way and needs more changes % than we do.) +% ---You may find +% \IfLemmaTag{}{} +% useful as well, perhaps more flexible than \notinnote. +% % *"Optional" user commands:* ------------------------------------- % Each of \Bnote, \Bnotelabel, \Cnote, \Cnotelabel, \Dnote, % \Dnotelabel, \Enote, and \Enotelabel is defined by calling @@ -219,10 +223,11 @@ % occur more than once in a line. See our package `edcntwd0.sty'. % (With `ednotes.sty' v1.1 you need `edcntwd0.sty' v0.31.) % -% *Customizing:* (important change v1.1!) +% *Customizing:* % Appearance of notes is directed by macros \extrafootnoterule, % \linesfmt etc. occurring in the following lines -% (each starting with \renewcommand). +% (each starting with \renewcommand). -- More recently, customizing +% footnote rules has been introduced; see below. % For customizing, copy the respective lines to your own file, % remove left hand comment mark, and change the definition in the % right hand pair of braces. (The definition you find there is our @@ -325,6 +330,26 @@ % conflict with our lemma mechanism. (Coexistence would be possible % by suitable use of braces and repeating present definitions % after change of <'s catcode.) +% ---Customizing *footnote rules*: From its version 1.5 onwards, +% manyfoot has offered customizing footnote rules, as described +% in section 3 of manyfoot.pdf . Only with version 1.3 onwards, +% our ednotes supports this manyfoot feature. First please note +% that ednotes always simply executes \newfootnote, never +% \DeclareNewFootnote. This seems to suffice for scholarly +% critical editions and for customizing the footnote rules. +% When you read in manyfoot.pdf about customizing footnote +% rules, therefore please disregard any difference between +% \newfootnote and \DeclareNewFootnote.---So please read +% section 3 of manyfoot.pdf . Observe the \SelectFootnoteRule +% commands preceding some \DeclareFootnoteRule commands. +% If such a command precedes \newfootnote{}, ednotes +% produces the same effect if you precede loading ednotes +% after \newcommand{\Selectnoterule}{}, +% when you would want to use \SelectFootnoteRule +% with mere manyfoot. (The accompanying file varnrule.tex +% explains more and enables you to play with the possibilites.) +% ---(Please never forget to update the ncctools MiKTeX package +% when you update the ednotes package!) % % *Your shorthands:* % \Anote etc. prevent editorial notes from appearing in the @@ -348,6 +373,9 @@ % parameter and at least one *mandatory* parameter -- well, if it % doesn't have, you can use \RobustTestOpt if you put a pair of % braces after the shorthand macro name, this would work as well. +% ---You may find +% \IfTypesetting{}{} +% more flexible. % % *Known problems:* % With run-in-paragraph footnotes (options `para' or `para*'), notes @@ -501,9 +529,9 @@ % For pointing out errors and problems, we are grateful to test % users Robert Alessi, Sergei Mariev---see version history. % Florian Kragl contributed to now `manyfoot.sty's \ExtraParaSkip -% as described above. v1.1 is due to problems that Roy Flechner -% reported. v1.12 is due to Hillel Chayim Yisraeli's discovery -% of spurious footnote marks. +% as described above. v1.1 and v1.23c are due to problems that +% Roy Flechner reported. v1.12 is due to Hillel Chayim Yisraeli's +% discovery of spurious footnote marks. % \NeedsTeXFormat{LaTeX2e}[1994/12/01] % 1994/12/01: \newcommand* etc. %% TODO: more recent needed? @@ -544,6 +572,9 @@ \AtEndOfPackage{% \SetFootnoteHook{\@EN@MF@hook@B}% \let\@EN@MF@hook@B\@empty + \@ifundefined{SelectBnoteRule}{}{% + \expandafter\SelectFootnoteRule\SelectBnoteRule + \let\SelectBnoteRule\relax}% \newfootnote[para]{B}% \newcommand{\Bnote}{\@EN@note B}% \newcommand{\Bnotelabel}{\@EN@notelabel B}% @@ -552,6 +583,9 @@ \AtEndOfPackage{% \SetFootnoteHook{\@EN@MF@hook@B}% \let\@EN@MF@hook@B\@empty + \@ifundefined{SelectBnoteRule}{}{% + \expandafter\SelectFootnoteRule\SelectBnoteRule + \let\SelectBnoteRule\relax}% \newfootnote{B}% \newcommand{\Bnote}{\@EN@note B}% \newcommand{\Bnotelabel}{\@EN@notelabel B}% @@ -561,6 +595,9 @@ \AtEndOfPackage{% \SetFootnoteHook{\@EN@MF@hook@C}% \let\@EN@MF@hook@C\@empty + \@ifundefined{SelectCnoteRule}{}{% + \expandafter\SelectFootnoteRule\SelectCnoteRule + \let\SelectCnoteRule\relax}% \newfootnote[para]{C}% \newcommand{\Cnote}{\@EN@note C}% \newcommand{\Cnotelabel}{\@EN@notelabel C}% @@ -569,6 +606,9 @@ \AtEndOfPackage{% \SetFootnoteHook{\@EN@MF@hook@C}% \let\@EN@MF@hook@C\@empty + \@ifundefined{SelectCnoteRule}{}{% + \expandafter\SelectFootnoteRule\SelectCnoteRule + \let\SelectCnoteRule\relax}% \newfootnote{C}% \newcommand{\Cnote}{\@EN@note C}% \newcommand{\Cnotelabel}{\@EN@notelabel C}% @@ -578,6 +618,9 @@ \AtEndOfPackage{% \SetFootnoteHook{\@EN@MF@hook@D}% \let\@EN@MF@hook@D\@empty + \@ifundefined{SelectDnoteRule}{}{% + \expandafter\SelectFootnoteRule\SelectDnoteRule + \let\SelectDnoteRule\relax}% \newfootnote[para]{D}% \newcommand{\Dnote}{\@EN@note D}% \newcommand{\Dnotelabel}{\@EN@notelabel D}% @@ -586,6 +629,9 @@ \AtEndOfPackage{% \SetFootnoteHook{\@EN@MF@hook@D}% \let\@EN@MF@hook@D\@empty + \@ifundefined{SelectDnoteRule}{}{% + \expandafter\SelectFootnoteRule\SelectDnoteRule + \let\SelectDnoteRule\relax}% \newfootnote{D}% \newcommand{\Dnote}{\@EN@note D}% \newcommand{\Dnotelabel}{\@EN@notelabel D}% @@ -595,6 +641,9 @@ \AtEndOfPackage{% \SetFootnoteHook{\@EN@MF@hook@E}% \let\@EN@MF@hook@E\@empty + \@ifundefined{SelectEnoteRule}{}{% + \expandafter\SelectFootnoteRule\SelectEnoteRule + \let\SelectEnoteRule\relax}% \newfootnote[para]{E}% \newcommand{\Enote}{\@EN@note E}% \newcommand{\Enotelabel}{\@EN@notelabel E}% @@ -603,6 +652,9 @@ \AtEndOfPackage{% \SetFootnoteHook{\@EN@MF@hook@E}% \let\@EN@MF@hook@E\@empty + \@ifundefined{SelectEnoteRule}{}{% + \expandafter\SelectFootnoteRule\SelectEnoteRule + \let\SelectEnoteRule\relax}% \newfootnote{E}% \newcommand{\Enote}{\@EN@note E}% \newcommand{\Enotelabel}{\@EN@notelabel E}% @@ -653,7 +705,7 @@ %% Load required packages: \RequirePackage[ruled\if@EN@Apara,para\fi]{manyfoot}[2005/05/11] %% <- \SetFootnoteHook -%% TODO: Leave choice to user!? +%% todo: Leave choice to user!? -> `unruled' -- \Select... suffices. %% TODO: ruled -> \Execute...!? \RequirePackage{lineno}[2004/10/11] @@ -668,6 +720,9 @@ %% Execute option concerning first apparatus: \SetFootnoteHook{\@EN@MF@hook@A} \let\@EN@MF@hook@A\@empty +\@ifundefined{SelectAnoteRule}{}{% + \expandafter\SelectFootnoteRule\SelectAnoteRule + \let\SelectAnoteRule\relax}% \if@EN@Apara \newfootnote[para]{A}% Needs `manyfoot.sty'. \newcommand{\Anote}{\@EN@note A}% @@ -681,7 +736,6 @@ %% User commands (if not defined in option code etc.): \newcommand{\addlemmaexpands}{\@EN@addtomacro\@EN@lemmaexpands} %% <- local; cf. using LaTeX's \g@addto@macro: %% TODO: decide -% \newcommand{\addlemmaexpands}{\g@addto@macro\@EN@lemmaexpands} \newcommand{\showlemmaexpands}{% \typeout{\string\@EN@lemmaexpands=\meaning\@EN@lemmaexpands}% } @@ -724,21 +778,26 @@ % % Our sphack for going around control sequences in text: \def\@EN@sphack{\relax - \ifhmode\ifdim\lastskip>\z@ \ignorespaces \fi\fi} -% -\def\@EN@xpxpxp{\expandafter\expandafter\expandafter} % :-) v1.23 -% Basic handling of \Anote etc.: -\long\def\@EN@note#1#2{% #1 note family, #2 lemma. -% %% TODO: \long!? + \ifhmode\ifdim\lastskip>\z@ \ignorespaces \fi\fi +} +% For ellipsis commands in moving arguments: +\def\IfTypesetting{% \ifx\protect\@typeset@protect \expandafter \@firstoftwo \else \expandafter \@secondoftwo \fi - {\def\@EN@notefam{#1}\@EN@process #2\<\>\@nil}% - {\@EN@robust@process #2\<\>\@nil}% +} +% A nice shortcut (v1.23): +\def\@EN@xpxpxp{\expandafter\expandafter\expandafter} + +% Basic handling of \Anote etc.: +\long\def\@EN@note#1#2{% #1 note family, #2 lemma. + \IfTypesetting{% + \def\@EN@notefam{#1}\@EN@process #2\<\>\@nil + }{\@EN@robust@process #2\<\>\@nil}% } % % Lemma versions and preparing label: -\long\def\@EN@process#1\<#2\>#3\@nil{% %% TODO: \long!? +\long\def\@EN@process#1\<#2\>#3\@nil{% % Usage: \@EN@process #k\<\>\@nil. %% TODO: simplify using LaTeX's \in@!? % Implementation: don't leave control to user's input unless \<, \> @@ -748,42 +807,39 @@ % \let\@EN@lemmatag\@EN@lemmaarg %% Would be overridden. \ifx\@nnil#2#3\@nnil % No ellipsis, #1 all of user's input, dummy \<\> gobbled. - \@EN@addtomacro\@EN@lemmaarg\unskip + \@EN@addtomacro\@EN@lemmaarg\unskip \@EN@simplelemmatag -% \let\@EN@lemmatag\@EN@lemmaarg \@EN@mathlemmatag \else \@EN@simplelemmatag -% %% TODO: this case is the rare one, so put it into an extra -% %% macro for efficiency!? \ifx\@nnil#3\@nnil % \<, but no \> from user. % #2 ends on \<, \>\@nil gobbled. - \@EN@gobble@pause#2\@nil + \@EN@gobble@pause#2\@nil\@nil \else % #3 ends on dummy \<\>. - \@EN@gobble@resume\@EN@gobble@pause#2\@EN@sphack\@nil#3% + \@EN@gobble@resume\@EN@gobble@pause#2\@EN@sphack\@nil % This \@EN@sphack replacing \> in main text. + #3\@nil\@nil \fi \fi - \ifLemmaTag \expandafter \@firstoftwo - \else \expandafter \@secondoftwo - %% <- TODO: \...process might be redirected to - %% \...robust@process immediately. - \fi - {\@EN@lemmaarg\@gobble}% - {\stepcounter{EN@label}% % v1.23 -% {\global\advance\c@EN@label\@ne + \IfLemmaTag % v1.3 + {\@EN@lemmaarg\@gobble}% + %% TODO: \...process might otherwise be redirected to + %% \...robust@process immediately. %% ??? + {\stepcounter{EN@label}% % Much must be expanded, especially for storing the note in a % hook (some tables): - \edef\@EN@tempa{\noexpand\@EN@putdown{EN@l\number\c@EN@label}}% - \@EN@xpxpxp \@EN@tempa - \expandafter \@EN@notefam \expandafter {\@EN@lemmatag}}% + \edef\@EN@tempa{\noexpand\@EN@putdown{EN@l\number\c@EN@label}}% + \@EN@xpxpxp \@EN@tempa + \expandafter \@EN@notefam \expandafter {\@EN@lemmatag}}% } -\long\def\@EN@gobble@pause#1\<{\@EN@finishlemma#1\@nil} %% TODO: \long!? +\long\def\@EN@gobble@pause#1\<\@nil{% + \futurelet\@let@token + %% <- TODO \@EN@finishlemma like \@EN@gobble@opt@till!? + \@EN@finishlemma #1\@nil} % #1 contains \@nil separating arguments. % Variant of LaTeX's \@ifnextchar---don't gobble spaces: -\def\@EN@finishlemma{\futurelet\@let@token\@EN@finlem} -\def\@EN@finlem{% +\def\@EN@finishlemma{% \ifx\@let@token<% \let\@EN@next\@EN@xfinlem \else @@ -791,7 +847,7 @@ \fi \@EN@next } -\long\def\@EN@xfinlem<#1>#2\@nil#3\@nil{% %% TODO: \long!? +\long\def\@EN@xfinlem<#1>#2\@nil#3\@nil{% \@EN@addtomacro\@EN@lemmaarg{\@EN@sphack#2#3\unskip}% \@EN@addtomacro\@EN@lemmatag{#1\@EN@CWhook{#2}#3\unskip}% \@EN@mathlemmatag @@ -802,20 +858,21 @@ % printed right here. Alternative (but needs extra code to test % for \extraellipsis): \extraellipsis{ELL}. %% TODO: decide % Think of keyboards without `<', `>'? -\long\def\@EN@gobble@resume#1\>{#1} %% TODO: \long!? +\long\def\@EN@gobble@resume#1\>\@nil{#1} \let\@EN@CWhook\@gobble %% For counting words package. \def\@EN@simplelemmatag{\let\@EN@lemmatag\@EN@lemmaarg} % Useful for math mode extension as well. \let\@EN@mathlemmatag\relax %% Hook for math mode. % -\newcounter{EN@label} %% for \includeonly; v1.23 -%% <- TODO: problem with final label test -% \newcount\c@EN@label +% \newcounter{EN@label} +% % <- for \includeonly, v1.23; sufficient v1.3: +\newcount\c@EN@label +\@addtoreset{EN@label}{@ckpt} % % New mechanism for ellipsis in lemma -- supporting nested lemmas % or at least lemmas shared by apparatuses exceeding one % (v1.22b 2006/01/13): -\def\@EN@lemma@ellipsis{% +\def\@EN@ltag@ellipsis{% \futurelet\@let@token\@EN@make@nested@lemmaellipsis}% \def\@EN@make@nested@lemmaellipsis{% \ifx\@let@token<% @@ -826,7 +883,6 @@ \fi} \long\def\@EN@ellipsis@only<#1>#2\>{#1} % - % .aux entries, note, and lemma in main text: % (v1.1: much changes. I just remove what was before, see stored % older version.) @@ -911,50 +967,58 @@ } % % Expanding in note version of lemma: -\newif\ifLemmaTag \LemmaTagfalse \let\@EN@lemmaexpands\@empty -%% TODO: \long below!? Cf. properly expanding versions. -\def\@EN@gobble{\@EN@sphack\@gobble} -\def\@EN@gobbletwo{\@EN@sphack\@gobbletwo} -\def\@EN@secondofthree#1#2#3{\@EN@sphack#2} +\long\def\@EN@gobble{\@EN@sphack\@gobble} +\long\def\@EN@gobbletwo{\@EN@sphack\@gobbletwo} +\long\def\@EN@secondofthree#1#2#3{\@EN@sphack#2} +\let\IfLemmaTag\@secondoftwo % v1.3 +% <- Had thought I would use it more than once ... +% ... maybe for replacing some \addlemmaexpands entries: \addlemmaexpands{% - \LemmaTagtrue + \let\IfLemmaTag\@firstoftwo \let\notinnote\@EN@gobble \let\@EN@note\@EN@secondofthree \let\@EN@notelabel\@EN@gobbletwo - \let\donote\@EN@gobbletwo +% \let\resume\notinnote \let\pause\notinnote + % <- v1.23c -- Thanks to Roy Flechner. +% \let\pause\@EN@pause@ltag % v1.3 +% \let\donote\@EN@gobbletwo \let\label\notinnote \let\linelabel\notinnote - \let\<\@EN@lemma@ellipsis + \let\<\@EN@ltag@ellipsis } %% <- TODO: user commands only!? (no \let) %% TODO: cf. EDMAC's tag (fonts? accents? -- lineno.sty commands?) \let\notinnote\@firstofone % -% Variant of \@EN@process when moving: +% Variant of \@EN@process when moving: (v1.21/1.22) \long\def\@EN@robust@process#1\<#2\>#3\@nil#4{% #1% \ifx\@nnil#2#3\@nnil % No ellipsis, #1 all of user's input, dummy \<\> gobbled. \else - \@EN@sphack + \@EN@sphack@aux{}% for ensuing space in .aux, v1.3 \ifx\@nnil#3\@nnil % \<, but no \> from user. % #2 ends on \<, \>\@nil gobbled. - \@EN@robust@gobble@pause#2% + \@EN@robust@gobble@pause#2\@nil \else % #3 ends on dummy \<\>. \@EN@gobble@resume - \@EN@robust@gobble@pause#2\@EN@sphack#3% - % This \@EN@sphack replacing \> in main text. + \@EN@robust@gobble@pause#2\@EN@sphack@aux{}#3\@nil\@nil \fi \fi } -\long\def\@EN@robust@gobble@pause#1\<{\@EN@gobble@opt#1<>\@nil\@empty} -\long\def\@EN@gobble@opt#1<#2>#3\@nil{% - \ifx\@nnil#3\@nnil #1% - \else \ifx\@nnil#1\@nnil\else#1<#2>\fi \@EN@gobble@diamond#3% - \fi -} -\long\def\@EN@gobble@diamond#1<>{#1} -%% TODO: all of them \long? +\DeclareRobustCommand{\@EN@sphack@aux}{\@EN@sphack\@gobble} +\long\def\@EN@robust@gobble@pause#1\<\@nil{% + \@EN@gobble@opt@till#1<>\@nil} +\long\def\@EN@gobble@opt@till#1<#2>#3\@nil{% + \ifx\@nnil#3\@nnil + #1\ifx\@nnil#2\@nnil \else + <\@EN@gobble@less#2\@nil \fi % v1.3 + \else + \ifx\@nnil#1\@nnil\else#1<#2>\fi \@EN@gobble@diamond #3\@nil + \fi} + % <- TODO weak against aggressive expansion +\long\def\@EN@gobble@less#1<\@nil{} +\long\def\@EN@gobble@diamond#1<>\@nil{#1} % % Shorthand macros for lemma in moving argument: \newcommand\RobustTestOpt{% @@ -985,13 +1049,14 @@ % A first version is obtained by reading unto the \donote % bearing the same label. \@EN@lemmaarg is then rebuilt, % replacing \pause and \resume by \< and \>. -% %% TODO: \long below!? -> lemma. \def\@EN@notelabel#1#2{% #1 note family, #2 label. - \def\@EN@notefam{#1}% - \def\@EN@laplabel{#2}% - \let\@EN@lemmaarg\@empty - \let\@EN@next\@EN@firstnext - \@EN@next + \IfTypesetting{% v1.3 + \def\@EN@notefam{#1}% + \def\@EN@laplabel{#2}% + \let\@EN@lemmaarg\@empty + \let\@EN@next\@EN@firstnext + \@EN@next + }\relax % Second argument: otherwise do nothing. % The following removed braces urgently needed: % \@EN@getlabel\donote % {\@EN@laplabel @@ -1002,7 +1067,7 @@ % \@EN@appendwrong % }% } -\long\def\@EN@firstnext#1\donote#2#3{% %% TODO: \long!? Alex!? +\long\def\@EN@firstnext#1\donote#2#3{% \def\@EN@tempa{#2}% \ifx \@EN@tempa \@EN@laplabel \@EN@addtomacro\@EN@lemmaarg{#1}% @@ -1021,7 +1086,7 @@ \expandafter\@EN@addtomacro \expandafter\@EN@lemmaarg \expandafter {\expandafter#1\expandafter{\@EN@tempa}}% }% - \long\def\@EN@next##1#1##2{% %% TODO: \long!? Alex!? + \long\def\@EN@next##1#1##2{% % %% TODO: \let [pre-defined] for efficiency!? \@EN@addtomacro\@EN@lemmaarg{##1}% \def\@EN@tempa{##2}% @@ -1035,7 +1100,6 @@ \@EN@getlabel\pause {\@nnil \def\@EN@next\resume\@nil{\@EN@donote}% - % %% TODO: \let [pre-defined] for efficiency!? \else \ifx\@EN@tempa\@EN@laplabel \@EN@addtomacro\@EN@lemmaarg\<% @@ -1045,13 +1109,13 @@ \fi }% } -\long\def\@EN@replaceresume#1\pause\@nil{% %% TODO: \long!? +\long\def\@EN@replaceresume#1\pause\@nil{% \@EN@getlabel\resume {\@nnil \let\@EN@next\@EN@donote \else \ifx\@EN@tempa\@EN@laplabel - \long\def\@EN@next####1\resume\@nil %% TODO: \long!? + \long\def\@EN@next####1\resume\@nil % %% TODO: \let [pre-defined] for efficiency!? {\@EN@addtomacro\@EN@lemmaarg{\>####1}\@EN@donote}% \else @@ -1062,10 +1126,30 @@ } \def\@EN@donote{\expandafter\@EN@process\@EN@lemmaarg \<\>\@nil} % -%% TODO: analogue to \@EN@robust@process. -%% TODO: \afterassignment possible anywhere? -%% TODO: \AtBeginDocument: \misplaced\< etc. -%% TODO: remove testing \typeout's. +% Variants for \@EN@notelabel in lemma tag or when moving: +% (v1.3) +\def\@EN@notelabel@cmd#1#2#3{% + \IfLemmaTag{#2}{% + \IfTypesetting{% + \PackageError{ednotes}{Misplaced \string#1}{% + Missing ...notelabel; + cf. package documentation.}% + }{\@EN@sphack@aux{}#3}}} +% +\newcommand\pause{% + \@EN@notelabel@cmd\pause + {\futurelet\@let@token\@EN@pause@ltag}\@EN@pause@aux} +\def\@EN@pause@ltag#1{% + \@EN@sphack\ifx\@let@token<\expandafter\@EN@gobble@opt\fi} +\def\@EN@gobble@opt<#1>{} +\long\def\@EN@pause@aux#1#2\resume{% + \@EN@gobble@opt@till #2<>\@nil\resume} +% +\newcommand\resume{% + \@EN@notelabel@cmd\resume\@EN@gobble\@gobble} +\newcommand\donote{% + \@EN@notelabel@cmd\donote\@EN@gobbletwo\@gobbletwo} + % v1.1: reduce number of control strings from \newlabel. % We keep using \linelabel and \label for kind of simplicity and % because modifying them would hardly save time or save us from @@ -1259,6 +1343,8 @@ from user^^J-- still appropriate in final version!? --}% \global\let\@EN@pagebreaks@finalwarn\@EN@pagebreaksfinalwarn \pagebreak} +%% TODO: \afterassignment possible anywhere? +%% TODO: remove testing \typeout's. %% Reminder about `mfparxsp.sty': \AtBeginDocument{% @@ -1446,3 +1532,18 @@ v1.23a /06/20 Corrected \RequirePackage{edcntwd0}-date. v1.23b /06/22 Require manyfoot v1.9. /06/26 LPPL v1.3c; require mfparptc v4.1; remarks on hyphenation of first word in lemma tag. + [Sent to CTAN] +v1.23c /06/27 Fix for \pause/\resume in lemma tag (Roy Flechner, + a few day later Christian Tapp as well). + [Sent to Ednotes.news] +v1.3 2006/06/27 affirmed \long's (were TODOs); simplified + \@EN@gobble@pause. + 2006/06/28 \@EN@robust@process refined; gobble \>\@nil etc.; + \@EN@sphack@aux. + 2006/06/29 \ifLemmaTag -> \IfLemmaTag (-> doc.); + lemma@ellipsis -> ltag@ellipsis; \IfTypesetting; + \@EN@notelabel@cmd, \@EN@pause@ltag, \@EN@pause@aux. + 2006/07/05 \SelectAnoteRule etc. supporting + manyfoot's \SelectFootnoteRule. + 2006/07/06 \includeonly just with \@addtoreset{@ckpt}; + diff --git a/Master/texmf-dist/tpm/ednotes.tpm b/Master/texmf-dist/tpm/ednotes.tpm index f552725c89c..2531a96d866 100644 --- a/Master/texmf-dist/tpm/ednotes.tpm +++ b/Master/texmf-dist/tpm/ednotes.tpm @@ -3,7 +3,7 @@ ednotes Package - 2006/06/26 19:21:00 + 2006/07/09 18:38:00 rahtz Typeset scholarly edition. @@ -14,9 +14,9 @@ including support for line numbers and layers of footnotes. [description copied from TeX Catalogue] Uwe Lueck - 637288 + 636863 - + texmf-dist/tex/latex/ednotes/edcntwd0.sty texmf-dist/tex/latex/ednotes/ednotes.sty texmf-dist/tex/latex/ednotes/lblchng1.sty @@ -24,7 +24,7 @@ texmf-dist/tex/latex/ednotes/mfparptc.sty texmf-dist/tex/latex/ednotes/mfparxsp.sty texmf-dist/tpm/ednotes.tpm - + texmf-dist/doc/latex/ednotes/CHANGES.txt texmf-dist/doc/latex/ednotes/README.txt texmf-dist/doc/latex/ednotes/README4U.txt @@ -32,6 +32,7 @@ texmf-dist/doc/latex/ednotes/ednotes.pdf texmf-dist/doc/latex/ednotes/ednotes.tex texmf-dist/doc/latex/ednotes/ednotugb.pdf texmf-dist/doc/latex/ednotes/emathtst.tex +texmf-dist/doc/latex/ednotes/varnrule.tex texmf-dist/doc/latex/ednotes/visible.txt Package/ednotes -- cgit v1.2.3