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