有人可以解释如何使用svn-multi
来排版当前修订版(即不是当前文件版本)吗?
我必须将文档拆分成几个.tex
文件。一个文件是主文件,其余文件都通过 调用\input{}
。我希望标题包含当前版本的文档。如果我只是排版,\svnrev
我会得到 的当前版本main.tex
,而不是任何子文件的最高版本。
另一个问题:我知道svn-multi
有一个 Perl 脚本。有没有办法在没有任何此类外部脚本的情况下获得所需的结果?
答案1
文档全局宏,例如
\svnrev
,返回整个多文件文档的最新版本控制信息(关键字数据),即文档最新更改的文件的信息。
另外(第 2.2 节)
\svnid
Subversion 关键字使用或 来包含\svnidlong
。这些宏应该在每个文件的开头写好,即在主文档的序言中,紧接着 和\documentclass
,\usepackage{svn-multi}
并作为每一个或类似宏之前的子文件\chapter
。[原文重点]
您确定在每个子文件中都发布一个\svnid(long)
宏吗?
关于 perl 脚本,它仅用于包含不直接由 latex 处理的文件中的版本信息。例如,它可用于从 C 源代码中提取修订号(如果您正在为 latex 中的 C 程序编写文档)。对于 latex 文档,如果您只需要文档本身各个部分的修订信息,则不需要外部脚本。
答案2
你可能想看看VC 包。vc bundle 的目的正是避免弄乱文件修订版本,这在不同方面都会带来问题,而是使用存储库修订版本。vc bundle 目前支持的版本控制系统是 Subversion、Git 和 Bazaar。
vc 包是一个脚本驱动的解决方案,需要安装 AWK 解释器(对于 Windows,您可以在GnuWin32 实用程序;简单地gawk.exe
说二进制文件包中的某个路径)。我计划将脚本移植到 Lua,因为最近的 TeX 发行版包含texlua
Lua 解释器,它应该可以在大多数平台上开箱即用。但我还没有时间来实现这一改变。