Graphics, Figures & TablesA figure with arrows

Information and discussion about graphics, figures & tables in LaTeX documents.
Post Reply
Lanchester
Posts: 7
Joined: Thu Feb 01, 2018 10:29 pm

A figure with arrows

Post by Lanchester »

Hey guys,

I think I need to make use of your help another time.

Could you help me building this figure? (Attachment)

Thanks in advance.
Attachments
figure3.jpg
figure3.jpg (31.99 KiB) Viewed 9402 times

Recommended reading 2024:

LaTeXguide.org • LaTeX-Cookbook.net • TikZ.org
TikZ book
mas
Posts: 226
Joined: Thu Dec 04, 2008 4:39 am

A figure with arrows

Post by mas »

You can get that using tikz. If you need some pointers to that, take a look at TeXamples.net.

OS: Debian/GNU Linux; LaTeX System : TeXLive; Editor : Vim
User avatar
Stefan Kottwitz
Site Admin
Posts: 10311
Joined: Mon Mar 10, 2008 9:44 pm

A figure with arrows

Post by Stefan Kottwitz »

Hi,

here's a quick straightforward TikZ way.

Code: Select all

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,positioning,quotes}
\begin{document}
\begin{tikzpicture}[
  base/.style = {circle, draw, inner sep = 1ex, font=\sffamily},
                 align = center]
  \draw [-stealth]
    node [base] (U) {U\\Artillery}
    node [base] (X) [right = 1.8cm of U] {X\\Infantry}
    node [base] (Y) [right = 1.8cm of X] {Y\\Infantry}
    node [base] (V) [right = 1.8cm of Y] {V\\Artillery}
    (U) edge[bend left, "$\alpha(t)$"] (X)
    (X) edge[bend left, "$b(t)$"] (Y)
    (Y) edge[bend left, "$a(t)$"] (X)
    (V) edge[bend left, "$\beta(t)$"] (X.south east)
  ;
\end{tikzpicture}
\end{document}
diagram.png
diagram.png (13.88 KiB) Viewed 9314 times
Stefan
LaTeX.org admin
Lanchester
Posts: 7
Joined: Thu Feb 01, 2018 10:29 pm

A figure with arrows

Post by Lanchester »

the base drawing works pretty good, but when it comes to use the tikzpackage "quotes", the whole thing collapses.

Overleaf is fine with it.

Code: Select all

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc,positioning,quotes}
\begin{document}
\begin{figure}[!ht]
  		%\label{img: ...}		
  		\begin{center}
  			\begin{tikzpicture}[
  								base/.style = {circle, draw, inner sep = 1ex, font=\sffamily},
  								align = center]
  			\draw [-stealth]
  			node [base] (U) {U\\Artillery}
  			node [base] (X) [right = 1.8cm of U] {X\\Infantry}
  			node [base] (Y) [right = 1.8cm of X] {Y\\Infantry}
  			node [base] (V) [right = 1.8cm of Y] {V\\Artillery}
  			(U) edge[bend left, "$\alpha(t)$" ] (Y.north west)
  			(X) edge[bend left, "$b(t)$"] (Y)
  			(Y) edge[bend left, "$a(t)$"] (X)
  			(V) edge[bend left, "$\beta(t)$"] (X.south east)
  			;
  			\end{tikzpicture}
  			\caption{...}
  		\end{center}
  	\end{figure}
\end{document}
Here is the error code and I've attached a screen

("D:\Program Files (x86)\MiKTeX 2.9\tex\generic\pgf\frontendlayer\tikz\librarie
s\tikzlibraryquotes.code.tex"
File: tikzlibraryquotes.code.tex 2014/03/21 v3.0.1a (rcs-revision 1.4)
)
! Missing \endcsname inserted.
<to be read again>
\errhelp
l.589 node [base]
(U) {U\\Artillery}
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! german: The command "\endcsname is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.589 node [base]
(U) {U\\Artillery}
This error message was generated by an \errmessage
command, so I can't give any explicit help.
Pretend that you're Hercule Poirot: Examine all clues,
and deduce the truth by order and method.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! Extra \endcsname.
<argument> \endcsname

