有没有一种方便的方法可以确保文档中所有粗体文本都不会变成斜体?以下是 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}