O Zen do LaTeX


Lista de símbolos
2006-04-27, 1:35 am
Filed under: Listas

É normal para nós, pobres pós-graduandos, utilizar uma série de garatujas incompreensíveis em nossos trabalhos. Para tornar a vida dos que lerão o trabalho (sejamos honestos, só o pessoal da banca, afinal, quem é que lê esses troços) menos dolorosa, convém fazer uma lista com o significado desses gatafunhos. Para facilitar a nossa já tão atribulada vida aqui vai um ambiente para facilitar a formatação dessa lista:

% Lista de símbolos
\newenvironment{listofsymbols}[1][R(x)]{ %
\begin{list}{}{%
\renewcommand\makelabel[1]%
{\large\ensuremath{##1}}
\setlength{\listparindent}{0pt}
\settowidth{\labelwidth}{\makelabel{#1}}
\setlength{\leftmargin}{\labelwidth}
\addtolength{\leftmargin}{\labelsep}
} %
}{% Comandos executados no fim do ambiente
\end{list}
}

Pode-se usá-la, por exemplo, assim (em um documento da classe abnt):

\pretextualchapter{Lista de símbolos}

\begin{listofsymbols}[E\{g(x)\}]
\item[q] Fluxo de massa em um trecho do duto
\item[q_i] Fluxo de massa entrando em um trecho do duto
\end{listofsymbols}

Este ambiente precisa de uma opção, que é o tamanho da maior entrada na lista de símbolos. No código acima esta opção foi dada logo após o início do comando, por [E\{g(x)\}]. Esse tamanho é utilizado para fazer com que todas as explicações estejam alinhadas corretamente. Seria possível prescindir dessa informação e ainda conseguir que todas as explicações ficassem alinhadas, mas isto já exige um nível de mágica que eu ainda não domino.

O ambiente funciona quase do mesmo modo que um enumerate. A única diferença é que as explicações ficam alinhadas e que tudo o que estiver dentro dos colchetes no item será formatado como se estivesse dentro de $$. Mesmo assim, caso se use os $$ por alguma razão, isso não trará problemas.

Para ajudar, vou explicar cada um dos comandos utilizados para gerar esse “environment”

O primeiro comando, \newenvironment, como o nome diz, cria um novo ambiente. Ele precisa de três argumentos obrigatórios: o nome do environment, os comandos que devem ser executados no começo do environment, e os comandos que devem ser executados no fim do environment. Além disso, também é possível declarar argumentos extras, para serem passados para o ambiente, e pelo menos um desses argumentos pode ser opcional. É isso o que quer dizer os dois colchetes ([1][R(x)]) na declaração do comando. O primeiro diz que o ambiente espera uma opção. O segundo diz qual é o valor padrão para essa opção, caso ela não esteja presente.

Em seguida, o comando \begin{list} declara uma lista genérica. Todas as listas no LaTeX são implementadas internamente utilizando esse comando. O primeiro argumento para esse ambiente (que está vazio nesta definição) é algo para ser colocado como item padrão, caso o comando \item esteja sem []. O segundo argumento são declarações que serão executadas antes do início da lista. Aí é que devem ir as opções de formatação da lista. E é aí que a maior parte do ambiente está definida.

A primeira definição de formatação é uma redefinição do comando \makelabel. Esse comando é utilizado pelo LaTeX para formatar o que está entre colchetes no comando \item[]. Aqui se usou o comando \large para deixar os símbolos só um pouco maiores que o texto normal (achei que ficou legal) e o comando \ensuremath{} que faz com que o conteúdo sempre seja formatado como se estivesse entre $$. O ##1 significa o argumento para o \makelabel. Como já estamos dentro de um ambiente que declarou uma opção (o \newenvironment), se usassemos apenas #1 ele colocaria aí o argumento que foi passado para o \newenvironment, e não para o \makelabel (se você não entendeu nada, não se preocupe. Eu explico muito mal :-P ).

Em seguida ao \makelabel, estão alguns comando para o ajuste dos espaços. O \listparindent é o espaço de indentação de um parágrafo quando ele ocorre dentro da lista. É raro usar isso em uma lista de símbolos, mas, caso se use, achei que ficaria mais bonito sem identação.

O próximo comando faz o ajuste do começo da explicação. O comando \settowidth{}{} define o comprimento que está no primeiro argumento com o tanto de espaço utilizado pelo segundo argumento.

Em seguida vêm dois comandos para ajustar o tamanho da margem esquerda. Esses dois comandos fazem com que o texto das definições fique alinhado sempre depois do símbolo (também achei essa opção mais bonita). Ai acabam as declarações da lista. O resto da definição deve ser fácil de entender.

É isso!

About these ads

4 Comentários so far
Deixe um comentário

Muito boa essa lista de símbolos. Quebrou um galhão. Valeu!

Comentário por Flavio

Não entendi como mudar o tamanho da maior entrada. Poderia explicar mais explicitamente como definir o tamanho da maior entrada?
Obrigado

Comentário por ALEXANDRE

Logo após o \begin{listofsymbols} voce pode colocar a maior entrada entre colchetes. Por exemplo:

\begin{listofsymbols}[\int x dx]

O Latex irá formatar a fórmula colocada alé e utilizar o tamanho resultante para alinhar as demais fórmulas. Eu mudei um pouco o texto, você poderia me dizer se ficou mais claro, por favor ?

Obrigado!

Comentário por ozendolatex

Obrigado pela ajuda

Comentário por Anônimo




Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s



Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

%d blogueiros gostam disto: