Добавьте номер версии к заголовку документа 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
,
Простой ручной метод:
Создайте файл с именем (скажем)
version.tex
:\providecommand{\versionnumber}{3.0.1}
Где вам нужно это использовать:
\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}
С помощью следующих команд вы получаете в любой позиции текущую версию и текущую дату, которые можно использовать в разделе заголовка.