\paperwidth 太大

\paperwidth 太大

最近,一位同学问我如何制作一个覆盖整个页面宽度的表格。我不知道他为什么要这么做,但我认为这应该很容易,并写了以下示例:

\documentclass{article}
\usepackage{booktabs}
\usepackage{tabularx}

\newcolumntype{R}{>{\raggedleft\arraybackslash}X}
\newcolumntype{C}{>{\centering\arraybackslash}X}

\begin{document}

\noindent
\makebox[\linewidth][c]{%
\begin{tabularx}{\paperwidth}{XCR}
    \toprule
    x   & x   & x   \\
    xx  & xx  & xx  \\
    xxx & xxx & xxx \\
    \bottomrule
\end{tabularx}%
}

\end{document}

但是,表格太宽了(灰色部分是我的 pdf 查看器的背景): 在此处输入图片描述


\paperwidth我已经打印了使用\convertto从中获取的宏的值另一个答案

\makeatletter
\def\convertto#1#2{\strip@pt\dimexpr #2*65536/\number\dimexpr 1#1}
\makeatother
\convertto{mm}{\paperwidth}mm

它显示的值\paperwidth是 215.90114mm。但是根据我的查看器,生成的 PDF 的大小是 A4,纵向(210 × 297 毫米)——应该是这样的。

我正在使用 pdfTeX,版本 3.14159265-2.6-1.40.15(TeX Live 2015/dev/Debian)(预加载格式=pdflatex 2017.4.22)和 Evince Document Viewer 3.14.1。

怎么会\paperwidth和生成的文档的宽度不匹配呢?

答案1

您会看到默认的 latex 布局(适用于美国信纸)显示在默认的 pdf 媒体页面(在您的情况下为 A4)上。

您应该使用[a4paper]来告诉 LaTex 您正在使用 A4 和/或您应该添加

\usepackage{graphicx}

(或 hyperref 或 geometry)因为这些包将检测正在使用的 tex 引擎或驱动程序选项,并添加系统特定代码以强制生成的 PDF 的媒体框与 latex 中声明的页面大小匹配。

相关内容