В рамках документа, который я разрабатываю, я хотел бы создать стиль главы, который включает все номера глав в документе. Например, если всего 6 глав, то цифры от 1 до 6 должны отображаться над заголовком главы, вот так:
Номера должны отображаться внутри кругов tikz, как показано выше. Текущий номер главы должен быть больше остальных и выделен синим кругом с темно-синим контуром. Остальные круги должны быть заполнены одним горизонтальным градиентом (с более темным градиентом для контуров), заставляя круги плавно переходить от темно-серого к белому по мере удаления от синего круга. Пока что мне не удалось этого добиться, и я был бы очень признателен за помощь. Вот что у меня есть на данный момент:
\documentclass[oneside,11pt,a4paper]{memoir}
\usepackage[margin=2.5cm]{geometry}
\usepackage{tikz}
\usepackage{titletoc}
\usepackage{lipsum}
\makechapterstyle{mystyle}{%
\chapterstyle{default}
\renewcommand*{\chapnumfont}{\normalfont\Huge\sffamily\bfseries}
\renewcommand*{\chaptitlefont}{\normalfont\huge\sffamily\bfseries\color{black}}
\renewcommand*{\printchapternum}{%
\centering\begin{tikzpicture}[baseline={([yshift=-.775ex]current bounding box.center)}]
\node[fill=blue!50,circle,text=white,draw=blue!50!black] {\thechapter};
\end{tikzpicture}\\[1ex]}
\renewcommand*{\printchaptertitle}[1]{%
{\chaptitlefont ##1}}
}
\let\chaptername\relax
%use new chapter style
\chapterstyle{mystyle}
\begin{document}
\chapter{Logarithms}
\chapter{Exponentials}
\chapter{Determinants}
\chapter{Vectors}
\chapter{Differentiation}
\chapter{Integration}
\end{document}
Любая помощь в получении желаемого результата будет высоко оценена.
решение1
Интересная идея. Можно сделать что-то вроде этого:
\documentclass[oneside,11pt,a4paper]{memoir}
\usepackage[margin=2.5cm]{geometry}
\usepackage{tikz}
\usetikzlibrary{positioning}
\usepackage{titletoc}
\pgfmathtruncatemacro{\chaptercount}{6}
\makechapterstyle{mystyle}{%
\chapterstyle{default}
\renewcommand*{\chaptername}{}
\renewcommand*{\chapnumfont}{\Huge\sffamily\bfseries}
\renewcommand*{\chaptitlefont}{\huge\sffamily\bfseries}
\renewcommand*{\printchapternum}{%
\centering\begin{tikzpicture}
\coordinate (t0) at (0,0);
\foreach \i [count=\j from 0] in {1,...,\chaptercount} {
\pgfmathsetmacro{\opacity}{
\i < \thechapter ?
1 / (\chaptercount - 1) * (\chaptercount - (\thechapter - \i)) :
1 / (\chaptercount - 1) * (\chaptercount + (\thechapter - \i))
}
\ifnum\thechapter=\i\relax
\node[
circle,
right={10pt of t\j},
fill={blue!50},
draw={blue!50!black},
text={white},
] (t\i) {\i};
\else
\node[
circle,
right={10pt of t\j},
fill=gray!50,
draw=blue!50!black,
text=white,
fill opacity={\opacity},
font=\small
] (t\i) {\i};
\fi
}
\end{tikzpicture}
}
\renewcommand*{\printchaptertitle}[1]{%
{\chaptitlefont ##1}}
}
%use new chapter style
\chapterstyle{mystyle}
\begin{document}
\chapter{Logarithms}
\chapter{Exponentials}
\chapter{Determinants}
\chapter{Vectors}
\chapter{Differentiation}
\chapter{Integration}
\end{document}
Вывод (после как минимум двух компиляций):
Если вы хотите также сделать границы узлов более плавными, вы можете просто заменить их fill opacity
на opacity
. Это фактически также сделает плавными и текст, но в этом примере текст в любом случае белый.
Максимальное количество глав жестко закодировано с помощью \pgfmathtruncatemacro{\chaptercount}{6}
. Его можно получить другими способами, но тогда всегда нужно будет проверять, что вычисления также работают с неправильными значениями, поскольку во время первого цикла компиляции значение , \chaptercount
скорее всего, будет неправильным.