Ich habe es verwendet, TikzEdt
um einige Abbildungen für meine Abschlussarbeit zu erstellen. Als ich jedoch den Quellcode vonKopieren/Einfügen/\Eingabeim Hauptdokument under a figure environment
dauerte das Kompilieren meines Dokuments ohne Fehler ewig und führte zu einer beschädigten PDF-Ausgabedatei, nachdem ich die Kompilierung abgebrochen hatte.
Meiner Ansicht nach habe ich alle erforderlichen Pakete in der Präambel und habe nach der Überprüfung des exportierten Codes ein minimales funktionierendes Beispiel generiert TikzEdt
.
Die nicht kompilierende Datei ist riesig, daher ist die TreiberdateiHier, DieKlassendateiist eine modifizierte Buchklasse und die enthalteneMakrossind grundlegend.
Des Weiteren TikzEdt
bemängelt die folgende Zeile mit der Meldung: „Code konnte nicht analysiert werden. NoViableAltException in Zeile 16 an Position 44. Fehlt ein \end{}-Befehl?". Ein kompilierendes MWE istHier.
\draw[<->, dick] (-1,0)++({\ang+90}:1) --++ (\ang:{2*cos(\ang)});
BEARBEITEN
Das Problem ist gelöst und das Problem war meine Verwendung, bei \ang
der es sich um ein im Paket definiertes internes Makro handelt siunitx
. Der TikzEdt-Parser beschwert sich immer noch, aber ich weiß nicht, ob es ein echtes Problem ist.
Unten sehen Sie einen Screenshot des Problems TikzEdt
. Die Fehlermeldung wird angezeigt inrote Linien.
Antwort1
Nun, Sie benötigen \begin{document}
natürlich eine , aber ansonsten funktioniert es problemlos, wenn es in ein normales Dokument mit dem Bild in einer konvertiert wird figure
.
\documentclass{article}
\usepackage{tikz,amsmath, amssymb,bm,color}
\usetikzlibrary{shapes,arrows}
\usetikzlibrary{decorations.markings,math}
\usetikzlibrary{calc}
\begin{document}
\begin{figure}
\center
\begin{tikzpicture}
\tikzmath{\ang = 45;};
\begin{scope}[thick,decoration={
markings,
mark=at position 0.5 with {\arrow{latex}}}
]
\filldraw[red] (-1,0) circle (2pt)
node[anchor=east, font = \footnotesize] at (-1,-0.2) {$\mathrm{E_0}$};
\draw[dashed, red] (-1,0) --++({\ang+90}:1);
\filldraw[green] (1,0) circle (2pt)
node[anchor=west, font = \footnotesize] at (1,-0.2) {$\mathrm{E_0}$};
\draw[postaction={decorate}, red] (-1,0) --++ (\ang:2);
\draw[postaction={decorate}, green] (1,0) --++ (\ang:2);
\draw[<->, thick] (-1, -0.2) -- (1, -0.2);
\draw[dashed, green] (1,0) --++ ({\ang+90}:2.5);
\draw[<->, thick] (-1,0)++({\ang+90}:1) --++ (\ang:{2*cos(\ang)});
% \draw[<->, thick] (-1,0)++({\ang+90}:1) --++ (\ang:{2*cos(\ang) });
\node[anchor=north, font = \footnotesize] at (0, -0.2) {d=$\lambda/2$};
\end{scope}
\draw[blue, thick, dash pattern= on 25 off 7 on 50 off 7 on 10] (-2,0) -- (2, 0);
\node[anchor=west, font = \footnotesize, blue] at (1.5,-0.05) {z}; node[near start, auto] {true}
\draw[thick,blue,->] ([shift=(0:1)]1,0) arc (0:\ang:1);
% \draw[thick,blue,->] (2,0) arc (0:\ang:1);
\draw (1,0)++({\ang/2}:1.2) node[rotate=\ang, anchor=base, blue, font=\normalsize]{$\theta$};
\draw ({\ang+90}:1.3) node[rotate=\ang, anchor=base, black, font=\normalsize]{$d\cos\theta$};
\end{tikzpicture}
\caption{Picture}
\end{figure}
\end{document}
Möglicherweise verstehe ich die Frage nicht.
BEARBEITEN
Das Hinzufügen siunitx
erzeugt EINEN Fehler, aber ob es IHR Fehler ist, weiß ich nicht. Insbesondere xparse
beschwert sich, dass \ang
es nicht erweiterbar ist. Das liegt daran, dass der aktuelle Code aufruft \ang
, was kein nicht zugewiesener Makroname mehr ist. Es versucht also, \ang
auf seine Definition zu erweitern, kann es aber nicht. (Und wenn es das könnte, wären die Ergebnisse auch nicht gut.)
Die Lösung besteht darin, einen neuen Namen wie zu verwenden \myangle
.
\documentclass{article}
\usepackage{tikz,amsmath,amssymb,bm}
\usetikzlibrary{shapes,arrows}
\usetikzlibrary{decorations.markings,math}
\usetikzlibrary{calc}
\usepackage{siunitx}
\begin{document}
\begin{figure}
\center
\begin{tikzpicture}
\tikzmath{\myangle = 45;};
\begin{scope}[thick,decoration={
markings,
mark=at position 0.5 with {\arrow{latex}}}
]
\filldraw[red] (-1,0) circle (2pt)
node[anchor=east, font = \footnotesize] at (-1,-0.2) {$\mathrm{E_0}$};
\draw[dashed, red] (-1,0) --++({\myangle+90}:1);
\filldraw[green] (1,0) circle (2pt)
node[anchor=west, font = \footnotesize] at (1,-0.2) {$\mathrm{E_0}$};
\draw[postaction={decorate}, red] (-1,0) --++ (\myangle:2);
\draw[postaction={decorate}, green] (1,0) --++ (\myangle:2);
\draw[<->, thick] (-1, -0.2) -- (1, -0.2);
\draw[dashed, green] (1,0) --++ ({\myangle+90}:2.5);
\draw[<->, thick] (-1,0)++({\myangle+90}:1) --++ (\myangle:{2*cos(\myangle)});
% \draw[<->, thick] (-1,0)++({\myangle+90}:1) --++ (\myangle:{2*cos(\myangle) });
\node[anchor=north, font = \footnotesize] at (0, -0.2) {d=$\lambda/2$};
\end{scope}
\draw[blue, thick, dash pattern= on 25 off 7 on 50 off 7 on 10] (-2,0) -- (2, 0);
\node[anchor=west, font = \footnotesize, blue] at (1.5,-0.05) {z}; node[near start, auto] {true}
\draw[thick,blue,->] ([shift=(0:1)]1,0) arc (0:\myangle:1);
% \draw[thick,blue,->] (2,0) arc (0:\myangle:1);
\draw (1,0)++({\myangle/2}:1.2) node[rotate=\myangle, anchor=base, blue, font=\normalsize]{$\theta$};
\draw ({\myangle+90}:1.3) node[rotate=\myangle, anchor=base, black, font=\normalsize]{$d\cos\theta$};
\end{tikzpicture}
\caption{Picture}
\end{figure}
\end{document}
wird zu der oben gezeigten Ausgabe kompiliert.