|
Не нравится мне, что в автоматически проставляемых датах,
например, \today и \displaydate{PubDate} (пакет datetime) про-
бел между годом и буквой "г." (1945 г.) слишком широкий.
Хочется полупробел "\,". Кроме того, он почему-то ещё и растя-
гивается, что выглядит в некоторых строках очень плохо, хотя
определён он как нерастяжимый "~" в соотв. файлах.
Пробел "~" как раз растяжимый, но не разбиваемый.
\DeclareRobustCommand*\daterussian{%
\renewcommand{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day~\monthnamerussian[\@month]\ \number\@year~\cyrg.}}
==========================================
Пытаюсь в преамбуле переопределить:
\addto{\daterussian}{\renewcommand*{\daterussian}{%
...
\makeatletter
\renewcommand*{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day~\monthnamerussian[\@month]\ \number\@year\,\cyrg.}
\selectlanguage{russian}
\makeatother
но эффект проявляется только для \today, для команд пакета datetime
никакой разницы нет.
Я кажется понимаю в чём дело. Вы дописали к команде \daterussian переопределение команды \today и переопределили \formatdate в преамбуле документа.
Команда \daterussian исполняется Бабелем после \begin{document}. В ней сначала исполняется её старый код, а затем её содержимое заменяется на новое. Но в старом содержимом есть переопределение команды \formatdate, которое срабатывает позже Вашего переопределения, а не до него.
Я думаю такой вариант может помочь:
\makeatletter
addto{\daterussian}{\renewcommand*{\daterussian}{%
\renewcommand*{\formatdate}[3]{%
\@day=##1\relax\@month=##2\relax\@year=##3\relax
\number\@day~\monthnamerussian[\@month]\ \number\@year\,\cyrg.}
\def\today{\number\day~\ifcase\month\or
\cyrya\cyrn\cyrv\cyra\cyrr\cyrya\or
\cyrf\cyre\cyrv\cyrr\cyra\cyrl\cyrya\or
\cyrm\cyra\cyrr\cyrt\cyra\or
\cyra\cyrp\cyrr\cyre\cyrl\cyrya\or
\cyrm\cyra\cyrya\or
\cyri\cyryu\cyrn\cyrya\or
\cyri\cyryu\cyrl\cyrya\or
\cyra\cyrv\cyrg\cyru\cyrs\cyrt\cyra\or
\cyrs\cyre\cyrn\cyrt\cyrya\cyrb\cyrr\cyrya\or
\cyro\cyrk\cyrt\cyrya\cyrb\cyrr\cyrya\or
\cyrn\cyro\cyrya\cyrb\cyrr\cyrya\or
\cyrd\cyre\cyrk\cyra\cyrb\cyrr\cyrya\fi
\ \number\year\,\cyrg.}}}
\makeatother
|
|