Добавьте номер версии к заголовку документа LaTeX

Раздел заголовка моих документов 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, но как я могу получить номер версии, который будет отображаться после даты (после автора)? Я могу вручную установить номер версии.

Так:

заглавие

мне

4/13/2010

v1.2

9 ответов

Решение

Мой ответ, вероятно, слишком поздно для оригинальной темы, но у Latex есть очень интересный пакет под названием vrsion (нет 'e'), который является частью стандартного дистрибутива. По сути, он нумерует файл.dvi, то есть число увеличивается при каждом запуске Latex.

Лично я использую это как простой обходной путь из-за отсутствия удобного для человека номера версии документа от Git. Не идеально, но иногда у меня есть несколько копий моих документов, и это помогает избежать путаницы.

Самый простой способ сделать именно то, что я хотел сделать, это просто использовать:

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

\begin{document}
\maketitle

Для многих систем контроля версий программы регистрации и извлечения будут расширять определенные строки в документах до метаданных, которые система контроля версий имеет о системе, включая номер версии.

Если вы включите эти строки в текстовые определения Tex, вы можете использовать их в своих документах.

Трудно сказать больше, не зная, какую систему управления версиями вы используете, но у CTAN есть пакет vc, и rcs.sty приятно использовать, для людей, которые все еще используют не только нераспределенный, но и даже параллельный VC...

Как только у вас есть строки (о, я вижу, вы сказали, что ручной ввод в порядке), вы можете набрать это с помощью

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

Если вы действительно хотите, чтобы автор находился между ними, то вы не можете использовать \ title и \author вместе обычным способом - вы должны поместить свое имя в другую строку в команде \ title.

Если ваш документ контролируется внутри репозитория git, то этого можно достичь с помощью пакета gitinfo. Если правильно настроено (что включает добавление пост-хуков в вашу систему git), вы можете просто использовать \gitVtag позвонить по номеру версии (как указано в теге git) или, например, \gitAbbrevHash получить сокращенный хэш текущего коммита репо.

Если вам нужно отобразить номер версии только на титульном листе, вам просто нужно изменить его, используя

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

после выдачи команды \ maketitle.

В противном случае, если вам нужно будет вызывать его несколько раз по всему документу, лучше определить переменную:

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

так что вы определяете номер версии с \Version{} и вспомнить это с \version,

Простой ручной метод:

  1. Создайте файл с именем (скажем) version.tex:

    \providecommand{\versionnumber}{3.0.1}

  2. Где вам нужно это использовать:

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

Это даст вам единое место в вашем проекте или проектах для обновления версии вручную.

Посмотрите на пакеты rcsinfo а также rcs, Они включают ключи для извлечения данных из тегов RCS в вашем документе, так что это будет работать, если вы используете CVS. Я нашел это в LaTeX Companion, стр. 837. Что-то, что работает с выбранной вами VCS, возможно, было написано за это время.

Чтобы обеспечить \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}}

Я использую пакет 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}

С помощью следующих команд вы получаете в любой позиции текущую версию и текущую дату, которые можно использовать в разделе заголовка.

Другие вопросы по тегам