Folgendes erläuterndes Beispiel:

Open in writeLaTeX
\documentclass[tikz]{standalone}

\usepackage{polyglossia}
%\setdefaultlanguage{german}
%\usepackage[ngerman]{babel}

\usepackage{tikz}
\usetikzlibrary{quotes}

\begin{document}
    \tikz{\draw (0,0) edge ["ID"] (3,3);}
\end{document}

Das ganze funktioniert so wie es ist wenn ich es mit LuaLaTeX kompiliere. Kommentiert man noch polyglossia aus funktioniert es auch mit PDFLaTeX. Entkommentiere ich jedoch entweder das setdefaultlanguage oder babel bekomme ich folgende Fehlermeldung:

pgfkeys: I do not know the key '/tikz/"ID"' and I am going to ignore it. Perhaps you misspelled it. draw (0,0) edge ["ID"] (3,3)

bzw.:

Argument of language@active@arg" has an extra } draw (0,0) edge ["ID"] (3,3)

Mir ist inzwischen klar, dass es mit den Anführungszeichen zu tun hat, welche durch babel oder polyglossia zu aktiven Zeichen werden. Die Lösung hierzu weiß ich allerdings nicht weswegen ich mich an euch wende. Prinzipiell würde ich auch die Form label=Text verwenden aber ich benötige das im Zuge der Graphdrawing-Library und da bekomme ich label an edges bisher nur mit der Form der quotes-library.

gefragt 05 Mär '14, 09:26

Sylvan's gravatar image

Sylvan
284513
Akzeptiert: 75%

2

Das Problem ist, dass " ein Shorthand für babel und polyglossia ist. Mit babel und \shorthandoff{"} vor dem TikZ-Code geht's

(05 Mär '14, 09:36) Clemens

Dankeschön - soetwas habe ich gesucht. Allerdings würde ich gern polyglossia weiter verwenden. Da gibt es das Makro shorthandoff leider nicht. Auch hatte ich schon vorher mal versucht die Language-Option "babelshorthands=false" zu setzen was aber auch nichts brachte.

Wenn noch jemand eine Lösung für Polyglossia anzubieten hätte wäre ich vollkommen glücklich.

(05 Mär '14, 09:43) Sylvan
1

@Sylvan Ich habe deine Antwort in eine Folgefrage konvertiert.

Wenn die Antwort von @sudo deine ursprüngliche Frage hier beantwortet, dann kannst du dieser deine Stimme geben (Daumen hoch anklicken) und sie auch abhaken, also den Hacken anklicken.

(06 Mär '14, 04:55) esdd

Vielen Dank. Nun weiß ich Bescheid wie es hier gehandhabt wird. Danke vor allem dass du das nett für einen Neuling erklärt hast. Kennt man von anderen Foren nicht so oft.

(06 Mär '14, 05:03) Sylvan

Wenn man neben quotes auch die tikzlibrary babel lädt, dann kann man quotes auch mit deutschem babel bzw. polyglossia verwenden, ohne lokal \babelshorthandsoff{"} setzen zu müssen.

Bei Verwendung des Paketes polyglossia müssen die beiden Bibliotheken allerdings vor diesem Paket geladen werden. (Danke für den Hinweis an @Clemens)

Open in writeLaTeX
\documentclass[tikz,margin=5mm]{standalone}

\usetikzlibrary{quotes,babel}% vor polyglossia

%% Entweder polyglossia
\usepackage{polyglossia}
\setdefaultlanguage[babelshorthands,spelling=new]{german}
%% Oder alternativ babel
%\usepackage[ngerman]{babel}

\begin{document}
  \tikz\draw (0,0) edge ["ID"' red] (3,3);
\end{document}

alt text

Permanenter link

beantwortet 06 Mär '14, 18:38

esdd's gravatar image

esdd
14.2k53251

bearbeitet 07 Mär '14, 14:57

Danke auch dir für den Hinweis quotes vor polyglossia zu laden.

(07 Mär '14, 09:41) Sylvan

Bei den edges werden keine label erzeugt sondern nodes (pgfmanual Abschnitt 17.12.2). Eine Lösung wäre also einen node mit auto-Ausrichtung zu verwenden:

Open in writeLaTeX
\documentclass{article} % Funktioniert auch mit writeLaTeX
\usepackage{tikz}
\begin{document}
    \tikz{\draw (0,0) edge node [auto] {ID} (3,3);}
\end{document}

Eine Alternative bei der Verwendung von babel ist die gleichnamige Bibliothek (pgfmanual Kapitel 42):

Open in writeLaTeX
\documentclass{article} % Funktioniert auch mit writeLaTeX
\usepackage[ngerman]{babel}

\usepackage{tikz}
\usetikzlibrary{quotes, babel}

\begin{document}
    \tikz{\draw (0,0) edge ["ID"] (3,3);}
\end{document}

AFAIK funktioniert babel in ngerman auch unter LuaLaTeX, so dass dieser Ansatz auch in anderen Fällen helfen könnte.

Permanenter link

beantwortet 05 Mär '14, 09:47

sudo's gravatar image

sudo
1.9k1817

bearbeitet 06 Mär '14, 02:28

Vielen Dank. Wie es aussieht müssen wir wahrscheinlich warten bis Till PGF um Polyglossia-Kompatibilität erweitert wenn nicht noch jemand etwas ähnliches wie shorthandoff für Polyglossia anzubieten hat.

(06 Mär '14, 05:06) Sylvan

Die Variante für polyglossia:

Open in writeLaTeX
\documentclass[tikz]{standalone}  
\usepackage{tikz}
\usetikzlibrary{quotes}
\usepackage{polyglossia}
\setdefaultlanguage[babelshorthands]{german}

\begin{document}
\shorthandoff{"}
\tikz\draw (0,0) edge ["ID"] (3,3);
\end{document}

und die babel-Variante:

Open in writeLaTeX
\documentclass[tikz]{standalone}
\usepackage[ngerman]{babel}
\usepackage{tikz}
\usetikzlibrary{quotes}

\begin{document}
\shorthandoff{"}
\tikz\draw (0,0) edge ["ID"] (3,3);
\end{document}
Permanenter link

beantwortet 06 Mär '14, 15:19

Herbert's gravatar image

Herbert
5.0k34

Das ist besser als mein Vorschlag, ich lösche meine Antwort wieder

(06 Mär '14, 15:22) Clemens

Danke für den Hinweis quotes vor polyglossia zu laden. Ich denke das reicht um die Frage zu beantworten.

(07 Mär '14, 09:42) Sylvan
Deine Antwort auf die Frage (nicht auf andere Antworten)
Knebel-Vorschau

Folge dieser Frage

Per E-Mail:

Wenn Du Dich anmeldest, kannst Du Updates hier abonnieren

Per RSS:

Antworten

Antworten und Kommentare

Aktuelle Buch-Infos

LaTeX Cookbook

LaTeX Beginners Guide

Limitierter Rabatt ebook
50% Coupon code tDRet6Y

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs füge einfach zwei Leerzeichen an die Stelle ein, an der die neue Zeile sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Zugeordnete Themen:

×492
×12
×8

Frage gestellt: 05 Mär '14, 09:26

Frage wurde angeschaut: 4,293 Mal

Zuletzt aktualisiert: 07 Mär '14, 14:57