我正在嘗試下一個程式碼:
\documentclass[pdftex,spanish]{article}
\usepackage{babel}
\usepackage{tikz}
\begin{document}
Simple arrow:
\begin{tikzpicture}
\draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}
\end{document}
但它不起作用。它拋出錯誤:
! Argument of \language@active@arg> has an extra }.
! Paragraph ended before \language@active@arg> was complete.<to be read again>\par \draw[->]
如果沒有babel包也能正常運作怎麼辦?
答案1
問題在於,用於對西班牙語引文進行特殊管理的品牌和活動字元spanish
模組。babel
>
<
更新:
PGF/TikZ 3.0.0 版本有一個babel
函式庫可以解決某些模組更改類別程式碼所產生的問題babel
,因此載入該函式庫就足夠了:
\documentclass[spanish]{article}
\usepackage{babel}
\usepackage{tikz}
\usetikzlibrary{babel}
\begin{document}
Simple arrows:
\begin{tikzpicture}
\draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}
\tikz\draw[->] (-1.5,0) -- (1.5,0);
\end{document}
(謝謝克勞迪奧·菲安德里諾指出這一點他的評論)。
PGF/TikZ 版本 2.10
若要停用不需要的 s 重新定義tikzpicture
,但保留文件的其他部分,您可以使用
execute at begin picture={\deactivatequoting},
execute at end picture={\activatequoting}
對於每一個tikzpicture
.請注意,這種方法有兩個優點:
不需要額外的包。
使用命令版本時它也會產生所需的結果
\tikz
(請參閱下面的範例程式碼)。
代碼:
\documentclass[spanish]{article}
\usepackage{babel}
\usepackage{tikz}
\tikzset{
every picture/.append style={
execute at begin picture={\deactivatequoting},
execute at end picture={\activatequoting}
}
}
\begin{document}
Simple arrows:
\begin{tikzpicture}
\draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}
\tikz\draw[->] (-1.5,0) -- (1.5,0);
\end{document}
附帶說明一下,不要使用pdftex
選項;現代 LaTeX 系統會自動偵測驅動程式。
答案2
正如 Malipivo 所指出的,spanish
選項babel
使之處於>
活動狀態。您可以使其在本機(所有)tikzpicture
環境中處於非活動狀態,將這些新增至您的序言:
\usepackage{etoolbox}
\AtBeginEnvironment{tikzpicture}{\shorthandoff{>}\shorthandoff{<}}{}{}
完整程式碼:
\documentclass{article}
\usepackage[spanish]{babel}
\usepackage{tikz}
\usepackage{etoolbox}
\AtBeginEnvironment{tikzpicture}{\shorthandoff{>}\shorthandoff{<}}{}{}
\begin{document}
Simple arrow:
\begin{tikzpicture}
\draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}
\end{document}
答案3
如果不需要使用spanish quotes
,只需新增es-noquoting
到babel選項中,TiKZ
箭頭就會再次出現。
\documentclass[pdftex,spanish]{article}
\usepackage[es-noquoting]{babel}
\usepackage{tikz}
\begin{document}
Simple arrow:
\begin{tikzpicture}
\draw[->] (-1.5,0) -- (1.5,0);
\end{tikzpicture}
\end{document}
如果您需要spanish quotes
使用新的babel
TiKZ 3.0 函式庫(如 Claudio 所建議的)。這裡有一個例子:
\documentclass[pdftex,spanish]{article}
\usepackage{babel}
\usepackage{tikz}
\usetikzlibrary{babel}
\begin{document}
Simple arrow:
\begin{tikzpicture}
\draw[->] (-1.5,0) -- (1.5,0) node[right] {<<Hola>>};
\end{tikzpicture}
<<Hola>>
\end{document}
答案4
我不知道為什麼,但以前的答案都不適合我。但他們向我展示了正確的道路;僅添加
\deactivatequoting
序言中解決了這個問題。
用babel
and呼叫english
也spanish
有竅門
\usepackage[spanish,english]{babel}