tikz 包不适用于大学论文课程,AIT

tikz 包不适用于大学论文课程,AIT

我正在使用ait-thesis模板,当我将一个包裹tikz picture在里面时,它会出现错误figure。我尝试添加删除包,发现与以下链接\usepackage{tikz}冲突aitthesis.cls班级。如果我将 tikz 包放在它前面,则不会出现问题,但其余文档全都乱了。真正的错误是too many }s, Latex Error: \begin{document} end with \end{figure}。错误文件显示:\color@endbox ->\color@endgroup \egroup。你能解决它吗?我的代码在独立文档类中工作。没有aitthesis class

\documentclass{article}
 \usepackage{tikz}

 \usetikzlibrary{positioning}
 \begin{document}
 \begin{figure}
\centering
\tikzset{%
neuron missing/.style={
draw=none, 
scale=4,
text height=0.333cm,
execute at begin node=\color{black}$\vdots$
},
}

\begin{tikzpicture}[x=1.5cm, y=1.5cm, >=stealth]

\foreach \m/\l [count=\y] in {1,2,3}
{
\node [circle,fill=green!50,minimum size=1cm] (input-\m) at (0,2.5-\y) {};
}
\foreach \m/\l [count=\y] in {4}
{
 \node [circle,fill=green!50,minimum size=1cm ] (input-\m) at (0,-2.5) {};
}

\node [neuron missing]  at (0,-1.5) {};


\foreach \m [count=\y] in {1}
\node [circle,fill=red!50,minimum size=1cm ] (hidden-\m) at (2,0.75) {};

\foreach \m [count=\y] in {2}
\node [circle,fill=red!50,minimum size=1cm ] (hidden-\m) at (2,-1.85) {};

\node [neuron missing]  at (2,-0.3) {};


\foreach \m [count=\y] in {1}
 \node [circle,fill=blue!50,minimum size=1cm ] (output-\m) at (4,1.5-\y) {};

\foreach \m [count=\y] in {2}
 \node [circle,fill=blue!50,minimum size=1cm ] (output-\m) at (4,-0.5-\y) {};

\node [neuron missing]  at (4,-0.4) {};

\foreach \l [count=\i] in {1,2,3,256}
 \draw [<-] (input-\i) -- ++(-1,0)
 node [above, midway] {$I_{\l}$};

\foreach \l [count=\i] in {1,16}
\node [above] at (hidden-\i.north) {$H_{\l}$};

\foreach \l [count=\i] in {1,16}
\draw [->] (output-\i) -- ++(1,0)
node [above, midway] {$O_{ \l}$};

\foreach \i in {1,...,4}
\foreach \j in {1,...,2}
\draw [->] (input-\i) -- (hidden-\j);

\foreach \i in {1,...,2}
\foreach \j in {1,...,2}
\draw [->] (hidden-\i) -- (output-\j);

 %\foreach \l [count=\x from 0] in {Input, Hidden, Ouput}
 % \node [align=center, above] at (\x*2,2) {\l \\ layer};

\end{tikzpicture}

\caption{Caption}
\label{fig:my_label}
\end{figure}

\end{document} 

答案1

正如您所发现的,问题出在文档类中aitthesis。您有两个选择:

  • 考虑杰利迪亚兹回答问题(你的问题与之重复)
  • 检查以下解决方案是否适合您:

    \documentclass{report}
    \usepackage{capt-of}    % new
    \usepackage{tikz}
    
    \begin{document}
        \begin{center}
    \tikzset{
    neuron missing/.style = {scale=4, text depth=1.5ex, inner sep=0pt,
                             execute at begin node=$\vdots$
                            },
              circ/.style = {circle, fill=#1, minimum size = 1cm},
    every label/.append style = {label distance = 0pt, inner sep=2pt, font=\small}
            }
    
    \begin{tikzpicture}[x=1.6cm, y=1.6cm, >=stealth]
    
    \foreach \m/\n in {1/1,2,3,4,5/256}
    {
    \ifnum\m=4
        \node [neuron missing] (input-\m) at (0,2.5-\m) {};
    \else
        \node [circ=green!50]  (input-\m) at (0,2.5-\m) {};
        \draw [<-] (input-\m.west) -- node [above] {$I_{\n}$} + (-1,0);
    \fi
    }
    \foreach \m/\n in {1,2,3,4/16}
    {
    \ifnum\m=3
        \node [neuron missing]  (hiden-\m)  at (2,2-\m) {};
        \node [neuron missing]  (output-\m) at (4,2-\m) {};
    \else
        \node [circ=red!50,
               label=$H_{\n}$]  (hiden-\m)  at (2,2-\m) {};
        \node [circ=blue!50]    (output-\m) at (4,2-\m) {};
        \draw [->] (output-\m.east) -- node [above] {$O_{\n}$} + (1,0);
    \fi
    }
    \foreach \m in {1,2,3,5}
    \foreach \n in {1,2,4}
    {
    \draw [->]  (input-\m) -- (hiden-\n);
    }
    \foreach \m in {1,2,4}
    \foreach \n in {1,2,4}
    {
    \draw [->]  (hiden-\m) edge (output-\n);
    }
    \end{tikzpicture}
        \captionof{figure}{Caption}
    \label{fig:my_label}
        \end{center}
    \end{document}
    

正如您所见,图像是center环境,即它不再浮动。这样(我希望如此)aitthesis就可以避免文档类的故障。

我还擅自重写了你的图像代码,使其现在更加简洁和一致。也许你喜欢神经网络中引入的变化。

答案2

我不知道这是否适用于 alt-thesis 课程,但可以尝试一下。

\documentclass{article}
 \usepackage{tikz}
 \usetikzlibrary{positioning}

 \newsavebox{\tempbox}

 \begin{document}

\tikzset{%
neuron missing/.style={
draw=none, 
scale=4,
text height=0.333cm,
execute at begin node=\color{black}$\vdots$
},
}

\savebox{\tempbox}{\begin{tikzpicture}[x=1.5cm, y=1.5cm, >=stealth]

\foreach \m/\l [count=\y] in {1,2,3}
{
\node [circle,fill=green!50,minimum size=1cm] (input-\m) at (0,2.5-\y) {};
}
\foreach \m/\l [count=\y] in {4}
{
 \node [circle,fill=green!50,minimum size=1cm ] (input-\m) at (0,-2.5) {};
}

\node [neuron missing]  at (0,-1.5) {};


\foreach \m [count=\y] in {1}
\node [circle,fill=red!50,minimum size=1cm ] (hidden-\m) at (2,0.75) {};

\foreach \m [count=\y] in {2}
\node [circle,fill=red!50,minimum size=1cm ] (hidden-\m) at (2,-1.85) {};

\node [neuron missing]  at (2,-0.3) {};


\foreach \m [count=\y] in {1}
 \node [circle,fill=blue!50,minimum size=1cm ] (output-\m) at (4,1.5-\y) {};

\foreach \m [count=\y] in {2}
 \node [circle,fill=blue!50,minimum size=1cm ] (output-\m) at (4,-0.5-\y) {};

\node [neuron missing]  at (4,-0.4) {};

\foreach \l [count=\i] in {1,2,3,256}
 \draw [<-] (input-\i) -- ++(-1,0)
 node [above, midway] {$I_{\l}$};

\foreach \l [count=\i] in {1,16}
\node [above] at (hidden-\i.north) {$H_{\l}$};

\foreach \l [count=\i] in {1,16}
\draw [->] (output-\i) -- ++(1,0)
node [above, midway] {$O_{ \l}$};

\foreach \i in {1,...,4}
\foreach \j in {1,...,2}
\draw [->] (input-\i) -- (hidden-\j);

\foreach \i in {1,...,2}
\foreach \j in {1,...,2}
\draw [->] (hidden-\i) -- (output-\j);

 %\foreach \l [count=\x from 0] in {Input, Hidden, Ouput}
 % \node [align=center, above] at (\x*2,2) {\l \\ layer};

\end{tikzpicture}}

\begin{figure}
\centering
\usebox{\tempbox}
\caption{Caption}
\label{fig:my_label}
\end{figure}

\end{document} 

相关内容