
Я хотел бы временно не назначать новые цветные поля для некоторых глав. Возможно ли это, например, с помощью или сбросом команды \ChapFrame
?
решение1
Я предполагаю, что вы имеете в виду \ChapFrame
команду, приведенную вthis answer
кНазвание главы в повернутом вертикальном поле на полях.. В этом случае ответ — да, вы можете условно активировать/деактивировать рамки. Небольшой пример:
\documentclass{book}
\usepackage{background}
\usetikzlibrary{calc}
\usepackage{ifthen}
\usepackage{lipsum}
\pagestyle{plain}
\newif\ifFrame
\Frametrue
% background common settings
\backgroundsetup{
scale=1,
angle=0,
opacity=1,
contents={}
}
% auxiliary counter
\newcounter{chapshift}
\addtocounter{chapshift}{-1}
% the list of colors to be used (add more if needed)
\newcommand\BoxColor{%
\ifcase\thechapshift blue!30\or red!30\or olive!30\or magenta!30\else yellow!30\fi}
% the main command; the mandatory argument sets the color of the vertical box
\newcommand\ChapFrame{%
\AddEverypageHook{%
\ifFrame
\ifthenelse{\isodd{\value{page}}}
{\backgroundsetup{contents={%
\begin{tikzpicture}[overlay,remember picture]
\node[
fill=\BoxColor,
inner sep=0pt,
rectangle,
text width=2cm,
text height=4cm,
align=center,
anchor=north east
]
at ($ (current page.north east) + (-0cm,-2*\thechapshift cm) $)
{\rotatebox{90}{\hspace*{.3cm}%
\parbox[c][1.5cm][t]{3.4cm}{%
\raggedright\textcolor{black}{\scshape\leftmark}}}};
\end{tikzpicture}}}%
}
{\backgroundsetup{contents={%
\begin{tikzpicture}[overlay,remember picture]
\node[
fill=\BoxColor,
inner sep=0pt,
rectangle,
text width=2cm,
text height=4cm,
align=center,
anchor=north west
]
at ($ (current page.north west) + (-0cm,-2*\thechapshift cm) $)
{\rotatebox{90}{\hspace*{.3cm}%
\parbox[c][1.5cm][t]{3.4cm}{%
\raggedright\textcolor{black}{\scshape\leftmark}}}};
\end{tikzpicture}}}
}
\BgMaterial%
\fi%
}%
\stepcounter{chapshift}
}
% redefinition of \chaptermark to contain only the title
\renewcommand\chaptermark[1]{\markboth{\thechapter.~#1}{}}
\begin{document}
\chapter[intro]{Introduction}
\ChapFrame
\lipsum[1-7]
\chapter{Results}
\ChapFrame
\lipsum[1-7]
\chapter{Discussion}
\Framefalse
\lipsum[1-7]
\chapter{Conclusion}
\Frametrue
\ChapFrame
\lipsum[1-7]
\end{document}
Я определил логический переключатель для активации/деактивации фреймов; изначально логический переключатель равен true, поэтому фреймы рисуются. В любом месте, где вы хотите деактивировать фреймы, используйте \Framefalse
(возможно, с предшествующим \clearpage
). Чтобы активировать фреймы, просто используйте \Frametrue
.
Я также изменил старый синтаксис для background
пакета, используемого в связанном ответе, на новый синтаксис. Конечно, код со старым синтаксисом все еще может быть использован.