Wie kann ich diesen Abschnittsstil verbessern?

Wie kann ich diesen Abschnittsstil verbessern?

Ich erstelle eine Vorlage und versuche, mehrere Dinge darin anzupassen, und eines davon ist der Abschnittsstil. Ich habe einen Befehl erstellt, der auf der linken Seite des Bildschirms ein Sechseck erstellt, wie im Bild unten zusammen mit dem Code gezeigt:

Ich verwende mehr Pakete als dieses, aber ich denke, dass diese für dieses Problem die wichtigsten sind.

\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}}

Bildbeschreibung hier eingeben

Nun, mit diesem Befehl habe ich versucht, \titleformat{} aus dem Titlesec-Paket zu verwenden, um meinen Abschnitt wie folgt zu formatieren:

\titleformat{\section}[display]
{\normalfont\bfseries\color{ChapterBackground}}{}{1em}
{\llap{
\polygonSection\hspace{-6pt}}\huge\textsc}[]

Bildbeschreibung hier eingeben

Ich möchte den Titel jedoch am Sechseck ausrichten und einen kleinen Abstand zwischen beiden einfügen, habe jedoch keine Möglichkeit dazu gefunden und erhalte die folgende Fehlermeldung:

Paket-pgf-Fehler: Keine Form mit dem Namen „aktueller Seitentextbereich“ bekannt.

Wenn ich diesen Teil jedoch aus dem Code entferne, sieht es nicht so aus, wie ich es möchte. Außerdem werden die Polygone bei Verwendung des Pakets tikzpagenodes nicht mehr nach Abschnitten, sondern nach Seiten getrennt, was nicht das ist, was ich möchte.

Das ist es. Wenn mir jemand helfen könnte, wäre das großartig.

Antwort1

Ich bin mir nicht sicher, ob es eine gute Idee ist, den Abschnittstitel einzurücken, sodass er weiter rechts beginnt als der Haupttext. Vielleicht sollten Sie lieber den linken Rand vergrößern. Wie dem auch sei, Folgendes sollte ungefähr das bewirken, was Sie möchten:

\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}

Bildbeschreibung hier eingeben

Wie funktioniert das? Die tikzpicture, die wir dem Abschnittstitel hinzufügen, platziert zuerst das rote Sechseck, das unten verankert ist, so dass es horizontal auf der Grundlinie der tikzpictureund vertikal am linken Rand des Papiers sitzt. Die anderen Sechsecke (von denen man eigentlich nur drei braucht, deshalb habe ich die Liste angepasst \foreach) werden dann um dieses rote Sechseck zentriert.

Sie können den Abstand anpassen, indem Sie mit etwas Leerzeichen einfügen \titleformat{\section}. Wie ich jedoch am Anfang sagte, ist es möglicherweise besser, den linken Rand Ihres Dokuments insgesamt zu vergrößern.

Wenn Sie die Sechsecke vertikal zentrieren möchten, entfernen Sie es anchor = southaus den Optionen für das rote Sechseck und fügen Sie es baseline = -0.5exzu den Optionen für die tikzpictureUmgebung hinzu.


Einige Anmerkungen: tcolorboxviele tikz, pgfplotsviele tikzund tikzviele xcolor. Es ist daher nicht notwendig, alle diese Pakete zusammen zu laden. Sie sollten auch wirklich darüber nachdenken, welche TikZ-Bibliotheken, die Sie wirklich brauchen. Für das oben genannte shapes.geometricwird nur Folgendes benötigt.

verwandte Informationen