[latex3-commits] [latex3/tagpdf] develop: add support for tagging sockets (8b14f3a)
github at latex-project.org
github at latex-project.org
Mon Dec 18 00:15:46 CET 2023
Repository : https://github.com/latex3/tagpdf
On branch : develop
Link : https://github.com/latex3/tagpdf/commit/8b14f3aa712c29eebedd66ee09f0c5e146cb9c6d
>---------------------------------------------------------------
commit 8b14f3aa712c29eebedd66ee09f0c5e146cb9c6d
Author: Ulrike Fischer <fischer at troubleshooting-tex.de>
Date: Mon Dec 18 00:15:46 2023 +0100
add support for tagging sockets
>---------------------------------------------------------------
8b14f3aa712c29eebedd66ee09f0c5e146cb9c6d
tagpdf-user.dtx | 95 +++++++++++++++++++++++++++++++++++---
tagpdf.dtx | 23 +++++----
testfiles-pdftex/ptagging-001b.tlg | 1 -
testfiles-pdftex/ptagging-002.tlg | 1 -
testfiles-pdftex/ptagging-003.tlg | 1 -
testfiles-pdftex/ptagging-004.tlg | 1 -
testfiles-pdftex/ptagging-005.tlg | 1 -
testfiles-pdftex/ptagging-006.tlg | 1 -
testfiles-pdftex/socket-1.lvt | 11 +++++
testfiles-pdftex/socket-1.tlg | 45 ++++++++++++++++++
testfiles-pdftex/socket-2.lvt | 16 +++++++
testfiles-pdftex/socket-2.tlg | 93 +++++++++++++++++++++++++++++++++++++
12 files changed, 268 insertions(+), 21 deletions(-)
diff --git a/tagpdf-user.dtx b/tagpdf-user.dtx
index ff4d325..bbfccf7 100644
--- a/tagpdf-user.dtx
+++ b/tagpdf-user.dtx
@@ -346,7 +346,91 @@
% \end{macrocode}
% \end{macro}
%
+% \section{Socket support}
+% The next \LaTeX{} will use special sockets for the tagging.
%
+% These sockets will use names starting
+% with \texttt{tagsupport/}. Usually, these sockets have exactly two
+% plugs defined: \texttt{noop} (when no tagging is requested or
+% tagging is not wanted for some reason) and
+% a second plug that enables the tagging. There
+% may be more, e.g., tagging with special debugging, etc., but right
+% now it is usually just on or off.
+%
+% Given that we sometimes have to suspend tagging, it would be fairly
+% inefficient to put different plugs into these sockets whenever that
+% happens. We therefore offer \cs{UseTaggingSocket} which is like
+% \cs{UseSocket} except that the socket name is specified without
+% \texttt{tagsupport/}, i.e.,
+% \begin{quote}
+% \verb=\UseTaggingSocket{foo}= $\to$
+% \verb=\UseSocket{tagsupport/foo}=
+% \end{quote}
+% Beside being slightly shorter, the big advantage is that this way
+% we can change \cs{UseTaggingSocket} to do nothing by switching a boolean
+% instead of changing the plugs of the tagging support sockets back and forth.
+%
+% It is possible to use the tagging support sockets with
+% \cs{UseSocket} directly, but in this case the socket remains active
+% if e.g. \cs{SuspendTagging} is in force. There may be reasons for doing
+% that but in general we expect to always use \cs{UseTaggingSocket}.
+%
+% The L3 programming layer versions \cs{tag_socket_use:n} and
+% \cs{tag_socket_use:nn} are slightly more efficient than
+% \cs{UseTaggingSocket} because they do not have to determine how
+% many arguments the socket takes when disabling it.
+%
+% Until we can be sure that the kernel defines the commands we provide them before
+% redefining them:
+% \begin{macrocode}
+%<*base>
+\providecommand\tag_socket_use:n[1]{}
+\providecommand\tag_socket_use:nn[2]{}
+\providecommand\UseTaggingSocket[1]{}
+%</base>
+% \end{macrocode}
+%
+% \begin{macro}{\tag_socket_use:n,\tag_socket_use:nn,\UseTaggingSocket}
+% \begin{macrocode}
+%<*package>
+\cs_set_protected:Npn \tag_socket_use:n #1
+ {
+ \bool_if:NT \l_@@_active_socket_bool
+ { \UseSocket {tagsupport/#1} }
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_set_protected:Npn \tag_socket_use:nn #1#2
+ {
+ \bool_if:NT \l_@@_active_socket_bool
+ { \UseSocket {tagsupport/#1} {#2} }
+ }
+% \end{macrocode}
+%
+% \begin{macrocode}
+\cs_set_protected:Npn \UseTaggingSocket #1
+ {
+ \bool_if:NTF \l_@@_active_socket_bool
+ { \UseSocket{tagsupport/#1} }
+ {
+ \int_case:nnF
+ { \int_use:c { c__socket_tagsupport/#1_args_int } }
+ {
+ 0 \prg_do_nothing:
+ 1 \use_none:n
+ 2 \use_none:nn
+% \end{macrocode}
+% We do not expect tagging sockets with more than one or two
+% arguments, so for now we only provide those.
+% \begin{macrocode}
+ }
+ \ERRORusetaggingsocket
+ }
+ }
+%</package>
+% \end{macrocode}
+% \end{macro}
%
% \section{Debugging}
% \begin{macro}{\ShowTagging}
@@ -556,16 +640,11 @@
% This part should be regularly revisited to check if the code should go to a
% better place or can be improved.
%
-% \subsection{new ref system}
-% Until l3ref is in the kernel, we provide a definition for \cs{newlabeldata} in
-% the aux-file to avoid errors if a document switches between tagging and non-tagging.
% \begin{macrocode}
-%<base>\AddToHook{begindocument}
-%<base> {\immediate\write\@mainaux{\string\providecommand\string\newlabeldata[2]{}}}
%<*package>
% \end{macrocode}
% \subsection{Document structure}
-% \begin{macro}{\g_@@_root_default_tl,activate (setup-key)}
+% \begin{macro}{\g_@@_root_default_tl,activate (setup-key),activate-socket (setup-key)}
% \begin{macrocode}
\tl_new:N\g_@@_root_default_tl
\tl_gset:Nn\g_@@_root_default_tl {Document}
@@ -575,10 +654,11 @@
\keys_define:nn { @@ / setup}
{
+ activate-socket .bool_set:N = \l_@@_active_socket_bool,
activate .code:n =
{
\keys_set:nn { @@ / setup }
- { activate-mc,activate-tree,activate-struct }
+ { activate-mc,activate-tree,activate-struct,activate-socket }
\tl_gset:Nn\g_@@_root_default_tl {#1}
},
activate .default:n = Document
@@ -586,6 +666,7 @@
% \end{macrocode}
% \end{macro}
+%
% \subsection{Structure destinations}
% In TeXlive 2022 pdftex and luatex will offer support for structure destinations.
% The pdfmanagement has already backend support. We activate them if the
diff --git a/tagpdf.dtx b/tagpdf.dtx
index 80146b0..2110578 100644
--- a/tagpdf.dtx
+++ b/tagpdf.dtx
@@ -37,7 +37,9 @@
% \tag_stop:, \tag_start:,
% \tagstop, \tagstart }
% We need commands to stop tagging in some places.
-% They simply switches the two local booleans.
+% They switches three local booleans and also stop the counting
+% of paragraphs. If they are nested an inner \cs{tag_start:} will not
+% restart tagging.
% \end{function}
%
% \begin{function}{\tag_stop:n, \tag_start:n }%
@@ -45,9 +47,8 @@
% \cs{tag_stop:n}\Arg{label}
% \cs{tag_start:n}\Arg{label}\\
% \end{syntax}
-% This commands are intended as a pair. The start command
-% will only restart tagging if the previous stop command
-% with the same label actually stopped tagging.
+% The commands with argument allow to give a label. This is only used
+% in debugging messages to allow to follow the nesting.
% \end{function}
%
% \begin{function}{activate-space (setup-key)}
@@ -280,7 +281,7 @@
% }
% These booleans should help to control the global behaviour of tagpdf.
% Ideally it should more or less do nothing if all are false.
-% The space-boolean controles the interword space code,
+% The space-boolean controls the interword space code,
% the mc-boolean activates \cs{tag_mc_begin:n},
% the tree-boolean activates writing the finish code and the pdfmanagement related
% commands, the struct-boolean activates the storing of the structure data.
@@ -305,7 +306,8 @@
% \begin{variable}
% {
% \l_@@_active_mc_bool,
-% \l_@@_active_struct_bool
+% \l_@@_active_struct_bool,
+% \l_@@_active_socket_bool
% }
% These booleans should help to control the \emph{local} behaviour of tagpdf.
% In some cases it could e.g. be necessary to stop tagging completely.
@@ -316,6 +318,7 @@
\bool_set_true:N \l_@@_active_mc_bool
\bool_new:N \l_@@_active_struct_bool
\bool_set_true:N \l_@@_active_struct_bool
+\bool_new:N \l_@@_active_socket_bool
% \end{macrocode}
% \end{variable}
%
@@ -465,7 +468,7 @@
% \tag_stop:,\tag_start:,
% \tag_stop:n,\tag_start:n}
% We need commands to stop tagging in some places.
-% This simply switches the two local booleans.
+% They switch local booleans and also stop the counting of paragraphs.
% The commands keep track of the nesting with a local
% counter. Tagging only is only restarted at the outer level,
% if the current level is 1.
@@ -491,6 +494,7 @@
\int_incr:N \l_@@_tag_stop_int
\bool_set_false:N \l_@@_active_struct_bool
\bool_set_false:N \l_@@_active_mc_bool
+ \bool_set_false:N \l_@@_active_socket_bool
\@@_stop_para_ints:
}
\cs_set_protected:Npn \tag_start:
@@ -500,6 +504,7 @@
{
\bool_set_true:N \l_@@_active_struct_bool
\bool_set_true:N \l_@@_active_mc_bool
+ \bool_set_true:N \l_@@_active_socket_bool
\@@_start_para_ints:
}
%<debug> \msg_note:nnx {tag / debug }{tag-start}{ \int_use:N \l_@@_tag_stop_int }
@@ -514,6 +519,7 @@
\int_incr:N \l_@@_tag_stop_int
\bool_set_false:N \l_@@_active_struct_bool
\bool_set_false:N \l_@@_active_mc_bool
+ \bool_set_false:N \l_@@_active_socket_bool
\@@_stop_para_ints:
}
\cs_set_protected:Npn \tag_start:n #1
@@ -523,6 +529,7 @@
{
\bool_set_true:N \l_@@_active_struct_bool
\bool_set_true:N \l_@@_active_mc_bool
+ \bool_set_true:N \l_@@_active_socket_bool
\@@_start_para_ints:
}
%<debug> \msg_note:nnxx {tag / debug }{tag-start}{ \int_use:N \l_@@_tag_stop_int }{#1}
@@ -551,7 +558,7 @@
% activate-tree (setup-key),
% activate-struct (setup-key),
% activate-all (setup-key),
-% no-struct-dest (setup-key)
+% no-struct-dest (setup-key),
% }
% Keys to (globally) activate tagging.
% |activate-space| activates the additional parsing needed for
diff --git a/testfiles-pdftex/ptagging-001b.tlg b/testfiles-pdftex/ptagging-001b.tlg
index a15a415..a1a0fe8 100644
--- a/testfiles-pdftex/ptagging-001b.tlg
+++ b/testfiles-pdftex/ptagging-001b.tlg
@@ -2,7 +2,6 @@ This is a generated file for the l3build validation system.
Don't change this file in any respect.
-------- ptagging-001b.aux (start) ---------
(ptagging-001b.aux) \relax^^M
-\providecommand\newlabeldata[2]{}^^M
\new at label@record{mcid-2}{{tagabspage}{1}{tagmcabs}{2}{tagmcid}{0}}^^M
\new at label@record{mcid-7}{{tagabspage}{2}{tagmcabs}{7}{tagmcid}{0}}^^M
\new at label@record{mcid-8}{{tagabspage}{2}{tagmcabs}{8}{tagmcid}{1}}^^M
diff --git a/testfiles-pdftex/ptagging-002.tlg b/testfiles-pdftex/ptagging-002.tlg
index 4d79580..e9de770 100644
--- a/testfiles-pdftex/ptagging-002.tlg
+++ b/testfiles-pdftex/ptagging-002.tlg
@@ -2,7 +2,6 @@ This is a generated file for the l3build validation system.
Don't change this file in any respect.
-------- ptagging-002.aux (start) ---------
(ptagging-002.aux) \relax^^M
-\providecommand\newlabeldata[2]{}^^M
\new at label@record{mcid-2}{{tagabspage}{1}{tagmcabs}{2}{tagmcid}{0}}^^M
\new at label@record{mcid-5}{{tagabspage}{1}{tagmcabs}{5}{tagmcid}{1}}^^M
\new at label@record{mcid-8}{{tagabspage}{1}{tagmcabs}{8}{tagmcid}{2}}^^M
diff --git a/testfiles-pdftex/ptagging-003.tlg b/testfiles-pdftex/ptagging-003.tlg
index a2dce9a..09470cb 100644
--- a/testfiles-pdftex/ptagging-003.tlg
+++ b/testfiles-pdftex/ptagging-003.tlg
@@ -2,7 +2,6 @@ This is a generated file for the l3build validation system.
Don't change this file in any respect.
-------- ptagging-003.aux (start) ---------
(ptagging-003.aux) \relax^^M
-\providecommand\newlabeldata[2]{}^^M
\new at label@record{mcid-2}{{tagabspage}{1}{tagmcabs}{2}{tagmcid}{0}}^^M
\new at label@record{mcid-5}{{tagabspage}{1}{tagmcabs}{5}{tagmcid}{1}}^^M
\new at label@record{mcid-6}{{tagabspage}{1}{tagmcabs}{6}{tagmcid}{2}}^^M
diff --git a/testfiles-pdftex/ptagging-004.tlg b/testfiles-pdftex/ptagging-004.tlg
index 6986bda..3157876 100644
--- a/testfiles-pdftex/ptagging-004.tlg
+++ b/testfiles-pdftex/ptagging-004.tlg
@@ -2,7 +2,6 @@ This is a generated file for the l3build validation system.
Don't change this file in any respect.
-------- ptagging-004.aux (start) ---------
(ptagging-004.aux) \relax^^M
-\providecommand\newlabeldata[2]{}^^M
\new at label@record{mcid-2}{{tagabspage}{1}{tagmcabs}{2}{tagmcid}{0}}^^M
\new at label@record{mcid-3}{{tagabspage}{1}{tagmcabs}{3}{tagmcid}{1}}^^M
\new at label@record{mcid-6}{{tagabspage}{1}{tagmcabs}{6}{tagmcid}{2}}^^M
diff --git a/testfiles-pdftex/ptagging-005.tlg b/testfiles-pdftex/ptagging-005.tlg
index 80708c6..bd1b214 100644
--- a/testfiles-pdftex/ptagging-005.tlg
+++ b/testfiles-pdftex/ptagging-005.tlg
@@ -2,7 +2,6 @@ This is a generated file for the l3build validation system.
Don't change this file in any respect.
-------- ptagging-005.aux (start) ---------
(ptagging-005.aux) \relax^^M
-\providecommand\newlabeldata[2]{}^^M
\new at label@record{mcid-2}{{tagabspage}{1}{tagmcabs}{2}{tagmcid}{0}}^^M
\@writefile{toc}{\contentsline {section}{\numberline {1}Section}{1}{}\protected at file@percent }^^M
\new at label@record{mcid-5}{{tagabspage}{1}{tagmcabs}{5}{tagmcid}{1}}^^M
diff --git a/testfiles-pdftex/ptagging-006.tlg b/testfiles-pdftex/ptagging-006.tlg
index 8d5be91..2cbf6d9 100644
--- a/testfiles-pdftex/ptagging-006.tlg
+++ b/testfiles-pdftex/ptagging-006.tlg
@@ -2,7 +2,6 @@ This is a generated file for the l3build validation system.
Don't change this file in any respect.
-------- ptagging-006.aux (start) ---------
(ptagging-006.aux) \relax^^M
-\providecommand\newlabeldata[2]{}^^M
\new at label@record{mcid-2}{{tagabspage}{1}{tagmcabs}{2}{tagmcid}{0}}^^M
\new at label@record{mcid-5}{{tagabspage}{1}{tagmcabs}{5}{tagmcid}{1}}^^M
\new at label@record{mcid-25}{{tagabspage}{2}{tagmcabs}{25}{tagmcid}{0}}^^M
diff --git a/testfiles-pdftex/socket-1.lvt b/testfiles-pdftex/socket-1.lvt
new file mode 100644
index 0000000..f665701
--- /dev/null
+++ b/testfiles-pdftex/socket-1.lvt
@@ -0,0 +1,11 @@
+\ExplSyntaxOn
+\debug_on:n { check-declarations , deprecation }
+\ExplSyntaxOff
+\input{regression-test}
+\DocumentMetadata{}
+\documentclass{article}
+\begin{document}
+\START \showoutput \NewSocket{tagsupport/blub}{0}
+\NewSocketPlug{tagsupport/blub}{test}{hallo}
+\AssignSocketPlug{tagsupport/blub}{test} test\UseTaggingSocket{blub}
+\end{document}
diff --git a/testfiles-pdftex/socket-1.tlg b/testfiles-pdftex/socket-1.tlg
new file mode 100644
index 0000000..efacbfd
--- /dev/null
+++ b/testfiles-pdftex/socket-1.tlg
@@ -0,0 +1,45 @@
+This is a generated file for the l3build validation system.
+Don't change this file in any respect.
+Completed box being shipped out [1]
+\vbox(633.0+0.0)x407.0
+.\hbox(0.0+0.0)x0.0
+..\kern -72.26999
+..\vbox(0.0+0.0)x0.0, glue set 72.26999fil
+...\kern -72.26999
+...\hbox(0.0+0.0)x0.0
+....\glue 0.0 plus 1.0fil minus 1.0fil
+...\glue 0.0 plus 1.0fil minus 1.0fil
+.\glue 16.0
+.\vbox(617.0+0.0)x345.0, shifted 62.0
+..\vbox(12.0+0.0)x345.0, glue set 12.0fil
+...\glue 0.0 plus 1.0fil
+...\hbox(0.0+0.0)x345.0
+....\hbox(0.0+0.0)x345.0
+..\glue 25.0
+..\glue(\lineskip) 0.0
+..\vbox(550.0+0.0)x345.0, glue set 539.94232fil
+...\write-{}
+...\glue(\topskip) 3.84921
+...\hbox(6.15079+0.0)x345.0, glue set 313.83331fil
+....\hbox(0.0+0.0)x15.0
+....\OT1/cmr/m/n/10 t
+....\OT1/cmr/m/n/10 e
+....\OT1/cmr/m/n/10 s
+....\OT1/cmr/m/n/10 t
+....\penalty 10000
+....\glue(\parfillskip) 0.0 plus 1.0fil
+....\glue(\rightskip) 0.0
+...\glue 0.0 plus 1.0fil
+...\glue 0.0
+...\glue 0.0 plus 0.0001fil
+..\glue(\baselineskip) 23.55556
+..\hbox(6.44444+0.0)x345.0
+...\hbox(6.44444+0.0)x345.0, glue set 170.0fil
+....\glue 0.0 plus 1.0fil
+....\OT1/cmr/m/n/10 1
+....\glue 0.0 plus 1.0fil
+.\kern 0.0
+.\kern -633.0
+.\hbox(0.0+0.0)x0.0
+.\kern 633.0
+(socket-1.aux)
diff --git a/testfiles-pdftex/socket-2.lvt b/testfiles-pdftex/socket-2.lvt
new file mode 100644
index 0000000..45d6626
--- /dev/null
+++ b/testfiles-pdftex/socket-2.lvt
@@ -0,0 +1,16 @@
+\ExplSyntaxOn
+\debug_on:n { check-declarations , deprecation }
+\ExplSyntaxOff
+\input{regression-test}
+\DocumentMetadata{testphase=phase-III}
+\documentclass{article}
+\begin{document}
+\START \showoutput \NewSocket{tagsupport/blub}{0}
+\NewSocketPlug{tagsupport/blub}{test}{hallo}
+\AssignSocketPlug{tagsupport/blub}{test}
+
+test\UseTaggingSocket{blub} %
+out \tagstop \UseTaggingSocket{blub} %
+on \tagstart \UseTaggingSocket{blub}
+
+\end{document}
diff --git a/testfiles-pdftex/socket-2.tlg b/testfiles-pdftex/socket-2.tlg
new file mode 100644
index 0000000..a9c5581
--- /dev/null
+++ b/testfiles-pdftex/socket-2.tlg
@@ -0,0 +1,93 @@
+This is a generated file for the l3build validation system.
+Don't change this file in any respect.
+Completed box being shipped out [1]
+\vbox(633.0+0.0)x407.0
+.\hbox(0.0+0.0)x0.0
+..\kern -72.26999
+..\vbox(0.0+0.0)x0.0, glue set 72.26999fil
+...\kern -72.26999
+...\hbox(0.0+0.0)x0.0
+....\glue 0.0 plus 1.0fil minus 1.0fil
+...\glue 0.0 plus 1.0fil minus 1.0fil
+.\glue 16.0
+.\vbox(617.0+0.0)x345.0, shifted 62.0
+..\vbox(12.0+0.0)x345.0, glue set 12.0fil
+...\glue 0.0 plus 1.0fil
+...\pdfrunninglinkoff
+...\pdfliteral page{/Artifact BMC}
+...\marks4{b-,2,-1,}
+...\marks4{b+,2,-1,}
+...\hbox(0.0+0.0)x345.0
+....\hbox(0.0+0.0)x345.0
+...\pdfliteral page{EMC}
+...\marks4{e-,2,1,}
+...\marks4{e+,2,1,}
+...\pdfrunninglinkon
+..\glue 25.0
+..\glue(\lineskip) 0.0
+..\vbox(550.0+0.0)x345.0, glue set 539.94232fil
+...\hbox(0.0+0.0)x0.0
+...\pdfinterwordspaceon
+...\write-{}
+...\glue(\topskip) 3.05556
+...\hbox(6.94444+0.0)x345.0, glue set 233.27757fil
+....\write1{\new at label@record{mcid-1}{{tagabspage}{\__property_code_tagabspage: }{tagmcabs}{1}{tagmcid}{\__property_code_tagmcid: }}}
+....\pdfliteral shipout page{/text <</MCID \flag_height:n {__tag/mcid}\flag_raise:n {__tag/mcid} >> BDC}
+....\hbox(0.0+0.0)x15.0
+....\OT1/cmr/m/n/10 t
+....\OT1/cmr/m/n/10 e
+....\OT1/cmr/m/n/10 s
+....\OT1/cmr/m/n/10 t
+....\OT1/cmr/m/n/10 h
+....\OT1/cmr/m/n/10 a
+....\OT1/cmr/m/n/10 l
+....\OT1/cmr/m/n/10 l
+....\OT1/cmr/m/n/10 o
+....\glue 3.33333 plus 1.66666 minus 1.11111
+....\OT1/cmr/m/n/10 o
+....\OT1/cmr/m/n/10 u
+....\OT1/cmr/m/n/10 t
+....\glue 3.33333 plus 1.66666 minus 1.11111
+....\glue 3.33333 plus 1.66666 minus 1.11111
+....\OT1/cmr/m/n/10 o
+....\OT1/cmr/m/n/10 n
+....\glue 3.33333 plus 1.66666 minus 1.11111
+....\OT1/cmr/m/n/10 h
+....\OT1/cmr/m/n/10 a
+....\OT1/cmr/m/n/10 l
+....\OT1/cmr/m/n/10 l
+....\OT1/cmr/m/n/10 o
+....\pdfliteral page{EMC}
+....\penalty 10000
+....\glue(\parfillskip) 0.0 plus 1.0fil
+....\glue(\rightskip) 0.0
+...\marks4{b-,1,5,text,,,}
+...\marks4{b+,1,5,text,,,}
+...\marks4{e-,1,5,}
+...\marks4{e+,1,5,}
+...\glue 0.0 plus 1.0fil
+...\glue 0.0 plus -1.0fil
+...\kern 0.0
+...\hbox(0.0+0.0)x0.0
+...\glue 0.0 plus 1.0fil
+...\glue 0.0
+...\glue 0.0 plus 0.0001fil
+..\pdfrunninglinkoff
+..\pdfliteral page{/Artifact BMC}
+..\marks4{b-,3,-1,}
+..\marks4{b+,3,-1,}
+..\glue(\baselineskip) 23.55556
+..\hbox(6.44444+0.0)x345.0
+...\hbox(6.44444+0.0)x345.0, glue set 170.0fil
+....\glue 0.0 plus 1.0fil
+....\OT1/cmr/m/n/10 1
+....\glue 0.0 plus 1.0fil
+..\pdfliteral page{EMC}
+..\marks4{e-,3,1,}
+..\marks4{e+,3,1,}
+..\pdfrunninglinkon
+.\kern 0.0
+.\kern -633.0
+.\hbox(0.0+0.0)x0.0
+.\kern 633.0
+(socket-2.aux)
More information about the latex3-commits
mailing list.