\section{} dentro de um tcolorbox

\section{} dentro de um tcolorbox

Estou trabalhando em um modelo LaTeX para um apêndice de artigo que será usado por toda a equipe. Meu desafio atual é criar uma caixa colorida ao redor \section{}dos títulos, mantendo as qualidades do \section{}comando.

Abordei essa tarefa criando um tcolorbox, com a aparência que me agrada, mas a funcionalidade do \section{}comando foi perdida. Preciso de ajuda para solucionar esse problema.

Nomeei os tcolorboxes " sectionboxes" conforme visto no exemplo prático abaixo e gostaria de simplesmente poder pesquisar os arquivos dos meus colegas e substituir todos \section{}por \sectionbox{}para aplicar este layout.

Preciso que os \sectionboxes tenham as mesmas funções dos \sectioncomandos, ou seja

  1. para exibir a contagem de seções no próprio título do texto (por exemplo, "1. Título da seção" e não apenas "Título da seção"), e

  2. para que o \sectionbox{}conteúdo seja exibido no índice com sua contagem de seções correspondente.

Para criar as caixas, utilizo o pacote tcolorboxe o comando abaixo.

No texto, onde normalmente escreveria \section, escrevo:

\stepcounter{section}
\addcontentsline{toc}{section}{SECTION_NAME}
\sectionbox{\MakeUppercase{SECTION_NAME}}

Isso pelo menos adiciona o \sectionboxconteúdo ao ToC, mas sem o número da contagem. Também são muitas linhas para serem eficientes.

Sinto que tentei de tudo, incluindo inúmeras outras maneiras de criar as caixas, mas simplesmente não consigo fazer funcionar. Alguém tem uma solução?

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tcolorbox}
\usepackage{lipsum}

\title{title}
\author{author}
\date{\today}

\newcommand{\sectionbox}[1] {
\begin{tcolorbox}
             [
              colback=purple!100,% background
              colframe=purple,% frame colour
              coltext=white, % text color
              width=\linewidth,%
              height=0.7cm, 
              halign=center,
              valign=center,
              fontupper=\large\bfseries,
              arc=0mm, auto outer arc,
             ]
    {#1}
\end{tcolorbox} 
} %

\begin{document}
\maketitle

\sectionbox{Contents}
\vspace{-1cm}
\renewcommand{\contentsname}{}

\tableofcontents
\newpage

\stepcounter{section}
\addcontentsline{toc}{section}{SECTION-NAME}
\sectionbox{\MakeUppercase{SECTION-NAME}}

\lipsum[1-2]

\end{document}

Responder1

Tudo que você precisa é \refstepcountere \numberline. Dica, use um \sectioncomando normal e compare as entradas no arquivo aux.

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage{tcolorbox}
\usepackage{lipsum}

\title{title}
\author{author}
\date{\today}

\newcommand{\sectionbox}[1] {
\begin{tcolorbox}
             [
              colback=purple!100,% background
              colframe=purple,% frame colour
              coltext=white, % text color
              width=\linewidth,%
              height=0.7cm, 
              halign=center,
              valign=center,
              fontupper=\large\bfseries,
              arc=0mm, auto outer arc,
             ]
    {#1}
\end{tcolorbox} 
} %

\begin{document}
\maketitle

\sectionbox{Contents}
\vspace{-1cm}
\renewcommand{\contentsname}{}

\tableofcontents
\newpage

\refstepcounter{section}
\addcontentsline{toc}{section}{\string\numberline{\thesection}SECTION-NAME}
\sectionbox{\MakeUppercase{SECTION-NAME}}

\lipsum[1-2]

\end{document}

informação relacionada