
Я пытаюсь добиться короткого выцветания \headrule
под номерами страниц. Но не могу понять, как "перевернуть" его на четных/нечетных страницах. Кто-нибудь знает, как это сделать?
Я также получаю предупреждение о том, что headheight
слишком мал. Это вызвано tikzpicture
, но как это исправить? Я не хочу увеличивать headheight
на столько...
\documentclass[11pt, titlepage, openright]{book}
\usepackage[textwidth=13cm, left=2.5cm, bottom=2cm, top=2.5cm, paperwidth=20cm, paperheight=27cm, layoutwidth=19cm, layoutheight=26cm, layouthoffset=0.5cm, layoutvoffset=0.5cm, showcrop, asymmetric]{geometry}
\usepackage{fancyhdr}
\usepackage{tikz}
\usepackage{lipsum}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\fancyhead{}
\fancyfoot{}
\definecolor{grey}{rgb}{0.6,0.6,0.6}
\definecolor{darkgrey}{rgb}{0.4,0.4,0.4}
\setlength{\headheight}{24pt}
\fancyhead[RO]{\sffamily\bfseries\textcolor{grey}\leftmark\hspace{0.3cm}\sffamily\textcolor{darkgrey}\thepage}
\fancyhead[LE]{\sffamily\bfseries\textcolor{darkgrey}\thepage\hspace{0.3cm}\sffamily\textcolor{grey}\leftmark}
\renewcommand{\headrulewidth}{0.6pt}
\renewcommand{\footrulewidth}{0pt}
\renewcommand{\headrule}{
\begin{tikzpicture}
\shade[white] (0,0) rectangle (8,0);
\shade[left color=white, right color=black, dashed] (8,1) rectangle (12.98,1.01);
\end{tikzpicture}}
\begin{document}
\chapter{Test chapter}
\lipsum
\lipsum
\end{document}
решение1
В стандартном LaTeX проверка левого/правого заголовков выполняется по значению \count0
via \ifodd
. Вы можете использовать это в своей \headrule
команде для установки разных изображений на двух страницах.
Добавление headheight
опции к вашей geometry
спецификации даст больше места. Используйте значение, указанное в файле журнала.
Однако в своем вопросе вы говорите, что не хотите этого делать. Причина, по которой ваш заголовок такой высокий, в том, что вы пытаетесь переместить его вверх, нарисовав что-то пустое на высоте 0
и линейку на высоте 1
. Проще всего просто нарисовать линейку и убедиться, что она расположена правильно, используя несколько вертикальных пропусков.
\documentclass[11pt, titlepage, openright]{book}
\usepackage[textwidth=13cm, left=2.5cm, bottom=2cm, top=2.5cm,
paperwidth=20cm, paperheight=27cm, layoutwidth=19cm,
layoutheight=26cm, layouthoffset=0.5cm, layoutvoffset=0.5cm,
showcrop, asymmetric]{geometry}
\usepackage{fancyhdr}
\usepackage{tikz}
\usepackage{lipsum}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\fancyhead{}
\fancyfoot{}
\definecolor{grey}{rgb}{0.6,0.6,0.6}
\definecolor{darkgrey}{rgb}{0.4,0.4,0.4}
\setlength{\headheight}{24pt}
\fancyhead[RO]{\sffamily\bfseries\textcolor{grey}\leftmark\hspace{0.3cm}\sffamily\textcolor{darkgrey}\thepage}
\fancyhead[LE]{\sffamily\bfseries\textcolor{darkgrey}\thepage\hspace{0.3cm}\sffamily\textcolor{grey}\leftmark}
\renewcommand{\headrulewidth}{0.6pt}
\renewcommand{\footrulewidth}{0pt}
\renewcommand{\headrule}{%
\vskip-\baselineskip\vskip4pt
\ifodd\count0\hfill\begin{tikzpicture}
\shade[left color=white, right color=black, dashed] (0,0) rectangle (4.98,0.01);
\end{tikzpicture}\else\begin{tikzpicture}
\shade[left color=black, right color=white, dashed] (0,0) rectangle (4.98,.01);
\end{tikzpicture}\fi}
\begin{document}
\chapter{Test chapter}
\lipsum
\lipsum
\end{document}
решение2
Это можно сделать с помощью etoolbox
пакета:
\documentclass[11pt, titlepage, openright]{book}
\usepackage[textwidth=13cm, left=2.5cm, bottom=2cm, top=2.5cm, paperwidth=20cm, paperheight=27cm, layoutwidth=19cm, layoutheight=26cm, layouthoffset=0.5cm, layoutvoffset=0.5cm, showcrop, asymmetric]{geometry}
\usepackage{fancyhdr}
\usepackage{tikz}
\usepackage{lipsum}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\fancyhead{}
\fancyfoot{}
\definecolor{grey}{rgb}{0.6,0.6,0.6}
\definecolor{darkgrey}{rgb}{0.4,0.4,0.4}%
\usepackage{etoolbox}
\setlength{\headheight}{24pt}
\fancyhead[RO]{\sffamily\bfseries\textcolor{grey}\leftmark\hspace{0.3cm}\sffamily\textcolor{darkgrey}\thepage}
\fancyhead[LE]{\sffamily\bfseries\textcolor{darkgrey}\thepage\hspace{0.3cm}\sffamily\textcolor{grey}\leftmark}
\renewcommand{\headrulewidth}{0.6pt}
\renewcommand{\footrulewidth}{0pt}
\renewcommand{\headrule}{%
\begin{tikzpicture}%
\ifnumodd{\value{page}}{%
\shade[white] (0,0) rectangle (8,0);
\shade[left color=white, right color=black, dashed] (8,1) rectangle (12.98,1.01);
}%
{%
\shade[white] (0,0) rectangle (5,0);
\shade[left color=black, right color=white, dashed] (0,1) rectangle (4.98,1.02);
}
\end{tikzpicture}
}%
\begin{document}
\chapter{Test chapter}
\lipsum
\lipsum
\end{document}
решение3
Вы можете поместить \fancyhead
содержимое внутрь, node
и тогда рисовать станет проще.
\fancyhead[RO]{%
\begin{tikzpicture}
\node[inner xsep=0pt, align=right,text width=5cm] (a) {\sffamily\bfseries\textcolor{grey}
{\leftmark}\hspace{0.3cm}\sffamily\textcolor{darkgrey}{\thepage}};
\shade[left color=white, right color=black, dashed] (a.south west) rectangle
([yshift=0.01cm]a.south east);
\end{tikzpicture}%
}
\fancyhead[LE]{%
\begin{tikzpicture}
\node[inner xsep=0pt, align=left,text width=5cm](a){\sffamily\bfseries\textcolor{darkgrey}
{\thepage}\hspace{0.3cm}\sffamily\textcolor{grey}{\leftmark}};
\shade[right color=white, left color=black, dashed] (a.south west) rectangle
([yshift=0.01cm]a.south east);
\end{tikzpicture}%
}
Код:
\documentclass[11pt, titlepage, openright]{book}
\usepackage[textwidth=13cm, left=2.5cm, bottom=2cm, top=2.5cm, paperwidth=20cm, paperheight=27cm, layoutwidth=19cm, layoutheight=26cm, layouthoffset=0.5cm, layoutvoffset=0.5cm, showcrop, asymmetric,headheight=24pt]{geometry}
\usepackage{fancyhdr}
\usepackage{tikz}
\usepackage{lipsum}
\pagestyle{fancy}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\fancyhead{}
\fancyfoot{}
\definecolor{grey}{rgb}{0.6,0.6,0.6}
\definecolor{darkgrey}{rgb}{0.4,0.4,0.4}
%\setlength{\headheight}{24pt}
\fancyhead[RO]{%
\begin{tikzpicture}
\node[inner xsep=0pt, align=right,text width=5cm] (a) {\sffamily\bfseries\textcolor{grey}
{\leftmark}\hspace{0.3cm}\sffamily\textcolor{darkgrey}{\thepage}};
\shade[left color=white, right color=black, dashed] (a.south west) rectangle
([yshift=0.01cm]a.south east);
\end{tikzpicture}%
}
\fancyhead[LE]{%
\begin{tikzpicture}
\node[inner xsep=0pt, align=left,text width=5cm](a){\sffamily\bfseries\textcolor{darkgrey}
{\thepage}\hspace{0.3cm}\sffamily\textcolor{grey}{\leftmark}};
\shade[right color=white, left color=black, dashed] (a.south west) rectangle
([yshift=0.01cm]a.south east);
\end{tikzpicture}%
}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\begin{document}
\chapter{Test chapter}
\lipsum
\lipsum
\end{document}