Annoter dans la marge

Bonjour.

Quand je dois annoter un texte dans la marge, j’utilise marginpar. Ça fonctionne bien, mais reste pénible d’utilisation : si subitement je dois ôter les annotations, il faut que je commente toutes les commandes \marginpar, c’est casse-pieds.

  1. Or il m’arrive de recevoir des documents annotés avec des boîtes colorées placées dans la marge, et je crois qu’il est possible de les faire disparaître toutes à l’aide d’un seul paramètre : connaîtriez-vous des packages qui font ça ?

  2. Enfin, on m’a dit qu’il est également possible d’annoter un pdf dont on n’a pas le code-source ! Savez-vous quel logiciel présente cette fonctionnalité ? J’utilise Linux.

Merci.

Bonjour, concernant le point 1, le package todonotes (https://ctan.org/pkg/todonotes) offre une option à placer à l’appel du package, qui désactive l’affichage de ces boîtes.

Ainsi, même si le document comporte des commandes \todo (qui affiche ces boîtes, normalement), le PDF obtenu après compilation n’affiche pas ces boîtes.

L’option en question est disable :

\usepackage[disable]{todonotes}

Il y a peut-être d’autres packages qui offrent cette possibilité.

Concernant le point 2, vous souhaitez annoter des PDF multipages ? S’il s’agit de fichier PDF d’une seule page, on peut imaginer l’inclure dans un document avec un \includegraphics (dans une classe de document standalone pour ne pas augmenter la taille du PDF d’origine par des marges) et utiliser un package qui permet d’annoter par-dessus une image.

Pour cela il y a https://ctan.org/pkg/callouts, ou https://ctan.org/pkg/tikz-imagelabels. Peut-être d’autres packages sont aussi disponibles.

Pour des fichiers PDF multipages, peut-être que https://ctan.org/pkg/pdfreview est ce qu’il vous faut ? Voir aussi le fichier d’exemple de ce package : https://mirrors.ctan.org/macros/latex/contrib/pdfreview/sample.pdf.

1 « J'aime »

Sinon, pour désactiver une commande, il suffit de la redéfinir pour qu’elle ne fasse rien. Par exemple : \renewcommand\marginpar[2][]{}. Quand vous voulez afficher les notes marginales il suffit de commenter cette ligne dans votre fichier.

Pour votre deuxième question, si vous parlez d’annoter directement un fichier PDF sans passer par LaTeX, la plupart des lecteurs de PDF proposent cette fonctionnalité avec plus ou moins de possibilités.

1 « J'aime »

Merci pour le conseil sur marginpar !

J’apprécie le package todonotes, c’est bien ce que je cherchais.

Comme j’ai de nombreuses remarques à faire sur le texte que je corrige, j’aimerais en augmenter l’interlignage, mais garder un interlignage simple pour les notes marginales.

Sauriez-vous comment faire ? L’option \doublespacing du package setspace affecte tout le document, notes y compris.

Vous pouvez modifier localement l’espacement. Je prends l’exemple de la commande \marginpar.

Pour la démonstration, je charge spécifiquement le package xcolor.

L’idée principale est d’employer l’environnement singlespace fourni par le package setspace dans la commande d’affichage dans la marge (donc dans \marginpar).

Mais, par défaut, il y a … un défaut.

\documentclass[11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{xcolor} % pour démonstration
\usepackage[doublespacing]{setspace}
\usepackage{lipsum} % pour le faux texte

\begin{document}
% test naïf : un défaut
Test\marginpar{\begin{singlespace}Une longue phrase sur plusieurs lignes\end{singlespace}}\lipsum[1]

\color{blue}
% tentative imparfaite de correction du défaut
Test\marginpar{\vspace{-0.72\baselineskip}\begin{singlespace}Une longue phrase sur plusieurs lignes\end{singlespace}}\lipsum[1]
\end{document}

La note en marge sur le texte noir (approche par défaut) ne se trouve pas sur la ligne de base de l’endroit où on l’appelle : la note est plus basse que ce à quoi l’on s’attend.

Dans le texte en bleu, je tente une correction, avec une valeur approximative de -0.72\baselineskip. Cette valeur varie selon la taille de la fonte donnée à la classe du document (ici 11pt).

C’est mieux, mais sans doute perfectible (la ligne rouge est rajoutée sur cette image pour contrôler l’alignement) :

Il faudra tâtonner. Les personnes connaissant mieux les subtilités de LaTeX sauront quelle valeur exacte fournir (j’apprends via la documentation du package alternatif setspaceenhanced que le fameux double espace  du package setspace est en fait un espacement multiplié par un facteur de 1,667 au lieu d’un facteur de 2).

Correction et précision :

La documentation de setspace comporte le listing du code, et en fait le double espace  produit un espacement d’un facteur de 1,667 pour une taille de 10pt, de 1,618 pour une taille de 11pt et de 1,655 pour une taille de 12pt.

C’est très étrange : je constate que le choix du corps influe sur l’espacement entre la ligne de base et le trait tracé par todonotes. On peut le constater avec l’ECM ci-dessous, en choisissant le réglage par défaut et, à la compilation suivante (et après un latexmk -c destiné à nettoyer les scories), l’option textsize=tiny :

\documentclass[12pt,french,a4paper,oneside]{article}
\usepackage[top=30mm,bottom=40mm,inner=40mm,outer=45mm
, marginparwidth=35mm]{geometry}
\usepackage[sans=true, math=true]{plex-otf}
% \usepackage[textsize=tiny]{todonotes}
\usepackage{todonotes}
\usepackage{babel}
\begin{document}
Ceci et \todo{... ou encore ce bidule.}cela, et ensuite ce machin et ce truc.
\end{document}

Je ne vois pas la différence que vous évoquez (le choix du corps influe sur l’espacement entre la ligne de base et le trait tracé par todonotes.)

Pour mieux voir, je vous propose d’utiliser \todo[size=\tiny]{...} pour le changement de corps, ainsi les deux versions seront sur le même document.

Pour rapprocher le texte principal de la marge (et de la note, donc), je rajoute les mots « bidule chouette » (parce que, pourquoi pas ?).

Donc avec le code lualatex suivant :

\documentclass[12pt,french,a4paper,oneside]{article}
\usepackage[top=30mm,bottom=40mm,inner=40mm,outer=45mm
, marginparwidth=35mm]{geometry}
\usepackage[sans=true, math=true]{plex-otf}
%\usepackage[textsize=tiny]{todonotes}
\usepackage{todonotes}
\usepackage{babel}
\begin{document}
Ceci et \todo{... ou encore ce bidule.}cela, et ensuite ce machin et ce truc bidule chouette.

\vspace{0.75cm}

Ceci et \todo[size=\tiny]{... ou encore ce bidule.}cela, et ensuite ce machin et ce truc bidule chouette.
\end{document}

je vois ceci :

S’agit-il du fait que le texte principal est sur une ligne de base (bleue, rajoutée) tandis que les notes ne le sont pas ?

Je n’ai jamais vraiment compris comment todonotes choisit de placer ses boites colorées verticalement.

Pouvez-vous indiquer précisément ce qui ne convient pas ?

J’ai un peu consulté les issues  du package todonotes sur https://github.com/henrikmidtiby/todonotes/issues (où il reste possible de signaler ce qui pourrait être un bug), et parmis celles-ci une a attiré mon attention, la numéro 77 (https://github.com/henrikmidtiby/todonotes/issues/77), qui indique l’existance du package snaptodo (https://ctan.org/pkg/snaptodo) qui permet de mieux positionner les boîtes de notes marginales (mais ce ne sont pas des boîtes colorées). Mais je ne suis pas certain que cela vous convienne esthétiquement, ni que cela résolve le problème que vous avez avec todonotes (il faudrait savoir lequel).

Je ne vois pas le même phénomène. Chez moi (TeX Live à jour et à la vanille sur Debian/Linux), j’ai même réussi à avoir la ligne orange de todonotes sur  les caractères. Je pensais que mon ECM fonctionnait. Zut. Encore un mystère.

Vous pouvez joindre une image ? ou la déposer sur un hébergeur d’image et transmettre le lien ?

Pour joindre une image, il y a dans la barre d’outil le bouton ressemblant à « ↥ » la base de la flèche représentant un disque dur. Si l’image est dans le presse-papier, joignez-là simplement en collant dans la zone de rédaction de texte.