我想使用不同于矩形的形状作为 chapterthumb-symbol,即圆形或圆角菱形。使用 scrlayer-scrpage 和双面 scrreprt 设置是否可行?我看到有人可以使用 Tikz 在 LaTeX 中绘制形状,我该如何使用我已有的设置来实现这一点?
梅威瑟:
\documentclass[11pt, twoside, openright, BCOR=1cm, headsepline]{scrreprt}
\usepackage[paperheight=24cm, paperwidth=17cm, inner=2.3cm, outer=1.6cm, top=2.5cm, bottom=1.9cm,footskip=1cm]{geometry}
\usepackage{lmodern}
\usepackage[T1]{fontenc}
\usepackage[english]{babel}
\usepackage{graphicx}
\usepackage{xcolor}
%%%---header/footer
\usepackage[manualmark]{scrlayer-scrpage}
%%--"Chapter #" in lehead (only for numbered chapters), chapter name in rohead
\renewcommand*\chaptermark[1]{%
\markboth{\ifnumbered{chapter}{\chaptermarkformat}{}}{#1}%
}
\AfterTOCHead[toc]{\markboth{}{\contentsname}}
\ofoot[\pagemark]{\pagemark}
\renewcommand\chapterpagestyle{empty} %% no header or page numbers on chapter title pages
%%%---thumb indices using chapterthumb
% the following bases on an example in the KOMA-Script book:
\newcommand*{\firstchapterthumbskip}{.1\paperheight}
\newcommand*{\lastchapterthumbskip}{\firstchapterthumbskip}
\newcommand*{\chapterthumbheight}{2em}
\newcommand*{\chapterthumbwidth}{.1\paperheight}
\newcommand*{\chapterthumbskip}{.1\paperheight}
\newcommand*{\chapterthumbboxcolor}{gray!30}
\newcommand*{\chapterthumbcolor}{white}
\newcommand*{\chapterthumbformat}{\thechapter}
\newkomafont{chapterthumb}{\normalfont\Large\color{\chapterthumbcolor}}
\makeatletter
\newcommand*\chapterthumb@box{%
\parbox[c][\chapterthumbheight][c]{\chapterthumbwidth}{%
\centering\usekomafont{chapterthumb}{\chapterthumbformat}%
}%
}
\newcommand*{\chapterthumbbox}{%
\if@mainmatter
\ifnum\value{chapter}>\z@
\ifnum \value{chapterthumb}<\z@
\else
\begingroup
\protected@edef\reserved@a{\chapterthumbformat}%
\ifx\reserved@a\lastchapterthumbformat\else
\stepcounter{chapterthumb}%
\global\let\lastchapterthumbformat\reserved@a
\fi
\@tempcnta=\numexpr
\dimexpr
\paperheight
-\firstchapterthumbskip
-\chapterthumbwidth
-\lastchapterthumbskip
\relax / \dimexpr
\chapterthumbskip
\relax
+1
\relax
\ifnum \value{chapterthumb}<\@tempcnta
\else
\setcounter{chapterthumb}{0}%
\fi
\vspace*{%
\dimexpr
\firstchapterthumbskip
+ ( \chapterthumbskip )
* \value{chapterthumb}%
- \baselineskip
\relax
}\par
\setlength{\fboxsep}{0pt}%
\ifodd\value{page}
\hfill
\makebox[0pt][r]{%
\rotatebox[origin=tr]{90}{%
\colorbox{\chapterthumbboxcolor}{%
\parbox[t][\chapterthumbheight]{\chapterthumbwidth}{%
\chapterthumb@box
\vskip3mm
}}}}%
\else
\hspace*{-3mm}%
\makebox[0pt][l]{%
\rotatebox[origin=tr]{90}{%
\colorbox{\chapterthumbboxcolor}{%
\parbox{\chapterthumbwidth}{%
\vskip3mm
\chapterthumb@box
}}}}%
\fi
\endgroup
\fi
\fi
\fi
}
\makeatother
\newcounter{chapterthumb}
\setcounter{chapterthumb}{10000}
\newcommand*{\lastchapterthumbformat}{\relax}
\DeclareNewLayer[%
background,%
outermargin,%
contents=\chapterthumbbox
]{chapterthumb}
\newcommand*\EnableChapterthumb{%
\IfLayerAtPageStyle{scrheadings}{chapterthumb}{}
{\AddLayersToPageStyle{@everystyle@}{chapterthumb}}%
}
\newcommand*\DisableChapterthumb{%
\RemoveLayersFromPageStyle{@everystyle@}{chapterthumb}%
}
\EnableChapterthumb
\usepackage{lipsum}
\begin{document}
\chapter{First}
\lipsum[1-6]
\chapter{Second}
\lipsum[7-12]
\end{document}
答案1
它会出现成为可能。
\documentclass[11pt, twoside, openright, BCOR=1cm, headsepline]{scrreprt}
\usepackage[paperheight=24cm, paperwidth=17cm, inner=2.3cm, outer=1.6cm, top=2.5cm, bottom=1.9cm,footskip=1cm]{geometry}
\usepackage{tikz}
%%%---header/footer
\usepackage[manualmark]{scrlayer-scrpage}
%%--"Chapter #" in lehead (only for numbered chapters), chapter name in rohead
\renewcommand*\chaptermark[1]{%
\markboth{\ifnumbered{chapter}{\chaptermarkformat}{}}{#1}%
}
\AfterTOCHead[toc]{\markboth{}{\contentsname}}
\ofoot[\pagemark]{\pagemark}
\renewcommand\chapterpagestyle{empty} %% no header or page numbers on chapter title pages
%%%---thumb indices using chapterthumb
% the following bases on an example in the KOMA-Script book:
\newcommand*{\firstchapterthumbskip}{.1\paperheight}
\newcommand*{\lastchapterthumbskip}{\firstchapterthumbskip}
\newcommand*{\chapterthumbheight}{3em}
\newcommand*{\chapterthumbwidth}{.1\paperheight}
\newcommand*{\chapterthumbskip}{.1\paperheight}
\colorlet{chapterthumbboxcolor}{gray!30}
\newcommand*{\chapterthumbcolor}{white}
\newcommand*{\chapterthumbformat}{\thechapter}
\newkomafont{chapterthumb}{\normalfont\Large\color{\chapterthumbcolor}}
\makeatletter
\newcommand*\chapterthumb@box{%
\usekomafont{chapterthumb}%
\parbox[c][\chapterthumbheight][c]{\chapterthumbwidth}{%
\centering
\begin{tikzpicture}
\node[circle, inner sep=1.3ex, fill=chapterthumbboxcolor]
{\chapterthumbformat};
\end{tikzpicture}%
}%
}
\newcommand*{\chapterthumbbox}{%
\if@mainmatter
\ifnum\value{chapter}>\z@
\ifnum \value{chapterthumb}<\z@
\else
\begingroup
\protected@edef\reserved@a{\chapterthumbformat}%
\ifx\reserved@a\lastchapterthumbformat\else
\stepcounter{chapterthumb}%
\global\let\lastchapterthumbformat\reserved@a
\fi
\@tempcnta=\numexpr
\dimexpr
\paperheight
-\firstchapterthumbskip
-\chapterthumbwidth
-\lastchapterthumbskip
\relax / \dimexpr
\chapterthumbskip
\relax
+1
\relax
\ifnum \value{chapterthumb}<\@tempcnta
\else
\setcounter{chapterthumb}{0}%
\fi
\vspace*{%
\dimexpr
\firstchapterthumbskip
+ ( \chapterthumbskip )
* \value{chapterthumb}%
- \baselineskip
\relax
}\par
\setlength{\fboxsep}{0pt}%
\ifodd\value{page}
\hfill
\makebox[0pt][r]{%
\rotatebox[origin=c]{90}{\chapterthumb@box}}%
\else
\makebox[0pt][l]{%
\rotatebox[origin=c]{90}{\chapterthumb@box}}%
\fi
\endgroup
\fi
\fi
\fi
}
\makeatother
\newcounter{chapterthumb}
\setcounter{chapterthumb}{10000}
\newcommand*{\lastchapterthumbformat}{\relax}
\DeclareNewLayer[%
background,%
outermargin,%
contents=\chapterthumbbox
]{chapterthumb}
\newcommand*\EnableChapterthumb{%
\IfLayerAtPageStyle{scrheadings}{chapterthumb}{}
{\AddLayersToPageStyle{@everystyle@}{chapterthumb}}%
}
\newcommand*\DisableChapterthumb{%
\RemoveLayersFromPageStyle{@everystyle@}{chapterthumb}%
}
\EnableChapterthumb
\usepackage{lipsum}
\begin{document}
\chapter{First}
\lipsum[1-6]
\chapter{Second}
\lipsum[7-12]
\end{document}
如果您想要带有圆角的菱形,请添加\usetikzlibrary{backgrounds}
并\usepackage{tikz}
替换\begin{tikzpicture} ... \end{tikzpicture}%
部分内容,如下所示:
\begin{tikzpicture}
\node[inner sep=2.5ex] (n) {\chapterthumbformat};
\begin{scope}[on background layer]
\path[fill=chapterthumbboxcolor, rounded corners=2pt]
(n.north) -- (n.west) -- (n.south) -- (n.east) -- cycle;
\end{scope}
\end{tikzpicture}%