这个 TeX 源
\documentclass[a4paper,12pt]{book}
\usepackage[usenames,dvipsnames,svgnames,table,x11names]{xcolor}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[LO,RE]{}
\fancyhead[LE,RO]{{\large{}\color{DarkRed}\rightmark}}
\fancyfoot[C]{\thepage}
\fancyfoot[LE,RO]{\color{DarkRed}\large{}\leftmark}
\fancyfoot[LO,RE]{xxx}
\renewcommand{\headrulewidth}{0.14mm}
\renewcommand{\footrulewidth}{0.14mm}
\setlength\headheight{6mm}
\begin{document}
\markboth{A}{B}
Yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda
yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda yadda
...
\end{document}
使用 XeLaTeX 编译时,将导致以下输出:
如您所见,红色A
与页脚的其余部分没有正确对齐。自然,我首先假设这是由于字体大小,但令人惊讶的是,改变
\fancyfoot[LE,RO]{\color{DarkRed}\large{}\leftmark}
到
\fancyfoot[LE,RO]{\large{}\leftmark}
不仅(自然地)给我一个黑色A
,而且还给我一个正确对齐的黑色:
有没有什么提示说明为什么会这样?有什么解决办法吗?
答案1
包fancyhdr
将页脚元素放入 中\parbox[t]
。开始时,您正在使用\color{...}
。它不会开始新的段落,因此 的第一个顶部元素\parbox[t]
是颜色 whatsit ( \special
)。它与其他条目的基线对齐。A
然后位于颜色 whatsit 下方。
解决方案:颜色什么的应该进入标记内容新段落的第一行,例如:
\leavevmode\color{...}...
或者更简单:\textcolor
自动添加\leavevmode
。它还会在文本参数周围放置一个组,因此\large
可以转到那里。也\large
没有参数,因此{}
after\large
没有任何用处。
\documentclass[12pt]{book}
\usepackage[a6paper,landscape]{geometry}% smaller image for TeX.SX
\usepackage[usenames,dvipsnames,svgnames,table,x11names]{xcolor}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[LO,RE]{}
\fancyhead[LE,RO]{\textcolor{DarkRed}{\large\rightmark}}
\fancyfoot[C]{\thepage}
\fancyfoot[LE,RO]{\textcolor{DarkRed}{\large\leftmark}}
\fancyfoot[LO,RE]{xxx}
\renewcommand{\headrulewidth}{0.14mm}
\renewcommand{\footrulewidth}{0.14mm}
\setlength\headheight{6mm}
\begin{document}
\markboth{A}{B}
\lipsum[1-4]
\end{document}