Diagramm unbekannter Fehler Thema ist als GELÖST markiert

Tabellen und Grafiken erstellen und anordnen


aasaa00
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 99
Registriert: Do 1. Mär 2018, 11:43

Diagramm unbekannter Fehler

Beitrag von aasaa00 »

Hallo,

ich will ein Diagramm in meine Arbeit einfügen. Wenn ich den Code so auf de.overleaf.com eingebe, wird mir kein Fehler angezeigt. Füge ich es in meinem Dokument (mit TexnicCenter) wird mir 8-mal zu der Zeile "\draw[line width=0.5mm,gray,{Stealth}-{Stealth}] (L.\anchB) -- (\X.\anchA); }" diese Fehlermeldung angezeigt:

Package PGF math error: Unknown function 'south' (in '{"south east", "south west", "north west","north east")
[Mod(3+1,4)]'). See the PGF Math package documentation for explanation.

Kann mir jmd. sagen, was der Fehler ist und was ich ändern muss? In der Dokumentation habe ich nichts gefunden. Hier der Code:


\documentclass{scrbook}
\usetikzlibrary{positioning,shadows.blur,arrows.meta,bending,calc,intersections}
\usepackage{capt-of}
\begin{document}
\begin{tikzpicture}[node distance=2em,
    nodes={draw,rounded corners,align=center,blur shadow,
    fill=white,minimum height=3em,minimum width=8em},
    pics/circular arc/.style args={from #1 to #2}{code={
 \path[name path=arc] 
  let \p1=(#1),\p2=(#2),\n1={atan2(\y1,\x1)},\n2={atan2(\y2,\x2)},
    \n3={ifthenelse(abs(\n1-\n2)<180,\n2,\n2-360)}
  in (\n1:\r) arc(\n1:\n3:\r);
 \draw[>={Stealth[bend]},pic actions,
    name intersections={of=#1 and arc,by=arcstart},
    name intersections={of=#2 and arc,by=arcend}] 
    let \p1=(arcstart),\p2=(arcend),\n1={atan2(\y1,\x1)},\n2={atan2(\y2,\x2)},
     \n3={ifthenelse(abs(\n1-\n2)<180,\n2,\n2-360)}
  in (\n1:\r) arc(\n1:\n3:\r);
 }}]
 \node (L){Imit};
 \node[above left=of L,name path=M] (M) {Go};
 \node[above right=of L,name path=A] (A) {Ab};
 \node[below right=of L,name path=S] (S) {Fr \&\\ W};
 \node[below left=of L,name path=R] (R) {M \&\\ Wand};
 \def\LstAnchors{"south east","south west","north west","north east"}
 \def\r{4}
 \foreach \X [remember=\X as \Y (initially R),count=\Z] in {M,A,S,R}
 {\path[line width=0.5mm,gray,shorten >=1mm,shorten <=1mm] pic{circular arc=from {\Y} to \X};
  \pgfmathsetmacro{\anchA}{{\LstAnchors}[Mod(\Z+3,4)]}
  \pgfmathsetmacro{\anchB}{{\LstAnchors}[Mod(\Z+1,4)]}
  \draw[line width=0.5mm,gray,{Stealth}-{Stealth}] (L.\anchB) -- (\X.\anchA); }
\end{tikzpicture}
\captionof{figure}{A caption.}
\end{document}


Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: Diagramm unbekannter Fehler

Beitrag von u_fischer »

Der Code scheitert schon in der Präambel:

! Undefined control sequence.
<recently read> \usetikzlibrary 
                                
l.3 \usetikzlibrary

aasaa00
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 99
Registriert: Do 1. Mär 2018, 11:43

Re: Diagramm unbekannter Fehler

Beitrag von aasaa00 »

Danke für den Hinweis. Ich weiß nicht, warum das "\usepackage{tikz}" nicht miteingefügt wurde. Sei's drum, hier nun der richtige Code:

\documentclass{scrbook}

\usepackage{tikz}
\usetikzlibrary{positioning,shadows.blur,arrows.meta,bending,calc,intersections}
\begin{document}
\begin{tikzpicture}[node distance=2em,
    nodes={draw,rounded corners,align=center,blur shadow,
    fill=white,minimum height=3em,minimum width=8em},
    pics/circular arc/.style args={from #1 to #2}{code={
 \path[name path=arc] 
  let \p1=(#1),\p2=(#2),\n1={atan2(\y1,\x1)},\n2={atan2(\y2,\x2)},
    \n3={ifthenelse(abs(\n1-\n2)<180,\n2,\n2-360)}
  in (\n1:\r) arc(\n1:\n3:\r);
 \draw[>={Stealth[bend]},pic actions,
    name intersections={of=#1 and arc,by=arcstart},
    name intersections={of=#2 and arc,by=arcend}] 
    let \p1=(arcstart),\p2=(arcend),\n1={atan2(\y1,\x1)},\n2={atan2(\y2,\x2)},
     \n3={ifthenelse(abs(\n1-\n2)<180,\n2,\n2-360)}
  in (\n1:\r) arc(\n1:\n3:\r);
 }}]
 \node (L){Imit};
 \node[above left=of L,name path=M] (M) {Go};
 \node[above right=of L,name path=A] (A) {Ab};
 \node[below right=of L,name path=S] (S) {Fr \&\\ W};
 \node[below left=of L,name path=R] (R) {M \&\\ Wand};
 \def\LstAnchors{"south east","south west","north west","north east"}
 \def\r{4}
 \foreach \X [remember=\X as \Y (initially R),count=\Z] in {M,A,S,R}
 {\path[line width=0.5mm,gray,shorten >=1mm,shorten <=1mm] pic{circular arc=from {\Y} to \X};
  \pgfmathsetmacro{\anchA}{{\LstAnchors}[Mod(\Z+3,4)]}
  \pgfmathsetmacro{\anchB}{{\LstAnchors}[Mod(\Z+1,4)]}
  \draw[line width=0.5mm,gray,{Stealth}-{Stealth}] (L.\anchB) -- (\X.\anchA); }
\end{tikzpicture}

\end{document}

aasaa00
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 99
Registriert: Do 1. Mär 2018, 11:43

Re: Diagramm unbekannter Fehler

Beitrag von aasaa00 »

Hallo,
ich habe jetzt mein Dokument soweit gekürzt, dass ich nun weiß, dass ohne die nachfolgenden Zeilen mein Code glatt durchlaufen würde:

\usepackage{paracol}

\usepackage{polyglossia} %Kommentar

\setmainlanguage[variant=german, spelling=new, latesthyphen=true, babelshorthands=true]{german}

\setmainfont{Times New Roman}

%Für Kapitälchen
\newfontfamily\tgtermes{TeX Gyre Termes}
\makeatletter
\begingroup
\tgtermes
\DeclareFontShape{\f@encoding}{\rmdefault}{m}{sc}{%
<-> ssub * \f@family/m/sc}{}
\DeclareFontShape{\f@encoding}{\rmdefault}{bx}{sc}{%
<-> ssub * \f@family/bx/sc}{}
\endgroup
\makeatother

Mein Problem: Ich kann beide Packages nicht einfach rausnehmen, weil ich v. a. auf polyglossia (viele exotische Sprachen, die mit babel nicht abgedeckt sind) angewiesen bin. Hat vielleicht jmd. ein Hinweis oder Rat? Hier der vollständige MWE (mit den Fehlermeldungen):


\documentclass{scrbook}

\usepackage{tikz}
\usetikzlibrary{positioning,shadows.blur,arrows.meta,bending,calc,intersections}

\usepackage{paracol}

\usepackage{polyglossia} %Kommentar 


\setmainlanguage[variant=german, spelling=new, latesthyphen=true, babelshorthands=true]{german}

\setmainfont{Times New Roman}

%Für Kapitälchen
\newfontfamily\tgtermes{TeX Gyre Termes}
\makeatletter
  \begingroup
    \tgtermes
    \DeclareFontShape{\f@encoding}{\rmdefault}{m}{sc}{%
      <-> ssub * \f@family/m/sc}{}
    \DeclareFontShape{\f@encoding}{\rmdefault}{bx}{sc}{%
      <-> ssub * \f@family/bx/sc}{}
  \endgroup
\makeatother

\begin{document}
\begin{tikzpicture}[node distance=2em,
    nodes={draw,rounded corners,align=center,blur shadow,
    fill=white,minimum height=3em,minimum width=8em},
    pics/circular arc/.style args={from #1 to #2}{code={
 \path[name path=arc] 
  let \p1=(#1),\p2=(#2),\n1={atan2(\y1,\x1)},\n2={atan2(\y2,\x2)},
    \n3={ifthenelse(abs(\n1-\n2)<180,\n2,\n2-360)}
  in (\n1:\r) arc(\n1:\n3:\r);
 \draw[>={Stealth[bend]},pic actions,
    name intersections={of=#1 and arc,by=arcstart},
    name intersections={of=#2 and arc,by=arcend}] 
    let \p1=(arcstart),\p2=(arcend),\n1={atan2(\y1,\x1)},\n2={atan2(\y2,\x2)},
     \n3={ifthenelse(abs(\n1-\n2)<180,\n2,\n2-360)}
  in (\n1:\r) arc(\n1:\n3:\r);
 }}]
 \node (L){Imit};
 \node[above left=of L,name path=M] (M) {Go};
 \node[above right=of L,name path=A] (A) {Ab};
 \node[below right=of L,name path=S] (S) {Fr \&\\ W};
 \node[below left=of L,name path=R] (R) {M \&\\ Wand};
 \def\LstAnchors{"south east","south west","north west","north east"}
 \def\r{4}
 \foreach \X [remember=\X as \Y (initially R),count=\Z] in {M,A,S,R}
 {\path[line width=0.5mm,gray,shorten >=1mm,shorten <=1mm] pic{circular arc=from {\Y} to \X};
  \pgfmathsetmacro{\anchA}{{\LstAnchors}[Mod(\Z+3,4)]}
  \pgfmathsetmacro{\anchB}{{\LstAnchors}[Mod(\Z+1,4)]}
  \draw[line width=0.5mm,gray,{Stealth}-{Stealth}] (L.\anchB) -- (\X.\anchA); }
\end{tikzpicture}

\end{document}

Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: Diagramm unbekannter Fehler

Beitrag von u_fischer »

Hatte ich es mir doch gedacht, dass dein "Beispiel" anfangs kein Beispiel war.

Verwende

\usetikzlibrary{babel}

.

viele exotische Sprachen, die mit babel nicht abgedeckt sind

Nun, mit babel gäbe es denselben Fehler. Aber abgesehen davon: welche Sprache fehlt dir denn da?


aasaa00
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 99
Registriert: Do 1. Mär 2018, 11:43

Re: Diagramm unbekannter Fehler

Beitrag von aasaa00 »

Bei Babel sind die RTL-Sprachen nicht so gut abgedeckt wie in Polyglossia. Konkret betrifft es Arabisch und v. a. Aramäisch, Hebräisch und Syrisch. Insbesondere Sonderzeichen und -fälle sind mit polyglossia gut durchführbar; mit Babel bin ich da steckengeblieben. D.h. es gibt diese Sprachen in Babel zwar, aber mit polyglossia sind wirklich alle Sonderfälle und -zeichen sehr gut lösbar.

Aber nochmal zu meiner Ausgangsfrage: Hängt die Fehlermeldung mit dem Font bzw. polyglossia-package zusammen? Wenn ja, wie kann ich bei Beibehaltung des Codes den Teil des Diagramms so umschreiben, dass ich am Ende so etwas herausbekomme:

Unbenannt.JPG

gast.

Re: Diagramm unbekannter Fehler

Beitrag von gast. »

Es hängt mit babelshorthands zusammen. Sollte eigentlich aus der Dokumentation der von Ulrike zur Lösung vorgeschlagenen Lib hervorgehen …


Benutzeravatar
u_fischer
Forum-Meister
Forum-Meister
Beiträge: 4266
Registriert: Do 22. Nov 2012, 11:09
Kontaktdaten:

Re: Diagramm unbekannter Fehler

Beitrag von u_fischer »

aasaa00 hat geschrieben:
Sa 18. Sep 2021, 20:55

Bei Babel sind die RTL-Sprachen nicht so gut abgedeckt wie in Polyglossia.

Der bidi-Code von babel mit lualatex ist deutlich besser als der von polyglossia. Abgesehen davon wird babel aktiv entwickelt, ganz im Gegensatz zum bidi-Paket, das immer noch nicht mit einem aktuellen LaTeX kompatible ist. Wenn etwas fehlt, kannst du im babel-Github einen Feature request machen. Normalerweise reagiert Javier ziemlich schnell.

Aber nochmal zu meiner Ausgangsfrage: Hängt die Fehlermeldung mit dem Font bzw. polyglossia-package zusammen? Wenn ja, wie kann ich bei Beibehaltung des Codes den Teil des Diagramms so umschreiben, dass ich am Ende so etwas herausbekomme:

Wie ich schon sagte: verwende die babel-library von tikz.


aasaa00
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 99
Registriert: Do 1. Mär 2018, 11:43

Re: Diagramm unbekannter Fehler

Beitrag von aasaa00 »

Danke, jetzt habe ich es auch verstanden. Ich weiß, dass polyglossia nicht zu empfehlen ist, aber ich stehe kurz vor Abgabe und schaffe es jetzt zeitlich nicht mehr von XeLaTex auf LuaLaTeX umzusteigen.


Antworten