我一直使用 tabularx 都没有问题,但现在它突然不再生成 \textwidth,我不明白为什么(上次我打开文档时,一切都很好)。你能告诉我问题出在哪里吗?
\documentclass[a4paper, 11pt, pointlessnumbers, xcolor=dvipsnames]{scrreprt}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{latexsym}
\usepackage{tabularx}
\usepackage{ltablex}
\usepackage{amssymb}
\usepackage{booktabs}
\babeltags{ger=ngerman}
\usepackage{array, booktabs, boldline}
\begin{document}
\noindent
\def\arraystretch{1.5}
\begin{tabularx}{\textwidth}{>{\raggedright\arraybackslash}p{2.5cm}>{\raggedright\arraybackslash}X>{\raggedright\arraybackslash}X>{\raggedright\arraybackslash}X}
\hlineB{2}
\textsf{\textbf{Addition}} & Avant tout & Ensuite & Pour conclure \\
\hlineB{2}
\end{tabularx}
\end{document}
答案1
您的文档示例可以编译而不会出现任何错误或警告,即它可以按预期工作
您应该知道,它
ltablex
具有以下特点:在某些情况下,当列中的内容较短时,就像X
仅在加载时在列中一样tabularx
,将其宽度减小到列内容的自然宽度(在您的情况下会发生这种情况)。您的问题可以通过两种方式解决:
- 从序言中删除
ltablex
包并使用一些其他结合的包longtable
,tabularx
例如xltabular
- 如果由于某种原因您需要使用
ltablex
,则添加\keepXColumns
到文档序言中:
- 从序言中删除
\documentclass[a4paper, 11pt, pointlessnumbers, xcolor=dvipsnames]{scrreprt}
%---------------- Show page layout. Don't use in a real document!
\usepackage{showframe}
\renewcommand\ShowFrameLinethickness{0.15pt}
\renewcommand*\ShowFrameColor{\color{red}}
%---------------------------------------------------------------%
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{amssymb, latexsym}
\usepackage{boldline, ltablex}
\newcolumntype{L}{ >{\raggedright\arraybackslash}X}
\keepXColumns
\babeltags{ger=ngerman}
\begin{document}
\noindent
\def\arraystretch{1.5}
\begin{tabularx}{\textwidth}{>{\raggedright\arraybackslash}p{2.5cm}
LLL}
\hlineB{2}
\textsf{\textbf{Addition}} & Avant tout & Ensuite & Pour conclure \\
\hlineB{2}
\end{tabularx}
\end{document}
(红线表示文本边框)