133

I want to embed an image within a tikzpicture environment. I tried the following,

\begin{tikzpicture}[]
  \pgftext{\includegraphics[width=150pt]{pic1.png}} at (0pt,0pt);
  \pgftext{\includegraphics[width=150pt]{pic2.png}} at (100pt,0);
\end{tikzpicture}

but both pictures are placed at upper-left corner of image, at the same position. I tried including them inside nodes as well, to no avail.

What am I doing wrong?

6

1 Answer 1

175

The prefered way to embed external pictures in a tikzpicture environment is to insert an \includegraphics{...} inside a \node. See the code below for an example.

enter image description here

\documentclass{article}

\usepackage{graphicx}
\usepackage{tikz}

\begin{document}
\begin{tikzpicture}
\node[inner sep=0pt] (russell) at (0,0)
    {\includegraphics[width=.25\textwidth]{bertrand_russell.jpg}};
\node[inner sep=0pt] (whitehead) at (5,-6)
    {\includegraphics[width=.25\textwidth]{alfred_north_whitehead.jpg}};
\draw[<->,thick] (russell.south east) -- (whitehead.north west)
    node[midway,fill=white] {Principia Mathematica};
\end{tikzpicture}
\end{document}

Links to the original pictures:

5
  • 2
    What's the use of the inner sep=0pt option?
    – nemarona
    Feb 7, 2015 at 15:13
  • 5
    @nemarona Try to use inner sep=10pt (for example) and recompile. inner sep=0pt tells TikZ to make the node's bounding box as tight as possible around the image.
    – jub0bs
    Feb 7, 2015 at 15:38
  • 11
    How do the image widths compare to the tikz coordinates? Feb 17, 2016 at 16:25
  • There is some form to use mid north west o mid south east?. Thanks
    – LuisPac
    Feb 22, 2018 at 13:51
  • Re. @ThomasAhle it's the normal one, see context - Setting unit length in TikZ? - TeX - LaTeX Stack Exchange (default is 1 unit = 1cm)
    – user202729
    Apr 21 at 5:01

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.