A LaTeX é uma linguagem que permite criar documentos escritos (relatórios, resumos, livros e cartas) de ótima qualidade. Na verdade, apesar desta linguagem parecer difícil à primeira vista, ela permite obter um excelente resultado (em termos de layout), tão bom quanto com os processadores de texto convencionais graças ao princípio da LaTex. Além disso, a linguagem permite que o usuário tenha controle total sobre o layout de um documento. Viabiliza, ainda, que o código dos arquivos seja reutilizado.
A LaTeX se baseia principalmente nos trabalhos de dois pesquisadores. O primeiro é Donald E. Knuth que criou a linguagem TeX em 1978, cujo objetivo, de acordo com suas próprias palavras, era resolver dificuldades da edição de livros da época. O segundo, Leslie Lamport, decidiu tornar a TeX mais leve definindo comandos simples com a ajuda de macros (cadeias de comandos). O resultado é a LaTeX, espécie de metalinguagem
O objetivo dessa dica é permitir que alguém que não conheça a LaTeX use suas funcionalidades básicas e um usuário com mais experiência encontre com mais facilidade os comandos que necessita.
A LaTeX é uma linguagem compilada (parte-se de um arquivo fonte para chegar a um arquivo alvo). A fonte é geralmente um arquivo texto, cuja extensão é TEX, e o alvo é um arquivo DVI, POSTSCRIPT ou PDF.
O comando de base para compilar é:
latex <nome do arquivo fonte</ital>></ital>
.
Se a compilação se der sem erros, o resultado deste comando será um arquivo do mesmo nome que o arquivo fonte, mas com a extensão DVI (formato livre).
O layout é realizado com a ajuda de comandos precedidos de um caractere \ (barra oblíqua inversa) para que o compilador saiba que se trata de um comando LaTeX.
Por padrão, estes comandos têm um alcance geral sobre o documento. Para remediar esse probleminha, é preciso delimitar seu alcance definindo uma área de ação. Esta área é definida pelo uso de colchetes. O comando \bf permite colocar o texto em negrito. Veja alguns exemplos com diferentes alcances:
\bf{texto1 texto2}: texto1 texto2
\bf{texto1} texto2: texto1 texto2
Certos comandos utilizam argumentos opcionais, cuja sintaxe global dos comandos é \ command[option1]... [option n] {texto no qual se aplica o comando}.
Na medida em que certos caracteres possuem uma significação particular para o compilador LaTeX, é necessário escapar deles fazendo com que um caractere de escape lhes preceda. Veja um quadro apresentando estes caracteres:
Caractere | $<td width="40" align="center"> &<td width="40" align="center"> % | # | { | } | _ | \ | ^ | ~ |
Caractere de escape | \$<td width="40" align="center"> \&<td width="40" align="center"> \% | \# | \{ | \} | \_ | \ | \^ | \~ |
Antes de digitar o texto que aparecerá no documento final, é preciso escrever alguns comandos de formatação. Os comandos de formatação definem as características do documento como, por exemplo, a classe do documento (artigo, relatório, carta, livro, etc.) ou o tipo de letra que será utilizado para a exibição do texto. A estrutura geral de um comando é a seguinte:
\command[option]{argumento}
O primeiro comando, a incluir bem no início do arquivo, é o \documentclass. Ele define a classe do documento e as opções a serem aplicadas nele. Exemplo:
\documentclass[a4paper,11pt] {article}
Existem cinco classes de documentos:
Article (artigo): permite criar documentos curtos, como resumos de trabalhos ou de reuniões;
Report (relatório): é utilizado para documentos mais longos, pois ele produz os capítulos, o que a classe article não faz;
Book (livro): permite criar livros e é muito parecido com a classe report; Letter (carta) serve para escrever correspondências;
Slides permite criar diapositivos.
As opções do comando \documentclass influenciam o layout. Assim, a opção a4paper permite adaptar as margens do documento para que ele seja imprimível no formato A4. A opção 11pt define o tamanho dos tipos de letra em 11 pontos (o ponto valendo 1/72° polegadas e 1 polegada valendo 2,54 cm). O padrão dos caracteres é de 10pt.
Os comandos seguintes constituem o preâmbulo e se situam entre o comando \documentclass e o início real do documento. O preâmbulo contém comandos de download de extensões. Estas extensões permitem modificar o layout ou adicionar novas funcionalidades à LaTeX. Veja algumas delas entre as mais utilizadas:
\usepackage[latin1]{inputenc}: permite utilizar os caracteres ISO 8859-1, o que significa que você pode digitar diretamente os caracteres acentuados. Sem esta extensão é necessário utilizar uma sintaxe particular para a exibição dos acentos;
\usepackage[T1]{fontenc}: permite especificar à LaTeX a utilização da codificação dos caracteres T1, nova norma LaTeX não utilizada como padrão por razões de compatibilidade com os antigos documentos LaTeX;
\usepackage[portuguese]{babel}: permite a adaptação da LaTeX ao português. Em particular, a introdução do documento é chamada de sumário e não table of contents. Durante a compilação, a LaTeX converte os caracteres acentuados em caracteres Unicode (conjunto padronizado e universal de caracteres);
\usepackage{verbatim}: permite incluir texto não interpretado pela LaTeX. No documento , o texto (e, em particular, caracteres especiais, comandos LaTeX ou código) que fica entre \begin{verbatim} e \end{verbatim} não será interpretado durante a compilação do arquivo LaTeX e aparecerá exatamente assim no documento final;
\usepackage{graphicx}: veja ‘Inserção de imagens’, mais abaixo no texto.
Os seguintes comandos também podem ser inseridos no cabeçalho do arquivo TEX para especificar as informações sobre a criação do documento:
\title{título}: permite dar um título ao seu documento;
\author{nome do autor}: permite mostrar o nome do autor sob o título do documento. Se houver vários autores, eles serão classificados em ordem alfabética;
\date{data}: permite exibir a data no início do documento. Se você não especificar nenhuma data entre os colchetes, a data do dia aparecerá.
Veja um exemplo recapitulativo das explicações:
\documentclass[a4paper,11pt]{report}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[normalem]{ulem}
\usepackage[portuguese]{babel}
\usepackage{verbatim}
\usepackage{graphicx}
\title{resumo das conferências – mestrado em Informática 2003/2004}
\author{Lucio NEVES e Antônio PEREIRA}
\data{}
\begin{documento}
Texto contido no documento
\end{documento}
Observação: o texto que aparecerá no documento final é escrito entre \begin{document} e \end{document}.
Alguns comandos permitem organizar os documentos LaTeX. Você pode organizar o documento em diferentes partes e subpartes graças aos seguintes comandos:
\part{título}, \chapter{título}, \section{título}, \subsection{título}, \subsubsection{título}, \paragraph{título} e \subparagraph{ título }.
Estes comandos não são completamente disponíveis para todas as classes (espaçamento diferente, entre outras). Por exemplo, o comando \chapter não é suportado por documentos da classe report. Além de criar os títulos para cada parte, esses comandos são usados pela LaTeX para criar o índice. No entanto, se você não quiser ver o título de uma parte no índice, basta precedê-lo de um asterisco:
\subseção*{título}
Para mostrar a tabela de conteúdos no documento LaTeX final, basta digitar o comando \tableofcontents depois do comando \begin{document}.
Outra maneira prática de organizar a criação de um documento LaTeX é usar vários arquivos LaTeX para criar um único documento final. Para fazer isso, basta criar um documento LaTeX principal, contendo, em particular, o cabeçalho (descrito acima) e os arquivos TEX anexos cujo texto será incluído no documento final.
Esses anexos não devem conter nem cabeçalho nem os comandos \begin{document} e \end{document}. Somente o código LaTeX, a ser incluído realmente, deve ser escrito nos arquivos anexos. O arquivo principal suporta todas as formatações, carregamento de extensões e início e fim de documento.
Exemplo: Código do arquivo principal test.tex:
\documentclass[a4paper,11pt]{article}
\usepackage[latin1]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[normalem]{ulem}
\usepackage[portuguese]{babel}
\usepackage{verbatim}
\usepackage{graphicx}
\title{Test}
\author{Lucio NEVES e Antônio PEREIRA}
\date{}
\begin{document}
\maketitle \clearpage
\tableofcontents \clearpage
\input{test1}
\input{test2}
\end{document}
Código do arquivo anexo test1.tex:
\section{Espero que funcione}
Ah sim, realmente! \clearpage
Código do segundo arquivo anexo test2.tex :
\section{E se não funcionar, é porque tem alguma coisa errada}
Ah sim, realmente! \clearpage
Observe a presença de dois comandos específicos: o comando \clearpage, que permite que você não mostre nada na página atual (o seguinte código de texto aparecerá em uma nova página - comando mais ou menos equivalente: \newpage) e o comando \maketitle, que permite a exibição da página do título cujas características foram bem especificadas no cabeçalho.
Se você desejar criar um anexo com uma numeração particular, basta utilizar o comando \appendix, as sessões ou capítulos que você utilizará serão numerados com letras maiúsculas. O anexo também aparecerá no índice.
É possível usar referências a objetos já definidos. O comando \label{nome da referência} é usado para definir a referência, o comando \ref{nome da referência} permite que você use o número da referência e, para concluir, o \pageref{nome da referência} permite usar o número de página da referência. Para utilizar uma numeração relativa às figuras, sessões (e outras partes) e tabelas, o nome de referência deve ser digitado assim:
{fig:nome da figura}: para uma figura;
{tab:nome da tabela}: para uma tabela;
{section:nome da sessão}: para uma sessão;
{subsection:nome da subsessão}: para uma sub sessão etc.
Os seguintes comandos permitem modificar o estilo do texto:
\textbf{texto para colocar em negrito} permite escrever o texto com caracteres em negrito;
\textit{texto para ser colocado em itálico} permite escrever em itálico;
\textsc{texto para ser colocado em letras maiúsculas} permite colocar o texto em pequenas maiúsculas;
\textrm{texto em Roman} permite escrever utilizando a fonte Roman;
\textsf{texto em Sans serif} permite de escrever utilizando a letra tipo Sans serif.
A LaTeX também dispõe de comandos para modificar o tamanho dos caracteres. Os seguintes comandos são ordenados por ordem crescente do tamanho que dão ao texto: \tiny, \scriptsize, \footnotesize, \small, \normalsize, \large, \Large, \LARGE, \huge, \Huge.
Também é possível forçar o layout do documento usando os comandos alimentação de linha, quebra de página e espaçamento:
Para terminar um parágrafo e pular a linha no documento, basta deixar uma linha em branco no arquivo TEX. Por outro lado, para pular uma linha no documento final, basta utilizar o comando \newline, ou então \\.
O comando \newpage permite que você inicie uma nova página, assim como o comando \clearpage que, além disso, força a exibição de figuras e tabelas flutuantes na página atual (maiores detalhes sobre isso na sessão ‘Tabelas’, mais abaixo). Também é possível inserir um espaço horizontal ou vertical usando os respectivos comandos \hspace{size} e \vspace{size}, o tamanho pode ser expresso em mm e cm. O espaço criado pode ser um pouco comprimido pela LaTeX por questões de layout. Para inserir um espaço incompreensível, basta acrescentar um asterisco ao comando:
\vspace*{7mm}
.
A apresentação do texto também pode ser melhorada graças aos ambientes itemize, enumerate e description. Os exemplos que seguem explicam seu uso:
O ambiente \ textbf {itemize} permite:
\begin{itemize}
\item{estruturar o seu texto;}
\item{ventilá-lo;}
\item{facilitar sua leitura.}
\end{itemize}
\vspace{1cm}
O ambiente \ textbf {enumerate} também permite:
\begin{enumerate}
\item{estruturar o seu texto;}
\item{ventilá -lo;}
\item{facilitar sua leitura.}
\end{enumerate}
\vspace{1cm}
O ambiente \ textbf {description}, quanto a ele, permite descrever os
elementos insistindo em cada elemento: \newline
\begin{description}
\item[o primeiro elemento]{é descrito.}
\item[o segundo elemento]{também.}
\item[o terceiro elemento]{também.}
\end{description}
O código acima dá o seguinte resultado:
O ambiente itemize permite:
O ambiente enumerate também o permite.
O ambiente description permite descrever os elementos insistindo em cada elemento:
É possível atribuir uma cor ao texto graças ao ambiente color (\usepackage{color}):
\textcolor{cor}{texto a ser colorido} permite atribuir a cor;
\colorbox{cinza25}{Atividades:} exibe um texto sobre fundo colorido;
\fcolorbox{cor das bordas}{cor do plano de fundo}{texto} cria uma moldura em volta da cor do plano de fundo;
\pagecolor{cor} define a cor de fundo da página.
LaTeX propõe oito cores pré-definidas: black , white, red , green, blue, cyan, magenta e yellow.
Novas cores podem ser definidas graças aos comandos \definecolor{nome da cor}{rgb}{valor do vermelho, valor do verde, valor do azul} ou \definecolor{cmyk}{cyan, magenta, amarelo, preto}.
Veja alguns exemplos de cores:
\definecolor{rltred}{rgb}{0.75,0,0}
\definecolor{rltgreen}{rgb}{0,0.5,0}
\definecolor{oneblue}{rgb}{0,0,0.75}
\definecolor{marron}{rgb}{0.64,0.16,0.16}
\definecolor{forestgreen}{rgb}{0.13,0.54,0.13}
\definecolor{purple}{rgb}{0.62,0.12,0.94}
\definecolor{dockerblue}{rgb}{0.11,0.56,0.98}
\definecolor{freeblue}{rgb}{0.25,0.41,0.88}
\definecolor{myblue}{rgb}{0,0.2,0.4}
A LaTeX permite inserir imagens de diferentes formatos. O mais simples é inserir arquivos do tipo eps (Encapsuled Postscript):
Basta inserir no preâmbulo a seguinte linha:
\usepackage{graphicx}
Em seguida, inserir o arquivo de imagem usando o comando:
\includegraphics{arquivo.eps}
Algumas opções:
[width=5cm]: define a largura da imagem em 5 cm;
[height=3cm]: define a altura em 3 cm;
[angle=45]: aplica uma rotação de 45 graus.
Exemplo:
\includegraphics[width=7cm,height=50mm]{arquivo.eps}
Observação: ao invés de especificar uma medida em centímetros, é possível utilizar um tamanho relativo ao texto. Por exemplo, [width=0.75\textwidth] significa: "A largura do gráfico será de 75%, a da largura do texto na página”.
Para os arquivos não eps, quando o sistema operacional não gera os tubos nomeados (direcionamentos de entrada-saída, também chamados de ‘pipas’), em particular nos sistemas Windows, a inserção não funciona diretamente. Nos sistemas de tipo Unix (particularmente Linux), isso funciona perfeitamente. Compilando o arquivo LaTeX para obter um PDF com o programa pdfLaTeX, a inclusão pode ser feita diretamente em qualquer sistema.
Se a inclusão de arquivos não eps sempre causa um problema, o melhor é converter os arquivos em EPS (o software ImageMagick) permite, entre outras, converter formatos graças ao comando convert.
Para inserir imagens contendo grandes superfícies monocrômicas, prefira o formato PNG ao formato JPG, pois o resultado é geralmente bem melhor.
A LaTeX também fornece um ambientefigure que permite colocar figuras, automaticamente, para evitar o corte de gráficos em várias páginas (isto pode ser problemático).
As tabelas permitem uma melhor estrutura do documento, tornando-o mais compreensivo e mais legível. LaTeX fornece um ambiente para criar tabelas de forma simples:tabular.
Uma tabela se define entre os comandos \begin{tabular} e \end{tabular}. A primeira etapa consiste em definir a gestão das colunas. Isso é feito entre colchetes:\begin{tabular}{definição}.
O conteúdo de uma coluna pode ser centrado (c) ou posicionada à esquerda (l) ou à direita (r). Para definir diversas colunas da mesma maneira, basta utilizar a seguinte sintaxe:
{número de colunas a ser definido}{definição a ser aplicada nestas colunas}
.
Para traçar as delimitações entre as colunas, basta usar o caractere |. Em seguida, o conteúdo deve ser definido linha por linha. Os elementos devem ser separados, coluna por coluna, com a ajuda do caractere &. Finalizando, o comando \hline permite traçar um traço de união entre 2 linhas.
Veja um exemplo de código LaTex para tabela:
\begin{tabular}
l r| l}
\hline
centro & centro & esquerda & direita \\
caixa centrada & ainda centrada & à esquerda & à direita \\
% Traçamos duas linhas
\hline
\hline
caixa centrada & ainda centrada & à esquerda & à direita \\
\end{tabular}
Veja o resultado:
centro caixa centrada |
centro ainda centrada |
esquerda direita à esquerda à direita |
caixa centrada | ainda centrada | à esquerda à direita |
Observação: somente os separadores definidos foram traçados (nenhum separador foi definido para a parte de baixo).
LaTeX possui um modo matemático muito desenvolvido que permite a edição de equações e fórmulas de maneira simples e com um bom resultado. LaTeX produz ela mesma, e sozinha, o layout destas fórmulas.
Existem duas maneiras de entrar em modo matemático. A primeira consiste em ficar no corpo do texto e de enquadrar as fórmulas matemáticas pelo caractere $. Quando o caractere $ é duplo ($$), a fórmula enquadrada é destacada do corpo do texto.
Por exemplo, texto $ fórmula $ texto resulta em
texto fórmula texto
Em compensação, o comando texto $$ fórmula $$ texto resulta nisso:
texto
fórmula
texto
Veja uma lista de comandos particularmente úteis em modo matemático:
Índices: $ X_{índices} $;
Expoentes: $ X^{expoente}$.
Observação: se houver apenas um símbolo em índice ou em expoente, então é possível omitir os colchetes.
Frações: $\frac{numerador}{denominador}$;
Raiz: $\sqrt{expressão}$ </bold>para a raiz quadrada $\sqrt[n]{expressão}$ para uma raiz enésima;
Soma: <strong>$ \displaystyle {\sum_{condição de partida}^{condição de chegada}} expressão da soma$ <strong>;
Integrais: <strong>$\int_partida^chegada f(x)dx$ <strong>;
Limites: <strong>$ \displaystyle {\lim_{variável \rightarrow (valor para o qual tende a variável)}}f(x)$ <strong>.
Para definir matrizes, podemos utilizar o ambiente Array ou utilizar o pacote amsmath; então, é preciso colocar o comando \usepackage{amsmath} no cabeçalho do documento com os seguintes ambientes:
Veja um exemplo de matriz:
$ \begin{pmatrix}
element1&element2 \\
element3&element4
\end{pmatrix}$
E seu resultado gráfico:
Existe uma tabela de caracteres que permite utilizar uma grande variedade de símbolos.
Observação: certos caracteres não aparecem em certos navegadores (particularmente em certas versões do Internet Explorer), eles são substituídos por um quadrado, a descrição permite entender o sentido.
Símbolos | Descrição | Comando LaTeX? | Codificação Unicode correspondente |
---|---|---|---|
? | para todos |
\forall |
8704 |
? | parcialmente |
\part |
8706 |
? | existe |
\exist |
8707 |
? | vazio |
\emptyset |
8709 |
? | nabla |
\nabla |
8711 |
? | elemento de |
\in |
8712 |
? | não é um elemento de |
\notin |
8713 |
? | contém como elemento |
\ni |
8715 |
? | produto |
\prod |
8719 |
? | soma |
\sum |
8721 |
? | menos |
- |
8722 |
? | raiz quadrada |
\sqrt |
8730 |
? | infinito |
\infty |
8734 |
? | e |
\wedge |
8869 |
? | ou |
\vee |
8870 |
? | ponto de intersecção |
\cap |
8745 |
? | unidade |
\cup |
8746 |
? | integral |
\int |
8747 |
? | semelhante à |
\sim |
8764 |
? | sensivelmente igual à |
\cong |
8773 |
? | quase igual à |
\approx |
8776 |
? | diferente de |
\ne |
8800 |
? | idêntico à |
\equiv |
8801 |
? | menor ou igual |
\le |
8804 |
? | maior ou igual |
\ge |
8805 |
? | compreendido em |
\subset |
8834 |
? | contendo |
\sup |
8835 |
? | não está compreendido em |
\notin |
8836 |
? | compreendido em ou igual a |
\subseteq |
8838 |
? | contendo ou igual à |
\supseteq |
8839 |
? | somatório |
\oplus |
8853 |
? | produto vetorial |
\otimes |
8855 |
? | perpendicular à |
\perp |
8869 |
? | operador ponto |
\cdot |
8901 |
Signos | Descrição | Comando LaTeX | Codificação Unicode correspondente |
---|---|---|---|
? | seta para a esquerda |
\leftarrow |
8592 |
? | seta para cima |
\uparrow |
8593 |
? | seta para a direita |
\rightarrow |
8594 |
? | seta para baixo |
\downarrow |
8595 |
? | seta para a esquerda/para a direita |
\leftrightarrow |
8596 |
? | seta para baixo dobrada para a esquerda |
\hookleftarrow |
8629 |
? | seta dupla para a esquerda |
\Leftarrow |
8656 |
? | seta dupla para cima |
\Uparrow |
8657 |
? | seta dupla para a direita |
\Rightarrow |
8658 |
? | seta dupla para baixo |
\Downarrow |
8659 |
? | seta dupla para a esquerda/para a direita |
\Leftrightarrow |
8660 |
Símbolos | Descrição | Comando LaTeX | Codificação Unicode correspondente |
---|---|---|---|
? | Alpha maiúscula |
\Alpha |
913 |
? | alpha minúscula |
\alpha |
945 |
? | Beta maiúscula |
\Beta |
914 |
? | beta minúscula |
\beta |
946 |
? | Gama maiúscula |
\Gamma |
915 |
? | gama minúscula |
\gamma |
947 |
? | Delta maiúscula |
\Delta |
916 |
? | delta minúscula |
\delta |
948 |
? | Épsilon maiúscula |
\Epsilon |
917 |
? | épsilon minúscula |
\epsilon |
949 |
? | Dzeta maiúscula |
\Zeta |
918 |
? | dzeta minúscula |
\zeta |
950 |
? | Eta maiúscula |
\Eta |
919 |
? | eta minúscula |
\eta |
951 |
? | Teta maiúscula |
\Theta |
920 |
? | teta minúscula |
\theta |
952 |
? | Iota maiúscula |
\Iota |
921 |
? | iota minúscula |
\iota |
953 |
? | Capa maiúscula |
\Kappa |
922 |
? | capa minúscula |
\kappa |
954 |
? | Lâmbda maiúscula |
\Lambda |
923 |
? | lâmbda minúscula |
\lambda |
955 |
? | Mi maiúscula |
\Mu |
924 |
? | mi minúscula |
\mu |
956 |
? | Ni maiúscula |
\Nu |
925 |
? | ni minúscula |
\nu |
957 |
? | Ksi maiúscula |
\Xi |
926 |
? | ksi minúscula |
\xi |
958 |
? | Omicron maiúscula |
\Omicron |
927 |
? | omicron minúscula |
\omicron |
959 |
? | Pi maiúscula |
\Pi |
928 |
? | pi minúscula |
\pi |
960 |
? | Rho maiúscula |
\Rho |
929 |
? | rho minúscula |
\rho |
961 |
? | Sigma maiúscula |
\Sigma |
931 |
? | sigma minúscula |
\sigmaf |
962 |
? | sigma minúscula |
\sigma |
963 |
? | Tau maiúscula |
\Tau |
932 |
? | tau minúscula |
\tau |
964 |
? | Upsilon maiúscula |
\Upsilon |
933 |
? | upsilon minúscula |
\upsilon |
965 |
? | Phi maiúscula |
\Phi |
934 |
? | phi minúscula |
\phi |
966 |
? | Khi maiúscula |
\Chi |
935 |
? | khi minúscula |
\chi |
967 |
? | Psi maiúscula |
\Psi |
936 |
? | psi minúscula |
\psi |
968 |
? | Ômega maiúscula |
\Omega |
937 |
? | ômega minúscula |
\omega |
969 |
Foto: ©Benjamin Dada - Unsplash.