6

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

![circle](https://ibb.co/cdtJLa)

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}
  • 1
    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
  • 1
    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
8

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}
\newlength\circleradius
\setlength\circleradius{50mm}
\begin{tikzpicture}
  \draw [clip] (0,0) circle (\circleradius) circle (.3\circleradius);
  \foreach \i in {0,45,...,135} \draw (\i:\circleradius) -- (\i:.3\circleradius) ({\i+180}:.3\circleradius) -- ({\i+180}:\circleradius);
  \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
  }
  \path [decorate, decoration={text along path, text=\k, text align=center}] (\i:{\j*\circleradius}) arc (\i:{\i-45}:{\j*\circleradius});
\end{tikzpicture}
\end{document}

Ti*k*Z curved text

  • 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
  • 1
    @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
6

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]
\draw circle [radius=14] circle [radius=5]
  \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}

enter image description here

  • 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
5

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

MetaPost curved text

Here's a variant.

MetaPost variant curved text

% !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;

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.