# Drawing a circle with text

Hi I cannot figure out how to draw the following figure in LaTeX:

Does anybody have any ideas?

I managed to draw only this "sun grid":

    \documentclass[a4paper]{book}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[scale=5]
%\\ intenditur per se in\\ qua est salus subditorum
\node at (-0.15, 0.9) {\tiny Justicia vero};
\node at (-0.25, 0.85) {\tiny est que intenditur per};
\node at (-0.288, 0.8) {\tiny se in qua est salus subdi-};
\node at (-0.08, 0.75) {\tiny torum};
%Mundus est ortus seu viridarium , ejus materi vel substancia vel sepes ejus est judicium (scilicet Dei angelorum, et hominum).

%Judicium est dominator vallatus vel dominacio vallata lege

% Lex est qua rex regit regum

% Et rex est pator qui defenditur a proceribus

%Proceres sunt stipendiarii sustentati pecunia

%Pecunia vero est fortuna que colligatur a subditis

% Subditi autem sunt servi quos subjecit justicia
\draw (-1,0) -- (-0.3,0);
\draw (0.3,0) -- (1,0);
\draw (-0.71,-0.71) -- (-0.21,-0.21);
\draw (0.71,0.71) -- (0.21,0.21);
\draw (0,-1) -- (0,-0.3);
\draw (0,0.3)node[align=center, below] {\\ \\ \\circulum\\firmamenti} -- (0,1);
\draw (-0.21,0.21) -- (-0.71,0.71);
\draw (0.21,-0.21) -- (0.71,-0.71);
\draw (0,0) circle (1cm) ;
\draw (0,0) circle (0.3cm);

\end{tikzpicture}
\thispagestyle{empty}
\end{document}

• Could you show what you have tried so far? Starting from scratch is difficult for most of us (atleast). So, please add your MWE. – Raaja Mar 13 '17 at 14:27
• All that curved text will be a fiddle. But see tex.stackexchange.com/questions/103892/… – Thruston Mar 13 '17 at 14:38
• Does it have to be TikZ? Can you complete your code so we can compile it? Also, can you provide the text you want in the various sections? – cfr Mar 13 '17 at 17:17
• I added the text. Of course I can add it, as a simple node, but couldn't make it sloped and look aesthetically. It doesn't have to be Tikz, but I don't know any better way to do it. – dawicz Mar 14 '17 at 10:36

TikZ does not do a very good job of creating curved text. For better results, try MetaPost.

However, here's an approach which uses TikZ's decorations.text library and makes the code for the basic layout a bit more succinct.

\documentclass[border=10pt,multi,tikz,10pt]{standalone}
\usetikzlibrary{decorations.text}
\usepackage{venturis}
\begin{document}
\begin{tikzpicture}
\node [align=center, font=\large] {circulum\\firmamenti};
\foreach \i/\j/\k in
{
-225/.925/Justicia vero est que,
-225/.875/intenditur per se in qua,
-225/.825/est solus,
-225/.775/subditorum,
-270/.925/Mundus est ortus seu,
-270/.875/{viridarium, ejus materi},
-270/.825/{vel, substancia vel},
-270/.775/sepes ejus est,
-270/.725/{judicium (scilicet,},
-270/.675/{Dei angelorum, et},
-270/.625/{hominum).},
-315/.925/Judicium est dominator,
-315/.875/vallatus vel dominacio,
-315/.825/vallata lege,
0/.925/Lex est qua rex regit,
0/.875/regum,
-45/.925/Et rex est pator qui,
-45/.875/defenditur a proceribus,
-90/.925/Proceres sunt stipendiarii,
-90/.875/sustentati pecunia,
-135/.925/Pecunia vero est fortuna,
-135/.875/que colligatur a subditis,
-180/.925/Subditi autem sunt servi,
-180/.875/quos subjecit justicia
}
\end{tikzpicture}
\end{document}


