2

I need to draw a graph in a document built with \documentclass{book}. To do this I'm using the tikz package, but when I run the .tex file the nodes are all one above the other, no matter the distance I set. This is the code I'm using:

\begin{tikzpicture}[node distance={50mm}, thick,  main/.style = {draw, circle}]                                
\node[main] (1) {$1$};
\node[main] (2) [right of=1] {$2$};
\node[main] (3) [right of=2] {$3$};
\node[main] (4) [below of=1] {$4$};
\node[main] (5) [right of=4] {$5$};
\node[main] (6) [right of=5] {$6$};
\end{tikzpicture}

With documentclass{article} the code works fine, but I cannot use that documentclass. Could you help me to understand why the package is not working? Do you know other solutions?

This is the code that I run:

\documentclass[a4paper, 12pt]{book}

\usepackage[italian]{babel} \usepackage[T1]{fontenc} \usepackage[utf8]{inputenc}

\usepackage{indentfirst}

\usepackage{fancyhdr}

\usepackage[dvips]{graphicx}

\usepackage{amssymb} \usepackage{amsmath} \usepackage{latexsym} \usepackage{amsthm} \usepackage{eucal} \usepackage{eufrak}

\usepackage{tikz} \usetikzlibrary{graphs,graphs.standard,quotes,arrows.meta}

\title{My Title} \author{Me} \date{}

\begin{document}

\maketitle

\input{doc1.tex} \input{doc2.tex}

\end{document}

doc2.tex is the .tex file that contains the details of the graph I want to build.

black
  • 23
  • Welcome to TSE. Please post a Minimal Working Example, instead of a code snippet. – José Carlos Santos Aug 28 '21 at 11:26
  • 1
    I can't reproduce this, putting your code in between \begin{document} and \end{document} and using \documentclass{book}\usepackage{tikz} as the preamble everything works as expected. – Skillmon Aug 28 '21 at 11:54
  • I updated the question adding the code that I run. I've also tried to put the code in the same .tex file that I run, but it still doesn't work. – black Aug 28 '21 at 12:51

1 Answers1

6

This doesn't have anything to do with book vs. article, the problem here is the use of the dvips option for graphicx. Presumably you're not generating the PDF by first making a DVI-file, then using dvips to make a PostScript-file, and then ps2pdf to make a PDF.

In general, I think it's best to not specify the driver (such as dvips) for graphicx

TikZ actually loads graphicx for you, so just removing the line \usepackage[dvips]{graphicx} will do. Test the example below with and without the commented line to see.

Unrelated: Note that the right of= syntax is considered deprecated, see e.g. Difference between "right of=" and "right=of" in PGF/TikZ

\documentclass{article}
%\usepackage[dvips]{graphicx}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}[node distance={50mm}, thick,  main/.style = {draw, circle}]                                
\node[main] (1) {$1$};
\node[main] (2) [right of=1] {$2$};
\node[main] (3) [right of=2] {$3$};
\node[main] (4) [below of=1] {$4$};
\node[main] (5) [right of=4] {$5$};
\node[main] (6) [right of=5] {$6$};
\end{tikzpicture}
\end{document}
Torbjørn T.
  • 206,688