![Wie kann ich diesen Abschnittsstil verbessern?](https://rvso.com/image/461898/Wie%20kann%20ich%20diesen%20Abschnittsstil%20verbessern%3F.png)
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}}
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}[]
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}
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 tikzpicture
und 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 = south
aus den Optionen für das rote Sechseck und fügen Sie es baseline = -0.5ex
zu den Optionen für die tikzpicture
Umgebung hinzu.
Einige Anmerkungen: tcolorbox
viele tikz
, pgfplots
viele tikz
und tikz
viele 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.geometric
wird nur Folgendes benötigt.