我必须在里面频繁地转义下划线\texttt
,因为我用它来标记函数和变量。
我想\texttt
用不同的名字重新定义,这样我就可以写\mycommand{my_variable_name}
而不是\texttt{my\_variable\_name}
。
答案1
你已完成
\newcommand{\myvar}[1]{%
\texttt{\detokenize{#1}}%
}
前提是您加载了fontenc
该T1
选项。否则,您需要更改类别代码,这会使该命令不适合作为另一个命令的参数。
\documentclass{article}
\usepackage[T1]{fontenc}
\newcommand{\myvar}[1]{%
\texttt{\detokenize{#1}}%
}
\begin{document}
Here is a variable \myvar{my_variable_name} and also
in a description
\begin{description}
\item[\myvar{my_variable_name}] is a nice variable
\end{description}
\end{document}
答案2
您可以尝试使用逐字模式,即\verb!my_name!
- 这始终输出为\texttt
或使用xparse
并定义带有逐字参数“v”的命令,但此宏不能在另一个宏中使用。
这也适用于空格。
注:是\begingroup...\endgroup
为了防止泄露\ttfamily
至下文。
\documentclass{article}
\usepackage{xparse}
\NewDocumentCommand{\mycommand}{+v}{%
\begingroup
\ttfamily #1%
\endgroup
}
\begin{document}
\verb!my_variable_name!
\mycommand{my_variable_name}
\end{document}