如何使用 \newcommand 定义带有两个参数的更新命令?

如何使用 \newcommand 定义带有两个参数的更新命令?

我定义了一个新命令为

\newcommand{\code}[1]{\texttt{#1}}

然后,我重新定义了\texttt,为了使其仍然有效,我首先“存储”了命令并改变了我定义的方式\code,因此它仍然可以使用存储的定义工作(%符号在 RStudio 中开始注释):

\let\oldtexttt\texttt % Store \texttt
\renewcommand{\texttt}[2][black]{\textcolor{#1}{\ttfamily #2}} % \texttt[<color>]{<stuff>}
\newcommand{\code}[1]{\oldtexttt{#1}}

现在,我想更改新的命令定义,以便我可以使用更新的命令\texttt,但我不知道该怎么做。我尝试使用我在此页面上找到的内容: http://noodle.med.yale.edu/latex/latex2e-html/ltx-18.html 并改变参数的数量,但我不知道如何实现这一点并使其发挥作用。

我做了几次尝试,本着类似的精神:

\newcommand{\code}[2][black]{\textcolor{#1}{\texttt {#2}}`

或者

\newcommand{\code}[2][black]{\texttt{\textcolor{#1}{\ttfamily #2}}

以及其他一些方法,但都不起作用。

我将非常感激关于如何正确完成此操作的建议。

答案1

这有效。请务必计算括号:

\documentclass{article}
\usepackage{color}
\newcommand\code[2][black]{\textcolor{#1}{\texttt{#2}}}
\begin{document}
\code[red]{Yada yada.} % black if no color specified
\end{document}

答案2

目前还不清楚你想要什么,但在给出\texttt一个可选参数之后(改变标准 latex 命令的语法通常不是一个好主意),然后给出\code你可以使用的相同可选参数

\newcommand{\code}{\texttt}

或者

\newcommand{\code}[2][black]{\texttt[#1]{#2}}

要么允许\code{this}\code[red]{that}

相关内容