15

Does anyone know how to make this symbol? Detexify couldn't help.

| o

The vertical line is centered on the 'o' and starts at the top of the 'o'.

2
  • 4
    It's not clear from your description what the symbol you're looking for looks like. Can you include a scan of it in print or of it drawn?
    – Don Hosek
    Jul 24, 2020 at 16:48
  • 1
    Related. math.stackexchange.com/questions/6557/… I will edit that question to point to this one. Jul 26, 2020 at 21:05

4 Answers 4

15

Is this what you want?

enter image description here

\documentclass{article}
\usepackage{amsmath,pict2e}

\makeatletter
\newcommand{\disjoint}{}% for safety
\DeclareRobustCommand{\disjoint}{%
  \mathrel{%
    \mathpalette\disjoint@\relax
  }%
}

\newcommand{\disjoint@}[2]{%
  \begingroup
  \setlength{\unitlength}{\disjoint@height{#1}}%
  \begin{picture}(1.4,2)
  \roundcap
  \linethickness{\disjoint@thickness{#1}}
  \put(0.7,0.5){\circle{1}}
  \Line(0.7,1)(0.7,2)
  \end{picture}%
  \endgroup
}
\newcommand{\disjoint@height}[1]{%
  0.8\fontdimen5
  \ifx#1\displaystyle\textfont\else
  \ifx#1\textstyle\textfont\else
  \ifx#1\scriptstyle\scriptfont\else
  \scriptscriptfont\fi\fi\fi 3
}
\newcommand{\disjoint@thickness}[1]{%
  \fontdimen8
  \ifx#1\displaystyle\textfont\else
  \ifx#1\textstyle\textfont\else
  \ifx#1\scriptstyle\scriptfont\else
  \scriptscriptfont\fi\fi\fi 3
}
\makeatother

\begin{document}

\fboxsep=0pt\fbox{$\disjoint$}

$A\disjoint B$ 
$\scriptstyle A\disjoint B$
$\scriptscriptstyle A\disjoint B$

\end{document}
2
  • I want the 'o' at the bottom and the vertical line to start at the top of the 'o'. So, flip the 'o' to the bottom and move the line to just touch the top of the 'o'. Apart from that one point, they don't overlap.
    – user107025
    Jul 24, 2020 at 19:16
  • 2
    Awesome! Thank you!
    – user107025
    Jul 24, 2020 at 20:10
13

As @Noone pointed out, there is a similar unicode character (U+2AF0). As for most unicode characters, it is included in the STIX font. It can be accessed without loading the whole font as in the following example.

\documentclass{article}
\DeclareFontEncoding{LS1}{}{}
\DeclareFontSubstitution{LS1}{stix}{m}{n}
\DeclareSymbolFont{symbols4}{LS1}{stixbb}{m}{it}
\DeclareMathSymbol{\midcir}{\mathrel}{symbols4}{"BE}
\begin{document}
\( \midcir \)
\end{document}

3
  • +1 Is it obvious from the STIX manual, for example, that this is the correct way to define this symbol? Looking in stix.sty I can believe that this is the right thing to do, and I am sure that I could define other symbols in analogous ways, but I don't see an obvious translation from the documentation. Am I missing something?
    – user30471
    Jul 26, 2020 at 8:27
  • @Andrew To my knowledge, this is a standard way to introduce new symbols in font packages. I don't know if there is something about that in the documentation, but I would not be surprised if there wasn't anything, because the purpose of a font package is to load a whole font, not only specific symbols. I don't think there is a more "correct" way to do this, but I'm no expert and I could be mistaken.
    – Vincent
    Jul 26, 2020 at 15:06
  • Thanks Vincent!
    – user30471
    Jul 26, 2020 at 23:56
11

There's a VERTICAL LINE WITH CIRCLE BELOW (U+2AF0) Unicode character and you can access to it via XeLaTeX or LuaLaTeX with a proper font:

\documentclass{standalone}
\usepackage{unicode-math}
\setmathfont{XITS Math}
\begin{document}
$⫰$ {\Large $⫰$} {\Huge $⫰$}
\end{document}

enter image description here

11

Using the \multimap symbol...rotated using also scalerel package.

enter image description here

\documentclass[12pt]{article}
\usepackage{amsmath,amssymb}
\usepackage{graphicx}
\newcommand{\circmap}{\raisebox{.7\depth}{$\rotmap$}}
\newcommand{\rotmap}{\rotatebox[origin=c]{-90}{$\multimap$}}
\usepackage{scalerel}
\usepackage{parskip}

\begin{document}
Euler's formula is remarkable: $e^{i\pi} + 1 = 0$.

But if I have two sets with $A \mathbin{\scaleobj{.7}{\circmap}} B$ we can write $A_{\scalebox{.5}{$\scriptscriptstyle \circmap$}}^{\scalebox{.5}{$\scriptscriptstyle \circmap$}}$

\end{document}

enter image description here

Or another alternative can be to use fontawesome5 with the command \faNeuter.

\documentclass[12pt]{article}
\usepackage{amsmath,amssymb}
\usepackage{fontawesome5}
\usepackage{graphicx}
\newcommand{\circmap}{\raisebox{.6\depth}{$\rotmap$}}
\newcommand{\rotmap}{\rotatebox[origin=c]{180}{\faNeuter}}
\usepackage{scalerel}

\begin{document}
Le be $\circmap$ a map: we define
\[\circmap \colon A \to B\] 
if 
\[A_{\scalebox{.5}{$\scriptscriptstyle \circmap$}}B\]

\end{document}

enter image description here

1
  • 1
    Thank you all very much!
    – user107025
    Jul 25, 2020 at 19:01

You must log in to answer this question.

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