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