这是一件非常小的事,但当某些东西必须同时加粗和斜体时,有什么理由选择
\textbf{\textit{text}}
超过
\textit{\textbf{text}}
?
答案1
字体选择或斜体校正应用没有区别,对于粗体和斜体等常见变体,字体很可能是预加载的,所以根本没有区别,但原则上
\textit{\textbf{text}}
首先加载斜体字体(如果此字体不可用,将生成警告和替换),然后才加载粗体字体(在任何字体替换发生之后)。
\textbf{\textit{text}}
当然是相反的,因此加载粗体非斜体字体作为中间步骤。
在正常使用中,这不是什么问题,但如果使用仅在受限变体中可用的特殊字体系列,则可以切换所有属性而无需加载中间字体
{\fontshape{\itdefault}\fontseries{\bfdefault}\selectfont text\/}
例如选择默认的斜体和粗体属性然后选择为该组合指定的字体。但随后您需要手动进行斜体校正。
答案2
我认为没有区别,因为大多数现代字体都为 提供了独特的形状bolditalic
。因此,如果您的字体具有这种形状,则没有区别。否则,您必须在两者之间进行选择。
有些程序,比如 MsWord,在缺少形状时会构建形状,但结果并不令人满意。当然 LaTeX 不会这样做。
答案3
有区别。\textit
并\textbf
更改独立的字体属性、形状和系列。如果分两步更改字体,则第一步可能会导致LaTeX Font Warning
依赖于当前字体属性,如果此步骤中的组合不可用。
例子:
\documentclass{article}
\makeatletter
\DeclareRobustCommand\bfseriesitshape{%
\not@math@alphabet\itshapebfseries\relax
\fontseries\bfdefault
\fontshape\itdefault
\selectfont
}
\makeatother
\DeclareTextFontCommand{\textbfit}{\bfseriesitshape}
\begin{document}
\scshape % now the current font shape is small caps
\textit{\textbf{f}}f
\textbf{\textit{f}}f %% causes LaTeX Font Warning
{\fontseries\bfdefault\textit{f}f}
\textbfit{f}f
\end{document}
原因如下\textbf{\textit{f}}
:
LaTeX Font Warning: Font shape `OT1/cmr/bx/sc' undefined
(Font) using `OT1/cmr/bx/n' instead on input line 20.
中间粗体小写字体不存在。因此,通常最好一步切换字体。无需手动斜体校正(如上例所示)。
该示例还定义了字体切换宏\bfseriesitshape
并\textbfit
隐藏字体切换内部。如果不需要第一个命令,也可以定义后一个宏而不使用第一个命令:
\DeclareTextFontCommand{\textbfit}{%
\fontseries\bfdefault % change series without selecting the font yet
\itshape
}