
Я пытаюсь создать документ, который в произвольном месте будет повторять заголовок с первой страницы.
\documentclass[a4paper,anonymous]{lipics-v2021}
\title{My Paper}
\titlerunning{paper}
\author{Me}{}{}{}{}
\begin{document}
% Generate title
\maketitle
% Any amount of text/sections
lorem ipsum...
% I now want to show exactly the same title again
\maketitle
\end{document}
Однако этот код выводит совершенно неформатированный текст заголовка и параметров автора, приведенных выше.
Несколько ссылок [1,2] предлагаем использовать titling
пакет, хотя здесь есть две проблемы:
- Похоже, я не могу заставить его использовать то,
\maketitle
что определено в.cls
файле для моего проекта (в моем случае это lipics). - Пакет
titling
требует от меня повторить все параметры для\maketitle
. (например\title{..}
,\author{}
, и т.д.).
решение1
В вашем классе, как и в стандартных классах, \maketitle
отключает себя, а также очищает макросы \@title
и \@author
, содержащие метаданные, определенные командами \title{...}
и \author{...}
(см. строки 304 и последующие в [классе lipic-v2021 на github][1]). Следовательно, вы можете \renewcomnand
(в преамбуле) \maketitle
команду с тем же кодом (начиная со строки 287), за исключением строк 304–314.
Стандартное ПРЕДУПРЕЖДЕНИЕ: вы можете сделать это для личного использования. Но никогда не делайте таких изменений, если ваш документ предназначен для отправки в соответствующий журнал/конференцию/редактору (в данном случае для конференций серии LIPIcs). [1]:https://github.com/prosysscience/lipics/blob/master/lipics-v2021.cls
решение2
Глядя наопределение класса, вы найдете (строки 287-315)
\renewcommand\maketitle{\par
\begingroup
\thispagestyle{plain}
\renewcommand\thefootnote{\@fnsymbol\c@footnote}%
\if@twocolumn
\ifnum \col@number=\@ne
\@maketitle
\else
\twocolumn[\@maketitle]%
\fi
\else
\newpage
\global\@topnum\z@ % Prevents figures from going at top of page.
\@maketitle
\fi
\thispagestyle{plain}\@thanks
\endgroup
\global\let\thanks\relax
\global\let\maketitle\relax
\global\let\@maketitle\relax
\global\let\@thanks\@empty
\global\let\@author\@empty
\global\let\@date\@empty
\global\let\@title\@empty
\global\let\title\relax
\global\let\author\relax
\global\let\date\relax
\global\let\and\relax
}
Второй вариант \maketitle
терпит неудачу из-за всех \global\let...\relax
и \global\let...\@empty
.
Вы можете попробовать переопределить его (внутри \makeatletter
и \makeatother
для обработки символа @
в именах макросов).
\makeatletter
\renewcommand\maketitle{\par
\begingroup
\thispagestyle{plain}
\renewcommand\thefootnote{\@fnsymbol\c@footnote}%
\if@twocolumn
\ifnum \col@number=\@ne
\@maketitle
\else
\twocolumn[\@maketitle]%
\fi
\else
\newpage
\global\@topnum\z@ % Prevents figures from going at top of page.
\@maketitle
\fi
\thispagestyle{plain}\@thanks
\endgroup
}
\makeatother
Полный титульный лист, включая нижний колонтитул, печатается снова. Если вам нужен только сам заголовок, вам нужно посмотреть \@maketitle
определение и скопировать нужные вам части.
Пример:
\documentclass[a4paper,anonymous]{lipics-v2021}
\makeatletter
\renewcommand\maketitle{\par
\begingroup
\thispagestyle{plain}
\renewcommand\thefootnote{\@fnsymbol\c@footnote}%
\if@twocolumn
\ifnum \col@number=\@ne
\@maketitle
\else
\twocolumn[\@maketitle]%
\fi
\else
\newpage
\global\@topnum\z@ % Prevents figures from going at top of page.
\@maketitle
\fi
\thispagestyle{plain}\@thanks
\endgroup
}
\makeatother
\title{My Paper}
\titlerunning{paper}
\author{Me}{}{}{}{}
\begin{document}
% Generate title
\maketitle
% Any amount of text/sections
lorem ipsum...
% I now want to show exactly the same title again
\maketitle
\end{document}