![Как мне улучшить стиль этого раздела?](https://rvso.com/image/461898/%D0%9A%D0%B0%D0%BA%20%D0%BC%D0%BD%D0%B5%20%D1%83%D0%BB%D1%83%D1%87%D1%88%D0%B8%D1%82%D1%8C%20%D1%81%D1%82%D0%B8%D0%BB%D1%8C%20%D1%8D%D1%82%D0%BE%D0%B3%D0%BE%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%D0%B0%3F.png)
Я создаю шаблон и пытаюсь настроить несколько вещей в нем, и одна из них — стиль раздела. Я создал команду, которая создает шестиугольник на левой стороне экрана, как показано на изображении ниже вместе с кодом:
Я использую больше пакетов, но думаю, что для решения этой проблемы наиболее важны следующие.
\RequirePackage[%
top = 2.5cm,
bottom = 3.8cm,
left = 2cm,
right = 2cm,
]{geometry}
\RequirePackage[most]{tcolorbox}
\RequirePackage{pgfplots}
\RequirePackage{graphicx}
\RequirePackage{xcolor}
\RequirePackage{tikz}
\RequirePackage{titletoc}
\RequirePackage{lmodern}
\usetikzlibrary{
decorations.pathreplacing,
decorations.pathmorphing,
decorations.markings,
shapes.multipart,
shapes.geometric,
arrows.meta,
fadings,
arrows,
angles,
quotes,
calc,
3d,
}
\pgfplotsset{compat=1.18}
\definecolor{ChapterBackground}{HTML}{101010} % PERSONAL BLACK
\definecolor{ChapterForeground}{HTML}{e93820} % PERSONAL ORANGE I
\newcommand{\polygonSection}{%
\begin{tikzpicture}[remember picture, overlay]
\foreach \i in {0.5,...,5}{%
\node[%
ChapterBackground,
regular polygon sides = 6,
regular polygon,
rounded corners,
minimum size = \i cm,
ultra thick,
draw,
] at ($(current page.north west |- current page text area.west)+(0,0)$) {};
}
\node[%
regular polygon sides = 6,
rounded corners,
regular polygon,
minimum size = 1.58 cm,
ultra thick,
inner sep = 0,
fill = ChapterForeground!85,
text = ChapterForeground!5,
] at ($(current page.north west |- current page text area.west)+(0,0)$) {};
\end{tikzpicture}}
Итак, с помощью этой команды я попытался использовать \titleformat{} из пакета titlesec, чтобы оформить мой раздел следующим образом:
\titleformat{\section}[display]
{\normalfont\bfseries\color{ChapterBackground}}{}{1em}
{\llap{
\polygonSection\hspace{-6pt}}\huge\textsc}[]
Однако я хотел бы выровнять заголовок с шестиугольником и добавить небольшой пробел между ними, но я не нашел способа это сделать, и получаю следующее сообщение об ошибке:
Ошибка пакета pgf: неизвестна форма с именем «текущая текстовая область страницы».
Однако, если я вытащу эту часть из кода, то она будет выглядеть не так, как я хочу. Кроме того, при использовании пакета tikzpagenodes полигоны больше не разделяются по разделам, а по страницам, что не то, что я хочу.
Вот и все, если кто-то может мне помочь, это было бы здорово.
решение1
Я не уверен, хорошая ли это идея — отступать заголовок раздела так, чтобы он начинался правее основного текста. Может быть, вам лучше увеличить левое поле. В любом случае, следующее должно сделать то, что вам нужно:
\documentclass{article}
\RequirePackage[%
top = 2.5cm,
bottom = 3.8cm,
left = 2cm,
right = 2cm,
]{geometry}
\RequirePackage{tikz}
\usetikzlibrary{shapes.geometric}
\definecolor{ChapterBackground}{HTML}{101010} % PERSONAL BLACK
\definecolor{ChapterForeground}{HTML}{e93820} % PERSONAL ORANGE I
\newcommand{\polygonSection}{%
\begin{tikzpicture}[remember picture, overlay]
\node[%
regular polygon sides = 6,
rounded corners,
regular polygon,
minimum size = 1.58cm,
ultra thick,
inner sep = 0pt,
fill = ChapterForeground!85,
anchor = south
] at (current page.north west |- 0,0) (red polygon) {};
\foreach \i in {2.5,...,4.5}{%
\node[%
ChapterBackground,
regular polygon sides = 6,
regular polygon,
rounded corners,
minimum size = \i cm,
ultra thick,
draw,
] at (red polygon) {};
}
\end{tikzpicture}}
\RequirePackage{titlesec}
\titleformat{\section}[display]
{\normalfont\bfseries\color{ChapterBackground}\huge}{}{0pt}
{\polygonSection\hspace{1em}}
\usepackage{lipsum}
\begin{document}
\section{Section}
\lipsum[1]
\end{document}
Как это работает? То tikzpicture
, что мы добавляем к названию раздела, сначала помещает красный шестиугольник, который закреплен shouth, так что он горизонтально располагается на базовой линии tikzpicture
и вертикально на левом краю бумаги. Остальные шестиугольники (из которых вам действительно нужно только три, поэтому я скорректировал список \foreach
) затем центрируются вокруг этого красного шестиугольника.
Вы можете отрегулировать интервал, вставив немного пробела с помощью \titleformat{\section}
, но, как я уже сказал в начале, может быть лучше увеличить левое поле вашего документа в целом.
Если вы хотите отцентрировать шестиугольники по вертикали, удалите anchor = south
из вариантов красный шестиугольник и добавьте baseline = -0.5ex
в варианты окружения tikzpicture
.
Некоторые замечания: tcolorbox
грузы tikz
, pgfplots
также грузы tikz
и tikz
грузы xcolor
. Поэтому нет необходимости загружать все эти пакеты вместе. Вы также должны действительно подумать о том, какой TiкБиблиотеки Z, которые вам действительно нужны. Для вышеперечисленного, shapes.geometric
нужна только.