Добавьте номер версии к заголовку документа LaTeX - PullRequest
14 голосов
/ 14 апреля 2010

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

Итак:

Название

Me

4/13/2010

v1.2

Ответы [ 8 ]

16 голосов
/ 21 апреля 2010

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

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

\begin{document}
\maketitle
11 голосов
/ 08 марта 2011

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

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

6 голосов
/ 14 апреля 2010

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

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

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

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

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

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

3 голосов
/ 14 апреля 2010

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

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

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

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

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

чтобы вы определяли номер версии с помощью \Version{} и вызывали его с помощью \version.

2 голосов
/ 14 апреля 2010

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

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

    \providecommand{\versionnumber}{3.0.1}

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

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

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

1 голос
/ 16 апреля 2010

Чтобы предоставить команду \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}}
1 голос
/ 14 апреля 2010

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

0 голосов
/ 15 марта 2018

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

...