# A macro that draws a half-disk for use in mathmode

I'd like to define macros to be able to use each of the following six shapes as subscripts in math mode.

I'd try to draw them using tikz, but I don't know if I could use those as subscripts.

• Maybe you find some here: ctan.org/pkg/wasysym or www.ctan.org/pkg/stix – Sigur Nov 20 '18 at 14:44
• Thanks! That package has the commands \Leftcircle and \Rightcircle, I'll try to figure out how to rotate those. Still missing the ones with just the arc, though. – Peter Nov 20 '18 at 14:46
• Check here also: mirrors.ctan.org/info/symbols/comprehensive/symbols-a4.pdf – Sigur Nov 20 '18 at 14:50
• Also, if using unicode-math: mirrors.ctan.org/macros/latex/contrib/unicode-math/… – Davislor Nov 21 '18 at 3:34
• A few of those symbols are in Unicode, ◯ is U+25EF, ◠ is U+25E0 and ◡ is U+25E1. unicode-math and some other packages give these the aliases \lgwhtcircle, \topsemicircle and \botsemicircle, respectively. There are several horizontal dashes. The other two symbols do not seem to be. – Davislor Nov 21 '18 at 3:43

Picture mode!

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

\DeclareRobustCommand{\fullcircle}{%
\mspace{2mu}\mathord{
\sbox{0}{$\scriptstyle O$}%
\setlength{\unitlength}{\ht0}%
\begin{picture}(1,1)
\put(0.5,0.5){\arc{0.5}}
\end{picture}
}\mspace{2mu}
}
\DeclareRobustCommand{\upsemicircle}{%
\mspace{2mu}\mathord{
\sbox{0}{$\scriptstyle O$}%
\setlength{\unitlength}{\ht0}%
\begin{picture}(1,1)
\put(0.5,0.5){\arc[0,180]{0.5}}
\end{picture}
}\mspace{2mu}
}
\DeclareRobustCommand{\downsemicircle}{%
\mspace{2mu}\mathord{
\sbox{0}{$\scriptstyle O$}%
\setlength{\unitlength}{\ht0}%
\begin{picture}(1,1)
\put(0.5,0.5){\arc[180,360]{0.5}}
\end{picture}
}\mspace{2mu}
}
\DeclareRobustCommand{\upsemicirclediam}{%
\mspace{2mu}\mathord{
\sbox{0}{$\scriptstyle O$}%
\setlength{\unitlength}{\ht0}%
\begin{picture}(1,1)
\moveto(0.5,0.5)
\circlearc{0.5}{0.5}{0.5}{0}{180}
\lineto(0.5,0.5)
\strokepath
\end{picture}
}\mspace{2mu}
}
\DeclareRobustCommand{\downsemicirclediam}{%
\mspace{2mu}\mathord{
\sbox{0}{$\scriptstyle O$}%
\setlength{\unitlength}{\ht0}%
\begin{picture}(1,1)
\moveto(0.5,0.5)
\circlearc{0.5}{0.5}{0.5}{180}{360}
\lineto(0.5,0.5)
\strokepath
\end{picture}
}\mspace{2mu}
}
\DeclareRobustCommand{\diam}{%
\mspace{2mu}\mathord{
\sbox{0}{$\scriptstyle O$}%
\setlength{\unitlength}{\ht0}%
\begin{picture}(1,1)
\Line(0,0.5)(1,0.5)
\end{picture}
}\mspace{2mu}
}

\begin{document}

$X_{\fullcircle\upsemicircle\downsemicircle\upsemicirclediam\downsemicirclediam\diam}$

\end{document}


An enhanced version that can cope with the symbols at every level.

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

\makeatletter
\DeclareRobustCommand{\fullcircle}{\peter@symbol\peter@fullcircle}
\DeclareRobustCommand{\upsemicircle}{\peter@symbol\peter@upsemicircle}
\DeclareRobustCommand{\downsemicircle}{\peter@symbol\peter@downsemicircle}
\DeclareRobustCommand{\upsemicirclediam}{\peter@symbol\peter@upsemicirclediam}
\DeclareRobustCommand{\downsemicirclediam}{\peter@symbol\peter@downsemicirclediam}
\DeclareRobustCommand{\diam}{\peter@symbol\peter@diam}