• So far I only read about Metapost/Font in ancient books :). Is it still advisable to use it? – Dr. Manuel Kuehner Mar 15 '17 at 0:53
• @Dr.ManuelKuehner Of course. – cfr Mar 15 '17 at 1:34
• @Dr.ManuelKuehner Just for you ... ;). – cfr Mar 15 '17 at 3:32
• @CarLaTeX Why would I do that? It would be much better to just adjust the scaling factors. There is nothing set in stone about the 0.5 stepping. – cfr Mar 15 '17 at 3:55
• @CarLaTeX The real problem is trying to fit that much text into that little space on a short curve. At the bottom, you can see that it is starting to look bad - optically, it becomes too straight. If you aren't careful, in fact, it becomes completely straight for no apparent reason. So there has to be a balance here and this seemed about right. It is easy enough for the OP to change the specific factors used as preferred. – cfr Mar 15 '17 at 3:58

Perhaps I have lower standards, but while tikz is not amazing at putting text along curves, I think that in this case it can do fairly passable job:

\documentclass[tikz,border=5]{standalone}
\usepackage{chancery}
\usepackage[T1]{fontenc}
\usetikzlibrary{decorations.text}
\tikzset{curved text/.style={
decoration={text effects along path,
text/.expanded=#1, text align=center,
text effects/.cd, text along path, decorate}}
}
\begin{document}
\begin{tikzpicture}[x=1em,y=1em]
\foreach \i in {0,...,7}{ (\i*45:14) -- (\i*45:5) };
\node [align=center] {circulum \\ firmamenti};
\foreach [count=\a from 0] \text in {%
{
Mundus est ortus seu, {viridarium, ejus materi},
vel substancia vel, sepes ejus est,
judicium (scilicet, Dei angelorum, et hominum)
},
{
Juicium est dominator,
vallatus vel dominacio, vallata lege
},
{
Lex est qua rex regit, regum
},
{
Et rex est pator qui, defenditur a proceribus
},
{
Procesres sunt stipendiarii, sustentati pecunia
},
{
Pecunia vero est fortuna, que colligator a subditis
},
{
Subditi autem sunt servi, quos subjecit justicia
},
{
Justicia vero est que, intenditur per se in,
qua est solus, subditorum
}}
\foreach \t [count=\r] in \text
\path [curved text=\t, rotate=-\a*45]
(90:14-\r) arc (90:45:14-\r);
\end{tikzpicture}
\end{document}


• This is the solution I prefer – CarLaTeX Mar 15 '17 at 7:59
• I agree that in this case it is not too bad. However, in my case, I had to fiddle to prevent some of the text being not curved at all. I assume there is a bug somewhere, but the order in which I added the text in the end turned out to be critical for no good reason. I have other examples where MP is clearly superior, but in some cases I use TikZ because I don't know how to do other things I want in MP. TikZ is certainly easier/better documented, as far as I can tell :-). – cfr Mar 15 '17 at 16:55

Here's a version of my earlier answer using MetaPost.

Here's a variant.

% !MPOST tex = etex
% !MPOST pdf = on
% !MPOST preview = on
% !MPOST titles = off

input latexmp
setupLaTeXMP(preamblefile="textpath-preamble");
input textpath

prologues := 3;
outputtemplate := "%j%c.mps";

% ateb: http://tex.stackexchange.com/a/358528/ addaswyd o gwestiwn dawicz: http://tex.stackexchange.com/q/358243/
% gweler hefyd: tikz-circulum-firmamenti.tex

