Como numerar capítulos de zero?

Sep 28 2020

Estou trabalhando no layout ConTeXt de um documento que deve ter capítulos (mas não seções) numerados de zero. O corpo do texto está sendo convertido com pandoc do markdown retirado de um repositório github, então estou procurando um comando simples que possa usar antes \starttext.

A estrutura de numeração deve ser semelhante a esta:

Algo como este MWE parece que deve fazer o que eu quero, mas a saída ainda está numerada a partir de 1:

\setcounter[chapter][0]

\starttext

\chapter{Zero Unit}
  \input knuth

\chapter{One More Time}
  \input knuth

\stoptext

Usar \setcounter[chapter][-1]não funciona melhor.

Consultando o Manual ConTeXt (2013), encontrei uma referência para \setupheadnumber. No entanto, isso também não funciona, pois a numeração é, por algum motivo, suprimida se uma seção tiver um número de valor zero:

\setupheadnumber[chapter][-1]

\starttext

\chapter{Zero Unit}
  \input knuth
  \section{Inner Zero.One}

\chapter{One More Time}
  \input knuth
  \section{Inner One.One}

\stoptext

Essa saída é especialmente ruim, pois confunde a numeração do Capítulo 0, seção 0.1, com o Capítulo 1.

Eu sei sobre o uso de ownnumber=comandos de seccionamento, mas isso exigiria a escrita de um filtro para pandoc que calcula e incorpora em toda a saída de contexto, e eu realmente gostaria de evitar isso. Com \setupheadnumbereu poderia obter 99% do caminho até lá e definir manualmente o número no corpo do texto para o Capítulo Zero, mas, novamente, eu gostaria de evitar edições programáticas ou manuais no corpo do texto.

É possível iniciar a numeração de capítulo / seção do zero usando apenas os comandos anteriores \starttext?

Respostas

3 UlrikeFischer Sep 28 2020 at 14:26

A lista de discussão https://www.mail-archive.com/[email protected]/msg79582.html diz que não é possível definir o contador para zero, mas você pode alterar a aparência para que 1 pareça 0. Imho uma solução um tanto estranha, mas parece funcionar:

\defineexpandable[1]\PreviousNumber
   {\number\numexpr#1-1\relax}

\defineconversion[PreviousNumber][\PreviousNumber]

\defineconversionset[zerostart][n,PreviousNumber][n]

\setuphead[chapter,section][sectionconversionset=zerostart]

\starttext

 \chapter{Zero}

 \chapter{One}

\stoptext

Depois de agosto de 2018, a conversão zerojá está definida, então agora você pode usar o um pouco mais curto:

\defineconversionset[zerostart][n,zero][n]

\setuphead[chapter,section][sectionconversionset=zerostart]

\starttext

 \chapter{Zero}

 \chapter{One}

\stoptext
AbuzarGhafari Sep 28 2020 at 11:38

Para começar da contagem 0, você precisa fornecer -1 no contador de capítulo. Como mostrado abaixo:

\documentclass{book}

\usepackage[margin=1in]{geometry}

\setcounter{chapter}{-1}

\begin{document}
    \chapter{Zero}
    
    \chapter{One}
\end{document}