% ---------------------------------------------------------- \chapter{Ambientes} % ---------------------------------------------------------- A classe UnB\TeX\ disponibiliza alguns ``ambientes'', ou seja, caixas de texto com formatação especial para certos tipos de elementos, que podem ser automaticamente numerados (por exemplo, \cref{thm:WYSIWYG}, \cref{exc:in}, \cref{alg:NNMPC}, etc.). Esses ambientes foram adaptados a partir do modelo de \citeonline{Castro2019}. \section{Estilo teorema} \begin{definition} O WYSIWYG (ou ``What You See Is What You Get - O que você vê é o formato final'') é um tipo de editor HTML que permite editar sua página da Web em uma visualização simplificada e sem código de aparência semelhante à do layout da página real. \end{definition} \begin{proposition}\label{prop:WYSIWYG} \LaTeX\ produz equações mais bonitas que qualquer editor WYSIWYG. \end{proposition} \begin{lemma} Teste. \end{lemma} \begin{remark} \LaTeX\ produz equações mais bonitas que qualquer editor WYSIWYG. \end{remark} \begin{theorem}[Teorema LaTeX-WYSIWYG]\label{thm:WYSIWYG} Todo físico prefere usar código \LaTeX\ puro que qualquer editor WYSIWYG. \end{theorem} \begin{corollary} Teste. \end{corollary} \begin{proof} Físicos gostam de equações bonitas. Editores What-You-See-Is-What-You-Get não são apropriados para fazer equações bonitas\footnote{É certo que há editores WYSIWYG baseados em \LaTeX, mas eles não nos dão o mesmo nível de controle.}. Logo, se algum físico preferisse usar um editor WYSIWYG no lugar de \LaTeX, não seria muito inteligente. Como todo físico é inteligente, o teorema está demonstrado \textit{ad absurdum}. \end{proof} \begin{exercise}\label{exc:in} Explique como Isaac Newton usaria cada um dos pacotes seguintes, se vivesse no tempo presente: \begin{enumerate}[label=(\alph*)] \item Metapost \item TikZ \item PGFPlots \item PSTricks \end{enumerate} \end{exercise} \begin{example}\label{exp:ae} Einstein usaria um editor WYSIWYG ou \LaTeX? \\ Einstein era físico. Portanto, usando o teorema LaTeX-WYSIWYG, concluímos que ele usaria \LaTeX. \end{example} \section{Algoritmo} O \cref{alg:NNMPC} é um pseudo-código para obtenção de um controlador preditivo baseado em modelo e em redes neurais. \begin{algorithm}[htb] %\linespread{1.0}\selectfont % espaçamento entre as linhas do algoritmo \caption{Pseudocódigo de MPC baseado em redes neurais para consenso} \label{alg:NNMPC} \begin{algorithmic}[1] %\opção para numerar as linhas [1] %\Procedure{Roy}{$a,b$} \Comment{This is a test} \State Inicialização do sistema em $x(0), \theta(0)$ \State $J = V(e(0),\theta(0))$ \State $K^{ab}_0 = 0$ $\forall (a,b)$ \State $dataset \gets [K_0,J]$ \For{$k = 1:k_{max}$} \Comment{Laço de simulação} \State $(W,Y) \gets train(dataset)$ \State $\tilde{J} = Y\sigma(Wz)$ $\forall K^{ab}_k\pm \delta_K$ \State $K_k^{\ast} = arg \min_{K_k}(\tilde{J})$ \State $u(k) = \left( L(\theta(k)) \otimes K_k^{\ast} \right) x(k)$ \State $\hat{x}(k) = x(k)$; $\hat{\theta}(k) = \theta(k)$ \For{$t = k+1:k+h+1$} \Comment{Laço de predição} \State $\hat{\theta}(t) = randMarkov(\hat{\theta}(t-1),\Pi)$ \State $p = \hat{\theta}(t)$ \State $\hat{u}(t) = \left( L(p) \otimes K_k^{\ast} \right) \hat{x}(t)$ \State $\hat{x}(t+1) = F_{p}(\hat{x}(t))$ \State $x_0(t) = mean(\hat{x}(t))$ \State $\hat{e}(t) = F_{p}(\hat{x}(t)) - \boldsymbol{1_N} f_{p0}(x(t)) $ \State $\hat{V}_{t} = \hat{e}^T(t)P_{p}\hat{e}(t)$ \EndFor \State $\hat{J} = \sum_{t = k+1}^{k+h+1} \hat{V}_{t}$ \State $dataset \gets [K^{\ast}_k,\hat{J}]$ \State $x(k+1) = F_{p}(x(k))$ \EndFor %\EndProcedure \end{algorithmic} \end{algorithm} \section{Programa} O \cref{cod:exemplo} é um exemplo de programa. Para mais exemplos, confira o \cref{apd:cdg}. \begin{lstlisting}[caption={Exemplo de programa},label={cod:exemplo}] /** * MSO: ativa o servo cujo eixo eh descrito * por drive_axis; informacoes de controle * sao gravadas em MSO_1 */ MSO(drive_axis,MSO_1); /* Atribui o valor 0.0 ao primeiro elemento do array speed */ speed[0] := 0.0; /* Atribui 1 para dataInitialized */ dataInitialized := 1; \end{lstlisting}