-
-
Notifications
You must be signed in to change notification settings - Fork 41
Elementos em Latex
O propósito desta página é reunir informações sobre como implementar elementos em Latex úteis em TCCs.
Nesta seção apresenta-se como criar algoritmos no Limarka, utilizando códigos Latex:
Neste exemplo, utilizaremos a biblioteca algorithm2e
, porém existem diversas outras como algorithm
(Básica), algorithms
, algorithmicx
e algpseudocode
. Cada uma possui suas peculiaridades de configurações e estilização.
A documentação da biblioteca trás todos os comandos e exemplos de utilização, é recomendável a sua leitura.
O primeiro passo é editar o aquivo latexcustomizacao.sty
e adicionar a importação e o código para geração da lista (opcional):
\usepackage[ruled,vlined]{algorithm2e}
\renewcommand{\algorithmautorefname}{Algoritmo}% para utilizar \autoref
% Adicione o trecho a seguir somente se desejar incluir uma Lista de algoritmos (opcional)
\renewcommand{\listalgorithmcfname}{Lista de algoritmos}%
\renewcommand{\listasdousuario}{
\pdfbookmark[0]{\listalgorithmcfname}{loa}
\listofalgorithms
\cleardoublepage
}
As instruções dentro do [ ] (ruled,vlined
) são os parâmetros de estilização da biblioteca, neste caso, estamos adicionando as linhas de intervalo das instruções e o cabeçalho. Porém poderíamos adicionar linesnumbered
para numerar as linhas, boxed
para fechar o algoritmo em um caixa e etc.
Para utilizar no texto, basta invocar um \begin{algorithm}[H]
(o parâmetro H força o algoritmo a aparecer onde é invocado no texto):
\begin{algorithm}[H]
\caption{Como escrever algoritmos em \LaTeX2e\label{meualgoritmo}}
\KwData{\Delta i, S}
\KwResult{N}
\While{\Delta i > N}{
imprima()\;
$\Delta i \leftarrow N^2$ \;
\eIf{$V_f$ \neq $S_i$}{
atualizaOsValores\;
$N \leftarrow V_f$ + 2\;
}{
$N \leftarrow S_i$ - 7\;
}
$N \leftarrow N + 1$ \;
}
\end{algorithm}
Referenciando-o no texto \autoref{meualgoritmo}.
Resultado:
A Lista de algoritmos é gerado com os conteúdos de \caption{}
:
Os comandos que podem ser utilizados estão na documentação, mas segue abaixo um pequeno resumo de alguns dos mais úteis:
Ponto e Vírgula:
\;
Ifs:
\If{condição}{then block}
\Else{else block}
\ElseIf{elseif block}
\eIf{condition}{then block}{else block}
Switchs:
\Switch{condition}{Switch block}
\Case{a case}{case block}
\Other{otherwise block}
Loops:
\For{condition}{text loop}
\While{condition}{text loop}
\ForEach{condition}{text loop}
\Repeat{end condition}{text loop}
Input e Output:
\KwIn{input}
\KwOut{output}
Comentários:
\tcc{line(s) of comment}: Comentários de Trecho (/* */)
\tcp{line(s) of comment}: Comentários de Linha (// )
Observações:
-
Para mais detalhes de personalização, consultar a documentação.
-
Os comandos de atribuição e invocação de funções podem ser escritos naturalmente no bloco do algoritmo, desde que circundados por
$
($ N = 2 $
) e SEMPRE termine com o;
(caso não adicionar o ponto e virgula, as instruções serão geradas na mesma linha da instrução anterior), utilizando as marcações LaTeX padrão, como\leftarrow
,\neq
,\bf
, etc.
Para evitar Hifenização nas palavras adicione o seguinte código no latexcustomizacao.sty
e inclua suas palavras na lista. Consulte ajuda se necessário.
% Hifenizacao - Colocar lista de palavras que não devem ser separadas e que não estão no dicionario português.
\hyphenation{ Markdown Asciidoc }
Possibilita incluir várias figuras ao lado da outra.
Adicionar em latexcustomizacao.sty
:
\usepackage{subfig}
Para incluir figuras:
\begin{figure}[htbp]
\caption{Equivalência entre Latex e uma linguagem de marcação leve.\label{fig:latex-vs-markdown}}
\centering
\subfloat[Fonte de texto escrito em Latex, repleto de códigos e com baixa legibilidade.]{\label{lista:latex}{\includegraphics[width=12cm]{imagens/lista-latex.png} }}%
\newline
\subfloat[Fonte de texto escrito em uma linguagem de marcação, mais limpo e com maior legibilidade.]{\label{lista:markdown}{\includegraphics[width=13cm]{imagens/lista-markdown.png} }}%
\legend{Fonte: Autor.}
\end{figure}
Apresentação das figuras:
Outro exemplo:
\begin{figure}[htbp]
\caption{Soluções onerosas de formatações extraídos de TCCs reais durante o processo de Orientação\label{fig:problemas:formatacao}}
\centering
\subfloat[Tentativa de implementar espaçamento de títulos]{{\includegraphics[width=8cm]{imagens/problema-sem-numeracao-sem-estilo.png} }}%
\quad
\subfloat[Tentativa de realizar quebra de página]{{\includegraphics[width=7cm]{imagens/problema-referencias-quebra-de-pagina-com-enters.png} }}%
\quad
\subfloat[Sumário elaborado manualmente]{{\includegraphics[width=8cm]{imagens/problema-sumario-nao-automatizado.png} }}%
\legend{Fonte: Autor.}
\end{figure}
Ao utilizar \autoref{label} um texto é gerado conforme o tipo do label: Capítulo, Apêndice, seção, etc. Por padrão o texto de seção é gerado em minúsculo e de capítulo é gerado em maiúsculo. Você pode alterar o texto que será gerado da seguinte forma:
% Especifica o texto que será utilizado pelo \autoref
\addto\extrasbrazil{%
\def\chaptername{Capítulo}
\def\sectionautorefname{Seção}%
\def\subsectionautorefname{Subseção}%
\def\subsubsectionname{Subseção}
}
Sintaxes: Capítulos e Seções | Parágrafos | Itálico e Negrito | Listas | Notas de Rodapé | Figuras | Tabelas | Anexos e Apdêncides | Cronograma | Código Latex
Referências: Configuração | Livro | Capítulo de livro | Artigo | Site | Citando
Perfis de contribuição: Professor | Estudante | Desenvolverdor ruby
Introdução
Instalação
- Instalação Visão Geral
- Instalação no Linux
- Instalação no Windows
- Instalação no OS X
- Limarka com Docker
Iniciando utilização
- Baixando um modelo de projeto
- Estrutura de arquivos
- Configuração inicial
- Gerando o PDF
- Chat do limarka
Produção do Texto
Ajuda
Referências e citações
Latex
A Pesquisa
Usuários Avançados
- Configurações avançadas
- Compilação automática
- Ajuda offline
- Comandos
- Esqueleto
- Configuração
- Templates
- Performance
- Edição no emacs
- Elaboração de artigos
- Fora da ABNT
- Gerando releases
Outras linguagens
Vídeos
O Projeto limarka
Desenvolvimento
Recursos externos