我知道这应该是可能的,但我不确定如何去做。
我希望在每一页(外边缘)上出现一个小矩形,一直延伸到页面的边缘,并且它在每一页上都位于相同的位置 - 这样当打印书籍时,颜色在页面的外边缘可见。
我目前的想法是,我可能可以在我的程序中加入一些fancychap
可以为我做的事情,但我真的不太了解乳胶,所以从这里去哪里让我有点迷茫...
做这样的事可以达到某种目的:
%................"Fancy Headers" - Nice page headings
\usepackage{fancyhdr}
\pagestyle{fancy}
\usepackage{calc}
\fancyheadoffset[LE,RO]{7mm}
\fancyheadoffset[LO,RE]{5mm}
\renewcommand{\chaptermark}[1]{\markboth{#1}{}}
\renewcommand{\sectionmark}[1]{\markright{\thesection\ #1}}
\fancyhf{}
\fancyhead[LE]{\colorbox{cyan}{\parbox[l][10mm][c]{10mm}{\hspace*{50pt}}} \thepage}
\fancyhead[RO]{\thepage \colorbox{cyan}{\parbox[l][10mm][c]{10mm}{\hspace*{50pt}}}}
\fancyhead[LO]{\rightmark}
\fancyhead[RE]{\leftmark}
\fancypagestyle{plain}{%
\fancyhead{} % get rid of headers
\renewcommand{\headrulewidth}{0pt} % and the line
}
但这样做只会将 放在colorbox
角落里,页码之外。我宁愿将其放在页面下方几英寸处(即页眉之外)。
由此得出:
但这还不够。上次我尝试这样的事情花了我几个小时,而且这比我之前尝试的还要糟糕。你们有人能想到一个可以解决这个问题的简单方法吗?
我的标题已经有这个了:
\usepackage[strict]{changepage}
%.................Custom chapter headings
\makeatletter
\usepackage[explicit]{titlesec}
\titleformat
{\chapter} % command
[display] % shape
{\fontsize{76}{80}\usefont{OT1}{pzc}{m}{n}\selectfont}% format
{\vspace*{-135pt}%
\begin{adjustwidth}{-20mm}{-20mm}%
\ifodd \c@page \raggedleft \else \raggedright \fi \colorbox{cyan}{\parbox[l][25mm][c]{100mm}{\ifodd \c@page \raggedleft \thechapter \hspace*{20mm} \else \raggedright \hspace*{20mm} \thechapter \fi}}% title code
\end{adjustwidth}%
}% label
{-136pt}% sep
{\bfseries\Huge \ifodd \c@page \raggedleft \else \raggedright \fi%
\begin{adjustwidth}{-20mm}{-20mm}%
\ifodd \c@page \raggedleft \else \raggedright \fi \colorbox{cyan}{\parbox[l][15mm][c]{100mm}{\ifodd \c@page \hspace*{7mm} \raggedright #1 \else \raggedleft #1 \hspace*{7mm} \fi}}%
\end{adjustwidth}%
}
%\titlespacing*{\chapter}{-20mm}{0.5ex}{0.5ex}[-20mm]
\makeatother
它会在标题及其数字周围放置彩色框,这些框会延伸到页面边缘。理想情况下,其他页面上的样本会与这些样本对齐。使用页眉执行此操作的好处是,您不必添加任何特殊逻辑来处理没有页眉的页面(例如标题页、目录和章节开始的其他页面等)。
答案1
这是用于scrlayer-scrpage
标题的另一个建议。
\documentclass
%[oneside]
{book}
\usepackage{xcolor}
\usepackage{blindtext}
\usepackage[
automark,
autooneside=false,
markcase=noupper,
headsepline,
headwidth=\the\textwidth+12mm:-5mm,
]{scrlayer-scrpage}
\clearpairofpagestyles
\rehead{\leftmark}
\lohead{\rightmark}
\ohead{\pagemark}
\renewcommand\chaptermarkformat{}% no chapternumber in header
\setkomafont{pageheadfoot}{\normalfont}
% define new layers
\DeclareNewLayer[
background,
oddpage,
align=tr,
hoffset=\paperwidth,
voffset=0pt,%distance from top
width=1cm,% width of the swatch
height=\dimexpr\voffset+1in+\topmargin+\headheight\relax,% height of the swatch
contents={\textcolor{swatchcolor}{\rule{\layerwidth}{\layerheight}}}
]{swatch.odd}
\DeclareNewLayer[
clone=swatch.odd,
evenpage,
align=l,
hoffset=0pt
]{swatch.even}
% add layers to every pagestyle
\AddLayersToPageStyle{@everystyle@}{swatch.odd,swatch.even}
\newcommand\swatchcolor[1]{\colorlet{swatchcolor}{#1}}
\swatchcolor{white}
\begin{document}
\tableofcontents
\chapter{First chapter}\swatchcolor{orange}
\section{First section}
\Blindtext[20]
\chapter{Second chapter}\swatchcolor{purple}
\section{First section}
\Blindtext[20]
\chapter{Third chapter}\swatchcolor{blue!80!black}
\section{First section}
\Blindtext[20]
\end{document}
如果您使用oneside
布局,它也会起作用。然后样本会自动出现在每页的右侧(=外部)边缘。
\documentclass[oneside]{book}
答案2
这用于\atxy{This page x}{alt page x}{y}{content}
在偶数页/奇数页的交替位置放置某些内容,并\updateText{content}
更改内容。在本例中,我的内容是一个 0.5 英寸 x 0.5 英寸的彩色框,我会在文档中途更改它。
因为我的纸张宽度为 8.5 英寸,所以 mythis page x
为 8 英寸,而 myalt page x
为 0 英寸(对于 1/2 英寸的盒子)。同样,y 值为 .5 英寸。
\documentclass[letter]{article}
\usepackage{everypage}
\usepackage{lipsum,xcolor}
% THESE ARE LaTeX DEFAULTS; CAN CHANGE IF NEEDED.
\def\PageTopMargin{1in}
\def\PageLeftMargin{1in}
\def\localX{0in}
\def\ThisX{0in}
\def\AltX{0in}
% SYNTAX \atxy{This page X}{Alt page X}{y}{content}
\newcommand\atxy[4]{%
\def\XYtext{#4}
\gdef\ThisX{#1}\gdef\AltX{#2}%
\AddEverypageHook{\smash{\hspace*{\dimexpr-\PageLeftMargin-\hoffset+\localX\relax}%
\raisebox{\dimexpr\PageTopMargin+\voffset-#3\relax}{\XYtext}}}}
\AddEverypageHook{\ifdim\localX=\ThisX\gdef\localX{\AltX}\else\gdef\localX{\ThisX}\fi}
\newcommand\updateText[1]{\gdef\XYtext{#1}}
\begin{document}
\atxy{8in}{0in}{0.5in}{\textcolor{red}{\rule{.5in}{.5in}}}
\lipsum[1-12]
\updateText{\textcolor{blue}{\rule{.5in}{.5in}}}
\lipsum[13-35]
\end{document}
我的回答基于我在如何(轻松地)将不同的文本叠加在所包含的 PDF 文件的奇数/偶数页上?,但那种情况下,内容是文本,而不是色板。