我正在使用 classicthesis,并且有一个相当复杂的整体文档,所以我不能真正发布 MWE(抱歉,我对 LaTeX 还不熟悉)。不过,我发布了一些我认为可能与表格相关的包。我的问题:我正在使用一个自动分布在多个页面上的 longtable。除了它超出文本的宽度(尽管使用 \linewidth 定义列),一切都运行良好。
您能帮助我找出我做错的地方或如何使表格宽度与线宽相匹配吗?
万分感谢!
\usepackage{calc, longtable, ltablex, booktabs,array, caption, enumitem}
\keepXColumns
\newcolumntype{x}[1]{>{\raggedright}p{#1}}
\begin{spacing}{.7}
\footnotesize
\begin{longtable}{x{0.35\textwidth} x{0.25\textwidth} x{0.4\textwidth}}
\caption{Example table}\label{tab:example} \\
\toprule
{\textbf{Column One}} & {\textbf{Column Two}} & {\textbf{Column Three}}
\tabularnewline
\midrule
\endfirsthead
%%%%
\caption{Example table (cont.)} \\
\toprule
{\textbf{Column One}} & {\textbf{Column Two}} & {\textbf{Column Three}}
\tabularnewline
\midrule
\endhead
%%%%
\midrule[\heavyrulewidth]
\multicolumn{3}{r}{\footnotesize\itshape Continue on the next page}
\endfoot
%%%%
\bottomrule
\endlastfoot
%%%%
Content & Content & Content \tabularnewline
Content & Content & Content \tabularnewline
\end{longtable}
\end{spacing}
答案1
你有
\begin{longtable}
{x{0.35\textwidth} x{0.25\textwidth} x{0.4\textwidth}}
但是每列\tabcolsep
两侧都有 (默认 6pt) 空间,因此宽度会太宽 36pt。
尝试
\begin{longtable}
{@{}x{0.35\textwidth} x{\dimexpr 0.25\textwidth - 24pt\relax} x{0.4\textwidth}@{}}
因此,您可以删除两侧的填充,@{}
并在中间列中节省 24pt(或者当然,您可以以不同的方式分配它,并从每列中删除一些)
答案2
我将使用xltabular
环境(包加载ltablex
,但省去了添加的麻烦keepXColumns
),并指定>{\hsize)xx\hsize
具有不同宽度的列):
\documentclass{report}
\usepackage{classicthesis}
\usepackage{array, setspace}
\usepackage{calc, longtable,xltabular, booktabs, array, caption, enumitem}
\usepackage{showframe}
\renewcommand{\ShowFrameLinethickness}{0.3pt}
\begin{document}
\mbox{}
\begin{spacing}{.7}
\footnotesize
\begin{xltabular}{\linewidth}{>{\hsize=1.05\hsize}X >{\hsize=0.75\hsize}X >{\hsize=1.20\hsize\arraybackslash}X}
\caption{Example table}\label{tab:example} \\
\toprule
{\textbf{Column One}} & {\textbf{Column Two}} & {\textbf{Column Three}} \\
\midrule
\endfirsthead
%%%%
\caption{Example table (cont.)} \\
\toprule
{\textbf{Column One}} & {\textbf{Column Two}} & {\textbf{Column Three}} \\
\midrule
\endhead
%%%%
\midrule[\heavyrulewidth]
\multicolumn{3}{r}{\footnotesize\itshape Continue on the next page}
\endfoot
%%%%
\bottomrule
\endlastfoot
%%%%
Content & Content & Content \\
Content & Content & Content
\end{xltabular}
\end{spacing}
\end{document}