如何根据几何定义调整表格宽度以适应数学主体?

如何根据几何定义调整表格宽度以适应数学主体?

如何调整tabular宽度以适应由 定义的数学主体geometry?在下面的例子中,表格比由包定义的主体边框更靠右geometry

\documentclass{article}


\usepackage[showframe]{geometry}

\usepackage{lipsum}

\begin{document}
\begin{center}
  \begin{tabular}{|p{0.3\linewidth}|p{0.7\linewidth}|}
    \hline
    \lipsum[2] & \lipsum[2]\\\hline
  \end{tabular}
\end{center}

\end{document}

在此处输入图片描述

答案1

从图片中可以看出:列之间有空格,每列两侧都有 \tabcolsep,因此表格

\textwidth+4\tabcolsep 

如果你加载了数组包,那么规则将占用宽度,并且它将

\textwidth+4\tabcolsep+3\arrayrulewidth

所以使用

\dimen0=\textwidth-4\tabcolsep

\begin{tabular}{|p{.3\dimen0}|p{.7\dimen0}|}

答案2

您需要考虑这样一个事实:表格具有三个垂直条(每个宽度为\arrayrulewidth),并且每列的左侧和右侧都有空白填充(数量为\tabcolsep)。

您可以手动调整列宽,如下面的第一个示例所示,或者使用该tabularx包并设置tabularx环境以使列的相对宽度为 0.3 和 0.7。(由于有两列,因此\hsize宏的总和必须为 2。)

在此处输入图片描述

\documentclass{article}
\usepackage[showframe,vmargin=1cm]{geometry} % make both tables fit on one page
\usepackage{lipsum,tabularx}

\begin{document}
\noindent
\begin{tabular}{|
  p{\dimexpr0.3\linewidth-2\tabcolsep-1.5\arrayrulewidth\relax}|
  p{\dimexpr0.7\linewidth-2\tabcolsep-1.5\arrayrulewidth\relax}|}
  \hline
  \lipsum[2] & \lipsum[2]\\
  \hline
\end{tabular}

\bigskip
\noindent
\begin{tabularx}{\textwidth}{|
  >{\hsize=0.6\hsize}X|
  >{\hsize=1.4\hsize}X|}
  \hline
  \lipsum[2] & \lipsum[2]\\
  \hline
\end{tabularx}

\end{document}

相关内容