Changebar + manyfoot

Bonjour,

j’ai un souci avec la combinaison des deux packages précités: changebar
semble faire des lignes verticales trop importantes quand il y a des
notes issues de manyfoot.

Ci dessous un ECM.
N’hésitez pas à me répondre à mon adresse personnelle car je ne reçois
pas toujours les mails de la liste (souci free?).
Bien cordialement
Eric

\documentclass[french]{article}
\usepackage[T1]{fontenc} % Encodage T1 (adapté au français)
\usepackage{lmodern} % Caractères plus lisibles
\usepackage{babel} % Réglages linguistiques (avec french)
\pagestyle{empty} % N’affiche pas de numéro de page
\usepackage[para]{manyfoot}
\usepackage{changebar}
\setcounter{changebargrey}{0} % 85: densité de blanc
\setlength\changebarsep{10mm}

\newfootnote{A}
\newfootnote[para]{B}

\newcounter{footnoteA}
\newcounter{footnoteB}

\newcommand{\footnoteA}{%
\stepcounter{footnoteA}%
\Footnotemark\thefootnoteA \FootnotetextA{}
}

\newcommand{\footnoteB}{%
\stepcounter{footnoteB}%
\Footnotemark\thefootnoteB \FootnotetextB\thefootnoteB}
\renewcommand{\thefootnoteB}{\alph{footnoteB} %\roman
}

\begin{document}

\textbf{1. Changebar semble faire des lignes verticales trop importantes
quand il y a des notes issues de manyfoot.}

\begin{changebar}[.1mm]
Pour toute personne souhaitant des notes\footnoteA{Comme celle-ci.}
de bas
de page\footnoteA{Donc, ici} se séparant en plusieurs
catégories\footnoteB{Par exemple, cette seconde catégorie},
l’extension \textsf{manyfoot} peut fournir une réponse
intéressante, avec en particulier la possibilité de changer les
mises en
forme associées\footnoteB{Dans cette catégorie, les notes se
suivent comme dans un paragraphe ordinaire, à la différence de
la première
catégorie au format plus usuel.}.
\end{changebar}
\vspace{3mm}

  1. Ci dessous sans note finale. Même souci.
    \vspace{3mm}

\begin{changebar}[.1mm]
Pour toute personne souhaitant des notes\footnoteA{Comme celle-ci.}
de bas
de page\footnoteA{Donc, ici} se séparant en plusieurs
catégories\footnoteB{Par exemple, cette seconde catégorie},
l’extension \textsf{manyfoot} peut fournir une réponse
intéressante, avec en particulier la possibilité de changer les
mises en
forme associées.
\end{changebar}
\vspace{3mm}

  1. Ci dessous sans aucune note. \textbf{C’est mieux même si la barre
    verticale est trop haute à mon gré.}
    \vspace{3mm}

\begin{changebar}[.1mm]
Pour toute personne souhaitant des notes de bas
de page se séparant en plusieurs
catégories,
l’extension \textsf{manyfoot} peut fournir une réponse
intéressante, avec en particulier la possibilité de changer les
mises en
forme associées.
\end{changebar}
\vspace{3mm}

  1. Et ici avec une note banale. C’est acceptable, avec la même critique
    que précédemment.
    \vspace{3mm}

\begin{changebar}[.1mm]
Pour toute personne souhaitant des notes\footnote{Une note
classique.} de bas
de page se séparant en plusieurs
catégories,
l’extension \textsf{manyfoot} peut fournir une réponse
intéressante, avec en particulier la possibilité de changer les
mises en
forme associées.
\end{changebar}
\end{document}

(si c’est trop long à lire : à la fin, il y a une solution, avec une simplification drastique du préambule pour les deux types de notes, et un ajustement employant \cbstart et \cbend au lieu de l’environnement changebar pour contrer un bug dans un paragraphe).

Cette réponse est tardive, je ne retrouve pas le mail d’origine, et peut-être que de nombreuses autres personnes ne l’ont jamais reçues. D’où l’intérêt de ce nouveau forum sur le web : tous les messages sont accessibles.

J’aimerais bien résoudre ce problème, mais la documentation de manyfoot n’est pas faite pour des êtres humains.

J’illustre tout d’abord ce que donne le code d’Éric :

La documentation parle dès le départ (page 2) d’un style para comme si l’on était sensé savoir ce qu’est le style para. Est-ce que cela correspond à « chaque note de bas de page est affichée dans un nouveau paragraphe » ou bien « toutes les notes sont regroupés dans un unique paragraphe » ? Ou autre chose ? Désolé, je ne connais pas les subtilités des près de 7000 packages LaTeX actuellement disponible (il devait y en avoir un bon millier ou un peu plus en 2005, date de la documentation).

Ceux qui manipulent les notes de bas de page quotidiennement avec les divers packages qui gèrent l’aspect des notes de bas de page savent certainement ce qu’il en est, mais pas les néophytes.

La documentation date de 2005, mais elle correspondrait plutôt à de la documentation de 1985.

On lit ensuite (page 3) :

We use the hand style of footnote marking,

ce à quoi je n’ai rien compris, je ne connais pas le hand style. Ce n’est pas comme s’il manquait de la place dans le PDF pour donner des exemples explicites.

Mais juste avant, on nous présente une syntaxe,

\Footnotetext⟨suffix⟩{⟨marker⟩}{⟨inserted text⟩}

sans nous expliquer ce que serait ce marker, et pire, juste après, la (presque) même commande est présentée sous la forme :

\Footnotetext{⟨marker⟩}{⟨inserted text⟩}

(presque, puisque le suffixe a disparu).

L’auteur semble expliquer les rouages internes du package, on s’en moque en tant qu’utilisateur final, il peut mettre cela à la fin du document.

On veut une présentation des commandes à employer, avec des exemples explicites.

En page 4, le code suivant est présenté :

\newcounter{footnoteA}
\newcommand{\footnoteA}{%
    \stepcounter{footnoteA}%
    \Footnotemark\thefootnoteA \FootnotetextA{}}
\newcounter{footnoteB}
\newcommand{\footnoteB}{%
    \stepcounter{footnoteB}%
    \Footnotemark\thefootnoteB \FootnotetextB\thefootnoteB}
\renewcommand{\thefootnoteB}{\roman{footnoteB}}

Pourquoi une accolade vide après \FootnotetextA, et rien après \FootnotetextB mais \thefootnoteB (qui certes peut être pris comme un argument) ?

Et où est la partie ⟨inserted text⟩ de la commande dont la syntaxe est pourtant \Footnotetext⟨suffix⟩{⟨marker⟩}{⟨inserted text⟩} ?

Et comment cette syntaxe légèment différente (entre les définitions de \footnoteA et \footnoteB) met-elle les notes les unes à la suite des autres dans le même paragraphe ? Illustration en page 3 :

\thefootnoteB est un compteur, mais je ne le vois pas après le texte.

Comment un utilisateur qui découvre LaTeX ne peux pas avoir envie de prendre ses jambes à son cou et se réfugier dans Word (il faut vraiment me pousser à bout pour que j’envisage de suggérer à quelqu’un de passer à Word) ?

Pour de nombreux packages, il manque vraiment un Package Machin, the missing manual (bref, un manuel pour les êtres humains).

Alors, on se met à employer de l’IA (quitte à faire bouillir des océans car des manuels ne sont pas destinés aux humains), qui se met à divaguer en proposant :

% Création des niveaux de notes
\newfootnote{A}
\newfootnote[para]{B}

% Compteurs personnalisés
\newcounter{footnoteA}
\newcounter{footnoteB}

