\draw を使用した babel と tikz の問題

\draw を使用した babel と tikz の問題

次のコードを試しています:

\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作成し>、アクティブな文字を使用することです。<

アップデート:

babelPGF/TikZ バージョン 3.0.0 には、一部のモジュールによって行われたカテゴリ コードの変更によって発生する問題を解決するライブラリがある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

の不要な再定義を無効にしてtikzpicture、ドキュメントの他の部分では再定義を維持するには、次のようにします。

  execute at begin picture={\deactivatequoting},
  execute at end picture={\activatequoting}

あらゆる に対してtikzpicture。このアプローチには 2 つの利点があることに注意してください。

  1. 追加パッケージは必要ありません。

  2. コマンド バージョンを使用した場合にも、目的の結果が生成されます\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 quoteses-noquotingbabel オプションに追加するだけで、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新しい TiKZ 3.0 ライブラリを使用する必要がある場合babel(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と電話するenglishのもspanish効果的です

\usepackage[spanish,english]{babel} 

関連情報