像 mathpazo(Palatino 字体包)一样,使用 newpxtext 和 tgpagella 的倾斜文本(slshape)

像 mathpazo(Palatino 字体包)一样,使用 newpxtext 和 tgpagella 的倾斜文本(slshape)

当我使用该包(Palatino 字体)时,使用和命令(或者和命令)mathpazo生成的字体形状看起来与预期不同:第一个生成斜体文本,第二个生成倾斜文本。\textit\textsl\itshape\slshape

但是,当我使用newpxtexttgpagella包(也是Palatino字体)时,\textit\textsl都会产生仅限斜体文本。你可以用以下 MWE 尝试一下:

\documentclass{article}

\usepackage{mathpazo}
%\usepackage{newpxtext}
%\usepackage{tgpagella}

\begin{document}
\texttt{itshape}: \textit{The quick brown fox jumps over the sleazy dog.}

\texttt{slshape}: \textsl{The quick brown fox jumps over the sleazy dog.}
\end{document}

顺便说一句:我使用 MikTeX 和 pdflatex。

当使用 运行此示例时tgpagella,会出现一个警告,指出sl不可用,因此it使用 来代替:

LaTeX 字体警告:大小 <10> 的字体形状“OT1/qpl/m/sl”不可用(字体)在输入行 10 上尝试使用字体形状“OT1/qpl/m/it”。(取自 .log 文件)

但是,当我使用时没有出现任何警告newpxtext。显然,sl只是定义为it与此包相同的字体形状。

我的问题:有没有办法使用这个newpxtext能够使用实际倾斜的文本吗?我对使用它newpxtext来代替其他两个包特别感兴趣,因为我想将它与newpxmath许多论坛中推荐的包一起使用。

答案1

这里我重新定义\textsl\slshape调用mathpazo字体。

\documentclass{article}

%\usepackage{mathpazo}
%\usepackage{newpxtext}
\usepackage{tgpagella}

\let\svtextsl\textsl
\renewcommand\textsl[1]{\bgroup\fontfamily{ppl}\selectfont\svtextsl{#1}\egroup}
\let\svslshape\slshape
\renewcommand\slshape{\fontfamily{ppl}\selectfont\svslshape}

\begin{document}
\texttt{itshape}: \textit{The quick brown fox jumps over the sleazy dog.}

\texttt{slshape}: \textsl{The quick brown fox jumps over the sleazy dog.}

Normal text and \slshape now in slshape. \upshape Back ``up'' again.
\end{document}

在此处输入图片描述

唯一的陷阱,如果您想这么称呼它,那就是如果您在这个修订版中操作\slshape并更改字体系列,如\rmfamily,您将返回斜体形状,因为(正如 OP 所知)slshape默认字体系列未知,无论是nepxtext还是tgpagella

答案2

您可以用以下方式替换字体调用\slshape

\documentclass{article}

\usepackage{newpxtext}

\makeatletter
\AtBeginDocument{%
  \DeclareFontShape{T1}{zpl\zpl@figurealign\zpl@figurestyle}{m}{sl}{<-> pplro8t}{}%
  \DeclareFontShape{T1}{zpl\zpl@figurealign\zpl@figurestyle}{b}{sl}{<-> pplbo8t}{}%
}
\makeatother

\begin{document}

\texttt{upshape}: \textup{The quick brown fox jumps over the sleazy dog.}

\texttt{itshape}: \textit{The quick brown fox jumps over the sleazy dog.}

\texttt{slshape}: \textsl{The quick brown fox jumps over the sleazy dog.}

\end{document}

在此处输入图片描述

请注意,这不会遵循您在加载时对旧式数字所做的可能选择newpxtext

我会避免这种情况。我一般都同意 Knuth 的排版选择,但绝对不同意倾斜字体,我发现这种字体与直立字体几乎没有区别,而且很丑。

相关内容