已编辑。这篇文章底部确实是 MWE。
我无法从以下 Asymptote 源代码生成相同的 PDF 输出:
size(0, 40mm);
draw(unitsquare);
label("$1$", (0.5, 0.5), W + E);
使用引擎pdflatex
并(用/xelatex
进行编译)。-f pdf -tex pdflatex
-f pdf -tex xelatex
中间源代码变为
\documentclass[12pt]{article}
\usepackage{ifluatex}\ifluatex
\ifx\pdfpagewidth\undefined\let\pdfpagewidth\paperwidth\fi
\ifx\pdfpageheight\undefined\let\pdfpageheight\paperheight\fi\else
\let\paperwidthsave\paperwidth\let\paperwidth\undefined
\usepackage{graphicx}
\let\paperwidth\paperwidthsave\fi
\usepackage{ifluatex}\ifluatex
\ifx\pdfpagewidth\undefined\let\pdfpagewidth\paperwidth\fi
\ifx\pdfpageheight\undefined\let\pdfpageheight\paperheight\fi\else
\let\paperwidthsave\paperwidth\let\paperwidth\undefined
\usepackage{graphicx}
\let\paperwidth\paperwidthsave\fi
\newbox\ASYbox
\newdimen\ASYdimen
\def\ASYprefix{}
\long\def\ASYbase#1#2{\leavevmode\setbox\ASYbox=\hbox{#1}%\ASYdimen=\ht\ASYbox%
\setbox\ASYbox=\hbox{#2}\lower\ASYdimen\box\ASYbox}
\long\def\ASYaligned(#1,#2)(#3,#4)#5#6#7{\leavevmode%
\setbox\ASYbox=\hbox{#7}%
\setbox\ASYbox\hbox{\ASYdimen=\ht\ASYbox%
\advance\ASYdimen by\dp\ASYbox\kern#3\wd\ASYbox\raise#4\ASYdimen\box\ASYbox}%
\setbox\ASYbox=\hbox{#5\wd\ASYbox 0pt\dp\ASYbox 0pt\ht\ASYbox 0pt\box\ASYbox#6}%
\hbox to 0pt{\kern#1pt\raise#2pt\box\ASYbox\hss}}%
\long\def\ASYalignT(#1,#2)(#3,#4)#5#6{%
\ASYaligned(#1,#2)(#3,#4){%
\special{pdf:literal q #5 0 0 cm}%
}{%
\special{pdf:literal Q}%
}{#6}}
\long\def\ASYalign(#1,#2)(#3,#4)#5{\ASYaligned(#1,#2)(#3,#4){}{}{#5}}
\def\ASYraw#1{#1}
\usepackage{graphicx}
\usepackage{color}
\pdfpagewidth=113.385827bp
\ifx\pdfhorigin\undefined
\hoffset=-1in
\voffset=-1in
\pdfpageheight=113.385827bp
\else
\pdfhorigin=0bp
\pdfvorigin=0bp
\pdfpageheight=113.385827bp
\fi
\usepackage{everypage}%
\setlength{\unitlength}{1pt}%
\pagestyle{empty}
\textheight=131.385827bp
\textwidth=131.385827bp
\parindent=0pt
\oddsidemargin=0pt
\evensidemargin=\oddsidemargin
\headheight=0pt
\headsep=0pt
\topmargin=0pt
\topskip=0pt
\begin{document}
\makeatletter%
\let\ASYencoding\f@encoding%
\let\ASYfamily\f@family%
\let\ASYseries\f@series%
\let\ASYshape\f@shape%
\makeatother%
{\catcode`"=12%
\includegraphics{test_0}%
}%
\kern -113.811024pt%
\definecolor{ASYcolor}{gray}{0.000000}\color{ASYcolor}%
\fontsize{12.000000}{14.400000}\selectfont%
\usefont{\ASYencoding}{\ASYfamily}{\ASYseries}{\ASYshape}%
\ASYalign(56.905512,56.905512)(-0.500000,-0.500000){$1$}%
\end{document}
编译它pdflatex
我得到以下内容:
xelatex
但用正方形和标签进行编译会放错位置——正方形垂直放置,标签水平和垂直放置:
日志(MiKTeX):
This is XeTeX, Version 3.14159265-2.6-0.999992 (MiKTeX 20.6.29) (preloaded format=xelatex 2020.7.15) 3 AUG 2020 02:14
entering extended mode
**./xelatex_test_.tex
(xelatex_test_.tex
LaTeX2e <2020-02-02> patch level 5
L3 programming layer <2020-06-18>
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/latex/base\article.cls
"
Document Class: article 2019/12/20 v1.4l Standard LaTeX document class
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/latex/base\size12.clo"
File: size12.clo 2019/12/20 v1.4l Standard LaTeX file (size option)
)
\c@part=\count163
\c@section=\count164
\c@subsection=\count165
\c@subsubsection=\count166
\c@paragraph=\count167
\c@subparagraph=\count168
\c@figure=\count169
\c@table=\count170
\abovecaptionskip=\skip47
\belowcaptionskip=\skip48
\bibindent=\dimen134
)
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/generic/iftex\ifluatex
.sty"
Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead.
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/generic/iftex\iftex.st
y"
Package: iftex 2020/03/06 v1.0d TeX engine tests
))
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/latex/graphics\graphic
x.sty"
Package: graphicx 2019/11/30 v1.2a Enhanced LaTeX Graphics (DPC,SPQR)
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/latex/graphics\keyval.
sty"
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks15
)
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/latex/graphics\graphic
s.sty"
Package: graphics 2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR)
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/latex/graphics\trig.st
y"
Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
)
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/latex/graphics-cfg\gra
phics.cfg"
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
)
Package graphics Info: Driver file: xetex.def on input line 105.
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/latex/graphics-def\xet
ex.def"
File: xetex.def 2017/06/24 v5.0h Graphics/color driver for xetex
))
\Gin@req@height=\dimen135
\Gin@req@width=\dimen136
)
\ASYbox=\box45
\ASYdimen=\dimen137
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/latex/graphics\color.s
ty"
Package: color 2019/11/23 v1.2a Standard LaTeX Color (DPC)
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/latex/graphics-cfg\col
or.cfg"
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package color Info: Driver file: xetex.def on input line 147.
)
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/latex/everypage\everyp
age.sty"
Package: everypage 2007/06/20 1.1 Hooks to run on every page
)
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/latex/l3backend\l3back
end-xdvipdfmx.def"
File: l3backend-xdvipdfmx.def 2020-06-29 L3 backend support: xdvipdfmx
\g__graphics_track_int=\count171
\l__pdf_internal_box=\box46
\g__pdf_backend_object_int=\count172
\g__pdf_backend_annotation_int=\count173
) (xelatex_test_.aux)
\openout1 = `xelatex_test_.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 57.
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 57.
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 57.
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 57.
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 57.
LaTeX Font Info: Trying to load font information for TS1+cmr on input line 5
7.
("C:\Users\user\AppData\Local\Programs\MiKTeX 2.9\tex/latex/base\ts1cmr.fd"
File: ts1cmr.fd 2019/12/16 v2.5j Standard LaTeX font definitions
)
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 57.
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 57.
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 57.
LaTeX Font Info: ... okay on input line 57.
File: test_0.pdf Graphic file (type pdf)
<use test_0.pdf>
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <12> on input line 71.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <8> on input line 71.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 71.
[1
] (xelatex_test_.aux) )
Here is how much of TeX's memory you used:
951 strings out of 414039
14533 string characters out of 2892337
251271 words of memory out of 3000000
18651 multiletter control sequences out of 15000+200000
535082 words of font info for 34 fonts, out of 3000000 for 9000
1348 hyphenation exceptions out of 8191
30i,5n,25p,225b,104s stack positions out of 5000i,500n,10000p,200000b,50000s
Output written on xelatex_test_.pdf (1 page).
显然,TeX Live 内部没有问题,但我正在使用 MiKTeX。
日志(TeX Live):
This is XeTeX, Version 3.14159265-2.6-0.999992 (TeX Live 2020/W32TeX) (preloaded format=xelatex 2020.4.18) 6 AUG 2020 23:15
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**xelatex_test_.tex
(./xelatex_test_.tex
LaTeX2e <2020-02-02> patch level 5
L3 programming layer <2020-04-06>
(c:/texlive/2020/texmf-dist/tex/latex/base/article.cls
Document Class: article 2019/12/20 v1.4l Standard LaTeX document class
(c:/texlive/2020/texmf-dist/tex/latex/base/size12.clo
File: size12.clo 2019/12/20 v1.4l Standard LaTeX file (size option)
)
\c@part=\count163
\c@section=\count164
\c@subsection=\count165
\c@subsubsection=\count166
\c@paragraph=\count167
\c@subparagraph=\count168
\c@figure=\count169
\c@table=\count170
\abovecaptionskip=\skip47
\belowcaptionskip=\skip48
\bibindent=\dimen134
)
(c:/texlive/2020/texmf-dist/tex/generic/iftex/ifluatex.sty
Package: ifluatex 2019/10/25 v1.5 ifluatex legacy package. Use iftex instead.
(c:/texlive/2020/texmf-dist/tex/generic/iftex/iftex.sty
Package: iftex 2020/03/06 v1.0d TeX engine tests
))
(c:/texlive/2020/texmf-dist/tex/latex/graphics/graphicx.sty
Package: graphicx 2019/11/30 v1.2a Enhanced LaTeX Graphics (DPC,SPQR)
(c:/texlive/2020/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2014/10/28 v1.15 key=value parser (DPC)
\KV@toks@=\toks15
)
(c:/texlive/2020/texmf-dist/tex/latex/graphics/graphics.sty
Package: graphics 2019/11/30 v1.4a Standard LaTeX Graphics (DPC,SPQR)
(c:/texlive/2020/texmf-dist/tex/latex/graphics/trig.sty
Package: trig 2016/01/03 v1.10 sin cos tan (DPC)
)
(c:/texlive/2020/texmf-dist/tex/latex/graphics-cfg/graphics.cfg
File: graphics.cfg 2016/06/04 v1.11 sample graphics configuration
)
Package graphics Info: Driver file: xetex.def on input line 105.
(c:/texlive/2020/texmf-dist/tex/latex/graphics-def/xetex.def
File: xetex.def 2017/06/24 v5.0h Graphics/color driver for xetex
))
\Gin@req@height=\dimen135
\Gin@req@width=\dimen136
)
\ASYbox=\box45
\ASYdimen=\dimen137
(c:/texlive/2020/texmf-dist/tex/latex/graphics/color.sty
Package: color 2019/11/23 v1.2a Standard LaTeX Color (DPC)
(c:/texlive/2020/texmf-dist/tex/latex/graphics-cfg/color.cfg
File: color.cfg 2016/01/02 v1.6 sample color configuration
)
Package color Info: Driver file: xetex.def on input line 147.
)
(c:/texlive/2020/texmf-dist/tex/latex/everypage/everypage.sty
Package: everypage 2007/06/20 1.1 Hooks to run on every page
)
(c:/texlive/2020/texmf-dist/tex/latex/l3backend/l3backend-xdvipdfmx.def
File: l3backend-xdvipdfmx.def 2020-03-12 L3 backend support: xdvipdfmx
\g__graphics_track_int=\count171
\l__pdf_internal_box=\box46
\g__pdf_backend_object_int=\count172
\g__pdf_backend_annotation_int=\count173
)
(./xelatex_test_.aux)
\openout1 = `xelatex_test_.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 57.
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 57.
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 57.
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 57.
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 57.
LaTeX Font Info: Trying to load font information for TS1+cmr on input line 5
7.
(c:/texlive/2020/texmf-dist/tex/latex/base/ts1cmr.fd
File: ts1cmr.fd 2019/12/16 v2.5j Standard LaTeX font definitions
)
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for TU/lmr/m/n on input line 57.
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 57.
LaTeX Font Info: ... okay on input line 57.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 57.
LaTeX Font Info: ... okay on input line 57.
File: test_0.pdf Graphic file (type pdf)
<use test_0.pdf>
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <12> on input line 71.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <8> on input line 71.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <6> on input line 71.
[1
] (./xelatex_test_.aux) )
Here is how much of TeX's memory you used:
951 strings out of 479417
15040 string characters out of 5888071
251779 words of memory out of 5000000
18506 multiletter control sequences out of 15000+600000
535082 words of font info for 34 fonts, out of 8000000 for 9000
1348 hyphenation exceptions out of 8191
30i,5n,25p,223b,104s stack positions out of 5000i,500n,10000p,200000b,80000s
Output written on xelatex_test_.pdf (1 page).
有人能帮忙找出根本原因吗?
参考:
- https://sourceforge.net/p/asymptote/discussion/409349/thread/450a65553e/
- test_0.pdf 资源:https://sourceforge.net/p/asymptote/discussion/409349/thread/450a65553e/9b76/attachment/test_0.pdf
编辑
我已将问题缩小到以下 MWE:
\documentclass[12pt]{article}%
\usepackage{graphicx}%
\begin{document}%
\includegraphics{test_0}%
\end{document}%
比较 MiKTeX 的结果pdflatex
,xelatex
我注意到垂直和水平差异。有趣的是,如果不指定,12pt
水平差异就会消失,但垂直差异仍然存在。
答案1
这看起来像是 miktex 的一个错误。它将图像大小四舍五入为完整的 pt 值:
\documentclass{article}
\setbox0=\hbox{\XeTeXpdffile example-image-a.pdf\relax}
\showthe\wd0
\showthe\ht0
\setbox0=\hbox{\XeTeXpicfile example-image-a.jpg\relax}
\showthe\wd0
\showthe\ht0
\begin{document}
blub
\end{document}
使用 miktex 给出:
> 321.0pt.
l.18 \showthe\wd0
?
> 240.0pt.
l.19 \showthe\ht0
?
> 401.0pt.
l.23 \showthe\wd0
?
> 301.0pt.
l.24 \showthe\ht0
和 texlive
> 321.20001pt.
l.18 \showthe\wd0
?
> 240.9pt.
l.19 \showthe\ht0
?
> 401.5pt.
l.23 \showthe\wd0
?
> 301.125pt.
l.24 \showthe\ht0