我有一些 fancyvrb\Verb!...!
表达式中的编程语言代码示例。这包括模数运算符,它恰好是百分号,例如
\Verb!(1..100) select: { arg i; i % 7 == 0 }!
这会导致两个问题。首先,TeXShop 认为在后面有一个行注释%
(正如这个 stackexchange 显示错误一样)。这纯粹是一个美学问题。
但更严重的是,虽然使用 LaTeX 正确设置了文档,但texcount
和texcountfull
程序却出轨了,产生了一个错误,导致字数统计从该点停止,直到文件末尾.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 中转义符号,请使用\
。因此\%
,不确定这是否可行,但尝试一下也无妨。:)