fancyhdr
我正在尝试使用和包自定义标题规则tikz
。我希望规则可以超出边距。为了做到这一点,我认为用tikz
from画一条线(-1,0) to (18,0)
会使每边的边距超出 1 厘米,但我得到的结果是这条线只越过了左边距,而不是右边距。这是我的代码的 MWE:
\documentclass[12pt,a4paper]{report}
\usepackage{geometry}
\geometry{
left = 2cm,
right = 2cm,
top = 3cm,
bottom = 2cm
}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{Ex Tunc}
\chead{\( \circledast \)}
\rhead{Ex Nunc}
\renewcommand{\headrule}{%
\raisebox{.3cm}{%
\begin{tikzpicture}[x=1cm,y=1cm]
\draw (-1,0) to (18,0);
\end{tikzpicture}
}
}
\begin{document}
\lipsum[1-20]
\end{document}
下面是我得到的图像(上图)和我想要的图像(下图):
答案1
快速破解:在规则前面放置一个负空间。
\documentclass[12pt,a4paper]{report}
\usepackage{geometry}
\geometry{
left = 2cm,
right = 2cm,
top = 3cm,
bottom = 2cm
}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{Ex Tunc}
\chead{\( \circledast \)}
\rhead{Ex Nunc}
\renewcommand{\headrule}{%
\hspace*{-1cm}%
\raisebox{.3cm}{%
\begin{tikzpicture}[x=1cm,y=1cm]
\draw (-1,0) to (18,0);
\end{tikzpicture}
}
}
\begin{document}
\lipsum[1-20]
\end{document}
另一种方法是使用带有remember picture, overlay
选项的 tikzpicture。这样做的好处是可以避免出现框过满的警告。
\documentclass[12pt,a4paper]{report}
\usepackage{geometry}
\geometry{
left = 2cm,
right = 2cm,
top = 3cm,
bottom = 2cm
}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{fancyhdr}
\pagestyle{fancy}
\lhead{Ex Tunc}
\chead{\( \circledast \)}
\rhead{Ex Nunc}
\renewcommand{\headrule}{%
\raisebox{.3cm}{%
\begin{tikzpicture}[x=1cm,y=1cm,remember picture, overlay]
\draw (-1,0) to (18,0);
\end{tikzpicture}
}
}
\begin{document}
\lipsum[1-20]
\end{document}
答案2
您不需要为此使用像 tikz 这样的 hammersledge:titleps
附带的包titlesec
可以替换fancyhdr
,它定义了一个widenhead
命令:
\documentclass[12pt, a4paper]{report}
\usepackage{geometry}
\geometry{%
hmargin = 2cm,
top = 3cm,
bottom = 2cm
}%
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{titleps}
\newpagestyle{wide}{%
\headrule
\sethead{\hspace{1cm}Ex Tunc}{\( \circledast \)}{Ex Nunc\hspace{1cm}}
\setfoot{}{\thepage}{}
}%
\pagestyle{wide}
\widenhead{1cm}{1cm}
\begin{document}
\lipsum[1-20]
\end{document}