Можно ли использовать в заголовках как длинное, так и короткое название раздела?

Можно ли использовать в заголовках как длинное, так и короткое название раздела?

Я использую fancyhdrи следуюэтот ответЯ переопределил \sectionmarkэто так:

\renewcommand{\sectionmark}[1]{\markboth{#1}{}}

так что

\fancyhead[RO,LE]{\leftmark}

дает название текущего раздела в заголовке справа для нечетных страниц и слева для четных страниц. Это может показаться странным, но я бы хотел дополнительнокороткийназвание раздела, который нужно перейтидругойсторона заголовка. Так, например, если я объявил

\section[short name]{long name}

то мои страницы будут иметь заголовки с "коротким именем" с одной стороны и "длинным именем" с другой. Можно ли это сделать? Я предполагаю, что мне нужно будет использовать \fancyhead[RE,LO]{\rightmark}инженерные вещи, которые \rightmarkвыдают короткое имя раздела. Но у меня не получилось с этим. Также, предоставляя короткое имя для \section[]{}, вместо этого используется короткое имя \leftmark.

(Зачем я это делаю? Каждый из этих разделов имеет новое название в соответствии с новым соглашением об именовании и старое название в соответствии со старым соглашением об именовании. Я пытаюсь схитрить и использовать, \section[]{}чтобы объявить как новое, так и старое название, и чтобы оба отображались в заголовке. В этом документе не будет оглавления, и я не предвижу никакого другого использования коротких названий.)

решение1

Это некрасиво, но работает.

\documentclass{article}
\usepackage{everypage}
\usepackage{lipsum}

\newlength{\headeroffset}
\newcommand{\shortname}{}
\newcommand{\longname}{}

\newcommand{\myhead}[2]% #1 = short name, #2 = long name
{\def\shortname{#1}%
\def\longname{#2}%
\settodepth{\headeroffset}{{#1}{#2}}% distance from baseline to bottom
\global\headeroffset=\headeroffset}

\newcommand{\writeheader}{%
\begingroup% preserve global \headeroffset
\advance \headeroffset by -\topmargin% to top of header
\advance \headeroffset by -\headheight% to botom of header
\ifodd\value{page}\raisebox{\headeroffset}[0pt][0pt]{\hspace{\oddsidemargin}%
  \makebox[\textwidth][l]{{\shortname}\hfill{\longname}}%
  \hspace{-\textwidth}\hspace{-\oddsidemargin}}% return cursor to left
\else\raisebox{\headeroffset}[0pt][0pt]{\hspace{\evensidemargin}%
  \makebox[\textwidth][l]{{\longname}\hfill{\shortname}}%
  \hspace{-\textwidth}\hspace{-\evensidemargin}}% return cursor to left
\fi\endgroup}
\AddEverypageHook{\writeheader}

\begin{document}
\pagestyle{plain}
\myhead{Short name}{This is a long name}
\lipsum[1-12]
\end{document}

Связанный контент