
Usei TikzEdt
para gerar algumas figuras para usar em minha tese. No entanto, quando incluí o código-fonte porcopiar e colar/\entradano documento principal, under a figure environment
meu documento demorou uma eternidade para ser compilado sem erros e gerou um arquivo PDFoutput corrompido após cancelar a compilação.
No que me diz respeito, tenho todos os pacotes necessários no preâmbulo e gerei um exemplo funcional mínimo após inspecionar o código exportado do TikzEdt
.
O arquivo que não é compilado é enorme, então o arquivo de direção éaqui, oarquivo de classeé uma classe de livro modificada e o incluídomacrossão básicos.
Além disso TikzEdt
reclama que aparece a seguinte linha com a mensagem: “Não foi possível analisar o código. NoViableAltException na linha 16 na posição 44. Está faltando algum comando \end{}?". Um MWE de compilação éaqui.
\draw[<->, grosso] (-1,0)++({\ang+90}:1) --++ (\ang:{2*cos(\ang)});
EDITAR
O problema foi resolvido e o problema era meu uso, \ang
que é uma macro interna definida no pacote siunitx
. O analisador TikzEdt ainda reclama, mas não sei se é um problema real.
Uma captura de tela do problema TikzEdt
está abaixo. A mensagem de erro é exibida emlinhas vermelhas.
Responder1
Bem, você precisa de um arquivo \begin{document}
, obviamente, mas por outro lado funciona bem convertido em um documento normal com a imagem em um arquivo 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}
Possivelmente não entendi a pergunta.
EDITAR
Adicionar siunitx
produz UM erro, mas não sei se é SEU erro. xparse
Reclama especificamente que \ang
não é expansível. Isso ocorre porque o código atual invoca \ang
, que não é mais um nome de macro não atribuído. Portanto, ele está tentando expandir \ang
sua definição, mas não consegue. (E, se pudesse, os resultados também não seriam bons.)
A solução é usar um novo nome como \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}
compila para a saída mostrada acima.