如何解决优雅地找出 makeindex 的版本
我为 Latex 文档编写了类似 make-tool 的东西(实际上是一个 maven 插件 https://github.com/Reissner/maven-latex-plugin)。
因为这只是调用一堆命令行工具
当这些工具的新版本出现时,我经常遇到问题,我决定提供一种检查版本的方法(实际上是一个目标)。
例如。我让我的工具调用 pdflatex -v
来获取 pdflatex 的版本。
这适用于所有工具,但 makeindex
,
因为 makeindex
不提供常规方式来获取版本,仅此而已。
要手动查找,我只需在 bash shell 上键入 makeindex
,然后按 ctrl-d。
结果就是
This is makeindex,version 2.15 [TeX Live 2020] (kpathsea + Thai support).
Scanning input file stdin...done (0 entries accepted,0 rejected).
Nothing written in stdout.
Transcript written in stderr.
击键 ctrl-d 似乎与 unicode 0004 相关联。 所以从 bash shell 来看,这工作得很好。
有没有办法通过java执行来做到这一点?
我试图调用(java字符串)
"makeindex \u0004"
及相关。
没有成功,... makeindex 只是因为一个错误而退出。
老实说,我不知道为什么,因为在终端上一切都很好。
要解决的最后一个问题:程序应与平台无关。
现在尝试了一些提供虚拟文件的技巧。 但这当然与优雅相反。
解决方法
假设您使用 texlive,您可以使用
tlmgr info --only-installed --data="localrev" makeindex
返回类似
52851
这是您安装的 makeindex 包的修订信息。这不是版本号,但应该足以检测安装的版本是否发生变化。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。