我打算使用 soul 包将 \emph 重新定义为 \so,这样每次我使用 \emph 时,文本就不会是斜体,而是像这样(间隔开,所以)。
然而,一旦我使用
\usepackage{soul}
\renewcommand{\emph}{\so}
在我的文档中,我的 bibtex(准确地说:biber)书目不会显示任何通常为斜体的文本,即书名、期刊标题等。现在我想让 bib 使用斜体而不是间隔开的,但我猜 bibtex 使用 \emph...
除了在正文中直接使用 \so 之外,还有其他方法可以解决这个问题吗?因为我不是 100% 确定我会使用它,而且通常这是 latex 的强项,我可以事后再改回来。我想如果我想把它改回来,我可以重新定义 \so,但那不太好。也许我可以在打印 bib 之前将 emph 重新定义为其正常功能?怎么做?如果我天真地输入
\renewcommand{\emph}{\emph}
latex 无法编译。
这没有什么大不了的,但我想问一下,看看是否有人有想法。
谢谢!
答案1
如果您正在使用最新的 LaTeX 安装,则可以使用\NewCommandCopy
以下命令保存定义,\emph
以便稍后恢复它:
\documentclass{article}
\usepackage{soul}
\NewCommandCopy\emphorig\emph
\renewcommand\emph{\so}
\begin{document}
\emph{This is emphasised}
\renewcommand\emph{\emphorig}% or \let\emph\emphorig
\emph{This is emphasised}
\end{document}
如果您的 LaTeX 安装有点过时,并且上述方法不起作用,您可以改用该letltxmacro
包:
\documentclass[]{article}
\usepackage{letltxmacro}
\usepackage{soul}
\LetLtxMacro\emphorig\emph
\renewcommand\emph{\so}
\begin{document}
\emph{this is emphasised}
\let\emph\emphorig
\emph{this is emphasised}
\end{document}