[latex3-commits] [git/LaTeX3-latex3-latex2e] gh444: Another attempt at #444 (0ae344f5)

Frank Mittelbach frank.mittelbach at latex-project.org
Tue Dec 22 14:36:16 CET 2020


Repository : https://github.com/latex3/latex2e
On branch  : gh444
Link       : https://github.com/latex3/latex2e/commit/0ae344f5e570d5579f2ab26d1d8d4152d4b7a56c

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

commit 0ae344f5e570d5579f2ab26d1d8d4152d4b7a56c
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date:   Tue Dec 22 14:36:16 2020 +0100

    Another attempt at #444


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

0ae344f5e570d5579f2ab26d1d8d4152d4b7a56c
 base/changes.txt               |  25 ++++----
 base/ltfssaxes.dtx             | 133 +++++++++++++++++++++++++++++++++-----
 base/ltfsstrc.dtx              | 101 +++++++++++++++++++++++------
 base/testfiles/github-0444.lvt |  23 ++++++-
 base/testfiles/github-0444.tlg | 142 +++++++++++++++++++++++++----------------
 5 files changed, 319 insertions(+), 105 deletions(-)

diff --git a/base/changes.txt b/base/changes.txt
index e205561a..f1da7746 100644
--- a/base/changes.txt
+++ b/base/changes.txt
@@ -6,6 +6,18 @@ completeness or accuracy and it contains some references to files that
 are not part of the distribution.
 ================================================================================
 
+2020-12-22  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltfssaxes.dtx (subsection{Changing to a new series}):
+	Distangle series and shape update by delaying the font series
+	and font shape merging (gh/444)
+
+2020-12-22  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
+
+	* ltfsstrc.dtx (subsection{General font loading}):
+	Alter \selectfont to do the delayed merging of  font series
+	and font shape (gh/444)
+
 2020-12-04  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
 
 	* ltfilehook.dtx (subsection{Declaring a file substitution}):
@@ -13,23 +25,14 @@ are not part of the distribution.
 	just render them no-ops
 
 2020-12-04  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
-
-	* ltfinal.dtx (subsection{File substitutions}):
-	Emulate everysel package
-
-2020-12-04  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
-
-	* ltfsstrc.dtx (subsection{General font loading}):
 	Add a hook to \selectfont to be executed after the switch to the
 	new font. This implements the functionality formerly in the everysel
 	package.
 
-	Provide hook in \selectfont (like everysel did in the past).
-
 2020-12-04  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
 
-	* ltfssaxes.dtx (subsection{Changing to a new series}):
-	Distangle series and shape update (gh/444)
+	* ltfinal.dtx (subsection{File substitutions}):
+	Emulate everysel package
 
 2020-12-04  Frank Mittelbach  <Frank.Mittelbach at latex-project.org>
 
diff --git a/base/ltfssaxes.dtx b/base/ltfssaxes.dtx
index 7eade29e..80d0231d 100644
--- a/base/ltfssaxes.dtx
+++ b/base/ltfssaxes.dtx
@@ -35,7 +35,7 @@
 %
 %
 \ProvidesFile{ltfssaxes.dtx}
-             [2020/12/06 v1.0h LaTeX Kernel (NFSS Axes handing)]
+             [2020/12/22 v1.0h LaTeX Kernel (NFSS Axes handing)]
 % \iffalse
 \documentclass{ltxdoc}
 \begin{document}