\newcommand{\peter@symbol}[1]{\mathord{\mspace{2mu}\mathpalette#1\relax\mspace{2mu}}}
\newcommand{\peter@unitlength}[1]{%
\settoheight{\unitlength}{$\m@th#1O$}%
\linethickness{\fontdimen 8
\ifx#1\displaystyle\textfont\else
\ifx#1\textstyle\textfont\else
\ifx#1\scriptstyle\scriptfont\else
\scriptscriptfont\fi\fi\fi 3
}%
}

\newcommand{\peter@fullcircle}[2]{%
\begingroup
\peter@unitlength{#1}%
\begin{picture}(1,1)
\circlearc[1]{0.5}{0.5}{0.5}{0}{360}
\strokepath
\end{picture}%
\endgroup
}
\newcommand{\peter@upsemicircle}[2]{%
\begingroup
\peter@unitlength{#1}%
\begin{picture}(1,1)
\circlearc[1]{0.5}{0.5}{0.5}{0}{180}
\strokepath
\end{picture}%
\endgroup
}
\newcommand{\peter@downsemicircle}[2]{%
\begingroup
\peter@unitlength{#1}%
\begin{picture}(1,1)
\circlearc[1]{0.5}{0.5}{0.5}{180}{360}
\strokepath
\end{picture}%
\endgroup
}
\newcommand{\peter@upsemicirclediam}[2]{%
\begingroup
\peter@unitlength{#1}%
\begin{picture}(1,1)
\moveto(0.5,0.5)
\circlearc{0.5}{0.5}{0.5}{0}{180}
\lineto(0.5,0.5)
\strokepath
\end{picture}%
\endgroup
}
\newcommand{\peter@downsemicirclediam}[2]{%
\begingroup
\peter@unitlength{#1}%
\begin{picture}(1,1)
\moveto(0.5,0.5)
\circlearc{0.5}{0.5}{0.5}{180}{360}
\lineto(0.5,0.5)
\strokepath
\end{picture}%
\endgroup
}
\newcommand{\peter@diam}[2]{%
\begingroup
\peter@unitlength{#1}%
\begin{picture}(1,1)
\Line(0,0.5)(1,0.5)
\end{picture}%
\endgroup
}

\begin{document}

$X\fullcircle\upsemicircle\downsemicircle\upsemicirclediam\downsemicirclediam\diam$

$X_{\fullcircle\upsemicircle\downsemicircle\upsemicirclediam\downsemicirclediam\diam}$

$X_{X_{\fullcircle\upsemicircle\downsemicircle\upsemicirclediam\downsemicirclediam\diam}}$

\end{document}


TikZ in boxes! (Far inferior to picture mode unfortunately)

\documentclass[]{article}

\usepackage{tikz}

\makeatletter
\newcommand\setup@crazysubscripts[2]
{%
\expandafter\newsavebox\csname crazysubscripts@#1\endcsname
\expandafter\sbox\csname crazysubscripts@#1\endcsname
{%
\kern.1ex
\begin{tikzpicture}
#2%
\end{tikzpicture}%
\kern.1ex
}%
}
\setup@crazysubscripts{fc}% fullcircle
{%
}
\setup@crazysubscripts{lo}% lower open
{%
\draw (.5ex,0) arc[start angle=0, end angle=-180, radius=.5ex];%
}
\setup@crazysubscripts{uo}% upper open
{%
\draw (.5ex,0) arc[start angle=0, end angle=180, radius=.5ex];%
}
\setup@crazysubscripts{lc}% lower closed
{%
\draw (-.5ex,0) -- (.5ex,0) arc[start angle=0, end angle=-180, radius=.5ex]
--cycle;%
}
\setup@crazysubscripts{uc}% upper closed
{%
\draw (-.5ex,0) -- (.5ex,0) arc[start angle=0, end angle=180, radius=.5ex]
--cycle;%
}
\setup@crazysubscripts{b}% boring line
{%
\draw (-.5ex,0) -- (.5ex,0);%
}
\newcommand\csubs[1]
{%
\@ifundefined{crazysubscripts@#1}
{\GenericError{}{Undefined crazysubscript #1}{}{}}%
{%
\resizebox{.75ex}{!}
{\expandafter\usebox\csname crazysubscripts@#1\endcsname}%
}%
}
\makeatother

\begin{document}
$A_{\csubs{fc}_{\csubs{lo}_{\csubs{lc}}}}$

\csubs{fc}\csubs{lo}\csubs{uo}\csubs{lc}\csubs{uc}\csubs{b}
\end{document}


• Could you elaborate how this is inferior to picture mode? – Peter Nov 20 '18 at 15:34
• @Peter because the other one is picture mode! – Skillmon Nov 20 '18 at 15:43
• @Peter no honestly, it's just a joke. – Skillmon Nov 20 '18 at 15:44

Just a template.

\documentclass[preview,border=12pt,varwidth,12pt]{standalone}
\usepackage{tikz}

\def\alex{\tikz \draw (0,0) circle (2pt);}
\def\bobby{\tikz \draw (0,0) -- (3pt,0) -- (3pt,2pt) -- cycle;}
\begin{document}
This is an  equation $F_{\alex}^{\bobby}+1$.
\end{document}