LaTeX: автоматически обновлять '\ leftmark' в '\ chapter * {abc123}' - PullRequest
5 голосов
/ 10 сентября 2010

В моем текущем документе есть некоторые главы, которые необходимо добавить с помощью команды \chapter*, потому что я не хочу, чтобы они были настоящими главами (нет записи в toc, нет номера главы...).Это отлично работает.

Но в моем заголовке я хочу, чтобы отображался chapter-name.Я использую fancyheaders и \leftmark:

\fancyhead[RO,LE]{\leftmark}

Проблема заключается в том, что для глав, добавленных с помощью \chapter* -команды, \leftmark не обновляется, поэтому в заголовке по-прежнему отображаетсяназвание главы предыдущей главы.

Поэтому мне либо нужно принудительно \chapter* автоматически обновить \leftmark, либо я переключаюсь на \chapter -команду, но предотвращаю другие вещи, которые появляются (записьв ток, ...).но я не знаю как!Есть идеи?

Ответы [ 5 ]

3 голосов
/ 26 февраля 2013

Формы * команд \chapter и т. Д. Не вызывают команды метки. Поэтому, если вы хотите, чтобы ваше предисловие устанавливало информацию заголовка, но не нумеровалось и не помещалось в оглавление, вы должны выполнить команду \markboth самостоятельно, например,

\chapter*{abc123\markboth{abc123}{}}
3 голосов
/ 14 марта 2011

Я только что переопределил команду главы и раздела на то, что мне нужно, и явно установил \leftmark. Команды главы больше не смогут использовать левую метку, но мне все равно, поскольку я использую свои команды \nnchapter и \nnsection во всем документе

\newcommand{\nnchapter}[1]{
   \phantomsection
   \addcontentsline{toc}{chapter}{#1}\renewcommand{\leftmark}{#1}\chapter*{#1}
}
\newcommand{\nnsection}[1]{
   \phantomsection
   \addcontentsline{toc}{section}{#1}\renewcommand{\leftmark}{#1}\section*{#1}
}
2 голосов
/ 27 августа 2012

Попробуйте это:

 \let\oldleftmark=\leftmark
    \chapter*{My New Leftmark}
    \renewcommand{\leftmark}{My New Leftmark}
      ...
      Your text
      ...
    \pagebreak
    \chapter{Next Chapter}
    \let\leftmark=\oldleftmark

pagebreak требуется для обеспечения использования нового lefmark

1 голос
/ 10 сентября 2010

хорошо, я сделал это!решение состоит в том, чтобы переопределить \ leftmark только в пределах определенного блока!довольно просто, если вы это знаете;)

{
    \renewcommand{\leftmark}{ABC123}
    \chapter*{ABC123}

    %... and so on ...
}
0 голосов
/ 10 сентября 2010

Я не уверен, что это будет работать, потому что у меня не установлен LaTeX на моем текущем компьютере ...

Но вы можете попробовать установить команду \ markleft после вашей команды \ chapter * следующим образом:

\chapter*{Chapter title goes here}
\markleft{Chapter title goes here}  % content should be added to the \leftmark

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...