Разный стиль нумерации в названии и ссылках на разделы

Разный стиль нумерации в названии и ссылках на разделы

Я хотел бы поместить номер раздела в цветную рамку в заголовке, но когда я использую ссылку, я хочу, чтобы был напечатан только номер раздела, а не цветная рамка...

я использовал

\renewcommand{\thesection}{\colorbox{blue}{\arabic{section}.}}

и это работает для заголовка, но также помещает цветной прямоугольник в основной текст, когда я цитирую раздел с \ref{sec}. Есть ли решение изменить нумерацию раздела независимо в заголовке и ссылке?

решение1

Этот тип форматирования можно выполнить с помощью titlesecпакета. Он предоставляет \titleformatкоманду, которая позволяет форматировать заголовки разделов или других частей документа, не затрагивая команды встречных ссылок (например, \thesection). Смотритепакет документацииБольше подробностей.

Для цветных рамок вокруг номеров разделов подойдет следующий пример.

\documentclass{article}
\usepackage{color}
\usepackage{titlesec}
\titleformat{\section}{\Large\bfseries}{\colorbox{blue}{\thesection.}}{1em}{}

\begin{document}

\section{First section}
\label{sec1}

Test paragraph.

\section{Second section}

Test paragraph with reference to section \ref{sec1}.

\end{document}

решение2

Следующий минимальный пример обновляет способ печати номера секционного блока как части заголовка, вводя специальный механизм форматирования. Если не указан (новый) специальный формат (на основе секционного блока), по умолчанию используется \csname the#1\endcsname\quad, который в любом случае является значением по умолчанию в обычных классах документов.

введите описание изображения здесь

\documentclass{article}

\usepackage{xcolor}

\newcommand{\thesectioncntformat}{\colorbox{blue}{\thesection.}\quad}
%\newcommand{\thesubsectioncntformat}{\colorbox{red}{\thesubsection.}\quad}
%\newcommand{\thesubsubsectioncntformat}{\colorbox{green}{\thesubsubsection.}\quad}

\makeatletter
\renewcommand{\@seccntformat}[1]{%
  \ifcsname the#1cntformat\endcsname
    \csname the#1cntformat\endcsname % Special sectional unit number formatting
  \else
    \csname the#1\endcsname\quad % Default if no special format exists
  \fi
}
\makeatother

\begin{document}

\tableofcontents

\bigskip

See Section~\ref{sec:section}, Subsection~\ref{sec:subsection} or Subsubsection~\ref{sec:subsubsection}.

\section{A section}\label{sec:section}
\subsection{A subsection}\label{sec:subsection}
\subsubsection{A subsubsection}\label{sec:subsubsection}

\end{document}

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