l.589 node [base]
(U) {U\\Artillery}
I'm ignoring this, since I wasn't doing a \csname.

! Argument of \tikz@quote@parser has an extra }.
<inserted text>
\par
l.589 node [base]
(U) {U\\Artillery}
I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

Runaway argument?
! Paragraph ended before \tikz@quote@parser was complete.
<to be read again>
\par
l.589 node [base]
(U) {U\\Artillery}
I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.590 node [base]
(X) [right = 1.8cm of U] {X\\Infantry}
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! german: The command "\endcsname is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.590 node [base]
(X) [right = 1.8cm of U] {X\\Infantry}
(That was another \errmessage.)

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! Extra \endcsname.
<argument> \endcsname

l.590 node [base]
(X) [right = 1.8cm of U] {X\\Infantry}
I'm ignoring this, since I wasn't doing a \csname.

! Argument of \tikz@quote@parser has an extra }.
<inserted text>
\par
l.590 node [base]
(X) [right = 1.8cm of U] {X\\Infantry}
I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

Runaway argument?
! Paragraph ended before \tikz@quote@parser was complete.
<to be read again>
\par
l.590 node [base]
(X) [right = 1.8cm of U] {X\\Infantry}
I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.590 node [base] (X) [right = 1.8cm of U]
{X\\Infantry}
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! german: The command "\endcsname is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.590 node [base] (X) [right = 1.8cm of U]
{X\\Infantry}
(That was another \errmessage.)

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! Extra \endcsname.
<argument> \endcsname

l.590 node [base] (X) [right = 1.8cm of U]
{X\\Infantry}
I'm ignoring this, since I wasn't doing a \csname.

! Argument of \tikz@quote@parser has an extra }.
<inserted text>
\par
l.590 node [base] (X) [right = 1.8cm of U]
{X\\Infantry}
I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

Runaway argument?
! Paragraph ended before \tikz@quote@parser was complete.
<to be read again>
\par
l.590 node [base] (X) [right = 1.8cm of U]
{X\\Infantry}
I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.591 node [base]
(Y) [right = 1.8cm of X] {Y\\Infantry}
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! german: The command "\endcsname is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.591 node [base]
(Y) [right = 1.8cm of X] {Y\\Infantry}
(That was another \errmessage.)

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! Extra \endcsname.
<argument> \endcsname

l.591 node [base]
(Y) [right = 1.8cm of X] {Y\\Infantry}
I'm ignoring this, since I wasn't doing a \csname.

! Argument of \tikz@quote@parser has an extra }.
<inserted text>
\par
l.591 node [base]
(Y) [right = 1.8cm of X] {Y\\Infantry}
I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

Runaway argument?
! Paragraph ended before \tikz@quote@parser was complete.
<to be read again>
\par
l.591 node [base]
(Y) [right = 1.8cm of X] {Y\\Infantry}
I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.591 node [base] (Y) [right = 1.8cm of X]
{Y\\Infantry}
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! german: The command "\endcsname is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.591 node [base] (Y) [right = 1.8cm of X]
{Y\\Infantry}
(That was another \errmessage.)

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! Extra \endcsname.
<argument> \endcsname

l.591 node [base] (Y) [right = 1.8cm of X]
{Y\\Infantry}
I'm ignoring this, since I wasn't doing a \csname.

! Argument of \tikz@quote@parser has an extra }.
<inserted text>
\par
l.591 node [base] (Y) [right = 1.8cm of X]
{Y\\Infantry}
I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

