Take the 2-minute tour ×
TeX - LaTeX Stack Exchange is a question and answer site for users of TeX, LaTeX, ConTeXt, and related typesetting systems. It's 100% free, no registration required.

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:

images compared

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}
share|improve this question
1  
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. –  moose 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. –  C.R. Sep 17 '12 at 3:19
add comment

2 Answers

up vote 0 down vote accepted

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}

Result

share|improve this answer
add comment

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:

enter image description here

References:

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}
share|improve this answer
1  
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> –  Marc van Dongen Sep 16 '12 at 21:03
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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