2

Does anyone has any idea how can I draw this kind of diagram in latex? Thanks in advance. enter image description here

2 Answers 2

6

Possible Asymptote version:

//
// diag.asy
//
// run 
//    asy diag.asy
//
// to get a standalone  diag.pdf

settings.tex="pdflatex";
unitsize(1pt);

import fontsize;defaultpen(fontsize(7));
texpreamble("\usepackage{lmodern}");

string stop="set theory";
string[] sleft={ 
  "general topology", "partial orderings", "Boolean algebras", "measures and integrals",
  "integral equations", "differential equations", "complex analysis", "summation methods",
  "model theory", "numerical methods", "approximation", "splines and wavelets",
  "analytic complexity", "Coding theory", "mathematical finance", "learning theory",
};

string sbot="probability theory";

string[] sright={
  "linear algebra", "multilinear algebra", "categories", "combinatorics", 
  "integral transforms", "orthogonal series", "harmonic analysis", "K-theory",
  "global analysis", "convex geometry", "optimization", "game theory",
  "control theory", "calculus of variations", "ergodic theory", "quantum physics",
};

string s0="topological linear spaces";

string s1="Banach spaces";
string s2="linear operators";
string s3="Banach lattices";
string s4="Banach algebras";
int n=sleft.length;

real dh=8;
real r=n*dh/2;
real R=1.1*r;
pair O=0,p;
for(int i=1;i<n;++i){
  p=R*(sqrt(1-(1-dh/r*i)^2),1-dh/r*i);
  label(sright[i-1],p,plain.E);
  label(sleft[i-1],(-p.x,p.y),plain.W);
}
draw(circle(O,r),deepblue+0.6);
label(stop,(0,R));
label(sbot,(0,-R));

label(s0,(0,0.4r));
label("\textsc{"+s1+"}",O,plain.N);
label("\textsc{"+s2+"}",O,plain.S);
label(s3,(0,-0.4r));

enter image description here

3
  • What program did you use for implementation? It seems to me that it is not Latex because I tried to enter this code in latex and it doesn't work. or maybe i did someting wrong because it doesn't show me what you got, thanks in advance. May 29, 2021 at 16:32
  • This is Asymptote. You can use it within LaTeX but it's not built-in.
    – SebGlav
    May 29, 2021 at 17:23
  • @Angelina Maria: As it was stated, it's Asymptote, a (La)TeX companion program, which is part of most TeX distributions like TeXLive or MikTeX, the program is asy (or asy.exe) and it's deeply integrated with LaTeX. It calls LaTeX to typeset the text labels. For example, the line label("\textsc{"+s1+"}",O,plain.N); is processes by pdflatex as \textsc{Banach spaces} into the output pdf file, which can be included as a graphic pdf file into the LaTeX document. Checkout texdoc asymptote.
    – g.kov
    May 29, 2021 at 17:58
2

This is a tikz version. I am positioning the nodes around the circle with the help of \foreach commands (one in each side) using the circumference equation.

\documentclass[border=2mm]{standalone}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
  \draw[thick] (0,0) circle (4 cm);
  \foreach[count=\j]\i in
  {%
    {Misty morning, clouds in the sky},
    {Without warning, the wizard walks by},
    {Casting his shadow, weaving his spell},
    {Funny clothes, tinkling bell},
    {},
    {Never talking},
    {Just keeps walking},
    {spreading his magic},
    {},
    {Evil power disappears},
    {Demons worry when the wizard is near},
    {He turns tears into joy},
    {Everyone's happy when the wizard walks by}
  }
  {%
    \pgfmathsetmacro\y{4-0.5*\j}
    \pgfmathsetmacro\x{sqrt(16-\y*\y)+0.2}
    \node[left] at (-\x,\y) {\i};
  }
  \foreach[count=\j]\i in
  {%
    {Never talking},
    {Just keeps walking},
    {spreading his magic},
    {},
    {Sun is shining, clouds have gone by},
    {All the people give a happy sigh},
    {He has passed by, giving his sign},
    {Left all the people feeling so fine},
    {},
    {Never talking},
    {Just keeps walking},
    {spreading his magic},
  }
  {%
    \pgfmathsetmacro\y{4-0.6*\j}
    \pgfmathsetmacro\x{sqrt(16-\y*\y)+0.2}
    \node[right] at (\x,\y) {\i};
  }
  \node at (0, 1) {\large\bfseries Black Sabbath};
  \node at (0,-1) {\bfseries The Wizard};
  \node[red] at (0, 4) [above] {T. Butler, F. Iommi,};
  \node[red] at (0,-4) [below] {W. Ward, J. Osbourne};
\end{tikzpicture}
\end{document}

enter image description here

2
  • Great use of these amazing lyrics ;)
    – SebGlav
    May 29, 2021 at 20:38
  • You are Genius! Thank you so so much. May 30, 2021 at 20:21

You must log in to answer this question.

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