[latex3-commits] [git/LaTeX3-latex3-latex2e] nfssaxes: l3news31 updates (and \textnormalshape dropped) (fb61dd4c)
Frank Mittelbach
frank.mittelbach at latex-project.org
Wed Dec 18 16:23:27 CET 2019
Repository : https://github.com/latex3/latex2e
On branch : nfssaxes
Link : https://github.com/latex3/latex2e/commit/fb61dd4c4700bd64befe5fac5588d83bd03bb4e2
>---------------------------------------------------------------
commit fb61dd4c4700bd64befe5fac5588d83bd03bb4e2
Author: Frank Mittelbach <frank.mittelbach at latex-project.org>
Date: Wed Dec 18 16:23:27 2019 +0100
l3news31 updates (and \textnormalshape dropped)
>---------------------------------------------------------------
fb61dd4c4700bd64befe5fac5588d83bd03bb4e2
base/doc/ltnews31.tex | 43 ++++++++++++++++++++++++++++++++++++++-----
base/ltfntcmd.dtx | 3 ---
base/ltfssaxes.dtx | 4 ++--
base/ltfssbas.dtx | 2 +-
base/ltfssini.dtx | 13 ++++---------
5 files changed, 45 insertions(+), 20 deletions(-)
diff --git a/base/doc/ltnews31.tex b/base/doc/ltnews31.tex
index 96c040b0..30893ce7 100644
--- a/base/doc/ltnews31.tex
+++ b/base/doc/ltnews31.tex
@@ -192,10 +192,15 @@ this capability.
\emph{write}
-In TeXLive 2020 the Lua\LaTeX{} format will use the new LuaHB\TeX{} engine, which is Lua\TeX{} with an embedded HarfBuzz library.
-HarfBuzz can be used by setting a suitable renderer in the font declaration. An interface for that is provided by \pkg{fontspec}.
-This additional font renderer will greatly improve the shaping of various scripts, which are currently handled correctly only by \XeTeX{}.
-To simplify the testing of the new engine, binaries have been added to MiKTeX and TeXLive 2019 and both have changed the Lua\LaTeX-dev format to use it.
+In TeXLive 2020 the Lua\LaTeX{} format will use the new LuaHB\TeX{}
+engine, which is Lua\TeX{} with an embedded HarfBuzz library.
+HarfBuzz can be used by setting a suitable renderer in the font
+declaration. An interface for that is provided by \pkg{fontspec}.
+This additional font renderer will greatly improve the shaping of
+various scripts, which are currently handled correctly only by
+\XeTeX{}. To simplify the testing of the new engine, binaries have
+been added to MiKTeX and TeXLive 2019 and both have changed the
+Lua\LaTeX-dev format to use it.
\section{Improved load-times for \pkg{expl3}}
@@ -241,8 +246,36 @@ entirely, but to support older formats, this is still recommended at present.
\section{Emphasis handling generalized}
-\emph{write}
+With previous releases of \LaTeX{} nested \cs{emph} commands
+automatically alternated between italics and upright. This mechanism
+has now been generalized and you can now specify for arbitrary nesting
+levels how emphasis should be handled.
+The declaration \cs{DeclareEmphSequence} expects a comma separated
+list of font declarations corresponding to increasing levels of
+emphasis. For example,
+\begin{verbatim}
+ \DeclareEmphSequence{\itshape,%
+ \upshape\scshape,\itshape}
+\end{verbatim}
+uses italics for the first, small capitals for the second, and italic
+small capitals for the third level (provided you use a font that
+supports these shapes). If there are a more nesting levels than
+provided, \LaTeX{} uses the declarations stored in \cs{emreset} (by
+default \cs{ulcshape}\cs{upshape}) for the next level and then
+restarts the list.
+
+The mechanism tries to be \enquote{smart} and verifies that the given
+declarations actually alter the current font. If not it continues and
+tries the next level---the assumption being that there was already a
+manual font change in the document to the font that is now supposed to
+be used for emphasis.
+%
+Of course, this only works if the declarations in the list entries
+actually change the font and not, for example, just the color. In such
+a scenario one has to add \cs{emforce} to the entry which directs the
+mechanism to use the level, even if the font attributes appear to be
+unchanged.
diff --git a/base/ltfntcmd.dtx b/base/ltfntcmd.dtx
index ec86c577..443cd0a6 100644
--- a/base/ltfntcmd.dtx
+++ b/base/ltfntcmd.dtx
@@ -396,7 +396,6 @@
% \begin{macro}{textulc}
% \begin{macro}{textsw}
% \begin{macro}{textssc}
-% \begin{macro}{textnormalshape}
%
% \changes{v3.4c}{2019/12/17}{Macro added}
% \begin{macrocode}
@@ -407,7 +406,6 @@
\DeclareTextFontCommand{\textulc}{\ulcshape}
\DeclareTextFontCommand{\textsw}{\swshape}
\DeclareTextFontCommand{\textssc}{\sscshape}
-\DeclareTextFontCommand{\textnormalshape}{\normalshape}
%</2ekernel|latexrelease>
%<latexrelease>\EndIncludeInRelease
%<latexrelease>\IncludeInRelease{0000/00/00}%
@@ -416,7 +414,6 @@
%<latexrelease>\let\textulc\@undefined
%<latexrelease>\let\textsw\@undefined
%<latexrelease>\let\textssc\@undefined
-%<latexrelease>\let\textnormalshape\@undefined
%<latexrelease>\EndIncludeInRelease
%<*2ekernel>
% \end{macrocode}
diff --git a/base/ltfssaxes.dtx b/base/ltfssaxes.dtx
index bfca785e..225cf649 100644
--- a/base/ltfssaxes.dtx
+++ b/base/ltfssaxes.dtx
@@ -868,8 +868,8 @@
% resets everything and \texttt{up} changes italic or slanted to
% upright and \texttt{ulc} undoes small caps.
%
-% So we now offer
-% \cs{normalshape} and \cs{textnormalshape}.
+% So we now offer \cs{normalshape} (using \cs{shapedefault} which is normally the same as
+% calling both \cs{ulcshape} and \cs{upshape}, only more efficient.
%
%
% \begin{macro}{\ulcshape}
diff --git a/base/ltfssbas.dtx b/base/ltfssbas.dtx
index 26885e90..50b90f1d 100644
--- a/base/ltfssbas.dtx
+++ b/base/ltfssbas.dtx
@@ -1331,7 +1331,7 @@
% \DeclareFontFamilySubstitution{LGR}{qpl}{udidot}
%\end{verbatim}
% This way if you ask for the \texttt{LGR} encoding in for the
-% \textt{qpl} family you get the characters from the
+% \texttt{qpl} family you get the characters from the
% \texttt{udidot} family substituted.
%
% We need to ensure that the macro is defined with
diff --git a/base/ltfssini.dtx b/base/ltfssini.dtx
index f44496c7..c0fdfe20 100644
--- a/base/ltfssini.dtx
+++ b/base/ltfssini.dtx
@@ -802,17 +802,12 @@
% \begin{macro}{\emrest}
-% Reset the font to upright (this needs to undo \texttt{sc} and
-% \texttt{it} separately as \cs{upshape} no longer resets both in
-% one go).
+% Reset the font to upright and upper/lower case. With the default rules
+% using \cs{shapedefault} does that for us but to be on the safe side we
+% do it like this:
% \begin{macrocode}
-\DeclareRobustCommand\emreset{%
- \fontshape{ulc}% in case sc is in use, e.g, changes scit -> it
- \fontshape{n}% for all other cases
-}
+\DeclareRobustCommand\emreset{\upshape\ulcshape}
% \end{macrocode}
-% We could have used \verb=\fontshape{n}= twice, that would give
-% the same result with the default set of shape rules.
% \end{macro}
More information about the latex3-commits
mailing list