Folgendes erläuterndes Beispiel:

Öffne in Overleaf
\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, 15:26

Sylvan's gravatar image

Sylvan
38951117
Akzeptiert-Rate: 0%

bearbeitet 24 Aug '17, 11:11

saputello's gravatar image

saputello
11.1k174365

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, 15:36) cgnieder

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, 15: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, 10: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, 11: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 07 Mär '14, 00:38

esdd's gravatar image

esdd
17.8k284257
Akzeptiert-Rate: 62%

bearbeitet 07 Mär '14, 20:57

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

(07 Mär '14, 15:41) 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, 21:19

Herbert's gravatar image

Herbert
5.1k34
Akzeptiert-Rate: 31%

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

(06 Mär '14, 21:22) cgnieder

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

(07 Mär '14, 15:42) 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, 15:47

sudo's gravatar image

sudo
2.0k51521
Akzeptiert-Rate: 39%

bearbeitet 06 Mär '14, 08: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, 11:06) Sylvan
Deine Antwort
Vorschau umschalten

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

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ügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×730
×23
×9

gestellte Frage: 05 Mär '14, 15:26

Frage wurde gesehen: 16,532 Mal

zuletzt geändert: 07 Mär '14, 20:57