我正在为我的妻子(她是一名小学老师)制作一本小册子。这本小册子是关于双子小学相当大的操场上的植物的实地指南。Tufte-Latex 是我最近做任何事情的“首选”模板 - 特别感谢这个优秀的小组向我展示了更改章节标题颜色的代码!我对另一个章节/颜色任务感到困惑。我想要做的是分配一个小的颜色标签,将每个章节与花朵的颜色相关联,或将树木和灌木的颜色与绿色相关联。介绍性章节可以只使用白色标签,这样就不会显示任何内容。彩色标签将位于目录中,然后位于顶部,可能距离每页外角一两厘米。我疯了吗,竟然想这样做?
答案1
这是一个可以满足您所有要求的选项:
您可以在文档的任何时候根据需要多次激活/停用颜色标记。
当颜色标记处于活动状态时,目录中的每一章条目左侧都会有一个带有相应颜色的选项卡;章节标题也将具有此颜色,并且该章节的所有页面的顶部也会有一个彩色选项卡(偶数页在左侧,奇数页在右侧)。
tufte-book
目录条目和章节标题的原始设置被保留。
简化版本:
\documentclass[dvipsnames]{tufte-book}
\usepackage{background}
\usepackage{lipsum}
\newif\ifcolor
\colorfalse
\backgroundsetup{
angle=0,
scale=1,
opacity=1,
contents={}
}
\makeatletter
\AddEverypageHook{%
\backgroundsetup{
contents={
\ifcolor
\textcolor{\chaptercolor}{\rule{3em}{3em}}
\fi}
}
\ifodd\value{page}
\backgroundsetup{
position={current page.north east},
hshift=-1.5cm,vshift=-1cm
}
\else
\backgroundsetup{position={current page.north west},
hshift=1.5cm,vshift=-1cm
}
\fi
\BgMaterial}
\def\chaptercolor{black}
\newcommand\normalchapter{%
\colorfalse%
\titleformat{\chapter}[display]
{\relax\ifthenelse{\NOT\boolean{@tufte@symmetric}}{\begin{fullwidth}}{}}
{\itshape\huge\thechapter}
{0pt}
{\huge\rmfamily\itshape}
[\ifthenelse{\NOT\boolean{@tufte@symmetric}}{\end{fullwidth}}{}]
}
\newcommand\colorchapter{%
\colortrue%
\titleformat{\chapter}[display]
{\relax\color{\chaptercolor}\ifthenelse{\NOT\boolean{@tufte@symmetric}}{\begin{fullwidth}}{}}
{\itshape\huge\thechapter}
{0pt}
{\huge\rmfamily\itshape}
[\ifthenelse{\NOT\boolean{@tufte@symmetric}}{\end{fullwidth}}{}]
}
\newcommand\ContentColor[1]{%
\titlecontents{chapter}[0em]
{\vspace{1.5\baselineskip}\begin{fullwidth}\LARGE\rmfamily\itshape%
\makebox[0pt]{\textcolor{#1}{\rule{1em}{1em}}\hspace{2em}}
}
{\hspace*{0em}\thecontentslabel{2em}}
{\hspace*{0em}}
{\rmfamily\upshape\qquad\thecontentspage}
[\end{fullwidth}]
}
\newcommand\ContentNoColor{%
\titlecontents{chapter}%
[0em]
{\vspace{1.5\baselineskip}\begin{fullwidth}\LARGE\rmfamily\itshape}
{\hspace*{0em}\thecontentslabel{2em}}
{\hspace*{0em}}
{\rmfamily\upshape\qquad\thecontentspage}
[\end{fullwidth}]
}
\renewcommand\mainmatter{%
\cleardoublepage%
\@mainmattertrue%
\colorchapter
\fancyhf{}%
\ifthenelse{\boolean{@tufte@twoside}}%
{% two-side
\renewcommand{\chaptermark}[1]{\markboth{##1}{}}%
\fancyhead[LE]{\thepage\quad\smallcaps{\newlinetospace{\plaintitle}}}% book title
\fancyhead[RO]{\smallcaps{\newlinetospace{\leftmark}}\quad\thepage}% chapter title
}%
{% one-side
\fancyhead[RE,RO]{\smallcaps{\newlinetospace{\plaintitle}}\quad\thepage}% book title
}%
}
\renewcommand\backmatter{%
\if@openright%
\cleardoublepage%
\else%
\clearpage%
\fi%
\@mainmatterfalse%
\normalchapter%
\ContentNoColor%
}
\makeatother
\newcommand\ChapColor[1]{%
\def\chaptercolor{#1}
\ContentColor{#1}
}
\begin{document}
\frontmatter
\tableofcontents
\cleardoublepage
\chapter{Introduction}
\lipsum[1-2]
\cleardoublepage
\mainmatter
\ChapColor{Maroon!80}
\chapter{Test chapter one}
\lipsum[1-4]
\cleardoublepage
\ChapColor{MidnightBlue!70}
\chapter{Test chapter two}
\lipsum[1-4]
\cleardoublepage
\ChapColor{Dandelion}
\chapter{Test chapter three}
\lipsum[1-4]
\cleardoublepage
\backmatter
\chapter{Appendix}
\lipsum[1-4]
\end{document}
目录图片:
文档图像,显示正常章节和具有颜色规范的章节:
现在,大部分工作都委托给了和\frontmatter
;在此版本中,激活标题、目录条目和章节每页选项卡的颜色标记。停用这些设置。现在唯一要做的就是在每个需要更改颜色的地方之前使用。\mainmatter
\backmatter
\frontmatter
\backmatter
\ChapColor{<color>}
\chapter
第一个版本:
代码:
\documentclass[dvipsnames]{tufte-book}
\usepackage{background}
\usepackage{emptypage}
\usepackage{lipsum}
\newif\ifcolor
\colorfalse
\backgroundsetup{
angle=0,
scale=1,
opacity=1,
contents={}
}
\makeatletter
\AddEverypageHook{%
\backgroundsetup{
contents={
\ifcolor
\textcolor{\chaptercolor}{\rule{3em}{3em}}
\fi}
}
\ifodd\value{page}
\backgroundsetup{
position={current page.north east},
hshift=-1.5cm,vshift=-1cm
}
\else
\backgroundsetup{position={current page.north west},
hshift=1.5cm,vshift=-1cm
}
\fi
\BgMaterial}
\def\chaptercolor{black}
\newcommand\normalchapter{%
\colorfalse%
\titleformat{\chapter}[display]
{\relax\ifthenelse{\NOT\boolean{@tufte@symmetric}}{\begin{fullwidth}}{}}
{\itshape\huge\thechapter}
{0pt}
{\huge\rmfamily\itshape}
[\ifthenelse{\NOT\boolean{@tufte@symmetric}}{\end{fullwidth}}{}]
}
\newcommand\colorchapter{%
\colortrue%
\titleformat{\chapter}[display]
{\relax\color{\chaptercolor}\ifthenelse{\NOT\boolean{@tufte@symmetric}}{\begin{fullwidth}}{}}
{\itshape\huge\thechapter}
{0pt}
{\huge\rmfamily\itshape}
[\ifthenelse{\NOT\boolean{@tufte@symmetric}}{\end{fullwidth}}{}]
}
\newcommand\ContentColor[1]{%
\titlecontents{chapter}[0em]
{\vspace{1.5\baselineskip}\begin{fullwidth}\LARGE\rmfamily\itshape%
\makebox[0pt]{\textcolor{#1}{\rule{1em}{1em}}\hspace{2em}}
}
{\hspace*{0em}\thecontentslabel{2em}}
{\hspace*{0em}}
{\rmfamily\upshape\qquad\thecontentspage}
[\end{fullwidth}]
}
\newcommand\ContentNoColor{%
\titlecontents{chapter}%
[0em]
{\vspace{1.5\baselineskip}\begin{fullwidth}\LARGE\rmfamily\itshape}
{\hspace*{0em}\thecontentslabel{2em}}
{\hspace*{0em}}
{\rmfamily\upshape\qquad\thecontentspage}
[\end{fullwidth}]
}
\makeatother
\newcommand\ChapColor[1]{%
\def\chaptercolor{#1}
\ContentColor{#1}
}
\begin{document}
\tableofcontents
\cleardoublepage
\chapter{Introduction}
\lipsum[1-2]
\cleardoublepage
\colorchapter
\ChapColor{Maroon}
\chapter{Test chapter one}
\lipsum[1-4]
\cleardoublepage
\ChapColor{MidnightBlue}
\chapter{Test chapter two}
\lipsum[1-4]
\cleardoublepage
\ChapColor{Dandelion}
\chapter{Test chapter three}
\lipsum[1-4]
\cleardoublepage
\ContentNoColor
\normalchapter
\chapter{Appendix}
\lipsum[1-4]
\end{document}
从您希望颜色规范生效的位置,添加
\colorchapter
添加到您的文档。对于本节中的每个章节,选择带有
\ChapColor{<color>}
您可以随时使用以下方法停用颜色规范
\normalchapter
为了将彩色标记放置在具有颜色规范的章节中,background
包我们用过;这使您可以完全自由地选择标记的位置。
答案2
这tufte
捆绑加载titletoc
和fancyhdr
包,这样我们就可以访问所有强大的命令。
特别是,在下面的代码中我使用了
% format the toc entries for chapter
\titlecontents{chapter}
[0cm] % left margin
{} % above code
{% % numbered format
{\llap{\color{\chaptercolor{\thecontentslabel}}\rule{.5cm}{.5cm}}\thecontentslabel\hskip .5cm\Large}%
}%
{} % unnumbered format
{\titlerule*[.5pc]{.}\contentspage}%
格式化chapter
中的条目toc
。
我也用过
\fancyhead[R]{\color{\chaptercolor{\the\value{chapter}}}\rule{1cm}{1cm}}
在每页的顶部添加一个小的彩色框。
这两个命令都使用命令
\newcommand{\chaptercolor}[1]{%
\ifcase#1\relax
\or
blue%
\or
red%
\fi%
}
选择颜色。添加更多章节时,您需要添加更多颜色。
我擅自使用以下方式对章节进行编号:
\setcounter{secnumdepth}{0}
如果您的文件不同,我们将需要查看 MWE。
% arara: pdflatex
% arara: pdflatex
% !arara: animate: {delay: 80}
\documentclass[a4paper,twoside]{tufte-book}
\setcounter{secnumdepth}{0}
\usepackage{xcolor} % for colour
\usepackage{lipsum} % just for sample text
\newcommand{\chaptercolor}[1]{%
\ifcase#1\relax
\or
blue%
\or
red%
\fi%
}
% fancy head
\fancyhead[R]{\color{\chaptercolor{\the\value{chapter}}}\rule{1cm}{1cm}}
% format the toc entries for chapter
\titlecontents{chapter}
[0cm] % left margin
{} % above code
{% % numbered format
{\llap{\color{\chaptercolor{\thecontentslabel}}\rule{.5cm}{.5cm}}\thecontentslabel\hskip .5cm\Large}%
}%
{} % unnumbered format
{\titlerule*[.5pc]{.}\contentspage}%
\begin{document}
\tableofcontents
\chapter{Chapter}
\lipsum[1]
\section{Section}
\lipsum[1]
\subsection{Sub section}
\lipsum[1]
\chapter{Chapter}
\lipsum[1]
\section{Section}
\lipsum[1]
\subsection{Sub section}
\lipsum[1]
\end{document}