文本宽度表格可以吗?

文本宽度表格可以吗?
\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} 

在此处输入图片描述

相关内容