% Commandes utilisateur
\newcommand{\footnoteA}[1]{%
  \stepcounter{footnoteA}%
  \Footnotemark\thefootnoteA \FootnotetextA{#1}%
}

\newcommand{\footnoteB}[1]{%
  \stepcounter{footnoteB}%
  \Footnotemark\thefootnoteB \FootnotetextB{#1}%
}

\renewcommand{\thefootnoteB}{\alph{footnoteB}} % ou \roman{footnoteB}, etc.

L’IA a ajouté un paramètre à la commande \footnoteA (et B), et c’est bien naturel, car dans l’exemple du manuel, la commande \footnoteA prend effectivement un argument :

Finally, we explain\footnoteA{This is the first A-level
footnote.} on the previous example\footnoteB{This is the first
B-level footnote.} how to automate\footnoteA{The second
A-footnote.} enumeration of the additional\footnoteB{The second
B-footnote.} footnote\footnoteA{The third A-footnote.}
levels\footnoteB{The third very very very very very very very
very very long B-footnote.}

Il est bien employé \footnoteA{This is the first A-level footnote.} dans le code précédent. Donc le \newcommand{\footnoteA}{...} du manuel utilisateur est parfaitement incompréhensible pour l’utilisateur de base.

Quoi qu’il en soit, j’étais heureux avec le code fourni par l’IA :

le grief sur le dépassement de la ligne sur le bas étant supprimé (il y a sur la même ligne la jambe de la lettre « g », d’où le fait que la ligne verticale va légèrement plus bas que la ligne de base, quant au haut de la ligne verticale, cela tient compte de la hauteur de la note de bas de page).

Mais à y regarder de plus près :

la première lettre suivant la note est mangée, tandis qu’au bas de la page… :

Le texte de la note est pris comme numéro de note… Et le texte mangé se trouve affiché comme texte de la note.

Clairement la syntaxe fournie par l’IA est incorrecte. Mais elle donne manifestement une piste quand au problème de la barre verticale qui dépasse sur le bas.

Alors, on a un espoir en relisant l’introduction du manuel :

An additional \DeclareNewFootnote command is introduced since the version 1.5 of the package. It simplifies creation of new footnote levels with automatic enumeration.

Super ! Exactement ce qu’il faut !

On va donc en section 2 du manuel : Declaring New Footnotes.

On lit la syntaxe (dès les premières lignes) :

\DeclareNewFootnote[⟨footnote style⟩]{⟨suffix⟩}[⟨enumeration style⟩]

Et là, ben on est bien penaud…

⟨footnote style⟩ et ⟨enumeration style⟩ ne sont absolument pas explicités.

On a juste cette explication lapidaire :

Here ⟨footnote style⟩ is the customization style (plain is default) and ⟨enumeration style⟩ is a style of numbering.

Puis à la fin de la section, ce code d’exemple :

\DeclareNewFootnote{A}
\DeclareNewFootnote[para]{B}[roman]

Ah, mais c’est génial !

Tout le bordel de code précédent peut être remplacé par ces deux lignes, et encore mieux, le problème du dépassement de la ligne vertical est résolu (exepté à un endroit, et cette fois, c’est la faute de changebar)

Mais pourquoi l’auteur du manuel n’a pas mis directement la nouvelle syntaxe de la version 1.5 dès le départ ?

Bref.

\documentclass[french]{article}
\usepackage[T1]{fontenc} % Encodage T1 (adapté au français)
\usepackage{lmodern} % Caractères plus lisibles
\usepackage{babel} % Réglages linguistiques (avec french)
\pagestyle{empty} % N’affiche pas de numéro de page
\usepackage[para]{manyfoot}
\usepackage{changebar}
\setcounter{changebargrey}{0} % 85: densité de blanc
\setlength\changebarsep{10mm}

\DeclareNewFootnote{A}
\DeclareNewFootnote[para]{B}[roman]

\begin{document}

\textbf{1. Changebar semble faire des lignes verticales trop importantes
quand il y a des notes issues de manyfoot.}

\begin{changebar}[.1mm]
Pour toute personne souhaitant des notes\footnoteA{Comme celle-ci.}
de bas de page\footnoteA{Donc, ici} se séparant en plusieurs
catégories\footnoteB{Par exemple, cette seconde catégorie},
l’extension \textsf{manyfoot} peut fournir une réponse
intéressante, avec en particulier la possibilité de changer les
mises en forme associées\footnoteB{Dans cette catégorie, les notes se
suivent comme dans un paragraphe ordinaire, à la différence de
la première catégorie au format plus usuel.}.
\end{changebar}
\vspace{3mm}

2. Ci dessous sans note finale. Même souci.
\vspace{3mm}

\begin{changebar}[.1mm]
Pour toute personne souhaitant des notes\footnoteA{Comme celle-ci.}
de bas de page\footnoteA{Donc, ici} se séparant en plusieurs
catégories\footnoteB{Par exemple, cette seconde catégorie},
l’extension \textsf{manyfoot} peut fournir une réponse
intéressante, avec en particulier la possibilité de changer les
mises en forme associées.
\end{changebar}
\vspace{3mm}

3. Ci dessous sans aucune note. \textbf{C’est mieux même si la barre
verticale est trop haute à mon gré.}
\vspace{3mm}

\begin{changebar}[.1mm]
Pour toute personne souhaitant des notes de bas
de page se séparant en plusieurs catégories,
l’extension \textsf{manyfoot} peut fournir une réponse
intéressante, avec en particulier la possibilité de changer les 
mises en forme associées.
\end{changebar}
\vspace{3mm}

4. Et ici avec une note banale. C’est acceptable, avec la même critique
que précédemment.

\vspace{3mm}
\begin{changebar}[.1mm]
Pour toute personne souhaitant des notes\footnote{Une note
classique.} de bas de page se séparant en plusieurs
catégories, l’extension \textsf{manyfoot} peut fournir une réponse
intéressante, avec en particulier la possibilité de changer les
mises en forme associées.
\end{changebar}
\end{document}

Il subsiste un problème sur la seconde barre verticale. Ceci se produit sur un paragraphe qui se termine au bord droit de la zone de texte.

Alors pour cela, on remplace le second environnement changebar par :

%\begin{changebar}[.1mm]
\cbstart
Pour toute personne souhaitant des notes\footnoteA{Comme celle-ci.}
de bas de page\footnoteA{Donc, ici} se séparant en plusieurs
catégories\footnoteB{Par exemple, cette seconde catégorie},
l’extension \textsf{manyfoot} peut fournir une réponse
intéressante, avec en particulier la possibilité de changer les
mises en forme associées.\cbend
%\end{changebar}
\vspace{3mm}

et on ajoute \setlength\changebarwidth{0.1mm} dans le préambule.

C’est du bricolage… (\cbstart et \cbend sont décris dans le manuel ; notamment dans la section des bugs).

Évidemment, les auteurs de packages sont des bénévoles. Mais si le mainteneur actuel de changebar avait un dépôt public avec une gestion des issues, peut-être que la traque et l’éradication des bugs serait plus simple…

1 « J'aime »