我有以下问题:我想根据子节为文档的某些部分添加不同的表格标签。我正在使用代码\renewcommand{\thetable}{\arabic{section}.\arabic{subsection}.\arabic{table}}
。效果很好。但是当我创建 LOT 时,间距似乎不对 - 标题与表格左侧的表格编号相交,表格编号为 10。有什么可以做的吗?除了使用 之外,我还可以灵活使用其他解决方案\renewcommand{\thetable}{\arabic{section}.\arabic{subsection}.\arabic{table}}
,但它效果很好。如果我没记错的话,这不是问题。解决方案必须与 一起使用scrreprt
。
\documentclass[11pt]{scrreprt}
\usepackage{caption}
\usepackage[USenglish]{babel}
\usepackage{setspace}
\usepackage[a4paper,showframe=true]{geometry}
\begin{document}
\listoftables
\chapter{Introduction}
\renewcommand{\thetable}{\arabic{section}.\arabic{subsection}.\arabic{table}}
\section{Section}
\subsection{Subsection}
\makeatletter
\@whilenum\value{table}<10\do{%
\captionof{table}{This is test table \thetable}
}
\makeatother
\end{document}
谢谢任何提示。编辑:我试过了listof=flat
。效果很好,但在某些情况下,表格标题较长时,它似乎向右延伸得有点太远了。编辑:使用这种方法缩进是错误的(当标题超过两行时,缩进就不正确了)。因此不推荐使用这种解决方案。还有其他选择吗?
答案1
您可以使用
\DeclareTOCStyleEntry[dynnumwidth]{tocline}{table}
例子:
\documentclass{scrreprt}
\usepackage[USenglish]{babel}
\usepackage{showframe}% to show the page layout
\usepackage{blindtext}% only for dummy text
\DeclareTOCStyleEntry[dynnumwidth]{tocline}{table}
\begin{document}
\listoftables
\chapter{Introduction}
\renewcommand{\thetable}{\Alph{section}.\arabic{subsection}.\arabic{table}}
\section{Section}
\subsection{Subsection}
\captionof{table}{This is test table \thetable}
\setcounter{table}{9}
\captionof{table}{This is test table \thetable}
\captionof{table}{\blindtext}
\end{document}
运行三次即可获得
您还可以更改indent
:
\DeclareTOCStyleEntry[dynnumwidth,indent=0pt]{tocline}{table}
但如果您需要dynnumwidth,indent=0pt
图形和表格
\DeclareTOCStyleEntries[dynnumwidth,indent=0pt]{tocline}{figure,table}
您还可以使用类选项listof=flat
:
\documentclass[listof=flat]{scrreprt}
\usepackage[USenglish]{babel}
\usepackage{showframe}% to show the page layout
\usepackage{blindtext}% only for dummy text
\begin{document}
\listoftables
\chapter{Introduction}
\renewcommand{\thetable}{\Alph{section}.\arabic{subsection}.\arabic{table}}
\section{Section}
\subsection{Subsection}
\captionof{table}{This is test table \thetable}
\setcounter{table}{9}
\captionof{table}{This is test table \thetable}
\captionof{table}{\blindtext}
\end{document}
运行三次即可获得