Проблема с scrbook и scrpage2 при определении нового стиля страницы

Проблема с scrbook и scrpage2 при определении нового стиля страницы

Я пишу кумулятивную диссертацию в , scrbookв которую мне нужно встроить несколько публикаций в PDF. Это нормально работает с includepdf, но я подумал, что было бы неплохо сохранить информацию о верхнем и/или нижнем колонтитуле на месте, чтобы читателям было легче понять, где они находятся. Я использовал стандартный стиль страницы «заголовки», чтобы поместить информацию о главе/разделе в верхний колонтитул, а номер страницы — по центру нижнего колонтитула. Однако для PDF это проблема, потому что номер страницы печатается поверх нижнего колонтитула публикации, что делает оба нечитаемыми. Поэтому я попытался поместить и название главы, и номер страницы в верхний колонтитул. В итоге я определил свой собственный стиль, и он отлично работает, но по какой-то причине в нижнем колонтитуле первой страницы новой главы внезапно появляется номер страницы — который обычно должен быть простым. Можете ли вы рассказать мне, как это произошло?

Вот мой MWE:

\documentclass[a4paper, twoside, BCOR=15mm, 11pt, numbers=noenddot, DIV=12]{scrbook}

\usepackage[english]{babel}

% changing headers and footers
\usepackage[automark,headsepline]{scrpage2}
\defpagestyle{mystyle}{%
    (0pt, 0pt)
    {\headmark\hfill\pagemark}
    {\pagemark\hfill\headmark}
    {\pagemark\hfill\headmark}
    (\textwidth, 0.5pt)
}{%
    {\hfill}{\hfill}{\hfill}
}
\pagestyle{mystyle}
\usepackage{blindtext}

\begin{document}

\blinddocument

\end{document}

решение1

Страницы глав используют pagestyle plainпо умолчанию. Поэтому вам придется изменить и этот pagestyle. Кроме того, вы можете использовать предопределенный стиль scrheadings.

\documentclass[BCOR=15mm, numbers=noenddot, DIV=12]{scrbook}
\usepackage[english]{babel}

% changing headers and footers
\usepackage[automark,headsepline]{scrpage2}
\pagestyle{scrheadings}
\clearscrheadfoot% removes the default content of header and footer
\setheadsepline{.5pt}
\ohead{\headmark}
\ihead[\pagemark]{\pagemark}

\usepackage{blindtext}
\begin{document}
\blinddocument
\end{document}

Если на странице главы не должно быть номера страницы, удалите необязательный аргумент \ihead.


Обратите внимание, что scrpage2это устарело. Я бы рекомендовал использовать его преемника scrlayer-scrpage:

\documentclass[BCOR=15mm, numbers=noenddot, DIV=12]{scrbook}
\usepackage[english]{babel}

% changing headers and footers
\usepackage[automark,headsepline=.5pt]{scrlayer-scrpage}
\clearpairofpagestyles% removes the default content of header and footer
\ohead{\headmark}
\ihead*{\pagemark}

\usepackage{blindtext}
\begin{document}
\blinddocument
\end{document}

Если на странице главы не должно быть номера страницы, используйте \ihead{\pagemark}вместо него версию, помеченную звездочкой.

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