最近,一位同学问我如何制作一个覆盖整个页面宽度的表格。我不知道他为什么要这么做,但我认为这应该很容易,并写了以下示例:
\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}
\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 中声明的页面大小匹配。