我在 tabu 环境中遇到了列宽问题。我设置了表格和列的尺寸。第一列应具有相同的宽度 = 5cm,第一和第二个表格应具有相同的宽度 = 19cm。但图像上有一个明显的偏移 = 紫色矩形。我该如何修复它?我需要定义表格的总宽度和列的宽度。但我不知道该怎么做:) 所以请帮帮我
\documentclass[article, 12pt, oneside]{memoir}
\setstocksize{297mm}{210mm}
\settrimmedsize{297mm}{210mm}{*}
\settrims{0mm}{0mm}
\setlrmarginsandblock{10mm}{*}{1}
\setulmarginsandblock{20mm}{*}{1}
\checkandfixthelayout
\usepackage{polyglossia}
\usepackage{microtype}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{TeX Gyre Schola}
\usepackage{tabu}
\begin{document}
\begin{center}
\begin{tabu} to 19cm {|X[5cm,p,l]|X[11cm,p,l]X[3cm,p,r]|}
\multicolumn{3}{l}{ \textit{ \textls[100]{bla bla} } } \\
\toprule
bla bla & bla bla & bla \\
bla bla & bla bla & bla \\
bla bla & bla bla & bla \\
bla bla & bla bla & bla \\
bla bla & bla bla & bla \\
\end{tabu}
\begin{tabu} to 19cm {|X[5cm,p,l]|X[14cm,p,l]|}
\addlinespace[1cm]
\multicolumn{2}{l}{ \textit{ \textls[100]{bla bla} } } \\
\toprule
bla bla & bla bla bla bla bla bla bla bla \\
bla bla & bla bla bla bla bla bla bla bla \\
bla bla & bla bla bla bla bla bla bla bla \\
\end{tabu}
\end{center}
\end{document}
答案1
首先,我已调整您的代码,以避免出现坏框。如果您省略长度,tabu
则它会使用\linewidth
。
如果您使用类型的所有列X
,那么空间将根据您提供给列的第一个参数划分为列。
因此,指定X[5]
与指定不同p{5cm}
。
此外,指定列的正确方法X
是(可以省略逗号):
X[<coef>,<align>,<type>]
其中,如果有多列并考虑长度,则缩放列<coef>
的宽度,是水平对齐(、或(默认)),是垂直对齐((默认)或)。X
X
\tabcolsep
<align>
r
c
l
j
<type>
p
m
b
指定
X[5cm,p,l]
是错误的,原因如下:您指定了宽度系数 5 ( 5
)、居中列 ( c
) 和列类型m
。然后,您重新定义了添加p
哪些覆盖m
和r
哪些覆盖 的内容c
。在这种情况下,正确的定义应该是:
X[5,l,p]
p
由于这是默认设置,因此可以省略。
如果你想要得到期望的结果,最好使用固定宽度的列和仅有的最后一个计算的是(X
)。
这意味着这是正确的代码:
\documentclass[article, 12pt, oneside]{memoir}
\setstocksize{297mm}{210mm}
\settrimmedsize{297mm}{210mm}{*}
\settrims{0mm}{0mm}
\setlrmarginsandblock{10mm}{*}{1}
\setulmarginsandblock{20mm}{*}{1}
\checkandfixthelayout
\usepackage{polyglossia}
\usepackage{microtype}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{TeX Gyre Schola}
\usepackage{tabu}
\begin{document}
\begin{center}
\begin{tabu} {|p{5cm}|p{11cm}X[r]|}
\multicolumn{3}{l}{ \textit{ \textls[100]{bla bla} } } \\
\toprule
bla bla & bla bla & bla \\
bla bla & bla bla & bla \\
bla bla & bla bla & bla \\
bla bla & bla bla & bla \\
bla bla & bla bla & bla \\
\end{tabu}
\begin{tabu} {|p{5cm}|X[l]|}
\addlinespace[1cm]
\multicolumn{2}{l}{ \textit{ \textls[100]{bla bla} } } \\
\toprule
bla bla & bla bla bla bla bla bla bla bla \\
bla bla & bla bla bla bla bla bla bla bla \\
bla bla & bla bla bla bla bla bla bla bla \\
\end{tabu}
\end{center}
\end{document}