Runaway argument?
! Paragraph ended before \tikz@quote@parser was complete.
<to be read again>
\par
l.591 node [base] (Y) [right = 1.8cm of X]
{Y\\Infantry}
I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.592 node [base]
(V) [right = 1.8cm of Y] {V\\Artillery}
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! german: The command "\endcsname is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.592 node [base]
(V) [right = 1.8cm of Y] {V\\Artillery}
(That was another \errmessage.)

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! Extra \endcsname.
<argument> \endcsname

l.592 node [base]
(V) [right = 1.8cm of Y] {V\\Artillery}
I'm ignoring this, since I wasn't doing a \csname.

! Argument of \tikz@quote@parser has an extra }.
<inserted text>
\par
l.592 node [base]
(V) [right = 1.8cm of Y] {V\\Artillery}
I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

Runaway argument?
! Paragraph ended before \tikz@quote@parser was complete.
<to be read again>
\par
l.592 node [base]
(V) [right = 1.8cm of Y] {V\\Artillery}
I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.592 node [base] (V) [right = 1.8cm of Y]
{V\\Artillery}
The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! german: The command "\endcsname is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.592 node [base] (V) [right = 1.8cm of Y]
{V\\Artillery}
(That was another \errmessage.)

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! Extra \endcsname.
<argument> \endcsname

l.592 node [base] (V) [right = 1.8cm of Y]
{V\\Artillery}
I'm ignoring this, since I wasn't doing a \csname.

! Argument of \tikz@quote@parser has an extra }.
<inserted text>
\par
l.592 node [base] (V) [right = 1.8cm of Y]
{V\\Artillery}
I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

Runaway argument?
! Paragraph ended before \tikz@quote@parser was complete.
<to be read again>
\par
l.592 node [base] (V) [right = 1.8cm of Y]
{V\\Artillery}
I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! german: The command "\endcsname is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

(That was another \errmessage.)

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! Extra \endcsname.
<argument> \endcsname

l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

I'm ignoring this, since I wasn't doing a \csname.

! Argument of \tikz@quote@parser has an extra }.
<inserted text>
\par
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

Runaway argument?
! Paragraph ended before \tikz@quote@parser was complete.
<to be read again>
\par
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Argument of " has an extra }.
<inserted text>
\par
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

Runaway argument?
! Paragraph ended before " was complete.
<to be read again>
\par
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Missing \endcsname inserted.
<to be read again>
\errhelp
l.593 ...bend left, "$\alpha(t)$" ] (Y.north west)

The control sequence marked <to be read again> should
not appear between \csname and \endcsname.

! Extra }, or forgotten \endgroup.
<argument> ...fscope \endpgfinterruptpath \egroup
\egroup \egroup \global \s...
l.597 ;

I've deleted a group-closing symbol because it seems to be
spurious, as in `$x}$'. But perhaps the } is legitimate and
you forgot something else, as in `\hbox{$x}'. In such cases
the way to recover is to insert both the forgotten and the
deleted material, e.g., by typing `I$}'.

! Extra }, or forgotten \endgroup.
<argument> ...endpgfinterruptpath \egroup \egroup
\egroup \global \setbox \t...
l.597 ;

I've deleted a group-closing symbol because it seems to be
spurious, as in `$x}$'. But perhaps the } is legitimate and
you forgot something else, as in `\hbox{$x}'. In such cases
the way to recover is to insert both the forgotten and the
deleted material, e.g., by typing `I$}'.

! Extra }, or forgotten \endgroup.
<argument> ...terruptpath \egroup \egroup \egroup
\global \setbox \tikz@temp...
l.597 ;

