如何将 \pretocmd 与 \verb 或 \lstinline 一起使用?

如何将 \pretocmd 与 \verb 或 \lstinline 一起使用?

我用其他语言编写文档,然后显示代码时我需要切换到英语(切换字体):

\newcommand\code[1]{\lstinline{#1}}
\pretocmd{\code}{\begin{otherlanguage}{english}}{}{}
\apptocmd{\code}{\end{otherlanguage}}{}{}

然后,当我尝试将特殊字符放入定义的命令中时,我遇到一个问题,如下所示:

\code{HEAD^^}

因为我知道在这些命令中这样做是可以的:

\lstinline{HEAD^^} ...or... \lstinline|HEAD^^|

所以我想取消定义我的命令并使用原始命令,但这似乎不起作用:

\pretocmd{\lstlisting}{\begin{otherlanguage}{english}}{}{}

我如何使用\pretocmd它?

答案1

好的,我没有找到我的问题的答案,但是这个解决方法有效:

\lstset{basicstyle=\selectlanguage{english}\ttfamily}

这会将我的语言(和字体)切换为英语,\lstinline\begin{lstlisting} ... \end{lstlisting}在范围结束时切换回我的主要语言。所以我不再需要那些\pretocmd\BeforeBeginEnvironment了。

相关内容