我使用 \textit 或 \it、\bfseries 或 \bf 等有关系吗

我使用 \textit 或 \it、\bfseries 或 \bf 等有关系吗

我通常使用

\textit{Some italicized text}

我的一些同事使用

{\it Some other text}

我是否应该费心改变其中一个,或者这有关系吗?

有关的:

有什么理由不使用 \let 将已弃用的控制序列重新定义为当前推荐的控制序列吗?

答案1

禁忌

为什么不使用过时的命令?过时的命令不支持 LaTeX2e 的新字体选择方案或 NFSS。{\bf foo}例如,在打印之前重置所有先前设置的字体属性粗体。这就是为什么您不能简单地通过{\it \bf Test}以下方式定义粗体斜体样式。(此定义将产生:测试)另一方面,新命令\textbf{\textit{Test}}将按预期运行,产生:测试

除此之外,对于前面的命令,没有“斜体校正”,例如从 halfhearted ( {\it half}hearted) 到 halfhearted ( \textit{half}hearted)。

在此处输入图片描述

答案2

嗯,我刚刚把这个作为另一个问题的答案发布出来,但就在我发布的时候,那个问题被关闭了——这里有一个推荐。所以我在这里说说我的看法...

我不喜欢\itand 的原因\bf是它们不能很好地协同工作。也就是说,它们不能像人们直观预期的那样嵌套:

\textit和确实\textbf可以很好地协同工作:

这很好。但是,您可能会注意到,它仍然无法处理对小型大写字母的嵌套样式调整,因为 Computer Modern 字体不包含倾斜或粗体小型大写字母:

如果这对您来说是个问题,那么我推荐的——我昨天刚好也了解到了这一点——是将这个奇妙的slantsc包与lmodern包结合使用。包 slantsc提供了\rmfamily(罗马字体)、\ttfamily(打字机/电传打字机字体)、\sffamily(无衬线字体)、\bfseries(粗体字体)、\itshape(斜体字体)、\slshape(倾斜/倾斜)和\scshape(小型大写字母)。有了这些,就可以获得倾斜形式的小型大写字母:

作为奖励,slantsc已修复\textsl以便正常运行\textsc,因此您可以继续使用它们(如果您愿意)。

唉,我还没有找到一个可以修复嵌套实例行为的包\textit。在排版中,当你嵌套斜体时,你应该回来斜体转换为罗马体。例如,下面的单词“Titanic”采用嵌套斜体:

田中,雪莉。在船上泰坦尼克号:大客轮沉没时是什么样子纽约:Hyperion/Madison Press,1998 年。

作为一种解决方法,您通常可以写入\textrm以在这些情况下暂时返回非斜体,但当然这只有在您知道嵌套斜体级别的确切数量时才有效,而情况可能并非总是如此,尤其是在宏中。

更新:

正如其他人指出的那样,\textit\textsl会自动进行斜体校正,而\it\itshape\sl和 则\slshape不会。因此,您可以写\textit{stuff},但必须写{\it stuff\/}{\itshape stuff\/}才能获得相同的效果。

答案3

\it语法继承自 LaTeX 2.09,在 LaTeX2e 中被视为仅因“历史原因”而受支持。对于粗体,您应该使用 而\textbf不是\bf。对于斜体,您通常使用\emph而不是\textit,因为它是语义标记,并且它会自动处理斜体校正。

答案4

关于已弃用的“旧字体命令”,我发现它们对于方程式非常有用。

假设我想将外部势能的符号写为$V_{ext}$。但是,通常习惯使用直立字符来表示下标和上标,它们是标签而不是变量,可以写成

V_{\mathrm{ext}}   or
V_{\rm ext}

强烈更喜欢后者,因为较低的字符数和嵌套级别使阅读和编辑更容易。尽管在某些情况下优势会减弱,例如使用向量分量符号

f_{\mathrm{ext},i} vs
f_{{\rm ext},i} or
f_{\rm ext\it,i}       % <- not tested

一些现代文档类不再提供旧式命令。在这种情况下,可以使用 重新引入它们\DeclareOldFontCommand,例如\DeclareOldFontCommand 和 \DeclareRobustCommand 到底起什么作用?

相关内容