\section{} внутри tcolorbox

\section{} внутри tcolorbox

Я работаю над шаблоном LaTeX для приложения к статье, которое будет использоваться всей командой. Моя текущая задача — создать цветную рамку вокруг \section{}заголовков, сохраняя при этом качества команды \section{}.

Я решил эту задачу, создав tcolorbox, внешний вид которого меня устраивает, но функциональность команды \section{}потеряна. Мне нужна помощь в устранении этой проблемы.

Я назвал tcolorboxes " sectionboxes", как показано в рабочем примере ниже, и хотел бы просто иметь возможность искать файлы моих коллег и заменять все \section{}на \sectionbox{}, чтобы применить этот макет.

Мне нужно, \sectionboxчтобы es имели те же функции, что и \sectionкоманды, т.е.

  1. отображать количество разделов в самом текстовом заголовке (например, «1. Заголовок раздела», а не просто «Заголовок раздела»), и

  2. для \sectionbox{}отображения контента в оглавлении с соответствующим ему номером раздела.

Для создания коробок я использую пакет tcolorboxи команду, указанные ниже.

В тексте, там, где я обычно пишу \section, я пишу:

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

Это по крайней мере добавляет \sectionboxконтент в ToC, но без числа. Это также слишком много строк, чтобы быть эффективным.

Мне кажется, что я перепробовал все, включая множество других способов создания коробок, но у меня просто не получается. Есть ли у кого-нибудь решение?

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

решение1

Все, что вам нужно, это \refstepcounterи \numberline. Подсказка: используйте обычную \sectionкоманду и сравните записи в файле 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}

Связанный контент