I've deleted a group-closing symbol because it seems to be
spurious, as in `$x}$'. But perhaps the } is legitimate and
you forgot something else, as in `\hbox{$x}'. In such cases
the way to recover is to insert both the forgotten and the
deleted material, e.g., by typing `I$}'.

! Extra \else.
<argument> ...@whichbox =\box \tikz@tempbox \else
\expandafter \expandafter ...
l.597 ;

I'm ignoring this; it doesn't match any \if.

Missing character: There is no b in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no n in font nullfont!
Missing character: There is no d in font nullfont!
Missing character: There is no l in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no f in font nullfont!
Missing character: There is no t in font nullfont!
Missing character: There is no , in font nullfont!
! german: The command "$ is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.597 ;

Use `` for a simple double quote character.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! Argument of " has an extra }.
<inserted text>
\par
l.597 ;

I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

Runaway argument?
! Paragraph ended before " was complete.
<to be read again>
\par
l.597 ;

I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Missing } inserted.
<inserted text>
}
l.597 ;

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Missing } inserted.
<inserted text>
}
l.597 ;

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Missing } inserted.
<inserted text>
}
l.597 ;

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Argument of \tikz@@to@or@edge has an extra }.
<inserted text>
\par
l.597 ;

I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

Runaway argument?
bend left
! Paragraph ended before \tikz@@to@or@edge was complete.
<to be read again>
\par
l.597 ;

I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Extra }, or forgotten \endgroup.
<recently read> }

l.597 ;

I've deleted a group-closing symbol because it seems to be
spurious, as in `$x}$'. But perhaps the } is legitimate and
you forgot something else, as in `\hbox{$x}'. In such cases
the way to recover is to insert both the forgotten and the
deleted material, e.g., by typing `I$}'.

! german: The command "$ is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.597 ;

Use `` for a simple double quote character.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! german: The command "] is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.597 ;

Use `` for a simple double quote character.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
Missing character: There is no ] in font nullfont!
Missing character: There is no ( in font nullfont!
Missing character: There is no Y in font nullfont!
Missing character: There is no ) in font nullfont!
Missing character: There is no ( in font nullfont!
Missing character: There is no Y in font nullfont!
Missing character: There is no ) in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no d in font nullfont!
Missing character: There is no g in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no [ in font nullfont!
Missing character: There is no b in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no n in font nullfont!
Missing character: There is no d in font nullfont!
Missing character: There is no l in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no f in font nullfont!
Missing character: There is no t in font nullfont!
Missing character: There is no , in font nullfont!
! german: The command "$ is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.597 ;

Use `` for a simple double quote character.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! german: The command "] is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.597 ;

Use `` for a simple double quote character.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
Missing character: There is no ] in font nullfont!
Missing character: There is no ( in font nullfont!
Missing character: There is no X in font nullfont!
Missing character: There is no ) in font nullfont!
Missing character: There is no ( in font nullfont!
Missing character: There is no V in font nullfont!
Missing character: There is no ) in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no d in font nullfont!
Missing character: There is no g in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no [ in font nullfont!
Missing character: There is no b in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no n in font nullfont!
Missing character: There is no d in font nullfont!
Missing character: There is no l in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no f in font nullfont!
Missing character: There is no t in font nullfont!
Missing character: There is no , in font nullfont!
! german: The command "$ is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.597 ;

Use `` for a simple double quote character.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! german: The command "] is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.597 ;

Use `` for a simple double quote character.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
Missing character: There is no ] in font nullfont!
Missing character: There is no ( in font nullfont!
Missing character: There is no X in font nullfont!
Missing character: There is no . in font nullfont!
Missing character: There is no s in font nullfont!
Missing character: There is no o in font nullfont!
Missing character: There is no u in font nullfont!
Missing character: There is no t in font nullfont!
Missing character: There is no h in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no a in font nullfont!
Missing character: There is no s in font nullfont!
Missing character: There is no t in font nullfont!
Missing character: There is no ) in font nullfont!
! Extra }, or forgotten \endgroup.
\XC@append #1#2->\ifx #1\@undefined \def #1{#2}
\else \ifx #1\relax \def #1{#...
l.597 ;

