我正在用 XeLaTex 中的 scrbook-class 写论文。我的图表和表格必须在整个文档中编号(而不是在章节内),并且我希望它们拼写出来(“Abbildung”和“Tabelle”由 ngerman 自动完成)。我还必须在图表和表格列表中添加缩写的图表和表格名称(“Abb.”和“Tab.”),我使用listof=entryprefix
并更改了条目名称,例如\renewcommand*\listoflofentryname{Abb.}
。
由于我有很多图表和表格,我希望章节显示在浮点列表中,以使其更具结构性并简化搜索,这可以通过 来实现chapteratlists=entry
。所以,我希望图表/表格列表如下所示:
图片列表
1 简介
Abb. 1 第一个图的标题...........7
Abb. 2 第二幅图的标题.......9
2 第二章
附录 3 第三幅图的标题......15
然而,问题是我得到了这个:
图片列表
附录 1 简介
附录 1 第一个图的标题.......7
不知何故,entryprefix
(“Abb。”/“Tab”) 和chapterprefix
(“Kapitel”/“chapter”我不想显示) 混淆了,并且 entryprefix 被转移到 chapterprefix 上,无论我是否更改图形/表格的条目名称,也无论我是否使用chapterprefix=false/true
。这是我的 MWE:
\documentclass[ngerman,
listof=totoc,
chapteratlists=entry,
chapterprefix=false,% problem remains even if I choose "true"
listof=entryprefix]{scrbook}
\usepackage[ngerman]{babel}
\usepackage{fontspec}
\usepackage{chngcntr}
\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}
\usepackage{mwe}
\usepackage[hidelinks]{hyperref}%
% caption names
\addtokomafont{captionlabel}{\bfseries}
\renewcommand*\listoflofentryname{\bfseries Abb.}% problem remains even if I remove this line
\renewcommand*\listoflotentryname{\bfseries Tab.}% problem remains even if I remove this line
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\blinddocument
\begin{figure}[!h]
\centering
\rule{5cm}{2cm}
\caption{First figure.}
\end{figure}
\begin{table}[h]
\caption{First table.}
\noindent
\centering
\begin{tabular}{|c|c|}
\hline
a & b\tabularnewline
\hline\hline
1 & 2\tabularnewline
\hline
\end{tabular}
\end{table}
\begin{figure}[!h]
\centering
\rule{5cm}{2cm}
\caption{Second figure.}
\end{figure}
\begin{table}[h]
\caption{Second table.}
\noindent
\centering
\begin{tabular}{|c|c|}
\hline
a & b\tabularnewline
\hline\hline
1 & 2\tabularnewline
\hline
\end{tabular}
\end{table}
\end{document}
我当然读过 KOMA 文档。尽管文档非常详细,或者可能是因为我不是专家,但我找不到针对我的问题的建议,如果能得到任何帮助,我将非常高兴。谢谢!
答案1
作为一种解决方法,您可以删除选项并更改和listof=entryprefix
的条目样式的声明:figure
table
\documentclass[ngerman,
listof=totoc,
chapteratlists=entry,
chapterprefix=false,
%listof=entryprefix
]{scrbook}
\usepackage[ngerman]{babel}
\usepackage{fontspec}
\usepackage{chngcntr}
\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}
\usepackage{mwe}
\usepackage[hidelinks]{hyperref}%
% caption names
\addtokomafont{captionlabel}{\bfseries}
\renewcommand*\listoflofentryname{Abb.}
\renewcommand*\listoflotentryname{Tab.}
\newcommand\entrynumberwithprefix[2]{%
\bfseries\csname listof#1entryname\endcsname\ #2
}
\DeclareTOCStyleEntry[
indent=0pt,
dynnumwidth,
entrynumberformat=\entrynumberwithprefix{lof}
]{default}{figure}
\DeclareTOCStyleEntry[
indent=0pt,
dynnumwidth,
entrynumberformat=\entrynumberwithprefix{lot}
]{default}{table}
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\blinddocument
\begin{figure}[!h]
\centering
\rule{5cm}{2cm}
\caption{First figure.}
\end{figure}
\begin{table}[h]
\caption{First table.}
\noindent
\centering
\begin{tabular}{|c|c|}
\hline
a & b\tabularnewline
\hline\hline
1 & 2\tabularnewline
\hline
\end{tabular}
\end{table}
\begin{figure}[!h]
\centering
\rule{5cm}{2cm}
\caption{Second figure.}
\end{figure}
\begin{table}[h]
\caption{Second table.}
\noindent
\centering
\begin{tabular}{|c|c|}
\hline
a & b\tabularnewline
\hline\hline
1 & 2\tabularnewline
\hline
\end{tabular}
\end{table}
\end{document}
运行三次即可获得
您还可以修补\addchaptertocentry
:
\documentclass[ngerman,
listof=totoc,
chapteratlists=entry,
chapterprefix=false,
listof=entryprefix
]{scrbook}
\usepackage[ngerman]{babel}
\usepackage{fontspec}
\usepackage{chngcntr}
\counterwithout{figure}{chapter}
\counterwithout{table}{chapter}
\usepackage{mwe}
\usepackage[hidelinks]{hyperref}%
% caption names
\addtokomafont{captionlabel}{\bfseries}
\renewcommand*\listoflofentryname{Abb.}
\renewcommand*\listoflotentryname{Tab.}
\DeclareTOCStyleEntry[entrynumberformat=\textbf]{default}{figure}
\DeclareTOCStyleEntry[entrynumberformat=\textbf]{default}{table}
\usepackage{xpatch}
\makeatletter
\xpatchcmd\addchaptertocentry
{\addxcontentsline{\@currext}{chapteratlist}[{#1}]{#2}}
{\addxcontentsline{\@currext}{chapteratlist}{\makebox[1.5em][l]{#1}#2}}
{}{\PatchFailed}
\makeatother
\begin{document}
\tableofcontents
\listoffigures
\listoftables
\blinddocument
\begin{figure}[!h]
\centering
\rule{5cm}{2cm}
\caption{First figure.}
\end{figure}
\begin{table}[h]
\caption{First table.}
\noindent
\centering
\begin{tabular}{|c|c|}
\hline
a & b\tabularnewline
\hline\hline
1 & 2\tabularnewline
\hline
\end{tabular}
\end{table}
\begin{figure}[!h]
\centering
\rule{5cm}{2cm}
\caption{Second figure.}
\end{figure}
\begin{table}[h]
\caption{Second table.}
\noindent
\centering
\begin{tabular}{|c|c|}
\hline
a & b\tabularnewline
\hline\hline
1 & 2\tabularnewline
\hline
\end{tabular}
\end{table}
\end{document}
运行三次即可获得