[latex3-commits] [latex3/latex2e] develop: minor doc updates (23c41897)

github at latex-project.org github at latex-project.org
Tue Mar 12 20:03:07 CET 2024


Repository : https://github.com/latex3/latex2e
On branch  : develop
Link       : https://github.com/latex3/latex2e/commit/23c41897f3a61575df2430a7e80985b90d056588

>---------------------------------------------------------------

commit 23c41897f3a61575df2430a7e80985b90d056588
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date:   Tue Mar 12 20:03:07 2024 +0100

    minor doc updates


>---------------------------------------------------------------

23c41897f3a61575df2430a7e80985b90d056588
 required/latex-lab/changes.txt                     |  6 ++
 required/latex-lab/latex-lab-footnotes.dtx         |  6 ++
 .../testfiles-OR-luatex/footmisc-014-hang.lvt      | 23 +++++
 .../testfiles-OR-luatex/footmisc-014-hang.tlg      | 98 ++++++++++++++++++++++
 4 files changed, 133 insertions(+)

diff --git a/required/latex-lab/changes.txt b/required/latex-lab/changes.txt
index c11feb8b..f51be8af 100644
--- a/required/latex-lab/changes.txt
+++ b/required/latex-lab/changes.txt
@@ -1,3 +1,9 @@
+2024-03-12  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* latex-lab-footnotes.dtx (section{Reimplementing the \pkg{footmisc} package}):
+	Typeset the footnote mark twice if the hang option is used. This means it can't
+	contain material that alter state, e.g., counters or labels.
+
 2024-03-11  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
 
 	* latex-lab-footnotes.dtx (subsection{Debugging sockets and hooks}):
diff --git a/required/latex-lab/latex-lab-footnotes.dtx b/required/latex-lab/latex-lab-footnotes.dtx
index f2244b3e..a3d044ab 100644
--- a/required/latex-lab/latex-lab-footnotes.dtx
+++ b/required/latex-lab/latex-lab-footnotes.dtx
@@ -2481,6 +2481,12 @@
         \@setpar{{\@@par}}%
         \ResumeTagging{footmisc}%
         \leavevmode
