
Я работаю над шаблоном LaTeX для приложения к статье, которое будет использоваться всей командой. Моя текущая задача — создать цветную рамку вокруг \section{}
заголовков, сохраняя при этом качества команды \section{}
.
Я решил эту задачу, создав tcolorbox
, внешний вид которого меня устраивает, но функциональность команды \section{}
потеряна. Мне нужна помощь в устранении этой проблемы.
Я назвал tcolorboxes " sectionboxes
", как показано в рабочем примере ниже, и хотел бы просто иметь возможность искать файлы моих коллег и заменять все \section{}
на \sectionbox{}
, чтобы применить этот макет.
Мне нужно, \sectionbox
чтобы es имели те же функции, что и \section
команды, т.е.
отображать количество разделов в самом текстовом заголовке (например, «1. Заголовок раздела», а не просто «Заголовок раздела»), и
для
\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}