我使用 tikz,并尝试使用
\begin{tikzpicture}
\node[draw, circle] (1) {1};
\node[draw, circle] (2) [ right of=1] {2};
\path (1) edge (2);
\end{tikzpicture}
并得到
我如何才能得到这个?(带箭头)
编辑
我尝试
\path[->] (1) edge (2);
但我明白
! Argument of \language@active@arg> has an extra }.
<inserted text>
\par
l.403 \path[->] (
1) edge (2);
答案1
spanish
babel 的选项声明<
并>
激活字符以编写类似的东西<<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} 语言选项可能造成的干扰进行跟进。
我遇到过这个问题,有几个标点符号,在法语中,它们后面需要一个空格,并且在选项中进行了编码french
以babel
执行此操作:
: ; ? !
但是,冒号 (:) 也用于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}