+%    \end{macrocode}
+%    Typesetting the mark twice means that one can't have any material
+%    inside that gets unhappy in that case. Tha shouldn't be a
+%    problem, but perhaps we have to come up with a more elaborate
+%    solution in the end.
+%    \begin{macrocode}
         \UseSocket{tagsupport/fntext/mark}%
                   {\llap{%
                     \ifdim\footnotemargin>\z@
diff --git a/required/latex-lab/testfiles-OR-luatex/footmisc-014-hang.lvt b/required/latex-lab/testfiles-OR-luatex/footmisc-014-hang.lvt
new file mode 100644
index 00000000..f2e4e059
--- /dev/null
+++ b/required/latex-lab/testfiles-OR-luatex/footmisc-014-hang.lvt
@@ -0,0 +1,23 @@
+% this should not produce a box error
+
+\DocumentMetadata{uncompress,testphase=phase-III}   
+
+\DebugFNotesOn
+
+\documentclass{article}
+
+\input{regression-test}
+
+
+\usepackage[hang]{footmisc}
+
+
+\begin{document}
+
+\START
+
+Test\footnote{A}\footnote{B}
+
+\newpage
+\OMIT
+\end{document}
diff --git a/required/latex-lab/testfiles-OR-luatex/footmisc-014-hang.tlg b/required/latex-lab/testfiles-OR-luatex/footmisc-014-hang.tlg
new file mode 100644
index 00000000..7e187dac
--- /dev/null
+++ b/required/latex-lab/testfiles-OR-luatex/footmisc-014-hang.tlg
@@ -0,0 +1,98 @@
+This is a generated file for the l3build validation system.
+Don't change this file in any respect.
+-> The hook 'fnmark/before':
+> The hook is empty.
+-> The hook 'fnmark':
+> The hook is empty.
+-> The hook 'fnmark/begin':
+> The hook is empty.
+-> The hook 'fnmark/end':
+> The hook is empty.
+-> The hook 'fnmark/after':
+> The hook is empty.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <7> on input line ....
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <5> on input line ....
+Socket fntext/process:
+    number of inputs = 1
+    available plugs = noop, identity, default, side, mp
+    current plug = default
+    definition = \protected\long macro:#1->\insert \footins {#1}
+Socket fntext/make:
+    number of inputs = 1
+    available plugs = noop, identity, default, para
+    current plug = default
+    definition = \protected\long macro:#1->\@makefntext {#1}
+Socket fntext/begin:
+    number of inputs = 0
+    available plugs = noop, default
+    current plug = default
+    definition = \protected\long macro:->\rule \z@ \footnotesep 
+Socket fntext/end:
+    number of inputs = 0
+    available plugs = noop, default, para
+    current plug = default
+    definition = \protected\long macro:->\@finalstrut \strutbox 
+Socket fntext/mark:
+    number of inputs = 0
+    available plugs = noop, default
+    current plug = default
+    definition = \protected\long macro:->\ifdim \footnotemargin >\z@ \hb at xt@ \footnotemargin {\hss \@makefnmark }\else \ifdim \footnotemargin =\z@ \llap {\@makefnmark }\else \ifdim \footnotemargin =-\maxdimen \@makefnmark \else \llap {\hb at xt@ -\footnotemargin {\@makefnmark \hss }}\fi \fi \fi 
+Socket fntext/text:
+    number of inputs = 1
+    available plugs = noop, identity
+    current plug = identity
+    definition = \protected\long macro:#1->#1
+Socket tagsupport/fnmark:
+    number of inputs = 1
+    available plugs = noop, identity, FEMark
+    current plug = FEMark
+    definition = \protected\long macro:#1->\tag_mc_end_push: \tag_struct_begin:n {tag=footnotemark}\bool_if:NTF \l__fnote_autodetect_bool {\fnote_mark_gput:oo {\@thefnmark }{\l_fnote_type_tl }\tl_set:Ne \l__fnote_linktarget_tl {footnote*.\tag_get:n {struct_num}}}{\hook_gput_code:nne {tagpdf/finish/before}{tagpdf/footnote}{\exp_not:N \fnote_gput_refs:ee {\tag_get:n {struct_num}}{\property_ref:ee {__fnote/\l__fnote_currentlabel_tl }{fnote/struct}}}\tl_set:Ne \l__fnote_linktarget_tl {footnote*.\property_ref:ee {__fnote/\l__fnote_currentlabel_tl }{fnote/struct}}}\tag_mc_begin:n {tag=Lbl}\bool_if:NTF \l_fnote_link_bool {\exp_args:No \hyper at linkstart {\l_fnote_link_type_tl }{\l__fnote_linktarget_tl }#1\hyper at linkend }{#1}\tag_mc_end: \tag_struct_end: \tag_mc_begin_pop:n {}
+Socket tagsupport/fntext/begin:
+    number of inputs = 0
+    available plugs = noop, FENote
+    current plug = FENote
+    definition = \protected\long macro:->\tag_mc_end_push: \tag_check_child:nnTF {FENote}{pdf2}{\tag_struct_begin:n {tag=footnote}}{\tag_struct_begin:n {tag=footnote,parent=\l__fnote_dflt_struct_tl }}\tl_set:Ne \l__fnote_currentstruct_tl {\tag_get:n {struct_num}}\tag_struct_begin:n {tag=footnotelabel}\tag_struct_end: \bool_if:NTF \l__fnote_autodetect_bool {\fnote_mark_gpop_all:ooN {\@thefnmark }{\l_fnote_type_tl }\l__fnote_currentrefs_seq \seq_map_inline:Nn \l__fnote_currentrefs_seq {\fnote_gput_refs:ee {##1}{\l__fnote_currentstruct_tl }}}{}
+Socket tagsupport/fntext/end:
+    number of inputs = 0
+    available plugs = noop, FENote
+    current plug = FENote
+    definition = \protected\long macro:->\tag_struct_end: \tag_mc_begin_pop:n {}
+Socket tagsupport/fntext/mark:
+    number of inputs = 1
+    available plugs = noop, identity, FENoteLbl
+    current plug = FENoteLbl
+    definition = \protected\long macro:#1->\tag_mc_end_push: \seq_map_inline:Nn \l__fnote_currentrefs_seq {\MakeLinkTarget *{footnote*.##1}}\MakeLinkTarget *{footnote*.\l__fnote_currentstruct_tl }\tag_struct_begin:n {tag=NonStruct,parent=\l__fnote_currentstruct_tl +1}\tag_mc_begin:n {tag=Lbl}#1\tag_mc_end: \tag_struct_end: \tag_mc_begin_pop:n {}
+Socket tagsupport/fntext/text:
+    number of inputs = 1
+    available plugs = noop, identity, FENotetext
+    current plug = FENotetext
+    definition = \protected\long macro:#1->\tag_mc_end_push: \tag_mc_begin:n {}#1\tag_mc_end: \tag_mc_begin_pop:n {}
+-> The hook 'fntext/before':
+> The hook is empty.
+-> The hook 'fntext':
+> The hook is empty.
+-> The hook 'fntext/para':
+> The hook is empty.
+-> The hook 'fntext/begin':
+> Code chunks:
+>     latex-lab-testphase-new-or-2 -> \cs_set_protected:Npn \__fnote_label_hook:e ##1{\property_record:ee {__fnote/##1}{fnote/struct}}
+> Document-level (top-level) code (executed last):
+>     ---
+> Extra code for next invocation:
+>     ---
+> Rules:
+>     ---
+> Execution order:
+>     latex-lab-testphase-new-or-2.
+-> The hook 'fntext/end':
+> The hook is empty.
+-> The hook 'fntext/after':
+> The hook is empty.
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <8> on input line ....
+LaTeX Font Info:    External font `cmex10' loaded for size
+(Font)              <6> on input line ....
+[1
+]





More information about the latex3-commits mailing list.