# Can I make formulae thicker?

I've just created an SVG version with TikZ and Inkscape from an old PNG version of an image on wikipedia. This is how they look like:

You might notice, that the text of the left image is much easier to read. One reason is the color, but the othr is defitely the font.

How can I make the text easier to read?

I thick making the text (all formulae) bold would be a good start. If this isn't enough, it might be necessary to change from the italic font to a normal one.

The current source is on github. Here is the source that was used for the image above:

\documentclass[varwidth=true, border=2pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes, calc, shapes, arrows}
\usepackage{amsmath,amssymb}

\usepackage{xcolor}
\definecolor{xvectorcolor}{HTML}{77933C}

\begin{document}
\begin{tikzpicture}[]
% Punkte
\coordinate (A) at (0,0) {};
\coordinate (B) at (5,0) {};
\coordinate (C) at (2,2) {};

% Draw the triangle
\path[fill=blue!10, fill=blue!10]  (A) -- (B) -- (C) -- (A);
\draw[->, ultra thick,fill=gray!10, xvectorcolor, arrows={-latex}]  (A) -- (C) node[sloped,midway,above] {$x$};
\draw[->, ultra thick,fill=gray!10, blue!80, arrows={-latex}]  (C) -- (B) node[sloped,midway,above] {$y$};
\draw[->, ultra thick,fill=gray!10, red!80, arrows={-latex}]  (A) -- (B) node[sloped,midway,above] {$z = x + y$};
\coordinate  (A) -- (B) node[sloped,midway,below] {$\|z\| = \|x+y\| \leq \|x\| + \|y\|$};

\end{tikzpicture}
\end{document}

• You could just add font=\boldmath to the tikzpicture options to make the math bold. – Jake Sep 16 '12 at 17:54
• Thanks, that was a good hint. tex.stackexchange.com/a/24040/5645 were also some good hints, but \mathsf{...} provided the best result so far. – Martin Thoma Sep 16 '12 at 19:14
• Computer modern is a thin font. Maybe you should try times-like font, such as package mathptmx or txfonts. – Siyuan Ren Sep 17 '12 at 3:19

The idea of the following variant is that the long formula at the bottom determines the width of the triangle (line AB).

• It uses \boldmath for the symbols (=, +, …) and a sans serif font for the variables (\mathsf wanted in comment).

• The spacing inside the formulas can be adjusted by \medmuskip and \thickmuskip. The former controls the spacing around binary operators (+), the latter around relational symbols (=).

• The example uses line cap=round to make the overlapping at A a little nicer.

The complete example:

\documentclass[varwidth=true, border=2pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes, calc, shapes, arrows}
\usepackage{amsmath,amssymb}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{tgheros}

\usepackage{xcolor}
\definecolor{xvectorcolor}{HTML}{77933C}

\medmuskip=.75\medmuskip
%\thickmuskip=.75\thickmuskip

\newcommand*{\sy}[1]{\textsf{% \itshape
#1%
}}

\newsavebox\formula
\newdimen\Coff

\begin{document}

\begin{tikzpicture}[
font=\boldmath,
ultra thick,
]
\node[line width=0pt,anchor=north,inner sep=0pt] (eq) {%
\sbox\formula{$\|\sy z\| = \|\sy x+\sy y\| \leq \|\sy x\| + \|\sy y\|$}%
\usebox\formula
\global\Coff=.4\wd\formula
};
\coordinate (A) at ($(eq.north west) + (1.6pt,1ex)$);
\coordinate (B) at ($(eq.north east) + (-1.6pt,1ex)$);
\coordinate (C) at ($(A) + (\Coff,\Coff)$);
\path[fill=blue!10, fill=blue!10]  (A) -- (B) -- (C) -- (A);
\draw[->, fill=gray!10, xvectorcolor, arrows={-latex}]
(A) -- (C) node[sloped,midway,above] {$\sy x$};
\draw[->, fill=gray!10, blue!80, arrows={-latex}]
(C) -- (B) node[sloped,midway,above] {$\sy y$};
\draw[->, fill=gray!10, red!80, arrows={-latex}, line cap=round]
(A) -- (B) node[sloped,midway,above] {$\sy z = \sy x + \sy y$};
\end{tikzpicture}

\end{document}


Jake's suggestion of using font=\boldmath goes a long way towards what you want. But if that is not enough you can increase it further via \scalebox from the graphicx package:

## Code:

\documentclass[varwidth=true, border=2pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{shapes, calc, shapes, arrows}
\usepackage{amsmath,amssymb}

\usepackage{xcolor}
\definecolor{xvectorcolor}{HTML}{77933C}

\usepackage{graphicx}
\newcommand*{\Scale}[2][1.5]{\scalebox{#1}{#2}}%

\begin{document}
\begin{tikzpicture}[font=\boldmath]
% Punkte
\coordinate (A) at (0,0) {};
\coordinate (B) at (5,0) {};
\coordinate (C) at (2,2) {};

% Draw the triangle
\path[fill=blue!10, fill=blue!10]  (A) -- (B) -- (C) -- (A);
\draw[->, ultra thick,fill=gray!10, xvectorcolor, arrows={-latex}]  (A) -- (C) node[sloped,midway,above] {\Scale{$x$}};
\draw[->, ultra thick,fill=gray!10, blue!80, arrows={-latex}]  (C) -- (B) node[sloped,midway,above] {\Scale{$y$}};
\draw[->, ultra thick,fill=gray!10, red!80, arrows={-latex}]  (A) -- (B) node[sloped,midway,above] {\Scale{$z = x + y$}};
\coordinate  (A) -- (B) node[sloped,midway,below] {\Scale{$\|z\| = \|x+y\| \leq \|x\| + \|y\|$}};

\end{tikzpicture}
\end{document}

• I guess before using scalebox, one could first try \large or \Large. Also, instead of wrapping the text in a \scalebox, one could simply say every node/.style={scale=1.5}. – Jake Sep 16 '12 at 18:36
• Scaling text isn't the right solution. Bigger text has to be thinner'' in general. <sarcasm> Then again, most people won't notice this, which may explain why w*rd is still so popular. </sarcasm> – user10274 Sep 16 '12 at 21:03