缩进表格标题中的更多段落

缩进表格标题中的更多段落

我在如何为我的表格创建标题方面遇到了一点问题。目前看起来还不错,但我想缩进新段落的标题。另外,现在我甚至无法创建新段落,因为会弹出错误。我读到我必须为标题提供一个可选参数来防止出现错误(还有其他方法吗?我不想在我的 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 更好?

相关内容