The concurrent use of amsmath and pdfx results

enter image description here

On the other hand, if I comment out either pdfx or amsmath, the dot is positioned correctly:

enter image description here

What causes this glitch? The document class and the compiler have no effect on it.



\usepackage[a-1b]{pdfx} % generate PDF/A-compliant document


   \dot{A} \geq 0


PS: I know that amsmath is not needed for the equation environment; that was just an example, in my real document, I use the align environment.

  • This is basically a shot in the dark, although I've looked at the source code for amsmath. amsmath does different things with \dot depending on whether or not it is defined. Try inserting this before \usepackage{amsmath}: \let\dot\undefined. Not tested and not guaranteed. Sep 25, 2019 at 16:26
  • This returns errors from amsmath.sty, e.g. Paragraph ended before \@tempb was complete. \noindent\ignorespaces##1\par and Too many }'s. }. Sep 26, 2019 at 8:25

2 Answers 2


Try the patch given here and let me know how well it works. I'll be adding it to the coding for pdfx v1.6.4 .

  • Thanks, it gives visually identical results both with amsmath enabled and disabled. Sep 26, 2019 at 8:46
  • Unfortunately, if you do \showoutput as below, then you will find that the letter A is included twice: once before and once after the accent character. Thus text-extraction gets it twice too. I've come to the conclusion that this kind of patch just isn't good enough. So we must use an /ActualText replacement instead.
    – Ross Moore
    Sep 28, 2019 at 0:26

If I add \showoutput, the relevant part for \dot{A} is

....\hbox(9.20636+0.0)x7.50002, shifted 168.75, display
.....\OML/cmm/m/it/10 A
......\kern -7.50002
......\hbox(6.67859+0.0)x0.0, shifted 2.36111
.......\OT1/cmr/m/n/10 _
....\penalty 0

Without pdfx, I get

...\hbox(9.20636+0.0)x7.50002, shifted 168.75, display
.....\hbox(6.67859+0.0)x0.0, shifted 3.75005
......\OT1/cmr/m/n/10 _
......\OML/cmm/m/it/10 A
...\penalty 0

The macro \dot is defined in terms of \mathaccentV, which is

> \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 .

The package pdfx changes it to

> \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}}.

This explains the difference in the outputs shown above: normally, the accent is typeset first and uses the \mathaccent features, which include looking at the \skewchar of the font, for properly placing the accent on slanted letters. With pdfx the accentee is typeset in a box and later the accent is placed above it; this loses all information about correct placement and TeX centers the accent over the box.

Why is pdfx doing so I don't know. But there's no workaround except resetting \mathaccentV to the default, which might result in a noncompliant PDF.

  • Text extraction, using Unicode combining accents, requires the accent character to come after the base. You cannot satisfy sensible Accessibility or Archivability requirements without this.
    – Ross Moore
    Sep 25, 2019 at 23:18

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .