108

Taking from the PGF manual,

\begin{tikzpicture}
  \draw [help lines] (0,0) grid (3,3);
  \coordinate (a) at (rnd,rnd);
  \coordinate (b) at (3-rnd,3-rnd);
  \draw (a) -- (b);
  \node (c) at (1,2) {x};
  \draw let \p1 = ($ (a)!(c)!(b) - (c) $),
            \n1 = {veclen(\x1,\y1)}
        in circle [at=(c), radius=\n1];
\end{tikzpicture}

I'd like to increase the size of x. The problem is that I have multiple circles in the same diagram. Some of them require a larger sized font, while others are okay at default. How do I do this?

  • 7
    how about \node[scale=3] at (1,2) {x} (choose the number appropriately) – cmhughes Apr 5 '13 at 17:38
  • @cmhughes: why not post an answere? ;) – Peater de Xel Apr 5 '13 at 19:03
165

You can change the font size inside a tikZ node like you do it in normal LaTeX – use one of these:

\tiny
\scriptsize
\footnotesize
\small
\normalsize
\large
\Large
\LARGE
\huge
\Huge

e.g.

\node (c) at (1,2) {\large x};

or

\node (c) at (1,2) {\large $x$}; %note the \large *outside* the inline math

Edit: To change font size inside math mode, LaTeX provides the following commands:

\displaystyle
\textstyle
\scriptstyle
\scriptscriptstyle

Using scaling algorithms provided by tikZ/pgf (e.g. scale=...) scales "the entire character", so it may look ugly if you use too much scaling. If you set the font sizes with the above commands, LaTeX selects different symbols for the different font sizes. This ensures the fonts are readable and have enough "details". If you want a more extreme scaling, use the scale=3.0 option for the node.

| improve this answer | |
  • 5
    Maybe worth pointing out the font key which could be of help in this case :) – Claudio Fiandrino Apr 5 '13 at 17:56
  • 1
    @ralfix sorry i didn't mention it. it's too early in the morning for me. bah! – TheRealFakeNews Apr 5 '13 at 18:02
  • 1
    @ClaudioFiandrino: Do you mean the scale option? – Peater de Xel Apr 5 '13 at 18:11
  • 24
    @Qrrbrbirlbel: you're right... what I wanted to say was that \node (c) at (1,2) {\large x}; is equivalent to \node[font=\large] (c) at (1,2) {x}; – Claudio Fiandrino Apr 5 '13 at 19:15
  • 3
    @ClaudioFiandrino: with the notable exception that {\large x\\y} produces a large x and a normal y, while \node[font=\large,align=center] {x\\y} makes everything large. – Michaël Dec 7 '16 at 14:15
47

Set a new style so that you can use it later.

For example:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{relsize}

\tikzset{fontscale/.style = {font=\relsize{#1}}
    }

\begin{document}
\begin{tikzpicture}
  \draw [help lines] (0,0) grid (3,3);
  \coordinate (a) at (rnd,rnd);
  \coordinate (b) at (3-rnd,3-rnd);
  \draw (a) -- (b);
  \node (c) at (1,2) [fontscale=4] {x};
  \draw let \p1 = ($ (a)!(c)!(b) - (c) $),
            \n1 = {veclen(\x1,\y1)}
        in circle [at=(c), radius=\n1];
\end{tikzpicture}
\end{document}
| improve this answer | |
8

At the top, write

\begin{tikzpicture}[thick,scale=1, every node/.style={scale=1.3}]
\draw [help lines] (0,0) grid (3,3);
\coordinate (a) at (rnd,rnd);
\coordinate (b) at (3-rnd,3-rnd);
\draw (a) -- (b);
\node (c) at (1,2) {x};
\draw let \p1 = ($ (a)!(c)!(b) - (c) $),
        \n1 = {veclen(\x1,\y1)}
    in circle [at=(c), radius=\n1];
\end{tikzpicture}

the thick changes your arrows, the first scale changes the scale of your drawing, but the second argument changes the size of your nodes, presumably where you have your text. This will change for all nodes.

| improve this answer | |
  • This wont work for this example actually. It will change the font size for all labels however. – Demetrios Papakostas Mar 13 '19 at 19:56

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.