用 a2ps 打印乳胶源

rat*_*osk 4 printing latex a2ps

当我尝试打印乳胶源代码时

a2ps somefile.tex
Run Code Online (Sandbox Code Playgroud)

我从 egrep 收到错误消息,例如

egrep: Das Ende des angegebenen Intervalls ist nicht gültig
Run Code Online (Sandbox Code Playgroud)

这意味着“给定间隔的结尾无效”。之后 texi2dvia4ps 尝试编译我的 tex 文件并失败。我可以很好地打印其他源代码。知道出了什么问题吗?

编辑:jofels 的回答解决了 egrep 的问题。a2ps 仍然尝试编译我的 .tex 文件,而不是将其作为源代码漂亮地打印出来。使用

a2ps --delegate=no somefile.tex
Run Code Online (Sandbox Code Playgroud)

阻止它(部分)这样做。像 \item 或 \phi 这样的次要命令仍然被解释,而不是像它们在文件中那样打印出来。

jof*_*fel 5

该消息(英文为“egrep: Invalid range end”)来自a2ps 中的一个错误。

它的/usr/bin/texi2dvi4a2psshell 脚本调用egrep错误:

代替

echo "$command_line_filename" | egrep '^(/|[A-z]:/)' >/dev/null \
|| command_line_filename="./$command_line_filename"
Run Code Online (Sandbox Code Playgroud)

它应该是

echo "$command_line_filename" | egrep '^(/|[A-Za-z]:/)' >/dev/null \
|| command_line_filename="./$command_line_filename"
Run Code Online (Sandbox Code Playgroud)

由于该错误位于 shell 脚本中,您只需编辑文件即可轻松修复它。

该模式检查文件名是绝对的(以 开头/,与类 Unix 系统相关)还是以驱动器名称开头(例如C:,仅与 Windows 系统相关)。否则,文件名前面带有./.

随时向上游或您使用的发行版报告此错误。