我在如何为我的表格创建标题方面遇到了一点问题。目前看起来还不错,但我想缩进新段落的标题。另外,现在我甚至无法创建新段落,因为会弹出错误。我读到我必须为标题提供一个可选参数来防止出现错误(还有其他方法吗?我不想在我的 LOT 中出现其他名称)
但我的主要问题是,是否可以在标题内开始新的段落,但不缩进编号下方的第一个段落。包的文档中没有这样的例子caption
,\DeclareCaptionFormat
在这种情况下也不行,因为我们不想改变#3
一般情况,而是想改变以下段落。
如果你编译我的例子,你会看到一个漂亮的小表格。同样,我唯一想做的改变是缩进后面的段落,以防标题太长。
谢谢任何提示。
\documentclass[a4paper, headsepline, smallheadings]{scrreprt}
\usepackage{mathptmx}
\usepackage{booktabs}
\usepackage[labelfont=bf, labelsep=newline,singlelinecheck=false,format=plain,indention=2cm]{caption}
\usepackage{floatrow}
\KOMAoption{captions}{tableheading}
\setcapindent{0em}
\begin{document}
\begin{table}[htpb]
\begin{floatrow}
\ttabbox{%
\begin{tabular}{lcccc}
& \multicolumn{4}{c}{xax} \\
\cmidrule(rl){2-5}
& 3543 & 34535 & 1233 & 32525 \\
\midrule
AA & 543235sdgf35 & sdf35sf & sf35 & sdfsf543s \\
BB & gsfg35sf & dfgdfg &
235sf & 235f \\
CC & sdfdsf & sffsf & sdfsdf & 353w5fs \\
\bottomrule
\end{tabular}}
{\caption{Here is the table caption. It should be indented from the following paragraph: \\ 'indented new paragraph'.}}
\end{floatrow}
\end{table}
\end{document}
编辑:我正在使用 floatrow 包,因为它允许您在表格编号下方的下一行开始标题。ttabbox 有 2 个参数,第一个是表格,第二个是标题,这实际上是所有需要了解的,看起来比实际情况更复杂。
答案1
问题在于,一些控制标题排版的宏不存在\long
,也就是说,它们\par
在参数中不接受。
一个快速的解决方法是向中添加一个空的可选参数\caption
,但是如果您想排版表格列表,这将很糟糕。
另一种解决方法是
\DeclareRobustCommand{\captionpar}{\par}
在序言中,并在标题中使用\captionpar
或\par
空行。这\par
在吸收参数时会避开 TeX 的视线;它类似于使用,不同之处在于最终将使用\endgraf
“真实” (可能没有 的当前含义)。\par
\endgraf
\par
更彻底的解决方案是执行相关命令\long
:
\usepackage{etoolbox}
\makeatletter
\patchcmd[\long]{\caption@prepareanchor}{}{}{}{}
\patchcmd[\long]{\caption@@@addcontentsline}{}{}{}{}
\patchcmd[\long]{\addcontentsline}{}{}{}{}
\makeatother
使用此补丁你甚至可以输入
\caption{Here is the table caption. It should be indented from
the following paragraph:
'indented new paragraph'.}
而不是更尴尬
\caption{Here is the table caption. It should be indented from
the following paragraph:\captionpar
'indented new paragraph'.}
上述解决方案所需。
无论如何,您都需要为标题定义一个 parindent:
\usepackage[
labelfont=bf,
labelsep=newline,
singlelinecheck=false,
format=plain,
indention=2cm,
parindent=1em, % <--- adjust to suit
]{caption}
答案2
\endgraf
这是少数需要用而不是 来结束段落的情况之一\par
。您还需要将其设置\parindent
为非零长度:
\documentclass[a4paper, headsepline, smallheadings]{scrreprt}
\usepackage{mathptmx}
\usepackage{booktabs}
\usepackage[labelfont=bf, labelsep=newline,singlelinecheck=false,format=plain,indention=2cm]{caption}
\usepackage{floatrow}
\KOMAoption{captions}{tableheading}
\setcapindent{0em}
\begin{document}
\begin{table}[htpb]
\begin{floatrow}
\ttabbox{%
\begin{tabular}{lcccc}
& \multicolumn{4}{c}{xax} \\
\cmidrule(rl){2-5}
& 3543 & 34535 & 1233 & 32525 \\
\midrule
AA & 543235sdgf35 & sdf35sf & sf35 & sdfsf543s \\
BB & gsfg35sf & dfgdfg &
235sf & 235f \\
CC & sdfdsf & sffsf & sdfsdf & 353w5fs \\
\bottomrule
\end{tabular}}
{\caption{Here is the table caption. It should be indented from the
following paragraph: \endgraf\setlength{\parindent}{1em}
`indented new paragraph' with more text, a little more text and
some words. \endgraf
Another paragraph.}}
\end{floatrow}
\end{table}
\end{document}
您会发现一些\endgraf
关于何时使用 \par 比 \endgraf 更好?