[prev in list] [next in list] [prev in thread] [next in thread] 

List:       tex-br
Subject:    Re: [TeX-BR] URLs e formatacao de capitulo.
From:       Miguel Frasson <frasson () math ! leidenuniv ! nl>
Date:       2001-08-29 9:30:38
Message-ID: Pine.LNX.4.33.0108290938210.19207-100000 () enquist ! math ! leidenuniv ! nl
[Download RAW message or body]


Ola, Fabricio. Seus anseios foram atendidos...

> Os títulos Sumário, Lista de Figuras, Lista de Tabelas e Referências
> Bibliográficas devem ficar no topo topo da pagina, centralizados com a
> *mesma* aparencia do \chapter{}. (apaguei a linha
> \setlength{\vskip}{40pt} do código abaixo para conseguir isso com o
> \chapter{})

Se voce procurar a definicao desses comandos no report.cls, vai ver que
eles chamam o \chapter*. Entao, o que voce fizer no comando
\@makeschapterhead ("schapter" de "stared" chapter) vai ficar valendo na
formatacao desses ambientes.

> Estou me batendo pra tirar a indentação do Sumário tambem. Tentando fazer
>
> CAPITULO
> SECAO
> SUBSECAO
>
> ficarem na mesma margem.
>
> Não espero que ninguem use seu tempo para escrever este código só para meu
> caso 8-), mas, se alguem tiver algo parecido, ou entao, puder explicar mais
> ou menos onde no modelo eu personalizo os itens citados acima, já seria de
> muita ajuda mesmo.

Eu entendo o seu sentimento :) aqui na minha universidade eles tem um
"LaTeX companion" explicando esses truques... Como nao eh em todo lugar
que voce acha isso, vou escrever o trecho que voce quer...

Nao escrevi o codigo, mas acabei escrevendo um jornal explicando como
alterar o codigo...

===================================================================

Vamos ver a definicao do \section no report, por exemplo:

\newcommand\section{\@startsection {section}{1}{\z@}%
                                   {-3.5ex \@plus -1ex \@minus -.2ex}%
                                   {2.3ex \@plus.2ex}%
                                   {\normalfont\Large\bfseries}}

Isso quer dizer que o comando \@startsection faz todo o servico. Vamos
distrincha-lo entao.

Note que o primeiro parametro eh a palavra "section". Qual seria a
utilidade? Suponha que estivesse escrito "palavra". Ele vai escrever no
arquivo <arquivo>.toc uma linha \contentsline{"palavra"}{text}{page}

O comando \contentsline chamara, na hora de escrever a copia final, a
seguinte linha

  \l@"palavra"{text}{page}

No caso das secoes (e subsecoes), eles tem um comando \@dottedtocline
dentro.

O comando \@dottedtocline tem a seguinte definicao

\@dottedtocline{level}{indent}{numwidth}{text}{page}

onde

 - level: eh o nivel de seccioanmento (logico) do ambiente referido. Por
          exemplo, o capitulo tem nivel 0, a secao eh subordinada ao
          capitulo (e portanto tem um nivel a menos) e tem nivel 1, etc;
          a utilidade disso eh que atraves do contador tocdepth (que tem
          valor default 2) controla o que vai aparecer no Sumario. Com o
          valor N, somente aparecem no sumario os comandos de
          seccionamento que tem "level" menor ou igual a N.
          (se usar \setcounter{tocdepth}{1}, so aparecem no sumario
          capitulos e secoes)

 - indent: distancia da margem esquerda

 - numwidth: comprimento da caixa onde vai o numero se no parametro "text"
             temum comando \numberline{}

 - text: o texto (em geral o titulo da secao)

 - page: a pagina.

Voce ainda tem mais 3 comandos que controlam a formatacao:

\@pnumwidth: comprimento da caixa onde vai o "page". Use \setlength

