在用 LaTeX 完成我的论文后(我是一个绝对的新手),我被要求按照与我收到的文档文件相匹配的特定设计来格式化它。
我已成功更改标题、字体和边距,但在页眉方面遇到了麻烦。
以下是我想要实现的目标:
我尝试过摆弄它fancyhdr
- 但是在花了一个小时阅读文档之后,我不确定它是否能满足我的需要。
您能给我指明正确的方向吗?
具体问题: - 我应该使用什么包来实现这一点? - 如何创建忽略页边距的浮动框?
答案1
页码的示例使用\llap
/\rlap
在不移动当前点的情况下向左/向右打印一些内容。
\documentclass[twoside]{book}
\usepackage[
headheight=14pt,
]{geometry}
\usepackage{color}
\definecolor{bgpagenum}{gray}{.82}
\definecolor{fgheader}{gray}{.5}
\usepackage{fancyhdr}
\pagestyle{fancy}
\makeatletter
\let\ps@plain\ps@fancy
\makeatother
\fancyhead{}
\fancyfoot{}
\renewcommand*{\headrulewidth}{0pt}
\renewcommand*{\footrulewidth}{0pt}
\fancyhead[RO]{%
\textcolor{fgheader}{%
\rightmark
\rlap{%
\hspace{\marginparsep}%
\hspace{-\fboxsep}%
\colorbox{bgpagenum}{%
\makebox[\textwidth][l]{\thepage}%
}%
}%
}%
}
\fancyhead[LE]{%
\textcolor{fgheader}{%
\llap{%
\colorbox{bgpagenum}{%
\makebox[\textwidth][r]{\thepage}%
}%
\hspace{\marginparsep}%
\hspace{-\fboxsep}%
}%
\leftmark
}%
}
% sans serif font as main font
\renewcommand*{\familydefault}{\sfdefault}
\begin{document}
\chapter{Asdfg}
\section{Hjkl}
\newpage
\section{Yuip}
\end{document}
我使用了\marginparsep
从页码到正文的水平距离。然后页码将与边注(如果有)垂直对齐。如果页码也应该在边注之外,则添加\hspace{\marginparwidth}
。灰色框的长度可以计算出来:
\dimexpr\paperwidth-\textwidth-1in-\oddsidemargin\relax % odd pages
\dimexpr\paperwidth-\textwidth-1in-\evensidemargin\relax % even pages
该示例通过使用更大的宽度(\textwidth
)来简化它。
其他事情取决于所使用的类/包以及您已经管理的内容。