I know that Framed
is used to show a frame around a symbol, how can I show a circle around a symbol?
How do I create a circled symbol in Mathematica?
849 views Asked by Andrew At
5
There are 5 answers
4
On
Framed
can take an option RoundingRadius
.
Framed[expr, RoundingRadius -> radius]
At smaller values of radius
the corners of the frame are simply slightly rounded, but at larger values, the frame becomes an oval or circle.
4
On
Using Framed[ ] with RoundingRadius
f = Rasterize[#, "RasterSize"] &;
circledBeli[x_] := Framed[ x,
FrameMargins -> (Norm@f@x - Array[1 &, {2, 2}] f@x)/2,
RoundingRadius -> Norm@f@x];
circledBeli[Sin[z^2]/Exp[z] + Integrate[Sin[x] Cos[x] Sqrt[x], x]]
circledBeli["3((1/x+y+z)/h)\n2\nm\np"]
Edit
The following seems to work better with TraditionalForm:
f = ImageDimensions[Rasterize[#]][[1 ;; 2]] &;
g = Reverse[ImageDimensions[Rasterize[Rotate[#, Pi/2]]][[1 ;; 2]]] &;
h = Max /@ Transpose@{f@#, g@#} &;
circledBeli[x_] :=
Framed[x, FrameMargins -> (Norm@h@x - Array[1 &, {2, 2}] h@x)/2,
RoundingRadius -> Norm@h@x];
t = TraditionalForm[Sin[z^2]/Exp[z] + Integrate[Sin[x] Cos[x] Sqrt[x], x]]
circledBeli[t]
If you don't mind having to micromanage the alignment parameters, you can overlay the empty circle character over a symbol:
The exhibited font size and alignment parameters work for the font on my machine, but you may have to tweak them for good results on your screen. And tweak them again for a decent print-out. The following
Manipulate
can aid in that process: