Latex 如何在命令参数中转义字符串
最简单的例子:Latex 如何在命令参数中转义字符串,latex,pdflatex,miktex,Latex,Pdflatex,Miktex,最简单的例子: \documentclass{article} \usepackage{minted} \usepackage{syntax} \begin{document} \begin{minted}{some_thing} foo \end{minted} \end{document} 使用Miktex/pdflatex编译时,我得到 ! Missing \endcsname inserted. <to be read again>
\documentclass{article}
\usepackage{minted}
\usepackage{syntax}
\begin{document}
\begin{minted}{some_thing}
foo
\end{minted}
\end{document}
使用Miktex/pdflatex编译时,我得到
! Missing \endcsname inserted.
<to be read again>
\protect
l.8 \begin{minted}{some_thing}
!缺少\endcsname已插入。
\保护
l、 开始{minted}{some_thing}
到目前为止,我发现问题出在some\u thing
中的下划线。这只是我添加语法
包时的一个问题。请注意,这里最好的情况仍然是一个错误:Package-minted-error:Missing-Pygments-output代码>。所讨论的论点应该指向一个文件。这个例子真是做作,对不起
所以我想我需要逃离下划线?只是去做一些事情,我也会犯同样的错误。我猜命令参数在某种程度上是不同的。我能在这里做什么?我在这里找到了答案:
\\\\
是一个\chardef
标记,它将\\
打印出来,但不会在文件名等中扩展为
post使用命令\string
对
进行转义
这就解释了为什么\\
在那个地方什么都不做。在我的例子中,\begin{minted}{some\string\u thing}
工作得很好
我尝试了\begin{minted}{\string{some_thing}}
,因为在我看来这会更可读,但这不起作用。我想这不是\string
的工作原理吧?¯\_(ツ)_/“”