6

I would like to get some help in order to get my "Side Chapter Thumb Headings" to show up like:

![enter image description here

The code below is building from the solution posted here:

\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{lipsum}
\usepackage{xcolor}
\definecolor{ultramarine}{RGB}{0,45,97}
\definecolor{mybluei}{RGB}{0,173,239}
\usetikzlibrary{calc}
\pagestyle{plain}

\newcounter{chapshift}
\addtocounter{chapshift}{-1}

\newcommand\BoxColor{ultramarine}


\usepackage{etoolbox,fancyhdr}
\pagestyle{fancy}

\def\subsectiontitle{}
\renewcommand{\sectionmark}[1]{\markright{\sffamily\normalsize#1}{}}
\renewcommand{\subsectionmark}[1]{\def\subsectiontitle{#1}}

\fancyhf{} \fancyhead[LE,RO]{\sffamily\normalsize\thepage}
\fancyhead[LO]{\textcolor{mybluei} \rightmark%
\begin{tikzpicture}[overlay,remember picture]
  \node[fill=\BoxColor,inner sep=0pt,rectangle,text width=1cm,
    text height=28cm,align=center,anchor=north east]
  at ($ (current page.north east) + (-0cm,-2*\thechapshift cm) $)
  {\rotatebox{90}{\parbox{4cm}{%
   \centering\textcolor{white}{\bfseries\scshape\rightmark \\ \subsectiontitle}}}};
  \end{tikzpicture}}
\fancyhead[RE]{\textcolor{mybluei}\leftmark%
  \begin{tikzpicture}[overlay,remember picture]
  \node[fill=\BoxColor,inner sep=0pt,rectangle,text width=1cm,
    text height=28cm,align=center,anchor=north west]
  at ($ (current page.north west) + (-0cm,-2*\thechapshift cm) $)
  {\rotatebox{90}{\parbox{4cm}{%
    \centering\textcolor{white}{\bfseries\scshape\rightmark \\ \subsectiontitle}}}};
  \end{tikzpicture}}
\renewcommand{\headrulewidth}{.5pt}
\addtolength{\headheight}{2.5pt}
\newcommand{\footrulecolor}[1]{\patchcmd{\footrule}{\hrule}{\color{#1}\hrule}{}{}}
\renewcommand{\headrulewidth}{.5pt}
\addtolength{\headheight}{2.5pt}
\renewcommand{\footrulewidth}{.5pt}
\fancyfoot[LE,RO]{\footnotesize\bfseries\itshape LF Foot}
\fancyfoot[C]{\footnotesize\bfseries CTR FOOT}
\fancyfoot[RE,LO]{\footnotesize\bfseries\itshape RT Foot}

\fancypagestyle{plain}{%
  \fancyhf{}
  \renewcommand{\headrulewidth}{0pt}
  \renewcommand{\footrulewidth}{0pt}
}

\makeatletter
\renewcommand{\cleardoublepage}{
\clearpage\ifodd\c@page\else
\hbox{}
\vspace*{\fill}
\thispagestyle{empty}
\newpage
\fi}
\patchcmd{\@makechapterhead}
  {\vskip 40\p@}
  {\vskip 40\p@\stepcounter{chapshift}}{}{}
\makeatother

\usepackage{fourier}
\usepackage[explicit]{titlesec}

\begin{document}
\chapter{Chap 1 Problems}
\section{Problem 1}
\subsection{Problem 1}
\lipsum[1]
\subsection{Solution 1}
\lipsum[1-7]
\newpage
\section{Problem 2}
\subsection{Problem 2}
\lipsum[1]
\subsection{Solution 2}
\lipsum[1-4]

\chapter{Chap 2 Problems}
\section{Problem 1}
\subsection{Problem 1}
\lipsum[1]
\newpage
\subsection{Solution 1}
\lipsum[1]
\newpage
\section{Problem 2}
\subsection{Problem 2}
\lipsum[1]
\subsection{Solution 2}
\lipsum[1]

\end{document}

Thanks.

2
  • Can you clarify your problem a little more? Do you just want the chapter start pages to have that style? Dou you have a preference which packages to use? I for example would favor scrpage, but than better with scrbook instead of book. Are you writing in A4paper or US letter?
    – Ronny
    Commented Jul 8, 2016 at 8:11
  • @Ronny, thanks for your solution. I would like to have that style throughout the chapter. Thanks!
    – Joe
    Commented Jul 8, 2016 at 18:09

2 Answers 2

7

Here is a suggestion using scrlayer-scrpage. This package uses layers to define page styles. It is possible to define new layers and to add these layers to existing or to new defined layer page styles.

In the following example I declare new layers for the background of the outer margin, the page number, the chapter number and the text in the outer margin. Then I use these layers to define the new pagestyle scth (without the normal header and footer) and they are also added to the default pagestyle scrheadings and to plain.

\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usepackage{lipsum}
\usepackage{fourier}

\usepackage{xpatch}
\usepackage[automark]{scrlayer-scrpage}
\renewcommand\chaptermarkformat{}
% define a new mark for the chapter number
\newmarks\chapternum
\xapptocmd\chaptermark{\marks\chapternum{\thechapter}}{}{\PatchFailed}

\newlength\outermarginwidth
\setlength\outermarginwidth{2cm}
\newlength\chapternumbersize
\setlength\chapternumbersize{60pt}

\colorlet{outermarginbgcolor}{lightgray}
\colorlet{outermarginfgcolor}{darkgray}

\newcommand*\outermarginpagemark{%
  \ifodd\value{page}\else\hfill\fi%
  \tikz[overlay]
    \node[circle,fill=outermarginfgcolor,text=white,font=\bfseries,minimum size=6mm]
      {\thepage};%
}

\makeatletter
\newcommand\outermarginmark{
  \ifodd\value{page}\hfill\else\hspace*{\dimexpr\outermarginwidth*3/8\relax}\fi
  \rotatebox{90}{\parbox{\layerheight}{%
    \raggedleft
    \usekomafont{outermargin}{%
      \MakeMarkcase{\ifodd\value{page}\odd@outermargin\else\even@outermargin\fi}}%
  }}%
  \ifodd\value{page}\hspace*{\dimexpr\outermarginwidth*3/8\relax}\fi%
}
\newcommand*\even@outermargin{}
\newcommand*\odd@outermargin{}
\newcommand*\evenoutermargin[1]{\renewcommand\even@outermargin{#1}}
\newcommand*\oddoutermargin[1]{\renewcommand\odd@outermargin{#1}}
\makeatother
\newkomafont{outermargin}{%
  \normalfont\normalcolor
}

\makeatletter
\newcommand*\chapternumbermark{%
  \ifodd\value{page}\else\hfill\fi%
  \if@mainmatter
    {\usekomafont{chapternumber}{\makebox[0pt]{\botmarks\chapternum}}}%
  \fi
  \vfill
}
\makeatother

\newkomafont{chapternumber}{%
  \fontsize{\chapternumbersize}{\chapternumbersize}\selectfont
  \color{outermarginfgcolor}%
}

% declare new page style using layers
\DeclareNewPageStyleByLayers{scth}{%
  scth.outermargin.bg.even,%
  scth.outermargin.bg.odd,%
  scth.outermargin.pn.even,%
  scth.outermargin.pn.odd,%
  scth.outermargin.cn.even,%
  scth.outermargin.cn.odd,%
  scth.outermargin.text.even,%
  scth.outermargin.text.odd%
}

% define the layers for even pages
\DeclareNewLayer[
  background,
  evenpage,
  outermargin,
  width=\outermarginwidth,
  contents={\color{outermarginbgcolor}\rule{\layerwidth}{\layerheight}}
]{scth.outermargin.bg.even}
\DeclareNewLayer[
  foreground,
  evenpage,
  foot,
  hoffset=0pt,
  width=\outermarginwidth,
  contents=\outermarginpagemark
]{scth.outermargin.pn.even}
\DeclareNewLayer[
  foreground,
  evenpage,
  head,
  hoffset=0cm,
  width=\outermarginwidth,
  align=t,
  addvoffset=\dimexpr-\chapternumbersize+\headheight\relax,
  height=\chapternumbersize,
  contents=\chapternumbermark
]{scth.outermargin.cn.even}
\DeclareNewLayer[
  clone=scth.outermargin.cn.even,
  addheight=\dimexpr\headheight+\headsep+\textheight\relax,
  contents=\outermarginmark
]{scth.outermargin.text.even}

% define the layers for odd page from the settings for even pages
\newcommand*\DeclareOddFromEven[1]{%
  \DeclareNewLayer[
    clone=#1.even,
    oddpage,
    align=r,
    hoffset=\paperwidth
  ]{#1.odd}%
}
\DeclareOddFromEven{scth.outermargin.bg}
\DeclareOddFromEven{scth.outermargin.pn}
\DeclareOddFromEven{scth.outermargin.cn}
\DeclareOddFromEven{scth.outermargin.text}

% add the layers to page style scrheadings and page style plain
\ForEachLayerOfPageStyle*{scth}{%
  \AddLayersToPageStyle{scrheadings}{#1}%
  \AddLayersToPageStyle{plain.scrheadings}{#1}%
}

%----------------------------------------------
% header and footer contents settings
\KOMAoptions{headsepline,markcase=upper}
% for page styles scrheadings and plain
\clearpairofpagestyles
\ohead{\rightmark}
\cfoot{\pagemark}
\ofoot{Authors Name}
% set the contents of the outer margin on even and odd pages for scrheadings, plain and scth
\evenoutermargin{Title of the document}
\oddoutermargin{\leftmark}

\definecolor{lightblue}{RGB}{199,232,250}
\definecolor{darkblue}{RGB}{59,134,215}

\colorlet{outermarginbgcolor}{lightblue}
\colorlet{outermarginfgcolor}{darkblue}

\usepackage{blindtext}
\begin{document}
\frontmatter
\tableofcontents
\mainmatter
\blinddocument

\clearpage
% change some settings
\colorlet{outermarginbgcolor}{orange!30}
\colorlet{outermarginfgcolor}{orange}
\addtokomafont{outermargin}{\color{blue!50!green}}
\evenoutermargin{Changed text on even pages}
\blinddocument
\end{document}

Result:

enter image description here

1
  • 1
    Using scrlayer-scrpage is of course nicer, though TikZ might be a little easier to read (not sure about all those remembers, they might also turn out to be not so nice in my solution)
    – Ronny
    Commented Jul 11, 2016 at 14:41
3
+50

I tried to adapt the MWE you provided. First I simplified the TikZ code to produce the elements seperately. Then I got stuck with getting the Chapter name displayed. (redefined chaptermark) and assuming, that you only want the thumbs on chapter start pages, I defined the plain style of fancyhdr to produce the style you required. However, a style for right sides is also included, just be sure to display the right text in the border that (the rotate=90-node contains it in the label. Here's a sneak peak (stole the colors fro your image)

Chapter Styles

by increasing scale= you can enlarge the number and of course you can add like bold face or something, if you want. And the bottom past of that page looks like

pagenumber

(the blue part is of course at the same place in same width and color) Here's you rewritten MWE:

\documentclass{book}
\usepackage[T1]{fontenc}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{lipsum}
\usepackage{xcolor,etoolbox,fancyhdr}
\usepackage{fourier}
\usepackage{titlesec}
\definecolor{lightblue}{RGB}{199,232,250}
\definecolor{darkblue}{RGB}{59,134,215}
\usetikzlibrary{calc}
% Define just chapter start pages
\pagestyle{fancy}
\fancyhf{}\fancyhead[LE,RO]{\sffamily\normalsize\thepage}
\fancyhead[LO]{%\textcolor{mybluei} \rightmark%
\begin{tikzpicture}[overlay,remember picture]
    % Box
    \draw[fill=lightblue,draw=none] ($(current page.north east) - (1cm,0)$) -- (current page.north east) -- (current page.south east) -- ++ (-1cm,0) -- cycle;
    % Chapter Number
    \node[scale=3,darkblue] at ($(current page.north east) + (-1cm,-4cm)$)  {\thechapter};
    % Chapter
    \node[rotate=90, anchor=east] at ($(current page.north east) + (-.5cm,-4cm)$) {\leftmark{}};
    % Circle for page number
    \draw[fill=darkblue,draw=none] ($(current page.south east) + (-1cm,3cm)$) circle (3mm);
    % Page number
    \node at ($(current page.south east) + (-1cm,3cm)$)  {\textcolor{white}\thepage};
  \end{tikzpicture}}
\fancyhead[RE]{
\begin{tikzpicture}[overlay,remember picture]
    \draw[fill=lightblue,draw=none] ($(current page.north west) + (1cm,0)$) -- (current page.north west) -- (current page.south west) -- ++ (1cm,0) -- cycle;
    \node[rotate=90,anchor=east] at ($(current page.north west) + (.5cm,-4cm)$) {\rightmark};
    \node[scale=3,darkblue] at ($(current page.north west) + (1cm,-4cm)$) {\thechapter};
    \draw[fill=darkblue,draw=none] ($(current page.south west) + (1cm,3cm)$) circle (3mm);
    \node at ($(current page.south west) + (1cm,3cm)$)  {\textcolor{white}\thepage};
  \end{tikzpicture}}
\renewcommand{\chaptermark}[1]{%
\markboth{#1}{}}
\begin{document}
\chapter{My first Chapter: Problems}
\section{Problem 1}
\subsection{Problem 1}
\lipsum[1]
\subsection{Solution 1}
\lipsum[1-7]
\newpage
\section{Problem 2}
\subsection{Problem 2}
\lipsum[1]
\subsection{Solution 2}
\lipsum[1-4]

\chapter{A second Chapter Title}
\section{Problem 1}
\subsection{Problem 1}
\lipsum[1]
\newpage
\subsection{Solution 1}
\lipsum[1]
\newpage
\section{Problem 2}
\subsection{Problem 2}
\lipsum[1]
\subsection{Solution 2}
\lipsum[1]

\end{document}

Note that the left hand style is commented, the right one isn't but it's the same order just inverted +- and east/west on the x-axis.

Edit For now the chapter style stops in the middle of the chapter number, but that can easily be aligned by changing the corresponding anchors.

Edit #2 Concerning the OPs remarks I notices that the titlesec option was wrong and changed the example to use the general page style fancy.

3
  • Thank You for your solution. I tried to run your code but I get the error: ! Package titlesec Error: Incompatible package. See the titlesec package documentation for explanation. Type H <return> for immediate help. ... l.261 \newcommand\headrule{\setheadrule{.4\p@}}. I am not able to compile your code with PDFLaTeX.
    – Joe
    Commented Jul 8, 2016 at 18:05
  • I sincerely appreciate your time and help. I got your code to compile if I delete pagestyles from your code in the preamble. To answer your original question, I wanted the chapter thumb to show up on every page. With the book title showing up on the alternate pages. Thanks again for your time and help!
    – Joe
    Commented Jul 9, 2016 at 1:34
  • 1
    I changed the MWE to use the general page style - if you now want to have that style also on the chapter start pages, have a look at defining the page style for chapter start pages to also be fancy. Yes, somehow I needed that option for a while and after rearranging it caused a conflict; I removed the option from the MWE above.
    – Ronny
    Commented Jul 9, 2016 at 5:33

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .