BEARBEITEN

BEARBEITEN

Ich habe es verwendet, TikzEdtum einige Abbildungen für meine Abschlussarbeit zu erstellen. Als ich jedoch den Quellcode vonKopieren/Einfügen/\Eingabeim Hauptdokument under a figure environmentdauerte 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 TikzEdtbemä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 \angder 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. Bildbeschreibung hier eingeben

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}

Figur

Möglicherweise verstehe ich die Frage nicht.

BEARBEITEN

Das Hinzufügen siunitxerzeugt EINEN Fehler, aber ob es IHR Fehler ist, weiß ich nicht. Insbesondere xparsebeschwert sich, dass \anges nicht erweiterbar ist. Das liegt daran, dass der aktuelle Code aufruft \ang, was kein nicht zugewiesener Makroname mehr ist. Es versucht also, \angauf 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.

verwandte Informationen