我希望左侧和右侧标题具有相同的基线,无论它们产生的内容的高度是多少。为了演示这一点,假设
\documentclass{scrartcl}
\usepackage{scrpage2}
\clearscrheadfoot
\renewcommand{\sectionmark}[1]{\markboth{#1}{#1}}
\ohead{\Huge\thesection -- \Large\leftmark}
\ihead{\small Report No. 11}
\ofoot{\small Page \thepage}
\pagestyle{scrheadings}
\begin{document}
\section{First section}
\end{document}
输出相当于
我添加了红线来强调基线的差异。
问题:我怎样才能将它们设置为相同的基线?
考虑的解决方案:
- 在较小的标题上添加类似的内容
\vphantom{\Huge A}
,以隐式地使其具有相同的高度。 - 使用
fancyhdr
时对齐基线(嗯,它会带来其他问题)。
答案1
告诉 LaTeX 你想 \Large
也可以在内标题中设置一个支柱,并向 中添加一些\headheight
。这将确保标题的元素适合保留区域。
我不建议在标题中使用三种不同的字体大小;实际上我建议重新考虑大数字的选择;我删除了非常可怕的破折号。
\documentclass{scrartcl}
\usepackage{showframe}
\usepackage{scrpage2}
\clearscrheadfoot
\renewcommand{\sectionmark}[1]{\markboth{#1}{#1}}
\ohead{\smash{\Huge\thesection}\ \ \Large\leftmark}
\ihead{\small Report No. 11\Large\strut}
\ofoot{\small Page \thepage}
\addtolength{\headheight}{4pt} % Better keeping the number in the reserved box
\pagestyle{scrheadings}
\begin{document}
\section{Start of report}
\end{document}
答案2
这是一个快速的解决方案:使用零高度的盒子来实现对齐:
\documentclass[headlines=1.5]{scrartcl}
\usepackage{scrpage2}
\clearscrheadfoot
\renewcommand{\sectionmark}[1]{\markboth{#1}{#1}}
\ohead{\raisebox{0pt}[0pt][0pt]{\Huge\thesection -- \Large\leftmark}}
\ihead{\raisebox{0pt}[0pt][0pt]{\small Report No. 11}}
\ofoot{\small Page \thepage}
\pagestyle{scrheadings}
\usepackage{tikz}
\begin{document}
\section{First section p}
\begin{tikzpicture}[remember picture,overlay]
\draw[red] ([yshift=-60pt]current page.north west) -- +(\paperwidth,0);
\end{tikzpicture}
\end{document}
我使用 TikZ 只是为了绘制一条视觉指导线。
答案3
你可以使用命令\smash
。技巧解释如下:获取深度为零且包含一些文本的框
\documentclass{scrartcl}
\usepackage{showframe}
\usepackage{scrpage2}
\makeatletter
\clearscrheadfoot
\renewcommand{\sectionmark}[1]{\markboth{#1}{#1}}
\ohead{\smash{\Huge\thesection -- \Large\leftmark}}
\ihead{\smash{\small Report No. 11}}
\ofoot{\small Page \thepage}
\pagestyle{scrheadings}
\begin{document}
\section{First section}
\end{document}