Ich möchte die Nummer meines Abschnitts in ein farbiges Kästchen im Titel setzen, aber wenn ich eine Referenz verwende, möchte ich, dass nur die Nummer des Abschnitts gedruckt wird und nicht das farbige Kästchen...
ich benutzte
\renewcommand{\thesection}{\colorbox{blue}{\arabic{section}.}}
und es funktioniert für den Titel, aber es fügt auch das farbige Kästchen in den Haupttext ein, wenn ich den Abschnitt mit zitiere \ref{sec}
. Gibt es eine Lösung, um die Nummerierung des Abschnitts unabhängig im Titel und in der Referenz zu ändern?
Antwort1
Diese Art der Formatierung kann mit dem titlesec
Paket durchgeführt werden. Es bietet einen \titleformat
Befehl, mit dem sich die Überschrift von Abschnitten oder anderen Teilen eines Dokuments formatieren lässt, ohne die Zählerreferenzbefehle (wie \thesection
) zu beeinflussen. Siehe diePaketdokumentationfür mehr Details.
Für die farbigen Kästchen um die Abschnittsnummern sollte das folgende Beispiel funktionieren.
\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}
Antwort2
Das folgende Minimalbeispiel aktualisiert die Art und Weise, wie die Abschnittseinheitsnummer als Teil des Titels gedruckt wird, und führt einen speziellen Formatierungsmechanismus ein. Wenn kein (neues) spezielles Format angegeben ist (auf Abschnittseinheitsbasis), wird standardmäßig verwendet \csname the#1\endcsname\quad
, was ohnehin der Standard unter den regulären Dokumentklassen ist.
\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}