即使使用 X 列,Longtabu 仍然无法将文本缩小到文本宽度

即使使用 X 列,Longtabu 仍然无法将文本缩小到文本宽度

我的问题与这个非常相似:

Longtabu 无法将文本缩小到文本宽度

即使我明确将宽度设置为,表格仍然超出了页面范围\textwidth。我还遵循了以下解决方案:大卫·卡莱尔并使用X列来允许单元格内换行,但问题仍然存在。

我怀疑问题出在使用该\multicolumn命令时,因为我的文档上的其他\longtabu表格工作正常。

以下是 MWE:

\documentclass[a4paper,10pt,oneside,openany]{book} 

\usepackage[utf8]{inputenc} % allow specify input encoding
\usepackage[margin=1in]{geometry} % page dimensions
\usepackage{tabu} % tables that take more than 1 page 
\usepackage{longtable} % tabu needs this to be loaded 

\begin{document} 

\begin{longtabu} to \textwidth {| X[1,c,m]| X[1,c,m]| X[1,c,m]| X[1,c,m]| X[1,c,m]| X[1,c,m]| X[1,c,m]| X[1,c,m]| X[1,c,m]| X[1,c,m]| X[1,c,m]| X[1,c,m]| X[1,c,m]| X[1,c,m]| X[1,c,m]| X[1,c,m]|} 
\hline 
\multicolumn{16}{|c|}{ \bf Title of table goes here  } \endhead 
\hline 
\multicolumn{8}{| c |}{ Text  } & 
\multicolumn{2}{| c |}{ Some long text here  } & 
\multicolumn{2}{| c |}{ Some long text here  } & 
\multicolumn{2}{| c |}{ Some long text here  } & 
\multicolumn{2}{| c |}{ Some long text here  } \\
\hline 
{ 15  } & 
{ 14  } & 
{ 13  } & 
{ 12  } & 
{ 11  } & 
{ 10  } & 
{ 9  } & 
{ 8  } & 
{ 7  } & 
{ 6  } & 
{ 5  } & 
{ 4  } & 
{ 3  } & 
{ 2  } & 
{ 1  } & 
{ 0  } \\ 
\hline 
\end{longtabu} 


\end{document} 

非常感谢您的帮助!谢谢。

答案1

如果直接计算列宽,则更容易看到跨度条目所需的宽度。在这种情况下,您X根本不需要,因此可以使用longtable而不是提供的包装器tabu

另外,不要使用,\bf只能|第一的|列。如果在所有条目中使用两个,\multicolumn那么您将获得两个相邻的规则,一个位于一列的右侧,另一个位于下一列的左侧。

该算法仅考虑到p列占用的空间等于提供的宽度加上\tabcolsep列两侧的空间加上任何垂直规则的宽度。

在此处输入图片描述

\documentclass[a4paper,10pt,oneside,openany]{book} 

\usepackage[utf8]{inputenc} % allow specify input encoding
\usepackage[margin=1in]{geometry} % page dimensions

\usepackage{array,longtable} 
\newlength\mylength
\setlength\mylength{\dimexpr(\textwidth-17\arrayrulewidth-32\tabcolsep)/16\relax}
\begin{document} 

\begin{longtable}{|*{16}{>{\centering\arraybackslash}m{\mylength}|}}
\hline 
\multicolumn{16}{|c|}{\textbf{Title of table goes here}}
\endhead 
\hline 
\multicolumn{8}{| c |}{ Text  } & 
\multicolumn{2}{>{\centering\arraybackslash}m{\dimexpr2\mylength+2\tabcolsep+\arrayrulewidth}|}{ Some long text here  } & 
\multicolumn{2}{>{\centering\arraybackslash}m{\dimexpr2\mylength+2\tabcolsep+\arrayrulewidth}|}{ Some long text here  } & 
\multicolumn{2}{>{\centering\arraybackslash}m{\dimexpr2\mylength+2\tabcolsep+\arrayrulewidth}|}{ Some long text here  } & 
\multicolumn{2}{>{\centering\arraybackslash}m{\dimexpr2\mylength+2\tabcolsep+\arrayrulewidth}|}{ Some long text here  }\\
\hline 
{ 15  } & 
{ 14  } & 
{ 13  } & 
{ 12  } & 
{ 11  } & 
{ 10  } & 
{ 9  } & 
{ 8  } & 
{ 7  } & 
{ 6  } & 
{ 5  } & 
{ 4  } & 
{ 3  } & 
{ 2  } & 
{ 1  } & 
{ 0  } \\ 
\hline 
\end{longtable} 


\end{document} 

相关内容