18

我的 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

4

9 回答 9

18

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

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

\begin{document}
\maketitle
于 2010-04-20T20:23:50.757 回答
14

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

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

于 2011-03-07T23:48:46.913 回答
6

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

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

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

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

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

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

于 2010-04-14T07:47:44.437 回答
3

简单的手动方法:

  1. 创建一个名为 (say) 的文件version.tex

    \providecommand{\versionnumber}{3.0.1}

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

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

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

于 2010-04-14T10:14:46.057 回答
2

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

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

发出命令 \maketitle 后。

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

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

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

于 2010-04-14T10:14:27.057 回答
2

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

于 2018-03-15T16:25:42.720 回答
1

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

于 2010-04-14T14:27:14.017 回答
1

要提供\version类似的命令\author,您可以:

\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}}
于 2010-04-16T13:54:21.053 回答
0

我在文档开头使用包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}

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

于 2021-04-26T12:05:34.450 回答