TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Occasionally I noted that Cambria Math fonts or the unicode-math package might have wrong definition of \perp math symbol. Attached picture shows that \perp is not printed properly while \bot is.

enter image description here

This test is produced by the following code.

    \usepackage[utf8]{inputenc} % source file encoding
    \usepackage[T1]{fontenc} % cyrillic font encoding

        \setmathfont{Cambria Math}
        \vec{A} \perp \vec{B}
        \vec{A} \bot \vec{B}

The missing character is reported in the log file:

Missing character: There is no вџ‚ in font Cambria Math/ICU:script=math;languag
Missing character: There is no вџ‚ in font Cambria Math/ICU:script=math;languag

This same file can be conditionally compiled with both xelatex and pdflatex just to check that standard fonts use same glyph to print both \bot and \perp. So, I guess that error may reside in the unicode-math package. Could somebody check is this guess correct?

I would also appreciate any advice how to redefine the \perp command to make it working for a while before the problem will be corrected by the font/package developers.

share|improve this question
BTW, \ifpdf is misused here since it does not check for pdftex but rather for \pdfoutput value so it will be true with luatex and false with pdftex/luatex in dvi mode, which is not really what you want. So \ifxetex ... \else ... \fi is more appropriate in this case (you may also check for luatex if you want to support it too). – Khaled Hosny Mar 7 '11 at 20:59
up vote 14 down vote accepted

The character in question is U+27C2, which doesn't exist in Cambria Math. In this case you should use \mathrel\bot instead (the \mathrel is necessary to get the spacing right).

As a long-term solution we should implement fall-back characters in unicode-math. U+27C2 is intended for the perpendicular relation as indicated by Unicode; MathML, on the other hand, suggests to use U+22A5 for that purpose. Currently \perp is hard-wired to map to U+27C2, and \bot maps to U+22A5. The correct solution would be to have \perp map to U+22A5 if U+27C2 is not available. I'll add that to the issue tracker, but I have no time to look after it during the next couple of weeks.

share|improve this answer
May I remind this your promise. \perp is not printed still altough I am using the most recent version of miktex. – Igor Kotelnikov Jan 7 '13 at 9:03

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.