I've deleted a group-closing symbol because it seems to be
spurious, as in `$x}$'. But perhaps the } is legitimate and
you forgot something else, as in `\hbox{$x}'. In such cases
the way to recover is to insert both the forgotten and the
deleted material, e.g., by typing `I$}'.

! Argument of \tikz@@to@or@edge has an extra }.
<inserted text>
\par
l.597 ;

I've run across a `}' that doesn't seem to match anything.
For example, `\def\a#1{...}' and `\a}' would produce
this error. If you simply proceed now, the `\par' that
I've just inserted will cause me to report a runaway
argument that might be the root of the problem. But if
your `}' was spurious, just type `2' and it will go away.

Runaway argument?
bend left
! Paragraph ended before \tikz@@to@or@edge was complete.
<to be read again>
\par
l.597 ;

I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Extra }, or forgotten \endgroup.
<recently read> }

l.597 ;

I've deleted a group-closing symbol because it seems to be
spurious, as in `$x}$'. But perhaps the } is legitimate and
you forgot something else, as in `\hbox{$x}'. In such cases
the way to recover is to insert both the forgotten and the
deleted material, e.g., by typing `I$}'.

! german: The command "$ is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.597 ;

Use `` for a simple double quote character.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! german: The command "] is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.597 ;

Use `` for a simple double quote character.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
Missing character: There is no ] in font nullfont!
Missing character: There is no ( in font nullfont!
Missing character: There is no Y in font nullfont!
Missing character: There is no ) in font nullfont!
Missing character: There is no ( in font nullfont!
Missing character: There is no Y in font nullfont!
Missing character: There is no ) in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no d in font nullfont!
Missing character: There is no g in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no [ in font nullfont!
Missing character: There is no b in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no n in font nullfont!
Missing character: There is no d in font nullfont!
Missing character: There is no l in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no f in font nullfont!
Missing character: There is no t in font nullfont!
Missing character: There is no , in font nullfont!
! german: The command "$ is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.597 ;

Use `` for a simple double quote character.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! german: The command "] is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.597 ;

Use `` for a simple double quote character.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
Missing character: There is no ] in font nullfont!
Missing character: There is no ( in font nullfont!
Missing character: There is no X in font nullfont!
Missing character: There is no ) in font nullfont!
Missing character: There is no ( in font nullfont!
Missing character: There is no V in font nullfont!
Missing character: There is no ) in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no d in font nullfont!
Missing character: There is no g in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no [ in font nullfont!
Missing character: There is no b in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no n in font nullfont!
Missing character: There is no d in font nullfont!
Missing character: There is no l in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no f in font nullfont!
Missing character: There is no t in font nullfont!
Missing character: There is no , in font nullfont!
! german: The command "$ is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.597 ;

Use `` for a simple double quote character.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
! german: The command "] is undefined.
\grmn@dq@error ...and \dq \string #1 is undefined}

l.597 ;

Use `` for a simple double quote character.

Missing character: There is no ` in font nullfont!
Missing character: There is no ` in font nullfont!
Missing character: There is no ] in font nullfont!
Missing character: There is no ( in font nullfont!
Missing character: There is no X in font nullfont!
Missing character: There is no . in font nullfont!
Missing character: There is no s in font nullfont!
Missing character: There is no o in font nullfont!
Missing character: There is no u in font nullfont!
Missing character: There is no t in font nullfont!
Missing character: There is no h in font nullfont!
Missing character: There is no e in font nullfont!
Missing character: There is no a in font nullfont!
Missing character: There is no s in font nullfont!
Missing character: There is no t in font nullfont!
Missing character: There is no ) in font nullfont!
! Extra }, or forgotten \endgroup.
\XC@append ...1{#2}\else \ifx #1\relax \def #1{#2}
\else \toks@ \expandafter ...
l.597 ;

I've deleted a group-closing symbol because it seems to be
spurious, as in `$x}$'. But perhaps the } is legitimate and
you forgot something else, as in `\hbox{$x}'. In such cases
the way to recover is to insert both the forgotten and the
deleted material, e.g., by typing `I$}'.

! Extra \else.
\XC@append ...else \ifx #1\relax \def #1{#2}\else
\toks@ \expandafter {#1#2}...
l.597 ;

I'm ignoring this; it doesn't match any \if.

! Extra \fi.
\XC@append ...ter {#1#2}\edef #1{\the \toks@ }\fi
\fi
l.597 ;

I'm ignoring this; it doesn't match any \if.

! Extra \fi.
\XC@append ...{#1#2}\edef #1{\the \toks@ }\fi \fi

l.597 ;

I'm ignoring this; it doesn't match any \if.

Runaway argument?
\end {tikzpicture} \caption {...} \end {center} \end {figure}
! Paragraph ended before \XC@split@iv was complete.
<to be read again>
\par
l.602

I suspect you've forgotten a `}', causing me to apply this
control sequence to too much text. How can we recover?
My plan is to forget the whole thing and hope for the best.

! Missing \endgroup inserted.
<inserted text>
\endgroup
l.620 \newpage

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Missing \endgroup inserted.
<inserted text>
\endgroup
l.620 \newpage

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Missing \endgroup inserted.
<inserted text>
\endgroup
l.620 \newpage

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Missing \endgroup inserted.
<inserted text>
\endgroup
l.620 \newpage

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Missing \endgroup inserted.
<inserted text>
\endgroup
l.620 \newpage

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Missing \endgroup inserted.
<inserted text>
\endgroup
l.620 \newpage

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Missing } inserted.
<inserted text>
}
l.620 \newpage

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.


Overfull \hbox (117.2154pt too wide) detected at line 620
[] $\OML/cmm/m/it/12 b\OT1/cmr/m/n/12 (\OML/cmm/m/it/12 t\OT1
/cmr/m/n/12 )$ $\OML/cmm/m/it/12 a\OT1/cmr/m/n/12 (\OML/cmm/m/it/12 t\OT1/c
mr/m/n/12 )$ $\OML/cmm/m/it/12 \OT1/cmr/m/n/12 (\OML/cmm/m/it/12 t\OT1/cmr
/m/n/12 )$ $\OML/cmm/m/it/12 b\OT1/cmr/m/n/12 (\OML/cmm/m/it/12 t\OT1/cmr/m/
n/12 )$ $\OML/cmm/m/it/12 a\OT1/cmr/m/n/12 (\OML/cmm/m/it/12 t\OT1/cmr/m/n/
12 )$ $\OML/cmm/m/it/12 \OT1/cmr/m/n/12 (\OML/cmm/m/it/12 t\OT1/cmr/m/n/12
)$
[]

! Missing \endgroup inserted.
<inserted text>
\endgroup
l.620 \newpage

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Missing \endgroup inserted.
<inserted text>
\endgroup
l.620 \newpage

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Missing \endgroup inserted.
<inserted text>
\endgroup
l.620 \newpage

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

! Missing } inserted.
<inserted text>
}
l.620 \newpage

I've inserted something that you may have forgotten.
(See the <inserted text> above.)
With luck, this will get me unwedged. But if you
really didn't forget anything, try typing `2' now; then
my insertion and my current dilemma will both disappear.

(Lanchester.bbl)

