各章节标题和参考资料的编号样式不同

各章节标题和参考资料的编号样式不同

我想将我的部分编号放在标题中的彩色框中,但是当我使用参考时,我只想打印部分编号而不是彩色框...

我用了

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

相关内容