\addcontentsline

279 views
Skip to first unread message

Felipe Abrão

unread,
Dec 21, 2015, 1:59:19 PM12/21/15
to Latex-br
Olá!

Tenho um pequeno problema: preciso que no sumário do meu documento apareça a quantidade de páginas de cada um de seus anexos. Exemplo:

Sumário
  • Capítulo 1 .............................. 3
  • Capítulo 2 ..............................20
  • ....................
  • ...................
  • Anexo A (2 páginas) ..............80
  • Anexo B (1 página).................82
  • ..............
O problema todo é que eu gostaria que a palavra página aparecesse no singular (página) se o anexo tivesse realmente só 1 página, e no plural (páginas) se tivesse mais de 1 página. Para isso, fiz o seguinte (está abaixo somente o trecho que interessa):

\section*{Anexo A --- Título do Anexo A}

\setcounter{paginaini}{\value{page}}
\addtocounter{paginaini}{-1}

Texto do anexo A. 

\setcounter{paginas}{\value{page}}
\addtocounter{paginas}{-\value{paginaini}}

\ifthenelse{\value{paginas}=1}
{\addcontentsline{toc}{section}{Anexo A --- Título do Anexo A (\thepaginas \ página)}}
{\addcontentsline{toc}{section}{Anexo A --- Título do Anexo A (\thepaginas \ páginas)}}


O artifício do "\ifthenelse" funciona bem, a menos de um detalhe: no sumário, a página relativa ao Anexo A é na verdade a última desse anexo, e não a primeira, como deveria ser. Isso acontece porque o comando "\addcontentsline" se refere à página em que é inserido no texto - no meu caso, no final da seção "Anexo A". Assim, se por exemplo meu Anexo A vai da página 80 a 81, o sumário fica:

..................
Anexo A - Título do Anexo A (2 páginas)................81
................

mas deveria ficar:

.....................
Anexo A - Título do Anexo A (2 páginas)................80
...................

Entenderam?

Se eu colocar o comando "\ifthenelse" no início da seção, logo abaixo de "\Section*{Anexo A --- Título do Anexo A}", esse problema se resolve, mas surge outro: a quantidade de páginas fica 0, pois o programa não sabe o valor do contador "páginas":

........................
Anexo A - Título do Anexo A (0 páginas)..............80
....................


Enfim... Alguma ideia? 

Muito obrigado a todos!

Felipe

Moacir Hardt Godoy

unread,
Dec 21, 2015, 2:56:55 PM12/21/15
to late...@googlegroups.com
Será que aqui não te dá uma luz? Eu imagino que uma solução switch/case seja mais fácil:

https://tex.stackexchange.com/questions/64131/implementing-switch-cases
--
You received this message because you are subscribed to the Google Groups "Latex-br" group.
To unsubscribe from this group and stop receiving emails from it, send an email to latex-br+u...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/latex-br/d7b4bdee-4ddd-4ffe-89dd-ef02ba31f7bd%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Moacir Hardt Godoy

unread,
Dec 21, 2015, 2:59:28 PM12/21/15
to late...@googlegroups.com



Em 21/12/2015 15:59, Felipe Abrão escreveu:

Felipe Abrão

unread,
Dec 22, 2015, 10:10:18 AM12/22/15
to Latex-br
Olá, Moacir,

agradeço pela ajuda, mas a sugestão não era bem o que buscava. O comando \ifthenelse do meu código atende bem ao que eu quero, o problema todo é que eu preciso saber o número de páginas no início da seção, enquanto essa informação na verdade só fica disponível no final da seção! Talvez eu tenha que jogá-la para um arquivo externo e depois lê-la numa segunda rodada.

De qualquer forma obrigado!
Reply all
Reply to author
Forward
0 new messages