我正在使用threeparttablex
和tabularx
包。
我有两个问题:
- 标题仅列举放在前面时的权利
\begin{tabularx}
; - 注释没有与表格居中对齐;
我的代码如下:
\documentclass{article}
\usepackage{booktabs,ltablex,threeparttablex}
\def\tabularxcolumn#1{m{#1}}
\newcolumntype{L}{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}X}
\begin{document}
\begin{table}[ht]
\begin{ThreePartTable}
\begin{tabularx}{\textwidth}{LL}
\toprule
ex1 & ex2\\
ex3 & ex4\\
\bottomrule
\end{tabularx}%
\begin{tablenotes}\footnotesize
\item[a] note1.
\item[b] note2.
\end{tablenotes}
\caption{Example.}\label{tab:dummy}%
\end{ThreePartTable}
\end{table}
\end{document}
我尝试过很多方法:改用tabularx
with threeparttable
,但captionof{table}{caption}
问题是一样的:如果我把它放在tabularx
env 之前,它就会起作用,否则标题数字会增加 2(所以我有表 2.2、2.4、2.6 等等……);如果我使用tabular
Instead,两种方法都可以正常工作。我不明白……
我做错了什么?我确实必须使用tabularx
...
答案1
一个非常规的解决方案:添加标题里面tabularx 环境(就像 所做的那样longtable
)。关于您的代码的一些注释:使用 时threeparttablex
,tablenotes
被替换为 TableNotes
为已声明在最开始处,然后使用命令插入到您想要的位置\insertTableNotes
。另外,如果您确实想要一个包含真实X
列的表格,则必须使用命令\keepXColumns
;否则计算出的 X 宽度只是列的最大宽度。
\documentclass{article}
\usepackage{array, ltablex}%
\usepackage{caption}
\usepackage{threeparttablex}
\setTableNoteFont{\footnotesize}
\usepackage{booktabs}
\keepXColumns
\begin{document}
\section{A First Section}
\begin{table}[ht]
\begin{ThreePartTable}
\begin{TableNotes}
\item[a] note1.
\item[b] note2.
\end{TableNotes}
\begin{tabularx}{\textwidth}{*{2}{X}}%
\toprule
\endhead
\bottomrule
\endfoot
ex1 & ex2\\
ex3 & ex4\\
\bottomrule
\insertTableNotes\\
\caption{Example1.}\label{tab:dummy}
\end{tabularx}%%
\end{ThreePartTable}
\end{table}
\begin{table}[ht]
\begin{ThreePartTable}
\begin{TableNotes}\footnotesize
\item[a] note1.
\item[b] note2.
\end{TableNotes}
\begin{tabularx}{\textwidth}{*{2}{X}}%
\caption{Example 2.}\label{tab:dummy}\\
\toprule
\endhead
\bottomrule
\endfoot
ex1 & ex2\\
ex3 & ex4\\
\bottomrule
\insertTableNotes\\
\end{tabularx}%%
\end{ThreePartTable}
\end{table}
\end{document}