这与简化词汇表描述中“&”符号的使用,但阅读了这些答案并尝试了一些基于它们的办法后,我发现它仍然不适合我的情况。
基本上,我试图制作一个以等宽字体内\code{...}
联排版的宏。我想我正在寻找与 WEB语法非常相似的东西,只是对于我的目的来说,这是一个相当糟糕的分隔符选择。...
|...|
|
例如我想要这个:
To capture a reference to the local variable \code{snake_case},
we write \code{[&snake_case]}.
排版就像我写的一样
To capture a reference to the local variable \texttt{snake\_case},
we write \texttt{[\&snake\_case]}.
我要写一篇很多内联代码片段,所以如果可以避免的话,我宁愿不必记住对任何特殊字符进行反斜杠转义。
我迄今为止的尝试是:
% make _ a non-special character
\usepackage{underscore}
% make & a non-special character
\newcommand{\makeampletter}{\catcode`\&=12\relax}
\newcommand{\makeampother}{\catcode`\&=4\relax}
\newcommand{\code}[1]{\makeampletter\texttt{#1}\makeampother}
我隐约知道存在\verb|...|
,但答案如下何时应使用 \verb,何时应使用 \texttt让我对它保持警惕;我宁愿使用一些尽可能相似的东西\texttt
,并且当我使用它时我 100% 了解我是如何偏离的\texttt
。
(加分项不仅在于修复了我的 & 符号问题,还在于解决了我将来不可避免的%
、{
和问题}
。)
答案1
感谢 Werner 对此的评论:
\newcommand{\code}[1]{\lstinline[basicstyle=\ttfamily,autodedent=0]{#1}}
(请注意autodedent
,Jubobs 的lstautodedent
包裹。
我唯一剩下的问题与\code
换行有关。即,
- 有时我会看到
foo, \code{bar}, baz
“bar”和“,”之间的换行符 - 有时我会看到
\code{foo, bar, baz}
“bar”和“,”之间的换行符
前者是站不住脚的,而后者至少是站得住脚的,即使它很丑陋。我觉得我可以做一些事情来改进这些方面的答案。