![更新](https://linux22.com/image/298272/%E6%9B%B4%E6%96%B0.png)
在下面的 MWE 中,我想定义一个尺寸,并且当要打印脚注时,usep
蓝色边距(uhsep
和ufsep
)是否等于它,并且(绿色)等于它的一半。否则,和应该等于。请注意,距离应该从、和测量。也不应该移动。ubsep
uhsep
ubsep
usep
headrule
footnoterule
footrule
headrule
footrule
经过评论,我已经使用 、 和 实现了基本布局(uhsep
= ubsep
= usep
):headsep
bottom
footskip
%pages without footnotes
\def\usep{1cm}
\newdimen\hsep \setlength{\hsep}{\dimexpr\usep+.3\baselineskip\relax}
\newdimen\fskip \setlength{\fskip}{\dimexpr\usep+.9\baselineskip\relax}
\newdimen\bmar \setlength{\bmar}{2.5cm} \addtolength{\bmar}{\dimexpr\usep-30pt+.9\baselineskip\relax}
\newgeometry[left=3.5cm, right=1.5cm, top=2.5cm, bottom=\bmar, headsep=\hsep, footskip=\fskip, showframe]{geometry}
\documentclass[a4paper,titlepage,11pt,twoside,openright]{report}
\usepackage[left=3.5cm, right=1.5cm, top=2.5cm, bottom=2.5cm, showframe]{geometry}
\usepackage{lipsum}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage[pagestyles,explicit]{titlesec}
\makeatletter
\renewcommand\setheadrule[1]{%
\ifdim#1=\z@ \let\makeheadrule\@empty
\else \def\makeheadrule{{\color{red}\rule[-.3\baselineskip]{\linewidth}{#1}}} \fi}
\renewcommand\setfootrule[1]{%
\ifdim#1=\z@ \let\makefootrule\@empty
\else \def\makefootrule{\color{red}\rule[.9\baselineskip]{\linewidth}{#1}} \fi}
\makeatother
\newpagestyle{main}{ \headrule \footrule
\sethead[][][\color{red}\sffamily Chapter title] %even
{\color{red}\sffamily Section title}{}{} %odd
\setfoot[\color{red}\sffamily\thepage][][\color{red}\sffamily Degree] %even
{\color{red}\sffamily Theis title}{}{\color{red}\sffamily\thepage} %odd
}
\begin{document}
%Change seps, skips...
\pagestyle{main}
\lipsum[1-2]
\footnote{This is a footnote}
\lipsum[3-4]
\footnote{This is another footnote}
\lipsum[5-7]
\end{document}
解决方案使用 titlesec 和 geometry,它提供了一个命令\updategeometry{<tbmargin>}{<sep>}
,其中<tbmargin>
是顶部和底部边距,根据主要头部和脚部规则进行测量,是从规则到文本的分离。
\def\chapv{1cm} \def\usep{0cm}
\def\tbmargin{\dimexpr\usep+\chapv\relax}
\def\hsep{\dimexpr.3\baselineskip+\usep\relax}
\def\fskip{\dimexpr.9\baselineskip+\usep\relax}
\newcommand\updategeometry[2]{
\def\chapv{#1} \def\usep{#2}
\newgeometry{left=3.5cm, right=1.5cm, top=\tbmargin, bottom=\tbmargin, headsep=\hsep, footskip=\fskip}
}
答案1
这是对评论中修改后的问题的回答 - 而不是对你原始问题的回答。我认为原始问题远非直截了当,即使可以解决。
我认为这是对的,但我不确定。您需要将\ulength
您提到的尺寸设置为所需值的一半。geometry
然后用于设置headsep
和用于管理页眉和页脚:footskip
fancyhdr
\documentclass[a4paper,titlepage,11pt,twoside,openright]{report}
\usepackage{geometry}
\usepackage{lipsum}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage[pagestyles,explicit]{titlesec}
\newlength{\ulength}
\setlength{\ulength}{5mm}
\geometry{left=3.5cm, right=1.5cm, top=2.5cm, bottom=2.5cm, footskip=2\ulength, headheight=30pt, headsep=\ulength, showframe}
\usepackage{fancyhdr}
\fancypagestyle{main}{%
\fancyhf{}%
\fancyhf[loh]{\color{red}\sffamily Section title}%
\fancyhf[reh]{\color{red}\sffamily Chapter title}%
\fancyhf[lof]{\color{red}\sffamily Thesis title}%
\fancyhf[rof,lef]{\color{red}\sffamily\thepage}%
\fancyhf[ref]{\color{red}\sffamily Degree}%
\renewcommand{\footrulewidth}{.4pt}%
\renewcommand{\headrule}{%
\color{red}\rule[\ulength]{\headwidth}{\headrulewidth}}%
\renewcommand{\footrule}{%
\color{red}\rule[\dimexpr-2\ulength]{\headwidth}{\footrulewidth}\vss}}
\begin{document}
%Change seps, skips...
\pagestyle{main}
\lipsum[1-2]
\footnote{This is a footnote}
\lipsum[3-4]
\footnote{This is another footnote}
\lipsum[5-7]
\end{document}
请注意,我之所以使用,fancyhdr
是因为它更容易一致地布局页面。此外,fancyhdr
如果由于空间不足等原因出现问题,它会告诉您。
我过去常常geometry
设置footskip
等,因为如果您使用该包,则需要使用它来更改页面布局。否则,它不知道您已经更改了内容,并且在计算长度时无法考虑这些更改。因此,即使您指定了“本机”尺寸(例如)footskip
,也请确保使用geometry
。
更新
为了让章节和节标题自动包含在页眉中,我会做类似下面的事情。部分原因是我不太熟悉它,titlesec
也从未将它用于页眉和页脚。我主要使用它是fancyhdr
因为它会告诉您页眉或页脚的大小是否太小,并告诉您需要多大。这对于适当地布局页面很有用。但是,我看不出有什么理由不能用titleps
和 drop来替代它fancyhdr
。
\documentclass[a4paper,titlepage,11pt,twoside,openright]{report}
\usepackage{geometry}
\usepackage{lipsum}
\usepackage[usenames,dvipsnames,svgnames,table]{xcolor}
\usepackage{titlesec}
\newlength{\ulength}
\setlength{\ulength}{5mm}
\geometry{left=3.5cm, right=1.5cm, top=2.5cm, bottom=2.5cm, footskip=2\ulength, headheight=30pt, headsep=\ulength}
\usepackage{fancyhdr}
\fancypagestyle{main}{%
\fancyhf{}%
\fancyhf[loh]{\color{red}\sffamily \rightmark}%
\fancyhf[reh]{\color{red}\sffamily \leftmark}%
\fancyhf[lof]{\color{red}\sffamily Thesis title}%
\fancyhf[rof,lef]{\color{red}\sffamily\thepage}%
\fancyhf[ref]{\color{red}\sffamily Degree}%
\renewcommand{\footrulewidth}{.4pt}%
\renewcommand{\headrule}{%
\color{red}\rule[\ulength]{\headwidth}{\headrulewidth}}%
\renewcommand{\footrule}{%
\color{red}\rule[\dimexpr-2\ulength]{\headwidth}{\footrulewidth}\vss}}
\begin{document}
%Change seps, skips...
\pagestyle{main}
\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{%
\markright{#1}}
\chapter{Chapter title}
\lipsum[1-2]
\footnote{This is a footnote}
\section{Section title}
\lipsum[3-4]
\footnote{This is another footnote}
\lipsum[5-12]
\end{document}