
Я использовал пакет fancyheadings, чтобы сделать нижний колонтитул с надписью "страница 2 из 3" и т. п., и это работало нормально, пока я не добавил пакет tikz, чтобы нарисовать некоторые фигуры. Теперь нижний колонтитул вообще не отображается, за исключением горизонтальной линии, отделяющей его от остальной части документа. Есть ли способ использовать и нижний колонтитул, и рисовать с помощью tikz?
Вот мой код:
\documentclass[12pt,letterpaper]{article}
\setlength{\textwidth}{6.5in}
\setlength{\textheight}{9.5in}
\setlength{\oddsidemargin}{-.25in}
\setlength{\evensidemargin}{-.25in}
\setlength{\topmargin}{-.25in}
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\cfoot{Page \thepage\ of \pageref{LastPage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{1pt}
%\usepackage{tikz}
\begin{document}
\begin{center}
\Huge {\bf More Sets}\\
\end{center}
\end{document}
Когда я компилирую с закомментированным \usepackage{tikz}, я получаю то, что хочу:
Но когда я раскомментировал \usepackage{tikz}, полоса все еще там, ниже, и никаких номеров страниц не обнаружено:
решение1
Нет. fancyhdr
и tikz
полностью совместимы. Я постоянно использую оба в документах.
Однако лучше загружать fancyhdr
напрямую, так как fancyheadings
это все равно загрузит данные, поэтому это более прозрачно.
Вы даже можете, если захотите, использовать картинки TikZ в аргументах fancyhdr
макросов настройки заголовка и нижнего колонтитула. Пример с котами TikZ см. ниже.
Проблема, с которой вы столкнулись, вызвана тем, что без TikZ документ, который вы создаете, использует что-то вроде макета US letter на бумаге A4. Бумага A4 выше, чем US letter, поэтому места больше. Но, по сути, все просто оказывается повсюду.
Когда вы загружаете TikZ, это загружает что-то (не уверен, что именно), что подхватывает letterpaper
класс и устанавливает бумагу соответствующим образом. Так что теперь у вас есть макет бумаги формата Letter на бумаге формата Letter. Но бумага теперь короче и, по сути, недостаточно места.
Лучший способ решения этой проблемы — загрузить файл geometry
, но тогда вам не нужно вручную корректировать размеры макета, а ограничиться указанием geometry
параметров упаковки или конфигурации.
Например:
\documentclass[12pt,letterpaper]{article}
\usepackage{geometry}
\geometry{width=6.5in,height=9.5in,left=.75in,top=.75in}
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\cfoot{Page \thepage\ of \pageref{LastPage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{1pt}
\usepackage{tikz}
\begin{document}
\begin{center}
\Huge\bfseries More Sets
\end{center}
\end{document}
Обратите внимание, что это \bf
было объявлено устаревшим более 20 лет назад и не должно использоваться в документах LaTeX после этой даты. Если начинается \documentclass
, не должно использоваться \bf
или подобное.
Обратите внимание, что \Huge {abc}d
это то же самое, что и \Huge abcd
. \Huge
не принимает аргумент. Как и \bfseries
, это переключатель.
В любом случае, вот результат:
Отсутствие кошек бросается в глаза, но нельзя иметь все, и теперь все это попадает на страницу.
Однако это не совсем соответствует тому, что fancyhdr
нам говорят:
Package Fancyhdr Warning: \headheight is too small (12.0pt):
Make it at least 14.49998pt.
We now make it that large for the rest of the document.
This may cause the page layout to be inconsistent, however.
Поэтому нам нужно снова изменить нашу компоновку, используя geometry
интерфейс:
\documentclass[12pt,letterpaper]{article}
\usepackage{geometry}
\geometry{width=6.5in,height=9.5in,left=.75in,top=.75in,headheight=15pt}
\usepackage{fancyhdr}
\usepackage{lastpage}
\pagestyle{fancy}
\cfoot{Page \thepage\ of \pageref{LastPage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{1pt}
\usepackage{tikz}
\begin{document}
\begin{center}
\Huge\bfseries More Sets
\end{center}
\end{document}
Конечный результат:
Пример с кошкой
Например:
\documentclass[welsh,british]{article}
\usepackage[rgb,x11names,dvipsnames,svgnames]{xcolor}
\usepackage{kantlipsum,tikz,fancyhdr,geometry,babel}
\geometry{headheight=40pt,footskip=60pt}
\usetikzlibrary{cathod,trambws,positioning,decorations.footprints}
\colorlet{cath1}{blue!50!gray!75}
\colorlet{cath2}{cath1!50}
\colorlet{cath3}{DarkOrchid4}
\colorlet{cath4}{cath3!50}
\colorlet{lliw llygaid1}{Yellow1}
\colorlet{lliw llygaid2}{DarkOrange3}
\colorlet{lliw llygaid3}{Chartreuse1}
\colorlet{lliw llygaid4}{Green4}
\colorlet{lliw trwyn1}{LightPink2}
\colorlet{lliw trwyn2}{HotPink2}
\colorlet{cath5}{LavenderBlush3}
\colorlet{cath6}{LavenderBlush4}
\pagestyle{fancy}
\fancyhf{}
\fancyhf[lh]{%
\tikz{\pic [xscale=-1] {cath eistedd={stripiau=cath1, llenwi=cath2, llygaid mewnol=lliw llygaid3, llygaid allanol=lliw llygaid4, trwyn=lliw trwyn1, maint=1mm}};}%
}
\fancyhf[rh]{%
\tikz{\pic at (57.5mm,0) {cath eistedd={stripiau=cath3, llenwi=cath4, llygaid mewnol=lliw llygaid1, llygaid allanol=lliw llygaid2, trwyn=lliw trwyn2, maint=1mm}};}%
}
\fancyhf[cf]{%
\begin{tikzpicture}
\pic [xscale=-1] at (3,1.4) {cath eistedd={stripiau=cath6,llenwi=cath5,llygaid mewnol=lliw llygaid3,llygaid allanol=lliw llygaid4,trwyn=lliw trwyn2, maint=1mm}};
\draw [line width=.5pt, rounded corners=.25pt, draw=Chocolate4] (3.5,.7) rectangle (3.6,.75);
\draw [rounded corners=1pt, inner color=Chocolate3!95, outer color=Chocolate3, draw=Chocolate4, line width=.5pt] (3.35,.4) rectangle (3.75,.7);
\draw [decorate, fill=Chocolate4, draw=Chocolate4, decoration={footprints, foot of=felis silvestris, foot length=.35pt, stride length=.4pt, foot angle=-30}] (3.625,.55) -- (3.525,.6);
\draw [line width=1pt, line cap=round, draw=OliveDrab4] (4.75,1.85) -- (4.75,.25) coordinate [pos=.04] (a);
\node [double=Green2, double distance=.25pt, draw=Green4!50!black, line width=.25pt, rounded corners=1pt, text=white, inner sep=1pt, fill=Green4, font=\sffamily\tiny\bfseries, align=center, anchor=north east] at ([xshift=1pt]a) {BUS STOP\\{\selectlanguage{welsh}SAFLE BYSIAU}};
\pic [lliw y tram=Red2, lliw ffenestri=Snow3] at (-2,0) {tram=5};
\end{tikzpicture}
}
\begin{document}
\kant[1-6]
\end{document}