同时使用amsmath
和pdfx
结果
另一方面,如果我注释掉 或pdfx
,amsmath
点的位置就正确了:
什么原因导致了此故障?文档类和编译器对此没有影响。
梅威瑟:
\documentclass{report}
\usepackage[a-1b]{pdfx} % generate PDF/A-compliant document
\usepackage{amsmath}
\begin{document}
\begin{equation}
\dot{A} \geq 0
\end{equation}
\end{document}
PS:我amsmath
知道方程环境;这只是一个例子,在我的真实文档中,我使用对齐环境。
答案1
尝试补丁在这里给出 并让我知道它的效果如何。我会将它添加到的编码中 pdfx v1.6.4
。
答案2
如果我添加\showoutput
,相关部分\dot{A}
是
....\hbox(9.20636+0.0)x7.50002, shifted 168.75, display
.....\OML/cmm/m/it/10 A
.....\hbox(0.0+0.0)x-7.50002
......\kern -7.50002
.....\vbox(9.20636+0.0)x7.50002
......\hbox(6.67859+0.0)x0.0, shifted 2.36111
.......\OT1/cmr/m/n/10 _
......\kern-4.30554
......\hbox(6.83331+0.0)x7.50002
....\penalty 0
没有pdfx
,我得到
...\hbox(9.20636+0.0)x7.50002, shifted 168.75, display
....\vbox(9.20636+0.0)x7.50002
.....\hbox(6.67859+0.0)x0.0, shifted 3.75005
......\OT1/cmr/m/n/10 _
.....\kern-4.30554
.....\hbox(6.83331+0.0)x7.50002
......\OML/cmm/m/it/10 A
...\penalty 0
该宏\dot
是根据定义的\mathaccentV
,即
> \mathaccentV=macro:
#1#2#3#4#5->\ifmmode \gdef \macc@tmp {\macc@depth \@ne }\setbox \z@ \hbox {\let
\mathaccentV \macc@test \let \use@mathgroup \@gobbletwo \let \select@group \@g
obblethree \frozen@everymath {}$#5$}\macc@tmp \ifnum \macc@depth =\@ne \global
\let \macc@nucleus \@empty \mathaccent "\accentclass@ \else \@xp \macc@nested \
fi #2#3#4{#5}\macc@nucleus \else \@xp \nonmatherr@ \csname #1\endcsname \fi .
该包pdfx
将其更改为
> \mathaccentV=macro:
#1#2#3#4#5->#5{\mathsurround =\z@ \relax \everymath {}\mathchoice {\setbox \z@
\hbox {$\displaystyle #5$}\kern -\wd \z@ }{\setbox \z@ \hbox {$\textstyle #5$}\
kern -\wd \z@ }{\setbox \z@ \hbox {$\scriptstyle #5$}\kern -\wd \z@ }{\setbox \
z@ \hbox {$\scriptscriptstyle #5$}\kern -\wd \z@ }}\AMS@mathaccentV {#1}{#2}{#3
}{#4}{\phantom {#5}}.
这解释了上面显示的输出之间的差异:通常,重音是排版的第一的并使用\mathaccent
包括查看\skewchar
字体的功能来正确地将重音符放在倾斜字母上。pdfx
重音符排版在框中,然后将重音符放在其上方;这会丢失有关正确放置的所有信息,并且 TeX 会将重音符置于框的中心。
我不知道为什么pdfx
要这样做。但除了重置为默认值外没有其他解决方法\mathaccentV
,这可能会导致 PDF 不合规。