titlesec/titleps와 내부적으로 \markbo를 사용하는 패키지 사이의 잘못된 상호 작용

titlesec/titleps와 내부적으로 \markbo를 사용하는 패키지 사이의 잘못된 상호 작용

다음 MWE는 endfloat및 사이의 잘못된 상호 작용을 보여줍니다 titleps. 두 번째 페이지에는 페이지 스타일 사양과 달리 머리글과 바닥글 모두 대문자로 'FIGURES'라는 단어가 있습니다.

\documentclass[12pt]{article}
\usepackage[heads,nolists]{endfloat}
\usepackage[pagestyles]{titlesec}
\newpagestyle{main}{
  \sethead{}{}{\thepage}
  \setfoot{}{}{}
}
\begin{document}
\pagestyle{main}
\section{Foo}
\section*{Bar}
\begin{figure}
  Blurf
\end{figure}
\end{document}

biblatex또한 영향을 받습니다. 이 경우 REFERENCES는 바닥글과 머리글 모두에 나타납니다.

\begin{filecontents*}{\jobname.bib}
@book{Saussure1995,
    Title = {Cours de Linguistique Générale},
    Publisher = {Payot},
    Year = {1995},
    Author = {Ferdinand de Saussure},
}
\end{filecontents*}
\documentclass{article}
\usepackage{kantlipsum}
\usepackage[style=authoryear]{biblatex}
\addbibresource{\jobname.bib}
\usepackage{titleps}
\newpagestyle{main}{
\setfoot{My footer}{}{\thepage}
}
\pagestyle{main}
\begin{document}
\cite{Saussure1995}
\kant[1-2]
\printbibliography
\end{document}

나는 이것을 추적 endfloat하고 biblatex내부적으로 \mark명령을 사용했습니다. 특히, \markboth아무것도 하지 않도록 재정의하면(여전히 두 개의 인수를 사용함) 문제가 사라집니다 . 하지만 나는 그렇게 하는 것이 특별히 안전하다고 생각하지 않습니다. 최소한 다른 것에도 동일한 처리가 필요한지, 무엇이 깨질 수 있는지 알고 싶습니다.

titleps 문서에서는 "사용하면 \markboth예측할 수 없는 결과가 발생할 수 있다"고 경고하지만, 패키지에서 사용할 수 있다고 생각하는 문서화된 인터페이스인 경우 이는 실망스러운 대처입니다.

제안?

답변1

프리앰블에 다음 줄을 추가합니다.

\makeatletter
\let\ttl@titlemarks\relax
\makeatother

그러면 두 가지 예가 작동합니다. 이것은 또한현재 색인 항목을 포함하도록 색인의 titleps 헤더 사용자 정의.

답변2

답변은 아니지만 코멘트가 너무 깁니다.

명령이 처리되는지 여부와 방법이 \markboth문제의 한 부분입니다. 그러나 예제에서 페이지 스타일은 페이지 번호가 비어 있으므로 표시 명령의 내용을 표시해서는 안 됩니다. 이것은 분명히 버그이므로 titleps 작성자에게 보고해야 합니다. 문제를 보여주는 간단한 예는 다음과 같습니다.

\documentclass[12pt]{article}
\usepackage{titleps}
\newpagestyle{main}{
  \sethead{}{}{}
  \setfoot{}{}{}
}

\begin{document}
\pagestyle{main}
\mark{abc}
blub
\end{document}

머리글과 바닥글에 "bc"를 인쇄합니다.

관련 정보