fancyvrb inline \Verb 中 % 百分号的问题

fancyvrb inline \Verb 中 % 百分号的问题

我有一些 fancyvrb\Verb!...!表达式中的编程语言代码示例。这包括模数运算符,它恰好是百分号,例如

\Verb!(1..100) select: { arg i; i % 7 == 0 }!

这会导致两个问题。首先,TeXShop 认为在后面有一个行注释%(正如这个 stackexchange 显示错误一样)。这纯粹是一个美学问题。

但更严重的是,虽然使用 LaTeX 正确设置了文档,但texcounttexcountfull程序却出轨了,产生了一个错误,导致字数统计从该点停止,直到文件末尾.tex

!!! Warning: END group without type while waiting to end tabular. !!!

!!! Warning: END group without type while waiting to end sidewaystable. !!!

\Verb出现在旋转图形内的表格内)。

我想我必须找到一些解决方法来转义%字符。但是怎么做呢?

答案1

处理这个问题最简单的方法可能是对 进行简单的修补texcount.pl。搜索脚本以\verb找到此块:

  } elsif ($next eq '\verb') {
    _parse_verb_region($tex,$status);

然后只需添加此块的副本\Verb即可\verb

  } elsif ($next eq '\Verb') {
    _parse_verb_region($tex,$status);

这应该可以消除错误。

似乎texcount不知道sidewaystable,所以除非您弄清楚如何添加它,否则浮点数的数量可能会不正确。

答案2

我可以达到这样的程度:

\newcommand{\escapepercent}{\%}

\Verb[commandchars=\\<>]!(1..100) select: { arg i; i \escapepercent 7 == 0 }!

这使得系统中的一切都令人满意。我唯一不喜欢的两件事是 (a) 插入的百分比后面总是有一个空格字符。这对于我现在拥有的示例来说很好,但我想明确控制这一点。 (b) 我无法使用其他分组字符commandchars,这很糟糕,因为<>也可能出现在源代码中。例如,出于某种原因\Verb[commandchars=\\äö],总是会打印组结束字符(在本例中ö)...

最后,如果我可以为上述内容定义一个别名,\Verb这样我就不必commandchars在每次出现时都输入,这将会有所帮助。

如果你能帮助我解决这些问题,我很乐意检查你的答案:)

答案3

对于排版程序片段,请查看 listings 包。它支持多种语言,并且能够很好地排版程序片段,甚至完整的源文件。

答案4

通常,要在 LaTeX 中转义符号,请使用\。因此\%,不确定这是否可行,但尝试一下也无妨。:)

相关内容