\documentclass{article}
\usepackage{tabularx}
\def\dotfill#1{\cleaders\hbox to #1{.}\hfill}
\newcommand\dotline[2][.5em]{\leavevmode\hbox to #2{\dotfill{#1}\hfil}}
\begin{document}
\begin{tabularx}{\textwidth}{lcr}
\textbf{aaaaaaaaaaa:} & \parbox[t]{6 cm} {\textbf{bbbbbbbbbb}\\ cccccccccccccc} & \dotline{2.0cm}
\end{tabularx}
\vspace{0.5 cm}
\\ddd
\begin{table}[ht!]
\centering
\begin{tabular}{p{4cm} p{9cm}}
Text column 1 & long long long long long long long text that should break \\
\end{tabular}
\end{table}
\end{document}
我想让表格适合行宽。我在一个示例中集成了两个解决方案,但编译后您会发现“ddd”文本远离表格开头。这意味着表格无法容纳。为什么?
答案1
正如 David Carlisle 所提到的,tabularx
只要您指定至少一X
列,并考虑\parindent
其是否为非零,就可以正常工作。此外,最好将表格宽度设置为\linewidth
,但并不总是等于\textwidth
。
下面是一个具有与您指定的相同对齐方式的示例,3 个 X 列和垂直规则,用于可视化 X 列的整体宽度:
\documentclass{article}
\usepackage{tabularx}
\def\dotfill#1{\cleaders\hbox to #1{.}\hfill}
\newcommand\dotline[2][.5em]{\leavevmode\hbox to #2{\dotfill{#1}\hfil}}
\usepackage{lipsum}
\begin{document}
\lipsum[11]
\bigskip
\noindent\begin{tabularx}{\linewidth}{|X|>{\centering}X|>{\raggedleft\arraybackslash}X|}
\textbf{aaaaaaaaaaa:} & \parbox[t]{6 cm} {\textbf{bbbbbbbbbb}\\ cccccccccccccc} & \dotline{2.0cm}
\end{tabularx}
\vspace{0.5 cm}
\\ddd
\begin{table}[ht!]
\centering
\begin{tabular}{|p{4cm}| p{9cm}|}
Text column 1 & long long long long long long long text that should break \\
\end{tabular}
\end{table}
\end{document}