环境周围的 ulem 包的 \em 无法编译

环境周围的 ulem 包的 \em 无法编译

%如果删除任何代码,则以下代码无法编译。它报告逃跑论点

\documentclass{article}
\usepackage{ulem}
\begin{document}
    \begin{center} %\em
        This is center
    \end{center}
    \begin{quote} %\em
        This is quote
    \end{quote}
    \begin{itemize} %\em
        \item This is itemize
    \end{itemize}
    \begin{tabular}{c} %\em
        This is tabular
    \end{tabular}
\end{document}

我的问题是是否可以修复它,以便\emulem作为下划线\em\em在 LaTeX 的任何地方都能发挥作用。

答案1

\emwith的定义ulem变成

\def\@tempa{\uline}%
\global\let\UL@ender\UL@swender
\expandafter\@tempa\expandafter{\ifnum\z@=\string`}\fi

这是一个有趣的技巧,本质上是

{\em something}

进入

\uline{something}

这样做的结果是\em 需求看到明确的右括号并且不能“自由”。

下划线不能像尊重任何分组机制的字体更改那样完成,所以你的问题的答案是:不,你不能。

相关内容