![Como posso melhorar o estilo desta seção?](https://rvso.com/image/461898/Como%20posso%20melhorar%20o%20estilo%20desta%20se%C3%A7%C3%A3o%3F.png)
Estou fazendo um template e tentando customizar várias coisas nele, e uma delas é o estilo da seção. Criei um comando que faz um hexágono no lado esquerdo da tela, conforme mostra a imagem abaixo junto com o código:
Estou usando mais pacotes que esse, mas acho que os essenciais para esse problema são esses.
\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}}
Bem, com este comando tentei usar \titleformat{} do pacote titlesec para estilizar minha seção da seguinte forma:
\titleformat{\section}[display]
{\normalfont\bfseries\color{ChapterBackground}}{}{1em}
{\llap{
\polygonSection\hspace{-6pt}}\huge\textsc}[]
Porém, gostaria de alinhar o título com o hexágono e adicionar um pequeno espaço entre os dois, mas não encontrei nenhuma maneira de fazer isso e estou recebendo a seguinte mensagem de erro:
Erro de pacote pgf: Nenhuma forma chamada `área de texto da página atual' é conhecida.
Porém, se eu tirar essa parte do código, ela não fica do jeito que eu quero. Além disso, usando o pacote tikzpagenodes, os polígonos não são mais separados por seções, mas sim por páginas, o que não é o que eu quero.
É isso, se alguém puder me ajudar, seria ótimo.
Responder1
Não tenho certeza se é uma boa ideia recuar o título da seção para que comece mais à direita do que o corpo do texto. Talvez você deva aumentar a margem esquerda. De qualquer forma, o seguinte deve fazer o que você deseja:
\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}
Como é que isso funciona? O tikzpicture
que adicionamos ao título da seção primeiro coloca o hexágono vermelho que está ancorado, de modo que fique horizontalmente na linha de base tikzpicture
e verticalmente na borda esquerda do papel. Os outros hexágonos (dos quais você só precisa de três, então ajustei a \foreach
lista) são então centralizados em torno deste hexágono vermelho.
Você pode ajustar o espaçamento inserindo algum espaço usando \titleformat{\section}
, mas como eu disse no início, talvez seja melhor aumentar totalmente a margem esquerda do seu documento.
Caso queira centralizar os hexágonos verticalmente, retire anchor = south
das opções do hexágono vermelho e adicione baseline = -0.5ex
nas opções do tikzpicture
ambiente.
Algumas observações: tcolorbox
cargas tikz
, pgfplots
também cargas tikz
e tikz
cargas xcolor
. Portanto, não é necessário carregar todos esses pacotes juntos. Você também deve pensar sobre qual TikBibliotecas Z que você realmente precisa. Para o acima, só shapes.geometric
é necessário.