并行环境破坏 fancyhdr

并行环境破坏 fancyhdr

我有一章完全包含在parallel环境中。将章节标题放在环境之外会导致创建一个空白页(仅包含章节标题)并从下一页开始翻译。将标题放在环境内解决了这个问题:

...

\begin{Parallel}[p]{\textwidth}{\textwidth}
\ParallelLText{\section{Translation} In the preceding chapter...

然而,这导致了另一个问题:我习惯fancyhdr将当前(子)部分的标题放在页面顶部,但这个特定部分变得不可见并且被完全忽略,所以不管我的最后一部分是否已经开始,最后一部分的标题仍保留在标题中。

我不确定这是否是由于我误用了环境parallel,但我想知道是否有一个简单的解决方法。

这是我的 MWE。请注意,parallel在显示之前会创建额外的页面,但我的标题问题仍然存在。

\documentclass[12pt, twoside]{article}
\usepackage[a4paper, margin=2.5cm, asymmetric,bindingoffset=1cm]{geometry}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{parallel}
\usepackage{lipsum}

\renewcommand{\headrulewidth}{.5pt}

\pagestyle{fancy}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\renewcommand{\subsectionmark}[1]{\markright{#1}}
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[LO,RE]{\slshape\nouppercase{\rightmark}}

\raggedbottom
\begin{document} 

\section{First title}
\lipsum[1]

\pagebreak
\section{Second title}
\lipsum[2]

\pagebreak%
\begin{Parallel}[p]{\textwidth}{\textwidth}
\ParallelLText{\section{Translation} \lipsum[3-7]} 
\ParallelRText{\lipsum[3-7]}
\end{Parallel}
\end{document}

答案1

该包parallel使用\vsplit其工作;\mark\markright(和\markboth)发出的命令存储在\splitfirstmark和中,\splitbotmark而不是\firstmark和朋友中。

如果你只是使用\rightmark以下解决方法似乎可以工作,但应该用更大的文档进行测试。我假设章节标题在左页。

这个想法是,如果出现一个标记,它将被存储在中\splitfirstmark,所以我测试它是否为空;如果不是,我会发出适当的\markright命令。

\documentclass[12pt, twoside]{article}
\usepackage[a4paper, margin=2.5cm, asymmetric,headheight=14.5pt,bindingoffset=1cm]{geometry}
\usepackage[T2A,T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr}
\usepackage{parallel}
\usepackage{etoolbox}

\patchcmd{\ParallelParTwoPages}
  {\else\ifodd}
  {\extractfirstmark\else\ifodd}
  {}{}

\makeatletter
\newcommand{\extractfirstmark}{%
  \if\relax\detokenize\expandafter{\splitfirstmark}\relax
  \else
    \expandafter\expandafter\expandafter\markright
    \expandafter\expandafter\expandafter{\expandafter\@secondoftwo\splitfirstmark}%
  \fi
}
\makeatother

\usepackage{lipsum}

\renewcommand{\headrulewidth}{.5pt}

\pagestyle{fancy}
\renewcommand{\sectionmark}[1]{\markright{#1}}
\renewcommand{\subsectionmark}[1]{\markright{#1}}
\fancyhf{}
\fancyhead[LE,RO]{\thepage}
\fancyhead[LO,RE]{\slshape\nouppercase{\rightmark}}

\raggedbottom
\begin{document} 

\section{First title}
\lipsum[1]

\pagebreak
\section{Second title}
\lipsum[2]

\clearpage

\begin{Parallel}[p]{\textwidth}{\textwidth}
\ParallelLText{\section{Translation} \lipsum[3-12]} 
\ParallelRText{\lipsum[3-12]}
\end{Parallel}
\end{document}

在此处输入图片描述

相关内容