设置为“\textwidth”的列比页面上的一般文本更宽

设置为“\textwidth”的列比页面上的一般文本更宽

在以下示例中,我将一些 lorem ipsum 文本转储到输出中,以便了解\textwidth。然后我创建一个简单的表格,并将其第一列设置为\textwidth

\documentclass{article}
%\usepackage{showframe}
\usepackage{lipsum}

\begin{document}
    \lipsum[2-4]
    \begin{table}[h]
        \caption{Vacancy details}
        \label{table:scientific-software-engineer}
        \centering
        \begin{tabular}{|p{\textwidth}|c|}
            \hline
            Item & Information \\
            \hline
            \hline
            Location & Eindhoven \\
            \hline
            Experience & 3-5 years \\
            \hline
            Recruiter name & Bob \\
            \hline
        \end{tabular}
    \end{table}
    \lipsum[2-4]
\end{document}

使用渲染 pdf 输出latexmk -pdflatex table.tex显示,我明确设置宽度的列比 更宽\textwidth

为什么会发生这种情况?我做错了什么?

答案1

我想你没有做错什么,但\tabcolsep如果我记得/理解正确的话,列的总宽度还将包括两端的填充。你可以使用 减去它p{\dimexpr\textwidth-2\tabcolsep\relax}。(注意:如果你的文档加载了array包,那么你可能还需要减去垂直规则的宽度p{\dimexpr\textwidth-2\tabcolsep-2\arrayrulewidth\relax}:)

\tabcolsep或者,您可以通过设置为 0pt 来删除该填充,或者对于该特定列使用@{}p{\textwidth}@{}(但这看起来不太好)。将@{}用您在括号中添加的任何内容替换列开头/结尾处的空间。

在此处输入图片描述

\documentclass{article}
%\usepackage{showframe}
\usepackage{lipsum}

\begin{document}
    \lipsum[2-4]
    \begin{table}[h]
        \caption{Vacancy details}
        \label{table:scientific-software-engineer}
        \centering
        \begin{tabular}{|p{\dimexpr\textwidth-2\tabcolsep\relax}|c|}
            \hline
            Item & Information \\
            \hline
            \hline
            Location & Eindhoven \\
            \hline
            Experience & 3-5 years \\
            \hline
            Recruiter name & Bob \\
            \hline
        \end{tabular}
        
        \begin{tabular}{|@{}p{\textwidth}@{}|c|}
            \hline
            Item & Information \\
            \hline
            \hline
            Location & Eindhoven \\
            \hline
            Experience & 3-5 years \\
            \hline
            Recruiter name & Bob \\
            \hline
        \end{tabular}
    \end{table}
    \lipsum[2-4]
\end{document}

相关内容