beginfig(1)
transform T;
c:=10cm;
sc:=.3*c;
ic:=.15*c;
oc:=.5*c;
ac:=.925*c;
bc:=.86*c;
cc:=.795*c;
dc:=.73*c;
ec:=.665*c;
fc:=.6*c;
gc:=.535*c;
hc:=.47*c;
jc:=.405*c;
draw fullcircle scaled c withpen pensquare;
draw fullcircle scaled sc withpen pensquare;
z0=(0,0);
z1=(0,oc);
z2=(0,ic);
z3=(-ic,.1*ic);
z4=(ic,.1*ic);
z5=(-ic,-.1*ic);
z6=(ic,-.1*ic);
path pb;
pb := z1--z2;
for i=45 step 45 until 360:
draw pb rotated i withpen pensquare;
endfor;
def f="\usefont{T1}{yvtjw}{m}{n}" enddef;
ta:=-67.5;
for t="Justicia vero est que","Mundus est ortus seu","Judicium est dominator","Lex est qua rex regit","Et rex est pator qui","Proceres sunt stipendiarii","Pecunia vero est fortuna","Subditi autem sunt servi":
draw textpathFont(f, t, reverse fullcircle rotated ta scaled ac, .5);
ta:=ta-45;
endfor;
for t="intenditur per se in","viridarium, ejus materi","vallatus vel dominacio","regum","defenditur a proceribus","sustentati pecunia","que colligatur a subditis","quos subjecit justicia":
draw textpathFont(f, t, reverse fullcircle rotated ta scaled bc, .5);
ta:=ta-45;
endfor;
ta:=-67.5;
for t="qua est solus","vel, substancia vel","vallata lege":
draw textpathFont(f, t, reverse fullcircle rotated ta scaled cc, .5);
ta:=ta-45;
endfor;
ta:=-67.5;
for t="subditorum","sepes ejus est":
draw textpathFont(f, t, reverse fullcircle rotated ta scaled dc, .5);
ta:=ta-45;
endfor;
draw textpathFont(f, "judicium", reverse fullcircle rotated -112.5 scaled ec, .5);
draw textpathFont(f, "(scilicet, Dei", reverse fullcircle rotated -112.5 scaled fc, .5);
draw textpathFont(f, "angelorum,", reverse fullcircle rotated -112.5 scaled gc, .5);
draw textpathFont(f, "et", reverse fullcircle rotated -112.5 scaled hc, .5);
draw textpathFont(f, "hominum).", reverse fullcircle rotated -112.5 scaled jc, .5);
path pa;
path pc;
pa:=(z3)--(z4);
draw textpathFont(f, "circulum", pa, .5);
pc:=(z5)--(z6);
draw textpathFont(f, "firmamenti", pc, .5);
endfig;

beginfig(2)
transform T;
c:=10cm;
sc:=.3*c;
ic:=.15*c;
oc:=.5*c;
ac:=.925*c;
bc:=.865*c;
cc:=.805*c;
dc:=.745*c;
ec:=.685*c;
fc:=.625*c;
gc:=.565*c;
draw fullcircle scaled c withpen pensquare;
draw fullcircle scaled sc withpen pensquare;
z0=(0,0);
z1=(0,oc);
z2=(0,ic);
z3=(-ic,.1*ic);
z4=(ic,.1*ic);
z5=(-ic,-.3*ic);
z6=(ic,-.3*ic);
path pb;
pb := z1--z2;
for i=45 step 45 until 360:
draw pb rotated i withpen pensquare;
endfor;
def f="\usefont{T1}{pzc}{m}{n}" enddef;
ta:=-67.5;
for t="Justicia vero est que","Mundus est ortus seu","Judicium est dominator","Lex est qua rex regit","Et rex est pator qui","Proceres sunt stipendiarii","Pecunia vero est fortuna","Subditi autem sunt servi":
draw textpathFont(f, t, reverse fullcircle rotated ta scaled ac, .5);
ta:=ta-45;
endfor;
for t="intenditur per se in qua","viridarium, ejus materi","vallatus vel dominacio","regum","defenditur a proceribus","sustentati pecunia","que colligatur a subditis","quos subjecit justicia":
draw textpathFont(f, t, reverse fullcircle rotated ta scaled bc, .5);
ta:=ta-45;
endfor;
ta:=-67.5;
for t="est solus subditorum","vel, substancia vel sepes","vallata lege":
draw textpathFont(f, t, reverse fullcircle rotated ta scaled cc, .5);
ta:=ta-45;
endfor;
draw textpathFont(f, "ejus est judicium", reverse fullcircle rotated -112.5 scaled dc, .5);
draw textpathFont(f, "(scilicet, Dei", reverse fullcircle rotated -112.5 scaled ec, .5);
draw textpathFont(f, "angelorum, et", reverse fullcircle rotated -112.5 scaled fc, .5);
draw textpathFont(f, "hominum).", reverse fullcircle rotated -112.5 scaled gc, .5);
def f="\usefont{T1}{pzc}{m}{n}\LARGE" enddef;
path pa;
path pc;
pa:=(z3)--(z4);
draw textpathFont(f, "circulum", pa, .5);
pc:=(z5)--(z6);
draw textpathFont(f, "firmamenti", pc, .5);
endfig;

bye;