10
\makeatletter
\newlength\@SizeOfCirc%
\newcommand{\CricArrowRight}[1]{%
\setlength{\@SizeOfCirc}{\maxof{\widthof{#1}}{\heightof{#1}}}%
\tikz [x=1.0ex,y=1.0ex,line width=.15ex, draw=black]%
\draw [->,anchor=center]%
node (0,0) {#1}%
(0,1.2\@SizeOfCirc) arc (-90:180:1.2\@SizeOfCirc);%
}%
\makeatother

This being in the premeable and the code below used in the document,

\begin{equation}
\CricArrowRight{+}\sum M_{z})_{o}&=0
\end{equation}

what I have produced is this,

enter image description here

but what I need to produce is the following:

enter image description here

Could you please help me write the equation above properly?

5 Answers 5

13

The arc starts at (0, 1.2\@SizeOfCirc), which is above the + sign. As you want it to start below the +, simply change the arc to start at (0, -1.2\@SizeOfCirc). This gives the following result:

Result

To position the symbol such that the + is aligned correctly, you'll have to change the baseline option of \tikz to baseline=-\the\dimexpr\fontdimen22\textfont2\relax, as described in this answer. The result then looks like this:

End result

The complete code:

\documentclass{article}

\usepackage{amsmath}
\usepackage{tikz,calc}

\makeatletter
\newlength\@SizeOfCirc%
\newcommand{\CricArrowRight}[1]{%
\setlength{\@SizeOfCirc}{\maxof{\widthof{#1}}{\heightof{#1}}}%
\tikz [x=1.0ex,y=1.0ex,line width=.15ex, draw=black, baseline=-\the\dimexpr\fontdimen22\textfont2\relax]%
\draw [->,anchor=center]%
node (0,0) {#1}%
(0,-1.2\@SizeOfCirc) arc (-90:180:1.2\@SizeOfCirc);
}%
\makeatother

\begin{document}
\begin{equation}
    \CricArrowRight{+} \sum M_{z})_{o}=0
\end{equation}
\end{document}
0
11

Done without tikz, by overlaying the amsmath symbol \circlearrowleft atop the argument. The circled arrow is scaled and rotated.

\documentclass{article}
\usepackage{stackengine,amssymb,graphicx}
\newcommand\CircArrowLeft[1]{\stackengine{-.3ex}{#1}{\CAL}{O}{c}{F}{F}{L}}
\newcommand\CAL{\scalebox{2}{\rotatebox[origin=center]{90}{$\circlearrowleft$}}}
\stackMath
\begin{document}
\begin{equation}
\CircArrowLeft{+}\sum M_{z})_{o}=0
\end{equation}
\end{document}

enter image description here

0
8

Similar to hbaderts' but with a bit of extras (e.g., \DOTSB for correct autopositioning of \dots, usage of pgfmath macros to calculate the width, etc.)

\documentclass{scrartcl}
\usepackage{mathtools,amssymb,lmodern,tikz}
\usetikzlibrary{arrows,bending}

\newcommand*\carr[1]
  {\DOTSB\mathbin{\mkern2mu\tikz[x=1ex, y=1ex, line width=.1ex, line cap=round, draw=black, baseline=-\the\fontdimen22\textfont2] {
    \pgfmathsetmacro\circlesize{max(width("$#1$"),height("$#1$"))*.8}
    \draw[->, >=stealth', anchor=center] node (0,0) {$#1$}
    ++(-100:\circlesize pt) arc (-100:195:\circlesize pt);}}}

\begin{document}
\[
  \Bigl( A \carr{+} \sum M_z \Bigr)_{0} = 0
\]
\end{document}
3
  • 2
    Nice. I think *.8 might look better, such that it does not rival the size of the symmation symbol.
    – daleif
    Jul 28, 2015 at 11:57
  • The angles of the arc is another thing to consider, I chose what I chose because it looked good with + but may be if one uses another symbol another values are better (the default -90:180 might be the most general). @daleif That might be true (I edited the answer), in any case, it's quite easy to change the *.8 by whatever one prefers.
    – Manuel
    Jul 28, 2015 at 12:04
  • @user82745 The way of saying thanks here is upvoting answers; and accepting the one that works better for you. In any case, you should change your username to something more telling than user12345.
    – Manuel
    Jul 28, 2015 at 19:46
2

Another TikZ solution.

\documentclass[varwidth,border=7pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,bending}
\def\CricArrowRight#1{\tikz[baseline=(A.base)]
  \draw[-stealth,line width=.035em]
    (0,0) node[circle, inner sep=0cm](A){$#1$}
    let \p1=(A.center),\p2=(A.west), \n1={\x1-\x2} in
      (-90:\n1) arc(-90:190:\n1);}
\begin{document}
  $\CricArrowRight{+}\sum M_{z})_{o}=0$\\[1em]
  \CricArrowRight{+} \CricArrowRight{-} \CricArrowRight{\#}
\end{document}

enter image description here

0
\usepackage{tikz}
\usetikzlibrary{calc,bending}
\def\CricArrowNCW#1{\tikz[baseline=(A.base)]
  \draw[-stealth,line width=.035em]
    (0,0) node[circle, inner sep=.05cm](A){$#1$}
    let \p1=(A.center),\p2=(A.west), \n1={\x1-\x2} in
      (90:\n1) arc(90:-190:\n1);}
      
\def\CricArrowACW#1{\tikz[baseline=(A.base)]
  \draw[-stealth,line width=.035em]
    (0,0) node[circle, inner sep=.05cm](A){$#1$}
    let \p1=(A.center),\p2=(A.west), \n1={\x1-\x2} in
      (-90:\n1) arc(-90:180:\n1);}


\begin{document}
  \CricArrowNCW{+} %normal clock wise
  \CricArrowACW{-} %  anti clock wise
\end{document}

output =

1
  • Hello old friend! Could you please point out in what way this answer differs from the one given by @Kpym below. Just adding a counter clockwise part by inverting the arc is not really enough to justify a new answer.
    – Roland
    Feb 9, 2022 at 0:15

You must log in to answer this question.

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