Estoy creando una plantilla e intentando personalizar varias cosas en ella, y una de ellas es el estilo de la sección. Creé un comando que forma un hexágono en el lado izquierdo de la pantalla, como se muestra en la imagen a continuación junto con el código:
Estoy usando más paquetes que este, pero creo que los esenciales para este problema son estos.
\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}}
Bueno, con este comando intenté usar \titleformat{} del paquete titlesec para diseñar mi sección de la siguiente manera:
\titleformat{\section}[display]
{\normalfont\bfseries\color{ChapterBackground}}{}{1em}
{\llap{
\polygonSection\hspace{-6pt}}\huge\textsc}[]
Sin embargo, me gustaría alinear el título con el hexágono y agregar un pequeño espacio entre los dos, pero no encontré ninguna manera de hacerlo y recibo el siguiente mensaje de error:
Error de pgf del paquete: no se conoce ninguna forma denominada "área de texto de la página actual".
Sin embargo, si elimino esta parte del código, no se ve como quiero. Además, usando el paquete tikzpagenodes, los polígonos ya no están separados por secciones, sino por páginas, que no es lo que quiero.
Eso es todo, si alguien puede ayudarme sería genial.
Respuesta1
No estoy seguro de si es una buena idea sangrar el título de la sección para que comience más a la derecha que el texto del cuerpo. Quizás deberías aumentar el margen izquierdo. De todos modos, lo siguiente debería hacer lo que quieras:
\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}
¿Cómo funciona esto? Lo tikzpicture
que agregamos al título de la sección primero coloca el hexágono rojo que está anclado, de modo que se asiente horizontalmente en la línea base del papel tikzpicture
y verticalmente en el borde izquierdo del papel. Los otros hexágonos (de los cuales sólo necesitas tres, así que ajusté la \foreach
lista) se centran alrededor de este hexágono rojo.
Puedes ajustar el espaciado insertando algo de espacio usando \titleformat{\section}
, pero como dije al principio, podría ser mejor aumentar el margen izquierdo de tu documento por completo.
Si desea centrar los hexágonos verticalmente, elimine anchor = south
de las opciones el hexágono rojo y agréguelo baseline = -0.5ex
a las opciones del tikzpicture
entorno.
Algunas observaciones: tcolorbox
cargas tikz
, pgfplots
también cargas tikz
y tikz
cargas xcolor
. Por tanto, no es necesario cargar todos estos paquetes juntos. También deberías pensar realmente en qué TikBibliotecas Z que realmente necesitas. Para lo anterior sólo shapes.geometric
se necesita.