Comment numéroter des chapitres à partir de zéro?
Je travaille sur la mise en page ConTeXt d'un document qui devrait avoir des chapitres (mais pas des sections) numérotés à partir de zéro. Le corps du texte est en cours de conversion avec pandoc à partir de markdown extrait d'un référentiel github, donc je recherche une commande simple que je peux utiliser auparavant \starttext.
La structure de numérotation devrait ressembler à ceci:
Quelque chose comme ce MWE semble devoir faire ce que je veux, mais la sortie est toujours numérotée à partir de 1:
\setcounter[chapter][0]
\starttext
\chapter{Zero Unit}
\input knuth
\chapter{One More Time}
\input knuth
\stoptext
L'utilisation \setcounter[chapter][-1]ne fonctionne pas mieux.
En consultant le manuel ConTeXt (2013), j'ai trouvé une référence pour \setupheadnumber. Cependant, cela ne fonctionne pas non plus, car la numérotation est pour une raison quelconque supprimée si une section a un numéro de valeur zéro:
\setupheadnumber[chapter][-1]
\starttext
\chapter{Zero Unit}
\input knuth
\section{Inner Zero.One}
\chapter{One More Time}
\input knuth
\section{Inner One.One}
\stoptext
Cette sortie est particulièrement mauvaise car elle confond la numérotation du chapitre 0, section 0.1 avec le chapitre 1.
Je sais comment utiliser des ownnumber=commandes de sectionnement, mais cela nécessiterait d'écrire un filtre pour pandoc qui le calcule et l'intègre dans la sortie de contexte, et j'aimerais vraiment éviter cela. Avec \setupheadnumberje pourrais obtenir 99% du chemin et définir manuellement le nombre dans le corps du texte pour Chapter Zero, mais encore une fois, je voudrais éviter les modifications programmatiques ou manuelles du corps du texte.
Est-il possible de démarrer la numérotation des chapitres / sections à partir de zéro en utilisant uniquement les commandes précédentes \starttext?
Réponses
La liste de diffusion https://www.mail-archive.com/[email protected]/msg79582.html dit qu'il n'est pas possible de mettre le compteur à zéro, mais vous pouvez changer l'apparence pour que 1 ressemble à 0. Je suis une solution plutôt étrange mais cela semble fonctionner:
\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
À partir d'août 2018, la conversion zeroest déjà définie, vous pouvez donc maintenant utiliser le plus court:
\defineconversionset[zerostart][n,zero][n]
\setuphead[chapter,section][sectionconversionset=zerostart]
\starttext
\chapter{Zero}
\chapter{One}
\stoptext
Pour commencer à partir de 0, vous devez fournir -1 dans le compteur de chapitre. Comme indiqué ci-dessous:
\documentclass{book}
\usepackage[margin=1in]{geometry}
\setcounter{chapter}{-1}
\begin{document}
\chapter{Zero}
\chapter{One}
\end{document}