Как я могу исправить эту ошибку при использовании Tikz для Overleaf? - PullRequest
2 голосов
/ 01 мая 2020

Я пытаюсь сделать диаграмму со стрелками. Я смог создать диаграмму, но без стрелок, используя этот код:

\begin{tikzpicture}

\node (a) at (0,0) {$a$};    
\node (z1) at (3,2) {$z_1$};    
\node (z2) at (3,0) {$z_2$};    
\node (z3) at (3,-2) {$z_3$};


\draw (a) -- (z1);    
\draw (a) -- (z2);    
\draw (a) -- (z3);

\end{tikzpicture}

Но мне нужно, чтобы сегменты были стрелками и добавляли теги к сегментам, но когда я пробую этот код:

\begin{tikzpicture}

\node (a) at (0,0) {$a$};    
\node (z1) at (3,2) {$z_1$};    
\node (z2) at (3,0) {$z_2$};    
\node (z3) at (3,-2) {$z_3$};

\draw [->] (a) -- (z1) {$1/2$};    
\draw [->] (a) -- (z2) {$1/4$};    
\draw [->] (a) -- (z3) {$1/4$};

\end{tikzpicture}

В первой строке \draw я получаю сообщение об ошибке:

Argument of \language?@active@arg> has an extra }. 


Runaway argument? 

Missing \endcsname inserted.

А затем в строке \end{tikzpicture} получаю:

Extra }, or forgotten \endgroup.

Missing } inserted. 

Полная код, который я использую, это:

\documentclass[spanish]{article}
\usepackage[utf8]{inputenc}

\usepackage[spanish]{babel}
\usepackage[utf8]{inputenc}
\usepackage{fancyhdr} % Required for custom headers
\usepackage{lastpage} % Required to determine the last page for the footer
\usepackage{extramarks} % Required for headers and footers
\usepackage[usenames,dvipsnames]{color} % Required for custom colors
\usepackage{graphicx} % Required to insert images
\usepackage{listings} % Required for insertion of code
\usepackage{courier} % Required for the courier font
\usepackage{lipsum} % Used for inserting dummy 'Lorem ipsum' text into the template
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{natbib}
\usepackage{graphicx}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{tikz}

\begin{document}

\begin{tikzpicture}

\node (a) at (0,0) {$a$};    
\node (z1) at (3,2) {$z_1$};    
\node (z2) at (3,0) {$z_2$};    
\node (z3) at (3,-2) {$z_3$};

\draw [->] (a) -- (z1)  node[midway,above] {$1/2$};    
\draw [->] (a) -- (z2)  node[midway,above] {$1/4$};    
\draw [->] (a) -- (z3)  node[midway,above] {$1/4$};

\end{tikzpicture}

\end{document}

Ответы [ 2 ]

1 голос
/ 04 мая 2020

Существует несколько проблем:

  • команда \draw не принимает метку, подобную команде \node. Если вы хотите добавить текст к стрелке, есть несколько возможностей, например \draw [->] (a) -- (z1) node[midway,above] {$1/2$};

  • , тогда вы также загружаете пакет spani sh babel. Это вводит пару сокращений для написания символов испанского sh, которые мешают работе tikz. Выключите эти сокращения или загрузите библиотеку tikz babel

  • , пожалуйста, не загружайте пакеты более одного раза

  • . nicefrac пакет для получения более хороших фракций


\documentclass[spanish]{article}
\usepackage[utf8]{inputenc}

\usepackage[spanish]{babel}
%\usepackage[utf8]{inputenc}
\usepackage{fancyhdr} % Required for custom headers
\usepackage{lastpage} % Required to determine the last page for the footer
\usepackage{extramarks} % Required for headers and footers
\usepackage[usenames,dvipsnames]{color} % Required for custom colors
\usepackage{graphicx} % Required to insert images
\usepackage{listings} % Required for insertion of code
\usepackage{courier} % Required for the courier font
\usepackage{lipsum} % Used for inserting dummy 'Lorem ipsum' text into the template
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{natbib}
%\usepackage{graphicx}
%\usepackage{amsmath}
%\usepackage{amssymb}
\usepackage{tikz}

\usetikzlibrary{babel}

\begin{document}

\begin{tikzpicture}

\node (a) at (0,0) {$a$};    
\node (z1) at (3,2) {$z_1$};    
\node (z2) at (3,0) {$z_2$};    
\node (z3) at (3,-2) {$z_3$};

\draw [->] (a) -- (z1)  node[midway,above] {$1/2$};    
\draw [->] (a) -- (z2)  node[midway,above] {$1/4$};    
\draw [->] (a) -- (z3)  node[midway,above] {$1/4$};

\end{tikzpicture}

\end{document}

enter image description here

0 голосов
/ 03 мая 2020

Попробуйте edge команда между узлами

\begin{tikzpicture}

\node (a) at (0,0) {$a$};
\node (z1) at (3,2) {$z_1$};
\node (z2) at (3,0) {$z_2$};
\node (z3) at (3,-2) {$z_3$};

\draw [->] (a) edge (z1) (a) edge (z2) (a) edge (z3);

\end{tikzpicture}
...