\textit 和 \itshape 之间有区别吗?

\textit 和 \itshape 之间有区别吗?

我只使用过\textit(\emph和 来强调文本),但注意到在某些 TeX 示例中,\itshape使用的是 而不是。和\textit之间有区别吗? 如果有,区别是什么?\textit\itshape

答案1

\itshape是一个开关:

Not italic {\itshape Italic} Not italic

\textit接受一个参数:

Not italic \textit{Italic} Not italic

很多人似乎喜欢\itshape{...},这是错误的(但不会给出错误,因为括号在这里被解释为分组分隔符)。 \itshape不会自动插入斜体校正,而\textit会在段落内插入,\textit通常更好。另一方面,如果您已经有分组(例如,使用括号或环境),有时 switch 命令会更方便:

\begin{table}
  \itshape
  Everything inside this table is italic
\end{table}

答案2

  • \itshape宣言。它会影响后面的文本。这就是为什么它经常用于大量文本或组内文本。相比之下,\textit只影响其参数。

  • \textit提供斜体修正\itshape不然。这意味着,\textit与 相比,在 斜体文本之后,紧接着的文本之间的空间会稍微大一些\itshape。进行修正的原因在于,由于倾斜,间距在视觉上可能太窄。这取决于字体。

  • \textit在数学模式下工作,\itshape在数学模式下不起作用。

\textit以下是latex.ltx 中的代码:

\DeclareTextFontCommand{\textit}{\itshape}

\def \DeclareTextFontCommand #1#2{%
  \DeclareRobustCommand#1[1]{%
    \ifmmode
      \nfss@text{#2##1}%
    \else
      \hmode@bgroup
       \text@command{##1}%
       #2\check@icl ##1\check@icr
       \expandafter
      \egroup
    \fi
                       }%
}

正如您所看到的,\textit使用\itshape数学模式和斜体校正但做得更多。

答案3

\itshape和其它类似的命令 ( bfseries) 是不需要参数的模态命令。它们将所有后续文本更改为该字体形状/粗细等。 \textit( 和textbf) 是需要参数的宏。

相关内容