使粗体文本不再变为斜体

使粗体文本不再变为斜体

有没有一种方便的方法可以确保文档中所有粗体文本都不会变成斜体?以下是 MWP:

\documentclass{article}
\newtheorem{theorem}{Theorem}

\begin{document}
\begin{theorem}
    This \textbf{word} is in italic.
\end{theorem}

\begin{theorem}
    This \emph{\textbf{word}} is not in italic.
\end{theorem}

\end{document}

在此处输入图片描述

换句话说,我只想使用\textbf(而不使用\emph)来产生第二种结果,并将此效果应用于整个文档。

编辑:我明白这可能不是最佳做法,但我想重新定义该\textbf命令,因为我可以方便地使用 Ctrl + B 在 overleaf 上调用它。

答案1

您可以重新定义\textbf宏:

\def\textbf#1{{\upshape\bfseries#1}}

答案2

我不会重新定义\textbf,而是定义一个语义命令:

\documentclass{article}
\newtheorem{theorem}{Theorem}

\DeclareTextFontCommand{\bemph}{\upshape\bfseries}

\begin{document}
\begin{theorem}
    This \bemph{word} is in italic.
\end{theorem}

This \bemph{word} is not in italic.

\end{document}

在此处输入图片描述

如果你真的想要重新定义\textbf,那么按照另一个答案中的建议进行操作\def\textbf#1{{\upshape\bfseries#1}}:有几个原因导致 LaTeX 中出现此错误。

\documentclass{article}
\newtheorem{theorem}{Theorem}

\DeclareTextFontCommand{\textbf}{\upshape\bfseries}

\begin{document}
\begin{theorem}
    This \textbf{word} is in italic.
\end{theorem}

This \textbf{word} is not in italic.

\end{document}

但我不建议这么做。

原因有哪些?比较以下两行

在此处输入图片描述

顶行是 with \bemph(或\textbf如我所示重新定义),底行是 with 建议定义。“幼稚”的 with 重新定义\def不考虑前后斜体修正。

第二个原因:\textbf应该是一个强大的命令,但如果你使用的话它就不是强大的命令\def

答案3

您可以使用命令 \textnormal:

\documentclass{article}
\newtheorem{theorem}{Theorem}

\begin{document}
\begin{theorem}
    \textnormal{This \textbf{word} is in normal.}
\end{theorem}

\begin{theorem}
    This \emph{\textbf{word}} is not in italic,  \textnormal{but this in normal}.
\end{theorem}

\end{document}

相关内容