颜色编码的章节标签与实地指南中的花朵颜色相匹配

颜色编码的章节标签与实地指南中的花朵颜色相匹配

我正在为我的妻子(她是一名小学老师)制作一本小册子。这本小册子是关于双子小学相当大的操场上的植物的实地指南。Tufte-Latex 是我最近做任何事情的“首选”模板 - 特别感谢这个优秀的小组向我展示了更改章节标题颜色的代码!我对另一个章节/颜色任务感到困惑。我想要做的是分配一个小的颜色标签,将每个章节与花朵的颜色相关联,或将树木和灌木的颜色与绿色相关联。介绍性章节可以只使用白色标签,这样就不会显示任何内容。彩色标签将位于目录中,然后位于顶部,可能距离每页外角一两厘米。我疯了吗,竟然想这样做?

答案1

这是一个可以满足您所有要求的选项:

  1. 您可以在文档的任何时候根据需要多次激活/停用颜色标记。

  2. 当颜色标记处于活动状态时,目录中的每一章条目左侧都会有一个带有相应颜色的选项卡;章节标题也将具有此颜色,并且该章节的所有页面的顶部也会有一个彩色选项卡(偶数页在左侧,奇数页在右侧)。

  3. 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捆绑加载titletocfancyhdr包,这样我们就可以访问所有强大的命令。

特别是,在下面的代码中我使用了

% 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}

相关内容