如何撤消 textbf?

如何撤消 textbf?

作为参考,请考虑以下代码,它“不会说谎”,即只有单词 word1 和 word2 以粗体显示,而 word3 以非粗体显示。

\documentclass{article}
\begin{document}
\textbf{word1} appears bold. \textnormal{\textbf{word2}} appears bold.
\textbf{\textnormal{word3}} appears normal.
\end{document}

现在我的问题是:如果我想撤消 \textbf 的效果,我该怎么做?我发现了多篇帖子,错误地声称可以通过在它前面放置 \textnormal 来实现这一点,但上面的代码证明这是错误的。那么我该怎么做呢?

举一个激励人心的例子:

\documentclass{article}
\begin{document}
\newcommand{\MyDef}{\textbf{usually bold}}
Here is some text, which is \MyDef.
However, the text "\UndoBold{\MyDef}" sometimes should also appear not in bold.
\end{document}

那么,\UndoBold 命令是什么?如前所述,我只找到了 \textnormal,但显然事实并非如此,正如我上面的最小示例所证明的那样。

答案1

根据对我的问题的评论,我认为似乎没有可以放在 textbf 周围的命令来撤消其效果。因此,我改用条件,它应该可以做同样的事情:

\documentclass{article}
\usepackage{xparse}
\begin{document}

\newcommand{\MyText}{usually bold}
\NewDocumentCommand{\MyDef}{o}{%
    % cases depend on whether any optional argument is used
    \IfNoValueTF{#1}{\textbf{\MyText}}{\MyText}%
}

Here is some text, which is \MyDef.
However, the text "\MyDef[nonBold]" sometimes should also appear not in bold
(which is the case here!).

\end{document}

这里,文本也没有说谎,这意味着第一次出现的“通常是粗体”确实是粗体,而第二次则不是。

相关内容