Several authors use a circled perpendicular sign to indicate orthogonal direct sums.

What is the appropriate way to implement this, so you can use it like \oplus and \bigoplus ?

  • possible duplicate of How to look up a symbol? Jul 1 '12 at 20:28
  • 4
    this is a relatively recent addition to unicode (U+2989), and i believe it exists only in the stix/xits fonts. it comes only in one size, so it would have to be enlarged for the \big; a method for doing this is given in the question define-strange-operators Jul 1 '12 at 20:56
  • @IanThompson: By barbara's comment this is no as simple.
    – Caramdir
    Jul 1 '12 at 20:59
  • 1
    @caramdir --- Maybe I'm missing something, but \obot and \bigobot from mathabx look like circled perpendicular signs to me. Jul 1 '12 at 21:01
  • @Ian: Well, sort of. I guess that is the closes approximation you can get without going the unicode-math route. The Unicode symbol ⦹ U+29B9 (circled perpendicular) is different from ⦺ U+29BA (circle divided by horizontal bar and top half divided by vertical bar). The mathabx symbol is the latter.
    – Caramdir
    Jul 1 '12 at 21:43

To summarize the comments, here are the options currently available.

  • The mathabx provides \obot and \bigobot. These symbols look like
    obot and bigobot
    If you don't want to include all the mathabx symbols (they overwrite many Computer Modern symbols), then you can use the following setup (taken from Importing a Single Symbol From a Different Font):

    % Setup the matha and mathx font (from mathabx.sty)
          <5> <6> <7> <8> <9> <10> gen * matha
          <10.95> matha10 <12> <14.4> <17.28> <20.74> <24.88> matha12
          <5> <6> <7> <8> <9> <10>
          <10.95> <12> <14.4> <17.28> <20.74> <24.88>
    \DeclareMathSymbol{\obot}         {2}{matha}{"6B}
    \DeclareMathSymbol{\bigobot}       {1}{mathx}{"CB}
    \[ V \obot W \qquad \bigobot V_i \]
  • Unicode additionally defines ⦹ U+29B9 (circled perpendicular), but doesn't provide a big counterpart. The symbol can be used with the unicode-math package and LuaLaTeX or XeLaTeX. As of summer 2012 only the XITS and Cambria math fonts include the symbol. In XITS Math it looks like
    The corresponding TeX code is

    % compile with lualatex
    \setmathfont{XITS Math}
    \[ V \operp W  \]

    The Unicode also has \obot, looking similar to the example above, but doesn't provide \bigobot. You could try to fake the large symbols with something like {\text{\Large$\operp$}}\limits_{i∈I} V_i, but the scaling will make the symbol heavier:
    faked bigoperp

  • The STIX fonts LaTeX package is available, but not yet in TeX Live (as of this writing). After installing it you can use (with normal pdfLaTeX)

    $V \operp W$

    to get an output similar to the above.

    If you only want the \operp symbol from STIX, you can set it up yourself:

    % copied relevant lines from stix.sty
    \DeclareSymbolFont{symbols2}{LS1}{stixfrak} {m} {n}
    $V \operp W$

In general have a look at How to look up a symbol or identify a math symbol or character? to see how you can find a specific symbol.

  • Would it be possible to define a command \Operp that outputs the \operp symbol whenever used, but without setting the whole font to XITS Math? How, if possible, would one do that? Dec 9 '13 at 20:53
  • I guess your answer already does that ^^, please ignore my earlier comment! Although, could you specify the code necessary to define the \operp command as you did in your second bullet point without setting all of the rest to XITS math? Dec 9 '13 at 21:14
  • I see. 8 more to go Dec 9 '13 at 21:18
  • How would I check this? Dec 9 '13 at 21:30
  • @OlivierBégassat: See my updated answer.
    – Caramdir
    Dec 10 '13 at 16:14

One can create a symbol for perpendicular direct sum using TikZ if you do not like using \oplus or \perp. Disadvantage: Changing between 10pt and 12pt requires a scale change for \oPerpSymbol.
Advantage: This avoids mathabx overwriting your symbols, or if STIX fonts are not available for you.

\documentclass[12pt]{article} %% scale=0.134 for 12pt; scale=0.112 for 10pt

\tikzset{every picture/.style={line width=0.11mm}}
  \draw (0,-0.5)--(0,1); \draw (-0.866,-0.5)--(0.866,-0.5);
  \draw (0,0) circle [radius=1];

  $U\oPerp V=U\oplus V=U\perp V$ and $\oPerp,\oplus,\perp$.
  • Couldn't you adjust line width= instead of a scale change?
    – Davislor
    Sep 18 '20 at 14:08
  • @Davisior No, the scale changes the diameter of the circle for \oPerp so it is the same size as the circle for \oplus. Line width controls the line thickness. It would be great if users with more expertise can highlight improvements though. Alas, I failed to upload a pdf of the output.
    – Glasby
    Sep 19 '20 at 5:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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