\@tocrmar: determina a que distancia da margem direita vai ocorrer a
           quebra de linha se "text" for muito comprido; eh distancia, mas
           use \renewcommand ! (aconselhavel maior que \@pnumwidth)

\@dotsep: a distancia entre os pontos em mu (math units, sendo 18mu=1em,
          e 1em eh o comprimento da letra M na fonte corrente); eh um
          numero puro como 1.3 ou 10; mude com \renewcommand; (se voce
          colocar um numero muito grande, voce se livra dos pontos)

------------------------------------

Voltando, vimos que o \@dottedtocline tem 5 parametros, mas no \l@section
voce so ve 3. Eh que o \contentsline vai fornecer o {text}{page} depois.
Legal, nao?

Note tambem que os \l@chapter{text}{page} e \l@part{}{} sao definidos
separadamente, para deixar o capitulo e a parte fazerem um carnaval no seu
sumario.

Para finalizar, vamos ver o que eh o comando \@startsection:

\@startsection{"palavra"}{level}{indent}{beforeskip}{afterskip}{style}
[texto opcional]{texto}

Como eh previsivel, o \@startsection vai escrever uma linha no .toc; que
linha eh essa?

\contentsline{"palavra"}{texto opcional, se presente, ou texto}{\thepage}

Tambem ele vai tentar chamar o comando \"palavra"mark{} se existente, para
marcas de cabecalho de pagina. Veja que no article.cls esta presente o
\sectionmark{} e o \subsectionmark{}.

Os outos parametros vao se encarregar de imprimir o titulo da secao, no
meio do documento:

 - level: semelhante ao level do \@dottedtocline, mas agora determina o
          nivel logico do comando de seccionamento para imprimir o numero
          na frente do titulo da secao, subsecao, etc. Ja percebeu que a
          \subsubsection nao imprime numero? Eh por que o contador
          secnumdepth (que eh diferente do tocdepth!) eh por default 2.

 - indent: espaco deixado desde a margem esquerda; (pode ser ateh
           negativo, se voce quiser ele entrando na margem)

 - beforeskip: este eh legal :) ele deixa um espaco de
               |beforeskip|+\parskip (isso mesmo, modulo do comprimento!)
               (lembrando que parskip eh a distancia extra deixada de um
               paragrafo a outro).
               * se beforeskip eh negativo, o proximo paragrafo nao tem
               indentacao de paragrafo (mas isso eh elegante, e se voce
               nao quer, basta usar o pacote indentfirst).
               * se for positivo, o proximo paragrafo eh normal.
               Este eh um comprimento
               * esticavel (\@plus o quanto pode esticar) ou
               * comprimivel (\@minus valor que pode ser encolhido)
               no caso do LaTeX querer esticar ou encolher a pagina, para
               acomodar melhor os elementos.

 - afterskip: esse tambem eh legal!
              * se positivo, entao ele vai iniciar um paragrafo e deixara
              um espaco de "afterskip"+\parskip ateh o proximo paragrafo.
              * se negativo, ele nao vai iniciar um paragrafo! Eh um
              cabecalho de secao corrente, como na classe amsart!

 - style: comandos de fonte que definem como "texto" sera impresso
          (\centering (equivalente ao ambiente "center"),
           \reggedright (equiv. amb. flushleft, isso mesmo, "left"),
           \raggedleft, (equiv. amb. flushright),
           \bfseries,\large, etc)

Ufa!

Acho que com tudo isso da pra deixar tudo exatamente do jeito que voce
quer...

Um abraco e boa sorte.

Miguel.


-- 
=======================================
Miguel Vinicius Santini Frasson
=======================================
PhD student at Leiden University
e-mail: frasson@math.leidenuniv.nl
        mvsfrasson@bol.com.br
http://mvsfrasson.vila.bol.com.br


--
TeX-BR     Homepage: http://biquinho.furg.br/tex-br/

           Para sair da lista mande um mail com unsubscribe
           no corpo para tex-br-request@listas.furg.br

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic