35

My objective is to figure out how to put text around the circumference of a circle as shown below.

enter image description here

I have read Calligraphic logo in tikz which answer part of my question but not completely as shown in the bottom text. I have the following:

\documentclass[letterpaper]{article}
\usepackage[dvipsnames]{xcolor}
\usepackage{tikz,amsmath,amssymb}
\usetikzlibrary{decorations.text}
\begin{document}
\begin{tikzpicture}
\begin{scope}
\draw[color=gray,fill=MidnightBlue] (0,0) circle (3.5cm);
\draw[color=gray,fill=white] (0,0) circle (2.6cm);
\end{scope}
\draw[color=gray] (0,0) circle (2.5cm) node {\Huge\bf MTG};
\draw[color=gray] (0,0) circle (3.6cm);
\path [postaction={decorate,decoration={raise=-2pt,text along path, 
text=St. John's College}}] (0,0) circle (3.05cm);
\end{tikzpicture}
\end{document}

This yields:

enter image description here

which of course is not what I want.

azetina
  • 28,884

2 Answers2

32

I used libertineotf and XeLaTeX, but you can use, of course, any font.

Just to get you started:

MWE

\PassOptionsToPackage{dvipsnames}{xcolor}
\documentclass[tikz,border=5pt]{standalone}
\usetikzlibrary{decorations.text}
\usepackage{libertineotf}
\begin{document}
\begin{tikzpicture}
\begin{scope}
\draw[color=gray,fill=MidnightBlue] (0,0) circle (3.5cm);
\draw[color=gray,fill=white] (0,0) circle (2.6cm);
\end{scope}
\draw[color=gray] (0,0) circle (2.5cm) node {\Huge\bfseries MTG};
\node at (0,1.2) {\large\bfseries\color{gray} founded};
\node at (0,-1.2) {\large\bfseries\color{gray}\Lonum{2012}};
\draw[color=gray] (0,0) circle (3.6cm);

\path
    [
        postaction={
            decorate,
            decoration={
                raise=-7pt,
                text along path,
                text align/fit to path stretching spaces=true,
                reverse path=true,
                text align/align=center,
                text align/left indent={9.5818575934488693773110623190025cm}, % \pi * radius
                text align/right indent={0.0cm},
                text={| \biolinum\scshape\Large\bfseries |MXII|\biolinum\huge\scshape| – St. John's College – |\biolinum\scshape\bfseries\Large|MXII}
            }
        }
    ]
    [
        postaction={
            decorate,
            decoration={
                raise=-5.5pt,
                text along path,
%               text align/fit to path stretching spaces=true,
%               reverse path=true,
                text align/align=center,
                text align/left indent={9.7818575934488693773110623190025cm}, % \pi * radius + .2cm
                text align/right indent={.2cm},
                text={|\biolinum \bfseries\huge | • made by Qrrbrbirlbel • }
            }
        }
    ]
(0,0) circle (3.05cm);
\end{tikzpicture}
\end{document}

Output

MWE compiled with XeLaTeX


The bun­dle, libertineotf is now ob­so­lete, be­ing re­placed by the lib­er­tine pack­age.

The MWE can be compiled by making the following adjustments:

  1. Replace \usepackage{libertineotf} with \usepackage{libertine}
  2. Replace \Lonum{2012} with \oldstylenums{2012}
azetina
  • 28,884
Qrrbrbirlbel
  • 119,821
  • You're missing an M: it should be MMXII :) – F'x Oct 07 '12 at 07:17
  • 17
    @F'x No Qrrbrbirlbel answered this over 1000 years ago. He was waiting for the question. – Aatch Oct 07 '12 at 08:16
  • 1
    CTAN (http://www.ctan.org/pkg/libertineotf) informs the following with libertineotf: The bun­dle is now ob­so­lete, be­ing re­placed by the lib­er­tine pack­age. – djnavas Jan 12 '15 at 15:37
29

Similar but slower.

\documentclass[tikz]{standalone}
\usetikzlibrary{decorations.text}
\usepackage{fontspec,amssymb}
\setmainfont{OptimusPrinceps}
\definecolor{byublue}{RGB}{0 34 85}
\newfontfamily\bolderfont{OptimusPrincepsSemiBold}


\begin{document}

\begin{tikzpicture}
\begin{scope}
\draw[color=gray,fill=byublue] (0,0) circle (3.5cm);
\draw[color=gray,fill=white] (0,0) circle (2.6cm);
\end{scope}
\draw[color=gray] (0,0) circle (2.5cm) node[scale=1.5] (m) {\Huge\bolderfont MTG};
\draw[color=gray] (0,0) circle (3.6cm);
\path [postaction={decorate,decoration={raise=-1ex,text along path, 
reverse path,text align=center,
text={|\huge\color{white}|Quick Latin Motto Erratum Et Al.}}}] (-30:3.05cm) arc (-30:210:3.05cm);
\node[white,rotate=-60] at (210:3.05cm) {$\blacklozenge$};
\node[white,rotate=60] at (330:3.05cm) {$\blacklozenge$};
\path [postaction={decorate,decoration={raise=-1ex,text along path, text align=center,
text={|\huge\color{white}|St. John's College }}}] (210:3.05cm) arc (210:330:3.05cm);
\end{tikzpicture}

\end{document}

enter image description here

percusse
  • 157,807
  • Can the two horizontal lines be added relative to the abbreviation MTG? – azetina Oct 07 '12 at 04:53
  • 1
    @azetina Yes, that is a node anyway so you can \draw (m.north west) -- (m.north east) or use these coordinates as guides. – percusse Oct 07 '12 at 10:10
  • @percusse can you explain why the | | syntax is necessary to specify the white text color? I've wasted a fair bit of time wondering why \color{white} doesn't work, but rather I need |\color{white}|. – Ingo Aug 22 '14 at 11:58
  • @Ingo Otherwise TikZ thinks that \color{white} is part of the decoration text which is clearly not. So it escapes to the options fixes the color and resumes parsing. – percusse Aug 22 '14 at 12:07
  • Interesting, this is the only occasion in all packages that I have ever used where this was necessary. – Ingo Aug 22 '14 at 15:03
  • 1
    @Ingo This probably the only package which can decorate the paths with text you have used too :) It is not simply pasting letters, it is adjusting every letter to the path so it's not a standard paragraph text. Notice that your text is an argument to text key not a node text hence special care is needed. – percusse Aug 22 '14 at 15:38