最小工作示例

最小工作示例

如果我使用 XeLaTeX 编译我的文档(有关 MWE,请参阅下文),我将获得 595.28 x 841.89 pts 的页面大小。如果我使用 LuaLaTeX 或 pdfLaTex 编译同一文档,我将获得 595.276 x 841.89 pts 的页面大小。

a4paper无论我选择\documentclass[a4paper]{article}还是都没有什么区别\usepackage[a4paper]{geometry}

这实际上导致测试用例失败,但老实说,它可能没有实际意义(或?)。

是否可以使所有编译器的页面大小相同,或者是否可以更改测试用例以便通过这两种情况?

最小工作示例

\documentclass{article}
\usepackage[a4paper]{geometry}

\begin{document}

Lorem ipsum.

\end{document}

日志

lualatex mwe.tex > /dev/null && pdfinfo -box -f 1 -l 1 mwe.pdf | grep Page
Pages:          1
Page    1 size: 595.276 x 841.89 pts (A4)
Page    1 rot:  0
Page    1 MediaBox:     0.00     0.00   595.28   841.89
Page    1 CropBox:      0.00     0.00   595.28   841.89
Page    1 BleedBox:     0.00     0.00   595.28   841.89
Page    1 TrimBox:      0.00     0.00   595.28   841.89
Page    1 ArtBox:       0.00     0.00   595.28   841.89

xelatex mwe.tex > /dev/null && pdfinfo -box -f 1 -l 1 mwe.pdf | grep Page
Pages:          1
Page    1 size: 595.28 x 841.89 pts (A4)
Page    1 rot:  0
Page    1 MediaBox:     0.00     0.00   595.28   841.89
Page    1 CropBox:      0.00     0.00   595.28   841.89
Page    1 BleedBox:     0.00     0.00   595.28   841.89
Page    1 TrimBox:      0.00     0.00   595.28   841.89
Page    1 ArtBox:       0.00     0.00   595.28   841.89

pdflatex mwe.tex > /dev/null && pdfinfo -box -f 1 -l 1 mwe.pdf | grep Page
Pages:          1
Page    1 size: 595.276 x 841.89 pts (A4)
Page    1 rot:  0
Page    1 MediaBox:     0.00     0.00   595.28   841.89
Page    1 CropBox:      0.00     0.00   595.28   841.89
Page    1 BleedBox:     0.00     0.00   595.28   841.89
Page    1 TrimBox:      0.00     0.00   595.28   841.89
Page    1 ArtBox:       0.00     0.00   595.28   841.89

测试用例

require 'pdf/reader'

describe 'xelatex-lualatex' do
  reader = PDF::Reader.new('mwe.pdf')

  it 'Should be A4 sized' do
    expect(reader.pages[0].attributes[:MediaBox]).to eq([0, 0, 595.28, 841.89])
  end

end

使用 运行rspec mwe.rb

相关内容