【问题标题】:How to escape string in a command argument如何在命令参数中转义字符串
【发布时间】:2020-06-27 08:44:27
【问题描述】:

小例子:

\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}

到目前为止,我发现some_thing 中的下划线是问题所在。当我添加 syntax 包时,这只是一个问题。请注意,这里最好的情况仍然是一个错误:Package minted Error: Missing Pygments output;。有问题的参数应该指向一个文件。这个例子真的很做作,对不起。

所以我想我需要以某种方式转义下划线?只是去some\_thing 给我同样的错误。我猜命令参数有些不同。我可以在这里做什么?

【问题讨论】:

    标签: latex pdflatex miktex


    【解决方案1】:

    我在这里找到了答案:https://tex.stackexchange.com/a/302168

    \# 是一个\chardef 标记,它排版#,但不会在文件名等中扩展为#

    帖子使用命令\string 转义#

    这就解释了为什么\_ 在那个地方没有做任何事情。就我而言,\begin{minted}{some\string_thing} 工作得很好。

    我尝试了\begin{minted}{\string{some_thing}},因为这样在 IMO 上更具可读性,但这不起作用。我想这不是\string 的工作方式吗? ¯\_(ツ)_/¯

    【讨论】:

      猜你喜欢
      • 2012-01-31
      • 1970-01-01
      • 2011-02-20
      • 2011-09-12
      • 2011-09-19
      • 2011-10-18
      • 2010-12-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多