假设一个系统,其中 A4 是默认纸张尺寸,输入
\documentclass{article}
\usepackage{color}% take it or leave it
\begin{document}
test
\end{document}
使用 时\usepackage{color}
,运行latex
+ dvipdf
(使用默认选项) 或lualatex
或pdflatex
都会产生一个信纸大小的 PDF 文件(如 所报告的pdfinfo
),而如果没有\usepackage{color}
,PDF 输出将保持在 A4 大小(同样,如 所报告的pdfinfo
)。
- 为什么页面尺寸会改变?直观地说,添加颜色支持不应该让页面尺寸保持不变吗?
为了确定color
在较长的非最小文档中是否确实需要(例如,15 页的 LLNCS 类,如果不花几个小时甚至几天的时间,您就无法理解),我们决定按color
需要格式化文档,并尽可能强制执行字母大小。对于我们的最小示例,我们运行mwe.tex
包含
\documentclass[letterpaper]{article}
\usepackage{color}% take it or leave it
\begin{document}
test
\end{document}
到 latex main && latex main && dvips -t letter -Ppdf -q -f main.dvi | gs -q -P- -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=%stderr -sOutputFile=main.pdf -sPAPERSIZE=letter -
。唉,结果的比较令人警醒:
diffpdf
说有区别(在更大的文档中,有区别到处),但您看不到任何差别。也许,在低分辨率下,color
ed 版本可能比非color
ed 版本稍微灰一点,但您无法真正分辨出来,而且即使存在这种微小的差异,对您来说也无关紧要。
在您询问之前:我们尝试了[a4paper]
(而不是[letterpaper]
)和latex main && latex main && dvips -t a4 -Ppdf -q -f main.dvi | gs -q -P- -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=%stderr -sOutputFile=main.pdf -sPAPERSIZE=a4 -
。结果是一样的:diffpdf
报告差异,而我们没有看到任何差异(或任何重要的差异)。
- 您如何确定使用该包是否
color
确实会产生明显的可见差异?
编辑:按照 David 的建议,我们latex
继续
\documentclass[a4paper]{article}
\usepackage[nosetpagesize]{color}% take it or leave it
\showoutput
\begin{document}
test
\end{document}
并得到
Completed box being shipped out [1]
\vbox(682.0+0.0)x398.0
.\hbox(0.0+0.0)x0.0
..\special{header=l3backend-dvips.pro}
.\glue 17.0
.\vbox(665.0+0.0)x345.0, shifted 53.0
..\vbox(12.0+0.0)x345.0, glue set 12.0fil
...\glue 0.0 plus 1.0fil
...\hbox(0.0+0.0)x345.0
....\special{color push Black}
....\hbox(0.0+0.0)x345.0
....\special{color pop}
..\glue 25.0
..\glue(\lineskip) 0.0
..\vbox(598.0+0.0)x345.0, glue set 587.9372fil
...\write-{}
...\glue(\topskip) 3.84921
...\hbox(6.15079+0.0)x345.0, glue set 313.83331fil
....\hbox(0.0+0.0)x15.0
....\OT1/cmr/m/n/10 t
....\OT1/cmr/m/n/10 e
....\OT1/cmr/m/n/10 s
....\OT1/cmr/m/n/10 t
....\penalty 10000
....\glue(\parfillskip) 0.0 plus 1.0fil
....\glue(\rightskip) 0.0
...\glue 0.0 plus 1.0fil
...\glue 0.0
...\glue 0.0 plus 0.0001fil
..\glue(\baselineskip) 23.55556
..\hbox(6.44444+0.0)x345.0
...\special{color push Black}
...\hbox(6.44444+0.0)x345.0, glue set 170.0fil
....\glue 0.0 plus 1.0fil
....\OT1/cmr/m/n/10 1
....\glue 0.0 plus 1.0fil
...\special{color pop}
.\kern 0.0
差异 (左侧有color
,右侧无) 如下:
(/usr/share/texlive/texmf-dist/tex/latex/graphics/color.sty <
(/usr/share/texlive/texmf-dist/tex/latex/graphics-cfg/color.cfg) <
(/usr/share/texlive/texmf-dist/tex/latex/graphics-def/dvips.def) <
(/usr/share/texlive/texmf-dist/tex/latex/graphics/dvipsnam.def)) <
....\special{color push Black} <
....\special{color pop} <
...\special{color push Black} <
...\special{color pop} <
Output written on main.dvi (1 page, 332 bytes). | Output written on main.dvi (1 page, 248 bytes).
这些\special
命令会以某种方式影响文本吗?我们不知道 Postscript,所以我们无法判断……