! LaTeX Error: \begin{tikzpicture} on input line 585 ended by \end{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.624 \end{document}

Your command was ignored.
Type I <command> <return> to replace it with another command,
or <return> to continue without it.

Package atveryend Info: Empty hook `BeforeClearDocument' on input line 624.
Package atveryend Info: Empty hook `AfterLastShipout' on input line 624.
(Lanchester.aux)
Package atveryend Info: Executing hook `AtVeryEndDocument' on input line 624.
Package atveryend Info: Executing hook `AtEndAfterFileList' on input line 624.
Package rerunfilecheck Info: File `Lanchester.out' has not changed.
(rerunfilecheck) Checksum: 469F59927881501070CFF6004DA699CB;1917.


LaTeX Warning: There were multiply-defined labels.

Package atveryend Info: Empty hook `AtVeryVeryEnd' on input line 624.
! You can't use `\end' in internal vertical mode.
\enddocument ...es \z@ \Call@AtVeryVeryEnd \@@end

l.624 \end{document}

Sorry, but I'm not programmed to handle this case;
I'll just pretend that you didn't ask for it.
If you're in the wrong mode, you might be able to
return to the right one by typing `I}' or `I$' or `I\par'.


! LaTeX Error: \begin{tikzpicture} on input line 585 ended by \end{document}.

See the LaTeX manual or LaTeX Companion for explanation.
Type H <return> for immediate help.
...

l.624 \end{document}

Your command was ignored.
Type I <command> <return> to replace it with another command,
or <return> to continue without it.

)
! Emergency stop.
<*> Lanchester.tex

*** (job aborted, no legal \end found)
Attachments
error.jpg
error.jpg (72.8 KiB) Viewed 9301 times
User avatar
Stefan Kottwitz
Site Admin
Posts: 10311
Joined: Mon Mar 10, 2008 9:44 pm

A figure with arrows

Post by Stefan Kottwitz »

Here is the code without the quotes library:

Code: Select all

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,positioning,quotes}
\begin{document}
\begin{tikzpicture}[
  base/.style = {circle, draw, inner sep = 1ex, font=\sffamily},
                 align = center]
  \draw [-stealth]
    node [base] (U) {U\\Artillery}
    node [base] (X) [right = 1.8cm of U] {X\\Infantry}
    node [base] (Y) [right = 1.8cm of X] {Y\\Infantry}
    node [base] (V) [right = 1.8cm of Y] {V\\Artillery}
    (U) edge[bend left, label = {$\alpha(t)$}] (X)
    (X) edge[bend left, label = {$b(t)$}] (Y)
    (Y) edge[bend left, label = {$a(t)$}] (X)
    (V) edge[bend left, label = {$\beta(t)$}] (X.south east)
  ;
\end{tikzpicture}
\end{document}
Stefan
LaTeX.org admin
Lanchester
Posts: 7
Joined: Thu Feb 01, 2018 10:29 pm

A figure with arrows

Post by Lanchester »

Now the labels get stacked above the circle on the left, not on the arrows (as planned).

Is there any other way to name the arrows correctly?
User avatar
Stefan Kottwitz
Site Admin
Posts: 10311
Joined: Mon Mar 10, 2008 9:44 pm

A figure with arrows

Post by Stefan Kottwitz »

Then with nodes above or below edges:

Code: Select all

\documentclass[border=10pt]{standalone}
\usepackage{tikz}
\usetikzlibrary{calc,positioning,quotes}
\begin{document}
\begin{tikzpicture}[
  base/.style = {circle, draw, inner sep = 1ex, font=\sffamily},
                 align = center]
  \draw [-stealth]
    node [base] (U) {U\\Artillery}
    node [base] (X) [right = 1.8cm of U] {X\\Infantry}
    node [base] (Y) [right = 1.8cm of X] {Y\\Infantry}
    node [base] (V) [right = 1.8cm of Y] {V\\Artillery}
    (U) edge[bend left] node[above] {$\alpha(t)$} (X)
    (X) edge[bend left] node[above] {$b(t)$} (Y)
    (Y) edge[bend left] node[above] {$a(t)$} (X)
    (V) edge[bend left] node[below] {$\beta(t)$} (X.south east)
  ;
\end{tikzpicture}
\end{document}
Stefan
LaTeX.org admin
Lanchester
Posts: 7
Joined: Thu Feb 01, 2018 10:29 pm

A figure with arrows

Post by Lanchester »

Thank you Stefan, this worked pretty good.

Have a nice day
Post Reply