考虑以下 MWE:
\documentclass{amsart}
\makeatletter
\newcommand{\bld}[1]{%
\ifx\f@shape=it
\textbf{#1}
\else
\emph{\textbf{#1}}
}
\makeatother
\begin{document}
\emph{This is a \bld{definition}.}\\
This is a \bld{definition}.
\end{document}
不知何故,它并没有完全按照我的要求去做:\bld{word}
如果单词不是斜体,则应该生成粗体和斜体单词;如果单词已经是斜体,则只生成粗体单词。另一个问题是,有没有更好的方法来实现这一点?
答案1
\emph
利用已经完成的事实。
\documentclass{amsart}
\newcommand{\bld}[1]{\emph{\textbf{#1}}}
\begin{document}
\emph{This is a \bld{definition}.}
This is a \bld{definition}.
\end{document}
如果您希望无论环境如何,该单词都是斜体,只需这样做
\newcommand{\bld}[1]{\textit{\textbf{#1}}}
例子:
\documentclass{amsart}
\newcommand{\bld}[1]{\textit{\textbf{#1}}}
\begin{document}
\emph{This is a \bld{definition}.}
This is a \bld{definition}.
\end{document}