LaTeX - O que são os "ambientes" LaTeX
LaTeX.net.br > LaTeX FAQ > Pequenas porções de (La)TeX > O que são os "ambientes" LaTeX
O que são os "ambientes" LaTeX
Enquanto o TeX fornece provisão direta para comandos, o LaTeX adiciona um conceito de "ambiente"; ambientes executam uma ação em um bloco (de alguma coisa ou outra) em vez de apenas fazer algo em um lugar em seu documento.
Um ambiente totalmente trivial poderia mudar a fonte usada em uma parte do texto, como
que define um monoblock que pode ser usado como
algum texto configurado em espaço simples
que vai parecer com:
de modo que é um exemplo particularmente simples. Um ambiente mais complicado é introduzido por \begin{document}; parece simples, mas precisa de todo tipo de código especial do TeX para que funcione 'transparente'; a maioria dos ambientes é mais elaborada do que monoblock e muito mais simples do que document.
Um ambiente coloca seu conteúdo dentro de um grupo de TeX,de modo que os comandos usados dentro do ambiente não 'vazem' — o ambiente monoblock , acima, restringe seu efeito aos seus próprios conteúdos (o material entre o \begin{monoblock} e o \end{monoblock}), que é exatamente o que você precisa para esse tipo de coisa.
Então, esses são ambientes "simples"; o monoblock, acima, não vai muito além do
{\ttfamily algum texto configurado em espaço simples}
apesar de que muitos ambientes úteis são igualmente simples (de olhar). Alguns, como verbatim, parecem simples, mas na verdade são muito complicados por dentro.
O LaTeX também permite argumentos para um ambiente:
e a utilização de fontblock como em:
produziria o mesmo efeito que o ambiente monoblock.
Ambientes também podem ter argumentos opcionais, da mesma forma que os comandos:
que vai configurar seu corpo em itálico, porém
vai observar seu argumento opcional e se comportar da mesma maneira que o monoblock com o qual começamos.
Observe que um argumento de ambiente (obrigatório ou opcional) não é passado para o texto final '\end' do ambiente — isso é especificado como uma macro sem argumentos, de modo que
produz uma mensagem de erro
! Número de parâmetro ilegal na definição de \endnormaltext.
Então, se você precisar passar um argumento de ambiente para o código final, você deve embalá-lo em uma macro própria: