使用“soul”包重新定义 \emph -> Bibtex 中的问题

使用“soul”包重新定义 \emph -> Bibtex 中的问题

我打算使用 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}

相关内容