将表格标题从“表格”更改为“(章节号.节号.表格号)”

将表格标题从“表格”更改为“(章节号.节号.表格号)”

我的表格不需要标题为“表格 1.1.8:我的表格”,我需要的只是标题(1.1.8),不需要标题(就像数学书中的表格编号一样)。我该如何实现?

答案1

使用chngcntr包更改编号以根据章节和节进行更改。使用caption更改标题的格式。

\documentclass{book} % we need \chapter
\usepackage{chngcntr}
\counterwithin{table}{section} % number like chapter.section.table
\usepackage{caption}
\captionsetup[table]{
  justification=raggedleft, % align to the right
  singlelinecheck=false,    % always align
  labelformat=parens,       % add parentheses around number
  labelsep=none,            % remove colon
  textformat=empty,         % suppress caption text
  name={}                   % remove ``Table''
}
\begin{document}
\begin{table}
  \centering
  \begin{tabular}{cc}
    a & 1 \\
    b & 2 \\
  \end{tabular}
  \caption{My table}
  \label{tab:mytable}
\end{table}
As seen in table~\ref{tab:mytable}
\end{document}

在此处输入图片描述

答案2

与 Henri 的解决方案类似,但使用\@addtoreset而不是\counterwithin。我展示了一种不同的方法,即不使用float而改为应用\captionof

\documentclass{book} % we need \chapter

\makeatletter
\@addtoreset{table}{section}
\makeatother

\usepackage{caption}

\captionsetup[table]{%
  textformat=empty,   % suppress caption text
  labelformat=parens, % add parentheses around number
  labelsep=none,      % remove colon
  name={}             % remove ``Table''
}

\usepackage{cleveref}

\begin{document}

\chapter{Foo}
\section{Foobar}

\setcounter{table}{17}

In \cref{nicesttable} we will see the most important table ever

\begingroup
  \centering

  \begin{tabular}{*{3}c}
    a & b & c\tabularnewline
    d & e & f\tabularnewline
  \end{tabular}
  \captionof{table}{A nice table}
  \label{nicesttable}
\endgroup

\end{document}

相关内容