看一下下面的列表:
\textit
,,,,,\it
\emph
\itshape
\mathit
\textbf
,,,,\bf
\bfseries
\mathbf
- ...
例如,有人可能会说:
\mathbf
和\mathit
适用于数学模式,其他适用于正常模式。
或者
\bf
和\it
适用于普通 TeX 且已过时,而其他适用于 LaTeX。
然而,我真正的问题是:为什么需要重新定义命令?普通模式命令不能转移到数学模式吗?普通 TeX 命令不能转移到 LaTeX 吗?
PS:也许还有其他我不知道的区别。请在您的回答中提及它们。
答案1
\bf
并\it
加载单一字体,它们不会嵌套;书写\bf\it
不会给你粗体斜体。\bfseries
并\itshape
在 LaTeX 中选择字体轴。例如,您可以一起使用它们来选择粗体斜体。\textbf
和\textit
是上面的命令形式,并添加了自动插入斜体更正的功能。\emph
是给予的语义命令强调到文本。 (LaTeX 缺少与 HTML 的 类似的功能<strong>
。)这就是为什么不推荐将\bf
和\it
作为字体切换的名称,以及为什么 LaTeX 形式输入起来更长的原因——因为它们不是语义的,它们在文本中缺乏意义;它们只说“选择一种字体”,但这是为了增加意义还是仅仅为了装饰,则不得而知。\mathbf
和\mathit
加载用于数学的字体,这些字体可能\textbf
与和所用的字体相同,\textit
但不一定。请注意,组合字体形状在数学中没有多大意义,因此像\bf
和\it
这些命令不会正交作用:一个会抵消另一个。
答案2
\mathit{}
和之间的另外两个区别\textit{}
是:
\textit{}
在数学和常规环境中都允许,但\mathit{}
只在数学环境中允许;即使命令
\textit
被数学环境包裹,它也提供常规环境。因此:$\textit{text1^{text2}}$
给出错误,但$\mathit{text1^{text2}}$
有效。此外,的输出$\textit{a b}$
包含 a 和 b 之间的空格,但的输出$\mathit{a b}$
不包含。