セクションのタイトルと参照の番号付けスタイルが異なる

セクションのタイトルと参照の番号付けスタイルが異なる

タイトルの色付きのボックスにセクション番号を入れたいのですが、参照を使用する場合、色付きのボックスではなくセクション番号のみを印刷したいのですが...

私は

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

関連情報