Latex 忽略表格 p{} 参数中的 \textwidth

Latex 忽略表格 p{} 参数中的 \textwidth

我想创建一个文档,允许写入加入我们俱乐部的新成员的姓名。由于这些条目是编号的,我认为我创建了一个命令来生成一个命令(在我的示例中为“条目”),该命令生成这两个页面的列。

为了匹配页面大小,我p{0.[13]5\textwidth}在表格环境中使用了它,但大小不匹配。即使宽度加起来,表格也不符合页面大小,而是更小。我知道这个问题(带有 p 型列的表格以填充页面宽度),但该解决方案对我没有帮助,因为它使表格变得更小。此外,比例根本不符合所需值。

我在下面插入了我的文件:

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{tabularx}
\usepackage{graphicx}
\usepackage{adjustbox}

\setlength{\parindent}{0cm}


\newcommand{\points}[1]{#1\dots}
\newcommand{\lmulcol}[2]{\multicolumn{#1}{|l|}{\points{#2}}}
\newcommand{\colfour}[1]{\lmulcol{4}{#1}}
\newcommand{\colthree}[1]{\lmulcol{3}{#1}}
\newcommand{\coltwo}[1]{\lmulcol{2}{#1}}
\newcommand{\colone}[1]{\points{#1}}



\newcommand{\entry}[1]{
\textbf{\Large{#1}}

\vspace{3em}
\begin{tabular}{|p{0.15\textwidth}|
                 p{0.35\textwidth}|
                 p{0.35\textwidth}|
                 p{0.15\textwidth}|}
%\begin{tabular}{|p{\dimexpr 0.15\linewidth-2\tabcolsep}|
%                 p{\dimexpr 0.35\linewidth-2\tabcolsep}|
%                 p{\dimexpr 0.35\linewidth-2\tabcolsep}|
%                 p{\dimexpr 0.15\linewidth-2\tabcolsep}|}
\colfour{Name:}\\
\colfour{Forename:}\\
\coltwo{Date of Birth:} & \coltwo{Place of Birth:}\\
\colone{Adress:} & \colthree{} \\
& \colthree{}\\

\hline

\colone{Reference1:} & \coltwo{} & \colone{Page}\\
\colone{References:} & \coltwo{1} & \colone{Page}\\
                     & \coltwo{2} & \colone{Page}\\
                     & \coltwo{3} & \colone{Page}\\
                     & \coltwo{4} & \colone{Page}\\

\end{tabular}
}


\begin{document}


\entry{601}

TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT
\end{document}

TEXT 块是为了显示 textwidth 实际上更大。
我还添加了我得到的表格: 我还添加了表格

答案1

主要问题是几乎所有的p列宽规范都被设置覆盖,multicolumn{..}{l}因此表格被设置为自然内容宽度。

在这里我添加了一行来显示差异,如果你的真实示例可以包含更多文本,那么就可以解决问题,否则你需要再多摆弄一下以隐藏额外的|

在此处输入图片描述

\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}

\usepackage{tabularx}
\usepackage{graphicx}
\usepackage{adjustbox}

\setlength{\parindent}{0cm}

\newlength\mylen

\newcommand{\points}[1]{#1\dots}
\newcommand{\lmulcol}[2]{\multicolumn{#1}{|l|}{\points{#2}}}
\newcommand{\colfour}[1]{\lmulcol{4}{#1}}
\newcommand{\colthree}[1]{\lmulcol{3}{#1}}
\newcommand{\coltwo}[1]{\lmulcol{2}{#1}}
\newcommand{\colone}[1]{\points{#1}}



\newcommand{\entry}[1]{%
{\Large\textbf{\Large #1}\par}%\textbf{\Large{#1}}

\vspace{3em}

\setlength\mylen{\dimexpr\linewidth-8\tabcolsep-5\arrayrulewidth}
\begin{tabular}{|p{\dimexpr 0.15\mylen}|
                 p{\dimexpr 0.35\mylen}|
                 p{\dimexpr 0.35\mylen}|
                 p{\dimexpr 0.15\mylen}|}
\colfour{Name:}\\
\colfour{Forename:}\\
\coltwo{Date of Birth:} & \coltwo{Place of Birth:}\\
\colone{Adress:} & \colthree{} \\
& \colthree{}\\

\hline

\colone{Reference1:} & \coltwo{} & \colone{Page}\\
\colone{References:} & \coltwo{1} & \colone{Page}\\
                     & \coltwo{2} & \colone{Page}\\
                     & \coltwo{3} & \colone{Page}\\
                     & \coltwo{4} & \colone{Page}\\
\ &\ &\ &\ 
\end{tabular}
}


\begin{document}


\entry{601}

TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT 
TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT TEXT
\end{document}

相关内容