简单的 if else 命令 latex 加粗斜体/非斜体单词

简单的 if else 命令 latex 加粗斜体/非斜体单词

考虑以下 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}

enter image description here

如果您希望无论环境如何,该单词都是斜体,只需这样做

\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}

enter image description here

相关内容