Lista de Discussão CyrTeX-ru@vsu.ru Mensagem #1151
De: regonly.noreply <CyrTeX-ru@vsu.ru>
Assunto: Re: Задать все данные публикации
Data: Wed, 25 Mar 2009 21:16:04 +0300
Para: Cyrillic TeX Users Group <CyrTeX-ru@vsu.ru>
25.03.09, Alexander I Rozhenko<CyrTeX-ru@vsu.ru> написал(а):
> Проблема в том, что после вывода титула в стандартных классах выполняется
> такая команда
>
> \global\let\@title\@empty
>
> Другими словами, после \maketitle команда \@title уже потеряла своё
> содержимое

Ага, вот в чём собака-то зарыта! Я пока сделал так:


% ------------------------------------------------------ %
%            ДАННЫЕ ПУБЛИКАЦИИ                 %
% ------------------------------------------------------ %
% ---------------   Данные для ввода   --------------- %

\newcommand{\FullAuthor}{Иван Васильевич Грозный} % Полное имя (full)
\newcommand{\NameAuthor}{Иван Грозный} % Имя и фамилия (name)
\newcommand{\ShrtAuthor}{И.\,В.~Грозный} % И.О. Фамилия (short)
\newcommand{\TrueAuthor}{Рюриков Иван Васильевич} % Настоящее имя (true)

\newcommand{\FullSeriesName}{Указ царя Всея Руси} % Полное название серии
\newcommand{\SeriesAbbr}{ЦУ} % Короткое название серии
\newcommand{\NumberNoYear}{1} % Номер в серии за год
\newcommand{\NumberNoTotal}{155} % Номер в серии за всё время

\newcommand{\FullTitle}{Как беречь и~приумножать державу русскую} %
Название работы
\newcommand{\ShrtTitle}{Как беречь державу\ldots} % Короткое название раБоты
\newcommand{\SubTitle}{Инструкция для государей} % Подназвание

\newdate{PubDate}{25}{01}{1565} % Дата публикации, значение
\newdate{Wr1Date}{15}{01}{1565} % Дата написания начальная, значение
\newdate{WrDate}{24}{01}{1565} % Дата написания конечная, значение
\newdate{RevDate}{}{}{} % Дата внесения уточнений, значение
\newdate{AddDate}{}{}{} % Дата внесения дополнений, значение

\newcommand{\BBK}{} % ББК
\newcommand{\UDK}{} % УДК
\newcommand{\ISBN}{} % ISBN

\newcommand{\KeyWords}{} % Список ключевых слов для поиска в интернете

% ---------------   Настройки стиля    --------------- %

\usepackage{datetime} % ЗАГРУЖАТЬ ПОСЛЕ babel!
\newcommand{\PubDateFull}{\displaydate{PubDate}} % Дата публикации
вида: 25 января 1565 г.)
\newcommand{\PubDateShrt}{\MyTeX{\displaydate{PubDate}}} % Дата
публикации вида: 1565/01/25
\newcommand{\PubYear}{\getdateyear{PubYear}} % Год публикации (publish)
\newcommand{\WrDate}{\displaydate{Wr1Date} "--- \displaydate{WrDate}}
% Дата или диапазон написания
\newcommand{\WrYear}{\getdateyear{WrYear}} % Год написания

\newcommand{\FullNumberName}{\FullSeriesName
№\,\NumberNoYear\,(\NumberNoTotal),~\PubYear} % Полное название
серийного номера
\newcommand{\AbbrNumberName}{\SeriesAbbr-\NumberNoYear(\NumberNoTotal)-\PubYear}
% Аббревиатура серийного номера

% ---------------------------------------------------- %

Соответственно, далее применяем:

\hypersetup{
 pdftitle=\FullAuthor. \FullTitle,
 pdfauthor=\TrueAuthor,
 pdfsubject=\FullSeries: \FullTitle,
 pdfkeywords={\KeyWords}
}

\renewcommand*{\leftmark}{\FullTitle}
\renewcommand*{\title}{\FullTitle}
\renewcommand*{\author}{\NameAuthor}

и т. д.

Идея мне нравится всё больше и больше, можно было даже такой пакет
сделать, многим бы пригодилось, что все данные можно было бы вводить
в одном месте. Правда, я вряд ли справлюсь, у меня слишком мало опыта.

И надо бы причесать. Во-первых, какие могут ещё понадобиться категории
(тут пригодился бы опыт написания диссертаций, периодических публикаций
в институте, например). Во-вторых, оптимальным образом задать команды.
Так, не знаю, нужно ли возиться с диапазоном дат написания, которые
приводятся обычно в конце (типа "январь 1969 г., Комарово "--- май
1970 г., Киев"). Но если возиться, то надо оптимизировать, чтобы,
например, в

\newcommand{\WrDate}{\displaydate{Wr1Date} "--- \displaydate{WrDate}}
% Дата или диапазон написания

первая дата автоматически игнорировалась бы, если ничего не задано
(чтобы не править каждый раз вручную).
Subscribe (FEED) Subscribe (DIGEST) Subscribe (INDEX) Unsubscribe Mensagem para o Administrador da Lista