Как мне улучшить стиль этого раздела?

Как мне улучшить стиль этого раздела?

Я создаю шаблон и пытаюсь настроить несколько вещей в нем, и одна из них — стиль раздела. Я создал команду, которая создает шестиугольник на левой стороне экрана, как показано на изображении ниже вместе с кодом:

Я использую больше пакетов, но думаю, что для решения этой проблемы наиболее важны следующие.

\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нужна только.

Связанный контент