为什么 \L 的斜体与普通的 L 不同?

为什么 \L 的斜体与普通的 L 不同?

以下 LaTeX 代码

\documentclass{article}
\usepackage{amsmath}
\begin{document}

\[ \L, \operatorname{\L}, \mathrm{\L}
\]
\textit{
\[ \L, \operatorname{\L}, \mathrm{\L}
\]
\[ L, \operatorname{L}, \mathrm{L}
\]
}
\end{document}

生产

禁止 L

为什么在和环境中会\L出现斜体以及如何避免这种情况?\operatorname\mathrm

答案1

编译您的示例会产生六个警告:

LaTeX Warning: Command \L invalid in math mode

实际情况是,LaTeX 会以其唯一知道的方式恢复,即切换到数学公式开始时的当前文本字体。如果这在 的范围内\itshape(在您的情况下是通过\textit),Ł 将以斜体显​​示。

如果您需要斜线 L 作为数学运算符,则必须更加小心地进行:

\DeclareMathOperator{\Lslash}{\text{\normalfont\L}}

这里我们假设操作员名称使用的字体与主文本字体相同。

\documentclass{article}
\usepackage{amsmath}

\DeclareMathOperator{\Lslash}{\text{\normalfont\L}}

\begin{document}

$\Lslash$ \textit{$\Lslash$}

\end{document}

在此处输入图片描述

更复杂的版本尊重\boldmath并兼容\bm(但操作员必须对其进行特殊处理)。

\documentclass{article}
\usepackage{amsmath,pdftexcmds}
\usepackage{bm}

\makeatletter
\newcommand{\boldmathTF}[2]{%
  \ifnum\pdf@strcmp{\math@version}{bold}=\z@
    \expandafter\@firstoftwo
  \else
    \expandafter\@secondoftwo
  \fi
  {#1}{#2}%
}
\makeatother
\DeclareMathOperator{\Lslash}{%
  \text{\normalfont\boldmathTF{\bfseries}{}\L}%
}

\begin{document}

$\sin x$ $\Lslash x$

$\bm{\mathop{\sin}}x$ $\bm{\mathop{\Lslash}}x$

\boldmath
$\sin x$ $\Lslash x$

\end{document}

在此处输入图片描述

相关内容