@@ -719,7 +719,7 @@
 %    \begin{macrocode}
 \DeclareRobustCommand\fontseries[1]{\@forced at seriesfalse
     \expandafter\def\expandafter\delayed at f@adjustment\expandafter
-        {\delayed at f@adjustment\merge at font@series{#1}}}
+        {\delayed at f@adjustment\delayed at merge@font at series{#1}}}
 %    \end{macrocode}
 %  \end{macro}
 %
@@ -838,11 +838,9 @@
 %    \end{macrocode}
 %    Otherwise we check if the desired result for the series
 %    (\texttt{\#1}) exists for the font family and the current shape.
-%    As the \texttt{.fd} is perhaps not loaded yet, we first
-%    have to do that, otherwise the test would fail even if the face
-%    is actually available.
+%    All this happens inside \cs{selectfont} which has already taken care to load
+%    the \texttt{.fd}, file if necessary.
 %    \begin{macrocode}
-    \maybe at load@fontshape
     \edef\reserved at a{\f at encoding /\f at family /#1/\f at shape}%
      \ifcsname \reserved at a \endcsname
 %    \end{macrocode}
@@ -878,9 +876,10 @@
 %    \end{macrocode}
 %    It is possible that the previous font and the new one are
 %    actually identical (and the font was not found because it still
-%    needs loading) in which case a warning  would look rather odd. So
-%    we make a quick check for that (which is the reason why we defined
-%    \cs{@reserveda} above.
+%    needs loading) in which case a warning would look rather odd. So
+%    we make a quick check for that (which is the reason why we
+%    defined \cs{@reserveda} above instead of doing inline testing
+%    inside \cs{ifcsname}).
 %    \begin{macrocode}
 \def\@font at shape@subst at warning{%
    \edef\reserved at b{\curr at fontshape}%
@@ -894,13 +893,71 @@
 %
 %
 %
+%  \begin{macro}{\merge at font@series at without@substitution,
+%                \merge at font@series at without@substitution@,
+%                \delayed at merge@font at series}
+%
+% \changes{v1.0h}{2020/12/22}{Distangle series and shape update (gh/444)}
+%
+%    \cs{merge at font@series at without@substitution} works like
+%    \cs{merge at font@series}, i.e., it looks up the combination in the
+%    rule base and if there exists an entry it uses it and if not it
+%    uses the new series value. However, it doesn't check if there is
+%    actually a font face with the new series value as
+%    \cs{merge at font@series} does. This simplified command is used in
+%    \cs{selectfont} at a point where other font attributes are not
+%    yet updated so that checking the font face might result incorrect
+%    in substitutions.
+%
+%    \begin{macrocode}
+\def\merge at font@series at without@substitution#1{%
+  \expandafter\expandafter\expandafter
+  \merge at font@series at without@substitution@
+    \csname series@\f at series @#1\endcsname
+    {#1}%
+    \@nil
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\def\merge at font@series at without@substitution@#1#2#3\@nil{%
+  \def\reserved at a{#3}%
+  \ifx\reserved at a\@empty
+    \set at target@series{#2}%
+  \else
+    \set at target@series{#1}%
+  \fi
+}
+%    \end{macrocode}
+%  \end{macro}
+%
+%
+%
+%  \begin{macro}{\delayed at merge@font at series}
+%
+%    When we delay the merge action in \cs{fontseries} we first
+%    attempt to use merging without substitution. If that results in a
+%    non-existing font face the merge is redone in \cs{selectfont}
+%    using a version with substitution. See \cs{selectfont} for details.
+%
+% \changes{v1.0h}{2020/12/22}{Distangle series and shape update
+%    (gh/444)}
+%    \begin{macrocode}
+\let\delayed at merge@font at series\merge at font@series at without@substitution
+%    \end{macrocode}
+%  \end{macro}
 %
 %  \begin{macro}{\maybe at load@fontshape}
 %    A small helper that we use a couple of times: try loading a
 %    fontshape (in a group because \cs{try at load@fontshape} normalizes
-%    catcodes).
+%    catcodes and we also want to change \cs{typeout} so that it
+%    doesn't report missing \texttt{.fd} files on the terminal).
 %    \begin{macrocode}
-\def\maybe at load@fontshape{\begingroup\try at load@fontshape\endgroup}
+\def\maybe at load@fontshape{%
+  \begingroup
+    \let \typeout \@font at info
+    \try at load@fontshape
+  \endgroup}
 %    \end{macrocode}
 %  \end{macro}
 %
@@ -1009,6 +1066,9 @@
 %<latexrelease>\let\merge at font@series\@undefined
 %<latexrelease>\let\merge at font@series@\@undefined
 %<latexrelease>\let\@font at shape@subst at warning\@undefined
+%<latexrelease>\let\merge at font@series at without@substitution\@undefined
+%<latexrelease>\let\merge at font@series at without@substitution@\@undefined
+%<latexrelease>\let\delayed at merge@font at series\@undefined
 %<latexrelease>\let\maybe at load@fontshape\@undefined
 %<latexrelease>\let\set at target@series\@undefined
 %<latexrelease>\let\series at maybe@drop at one@m\@undefined
@@ -1281,14 +1341,15 @@
 %    \begin{macrocode}
 \DeclareRobustCommand\fontshape[1]
    {\expandafter\def\expandafter\delayed at f@adjustment\expandafter
-        {\delayed at f@adjustment\merge at font@shape{#1}}}
+        {\delayed at f@adjustment\delayed at merge@font at shape{#1}}}
 %    \end{macrocode}
-% \changes{v1.0h}{2020/12/04}{Distangle series and shape update (gh/444)}
 %  \end{macro}
 %
 %
 %  \begin{macro}{\fontshapeforce}
 %    The unconditional version:
+%
+% \changes{v1.0h}{2020/12/04}{Distangle series and shape update (gh/444)}
 %    \begin{macrocode}
 \DeclareRobustCommand\fontshapeforce[1]
    {\expandafter\def\expandafter\delayed at f@adjustment\expandafter
@@ -1357,9 +1418,12 @@
   \ifx\reserved at a\@empty
     \edef\f at shape{#2}%
   \else
-    \maybe at load@fontshape
+%    \end{macrocode}
+%    \cs{reserved at a} is used in \cs{@font at shape@subst at warning} so we
+%    have to define it in addition to do the \cs{ifcsname} test
+%    \begin{macrocode}
     \edef\reserved at a{\f at encoding /\f at family /\f at series/#1}%
-     \ifcsname \reserved at a\endcsname
+    \ifcsname \reserved at a\endcsname
        \edef\f at shape{#1}%
     \else
        \ifcsname \f at encoding /\f at family /\f at series/#2\endcsname
@@ -1376,6 +1440,38 @@
 %  \end{macro}
 %
 %
+%  \begin{macro}{\merge at font@shape at without@substitution,
+%                \merge at font@shape at without@substitution@,
+%                \delayed at merge@font at shape}
+%    See definition of \cs{selectfont} for how these macros are used.
+% \changes{v1.0h}{2020/12/22}{Distangle series and shape update (gh/444)}
+%    \begin{macrocode}
+\def\merge at font@shape at without@substitution#1{%
+  \expandafter\expandafter\expandafter
+  \merge at font@shape at without@substitution@
+    \csname shape@\f at shape @#1\endcsname
+    {#1}%
+    \@nil
+}
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+\def\merge at font@shape at without@substitution@#1#2#3\@nil{%
+  \def\reserved at a{#3}%
+  \ifx\reserved at a\@empty
+    \edef\f at shape{#2}%
+  \else
+    \edef\f at shape{#1}%
+  \fi
+}
+%    \end{macrocode}
+%    
+%    \begin{macrocode}
+\let\delayed at merge@font at shape\merge at font@shape at without@substitution
+%    \end{macrocode}
+%  \end{macro}
+%
+%
 %
 %  \begin{macro}{\normalshape}
 %
@@ -1446,6 +1542,13 @@
 %<latexrelease>\DeclareRobustCommand\fontshape [1]{\edef\f at shape{#1}}
 %<latexrelease>\let\fontshapeforce\@undefined
 %<latexrelease>
+%<latexrelease>\let\merge at font@shape\@undefined
+%<latexrelease>\let\merge at font@shape@\@undefined
+%<latexrelease>
+%<latexrelease>\let\merge at font@shape at without@substitution\@undefined
+%<latexrelease>\let\merge at font@shape at without@substitution@\@undefined
+%<latexrelease>\let\delayed at merge@font at shape\@undefined
+%<latexrelease>
 %    \end{macrocode}
 %    This is always called in \cs{document} so don't make it undefined.
 %    \begin{macrocode}
diff --git a/base/ltfsstrc.dtx b/base/ltfsstrc.dtx
index 7db57d75..ac31e376 100644
--- a/base/ltfsstrc.dtx
+++ b/base/ltfsstrc.dtx
@@ -34,10 +34,10 @@
 %
 %<package>\NeedsTeXFormat{LaTeX2e}[2021/05/01]
 %<package>\ProvidesPackage{tracefnt}
-%<package>     [2020/12/03 v3.0m  Standard LaTeX package (font tracing)]
+%<package>     [2020/12/22 v3.0n  Standard LaTeX package (font tracing)]
 % \fi
 % \ProvidesFile{ltfsstrc.dtx}
-%              [2020/12/05 v3.0m LaTeX Kernel (NFSS tracing)]
+%              [2020/12/22 v3.0n LaTeX Kernel (NFSS tracing)]
 %
 % \iffalse
 %<+checkmem>\CHECKMEM
@@ -472,9 +472,58 @@
 %    or \cs{fontshape} are delayed in the order in which they appear,
 %    so that by switching them one can work around missing
 %    intermediate font faces and avoid substitutions.
-% \changes{v3.0m}{2020/12/03}{Execute delayed series and shape updates (gh/444)}
+%
+%    We first attempt to do the merge without any substitution. As we
+%    might end up with a non-existing font face we may have to restart
+%    and therefore save the current values of \cs{f at series} and
+%    \cs{f at shape} before the merge.
+%
+%    But first we make a quick test to see if there are any delayed
+%    actions, because if not it is pointless to make all the
+%    assignments and try loading a missing fontshape.
+%
+% \changes{v3.0n}{2020/12/22}{Execute delayed series and shape updates (gh/444)}
+%    \begin{macrocode}
+    \ifx\delayed at f@adjustment\@empty
+    \else
+      \let\f at shape@saved\f at shape
+      \let\f at series@saved\f at series      
+%    \end{macrocode}
+%    The we run the delayed adjustments (which is using the
+%    \cs{.. at without@substitution} commands
+%    \begin{macrocode}
+      \delayed at f@adjustment
+%    \end{macrocode}
+%    We then check if the resulting cominbation is valid but for this
+%    we have to make sure the the appropiate \texttt{.fd} is loaded if
+%    that hasn't happened so far.
+%    \begin{macrocode}
+      \maybe at load@fontshape
+      \ifcsname \f at encoding/\f at family/\f at series/\f at shape \endcsname
+%    \end{macrocode}
+%    If this macro is defined then we are good and no further action
+%    is necessary.
+%    
+%    Otherwise the combination is not valid, so we redo the merge but
+%    this time with substitutions.
 %    \begin{macrocode}
-    \delayed at f@adjustment  \let\delayed at f@adjustment\@empty
+      \else
+        \let\f at shape\f at shape@saved
+        \let\f at series\f at series@saved
+        \let\delayed at merge@font at shape\merge at font@shape
+        \let\delayed at merge@font at series\merge at font@series
+        \delayed at f@adjustment
+        \let\delayed at merge@font at shape\merge at font@shape at without@substitution
+        \let\delayed at merge@font at series\merge at font@series at without@substitution
+      \fi
+%    \end{macrocode}
+%    Now the series and shape values are updated and we clear
+%    \cs{delayed at f@adjustment}. This is important because on the next
+%    execution of \cs{selectfont} we should not mistakenly redo the
+%    delayed actions if there wasn't any series or shape change.
+%    \begin{macrocode}
+      \let\delayed at f@adjustment\@empty
+    \fi
 %    \end{macrocode}
 %    Then we generate the internal name of the font
 %    by concatenating {\em family}, {\em series},
@@ -556,23 +605,33 @@
 %<latexrelease>\EndIncludeInRelease
 %    \end{macrocode}
 %
-%    \begin{macrocode}
-%<latexrelease>\IncludeInRelease{0000/00/00}%
-%<latexrelease>                 {\selectfont}{Add hook to \string\selectfont}%
-%<latexrelease>
-%<latexrelease>\DeclareRobustCommand\selectfont
-%<latexrelease>   {%
-%<latexrelease>    \ifx\f at linespread\baselinestretch \else
-%<latexrelease>      \set at fontsize\baselinestretch\f at size\f at baselineskip \fi
-%<latexrelease>    \xdef\font at name{%
-%<latexrelease>      \csname\curr at fontshape/\f at size\endcsname}%
-%<latexrelease>    \pickup at font
-%<latexrelease>    \font at name
-%<latexrelease>    \size at update
-%<latexrelease>    \enc at update
-%<latexrelease>   }
-%<latexrelease>
-%<latexrelease>\EndIncludeInRelease
+%    With \cs{selectfont} having different definitions in different
+%    kernels we also have to provide them in the \texttt{tracefnt}
+%    package to support rollback. In packages that works a bit
+%    differently and therefore we have to provide an empty block there.   
+%    \begin{macrocode}
+%<package>\IncludeInRelease{2021/05/01}%
+%<package>                 {\selectfont}{Add hook to \string\selectfont}%
+%<package>\EndIncludeInRelease
+%    \end{macrocode}
+%
+%    \begin{macrocode}
+%<latexrelease|package>\IncludeInRelease{0000/00/00}%
+%<latexrelease|package>                 {\selectfont}{Add hook to \string\selectfont}%
+%<latexrelease|package>
+%<latexrelease|package>\DeclareRobustCommand\selectfont
+%<latexrelease|package>   {%
+%<latexrelease|package>    \ifx\f at linespread\baselinestretch \else
+%<latexrelease|package>      \set at fontsize\baselinestretch\f at size\f at baselineskip \fi
+%<latexrelease|package>    \xdef\font at name{%
+%<latexrelease|package>      \csname\curr at fontshape/\f at size\endcsname}%
+%<latexrelease|package>    \pickup at font
+%<latexrelease|package>    \font at name
+%<latexrelease|package>    \size at update
+%<latexrelease|package>    \enc at update
+%<latexrelease|package>   }
+%<latexrelease|package>
+%<latexrelease|package>\EndIncludeInRelease
 %    \end{macrocode}
 %    
 %
diff --git a/base/testfiles/github-0444.lvt b/base/testfiles/github-0444.lvt
index 897cb7f7..896464c5 100644
--- a/base/testfiles/github-0444.lvt
+++ b/base/testfiles/github-0444.lvt
@@ -45,15 +45,32 @@ Test
 \fontfamily{lmss}
 \fontseries{c}    % this one doesn't exist
 \fontseries{sb}
-\selectfont  semibold condensed? no!  
+\selectfont  semibold condensed? yes!  
 
-\typeout{Font is \the\font = T1/lms/bx/n/10 ? }  % because of substitution
+\typeout{Font is \the\font = T1/lms/sbc/n/10 ? } 
 
 \fontfamily{lmss}
 \fontseries{sb}    %this does
 \fontseries{c}     % and the combination too
-\selectfont  semibold condensed? this way yes
+\selectfont  semibold condensed? yes
 
 \typeout{Font is \the\font = T1/lms/sbc/n/10 ? }
 
+\fontfamily{lmr}
+\fontseries{m}
+\fontshape{sc}
+
+\selectfont roman small caps
+
+\typeout{Font is \the\font = T1/lmr/m/sc/10 ? }
+
+
+\fontfamily{lmtt}
+\fontseries{l}
+\fontshape{n}
+\selectfont  light type?
+
+\typeout{Font is \the\font = T1/lmtt/l/n/10 ? } 
+
+
 \end{document}
diff --git a/base/testfiles/github-0444.tlg b/base/testfiles/github-0444.tlg
index 178b4030..bd1ac1b2 100644
--- a/base/testfiles/github-0444.tlg
+++ b/base/testfiles/github-0444.tlg
@@ -3,12 +3,11 @@ Don't change this file in any respect.
 Font is \T1/lmr/l/n/10 = T1/lmr/l/n/10 ? 
 Font is \T1/lmr/m/scsl/10 = T1/lmr/m/scsl/10 ? 
 Font is \T1/lmr/m/n/10 = T1/lmr/m/n/10 ? 
-LaTeX Font Warning: Font shape `T1/lmss/c/n' undefined
-(Font)              using `T1/lmss/m/n' instead on input line ....
-LaTeX Font Info:    Font shape `T1/lmss/sb/n' in size <10> not available
-(Font)              Font shape `T1/lmss/bx/n' tried instead on input line ...
-Font is \T1/lmss/bx/n/10 = T1/lms/bx/n/10 ? 
 Font is \T1/lmss/sbc/n/10 = T1/lms/sbc/n/10 ? 
+Font is \T1/lmss/sbc/n/10 = T1/lms/sbc/n/10 ? 
+Font is \T1/lmr/m/sc/10 = T1/lmr/m/sc/10 ? 
+LaTeX Font Info:    Trying to load font information for T1+lmtt on input line ....
+Font is \T1/lmtt/l/n/10 = T1/lmtt/l/n/10 ? 
 Completed box being shipped out [1]
 \vbox(633.0+0.0)x407.0
 .\glue 16.0
@@ -18,7 +17,7 @@ Completed box being shipped out [1]
 ...\hbox(0.0+0.0)x345.0
 ..\glue 25.0
 ..\glue(\lineskip) 0.0
-..\vbox(550.0+0.0)x345.0, glue set 479.94873fil
+..\vbox(550.0+0.0)x345.0, glue set 455.9513fil
 ...\write-{}
 ...\glue(\topskip) 3.1128
 ...\hbox(6.8872+0.0)x345.0, glue set 311.33789fil
@@ -35,17 +34,17 @@ Completed box being shipped out [1]
 ...\glue(\baselineskip) 5.11125
 ...\hbox(6.88875+0.0)x345.0, glue set 266.85916fil
 ....\hbox(0.0+0.0)x15.0
-....\T1/lmr/l/n/10 S
-....\T1/lmr/l/n/10 m
-....\T1/lmr/l/n/10 a
-....\T1/lmr/l/n/10 l
-....\T1/lmr/l/n/10 l
+....\T1/lmr/m/sc/10 S
+....\T1/lmr/m/sc/10 m
+....\T1/lmr/m/sc/10 a
+....\T1/lmr/m/sc/10 l
+....\T1/lmr/m/sc/10 l
 ....\glue 3.77774 plus 1.75 minus 1.16666
-....\T1/lmr/l/n/10 C
-....\T1/lmr/l/n/10 a
-....\T1/lmr/l/n/10 p
-....\T1/lmr/l/n/10 s
-....\T1/lmr/l/n/10 ?
+....\T1/lmr/m/sc/10 C
+....\T1/lmr/m/sc/10 a
+....\T1/lmr/m/sc/10 p
+....\T1/lmr/m/sc/10 s
+....\T1/lmr/m/sc/10 ?
 ....\penalty 10000
 ....\glue(\parfillskip) 0.0 plus 1.0fil
 ....\glue(\rightskip) 0.0
@@ -93,38 +92,40 @@ Completed box being shipped out [1]
 ....\glue(\rightskip) 0.0
 ...\glue(\parskip) 0.0 plus 1.0
 ...\glue(\baselineskip) 5.0555
-...\hbox(6.9445+0.0)x345.0, glue set 214.06769fil
+...\hbox(6.9445+1.66666)x345.0, glue set 227.72858fil
 ....\hbox(0.0+0.0)x15.0
-....\T1/lmss/bx/n/10 s
-....\T1/lmss/bx/n/10 e
-....\T1/lmss/bx/n/10 m
-....\T1/lmss/bx/n/10 i
-....\T1/lmss/bx/n/10 b
-....\kern0.30556
-....\T1/lmss/bx/n/10 o
-....\T1/lmss/bx/n/10 l
-....\T1/lmss/bx/n/10 d
-....\glue 3.66666 plus 1.83331 minus 1.22223
-....\T1/lmss/bx/n/10 c
-....\T1/lmss/bx/n/10 o
-....\T1/lmss/bx/n/10 n
-....\T1/lmss/bx/n/10 d
-....\T1/lmss/bx/n/10 e
-....\T1/lmss/bx/n/10 n
-....\T1/lmss/bx/n/10 s
-....\T1/lmss/bx/n/10 e
-....\T1/lmss/bx/n/10 d
-....\T1/lmss/bx/n/10 ?
-....\glue 4.88889 plus 5.49994 minus 0.40741
-....\T1/lmss/bx/n/10 n
-....\T1/lmss/bx/n/10 o
-....\T1/lmss/bx/n/10 !
+....\T1/lmss/sbc/n/10 s
+....\T1/lmss/sbc/n/10 e
+....\T1/lmss/sbc/n/10 m
+....\T1/lmss/sbc/n/10 i
+....\T1/lmss/sbc/n/10 b
+....\kern0.26387
+....\T1/lmss/sbc/n/10 o
+....\T1/lmss/sbc/n/10 l
+....\T1/lmss/sbc/n/10 d
+....\glue 3.16667 plus 1.58333 minus 1.05554
+....\T1/lmss/sbc/n/10 c
+....\T1/lmss/sbc/n/10 o
+....\T1/lmss/sbc/n/10 n
+....\T1/lmss/sbc/n/10 d
+....\T1/lmss/sbc/n/10 e
+....\T1/lmss/sbc/n/10 n
+....\T1/lmss/sbc/n/10 s
+....\T1/lmss/sbc/n/10 e
+....\T1/lmss/sbc/n/10 d
+....\T1/lmss/sbc/n/10 ?
+....\glue 4.22221 plus 4.74998 minus 0.35184
+....\T1/lmss/sbc/n/10 y
+....\kern-0.26389
+....\T1/lmss/sbc/n/10 e
+....\T1/lmss/sbc/n/10 s
+....\T1/lmss/sbc/n/10 !
 ....\penalty 10000
 ....\glue(\parfillskip) 0.0 plus 1.0fil
 ....\glue(\rightskip) 0.0
 ...\glue(\parskip) 0.0 plus 1.0
-...\glue(\baselineskip) 5.0555
-...\hbox(6.9445+1.66666)x345.0, glue set 195.60065fil
+...\glue(\baselineskip) 3.38884
+...\hbox(6.9445+1.66666)x345.0, glue set 230.78407fil
 ....\hbox(0.0+0.0)x15.0
 ....\T1/lmss/sbc/n/10 s
 ....\T1/lmss/sbc/n/10 e
@@ -147,17 +148,6 @@ Completed box being shipped out [1]
 ....\T1/lmss/sbc/n/10 d
 ....\T1/lmss/sbc/n/10 ?
 ....\glue 4.22221 plus 4.74998 minus 0.35184
-....\T1/lmss/sbc/n/10 t
-....\T1/lmss/sbc/n/10 h
-....\T1/lmss/sbc/n/10 i
-....\T1/lmss/sbc/n/10 s
-....\glue 3.16667 plus 1.58333 minus 1.05554
-....\T1/lmss/sbc/n/10 w
-....\kern-0.26389
-....\T1/lmss/sbc/n/10 a
-....\kern-0.26389
-....\T1/lmss/sbc/n/10 y
-....\glue 3.16667 plus 1.58333 minus 1.05554
 ....\T1/lmss/sbc/n/10 y
 ....\kern-0.26389
 ....\T1/lmss/sbc/n/10 e
@@ -165,7 +155,49 @@ Completed box being shipped out [1]
 ....\penalty 10000
 ....\glue(\parfillskip) 0.0 plus 1.0fil
 ....\glue(\rightskip) 0.0
-...\glue -1.66666
+...\glue(\parskip) 0.0 plus 1.0
+...\glue(\baselineskip) 5.06386
+...\hbox(5.26949+0.0)x345.0, glue set 239.91269fil
+....\hbox(0.0+0.0)x15.0
+....\T1/lmr/m/sc/10 r
+....\kern-0.22223
+....\T1/lmr/m/sc/10 o
+....\T1/lmr/m/sc/10 m
+....\T1/lmr/m/sc/10 a
+....\T1/lmr/m/sc/10 n
+....\glue 3.77774 plus 1.75 minus 1.16666
+....\T1/lmr/m/sc/10 s
+....\T1/lmr/m/sc/10 m
+....\T1/lmr/m/sc/10 a
+....\T1/lmr/m/sc/10 l
+....\T1/lmr/m/sc/10 l
+....\glue 3.77774 plus 1.75 minus 1.16666
+....\T1/lmr/m/sc/10 c
+....\T1/lmr/m/sc/10 a
+....\T1/lmr/m/sc/10 p
+....\T1/lmr/m/sc/10 s
+....\penalty 10000
+....\glue(\parfillskip) 0.0 plus 1.0fil
+....\glue(\rightskip) 0.0
+...\glue(\parskip) 0.0 plus 1.0
+...\glue(\baselineskip) 6.01451
+...\hbox(5.98549+2.29738)x345.0, glue set 272.25017fil
+....\hbox(0.0+0.0)x15.0
+....\T1/lmtt/l/n/10 l
+....\T1/lmtt/l/n/10 i
+....\T1/lmtt/l/n/10 g
+....\T1/lmtt/l/n/10 h
+....\T1/lmtt/l/n/10 t
+....\glue 5.24998
+....\T1/lmtt/l/n/10 t
+....\T1/lmtt/l/n/10 y
+....\T1/lmtt/l/n/10 p
+....\T1/lmtt/l/n/10 e
+....\T1/lmtt/l/n/10 ?
+....\penalty 10000
+....\glue(\parfillskip) 0.0 plus 1.0fil
+....\glue(\rightskip) 0.0
+...\glue -2.29738
 ...\glue 0.0 plus 1.0fil
 ...\glue 0.0
 ...\glue 0.0 plus 0.0001fil





More information about the latex3-commits mailing list.