重新定义 longtable 环境(如 pandoc 所用)

重新定义 longtable 环境(如 pandoc 所用)

XY 问题——正如 SE 论坛上经常问到的那样——是如何自动设置 longtable 环境的以下参数(因为我使用 Pandoc 来生成 latex):

  • 页面宽度比
  • 定心
  • 字体大小

我之前在桌面环境中实现了这一点(renewenvironment 在前面有左括号,在后面有右括号(使宽浮动居中)),还可以借助 Pandoc 默认模板中的现有宏:

% Original macro to customize table
\makeatletter
\renewenvironment{table}[1][\fps@table]{
  \edef\@tempa{\noexpand\@float{table}[#1]}
  \@tempa\centerfloat\footnotesize%
}{
  \end@float
}
\makeatother

复制粘贴上述内容并将“table”替换为“longtable”不起作用:

\makeatletter
\renewenvironment{longtable}[1][\fps@longtable]{
  \edef\@tempa{\noexpand\@float{longtable}[#1]}
  \@tempa\centerfloat\footnotesize%
}{
  \end@float
}
\makeatother

我认为 longtable 源中没有这样的宏\fps@longtable,并且一个 longtable 确实可能由多个浮点数组成......那么我应该重新定义的宏是什么?

答案1

据我了解,你可以这样做

\let\oldlongtable\longtable
\longtable{%
\LTleft-.1\textwidth plus 1fill
\LTright\LTleft
\footnotesize
\oldlongtable}

获取可能溢出到边距的脚注大小表格,其宽度为文本宽度的 10%。

相关内容