
Я работаю с 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
отступ (по умолчанию 6 пунктов) с каждой стороны, поэтому получится на 36 пунктов больше ширины.
пытаться
\begin{longtable}
{@{}x{0.35\textwidth} x{\dimexpr 0.25\textwidth - 24pt\relax} x{0.4\textwidth}@{}}
поэтому вы удаляете отступы по бокам @{}
и сохраняете 24 пт в средней колонке (или, конечно, вы можете распределить их по-другому и удалить часть из каждой колонки)
решение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}