From 5d2a62474003ed4be6e2e0600db3ef31e93f7706 Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 16 Mar 2022 21:02:08 +0000 Subject: latex-lab-dev (16mar22) (branch) git-svn-id: svn://tug.org/texlive/branches/branch2021.final@62743 c570f23f-e606-0410-a88d-b1316a301751 --- .../texmf-dist/doc/latex-dev/latex-lab/README.md | 10 +- .../texmf-dist/doc/latex-dev/latex-lab/changes.txt | 6 + .../latex-lab/documentmetadata-support-code.pdf | Bin 511324 -> 511154 bytes .../latex-lab/documentmetadata-support-doc.pdf | Bin 375470 -> 375201 bytes .../latex-dev/latex-lab/latex-lab-footnotes.pdf | Bin 0 -> 614456 bytes .../doc/latex-dev/latex-lab/latex-lab-new-or.pdf | Bin 0 -> 528960 bytes .../latex-dev/latex-lab/latex-lab-prototype.pdf | Bin 0 -> 525128 bytes .../latex-dev/latex-lab/latex-lab-testphase.pdf | Bin 304289 -> 291005 bytes .../latex-dev/latex-lab/usage-of-footnotemark.txt | 186 +++++ .../latex-dev/latex-lab/usage-of-footnotetext.txt | 842 +++++++++++++++++++++ .../doc/latex-dev/latex-lab/usage-of-kern-kern.txt | 80 ++ 11 files changed, 1123 insertions(+), 1 deletion(-) create mode 100644 Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-footnotes.pdf create mode 100644 Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-new-or.pdf create mode 100644 Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-prototype.pdf create mode 100644 Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotemark.txt create mode 100644 Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotetext.txt create mode 100644 Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-kern-kern.txt (limited to 'Master/texmf-dist/doc') diff --git a/Master/texmf-dist/doc/latex-dev/latex-lab/README.md b/Master/texmf-dist/doc/latex-dev/latex-lab/README.md index 3d71aa821c7..39f7f74d696 100644 --- a/Master/texmf-dist/doc/latex-dev/latex-lab/README.md +++ b/Master/texmf-dist/doc/latex-dev/latex-lab/README.md @@ -1,5 +1,9 @@ # LaTeX laboratory +Release 2022-06-01 pre-release 2 + +## Overview + This bundle holds optional files that are loaded in certain situations by kernel code (if available). For example, the new (as of 2021/12) `\DocumentMetadata` command in the kernel loads a file from here holding @@ -20,6 +24,10 @@ to documents already using the new functionality. ### Support for `\DocumentMetadata` +### New output routine code (under development) + + - so far there is a first implementation of footnote support + ## License @@ -30,5 +38,5 @@ The license is LPPL 1.3c. This README file is -Copyright (C) 2021 +Copyright (C) 2021-2022 The LaTeX Project diff --git a/Master/texmf-dist/doc/latex-dev/latex-lab/changes.txt b/Master/texmf-dist/doc/latex-dev/latex-lab/changes.txt index 9551d74b797..e146c5a0fbe 100644 --- a/Master/texmf-dist/doc/latex-dev/latex-lab/changes.txt +++ b/Master/texmf-dist/doc/latex-dev/latex-lab/changes.txt @@ -1,3 +1,9 @@ +2022-03-08 Joseph Wright + + * latex-lab-prototype.dtx + New file re-implementing ideas from on xtemplate.dtx using updated + keyval support + 2021-12-30 Ulrike Fischer * documentmeta-support.dtx: diff --git a/Master/texmf-dist/doc/latex-dev/latex-lab/documentmetadata-support-code.pdf b/Master/texmf-dist/doc/latex-dev/latex-lab/documentmetadata-support-code.pdf index 674a5b97318..0f698d80809 100644 Binary files a/Master/texmf-dist/doc/latex-dev/latex-lab/documentmetadata-support-code.pdf and b/Master/texmf-dist/doc/latex-dev/latex-lab/documentmetadata-support-code.pdf differ diff --git a/Master/texmf-dist/doc/latex-dev/latex-lab/documentmetadata-support-doc.pdf b/Master/texmf-dist/doc/latex-dev/latex-lab/documentmetadata-support-doc.pdf index b7a32c69047..b2eeed8d7ed 100644 Binary files a/Master/texmf-dist/doc/latex-dev/latex-lab/documentmetadata-support-doc.pdf and b/Master/texmf-dist/doc/latex-dev/latex-lab/documentmetadata-support-doc.pdf differ diff --git a/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-footnotes.pdf b/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-footnotes.pdf new file mode 100644 index 00000000000..8d905d055bf Binary files /dev/null and b/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-footnotes.pdf differ diff --git a/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-new-or.pdf b/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-new-or.pdf new file mode 100644 index 00000000000..3d7c9318a16 Binary files /dev/null and b/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-new-or.pdf differ diff --git a/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-prototype.pdf b/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-prototype.pdf new file mode 100644 index 00000000000..06e1e123d69 Binary files /dev/null and b/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-prototype.pdf differ diff --git a/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-testphase.pdf b/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-testphase.pdf index bd2644efb41..4aa0d75725b 100644 Binary files a/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-testphase.pdf and b/Master/texmf-dist/doc/latex-dev/latex-lab/latex-lab-testphase.pdf differ diff --git a/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotemark.txt b/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotemark.txt new file mode 100644 index 00000000000..684a695faa1 --- /dev/null +++ b/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotemark.txt @@ -0,0 +1,186 @@ +% packages that alter \@footnotemark ... + + +% bibarts + +\let\ba@footnmark=\@footnotemark +\def\@footnotemark{\ifhmode{\nobreak \hskip 0.04em plus 0.01em}\else\leavevmode\fi\ba@footnmark}% + + +% ./bxjscls/bxjsja-minimal.def + +\def\bxjs@cjk@loaded{% + \def\@footnotemark{% + \leavevmode + \ifhmode + \edef\@x@sf{\the\spacefactor}% + \ifdim\lastkern>\z@\ifdim\lastkern<5sp\relax + \unkern\unkern + \ifdim\lastskip>\z@ \unskip \fi + \fi\fi + \nobreak + \fi + \@makefnmark + \ifhmode \spacefactor\@x@sf \fi + \relax}% + \let\bxjs@cjk@loaded\relax +} + +% ./arabtex/afoot.sty + +\let \a@@footnotemark \@footnotemark + +\def \a@footnotemark {% inside Arabic environment +\iftrans \unskip \unskip \nobreak \@makefnmark \fi +\ifarab \a@spacefalse \putwordb@x \@makefnmark \a@spacetrue \fi } + +% ./hyperref/hyperref.sty + + \def\@footnotemark{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi + \stepcounter{Hfootnote}% + \global\let\Hy@saved@currentHref\@currentHref + \hyper@makecurrent{Hfootnote}% + \global\let\Hy@footnote@currentHref\@currentHref + \global\let\@currentHref\Hy@saved@currentHref + \hyper@linkstart{link}{\Hy@footnote@currentHref}% + \@makefnmark + \hyper@linkend + \ifhmode\spacefactor\@x@sf\fi + \relax + }% + + +% ./hypdvips/hypdvips.sty + + \def\@footnotemark{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi + \stepcounter{Hfootnote}% + \global\let\Hy@saved@currentHref\@currentHref + \hyper@makecurrent{Hfootnote}% + \global\let\Hy@footnote@currentHref\@currentHref + \global\let\@currentHref\Hy@saved@currentHref + \ifHy@draft% + \@makefnmark% + \else% + \pp@hyperfootnote% + \fi% + \ifhmode\spacefactor\@x@sf\fi + \relax + } + + \newcommand{\pp@hyperfootnote}{% + \ifx\pp@activerect\pp@true% + \@makefnmark% + \else% + \ifpp@smallfootnotes% + \let\pp@backup@@thefnmark\@thefnmark% + \renewcommand{\@thefnmark}{\pdf@rect{\pp@backup@@thefnmark}}% + \Hy@colorlink\@footnotecolor% + \@makefnmark% + \Hy@endcolorlink% + \pdfmark{% + pdfmark=/ANN,% + linktype=footnote,% + Subtype=/Link,% + AcroHighlight=\@pdfhighlight,% + Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% + Color=\@footnotebordercolor,% + Dest=\Hy@footnote@currentHref,% + Raw=H.B% + }% + \let\@thefnmark\pp@backup@@thefnmark% + \else% + \pdfmark[\@makefnmark]{% + pdfmark=/ANN,% + linktype=footnote,% + Subtype=/Link,% + AcroHighlight=\@pdfhighlight,% + Border=\@pdfborder,% + BorderStyle=\@pdfborderstyle,% + Color=\@footnotebordercolor,% + Dest=\Hy@footnote@currentHref% + }% + \fi% + \fi% + } + + +% ./memoir/memhfixc.sty + +\ifHy@hyperfootnotes + \def\@footnotemark{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}% + \m@mmf@check% <--- added + \nobreak\fi + \stepcounter{Hfootnote}% + \global\let\Hy@saved@currentHref\@currentHref + \hyper@makecurrent{Hfootnote}% + \global\let\Hy@footnote@currentHref\@currentHref + \global\let\@currentHref\Hy@saved@currentHref + \hyper@linkstart{link}{\Hy@footnote@currentHref}% + \@makefnmark + \hyper@linkend + \m@mmf@prepare% <--- added + \ifhmode\spacefactor\@x@sf\fi + \relax + }% +\fi + + +% caption3.sty + +% this is altering the top-level when inside a float + + +% ./koma-script/scrlttr2.cls + +\newcommand*{\scr@footnotemark}{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\FN@mf@check\nobreak\fi + \@makefnmark + \csname FN@mf@prepare\endcsname + \ifhmode\spacefactor\@x@sf\fi + \relax} + +% tested against this ... + +\newcommand*{\scr@saved@footnotemark}{% + \leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi + \@makefnmark + \ifhmode\spacefactor\@x@sf\fi + \relax} + + +% ./chextras/chextras.sty + +\ifstd@notes\else + \let\std@footnotemark\@footnotemark + \def\alt@footnotemark{\unskip\thinspace\std@footnotemark} + \let\@footnotemark\alt@footnotemark + +% footmisx.sty + + \newcommand*\@footmisxnotemark{% + \leavevmode + \ifhmode + \edef\@x@sf{\the\spacefactor}% + \FN@mf@check + \nobreak + \fi + \@footmicx@makefnmark + \ifFN@pp@towrite + \FN@pp@writetemp + \FN@pp@towritefalse + \fi + \FN@mf@prepare + \ifhmode\spacefactor\@x@sf\fi + \relax + } + + diff --git a/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotetext.txt b/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotetext.txt new file mode 100644 index 00000000000..48a31728433 --- /dev/null +++ b/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-footnotetext.txt @@ -0,0 +1,842 @@ + +% ./bibarts/bibarts.sty + +\let\ba@footnotetext=\@footnotetext +\long\def\@footnotetext#1{\ba@footnotetext{% + \global\let\thisto@ba=-% + \global\let\thisti@ba=-% + \global\let\thisp@ba=-% + \global\let\thisvol@ba=-% + \global\let\thiss@ba=-% + \global\let\thisn@ba=-% + \global\let\pos@ba=0% + \kern 0.1em\nulskip@ba{\@footnotetrue\ignorespaces + #1\nulskip@ba\ba@textmode}\global\let\lastto@ba=\thisto@ba + \global\let\lastti@ba=\thisti@ba + \global\let\lastp@ba=\thisp@ba + \global\let\lastvol@ba=\thisvol@ba + \global\let\lasts@ba=\thiss@ba + \global\let\lastn@ba=\thisn@ba}}% + + +% ./fnbreak/fnbreak.sty + + \let\fnb@orig@footnotetext\@footnotetext + \long\def\@footnotetext#1{\fnb@orig@footnotetext{\fnb@fnstart#1\fnb@fnend}}% + + +% ./revtex4-1/revtex4-1.cls ./revtex/ltxutil.sty ./revtex/revtex4-2.cls ... + +\long\def\@footnotetext{% + \insert\footins\bgroup + \make@footnotetext +}% +\long\def\@mpfootnotetext{% + \minipagefootnote@pick + \make@footnotetext +}% +\long\def\make@footnotetext#1{% + \set@footnotefont + \set@footnotewidth + \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@\@mpfn\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1% + \@finalstrut\strutbox\vadjust{\vskip\z@skip}% + }% + \color@endgroup + \minipagefootnote@drop +}% + + +% ./nrc/nrc1.cls ./nrc/nrc2.cls + +% this is missing the \par at the end and \@currentcounter + +\long\def\@footnotetext#1{% + \insert\footins{% + \reset@font\smallt + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox + }% + \color@endgroup + }% +}% + +%------------------------------------- + +% ./bigfoot/bigfoot.sty + + \def\@footnotetext{\Footnotetextdefault{}}% + +%------------------------------------- + + +% ./uafthesis/uafthesis.cls + +% this is missing the \par at the end and \@currentcounter + +%% this little gem provides for single-spaced footnotes +\long\def\@footnotetext#1{\insert\footins{% + \ssp + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext + {\rule{\z@}{\footnotesep}\ignorespaces + #1\strut}}} + +%------------------------------------- + + + +% ./resphilosophica/resphilosophica.cls + +% I wonder if this \, is really intended below ... + +\long\def\@footnotetext#1{% + \insert\footins{% + \normalfont\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep \splitmaxdepth \dp\strutbox + \floatingpenalty\@MM \hsize\columnwidth + \@parboxrestore \parindent\normalparindent \sloppy + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \@makefntext{% + \,\rule\z@\footnotesep\ignorespaces#1\unskip\strut\par}}} + +%------------------------------------- + + + +% ./setspace/setspace.sty + +% this is missing the \par at the end and \@currentcounter + +\long\def\@footnotetext#1{% + \insert\footins{% +% GT: Next line added. Hook desired here! + \def\baselinestretch {\setspace@singlespace}% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth + \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}} + +%------------------------------------- + + + +% ./linguex/linguex.sty + + +\let\predefinedfootnotetext=\@footnotetext +\long\def\@footnotetext#1{\@noftnotefalse\predefinedfootnotetext{#1}% + \@noftnotetrue} + + +%------------------------------------- + + +% ./fnpara/fnpara.sty + +\long\def\@footnotetext#1{\insert\footins{% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \setbox0=\hbox{% + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox + \penalty -10 + \hskip\footglue + }% + }% + \dp0=0pt \ht0=\fudgefactor\wd0 \box0 + \color@endgroup}} + +%------------------------------------- + + +% ./footmisc/footmisc.sty (para option) + +% this is missing the \par at the end and \@currentcounter + + \long\def\FN@footnotetext#1{% + \insert\footins{% + \ifFN@setspace + \let\baselinestretch\FN@baselinestretch + \fi + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox + \floatingpenalty\@MM + \hsize\columnwidth + \@parboxrestore + \protected@edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \setbox\FN@tempboxa\hbox{% + \@makefntext{\ignorespaces#1\strut + \penalty-10\relax + \hskip\footglue + }% end of \@makefntext parameter + }% end of \hbox + \dp\FN@tempboxa\z@ + \ht\FN@tempboxa\dimexpr\wd\FN@tempboxa *% + \footnotebaselineskip / \columnwidth\relax + \box\FN@tempboxa + \color@endgroup + }% + \FN@mf@prepare + } + +%------------------------------------- + + +% ./footmisc/footmisc.sty (normal) + +% this is missing the \par at the end and \@currentcounter + + \long\def\FN@footnotetext#1{% + \insert\footins{% + \ifFN@setspace + \let\baselinestretch\FN@baselinestretch + \fi + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox + \floatingpenalty\@MM + \hsize\columnwidth + \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep + \ignorespaces#1\@finalstrut\strutbox + }% + \color@endgroup + }% + \FN@mf@prepare + }% + + + +%------------------------------------- + + +% ./footmisc/footmisc.sty (side option) + + \long\def\FN@footnotetext#1{% + \marginpar{% + \ifFN@setspace + \let\baselinestretch\FN@baselinestretch + \fi + \reset@font\footnotesize + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \ignorespaces#1% + }% + \color@endgroup + }% + \FN@mf@prepare + }% + + + +%------------------------------------- + + + +% ./bxjscls/bxjsarticle.cls ./bxjscls/bxjsbook.cls ... + +\long\def\@footnotetext{% + \insert\footins\bgroup + \normalfont\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces}% + \futurelet\jsc@next\jsc@fo@t} +\def\jsc@fo@t{\ifcat\bgroup\noexpand\jsc@next \let\jsc@next\jsc@f@@t + \else \let\jsc@next\jsc@f@t\fi \jsc@next} +\def\jsc@f@@t{\bgroup\aftergroup\jsc@@foot\let\jsc@next} +\def\jsc@f@t#1{#1\jsc@@foot} +\def\jsc@@foot{\@finalstrut\strutbox\color@endgroup\egroup + \ifx\pltx@foot@penalty\@undefined\else + \ifhmode\null\fi + \ifnum\pltx@foot@penalty=\z@\else + \penalty\pltx@foot@penalty + \pltx@foot@penalty\z@ + \fi + \fi} + + +not covered so far supports \footnote{ catcode changes ...} but also +\foonote A --- the latter is questionable I would say + + +%------------------------------------- + + +% ./fn2end/fn2end.sty + +obsolete I guess, ignored in evaluation + + +%------------------------------------- + + +% ./hyperref/hyperref.sty + + \long\def\@footnotetext#1{% + \H@@footnotetext{% + \ifHy@nesting + \expandafter\ltx@firstoftwo + \else + \expandafter\ltx@secondoftwo + \fi + {% + \expandafter\hyper@@anchor\expandafter{% + \Hy@footnote@currentHref + }{\ignorespaces #1}% + }{% + \Hy@raisedlink{% + \expandafter\hyper@@anchor\expandafter{% + \Hy@footnote@currentHref + }{\relax}% + }% + \let\@currentHref\Hy@footnote@currentHref + \let\@currentlabelname\@empty + \ignorespaces #1% + }% + }% + }% + + +Handling of anchors (in nested context) I guess. This needs to be +married with the anchor setting that the tagging currently does and +the latter improved/adjusted + + +%------------------------------------- + +% ./biblatex-gb7714-2015/gb7714-2015ms.bbx ./biblatex-gb7714-2015/gb7714-2015mx.bbx ... + + \long\def\@footnotetext##1{\insert\footins{% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \leftskip \footbibmargin%增加的左侧缩进 + \@makefntext{% + \rule\z@\footnotesep\ignorespaces##1\@finalstrut\strutbox% + }% + \color@endgroup}}% + +fits the structure +%------------------------------------- + + +% ./amscls/amsbook.cls ./amscls/amsproc.cls ./amscls/amsart.cls ... + +\long\def\@footnotetext#1{% + \insert\footins{% + \normalfont\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep \splitmaxdepth \dp\strutbox + \floatingpenalty\@MM \hsize\columnwidth + \@parboxrestore \parindent\normalparindent \sloppy + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\unskip\strut\par}}} + +fits the structure +%------------------------------------- + + +% ./umich-thesis/umich-thesis.cls + +% change LaTeX's footnotes to get vertical spacing correct +\skip\footins \baselinestretch2\skip\footins +\long\def\@footnotetext#1{% + \insert\footins{% + \def\baselinestretch {\setspace@singlespace}% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth + \@parboxrestore + \vskip 1.2\baselineskip + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}} + +fits the structure +%------------------------------------- + + +% ./nostarch/nostarch.cls + +\long\def\@footnotetext#1{\insert\footins{% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@{13.5pt}\ignorespaces#1}% + \color@endgroup}}% + +fixed \footsep, probably very old +fits the structure +%------------------------------------- + + + +% ./coursepaper/coursepaper.cls + +\long\def\@footnotetext#1{% + \insert\footins{% + \def\baselinestretch {1}% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth + \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}} + +fits the structure +%------------------------------------- + + + +% ./ucthesis/ucthesis.cls + +% Single-space footnotes. +\long\def\@footnotetext#1{\insert\footins{\ssp\reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext + {\rule{\z@}{\footnotesep}\ignorespaces + #1\strut}}} + +fits the structure +%------------------------------------- + + + +% ./jura/jura.cls + +\long\def\@footnotetext#1{\insert\footins{% + \linespread{\J@FootnoteSpread}\reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}}% + +fits the structure +%------------------------------------- + + +% ./asaetr/asaesub.sty + +2.09 + +%------------------------------------- + + +% ./lineno/fnlineno.sty + +%% |\FNLN@@text| stores the `\@footnotetext' found, +%% we might check if it is `\FNLN@ltx@fntext' ... %% TODO +\let\FNLN@@text\@footnotetext +\def\@footnotetext{% + \ifLineNumbers \expandafter \FNLN@text + \else \expandafter \FNLN@@text + \fi} + + +\def \FNLN@text {% %% 2010/12/31 arg read later + \vadjust{\penalty-\FNLN@M@swap@codepen}% +%% Standard \LaTeX's `\@footnotetext' expands `\@thefnmark' +%% to produce the footnote mark at the page bottom, +%% right after it has been determined for the mark +%% in the main text. \emph{Here} the footnote text +%% will be typeset only when \emph{other} footnote marks +%% may have been formed for typesetting the main text +%% paragraph before. +%% %%% (TODO clearer wording) +%% In the \strong{footnote list} +%% macro |\FNLN@list|, the (\dqtd{`&\protect'ed}) +%% \emph{current} expansion of `\@thefnmark' +%% is stored as an item preceding the footnote text +%% . One footnote entry in `\FNLN@list' +%% thus has the form \lq`\@lt\@lt'\rq. +%% \LaTeX's internal `\g@addto@macro' is used to \emph{append} +%% an entry to the list (at the right). The OTR will later +%% take the entries from the left of the list. +%% +%% The argument of the auxiliary/temporary `\@tempa' +%% will contain the footnote text and thus must be able to +%% carry `\par' tokens. We therefore need a `\long' version of +%% `\protected@edef': + \let\@@protect\protect + \let\protect\@unexpandable@protect + \afterassignment\restore@protect + \long \edef \@tempa ##1{% + \noexpand\g@addto@macro \noexpand\FNLN@list {% + \@thefnmark \noexpand\@lt ##1\noexpand \@lt}}% +%% ... issuing +%% \lq`\g@addto@macro\FNLN@list{\elt\@lt}'\rq\ ... + \@tempa %% reads arg +} +%% Here we initialize |\FNLN@list|: +\let\FNLN@list\@empty + + + +probably continues working but needs separate checking + +%------------------------------------- + + + +% ./jurabib/jurabib.sty + + \long\def\@footnotetext#1{% + \Orig@tabularx@footnotetext{% + \jb@fntrue + #1% + \setcounter{jb@cites@in@footnote}{0}% + }% + }% + + \let\jbsaved@footnotetext\@footnotetext + \long\def\@footnotetext#1{% + \begingroup + \jb@fntrue + \jbsaved@footnotetext{#1}% + \setcounter{jb@cites@in@footnote}{0}% + \endgroup + }% + + +first is table notes, second +fits the structure +%------------------------------------- + + + +% ./york-thesis/york-thesis.cls + +\long\def\@footnotetext#1{% + \insert\footins{% + \def\baselinestretch {1}% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth + \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark}% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}} + +fits the structure +%------------------------------------- + + +% ./ucdavisthesis/ucdavisthesis.cls + +\long\def\@footnotetext#1{\insert\footins{\renewcommand\baselinestretch{1} + \footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}\@makefntext + {\rule{\z@}{\footnotesep}\ignorespaces + #1\strut}\renewcommand\baselinestretch{\@spacing}}} + +looks old ... +fits the structure +%------------------------------------- + + +% ./ledmac/afoot.sty + +fairly old and buggy in some aspects + +%%% Make the LaTeX \cs{footnote} catcode-safe, like in Plain TeX. + +\def \@footnotetext {% new, do not yet read footnote text + \insert \footins \bgroup + \ifx \footglue \undefined % prepare normal footnote + \interlinepenalty \interfootnotelinepenalty \floatingpenalty \@MM + \splittopskip \footnotesep \splitmaxdepth \dp \strutbox + \else + \global\long\def \@makefntext ##1{{$^{\@thefnmark }$}##1\nobreak }% + \setbox0=\hbox \bgroup % fnpara.sty is present + \floatingpenalty=20000 \footnotesize + \fi + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}% + \a@fntext } + + +%------------------------------------- + + +% ./toptesi/toptesi.sty + + +\long\def\@footnotetext#1{\insert\footins{\linespread{1}\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}% + \@makefntext{\rule{\z@}{\footnotesep}\ignorespaces#1\strut}}} + + +fits the structure +%------------------------------------- + + +% ./gb4e/gb4e.sty + +\let\@gbsaved@footnotetext=\@footnotetext +\long\def\@footnotetext#1{% + \@noftnotefalse\setcounter{fnx}{0}% + \@gbsaved@footnotetext{#1}% + \@noftnotetrue} + +fits the structure +%------------------------------------- + + + +% ./koma-script/scrlttr2.cls ./koma-script/scrextend.sty ./koma-script/scrreprt.cls ... + +same bug as footmisc: the @prepare is in the wrong place + +fits the structure +%------------------------------------- + + + +% ./tabu/tabu.sty + +not checked what that does + + +%------------------------------------- + + +% ./uwthesis/uwthesis.cls + +does chapter notes -- ignore for now + +%------------------------------------- + + +% ./tools/multicol.sty + +\long\def\mult@footnotetext#1{\begingroup + \columnwidth\textwidth + \orig@footnotetext{#1}\endgroup} + + +fits the structure, but need to think what makes sense here as this a +temporary redefinition for the environment only + +%------------------------------------- + + +% ./fancyvrb/fancyvrb.sty + +\long\def\V@footnotetext{% + \afterassignment\V@@footnotetext + \let\@tempa} +\def\V@@footnotetext{% + \insert\footins\bgroup + \csname reset@font\endcsname + \footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth\dp\strutbox + \floatingpenalty \@MM + \hsize\columnwidth + \@parboxrestore + \def\@currentcounter{footnote}% + \edef\@currentlabel{\csname p@footnote\endcsname\@thefnmark}% + \@makefntext{}% + \rule{\z@}{\footnotesep}% + \bgroup + \aftergroup\V@@@footnotetext + \ignorespaces} +\def\V@@@footnotetext{\strut\egroup} + + +another one of the footnote commands that do not read they argument as an argument + +%------------------------------------- + + +% ./savefnmark/savefnmark.sty + +obsolete + +%------------------------------------- + + +% ./changebar/changebar.sty + +\let\ltx@footnotetext\@footnotetext +\long\def\cb@footnotetext#1{% + \cb@trace@stack{end footnote on page \the\c@page}% + \cb@pop\cb@currentstack + \ifnum\cb@topleft=\cb@nil + \ltx@footnotetext{#1}% + \else + \cb@push\cb@currentstack + \edef\cb@temp{\the\cb@curbarwd}% + \ltx@footnotetext{\cb@start[\cb@temp]#1\cb@end}% + \fi} +\let\@footnotetext\cb@footnotetext + + +% ./eledmac/eledmac.sty + +\apptocmd{\@footnotetext}{\m@mmf@prepare}{}{} +\pretocmd{\@footnotetext}{% + \ifnumberedpar@ + \edtext{}{\l@dbfnote{#1}}% + \else + }{}{} +\apptocmd{\@footnotetext}{\fi}{}{}% + + +% ./yafoot/dblfnote.sty + +\long\def\dfn@footnotetext#1{{\setbox\dfn@boxa\vbox{ + \let\insert\dfn@gobble + \columnwidth\DFNcolumnwidth \hbadness\c@DFNsloppiness + \def\@makefnmark{\smash{\dfn@makefnmark}} + \dfn@latex@footnotetext{#1}\par \boxmaxdepth\dfn@fnmaxdp}% + \dfn@dima\ht\dfn@boxa \advance\dfn@dima\dp\dfn@boxa + \ifdim\dfn@dima>\z@\else + \dfn@dima1sp\relax + \setbox\dfn@boxa\vbox{\vbox to1sp{\unvbox\dfn@boxa\vfil}}\fi + \global\setbox\dfn@ins\vbox{\boxmaxdepth\dfn@fnmaxdp + \ifvoid\dfn@ins\else + \unvbox\dfn@ins \allowbreak \nointerlineskip \fi + \ifdfn@allowcbreak \unvbox \else \box \fi \dfn@boxa}% + \setbox\dfn@boxa\copy\dfn@ins + \dfn@split{.5\ht\dfn@boxa}\dfn@boxa\dfn@boxb\dfn@fnmaxdp\footnotesep + \advance\@tempdima\@tempdimb \@tempdimb\@tempdima + \advance\@tempdima-\dfn@fnht \global\dfn@fnht\@tempdimb + \insert\footins{\floatingpenalty\@MM \vbox to\@tempdima{}}% + \xdef\dfn@list{\dfn@list\@elt{\number\dfn@dima}{\number\@tempdima}}}} +\let\dfn@latex@footnotetext\@footnotetext +\let\@footnotetext\dfn@footnotetext + + +% ./ftnxtra/ftnxtra.sty + +not checked what this does + + +% ./acmart/acmart.cls + +\if@ACM@sigchiamode +\long\def\@footnotetext#1{\marginpar{% + \reset@font\small + \interlinepenalty\interfootnotelinepenalty + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% + \color@endgroup}}% +\fi + + +% ./memoir/memoir.cls + + this needs some further analysis + diff --git a/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-kern-kern.txt b/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-kern-kern.txt new file mode 100644 index 00000000000..e119197b708 --- /dev/null +++ b/Master/texmf-dist/doc/latex-dev/latex-lab/usage-of-kern-kern.txt @@ -0,0 +1,80 @@ + + \ifdim\lastkern>\z@\ifdim\lastkern<5sp\relax +./bxjscls/bxjsja-minimal.def + + + + \ifdim\lastkern=-3sp \unkern + \ifdim\lastkern=3sp \kern-3sp + {\kern\MT@outer@kern\kern3sp\kern-3sp\relax}% +./microtype/letterspace.sty + + + \ifdim\lastkern=-3sp \unkern + \ifdim\lastkern=3sp \kern-3sp + {\kern\MT@outer@kern\kern3sp\kern-3sp\relax}% +./microtype/microtype-pdftex.def + + + \ifdim\lastkern=-3sp \unkern + \ifdim\lastkern=3sp \kern-3sp + {\kern\MT@outer@kern\kern3sp\kern-3sp\relax}% +./microtype/microtype-luatex.def + + + +\providecommand*{\multiplefootnotemarker}{3sp} +./eledmac/eledmac.sty + + + +\providecommand*{\multiplefootnotemarker}{3sp} +./reledmac/reledmac.sty + + +\edef\CJK@kern{\kern -2sp\kern 2sp} +\edef\CJK@CJK{\kern -1sp\kern 1sp} +./cjk/texinput/CJK.sty + + +\edef\ruby@kern{\kern -5sp\kern 5sp} +./cjk/texinput/ruby.sty + + +% hyphenation between pinyin syllables. Values 1sp-3sp are already used +\edef\py@sp{\kern -4sp\kern 4sp} +./cjk/texinput/pinyin.sty + + +\providecommand*{\multiplefootnotemarker}{3sp} +./tufte-latex/tufte-common.def + + + +\newcommand*{\multiplefootnotemarker}{3sp} +./memoir/memoir.cls + + +\providecommand*{\multiplefootnotemarker}{3sp} +./parnotes/parnotes.sty + + +\providecommand*{\multiplefootnotemarker}{3sp} +./lwarp/lwarp-footmisc.sty + + + \bgroup \kern-3sp\kern3sp % kerns so I can test for beginning of list +./examdesign/examdesign.cls + + + \kern-1sp \kern1sp } + \kern-2sp \kern2sp } + \kern-3sp \kern3sp } + \kern-4sp \kern4sp } +./polyglossia/gloss-korean.ldf + + + +\NewDocumentCommand \@sidenotes@multisign { } {3sp} +./sidenotes/sidenotes.sty + -- cgit v1.2.3