带有 tikz 包的箭头

带有 tikz 包的箭头

我使用 tikz,并尝试使用

\begin{tikzpicture}                                                                  
\node[draw, circle] (1) {1};                                                         
\node[draw, circle] (2) [ right of=1] {2};                                           
                                                                                     
\path (1) edge (2);                                                                  
\end{tikzpicture}  

并得到

党卫军

我如何才能得到这个?(带箭头)

SS1

编辑

我尝试

\path[->] (1) edge (2);

但我明白

! Argument of \language@active@arg> has an extra }.
<inserted text> 
                \par 
l.403     \path[->] (
                     1) edge (2);

答案1

spanishbabel 的选项声明<>激活字符以编写类似的东西<<Hello>>并获得法语引号。此行为与TiKZ箭头形式冲突[->]。停用的方法<>\usepackage[spanish,es-noquoting]{babel},因此

\documentclass{article}
\usepackage{tikz}
\usepackage[spanish,es-noquoting]{babel}
\begin{document} 
\begin{tikzpicture}                                                                  
\node[draw, circle] (1) {1};                                                         
\node[draw, circle] (2) [ right of=1] {2};                                           

\path[->] (1) edge (2);                                                                  
\end{tikzpicture}
\end{document}

工作正常。我已经成立这个解决方案塞万提斯(西班牙语 TUG)论坛:

更新TiKZ 3.0

TiKZ 3.0包含一个新babel库(pgfmanual 第 42 节),可避免此类问题。使用它,不再需要使用es-noquoting选项。您甚至可以spanish在节点内使用引号。

\documentclass{article}
\usepackage[spanish]{babel}
\usepackage{tikz}
\usetikzlibrary{babel,positioning}

\begin{document}

\begin{tikzpicture}                                                                  
\node[draw, circle] (1) {<<1>>};                                                         
\node[draw, circle] (2) [ right = of 1] {<<2>>};                                           

\path[->] (1) edge (2);                                                                  
\end{tikzpicture}

<<Hola>>
\end{document}

在此处输入图片描述

答案2

当我在谷歌上搜索您添加的错误消息时,我发现了 Till Tantau 的这封旧邮件,也许它会有所帮助:tex.pgf.用户列表

<在某些语言中,TeX 中将和作为本位字符使用似乎存在问题>。解决方案据说是(引用 Till)

[...]\shorthandsoff在 tikzpicture 中使用(或类似的东西)。

答案3

对 {babel} 语言选项可能造成的干扰进行跟进。

我遇到过这个问题,有几个标点符号,在法语中,它们后面需要一个空格,并且在选项中进行了编码frenchbabel执行此操作:

  : ; ? !

但是,冒号 (:) 也用于arydshln.sty。为了解决这个问题,我确实使用了 Till Tantau 的解决方案:

\shorthandoff{:}

我还将其扩展到法语中的分号、问号和感叹号。不需要尾随空格的期刊:

\shorthandoff{;} \shorthandoff{?} \shorthandoff{!}

目前,我正在学习将 tikz 代码合并到 CJL 宏(Cdn. Jrnl. of Ling.)中,并且发现我可以通过添加这个来绕过 > 的共享使用

\shorthandoff{>}

不是在tikzpicture环境内部,而是就在之前——但仍然在外部figure环境内部。

答案4

晚上好,如果需要的话,我正在使用这种方法,它不会影响 TikZ 环境之外的活动字符。我会在西班牙语的文档正文中添加此命令。

\tikzset{every picture/.append style={execute at begin picture={\catcode`\>=12\catcode`\<=12}}}

我通常不使用\shorthandoff命令,因为不清楚babel包是否已加载。如果我需要活动角色,例如在 TikZ 节点内,我会使用:

\node{\catcode`\<=13\catcode`\>=13 <<Hello>>};

以下是一个例子:

\documentclass{article}
\usepackage{tikz}
\usepackage[spanish]{babel}
\pagestyle{empty}
\begin{document}
\tikzset{every picture/.append style={execute at begin picture={\catcode`\>=12\catcode`\<=12}}}
\begin{tikzpicture}                                                 
\node[draw,circle] (1) {1};
\node[draw,circle] (2) [right of=1] {2};
\node[draw,circle,xshift=1cm,inner sep=0pt](3)[right of=2]{\catcode`\<=13\catcode`\>=13 <<Hello>>};
\path[<->] (1) edge (2);
\path[>-<] (2) edge (3);
\end{tikzpicture}\par
<<Hello, World!>>
\end{document}

一个小例子来测试上述方法

相关内容