一般来说,我如何根据命令嵌套的其他命令来(重新)定义命令?
更具体的例子:我有一个自定义 latex 命令(例如\code{}
),它使文本显示为粗体。但是,当在另一个自定义命令(例如\question{Will you use \code{command 1} or \code{command 2}?}
)中使用时,我希望文本不显示为粗体。所以我想在另一个命令中\code{}
重新定义when。\code{}
顺便说一句:当使用 CSS 格式化 HTML 页面时,它会像这样:
.code {font-weight: bold;}
.question .code {font-weight: normal;}
答案1
是的你可以。
\newcommand\question[1]{{% extra brace
\renewcommand\code[1]{\textit{##1}}% double #
whatever you want for #1}}
答案2
就我个人而言,我发现大多数时候很容易忽视支架,因此我使用\begingroup
...\endgroup
来代替:
\newcommand\question[1]{%
\begingroup
\renewcommand\code[1]{\textit{##1}}% double #
whatever you want for #1%
\endgroup}
答案3
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\let\code\textbf
\newcommand\question[1]{{\itshape#1}}
\begin{document}
\question{Will you use \code{command 1} or \code{command 2}?}
\question{\let\code\textnormal Will you use \code{command 1} or \code{command 2}?}
\question{Will you use \code{command 1} or \code{command 2}?}
\end{document}