【问题标题】:Add a version number to the title of a LaTeX document在 LaTeX 文档的标题中添加版本号
【发布时间】:2011-02-07 16:55:36
【问题描述】:

我的 LaTeX 文档的标题部分通常看起来像

\title{Title}
\author{Me}
%\date{}      %// Today's date will appear when this is commented out.

\begin{document}
\maketitle

我真的很想在标题部分添加另一行作为版本号:

\title{Title}
\author{Me}
\version{v1.2}
%\date{}      %// Today's date will appear when this is commented out.

\begin{document}
\maketitle

不一定非得是名为version 的命令,但我怎样才能让版本号出现在日期之后(即在作者之后)?我可以手动设置版本号。

所以:

标题

2010 年 4 月 13 日

v1.2

【问题讨论】:

  • 您使用的是哪个版本控制系统 (VCS)?

标签: latex versioning version title


【解决方案1】:

完成我想做的最简单的方法就是简单地使用:

\title{Title}
\author{Me}
\date{\today\\v1.2}

\begin{document}
\maketitle

【讨论】:

  • 像这样省略 \\ 之后的空格是否符合规定?每当换行时,我总是做“\\”...
【解决方案2】:

我的回答对于原始线程来说可能为时已晚,但是 Latex 有一个非常有趣的包,称为vrsion(没有'e'),它是标准分发的一部分。本质上,它为 .dvi 文件编号,即每次运行 Latex 时编号都会增加。

就个人而言,我将此作为一种简单的解决方法,因为 Git 缺少对人类友好的文档版本号。不理想,但有时我有多个文档副本,这有助于避免一些混乱。

【讨论】:

  • 谢谢马克斯。这是一个很好的选择。我真的很高兴你发布了你的答案。不幸的是,它似乎并没有真正改变生成的文件名(正如我认为你的帖子所暗示的那样),但它用一个很棒的工具回答了我最初的问题!
  • 实际上,我使用了这个包并进行了更多搜索,发现了这个很棒的资源:@​​987654321@ 它继续描述了如何在使用 Subversion 时在 "Rev: 185_______Page 1_____2006-11-10 09:54" 等 LaTeX 文档上获得页脚帮助进行修订控制。再次感谢。
  • 您好 vgm64,感谢您的评论。文件名不会改变。您可以使用 \version 命令将版本号添加到文档中(例如,在页脚、页眉等中)。 vrsion 在您的文件夹 (.vrs) 中创建一个文件,该文件通过重建您的文档来维护版本号。查看 vrsion 手册;它比我能更好地解释事情。
  • 似乎一个将hyperref包与vrsion一起使用的tex文件无法编译。你有解决办法吗?
  • 使用外部程序(例如 git)与使用版本控制 Latex 包(例如此处列出的 texcatalogue.ctan.org/bytopic.html#classes )有什么优势?
【解决方案3】:

对于许多版本控制系统,签入和签出程序会将文档中的某些字符串扩展为版本控制系统拥有的关于系统的元数据,包括版本号。

如果您在 Tex 定义的正文中包含这些字符串,那么您可以在您的文档中使用它们。

如果不知道您使用的是哪个版本控制系统,很难说更多,但 CTAN 有 vc bundle,而 rcs.sty 很好用,因为人们不仅使用非分布式 VC,甚至还使用并发 VC ...

一旦你得到了字符串(哦,我看到你说手动输入是可以的),你就可以使用它来排版

\title{标题\\\normalsize 版本\versionnumber}

如果你真的希望作者介于两者之间,那么你不能以通常的方式同时使用 \title 和 \author - 你应该把你的名字放在 \title 命令的另一行。

【讨论】:

  • 好答案,但我认为您的意思是 vc 捆绑包,而不是 cv 捆绑包(链接正常)
  • @Matthew:对,错字。我想这并不太令人困惑,因为至少链接是正确的。
【解决方案4】:

简单的手工方法:

  1. 创建一个名为(比如)version.tex 的文件:

    \providecommand{\versionnumber}{3.0.1}

  2. 你需要在哪里使用它:

    \input{version}
    \title{Title\\\normalsize Version \versionnumber}

这将为您在一个或多个项目中提供一个共同的地方来手动更新版本。

【讨论】:

    【解决方案5】:

    如果你只需要在titlepage中显示版本号,你只需要修改它使用

        \begin{titlepage}
        ...
        Version 1.x
        ...
        \end{titlepage}
    

    发出命令后 \maketitle.

    否则,如果您需要在整个文档中多次调用它,最好定义一个变量:

    \def\Version#1{\def\version{#1}}
    

    以便您使用\Version{} 定义版本号并使用\version 调用它。

    【讨论】:

    • ...为什么不直接使用\def\version{bleepbloop}
    【解决方案6】:

    如果您将文档控制在 git 存储库中,则可以使用 the gitinfo package 来实现。如果配置正确(包括在你的 git 系统中添加 post-hooks),你可以简单地使用\gitVtag 来调用版本号(在 git 标签中体现)或者例如\gitAbbrevHash 获取当前提交的 repo 的缩写哈希。

    【讨论】:

    • 这是第一个合理的答案
    【解决方案7】:

    查看包rcsinforcs。它们包括用于从文档中的 RCS 标记中提取数据的键,因此如果您使用 CVS,这将起作用。我在 The LaTeX Companion, pg 837 中找到了这个。在此期间可能已经编写了适用于您选择的 VCS 的内容。

    【讨论】:

      【解决方案8】:

      要提供像\author 这样的\version 命令,您可以:

      \let\theversion=\relax
      \providecommand{\version}[1]{\renewcommand{\theversion}{#1}}
      

      如果您没有使用titlepage 环境,您可以重新定义\maketitle 本身。查看article.cls(或您正在使用的任何类文件),复制并粘贴,然后在任意位置插入\theversion。如果您想在输入标题之前检查版本号,请执行以下操作:

      \def\maketitle{%
      % ... stuff copied from original class file...
      \ifx\theversion\relax
      % do nothing if there is no version defined
      \else\bfseries\theversion% set the version
      \fi
      

      如果标题本身不需要它,可以将其作为脚注添加到日期(这两个属性都与资源的新鲜度有关,因此将它们放在一起很有意义。

      \title{My article}
      \version{v1.2}
      \date{\today\thanks{\theversion}}
      

      【讨论】:

        【解决方案9】:

        我使用包vhistory 作为我文档开头的变更日志表。

        \subject{Institute for nice formatted docs}
        \title{My important document}
        \subtitle{\vhCurrentVersion, \vhCurrentDate}
        \author{Me}
        \date{} % Activate to display a given date or no date (if empty)
        \begin{document}
            \maketitle
            \clearpage
           \begin{versionhistory}
              \vhEntry{v0.1}{17.05.2019}{Me}{First release}
              \vhEntry{v0.2}{12.08.2019}{Someone}{Rewrite of chapter 2 ...}
              \vhEntry{v0.3}{04.03.2021}{Another editor}{Change after feedback of ...}
           \end{versionhistory}
           \tableofcontents
        
           [...]
        \end{document}
        

        通过以下命令,您可以在任何位置获得当前版本和当前日期,可用于标题部分。

        【讨论】:

          猜你喜欢
          • 2011-02-07
          • 1970-01-01
          • 2019-06-06
          • 2018-03-12
          • 1970-01-01
          • 2011-04-29
          • 1970-01-01
          • 2019-06-29
          • 2016-10-14
          相关资源
          最近更新 更多