[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.