Académique Documents
Professionnel Documents
Culture Documents
1 Introduction....................................................................1
1.1 Résumé ..................................................................................................1
1.2 Installation ..............................................................................................2
1.3 Activation ................................................................................................3
1.4 Retour d'expérience ..............................................................................3
1.5 Conventions de composition utilisées dans ce manuel...................5
2 Structure du document...............................................6
2.1 A la une...................................................................................................6
2.2 Visibilité Cyclisme .................................................................................6
2.2.1 Cyclisme mondial et local ............................................................6
2.2.2 Visibilité initiale..............................................................................8
2.2.3 Rattraper les modifications invisibles.........................................8
2.3 Mouvement ............................................................................................8
2.4 Édition de la structure ...........................................................................9
2.5 Arbres épars .........................................................................................11
2.6 Listes simples ......................................................................................12
2.7 Tiroirs....................................................................................................15
2.8 Blocs .....................................................................................................15
3 Tables .............................................................................17
3.1 Éditeur de tableaux intégré................................................................17
3.2 Largeur et alignement des colonnes ................................................21
3.3 Groupes de colonnes .........................................................................22
3.4 Le mode mineur Orgtbl ......................................................................22
3.5 La feuille de calcul...............................................................................23
3.5.1 Références . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
........
3.5.2 Syntaxe de la formule pour Calc . . . . . . . . . . . . . . . . . . . . . . 25
............
3.5.3 Formes Emacs Lisp en tant que formules . . . . . . . . . . . . . . 27
..............
3.5.4 Durées et valeurs temporelles . . . . . . . . . . . . . . . . . . . . . . . 28
.........
3.5.5 Formules de champ et de plage . . . . . . . . . . . . . . . . . . . . . . 28
...........
3.5.6 Formules des colonnes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
............
3.5.7 Fonctions de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
............
3.5.8 Édition et débogage des formules . . . . . . . . . . . . . . . . . . . . 30
......
3.5.9 Mise à jour du tableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
. . . . . . . . . . . . . . . . . . . . . . . . ...........................
..
3.5.10 Caractéristiques avancées . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
...........
3.6 Org Tracé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..........
ii
...........
iii
4 Hyperliens .....................................................................38
4.1 Format du lien......................................................................................38
4.2 Liens internes ......................................................................................39
4.3 Cibles radio ..........................................................................................40
4.4 Liens externes .....................................................................................40
4.5 Liens sur la manutention ....................................................................42
4.6 Utilisation de liens en dehors d'Org..................................................45
4.7 Abréviations des liens.........................................................................45
4.8 Options de recherche dans les liens de fichiers.............................46
4.9 Recherches personnalisées ..............................................................47
6 Tags.................................................................................61
6.1 Étiquette Héritage ...............................................................................61
6.2 Paramétrage des étiquettes...............................................................61
6.3 Hiérarchie des balises ........................................................................64
6.4 Recherches sur les étiquettes ...........................................................65
7 Propriétés et colonnes..............................................67
7.1 Syntaxe des propriétés ......................................................................67
7.2 Propriétés spéciales ............................................................................69
7.3 Recherche de biens............................................................................69
7.4 Héritage des biens ..............................................................................70
7.5 Vue des colonnes................................................................................71
7.5.1 Définition des colonnes .............................................................71
7.5.1.1 Champ d'application des définitions des colonnes...........71
7.5.1.2 Attributs des colonnes .......................................................71
7.5.2 Utilisation de la vue en colonnes..............................................73
7.5.3 Capturer la vue d'une colonne ..................................................74
iv
8 Dates et heures ...........................................................76
8.1 Horodatage ..........................................................................................76
8.2 Création d'horodatages......................................................................77
8.2.1 L'invite date/heure ......................................................................78
8.2.2 Format d'heure personnalisé ....................................................80
8.3 Délais et programmation .....................................................................80
8.3.1 Insertion de délais ou de calendriers........................................82
8.3.2 Tâches répétées ..........................................................................82
8.4 Horodatage du temps de travail ........................................................84
8.4.1 Commandes d'horloge...............................................................84
8.4.2 La table de l'horloge ...................................................................86
8.4.3 Résoudre les problèmes de temps mort et d'horloge continue89
8.5 Estimation de l'effort ...........................................................................91
8.6 Prendre des notes avec un chronomètre relatif..............................92
13 L'exportation ...........................................................147
13.1 Le répartiteur d'exportation............................................................147
13.2 Paramètres d'exportation...............................................................148
13.3 Table des matières .........................................................................151
13.4 Inclure les fichiers ...........................................................................152
13.5 Remplacement des macros ...........................................................153
13.6 Lignes de commentaires ................................................................155
13.7 Exportation ASCII/Latin-1/UTF-8 ..................................................155
13.8 Beamer Export.................................................................................157
13.8.1 Commandes d'exportation du Beamer ................................157
13.8.2 Paramètres d'exportation spécifiques au Beamer ..............157
13.8.3 Cadres et blocs dans Beamer...............................................158
13.8.4 Syntaxe spécifique au Beamer ..............................................159
13.8.5 Aide à l'édition.........................................................................160
13.8.6 Un exemple de Beamer.........................................................160
13.9 Exportation HTML ...........................................................................160
13.9.1 Commandes d'exportation HTML ........................................161
13.9.2 Paramètres d'exportation spécifiques à HTML ..................161
13.9.3 Doctypes HTML ......................................................................162
13.9.4 Préambule et postambule HTML .........................................163
13.9.5 Citation des balises HTML ....................................................163
vi
13.9.6 Titres dans l'exportation HTML.............................................163
13.9.7 Liens dans l'exportation HTML .............................................164
13.9.8 Tableaux dans l'exportation HTML ......................................164
13.9.9 Images dans l'exportation HTML..........................................165
13.9.10 Formatage mathématique dans l'exportation HTML .......165
13.9.11 Zones de texte dans l'exportation HTML ..........................166
13.9.12 Support CSS ..........................................................................166
13.9.13 Affichage de pages web en JavaScript ..............................167
13.10 LATEX Export ..................................................................................168
13.10.1 Commandes d'exportation LATEX/PDF ............................168
13.10.2 Paramètres d'exportation spécifiques à LATEX...................169
13.10.3 Structure de l'en-tête et du découpage LATEX......................170
13.10.4 Citation du code LATEX.........................................................172
13.10.5 Tableaux dans l'exportation LATEX........................................172
13.10.6 Images dans l'exportation LATEX ............................................174
13.10.7 Listes simples dans l'exportation LATEX ...........................175
13.10.8 Blocs sources dans l'exportation LATEX ...............................175
13.10.9 Exemples de blocs dans l'exportation LATEX......................176
13.10.10 Blocs spéciaux dans l'exportation LATEX............................176
13.10.11 Règles horizontales dans l'exportation LATEX .................177
13.10.12 Blocs de versets dans l'exportation LATEX...........................177
13.10.13 Blocs de citation dans l'exportation LATEX ........................178
13.11 Exportation Markdown..................................................................178
13.12 OpenDocument Text Export ........................................................179
13.12.1 Conditions préalables à l'exportation ODT .......................179
13.12.2 Commandes d'exportation ODT .........................................179
13.12.3 Paramètres d'exportation spécifiques à l'ODT .................179
13.12.4 Extension de l'exportation ODT..........................................180
13.12.5 Application de styles personnalisés...................................180
13.12.6 Liens dans l'exportation ODT..............................................181
13.12.7 Tableaux dans l'exportation ODT.......................................181
13.12.8 Images dans l'exportation ODT ..........................................182
13.12.9 Formatage mathématique dans l'exportation ODT..........183
13.12.9.1 Extraits mathématiques LATEX......................................183
13.12.9.2 Fichiers de formules MathML et OpenDocument....184
13.12.10 Étiquettes et légendes dans l'exportation ODT..............184
13.12.11 Exemples littéraux dans l'exportation ODT.....................185
13.12.12 Sujets avancés dans l'exportation ODT ..........................185
13.13 Org Export......................................................................................190
13.14 Texinfo Export ...............................................................................190
13.14.1 Commandes d'exportation de Texinfo...............................190
13.14.2 Paramètres d'exportation spécifiques à Texinfo ..............190
13.14.3 En-tête du fichier Texinfo ....................................................191
13.14.4 Page de titre et de copyright de Texinfo............................191
13.14.5 Fichier du répertoire d'informations ....................................192
13.14.6 Titres et structure des sections ............................................192
13.14.7 Indices....................................................................................192
13.14.8 Citation du code Texinfo......................................................193
14 Édition........................................................................203
14.1 Configuration....................................................................................203
14.1.1 La variable org-publish-project-alist...........................203
14.1.2 Sources et destinations des fichiers.......................................203
14.1.3 Sélection des fichiers...............................................................204
14.1.4 Action de publication ..............................................................204
14.1.5 Options pour les exportateurs ...............................................205
14.1.6 Liens de publication ................................................................209
14.1.7 Générer un plan du site ..........................................................209
14.1.8 Générer un index.....................................................................211
14.2 Téléchargement de fichiers............................................................211
14.3 Exemple de configuration ................................................................211
14.3.1 Exemple : configuration simple de la publication................212
14.3.2 Exemple : configuration de publication complexe ..............212
14.4 Déclenchement de la publication ..................................................213
17 Divers..........................................................................247
17.1 Achèvement.....................................................................................247
17.2 Modèles de structure ......................................................................247
17.3 Touches rapides ...............................................................................248
17.4 Une vue d'ensemble plus propre ..................................................248
17.4.1 Mode d'indentation Org..........................................................249
17.4.2 Retrait dur................................................................................249
17.5 Exécuter des commandes dans la région active.........................250
17.6 Numérotation dynamique des titres ..............................................250
17.7 La clé C-c C-c très occupée........................................................250
17.8 Résumé des réglages dans le tampon ........................................251
17.9 Expressions régulières ...................................................................254
17.10 Syntaxe Org...................................................................................254
17.11 Documentation dépendante du contexte....................................255
17.12 Caractère d'échappement ..............................................................255
17.13 Évaluation du code et questions de sécurité ............................255
17.14 Interaction avec d'autres paquets...............................................256
17.14.1 Paquets avec lesquels Org coopère....................................256
17.14.2 Paquets en conflit avec le mode Org.................................257
17.15 Utiliser Org sur un ATS ................................................................259
17.16 Protocoles pour l'accès externe..................................................259
17.16.1 Le protocole store-link .....................................................260
17.16.2 Le protocole de capture .....................................................260
17.16.3 Le protocole open-source ...................................................261
17.17 Org Crypt........................................................................................262
17.18 Org Mobile .....................................................................................263
17.18.1 Mise en place de la zone de transit ...................................263
17.18.2 Pousser vers l'application mobile .......................................263
17.18.3 Extraction de l'application mobile .......................................264
18 Index principal.........................................................291
1 Introduction
1.1 Résumé
Org Mode est un outil de création et un gestionnaire de listes TODO pour GNU Emacs.
Il s'appuie sur un langage de balisage léger en texte clair utilisé dans les fichiers portant
l'extension ".org".
En tant qu'outil de création, Org vous aide à rédiger des documents structurés et offre
des possibilités d'exportation. Les fichiers Org peuvent également être utilisés pour la
programmation alphabétique et la recherche reproductible. En tant que gestionnaire de
listes TODO, Org vous aide à organiser vos tâches de manière flexible, des besoins
quotidiens à la planification détaillée de projets, en permettant l'enregistrement, des vues
multiples sur vos tâches, l'exportation de vos agendas, etc.
Le mode Org est mis en œuvre au-dessus du mode Outline, ce qui permet de
conserver le contenu de fichiers volumineux bien structuré. Le cycle de visibilité et
l'édition de la structure aident à travailler avec l'arbre. Les tableaux sont facilement créés
à l'aide d'un éditeur de tableaux intégré. Des liens de type URL en texte brut renvoient à
des sites web, des courriels, des messages Usenet, des entrées BBDB et tout autre fichier
lié aux projets.
Org développe des tâches organisationnelles autour de fichiers de notes qui
contiennent des listes ou des informations sur des projets en texte brut. La planification
des projets et la gestion des tâches utilisent des métadonnées qui font partie d'un nœud
de contour. Sur la base de ces données, des entrées spécifiques peuvent être extraites
dans des requêtes et créer des vues d'agenda dynamiques qui intègrent également le
calendrier et l'agenda d'Emacs. Org peut être utilisé pour mettre en œuvre de nombreux
schémas de planification de projets, tels que le système GTD de David Allen.
Org peuvent servir de système de rédaction à source unique avec exportation vers
de nombreux formats différents tels que HTML, LATEX, Open Document et Markdown. De
nouveaux backends d'exportation peuvent être dérivés de ceux existants, ou définis à
partir de zéro.
Les fichiers Org peuvent inclure des blocs de code source, ce qui rend Org
particulièrement adapté à la rédaction de documents techniques contenant des exemples
de code. Les blocs de code source Org sont entièrement fonctionnels ; ils peuvent être
évalués sur place et leurs résultats peuvent être saisis dans le fichier. Il est ainsi possible
de créer un recueil de recherche reproductible à partir d'un seul fichier.
Org garde les choses simples. Lors de sa première utilisation, il devrait ressembler à
un gestionnaire de contenu simple et facile à utiliser. La complexité n'est pas imposée,
mais un grand nombre de fonctionnalités sont disponibles en cas de besoin. Org est une
boîte à outils. De nombreux utilisateurs n'utilisent en fait qu'une fraction très personnelle
des capacités d'Org, et savent qu'il y en a plus lorsqu'ils en ont besoin.
Tout cela est réalisé avec des fichiers texte simples, le format de fichier le plus
portable et le plus évolutif. Org fonctionne sous Emacs. Emacs est l'un des programmes
les plus largement portés, de sorte que le mode Org est disponible sur toutes les
principales plates-formes.
Il existe un site web pour Org qui fournit des liens vers la version la plus récente
d'Org, ainsi que des informations supplémentaires, des questions fréquemment posées
Chapitre 1 : Introduction 2
(FAQ), des liens vers des tutoriels, etc. Cette page se trouve à l'adresse suivante :
https://orgmode.org.
Une version antérieure (7.3) de ce manuel était disponible sous forme de livre de
poche auprès de la maison d'édition Network Theory Ltd., fermée en 2009.
Chapitre 1 : Introduction 3
1.2 Installation
Org est inclus dans les distributions de GNU Emacs, vous n'avez probablement pas
besoin de l'installer. La plupart des utilisateurs activeront simplement Org et
commenceront à explorer ses fonctionnalités.
Si, pour une raison ou une autre, vous souhaitez installer Org au-dessus de cette
version pré-packagée, vous pouvez utiliser le système de paquetage d'Emacs ou cloner
le dépôt git d'Org. Nous recommandons fortement de s'en tenir à une seule méthode
d'installation.
Lorsque vous installez Org en plus de la version pré-packagée, veuillez noter que les
versions stables d'Org sont censées être entièrement compatibles avec les trois
dernières versions stables d'Emacs, mais pas avec les anciennes versions d'Emacsen.
1.3 Activation
Les tampons en mode Org nécessitent que le verrouillage des polices soit activé : c'est le cas par défaut
dans Emacs1 .
Il existe des problèmes de compatibilité entre le mode Org et certains autres paquets
Elisp (voir Section 17.14.2 [Conflits], page 257). Veuillez prendre le temps de vérifier la
liste.
Pour une meilleure expérience, les trois commandes Org org-store-link, org-
capture et org-agenda devraient être accessibles partout dans Emacs, et pas
seulement dans les tampons Org. À cet effet, vous devez les lier à des clés globalement
disponibles, comme celles réservées aux utilisateurs (voir la section "Key Binding
Conventions" dans elisp). Voici des suggestions de liaisons, veuillez modifier les
touches à votre convenance.
(global-set-key (kbd "C-c l") #'org-store-
link) (global-set-key (kbd "C-c a") #'org-
agenda) (global-set-key (kbd "C-c c") #'org-
capture)
Les fichiers portant l'extension '.org' utilisent le mode Org par défaut. Pour activer le
mode Org dans un fichier qui n'a pas l'extension '.org', la première ligne du fichier doit
ressembler à ceci :
MES PROJETS-*- mode : org ; -*-
qui sélectionne le mode Org pour ce tampon, quel que soit le nom du fichier. Voir aussi
la variable org-insert-mode-line-in-empty-file.
De nombreuses commandes d'Org fonctionnent sur la région si celle-ci est active.
Pour utiliser cette fonction, vous devez activer le mode Marque transitoire, qui est le
mode par défaut. Si cela ne vous convient pas, vous pouvez créer une région active en
utilisant la souris pour sélectionner une région, ou en appuyant deux fois sur C-SPC avant
de déplacer le point.
Il peut arriver que vous rencontriez un problème dû à une erreur dans votre
configuration d'Emacs ou du mode Org. Avant de signaler un bogue, il est très utile de
démarrer Emacs avec un minimum de personnalisation et de reproduire le problème.
Cela vous aidera souvent à déterminer si le problème vient de votre personnalisation ou
du mode Org lui-même. Vous pouvez démarrer une session minimale typique avec une
commande comme l'exemple ci-dessous.
$ emacs -Q -l /path/to/minimal-org.el
Cependant, si vous utilisez le mode Org tel qu'il est distribué avec Emacs, une
configuration minimale n'est pas nécessaire. Dans ce cas, il suffit de lancer Emacs avec
'emacs -Q'. Le fichier d'installation 'minimal-org.el' peut avoir le contenu suivant.
;; ; Configuration minimale pour charger la dernière version de `org-mode'.
; ; Activer le
débogage. (setq
debug-on-error t
debug-on-signal nil
debug-on-quit nil)
3. Faites tout ce qu'il faut pour corriger l'erreur. N'oubliez pas de documenter les
mesures que vous prenez.
4. Lorsque vous rencontrez l'erreur, un tampon "*Backtrace*" apparaît à l'écran.
Enregistrez ce tampon dans un fichier - par exemple en utilisant C-x C-w - et joignez-
le à votre rapport de bogue.
TITRE
'BEGIN' . . . 'FIN'
Les mots-clés et les blocs sont écrits en majuscules pour améliorer leur
lisibilité, mais vous pouvez utiliser des minuscules dans vos fichiers Org.
2 Structure du document
Org est un gestionnaire de plans. Les contours permettent d'organiser un document
selon une structure hiérarchique, ce qui, du moins pour moi, est la meilleure
représentation des notes et des pensées. Une vue d'ensemble de cette structure est
obtenue en pliant, c'est-à-dire en cachant de grandes parties du document pour ne
montrer que la structure générale du document et les parties sur lesquelles on est en
train de travailler. Org simplifie grandement l'utilisation des contours en comprimant
l'ensemble des fonctionnalités d'affichage et de masquage en une seule commande,
org-cycle, qui est liée à la touche TAB.
2.1 A la une
Les titres définissent la structure d'une arborescence. Les titres de l'Org commencent
sur la marge gauche1 avec une ou plusieurs étoiles suivies d'un espace. Par exemple :
* Titre de premier niveau
** Deuxième niveau
*** Troisième
niveau :
un peu de
texte
*** Troisième
niveau
plus de
texte
* Un autre titre de premier niveau
Le nom défini dans org-footnote-section est réservé. Ne l'utilisez pas comme titre
pour vos propres rubriques.
Certaines personnes trouvent que les nombreuses étoiles sont trop bruyantes et
préfèrent un contour comportant un espace blanc suivi d'une seule étoile en guise
d'amorce de titre. Ceci peut être réalisé en utilisant le mode mineur Org Indent. Voir
Section 17.4 [Vue claire], page 248 pour plus d'informations.
Les titres ne sont pas numérotés. Cependant, vous pouvez souhaiter numéroter
dynamiquement certains d'entre eux, voire tous. Voir Section 17.6 [Numérotation
dynamique des titres], page 250.
Une ligne vide après la fin d'une sous-arborescence est considérée comme faisant
partie de celle-ci et est cachée lorsque la sous-arborescence est repliée. Cependant, si
vous laissez au moins deux lignes vides, une ligne vide reste visible après le pliage de la
sous-arborescence, afin de structurer la vue réduite. Voir la variable org-cycle-
separator-lines pour modifier ce comportement.
2.3 Motion
Les commandes suivantes permettent de passer à d'autres titres dans la mémoire tampon.
C-c C-n (org-next-visible-heading)
Titre suivant.
C-c C-p (org-previous-visible-heading) Titre
précédent.
C-c C-f (org-forward-heading-same-level)
Rubrique suivante de même niveau.
C-c C-b (org-backward-heading-same-level)
Rubrique précédente de même
niveau.
C-c C-u (outline-up-heading)
Revenir au niveau supérieur.
C-c C-j (org-goto)
Sauter à un autre endroit sans modifier la visibilité du contour actuel. Affiche
la structure du document dans une mémoire tampon temporaire, où vous
pouvez utiliser les touches suivantes pour trouver votre destination :
4
Lorsque org-agenda-inhibit-startup est non-nil, Org n'honore pas l'état de visibilité par défaut lors
de la première ouverture d'un fichier pour l'agenda (voir Section A.8 [Accélérer vos agendas], page 273).
Chapitre 2 : Structure du 13
document
C-c ^ (org-sort)
Trier les entrées de même niveau. Lorsqu'il existe une région active, toutes
les entrées de la région sont triées. Sinon, ce sont les enfants de l'en-tête
actuel qui sont triés. Le com- mand demande la méthode de tri, qui peut être
alphabétique, numérique, par heure - premier horodatage avec préférence
active, heure de création, heure planifiée, heure limite - par priorité, par mot-
clé TODO - dans l'ordre où les mots-clés ont été définis dans la configuration
- ou par la valeur d'une propriété. Le tri inverse est également possible. Vous
pouvez également fournir votre propre fonction pour extraire la clé de tri.
Avec un préfixe C-u, le tri est sensible à la casse.
C-x n s (org-narrow-to-subtree)
Réduire le tampon au sous-arbre actuel.
C-x n b (org-narrow-to-block)
Réduire le tampon au bloc actuel.
C-x n w (élargir)
Élargir la zone tampon pour éliminer le rétrécissement.
C-c * (org-toggle-heading)
Transformez une ligne normale ou un élément de liste simple en titre, de
sorte qu'il devienne un sous-titre à l'endroit où il se trouve. Vous pouvez
également transformer un titre en ligne normale en supprimant les étoiles.
S'il existe une région active, toutes les lignes de la région sont transformées
en titres. Si la première ligne de la région est un article, seules les lignes de
l'article sont transformées en titres. Enfin, si la première ligne est un titre,
supprimez les étoiles de tous les titres de la région.
Notez que lorsque le point se trouve à l'intérieur d'un tableau (voir chapitre 3
[Tableaux], page 17), les touches du méta-curseur ont une fonctionnalité différente.
• Les éléments de la liste de description sont des éléments de liste non ordonnés et
contiennent le séparateur ": :" pour distinguer le terme de description de la
description.
Les éléments appartenant à une même liste doivent avoir la même indentation sur la
première ligne. En particulier, si une liste ordonnée atteint le numéro "10", les nombres
à deux chiffres doivent être alignés à gauche avec les autres nombres de la liste. Un
élément se termine avant la ligne suivante dont le retrait est inférieur ou égal à celui de
sa puce ou de son numéro.
Une liste se termine lorsque tous les éléments sont terminés, c'est-à-dire avant toute
ligne inférieure ou également indentée par rapport aux éléments du niveau supérieur.
Elle se termine également avant deux lignes vides. Dans ce cas, tous les éléments sont
fermés. Voici un exemple :
* Le Seigneur des Anneaux
Mes scènes préférées sont (dans cet ordre)
1. L'attaque des Rohirrim
2. Le combat d'Eowyn contre le roi sorcier
+ c'était déjà ma scène préférée du livre
+ J'aime beaucoup Miranda Otto.
3. Peter Jackson se fait tirer dessus par Legolas
- sur DVD uniquement
Il fait une drôle de tête lorsque cela se produit.
Mais en fin de compte, ce ne sont pas les scènes individuelles qui
comptent, mais le film dans son ensemble. Les acteurs importants de
ce film sont :
- Elijah Wood : : Il joue Frodon
- Sean Astin : : Il joue le rôle de Sam, l'ami de Frodon. Je me
souviens encore très bien de son rôle de Mikey Walsh dans
Les Goonies.
Org prend en charge ces listes en adaptant les commandes de remplissage et
d'habillage pour les traiter correctement, et en les exportant correctement (voir le
chapitre 13 [Exportation], page 147). Puisque l'indentation régit la structure de ces listes,
de nombreuses constructions structurelles telles que les blocs '#+BEGIN_' peuvent être
indentées pour signaler qu'elles appartiennent à un élément particulier.
Si vous estimez que l'utilisation d'une puce différente pour une sous-liste de celle
utilisée pour la liste actuelle améliore la lisibilité, personnalisez la variable org-list-
demote-modify-bullet. Pour obtenir une plus grande différence d'indentation entre les
éléments et leurs sous-éléments, personnalisez la variable org-list-indent-offset.
Les commandes suivantes agissent sur les éléments lorsque le point se trouve sur la
première ligne d'un élément - la ligne avec la puce ou le numéro. Certaines d'entre elles
impliquent l'application de règles automatiques pour conserver la structure de la liste
intacte. Si certaines de ces actions vous gênent, configurez org-list- automatic-
rules pour les désactiver individuellement.
TAB (org-cycle)
Les éléments peuvent être pliés comme les niveaux de titres. Normalement,
cela ne fonctionne que si le point se trouve sur un élément de liste simple.
Pour plus de détails, voir la variable org-cycle-include- plain-lists. Si
cette variable est définie sur integrate, les éléments de liste simple sont
traités comme des titres de bas niveau. Le niveau d'un élément est alors
donné par l'indentation de la puce/du numéro. Cependant, les éléments sont
Chapitre 2 : Structure du 21
document toujours subordonnés aux titres réels ; les hiérarchies restent complètement
séparées. Dans un nouvel article sans texte, le premier TAB rétrograde
l'article pour qu'il devienne un enfant de l'article précédent. Les TAB suivants
déplacent l'élément à des niveaux significatifs dans la liste et le ramènent
finalement à sa position initiale.
Chapitre 2 : Structure du 22
document
M-RET (org-insert-heading)
Insérer un nouvel élément au niveau actuel. Avec un argument préfixe,
forcer un nouveau titre (voir Section 2.4 [Édition de la structure], page 9). Si
cette commande est utilisée au milieu d'un élément, cet élément est divisé en
deux et la deuxième partie devient le nouvel élément11 . Si cette commande
est exécutée avant le corps de l'élément, le nouvel élément est créé avant
l'élément actuel.
M-S-RET Insérer un nouvel élément avec une case à cocher (voir Section 5.6 [Cases à cocher], page 58).
S-UP
S-DOWN Sauter à l'élément précédent/suivant dans la liste actuelle, mais seulement si
org-support- shift-select est désactivé12 . Si ce n'est pas le cas, vous
pouvez toujours utiliser les commandes de saut de paragraphe comme C-UP
et C-DOWN pour un effet similaire.
M-UP
M-DOWN Déplace l'élément, y compris les sous-éléments, vers le haut/bas13 , c'est-à-
dire qu'il est échangé avec l'élément précédent/suivant de même
indentation. Si la liste est ordonnée, la renumérotation est automatique.
M-GAUCHE
M-DROITE Diminuer/augmenter l'indentation d'un élément, en laissant les enfants seuls.
M-S-
GAUCHE
M-S-
DROITE
Diminue/augmente l'indentation de l'élément, y compris des sous-éléments.
Au départ, l'arborescence de l'élément est sélectionnée sur la base de
l'indentation actuelle. Lorsque ces commandes sont exécutées plusieurs fois
en succession directe, la région initialement sélectionnée est utilisée, même si
la nouvelle indentation implique une hiérarchie différente. Pour utiliser la
nouvelle hiérarchie, il faut interrompre la chaîne de commande en déplaçant
le point.
Dans un cas particulier, l'utilisation de cette commande sur le tout premier
élément d'une liste déplace toute la liste. Ce comportement peut être
désactivé en configurant les règles org-list-automatic-. L'indentation
globale d'une liste n'a aucune influence sur le texte qui suit la liste.
C-c C-c S'il y a une case à cocher (voir Section 5.6 [Cases à cocher], page 58) dans la
ligne de l'élément, basculer l'état de la case à cocher. Dans tous les cas,
vérifiez la cohérence des puces et de l'indentation dans l'ensemble de la
liste.
C-c - Parcourt tout le niveau de la liste à travers les différentes puces
d'énumération ('-', '+', '*', '1.', '1)') ou un sous-ensemble d'entre elles, en
fonction de org-plain-list-ordered- item-terminator, du type de liste,
et de son indentation. Avec un préfixe numérique N, sélectionner la Nième
puce de cette liste. S'il existe une région active au moment de l'appel,
toutes les lignes sont converties en éléments de liste. Avec un argument
préfixe, le texte sélectionné est transformé en un seul élément. Si la
première ligne était déjà un élément de liste, tout marqueur d'élément est
supprimé de la liste. Enfin, même sans région active, une ligne normale
est convertie en élément de liste.
Chapitre 2 : Structure du 23
document
C-c *Transformer un élément de liste simple en titre, de sorte qu'il devienne un sous-
titre à l'endroit où il se trouve. Voir la section 2.4 [Modification de la structure],
page 9, pour une explication détaillée.
11
Si vous ne souhaitez pas que l'article soit scindé, personnalisez la variable org-M-RET-may-split-line.
12
Si vous souhaitez faire défiler les éléments de cette manière, vous pouvez personnaliser org-list-use-circular-motion.
13
Voir org-list-use-circular-motion pour un comportement cyclique.
Chapitre 2 : Structure du 24
document
2.7 Tiroirs
Il arrive que vous souhaitiez conserver des informations associées à une entrée, mais
que vous ne souhaitiez normalement pas les voir. Pour cela, le mode Org dispose de
tiroirs. Ils peuvent contenir n'importe quoi, à l'exception d'un titre et d'un autre tiroir. Les
tiroirs se présentent comme suit :
** Il s'agit d'un titre
Toujours en dehors du
tiroir
:DRAWERNAME :
Il se trouve à l'intérieur du tiroir.
:FIN :
Après le tiroir.
Vous pouvez insérer interactivement un tiroir à un point en appelant org-insert-
drawer, qui est lié à C-c C-x d. Avec une région active, cette commande place la région à
l'intérieur du tiroir. Avec un argument préfixe, cette commande appelle la fonction non
interactive org-insert- property-drawer, qui crée un tiroir "PROPERTIES" juste en
dessous du titre actuel. Le mode Org utilise ce tiroir spécial pour stocker les propriétés
(voir le chapitre 7 [Propriétés et colonnes], page 67). Vous ne pouvez pas l'utiliser pour
autre chose.
Il est également possible de compléter les mots-clés à tiroirs en utilisant M-TAB14 .
Le cycle de visibilité (voir section 2.2 [Cycle de visibilité], page 6) sur le titre masque
et affiche l'entrée, mais maintient le tiroir réduit à une seule ligne. Pour regarder à
l'intérieur du tiroir, vous devez déplacer le point sur la ligne du tiroir et appuyer sur la
touche TAB à cet endroit.
Vous pouvez également faire en sorte que les notes de changement d'état (voir
Section 5.3.2 [Suivi des changements d'état TODO], page 53) et les heures d'horloge
(voir Section 8.4 [Horodatage du temps de travail], page 84) soient stockées dans un
tiroir "LOGBOOK". Si vous souhaitez y enregistrer une note rapide, de la même manière
que pour les changements d'état, utilisez l'option
C-c C-z Ajouter une note horodatée au tiroir "LOGBOOK".
2.8 Blocs
Le mode Org utilise les blocs '#+BEGIN' . . . #+END' à diverses fins, de l'inclusion
d'exemples de code source (voir Section 12.6 [Exemples littéraux], page 141) à la
capture d'informations sur l'enregistrement du temps (voir Section 8.4 [Chronométrage
du temps de travail], page 84). Ces blocs peuvent être pliés et dépliés en appuyant sur
Chapitre 2 : Structure du 25
document
la touche TAB dans la ligne '#+BEGIN'. Vous pouvez également faire plier tous les blocs
au démarrage en configurant la variable org-hide-block-startup ou par fichier en
utilisant la commande
14
De nombreux bureaux interceptent la touche M-TAB pour passer d'une fenêtre à l'autre. Utilisez plutôt C-M-i ou ESC TAB.
Chapitre 2 : Structure du 26
document
#+STARTUP : hideblocks
#+STARTUP : nohideblocks
Chapitre 3 : 27
Tableaux
3 Tableaux
Org est livré avec un éditeur de tableaux rapide et intuitif. Les calculs de type tableur sont
pris en charge par le paquetage Emacs Calc (voir calc).
Création et conversion
C-c | (org-table-create-or-convert-from-region)
Convertit la région active en tableau. Si chaque ligne contient au moins un
caractère TAB, la fonction suppose que l'article est séparé par des
tabulations. Si chaque ligne contient une virgule, la fonction suppose que les
valeurs sont séparées par des virgules (CSV). Si ce n'est pas le cas, les
lignes sont divisées en champs au niveau des espaces blancs. Vous pouvez
utiliser un argument préfixe pour imposer un séparateur spécifique : C-u force
CSV, C-u C-u force TAB, C-u C-u C-u demande une expression régulière pour
correspondre au séparateur, et un argument numérique N indique qu'au
moins N espaces consécutifs, ou alternativement un TAB sera le séparateur.
S'il n'y a pas de région active, cette commande crée une table Org vide.
Mais il est plus facile de commencer à taper, comme | N a m e | P h o n e |
A g e RET | - TAB.
Chapitre 3 : 28
Tableaux
1
Pour insérer une barre verticale dans un champ de tableau, utilisez "\vert" ou, à l'intérieur d'un mot, "abc\vert{}def".
Chapitre 3 : 29
Tableaux
S-RIGHT (org-table-move-cell-right)
Déplacer la cellule vers la droite en l'échangeant avec la cellule adjacente.
M-S-DOWN (org-table-insert-row)
Insère une nouvelle ligne au-dessus de la ligne actuelle. Avec un argument
préfixe, la ligne est créée en dessous de la ligne actuelle.
C-c - (org-table-insert-hline)
Insère une ligne horizontale sous la ligne actuelle. Avec un argument
préfixe, la ligne est créée au-dessus de la ligne courante.
C-c RET (org-table-hline-and-move)
Insérer une ligne horizontale sous la ligne actuelle et déplacer le point dans
la ligne sous cette ligne.
C-c ^ (org-table-sort-lines)
Trier les lignes du tableau dans la région. La position du point indique la
colonne à utiliser pour le tri, et la plage de lignes est la plage entre les lignes
de séparation horizontales les plus proches, ou le tableau entier. Si le point
se trouve avant la première colonne, vous êtes invité à indiquer la colonne
de tri. S'il existe une région active, la marque spécifie la première ligne et la
colonne de tri, tandis que le point doit se trouver dans la dernière ligne pour
être inclus dans le tri. La commande demande le type de tri, alphabétique,
numérique ou temporel. Vous pouvez trier dans l'ordre normal ou dans
l'ordre inverse. Vous pouvez également fournir vos propres fonctions
d'extraction et de comparaison de clés. Lorsqu'il est appelé avec un préfixe,
le tri alphabétique est sensible à la casse.
Régions
C-c C-x M-w (org-table-copy-region)
Copier une région rectangulaire d'un tableau dans un presse-papiers
spécial. Le pointage et le marquage déterminent les champs du bord du
rectangle. S'il n'y a pas de région active, seule la zone courante est copiée.
Le processus ignore les lignes de séparation horizontales.
C-c C-x C-w (org-table-cut-region)
Copier une région rectangulaire d'un tableau dans un presse-papiers spécial
et supprimer tous les champs dans le rectangle. Il s'agit donc de l'opération
"couper".
C-c C-x C-y (org-table-paste-rectangle)
Coller une région rectangulaire dans un tableau. Le coin supérieur gauche
se retrouve dans le champ courant. Tous les champs concernés sont
écrasés. Si le rectangle ne tient pas dans le tableau actuel, celui-ci est
agrandi si nécessaire. Le processus ne tient pas compte des lignes de
séparation horizontales.
M-RET (org-table-wrap-region)
Divise le champ actuel à la position du point et déplace le reste sur la ligne
en dessous. S'il existe une région active et que le point et la marque se
trouvent dans la même colonne, le texte de la colonne est enveloppé à la
largeur minimale pour le nombre de lignes donné. Un préfixe numérique peut
être utilisé pour modifier le nombre de lignes souhaité. S'il n'y a pas de
Chapitre 3 : 31
Tableaux région, mais que vous spécifiez un argument de préfixe, le champ actuel est
rendu vide et le contenu est ajouté au champ situé au-dessus.
Chapitre 3 : 32
Tableaux
Calculs
C-c + (org-table-sum)
Additionne les nombres dans la colonne actuelle ou dans le rectangle défini
par la région active. Le résultat est affiché dans la zone d'écho et peut être
inséré avec C-y.
S-RET (org-table-copy-down)
Lorsque le champ actuel est vide, copier à partir du premier champ non vide
situé au-dessus. S'il n'est pas vide, copier le champ actuel vers la ligne
suivante et déplacer le point avec lui.
En fonction de la variable org-table-copy-increment, les valeurs des
champs entiers et horodatés, ainsi que les champs préfixés ou suffixés par
un nombre entier, peuvent être incrémentés pendant la copie. De plus, un
argument préfixe 0 désactive temporairement l'incrémentation.
Cette touche est également utilisée par la sélection par déplacement et les
modes associés (voir Section 17.14.2 [Conflits], page 257).
Divers
C-c ` (org-table-edit-field)
Modifier le champ actuel dans une fenêtre séparée. Cette fonction est utile
pour les champs qui ne sont pas entièrement visibles (voir la section 3.2
[Largeur et alignement des colonnes], page 21). Lorsqu'il est appelé avec un
préfixe C-u, il suffit de rendre le champ complet visible pour qu'il puisse être
modifié sur place. Lorsqu'elle est appelée avec deux préfixes C-u, la fenêtre
de l'éditeur suit le point à travers le tableau et affiche toujours le champ en
cours. Le mode suivi se termine automatiquement lorsque le point quitte le
tableau, ou lorsque vous répétez cette commande avec C-u C-u C-c `.
M-x org-table-import
Importer un fichier sous forme de tableau. Le tableau doit être séparé par des
tabulations ou des espaces. Cette commande est utilisée, par exemple, pour
importer un tableau d'un tableur ou des données d'une base de données,
car ces programmes peuvent généralement écrire des fichiers texte séparés
par des TAB. Cette commande insère le fichier dans la mémoire tampon,
puis convertit la région en tableau. Tout argument de préfixe est transmis au
convertisseur, qui l'utilise pour déterminer le séparateur.
C-c | (org-table-create-or-convert-from-region)
Les tableaux peuvent également être importés en collant du texte tabulaire
dans le tampon Org, en sélectionnant le texte collé avec C-x C-x et en utilisant
ensuite la commande C-c | (voir [Création et conversion], page 17).
M-x org-table-export
Exporter le tableau, par défaut sous la forme d'un fichier séparé par des
tabulations. A utiliser pour l'échange de données avec, par exemple, des
tableurs ou des programmes de base de données. Le format utilisé pour
exporter le fichier peut être configuré dans la variable org-table-export-
default-format. Vous pouvez également utiliser les propriétés
'TABLE_EXPORT_FILE' et 'TABLE_EXPORT_FORMAT' pour spécifier le nom du
fichier et le format d'exportation des tables dans un sous-arbre. Org prend
en charge des formats assez généraux pour les tables exportées. Le format
de l'exportateur est le même que celui utilisé par les tables radio Orgtbl, voir
Chapitre 3 : 33
Tableaux la section A.5.3 [Fonctions du traducteur], page 270, pour une description
détaillée.
Chapitre 3 : 34
Tableaux
M-x org-table-header-line-mode
Active l'affichage de la première ligne de données du tableau à un point de
la ligne d'en-tête de la fenêtre lorsque cette première ligne n'est plus visible
dans le tampon. Vous pouvez activer ce mode mineur par défaut en
définissant l'option org-table-header- line-p sur t.
M-x org-table-transpose-table-at-point
Transposez le tableau au point et éliminez les lignes h.
3.5.1 Références
Pour calculer des champs de la table à partir d'autres champs, les formules doivent faire
référence à d'autres champs ou plages. Dans Org, les champs peuvent être référencés
par leur nom, par des coordonnées absolues et par des coordonnées relatives. Pour
connaître les coordonnées d'un champ, appuyez sur C-c ? dans ce champ, ou appuyez
sur C-c } pour faire basculer l'affichage d'une grille.
Références de terrain
Les formules peuvent faire référence à la valeur d'un autre champ de deux manières.
Comme dans toute feuille de calcul, vous pouvez référencer les champs avec une
combinaison lettre/chiffre comme "B3", c'est-à-dire le deuxième champ de la troisième
ligne. Toutefois, Org préfère utiliser une autre représentation, plus générale, qui
ressemble à ceci :2
@ROW$COLUMN
Les spécifications de colonne peuvent être absolues, comme "$1", "$2", . . . N", ou
relatives à la colonne actuelle, c'est-à-dire la colonne du champ en cours de calcul,
comme "$+1" ou "$-2". '$<' et '$>' sont des références immuables à la première et à la
dernière colonne, respectivement, et vous pouvez utiliser '$>>>' pour indiquer la
troisième colonne en partant de la droite.
La spécification de ligne ne compte que les lignes de données et ignore les lignes de
séparation horizontales, ou "hlines". Comme pour les colonnes, vous pouvez utiliser des
numéros de ligne absolus "@1", "@2", . . ., "@N", ainsi que des numéros de ligne relatifs à
la ligne actuelle comme "@+3" ou "@-1". @N', et des numéros de ligne relatifs à la ligne
actuelle tels que '@+3' ou '@-1'. @<' et '@>' sont des références immuables à la première et
à la dernière ligne du tableau, respectivement. Vous pouvez également spécifier la ligne
par rapport à l'une des lignes du tableau : '@I' fait référence à la première ligne, '@II' à la
deuxième, etc. @-I' se réfère à la première ligne au-dessus de la ligne courante,
@+I' à la première ligne au-dessous de la ligne courante. Vous pouvez également écrire
'@III+2', qui correspond à la deuxième ligne de données après la troisième ligne du
tableau.
Chapitre 3 : 39
Tableaux
2
Org comprend les références tapées par l'utilisateur comme 'B4', mais il n'utilise pas cette syntaxe
lorsqu'il propose une formule à l'édition. Vous pouvez personnaliser ce comportement en utilisant la
variable org-table-use-standard- references.
Chapitre 3 : 40
Tableaux
Références de la gamme
Vous pouvez faire référence à une plage rectangulaire de champs en spécifiant deux
références de champs reliées par deux points '...'. Les extrémités sont incluses dans
l'intervalle. Si les deux champs se trouvent dans la ligne actuelle, vous pouvez
simplement utiliser "$2..$7", mais si au moins un champ se trouve dans une ligne
différente, vous devez utiliser le format général "@ROW$COLUMN" au moins pour le premier
champ, c'est-à-dire que la référence doit commencer par "@" pour être interprétée
correctement. Exemples :
'$1..$3'trois premiers champs de la ligne actuelle
plage '$P..$Q' , en utilisant les noms de colonnes (voir section
3.5.10 [Fonctions avancées], page 33)
$<<<..$>>" commence dans la troisième colonne et se poursuit
jusqu'à l'avant-dernière "@2$1..@4$3". neuf champs entre ces deux
champs (comme "A2..C4")
@-1$-2..@-1' 3 champs dans la ligne ci-dessus, à partir de 2 colonnes à
gauche '@I..II' entre la première et la deuxième ligne, abréviation de
'@I..@II'.
Les références à des plages renvoient un vecteur de valeurs qui peuvent être introduites
dans les fonctions vectorielles de Calc. Les champs vides dans les plages sont
normalement supprimés, de sorte que le vecteur ne contient que les champs non vides.
Pour d'autres options avec les commutateurs de mode 'E', 'N' et des exemples, voir
Section 3.5.2 [Syntaxe des formules pour Calc], page 25.
@3 = 2 * remote(FOO, @1$$#)'
Insérer la valeur doublée de chaque colonne de la ligne 1 du tableau nommé
FOO dans la ligne 3 du tableau actuel.
Pour les deuxième et troisième exemples, le tableau FOO doit avoir au moins autant de
lignes ou de colonnes que le tableau actuel. Notez que cette méthode est inefficace3
pour un grand nombre de lignes.
Références nommées
'$name' est interprété comme le nom d'une colonne, d'un paramètre ou d'une constante.
Les constantes sont définies globalement par la variable org-table-formula-
constants, et localement - pour le fichier - par une ligne comme dans cet exemple :
#+CONSTANTS : c=299792458. pi=3.14 eps=2.4e-6
En outre, les propriétés (voir chapitre 7 [Propriétés et colonnes], page 67) peuvent
être utilisées comme constantes dans les formules des tableaux : pour une propriété
"Xyz", utilisez le nom "$PROP_Xyz", et la propriété sera recherchée dans l'entrée courante
du schéma et dans la hiérarchie qui lui est supérieure. Si vous disposez du paquetage
"constants.el", il sera également utilisé pour résoudre les constantes, y compris les
constantes naturelles telles que "$h" pour la constante de Planck, et les unités telles que
"$km" pour les kilomètres4 . Les noms de colonnes et les paramètres peuvent être
spécifiés dans des lignes de tableau spéciales. Celles-ci sont décrites ci-dessous, voir
Section 3.5.10 [Fonctions avancées], page 33. Tous les noms doivent commencer par
une lettre et se composer de lettres et de chiffres.
Références à distance
Vous pouvez également faire référence à des constantes, des champs et des intervalles
d'une table différente, soit dans le fichier actuel, soit dans un autre fichier. La syntaxe est
la suivante
remote(NOM,REF)
où NOM peut être le nom d'un tableau dans le fichier actuel, tel que défini par une
ligne "#+NOM :" avant le tableau. Il peut également s'agir de l'ID d'une entrée, même
dans un fichier différent, et la référence renvoie alors à la première table de cette
entrée. REF est une référence absolue à un champ ou à une plage, comme décrit ci-
dessus, par exemple "@3$3" ou "$somename", valable dans la table référencée.
Lorsque NAME a le format '@ROW$COLUMN', il est remplacé par le nom ou l'ID trouvé
dans ce champ de la table courante. Par exemple, "remote($1, @@>$2)" ⇒
"remote(year_2013, @@>$1)". Le format "B3" n'est pas pris en charge car il ne peut être
distingué d'un nom de table ou d'un identifiant ordinaire.
Une formule peut contenir une chaîne de mode facultative après un point-virgule.
Cette chaîne est constituée de drapeaux permettant d'influencer le mode Calc et d'autres
modes pendant l'exécution. Par défaut, Org utilise les modes standard de Calc (précision
12, unités angulaires degrés, fraction et modes symboliques désactivés). Le format
d'affichage, cependant, a été modifié en '(float 8)' pour garder les tableaux compacts.
Les paramètres par défaut peuvent être configurés en utilisant la variable org-calc-
default-modes.
'p20' Fixe la précision du calcul interne de Calc à 20
chiffres. n3', 's3', 'e2', 'f4'
Format normal, scientifique, technique ou fixe du résultat du calcul renvoyé
à Org. La précision du formatage Calc est illimitée tant que la précision du
calcul Calc est supérieure.
'D', 'R' Modes de calcul en degrés et en angles
radians. 'F', 'S' Modes de calcul par
fraction et symbolique.
'u'Mode de simplification des unités de Calc. Calc est également une calculatrice
symbolique et peut travailler avec des valeurs ayant une unité, représentée
par des chiffres suivis d'une chaîne d'unités dans les cellules de la table Org.
Ce mode demande à Calc de simplifier les unités dans l'expression calculée
avant de renvoyer le résultat.
'T', 't', 'U' Calculs de durée dans Calc ou Lisp, Section 3.5.4 [Durées et valeurs
temporelles], page 28.
'E' Si et comment prendre en compte les champs vides. Sans 'E', les champs
vides dans les références d'intervalle sont supprimés, de sorte que le vecteur
Calc ou la liste Lisp ne contient que les champs non vides. Avec 'E', les
champs vides sont conservés. Pour les champs vides dans les plages ou les
références de champs vides, la valeur "nan" (pas un nombre) est utilisée
dans les formules Calc et la chaîne vide est utilisée pour les formules Lisp.
Ajoutez 'N' pour utiliser 0 à la place pour les deux types de formules. Pour la
valeur d'un champ, le mode "N" est plus prioritaire que "E".
'N' Interpréter tous les champs comme des nombres, utiliser 0 pour les non
nombres. Voir la section suivante pour voir comment cela est essentiel pour
les calculs avec les formules Lisp. Dans les formules Calc, elle n'est utilisée
qu'occasionnellement, car les chaînes de chiffres y sont déjà interprétées
comme des nombres sans 'N'.
'L'Littéral , pour les formules Lisp uniquement. Voir la section suivante.
A moins que vous n'utilisiez de grands nombres entiers ou un calcul et un affichage de
haute précision pour les nombres à virgule flottante, vous pouvez alternativement fournir
un spécificateur de format printf pour reformater le résultat de Calc après qu'il ait été
transmis à Org au lieu de laisser Calc faire le formatage5 . Quelques exemples :
'$1+$2' Somme du premier et du deuxième
champ '$1+$2;%.2f' Idem, formatage du résultat en
deux décimales 'exp($2)+exp($1)' Des fonctions
mathématiques peuvent être utilisées '$0;%.1f'
Reformatage de la cellule actuelle
en 1 décimale '($3-32)*5/9'Conversion degrés F → C
Chapitre 3 : 45
Tableaux
5
Le reformatage printf est limité en précision parce que la valeur qui lui est transmise est convertie en
"entier" ou en "double". La taille de l'"entier" est limitée par la troncature de la valeur signée à 32
bits. La précision du "double" est limitée à 64 bits au total, ce qui laisse environ 16 chiffres
décimaux significatifs.
Chapitre 3 : 46
Tableaux
(concat $1 $2)
concatène le contenu des colonnes 1 et 2.
Lorsque l'option 'N' est utilisée, tous les éléments référencés sont analysés comme des
nombres et interpolés comme des nombres Lisp, sans guillemets. Les champs qui ne
peuvent pas être interprétés comme des nombres sont interpolés comme des zéros. Par
exemple :
'(+ $1 $2);N
ajoute les colonnes 1 et 2, ce qui équivaut à la fonction "$1+$2" de Calc. Les plages sont
insérées sous forme de champs séparés par des espaces, de sorte qu'elles peuvent être
intégrées dans une syntaxe de liste ou de vecteur. Par exemple :
(appliquer '+ '($1..$4));N
calcule la somme des colonnes 1 à 4, comme 'vsum($1..$4)' de Calc.
Lorsque l'option 'L' est utilisée, tous les champs sont interpolés littéralement : le
contenu de la cellule est remplacé dans la forme Lisp sans les espaces blancs de début
et de fin et sans les guillemets. Si une référence doit être interprétée comme une chaîne
de caractères par la forme Lisp, l'opérateur de référence lui-même doit être placé entre
guillemets, comme '"$3"'. L'indicateur 'L' est utile lorsque des chaînes de caractères et
des nombres sont utilisés dans la même forme Lisp. Par exemple :
(substring "$1" $2 $3);L
extrait la partie de la chaîne de la colonne 1 comprise entre les positions des caractères
spécifiés dans les entiers des colonnes 2 et 3 et est plus facile à lire que l'équivalent :
(substring $1 (string-to-number $2) (string-to-number $3))
la formule est enregistrée en tant que formule pour ce champ, évaluée et le champ
actuel est remplacé par le résultat.
Les formules sont stockées dans un mot-clé spécial "TBLFM" situé directement sous le
tableau. Si vous tapez l'équation dans le quatrième champ de la troisième ligne de
données du tableau, la formule ressemble à "@3$4=1+2$". Lors de l'insertion, de la
suppression ou du remplacement de colonnes et de lignes à l'aide des commandes
appropriées, les références absolues (mais pas les références relatives) dans les formules
stockées sont modifiées afin de continuer à faire référence au même champ. Pour éviter
que cela ne se produise, en particulier dans les références aux champs, ancrez les
champs aux bords du tableau (en utilisant "@<", "@>", "$<", "$>"), ou aux lignes du
tableau à l'aide de la notation "@I". L'adaptation automatique des références de champ
ne se produit pas si vous modifiez la structure du tableau à l'aide des commandes
d'édition normales : vous devez corriger les formules vous-même.
Au lieu de taper une équation dans le champ, vous pouvez également utiliser la commande suivante
C-u C-c = (org-table-eval-formula)
Installe une nouvelle formule pour le champ actuel. La commande demande
une formule par défaut à partir du mot-clé 'TBLFM', l'applique au champ
actuel et l'enregistre.
Le côté gauche d'une formule peut également être une expression spéciale afin
d'affecter la formule à un certain nombre de champs différents. Il n'existe pas de
raccourci clavier pour saisir de telles formules de plage. Pour les ajouter, utilisez l'éditeur
de formules (voir la section 3.5.8 [Édition et débogage des formules], page 30) ou
modifiez directement le mot-clé "TBLFM".
'$2='Formule de colonne, valable pour toute la colonne. Cette formule est si courante
qu'Org la traite de manière particulière, voir Section 3.5.6 [Formules de
colonne], page 29.
@3='Formule de ligne, s'applique à tous les champs de la ligne spécifiée. @>='
signifie la dernière ligne. '@1$2..@4$3='
Formule de plage, s'applique à tous les champs de la plage rectangulaire donnée. Cette
formule peut
peut également être utilisée pour affecter une formule à certains champs d'une ligne, mais pas
à tous.
'$NAME=' Champ nommé, voir Section 3.5.10 [Fonctions avancées], page 33.
3.5.6 Formules de colonne
Lorsque vous attribuez une formule à une simple référence de colonne telle que "$3=", la
même formule est utilisée dans tous les champs de cette colonne, avec les exceptions
très pratiques suivantes : (i) Si le tableau contient des lignes de séparation horizontales
avec des lignes au-dessus et au-dessous, tout ce qui se trouve avant la première ligne
de séparation est considéré comme faisant partie de l'en-tête du tableau et n'est pas
modifié par les formules de colonne. Par conséquent, un en-tête est obligatoire lorsque
vous utilisez des formules de colonne et que vous souhaitez ajouter des lignes de
séparation pour regrouper des lignes, par exemple pour séparer une ligne de total située
en bas des lignes de somme situées au-dessus. (ii) Les champs qui reçoivent déjà une
valeur à partir d'une formule de champ/plage ne sont pas affectés par les formules en
colonnes. Ces conditions rendent les formules en colonnes très faciles à utiliser.
Pour affecter une formule à une colonne, saisissez-la directement dans n'importe
quel champ de la colonne, précédée d'un signe égal, comme '=$1+$2'. Lorsque vous
Chapitre 3 : 51
Tableaux sur TAB ou RET ou C-c C-c alors que le point se trouve toujours dans le champ,
appuyez
la formule est stockée en tant que formule pour la colonne actuelle, évaluée et le champ
actuel est remplacé par le résultat. Si le champ ne contient que '=', la formule
précédemment enregistrée pour cette colonne est utilisée. Pour chaque colonne, Org ne
retient que la dernière formule utilisée. Dans le mot-clé 'TBLFM', les formules de colonne
ressemblent à '$4=$1+$2'. Le côté gauche d'une formule de colonne ne peut pas être le
nom de la colonne, il doit être la référence numérique de la colonne ou '$>'.
Chapitre 3 : 52
Tableaux
Au lieu de taper une équation dans le champ, vous pouvez également utiliser la commande suivante :
C-c = (org-table-eval-formula)
Installe une nouvelle formule pour la colonne actuelle et remplace le champ
actuel par le résultat de la formule. La commande demande une formule,
dont la valeur par défaut est tirée du mot-clé 'TBLFM', l'applique au champ
courant et l'enregistre. Avec un préfixe numérique, par exemple C-5 C-c =, la
commande l'applique à autant de champs consécutifs dans la colonne
actuelle.
3.5.7 Fonctions de recherche
Org possède trois fonctions Emacs Lisp prédéfinies pour les
recherches dans les tables. (org-lookup-first VAL S-LIST R-
LIST &optional PREDICATE)'
Recherche le premier élément S de la liste S-LIST pour lequel
(PRÉDICAT VAL S)
est non nul ; renvoie la valeur de la position correspondante dans la
liste R-LIST. Par défaut, PREDICATE est égal. Notez que les paramètres
VAL et S sont transmis à PREDICATE dans le même ordre que les paramètres
correspondants dans l'appel à org-lookup-first, où VAL précède S-LIST.
Si R-LIST est nul, l'élément S correspondant de S-LIST est renvoyé.
(org-lookup-last VAL S-LIST R-LIST &optional PREDICATE)'
Semblable à org-lookup-first ci-dessus, mais recherche le dernier élément pour lequel la
fonction
PREDICATE est non nul.
(org-lookup-all VAL S-LIST R-LIST &optional PREDICATE)'
Similaire à org-lookup-first, mais recherche tous les éléments pour
lesquels PRED- ICATE est non nul, et renvoie toutes les valeurs
correspondantes. Cette fonction ne peut pas être utilisée seule dans une
formule, car elle renvoie une liste de valeurs. Cependant, de puissantes
recherches peuvent être construites lorsque cette fonction est combinée
avec d'autres fonctions Emacs Lisp.
Si les plages utilisées dans ces fonctions contiennent des champs vides, le mode "E"
pour la formule doit généralement être spécifié : sinon, les champs vides ne sont pas
inclus dans S-LIST et/ou R- LIST, ce qui peut, par exemple, entraîner un mappage
incorrect d'un élément de S-LIST à l'élément correspondant de R-LIST.
Ces trois fonctions peuvent être utilisées pour mettre en œuvre des tableaux associatifs,
compter les cellules correspondantes, classer les résultats, regrouper les données, etc.
Pour des exemples pratiques, voir ce tutoriel sur Worg.
M-U P (org-table-fedit-scroll-up)
Faites défiler vers le haut la fenêtre affichant le tableau.
M-DOWN (org-table-fedit-scroll-down)
Faites défiler la fenêtre affichant le tableau.
C-c } Activer ou désactiver la grille de coordonnées dans le tableau.
Le fait de vider un champ de table ne supprime pas la formule associée à ce champ, car
celle-ci est stockée dans une autre ligne - la ligne du mot-clé "TBLFM". Lors du prochain
recalcul, le champ sera à nouveau rempli. Pour supprimer la formule d'un champ, vous
devez donner une réponse vide lorsqu'on vous demande la formule, ou éditer le mot-clé
'TBLFM'.
Vous pouvez éditer le mot-clé 'TBLFM' directement et réappliquer les équations
modifiées avec C-c C-c dans cette ligne ou avec les commandes de recalcul normales
dans le tableau.
| ^ | | | | à | |
l'heu
re
actuel
le
| $ | max=50 | | | | | |
|---+---------+--------+--------+--------+-------+----------------|
#+TBLFM : $6=vsum($P1..$P3)::$7=10*$Tot/$max;%.1f::$at=vmean(@-II..@-I);%.1f
Important : pour ces tableaux spéciaux, le recalcul du tableau avec C-u C-c *
n'affecte que les lignes marquées "#" ou "*" et les champs auxquels une
formule a été attribuée. Les formules de colonne ne sont pas appliquées aux
lignes dont le premier champ est vide.
Les caractères de marquage ont la signification suivante :
Les champs de cette ligne définissent les noms des colonnes, de sorte que
vous pouvez appeler une colonne "$Tot" au lieu de "$6".
Cette ligne définit les noms des champs situés au-dessus de la ligne. Avec une
telle définition, toute formule dans le tableau peut utiliser '$m1' pour faire
référence à la valeur '10'. De même, si vous affectez une formule à un
champ de nom, elle est stockée sous la forme "$nom = ' " .
'_' Semblable à '^', mais définit des noms pour les champs de la ligne inférieure.
Les champs de cette ligne peuvent définir des paramètres pour les formules. Par
exemple, si un champ d'une ligne "$" contient "max=50", les formules de cette
table peuvent faire référence à la valeur 50 en utilisant "$max". Les
paramètres fonctionnent exactement comme les constantes, à ceci près
qu'ils peuvent être définis pour chaque table.
'#'Les champs de cette ligne sont automatiquement recalculés lorsque l'on appuie
sur TAB ou RET ou S-TAB dans cette ligne. Cette ligne est également
sélectionnée pour un recalcul global avec C-u C-c *. Les lignes non marquées
ne sont pas modifiées par cette commande.
'*' Sélectionne cette ligne pour le recalcul global avec C-u C-c *, mais pas pour
le recalcul automatique. Utilisez cette option lorsque le recalcul automatique
ralentit trop l'édition.
'/' Ne pas exporter cette ligne. Utile pour les lignes qui contiennent des
marqueurs de réduction '<N>' ou des marqueurs de groupes de colonnes.
Enfin, pour vous mettre l'eau à la bouche, voici un tableau qui calcule la série de
Taylor de degré n à l'endroit x pour quelques fonctions.
|---+-------------+---+-----+--------------------------------------------------------------------|
|| Résultat de l' analyse des données |
|---+-------------+---+-----+--------------------------------------------------------------------|
| # | exp(x) | 1 | x | 1 + x |
| # | exp(x) | 2 | x | 1 + x + x^2 / 2 |
| # | exp(x) | 3 | x | 1 + x + x^2 / 2 + x^3 / 6 |
| x^2+sqrt(x) | 2 | x=0 | x*(0.5 / 0) + x^2 (2 - 0.25 / 0) / 2 |
| x^2+sqrt(x) | 2 | x=1 | 2 + 2.5 x - 2.5 + 0.875 (x - 1)^2 |
| * | tan(x) | 3 | x| 0,0175 x + 1,77e-6 x^3 |
|---+-------------+---+-----+--------------------------------------------------------------------|
Chapitre 3 : 59
Tableaux
#+TBLFM : $5=taylor($2,$4,$3);n3
Chapitre 3 : 60
Tableaux
Options de tracé
'set' Spécifie n'importe quelle option Gnuplot à définir
lors de la création d'un graphique. 'title' (titre)
Spécifie le titre du graphique.
ind' Spécifier la colonne du tableau à utiliser comme axe des x.
'deps' Spécifie les colonnes à représenter sous la forme d'une liste de style Lisp,
entourée de parenthèses et séparée par des espaces, par exemple 'dep :(3
4)' pour représenter les troisième et quatrième colonnes. Par défaut, toutes
les autres colonnes sont représentées graphiquement, à l'exception de la
colonne 'ind'.
transpose Si 'y', 'yes' ou 't', on tente de transposer les données du tableau avant de les
Chapitre 3 : 61
Tableaux tracer. Reconnaît également l'option abrégée "trans".
'type' Spécifie le type de tracé, par défaut l'un de '2d', '3d', 'radar', ou 'grid'.
Les types disponibles peuvent être personnalisés avec org-plot/preset-plot-types.
Chapitre 3 : 62
Tableaux
'avec' Spécifier une option 'avec' à insérer pour chaque colonne tracée, par
exemple 'lignes', 'points', 'boîtes', 'impulsions'. La valeur par défaut est
"lignes".
'file' Si vous voulez tracer dans un fichier, spécifiez '"path/to/desired/output-
file"'. 'labels' Liste des labels à utiliser pour les 'deps'. Par défaut, il s'agit des en-
têtes de colonne s'ils ont été modifiés.
existent.
'ligne' Spécifier une ligne entière à insérer dans le script Gnuplot.
'map' Lorsque vous tracez des types '3d' ou 'grid', mettez ce paramètre à 't' pour
tracer une cartographie plate plutôt qu'une pente '3d'.
minFournit une valeur d'axe minimale qui peut être utilisée par un type de graphique.
On suppose implicitement que l'on se réfère à l'axe 'y'. Il est possible de
fournir explicitement une valeur pour l'axe "x" ou "y" avec "xmin" et "ymin".
maxFournit une valeur maximale pour l'axe qui peut être utilisée par un type de
graphique. On suppose implicitement que l'on se réfère à l'axe 'y'. Il est
possible de fournir explicitement une valeur pour les axes 'x' ou 'y' avec
'xmax' et 'ymax'.
ticksFournit un nombre désiré de ticks d'axe à afficher, qui peuvent être
utilisés par un type de tracé. Si aucune valeur n'est fournie, un type de
graphique nécessitant des ticks utilisera org--plot/sensible-tick-num
pour essayer de déterminer une bonne valeur.
'timefmt' Spécifie le format des horodatages du mode Org tels qu'ils seront analysés par Gnuplot.
La valeur par défaut est '%Y-%m-%d-%H:%M:%S'.
'script' Si vous souhaitez avoir un contrôle total, vous pouvez spécifier un fichier script
- placez le nom du fichier entre guillemets doubles - qui sera utilisé pour le
tracé. Avant le tracé, chaque occurrence de "$datafile" dans le script
spécifié sera remplacée par le chemin d'accès au fichier de données généré.
Remarque : même si vous choisissez cette option, vous pouvez toujours
spécifier le type de tracé, car cela peut avoir un impact sur le contenu du
fichier de données.
4 Hyperliens
Comme HTML, Org prend en charge les liens à l'intérieur d'un fichier, les liens externes
vers d'autres fichiers, les articles Usenet, les courriers électroniques et bien d'autres
choses encore.
Les fonctions d'insertion de liens (voir Section 4.5 [Gestion des liens], page 42)
échappent correctement les caractères ambigus. Vous ne devez vous préoccuper des
règles ci-dessus que lorsque vous insérez directement un URI entre crochets. En cas de
doute, vous pouvez utiliser la fonction org-link-escape, qui transforme une chaîne de
liens en sa forme échappée.
Une fois qu'un lien dans le tampon est complet, avec toutes les parenthèses présentes,
Org modifie l'affichage de sorte que "DESCRIPTION" soit affiché au lieu de
"[[LINK][DESCRIPTION]]" et que "LINK" soit affiché au lieu de "[[LINK]]". Les liens sont
mis en évidence dans la face org-link, qui, par défaut, est une face soulignée.
Vous pouvez modifier directement la partie visible d'un lien. Il peut s'agir de la partie
LINK, s'il n'y a pas de description, ou de la partie DESCRIPTION dans le cas contraire.
Pour éditer également la partie invisible du LIEN, utilisez C-c C-l en pointant sur le lien
(voir Section 4.5 [Gestion des liens], page 42).
Si vous placez le point au début ou juste derrière la fin du texte affiché et que vous
appuyez sur BS, vous supprimez l'accolade invisible à cet endroit2 . Le lien devient alors
incomplet et les éléments internes s'affichent à nouveau en texte brut. L'insertion de la
parenthèse manquante masque à nouveau les éléments internes du lien. Pour afficher
la structure interne de tous les liens, utilisez le menu : Org → Hyperliens → Liens
littéraux.
1
Les URI simples ne sont reconnus que pour un ensemble bien défini de schémas. Voir la section 4.4
[Liens externes], page 40. Contrairement à la syntaxe des URI, ils ne peuvent pas non plus contenir de
parenthèses ou d'espaces blancs. Les URI entre crochets d'angle ne sont pas soumis à cette limitation.
2
Plus précisément, le comportement exact dépend de la façon dont le point est arrivé là - voir la section
"Texte invisible" dans elisp.
Chapitre 4 : 66
Hyperliens
3
Pour insérer un lien ciblant un titre, il est possible d'utiliser la complétion dans la mémoire tampon. Il suffit
de taper une étoile suivie de quelques lettres facultatives dans la mémoire tampon et d'appuyer sur M-
TAB. Tous les titres de la mémoire tampon actuelle sont proposés comme compléments.
4
Lorsque l'on cible un mot-clé "NAME", le mot-clé "CAPTION" est obligatoire pour obtenir une numérotation
Chapitre 4 : 67
Hyperliens
correcte (voir section 12.8 [Légendes], page 144).
Chapitre 4 : 68
Hyperliens
conserver dans la liste en vue d'une utilisation ultérieure, utilisez un argument de préfixe triple C-u à
C-c C-l, ou configurez l'option org-link-keep- stored-after-insertion.
9
Cela fonctionne si une fonction a été définie dans la propriété :complete d'un lien dans org-link-parameters.
Chapitre 4 : 76
Hyperliens
Si vous avez besoin d'abréviations spéciales pour un seul tampon Org, vous pouvez
les définir dans le fichier à l'aide de la commande
#+LINK : bugzilla https://10.1.2.9/bugzilla/show_bug.cgi?id=
#+LINK : duckduckgo https://duckduckgo.com/?q=%s
#+LINK : "Nu Html Checker" https://validator.w3.org/nu/?doc=%h
Les abréviations contenant des espaces doivent être citées.
La complétion dans la mémoire tampon (voir Section 17.1 [Complétion], page 247)
peut être utilisée après "[" pour compléter les abréviations des liens. Vous pouvez
également définir une fonction Lisp qui implémente un support spécial (par exemple, la
complétion) pour l'insertion d'un tel lien avec C-c C-l. Une telle fonction ne doit
accepter aucun argument et doit renvoyer le lien complet avec un préfixe. Vous
pouvez définir la fonction de complétion de lien comme suit :
(org-link-set-parameter "type" :complete #'some-completion-function)
'/REGEXP/'
Effectuer une recherche par expression régulière pour REGEXP (voir Section
17.9 [Expres- sions régulières], page 254). Ceci utilise la commande Emacs
occur pour lister toutes les correspondances dans une fenêtre séparée. Si le
fichier cible est en mode Org, org-occur est utilisé pour créer un arbre
clairsemé avec les correspondances.
Dans un cas dégénéré, un lien de fichier avec un nom de fichier vide peut être utilisé
pour effectuer une recherche dans le fichier actuel. Par exemple, '[[fichier:::me
trouver]]' effectue une recherche pour "me trouver" dans le fichier courant, tout
comme le ferait '[[me trouver]]'.
5 Articles TODO
Le mode Org ne gère pas les listes d'ODD comme des documents distincts1 . Au
contraire, les éléments TODO font partie intégrante du fichier de notes, car les éléments
TODO apparaissent généralement lors de la prise de notes ! Avec le mode Org, il suffit
de marquer n'importe quelle entrée d'une arborescence comme étant un élément
TODO. De cette façon, les informations ne sont pas dupliquées, et le contexte complet à
partir duquel l'élément TODO est apparu est toujours présent.
Bien entendu, cette technique de gestion des éléments TODO les disperse dans
votre fichier de notes. Le mode Org compense cela en fournissant des méthodes qui
vous donnent une vue d'ensemble de toutes les choses que vous avez à faire.
directement à des personnes, en utilisant leurs noms comme mots-clés TODO. Ce type
de fonctionnalité est en fait bien mieux servi par l'utilisation de balises (voir Chapitre 6
[Balises], page 61), c'est pourquoi l'implémentation TODO est conservée uniquement
pour des raisons de compatibilité ascendante.
En utilisant les types d'ODD, il faudrait procéder de la manière suivante :
(setq org-todo-keywords '((type "Fred" "Sara" "Lucy" "|" "DONE"))))
Dans ce cas, les différents mots-clés n'indiquent pas des états, mais plutôt des types
différents. Ainsi, le flux de travail normal consisterait à assigner une tâche à une
personne, puis à la marquer comme FAITE. Le mode Org prend en charge ce style en
adaptant le fonctionnement de la commande C-c C-t3 . Lorsqu'elle est utilisée plusieurs
fois de suite, elle passe toujours en revue tous les noms, afin de sélectionner d'abord le
bon type de personne pour une tâche. Mais lorsque vous revenez à l'élément après un
certain temps et que vous exécutez à nouveau la commande C-c C-t, elle passe
directement de n'importe quel nom à "FAIT". Utilisez les arguments préfixes ou la
complétion pour sélectionner rapidement un nom spécifique. Vous pouvez également
passer en revue les éléments d'un type d'ODD spécifique dans un arbre clairsemé en
utilisant un préfixe numérique à C-c / t. Par exemple, pour voir toutes les choses que
Lucy doit faire, vous utiliserez C-3 C-c / t. Pour rassembler les éléments de Lucy de tous
les fichiers d'agenda dans un seul tampon, vous utiliserez également l'argument du
préfixe numérique lors de la création de la liste globale d'ODD : C-3 M-x org-agenda t.
3
Il en va de même pour la commande t dans la mémoire tampon de l'agenda.
Chapitre 5 : Éléments à 88
mettre à l'ordre du jour
Pour une discussion sur l'interaction avec la sélection par déplacement, voir la
section 17.14.2 [Con- flicts], page 257.
pour certains d'entre eux. Cela peut être fait en utilisant la variable org-todo-keyword-
faces. Par exemple :
(setq org-todo-keyword-faces
'(("TODO" . org-warning) ("STARTED" . "yellow")
("CANCELED" . (:foreground "blue" :weight bold))))
L'utilisation d'une liste avec les propriétés de la face, comme indiqué pour "ANNULÉ",
devrait fonctionner, mais cela ne semble pas toujours être le cas. Si nécessaire,
définissez une face spéciale et utilisez-la. Une chaîne de caractères est interprétée
comme une couleur. La variable org-faces-easy-properties détermine si cette
couleur est interprétée comme une couleur d'avant-plan ou d'arrière-plan.
* Parent
:PROPRIÉTÉS :
:ORDONNÉ : t
:FIN :
** TODO a
** TODO b, doit attendre (a)
** TODO c, doit attendre (a) et (b)
Vous pouvez vous assurer qu'une entrée n'est jamais bloquée en utilisant la propriété
"NOBLOCKING" (voir chapitre 7 [Propriétés et colonnes], page 67) :
* Cette entrée n'est jamais bloquée
:PROPRIÉTÉS :
:NOBLOCKING : t
:FIN :
C-c C-x o (org-toggle-ordered-property)
Bascule la propriété 'ORDERED' de l'entrée courante. Une propriété est utilisée
pour ce comportement parce que cela devrait être local à l'entrée courante,
et non hérité des entrées supérieures comme une balise (voir Chapitre 6
[Balises], page 61). Cependant, si vous souhaitez suivre la valeur de cette
propriété avec une balise pour une meilleure visibilité, personnalisez la
variable org-track-ordered-property-with-tag.
C-u C-u C-u C-c C-t
Modifier l'état TODO, indépendamment de tout blocage d'état.
Chapitre 5 : Éléments à 91
mettre à l'ordre du jour
Note : Ces enregistrements sont insérés après le titre sous forme de liste détaillée, le
plus récent en premier. Ces enregistrements sont insérés après le titre sous la forme
d'une liste détaillée, le plus récent étant le premier9 . Lorsque l'on prend beaucoup de
notes, on peut vouloir les mettre à l'abri dans un tiroir (voir Section 2.7 [Tiroirs], page
15). Personnalisez la variable org-log-into-drawer pour obtenir ce comportement - le
tiroir recommandé est appelé 'LOGBOOK'10 . Vous pouvez également annuler le réglage
de cette variable pour une sous-arborescence en définissant une propriété
'LOG_INTO_DRAWER'.
Comme il est normalement trop long d'enregistrer une note pour chaque état, le
mode Org prévoit une configuration par mot-clé. Pour ce faire, on ajoute des marqueurs
spéciaux '!' (pour un horodatage) ou '@' (pour une note avec horodatage) entre
parenthèses après chaque mot-clé. Par exemple, avec le paramètre
(setq org-todo-keywords
'((séquence "TODO(t)" "WAIT(w@/ !)" "|" "DONE(d !)" "ANNULÉ(c@)")))
Vous définissez non seulement des mots-clés TODO globaux et des touches d'accès
rapide, mais vous demandez également qu'une heure soit enregistrée lorsque l'entrée est
réglée sur 'DONE', et qu'une note soit enregistrée lorsque vous passez à 'WAIT' ou
'CANCELED'11 . Le paramètre pour "ATTENTE" est encore plus spécial : le " !" après la
barre oblique signifie qu'en plus de la note prise lors de l'entrée dans l'état, un
horodatage doit être enregistré lors de la sortie de l'état "ATTENTE", si et seulement si
l'état cible ne configure pas la journalisation pour l'entrée dans l'état. Cela n'a donc
aucun effet lorsque l'on passe de l'état "ATTENTE" à l'état "TERMINÉ", car l'état "TERMINÉ"
est configuré pour enregistrer uniquement un horodatage. Mais lorsque l'on repasse de
'WAIT' à 'TODO', le '/!' dans le paramètre 'WAIT' déclenche maintenant un horodatage
même si 'TODO' n'est pas configuré pour l'enregistrement.
Vous pouvez utiliser exactement la même syntaxe pour définir les préférences de journalisation locales à
un tampon :
#+TODO : TODO(t) WAIT(w@/ !) | DONE(d !) CANCELED(c@)
Pour enregistrer un horodatage sans note pour les mots-clés TODO configurés avec '@', il suffit de taper
C-c C-c pour saisir une note en blanc lorsqu'on vous le demande.
Pour définir des paramètres de journalisation propres à un sous-arbre ou à un
élément unique, définissez une propriété "LOGGING" dans cette entrée. Toute propriété
'LOGGING' non vide réinitialise tous les paramètres de journalisation à zéro. Vous pouvez
ensuite activer la journalisation pour cet arbre spécifique en utilisant des mots-clés
'STARTUP' comme 'lognotedone' ou 'logrepeat', ainsi qu'en ajoutant des paramètres
spécifiques à l'état comme 'TODO( !)'. Par exemple :
* TODO Enregistrer chaque état avec seulement un temps
:PROPRIÉTÉS :
:LOGGING : TODO( !) WAIT( !) DONE( !) CANCELED( !)
:FIN :
* TODO Enregistrer uniquement lorsque l'on passe en attente, et lorsque l'on répète.
:PROPRIÉTÉS :
:LOGGING : WAIT(@) logrepeat
:FIN :
* TODO Pas de journalisation du tout
:PROPRIÉTÉS :
9
Voir la variable org-log-states-order-reversed.
10
Notez que le tiroir "LOGBOOK" est déplié lorsque vous appuyez sur SPC dans l'agenda pour afficher
une entrée - utilisez C-u SPC pour le maintenir plié ici.
Chapitre 5 : Éléments à 94
mettre
11 à l'ordreque
Il est possible dulejour
mode Org enregistre deux horodatages lorsque vous utilisez à la fois org-log-done
et l'enregistrement des changements d'état. Cependant, il ne demande jamais deux notes : si vous avez
configuré les deux, la note d'enregistrement de changement d'état est prioritaire et annule la note de
clôture.
Chapitre 5 : Éléments à 95
mettre à l'ordre du jour
:LOGGING : nil
:FIN :
Ce qui est vraiment utile avec les habitudes, c'est qu'elles sont affichées avec un
graphique de cohérence, pour montrer à quel point vous avez été régulier dans
l'accomplissement de cette tâche dans le passé. Ce graphique montre chaque jour où la
tâche a été effectuée au cours des trois dernières semaines, avec des couleurs pour
chaque jour. Les couleurs utilisées sont les suivantes :
BleuSi la tâche ne devait pas encore être effectuée ce
jour-là. Vert Si la tâche aurait pu être effectuée ce jour-là.
JauneSi la tâche devait être en retard le jour
suivant. RougeSi la tâche était en retard ce jour-là.
Outre la coloration de chaque jour, celui-ci est également marqué d'un astérisque si
la tâche a été effectuée ce jour-là, et d'un point d'exclamation pour indiquer où se situe
le jour en cours dans le graphique.
Plusieurs variables de configuration peuvent être utilisées pour modifier la manière
dont les habitudes sont affichées dans l'agenda.
org-habit-graph-column
La colonne tampon à partir de laquelle le graphique de cohérence doit être
dessiné. Ce paramètre écrase tout texte contenu dans cette colonne, c'est
pourquoi il est préférable que les titres de vos habitudes soient brefs et
précis.
org-habit-preceding-days
La quantité d'histoire, en jours avant aujourd'hui, à faire apparaître dans les graphiques de
cohérence.
org-habit-following-days
Le nombre de jours après aujourd'hui qui apparaissent dans les graphiques de cohérence.
org-habit-show-habits-only-for-today
Si elle est non nulle, les habitudes ne sont affichées que dans la vue de
l'agenda du jour. La valeur par défaut est t. Appuyer sur C-u K dans l'agenda
fait basculer cette variable.
Enfin, en appuyant sur K dans la mémoire tampon de l'agenda, les habitudes sont
temporairement désactivées et n'apparaissent pas du tout. Appuyez à nouveau sur K
pour les faire réapparaître. Elles sont également soumises au filtrage des balises, si
vous avez des habitudes qui ne doivent être faites que dans certains contextes, par
exemple.
5.4 Priorités
Si vous utilisez le mode Org de manière intensive, vous pouvez vous retrouver avec
suffisamment d'éléments TODO pour qu'il soit judicieux de les classer par ordre de
priorité. L'établissement d'un ordre de priorité peut se faire en plaçant un témoin de
priorité dans le titre d'un élément TODO, juste après le mot-clé TODO, comme ceci :
*** TODO [#A] Écrire une lettre à Sam Fortune
Par défaut, le mode Org prend en charge trois priorités : 'A', 'B' et 'C'. A" est la priorité
la plus élevée. Une entrée sans cookie est considérée comme équivalente si elle avait la
priorité 'B'. Les priorités ne font une différence que pour le tri dans l'agenda (voir Section
11.3.1 [Agenda hebdomadaire/quotidien], page 111). En dehors de l'agenda, elles n'ont
Chapitre 5 : Éléments à 98
mettre
pas deà signification
l'ordre du jour
inhérente au mode Org. Les cookies sont affichés avec la face
définie par la variable org-priority-faces, qui peut être personnalisée.
Vous pouvez également utiliser des valeurs numériques pour les priorités, telles que
Chapitre 5 : Éléments à 99
mettre à l'ordre du jour
Si vous souhaitez que le cookie de statistiques compte toutes les entrées TODO de la
sous-arborescence (et pas seulement les enfants directs), configurez la variable org-
hierarchical-todo-statistics. Pour faire cela pour un seul sous-arbre, incluez le
mot "recursive" dans la valeur de la propriété "COOKIE_DATA".
* Statistiques de capture des parents [2/20]
:PROPRIÉTÉS :
:COOKIE_DATA : todo recursive
:FIN :
Si vous souhaitez qu'une entrée TODO passe automatiquement à DONE lorsque
tous les enfants sont terminés, vous pouvez utiliser la configuration suivante :
(defun org-summary-todo (n-done n-not-done)
"Passer l'entrée à DONE lorsque toutes les sous-entrées sont
terminées, à TODOdans le cas contraire."(let (org-log-done org-log-
states) désactiver la journalisation
(org-todo (if (= n-not-done 0) "DONE" "TODO"))))
sur lequel le cookie apparaît15 . Vous devez insérer le cookie vous-même en tapant soit
"[/]", soit "[%]". Avec "[/]", vous obtenez un résultat "n sur m", comme dans les
exemples ci-dessus. Avec "[%]", vous obtenez des informations sur le pourcentage de
cases cochées (dans l'exemple ci-dessus, il s'agirait respectivement de "[50 %]" et de
"[33 %]"). Dans un titre, un cookie peut compter les cases à cocher sous le titre ou les
états TODO des enfants, et il affiche ce qui a été modifié en dernier. Pour résoudre ce
problème, définissez la propriété "COOKIE_DATA" sur "checkbox" ou "todo".
Si le nœud de contour actuel possède une propriété "ORDERED", les cases à cocher
doivent être cochées dans l'ordre et une erreur est générée si vous essayez de cocher
une case alors qu'il y a des cases non cochées au-dessus d'elle.
Les commandes suivantes fonctionnent avec les cases à cocher :
C-c C-c (org-toggle-checkbox)
Basculer l'état d'une case à cocher ou - avec un argument préfixe - présence
d'une case à cocher à un point. Avec un argument préfixe simple, ajoutez une
case à cocher vide ou supprimez la case à cocher actuelle16 . Avec un
double argument préfixe, le mettre à '[-]', ce qui est considéré comme un
état intermédiaire.
C-c C-x C-b (org-toggle-checkbox)
Basculer l'état de la case à cocher ou - avec un argument préfixe - la présence
de la case à cocher au point. Si l'argument préfixe est double, il prend la
valeur '[-]', qui est considérée comme un état intermédiaire.
• S'il existe une région active, la première case à cocher de la région est
activée et toutes les autres cases ont le même statut que la première.
Avec un argument préfixe, ajouter ou supprimer la case à cocher pour
tous les éléments de la région.
• Si le point se trouve dans un titre, faire basculer les cases à cocher dans
la région située entre cette ligne de tête et la suivante, et non dans
l'ensemble du sous-arbre.
• S'il n'y a pas de région active, il suffit de cocher la case au point.
C-c C-x C-r (org-toggle-radio-button)
Basculer le statut de la case à cocher en utilisant la case à cocher de
l'élément en question comme un bouton radio : lorsque la case à cocher est
activée, toutes les autres cases à cocher du même niveau sont désactivées.
Avec un argument de préfixe universel, basculer la présence de la case à
cocher. Si le préfixe est double, il prend la valeur '[-]'.
C-c On peut demander à C-c de considérer les cases à cocher comme
des boutons radio en plaçant '#+ATTR_ORG : :radio t' juste avant la
liste ou en appelant M-x org-list-checkbox-radio-mode pour activer ce mode
mineur.
M-S-RET (org-insert-todo-heading)
Insérer un nouvel élément avec une case à cocher. Cela ne fonctionne que
si le point se trouve déjà dans un élément de liste simple (voir la section 2.6
[Listes simples], page 12).
C-c C-x o (org-toggle-ordered-property)
Fait basculer la propriété "ORDERED" de l'entrée, pour indiquer si les cases à
cocher doivent être cochées dans l'ordre. Une propriété est utilisée pour ce
comportement, car cette propriété
Chapitre 5 : Éléments à 10
mettre
15 à l'ordre
Définissez du jour
la variable org-hierarchical-checkbox-statistics si vous souhaitez que ces cookies 4
prennent en compte toutes les cases à cocher situées sous le cookie, et pas seulement celles qui
appartiennent à des enfants directs.
16
C-u C-c C-c sur le premier élément d'une liste sans case à cocher ajoute des cases à cocher au reste de la liste.
Chapitre 5 : Éléments à 10
mettre à l'ordre du jour 5
doit être locale à l'entrée courante, et non héritée comme une balise.
Cependant, si vous souhaitez suivre la valeur de cette propriété avec une
balise pour une meilleure visibilité, personnalisez org-track-ordered-
property-with-tag.
C-c # (org-update-statistics-cookies)
Mettre à jour le cookie de statistiques dans l'entrée de contour actuelle.
Lorsqu'il est appelé avec un préfixe C-u, il met à jour l'ensemble du fichier.
Les cookies statistiques des cases à cocher sont mis à jour
automatiquement si vous basculez les cases à cocher avec C-c C-c et que
vous en créez de nouvelles avec M-S-RET. Les cookies de statistiques TODO
sont mis à jour lorsque vous changez d'état TODO. Si vous supprimez des
boîtes/entrées ou les ajoutez/modifiez à la main, utilisez cette commande
pour rétablir la synchronisation.
Chapitre 6 : 10
Tags 6
6 Tags
Un excellent moyen de mettre en œuvre des étiquettes et des contextes pour la
corrélation croisée des informations est d'attribuer des étiquettes aux titres. Le mode Org
offre une prise en charge étendue des balises.
Chaque titre peut contenir une liste de balises ; elles se trouvent à la fin du titre. Les
balises sont des mots normaux contenant des lettres, des chiffres, des "_" et des "@". Les
balises doivent être précédées et suivies de deux points, par exemple, ':work:'. Plusieurs
balises peuvent être spécifiées, comme dans ':work:urgent:'. Par défaut, les balises
sont en gras et de la même couleur que le titre. Vous pouvez spécifier des visages
spéciaux pour des balises spécifiques en utilisant la variable org-tag-faces, de la même
manière que pour les mots-clés TODO (voir Section 5.2.6 [Visages pour les mots-clés
TODO], page 51).
4
Des touches sont automatiquement attribuées aux étiquettes qui n'ont pas de touches configurées.
Chapitre 6 : 11
Tags 2
Si vous avez besoin de plus de touches, appuyez sur C-c pour désactiver la sortie
automatique du processus de sélection d'étiquette en cours (en fait : commencez la
sélection avec C-c C-c C-c au lieu de C-c C-c). Si vous donnez à la variable la valeur
expert, la fenêtre spéciale n'est même pas affichée pour la sélection d'une balise à une
touche, elle n'apparaît que lorsque vous appuyez sur un C-c supplémentaire.
("Contrôle")
(:grouptags)
("Contexte")
("Tâche")
(:endgrouptag)))
Les balises d'un groupe peuvent être mutuellement exclusives si l'on utilise la même
syntaxe de groupe que celle utilisée pour regrouper des balises mutuellement
exclusives, en utilisant des crochets.
#+TAGS : { Context : @Home @Work @Call }
Lorsque vous définissez org-tag-alist, vous pouvez utiliser :startgroup et :endgroup au lieu de
:startgrouptag et :endgrouptag pour que les balises s'excluent mutuellement.
De plus, les membres d'une balise de groupe peuvent également être des
expressions régulières, ce qui permet de créer une structure de balise plus dynamique
et basée sur des règles (voir Section 17.9 [Expressions régulières], page 254). Les
expressions régulières du groupe doivent être spécifiées entre crochets. Voici un exemple
développé :
#+TAGS : [ Vision : {V@.+} ]
#+TAGS : [ Goal : {G@.+} ]
#+TAGS : [ AOF : {AOF@.+} ]
#+TAGS : [ Projet : {P@.+} ]
La recherche de l'étiquette "Projet" liste désormais toutes les étiquettes, y compris
les expressions régulières correspondant à "P@.+", et de la même manière pour les
recherches d'étiquettes sur "Vision", "Goal" et "AOF". Par exemple, cela fonctionnerait
bien pour un projet étiqueté avec un identifiant de projet commun, par exemple,
'P@2014_OrgTags'.
Si vous voulez ignorer temporairement les tags de groupe, activez le support des
tags de groupe avec org-toggle-tags-groups, lié à C-c C-x q. Si vous voulez désactiver
complètement les groupes de tags, mettez org-group-tags à nil.
les mots-clés, les niveaux d'entrée et les propriétés. Pour une description complète avec
de nombreux exemples, voir la section 11.3.3 [Correspondance entre les balises et les
propriétés], page 115.
Chapitre 7 : Propriétés et colonnes 11
7
7 Propriétés et colonnes
Une propriété est une paire clé-valeur associée à une entrée. Les propriétés peuvent
être définies de manière à être associées à une seule entrée, à chaque entrée d'un
arbre ou à l'ensemble du tampon.
Les propriétés ont deux applications principales en mode Org. Premièrement, les
propriétés sont comme des balises, mais avec une valeur. Imaginez que vous
mainteniez un fichier dans lequel vous documentez les bogues et planifiez les versions
d'un logiciel. Au lieu d'utiliser des balises comme 'release_1', 'release_2', vous pouvez
utiliser une propriété, disons 'Release', qui dans différents sous-arbres a des valeurs
différentes, comme '1.0' ou '2.0'. Deuxièmement, vous pouvez utiliser des propriétés
pour mettre en œuvre des capacités de base de données (très basiques) dans un
tampon Org. Imaginez que vous gardiez une trace de vos CD de musique, où les
propriétés pourraient être des choses telles que l'album, l'artiste, la date de sortie, le
nombre de pistes, et ainsi de suite.
Les propriétés peuvent être modifiées et visualisées de manière pratique en vue
colonne (voir Section 7.5 [Vue colonne], page 71).
Les propriétés peuvent être insérées au niveau de la mémoire tampon. Cela signifie
qu'elles s'appliquent avant le premier titre et qu'elles peuvent être héritées par toutes les
entrées d'un fichier. Les blocs de propriétés définis avant le premier titre doivent être
situés en haut de la mémoire tampon, ce qui n'autorise que les commentaires au-
dessus.
Les propriétés peuvent également être définies à l'aide de lignes telles que
#+PROPERTY : NDisks_ALL 1 2 3 4
Si vous souhaitez compléter la valeur d'une propriété existante, ajoutez un "+" au
nom de la propriété. Dans l'exemple suivant, la propriété "var" aura la valeur "foo=1
bar=2".
#+PROPERTY : var
foo=1 #+PROPERTY :
var+ bar=2
Il est également possible de compléter les valeurs des propriétés héritées. Le résultat
suivant est que la propriété "Genres" a la valeur "Classique Baroque" dans le sous-
arbre "Variations Goldberg".
* Collection de CD
** Classique
:PROPRIÉTÉS :
:Genres : Classique
:FIN :
*** Variations Goldberg
:PROPRIÉTÉS :
Titre:Variations Goldberg
Compositeur : J.S. Bach
:Artiste: Glenn Gould
:Éditeur : Deutsche Grammophon
:NDisks : 1
:Genres+ : Baroque
:FIN :
Notez qu'un bien ne peut avoir qu'une seule entrée par tiroir.
Les valeurs des propriétés définies à l'aide de la variable globale org-global-
properties peuvent être héritées par toutes les entrées de tous les fichiers Org.
Les commandes suivantes permettent de travailler avec les propriétés :
M-TAB (pcomplete)
Après les deux-points initiaux d'une ligne, compléter les clés de propriété.
Toutes les clés utilisées dans le fichier actuel sont proposées comme
compléments possibles.
C-c C-x p (org-set-property)
Définir une propriété. Un nom de propriété et une valeur sont demandés. Si
nécessaire, le tiroir de la propriété est également créé.
C-u M-x org-insert-drawer
Insérer un tiroir de propriété dans l'entrée en cours. Le tiroir est inséré au
début de l'entrée, mais après les lignes contenant des informations de
planification telles que les délais. S'il est placé avant le premier titre, le tiroir
est inséré en haut du tiroir, après tout commentaire potentiel.
C-c C-c (org-property-action)
Chapitre 7 : Propriétés et colonnes 12
0
Avec un point dans un tiroir de propriété, il exécute des commandes de propriété.
Chapitre 7 : Propriétés et colonnes 12
1
TITRE Texte de l'en-tête de la colonne. S'il est omis, le nom de la propriété est utilisé.
TYPE DE RÉSUMÉ
Le type de résumé. Si cette option est spécifiée, les valeurs des colonnes
des nœuds parents sont calculées à partir des nœuds enfants1 .
Les types de résumé pris en charge sont les suivants :
'+' Additionner les nombres dans cette colonne.
'+;%.1f' Comme '+', mais en formatant le
résultat avec '%.1f'. '$'Devise, abréviation de
'+;%.2f'.
min Plus petit nombre de la
colonne. 'max' Plus grand nombre.
'mean' Moyenne arithmétique des nombres.
X" Statut de la case à cocher, "[X]" si tous les
enfants sont "[X]". X/" Statut de la case à cocher,
"[n/m]".
'X%' Statut de la case à cocher, '[n%]'.
':' Somme des heures, HH:MM, les nombres en
clair sont des minutes. ':min' Plus petite valeur temporelle
dans la colonne.
':max' Plus grande valeur temporelle.
':mean'Moyenne arithmétique des valeurs temporelles.
'@min'Âge minimum2 (en
jours/heures/minutes/secondes). '@max'Âge maximum
(en jours/heures/minutes/secondes).
'@mean'Moyenne arithmétique des âges (en
jours/heures/minutes/secondes). 'est+' Ajouter les
estimations basse-haute.
Vous pouvez également définir des types de résumé personnalisés en
définissant org-columns-summary- types.
Le type de résumé "est+" nécessite des explications supplémentaires. Il est utilisé
pour combiner des estimations, exprimées sous la forme de fourchettes basses-hautes.
Par exemple, au lieu d'estimer qu'une tâche particulière prendra 5 jours, vous pouvez
l'estimer entre 5 et 6 jours si vous êtes relativement sûr de connaître la quantité de
travail nécessaire, ou entre 1 et 10 jours si vous ne savez pas vraiment ce qu'il y a à
faire. Les deux fourchettes se situent en moyenne à 5,5 jours, mais la première
représente une livraison plus prévisible.
Lorsque l'on combine un ensemble d'estimations de ce type, le simple fait
d'additionner les valeurs les plus basses et les plus élevées produit un résultat trop
large. Au lieu de cela, "est+" ajoute la moyenne statistique et la variance des sous-
tâches, générant ainsi une estimation finale à partir de la somme. Par exemple,
supposons que vous ayez dix tâches, dont chacune est estimée entre 0,5 et 2 jours de
travail. L'addition directe produit une estimation de 5 à 20 jours, représentant ce à quoi il
faut s'attendre si tout se passe très bien ou très mal. En revanche, "est+" estime le
travail complet de manière plus réaliste, à savoir entre 10 et 15 jours.
Voici un exemple de définition complète d'une colonne, avec les valeurs autorisées3 .
:COLONNES : %25ITEM %9Approuvé(Approuvé ?){X} %Propriétaire %11Etat \
%10Time_Estimate{:} %CLOCKSUM %CLOCKSUM_T
1
Si plusieurs types de résumé s'appliquent à la même propriété, les valeurs parentes sont calculées en
fonction du premier d'entre eux.
Chapitre 7 : Propriétés et colonnes 12
2 8
Un âge peut être défini comme une durée, en utilisant les unités définies dans org-duration-units, par
exemple, "3d 1h". Si une valeur de la colonne est telle, le résumé est également exprimé en tant que
durée.
3
Veuillez noter que la définition des "COLONNES" doit être sur une seule ligne ; elle n'est encapsulée ici
qu'en raison de contraintes de formatage.
Chapitre 7 : Propriétés et colonnes 12
9
#+END :
Ce bloc dynamique a les paramètres suivants :
':id'Il s 'agit du paramètre le plus important. La vue en colonne est une
caractéristique qui est souvent localisée à un certain (sous-)arbre, et le bloc
de capture peut se trouver à un autre endroit du fichier. Pour identifier l'arbre
dont la vue doit être capturée, vous pouvez utiliser quatre valeurs :
'local' Utilise l'arbre dans lequel se trouve le bloc de
capture. 'global' Permet d'obtenir une vue globale,
incluant toutes les rubriques du fichier. 'file:FILENAME'
(fichier:nom de fichier)
Exécuter la vue en colonne en haut du fichier FILENAME.
LABEL' Appeler la vue colonne dans l'arbre qui a une propriété 'ID' avec
la valeur LABEL. Vous pouvez utiliser M-x org-id-copy pour
créer un identifiant unique pour l'entrée courante et le copier
dans le kill-ring.
':match' S'il s'agit d'une chaîne de caractères, ce filtre permet de sélectionner un sous-
ensemble de titres dans le champ défini par le paramètre :id.
Chapitre 7 : Propriétés et colonnes 13
2
':hlines' Quand t, insérer une hline après chaque ligne. Avec un nombre N, insérer
une ligne h avant chaque titre de niveau <= N.
':vlines' S'il est non nul, force les groupes de colonnes à
obtenir des lignes verticales. ':maxlevel'
Lorsqu'il s'agit d'un nombre, les entrées inférieures à ce niveau ne sont pas capturées.
':skip-empty-rows'
Si elle est non nulle, les lignes où le seul spécificateur non vide de la vue
de colonne est "ITEM" sont ignorées.
':exclude-tags'
Liste des balises à exclure du tableau des colonnes : les entrées comportant
ces balises seront exclues de l'affichage des colonnes.
':indent' S'il est non nul, indenter chaque champ 'ITEM' en fonction de son niveau.
':format' Spécifier un attribut de colonne (voir section 7.5.1.2 [Attributs de colonne],
page 71) pour le bloc dynamique.
Les commandes suivantes permettent d'insérer ou de mettre à jour le bloc dynamique :
org-columns-insert-dblock
Insérer un bloc dynamique capturant une vue en colonnes. Demander
l'étendue ou l'ID de la vue.
Cette commande peut être invoquée en appelant org-dynamic-block-
insert-dblock (C-c C-x x) et en sélectionnant "columnview" (voir Section A.6
[Blocs dynamiques], page 270).
C-c C-c C-c C-x C-u (org-dblock-update)
Le point doit se trouver dans la ligne '#+BEGIN' du bloc dynamique.
C-u C-c C-x C-u (org-update-all-dblocks)
Mettre à jour tous les blocs dynamiques (voir section A.6 [Blocs
dynamiques], page 270). Cette fonction est utile si vous avez plusieurs blocs
de table d'horloge, blocs de capture de colonnes ou autres blocs dynamiques
dans une mémoire tampon.
Vous pouvez ajouter des formules au tableau de la vue en colonnes et vous pouvez
ajouter des instructions de traçage devant le tableau - celles-ci survivent à une mise à
jour du bloc. Si le mot-clé "TBLFM" figure après le tableau, celui-ci est recalculé
automatiquement après une mise à jour.
Une autre façon de capturer et de traiter les valeurs des propriétés dans une table est
fournie par 'org-collector.el' d'Eric Schulte, qui est un paquetage dans 'org-contrib'4 .
Il fournit une API générale pour collecter les propriétés des entrées dans une certaine
portée, et des expressions Lisp arbitraires pour traiter ces valeurs avant de les insérer
dans un tableau ou un bloc dynamique.
4
Les paquets contribués ne font pas partie d'Emacs, mais sont distribués avec la distribution principale d'Org-visit.
https://orgmode.org.
Chapitre 8 : Dates et heures 13
3
8 Dates et heures
Pour faciliter la planification d'un projet, les éléments TODO peuvent être étiquetés avec
une date et/ou une heure. La chaîne de caractères spécialement formatée qui contient
les informations relatives à la date et à l'heure est appelée horodatage en mode Org.
Cela peut prêter à confusion car le terme horodatage est souvent utilisé pour indiquer la
date de création ou de dernière modification d'un document. Cependant, en mode Org,
ce terme est utilisé dans un sens beaucoup plus large.
8.1 Horodatage
Un horodatage est la spécification d'une date (éventuellement accompagnée d'une
heure ou d'une plage d'heures) dans un format spécial, soit '<2003-09-16 Tue>' ou
'<2003-09-16 Tue 09:39>' ou '<2003-09-16 Tue 12:00-12:30>'1 . Un horodatage
peut apparaître n'importe où dans le titre ou le corps d'une entrée de l'arbre Org. Sa
présence entraîne l'affichage des entrées à des dates spécifiques dans l'agenda (voir
Section 11.3.1 [Agenda hebdomadaire/quotidien], page 111). Nous faisons une
distinction :
Horodatage en clair ; Événement ; Rendez-vous
Un simple horodatage attribue simplement une date/heure à un élément.
Cela revient à noter un rendez-vous ou un événement dans un agenda
papier. Dans l'affichage de l'agenda, le titre d'une entrée associée à un
horodatage simple est affiché exactement à cette date.
* Rencontrer Peter au cinéma
<2006-11-01 Wed 19:15>
* Discussion sur le changement climatique
<2006-11-02 Thu 20:00-22:00>
Horodatage avec intervalle de répétition
Un horodatage peut contenir un intervalle de répétition, indiquant qu'il
s'applique non seulement à la date donnée, mais encore et encore après un
certain intervalle de N heures (h), jours (d), semaines (w), mois (m), ou
années (y). Le texte suivant apparaît dans l'agenda tous les mercredis :
* Aller chercher Sam à l'école
<2007-05-16 Wed 12:30 +1w>
Entrées d'expression de type journal
Pour des spécifications de date plus complexes, le mode Org permet
d'utiliser l'expression spéciale diary entries implémentée dans le paquetage
Emacs Calendar2 . Par exemple, avec l'heure optionnelle :
1
Le format de date Org s'inspire du format standard de date et d'heure ISO 8601. Pour utiliser un autre
format, voir la section 8.2.2 [Format d'heure personnalisé], page 80. Le nom du jour est facultatif lorsque
vous saisissez vous-même la date. Cependant, toute date insérée ou modifiée par Org ajoute ce nom de
jour, pour des raisons de commodité de lecture.
2
Lorsque vous travaillez avec les fonctions d'expression standard de l'agenda, vous devez faire très
attention à l'ordre des arguments. Cet ordre dépend en effet de la variable calendar-date-style. Par
exemple, pour spécifier une date du 1er décembre 2005, l'appel peut ressembler à "(date-agenda 12 1
2005)" ou " (date-agenda 1 12 2005)" ou "(date-agenda 2005 12 1)", en fonction des paramètres.
Cela a été la source de nombreuses confusions. Les utilisateurs du mode Org peuvent recourir à des
versions spéciales de ces fonctions, à savoir org-date, org-anniversary, org-cyclic et ~org-block.
Ces fonctions fonctionnent comme les fonctions d'agenda correspondantes, mais avec l'ordre ISO
stable des arguments (année, mois, jour) chaque fois que cela est applicable, indépendamment de la
valeur de calendar-date-style.
Chapitre 8 : Dates et heures 13
4
Plage de
temps/Date
Deux horodatages reliés par "--" indiquent une fourchette. Le titre est affiché sur
le premier et le dernier jour de la plage, ainsi que toutes les dates affichées
qui se situent dans la plage. Voici un exemple :
** Réunion à Amsterdam
<2004-08-23 Mon>--<2004-08-26 Thu>
Horodatage de l'inactivité
Tout comme un timestamp ordinaire, mais avec des crochets au lieu de
crochets angulaires. Ces horodatages sont inactifs dans le sens où ils ne
déclenchent pas l'affichage d'une entrée dans l'agenda.
* Gillian est en retard pour la
cinquième fois [2006-11-01 Wed].
S-LEFT (org-timestamp-down-day)
S-RIGHT (org-timestamp-up-day)
Modifier la date d'un point d'un jour. Ces combinaisons de touches sont en
conflit avec la sélection par majuscule et les modes associés (voir Section
17.14.2 [Conflits], page 257).
S-UP (org-timestamp-up)
S-DOWN (org-timestamp-down)
Au début ou à la fin d'un horodatage, changer le type de l'horodatage. À
l'intérieur d'un horodatage, modifiez l'élément sous le point. Le point peut
être l'année, le mois, le jour, l'heure ou la minute. Lorsque l'horodatage
contient une plage horaire telle que "15:30-16:30", la modification de la
première heure décale également la seconde, décalant ainsi le bloc horaire
d'une longueur constante. Pour modifier la longueur, il faut modifier la
deuxième heure. Notez que si le point se trouve dans un titre et non dans un
horodatage, ces mêmes touches modifient la priorité d'un élément (voir
Section 5.4 [Priorités], page 56). Les liaisons de touches entrent également
en conflit avec la sélection par majuscule et les modes associés (voir
Section 17.14.2 [Conflits], page 257).
C-c C-y (org-evaluate-time-range)
Évaluer un intervalle de temps en calculant la différence entre le début et la
fin. Avec un argument préfixe, insérer le résultat après l'intervalle de temps
(dans un tableau : dans la colonne suivante).
5
Vous pouvez également utiliser la commande de calendrier . pour passer à la date du jour,
mais si vous insérez une heure dans votre horodatage, . insérera alors un point après l'heure.
En revanche, la commande C-. permet toujours de passer à la date du jour.
Chapitre 8 : Dates et heures 14
6
Si cela vous gêne, désactivez l'affichage avec org-read-date-display-live.
0
Chapitre 8 : Dates et heures 14
1
DATE
LIMITE Signification : la tâche - très probablement un élément TODO, mais pas
nécessairement - est censée être terminée à cette date.
Le jour de l'échéance, la tâche est inscrite dans l'agenda. En outre, l'agenda
du jour comporte un avertissement concernant l'approche ou le
dépassement de l'échéance, qui commence org-deadline-warning-jours
avant la date d'échéance et se poursuit jusqu'à ce que l'entrée soit marquée
comme étant terminée. Voici un exemple :
*** TODO écrire un article sur la Terre pour le Guide
DEADLINE : <2004-02-29 Sun>
Le rédacteur en chef est [[bbdb:Ford Prefect]]
Vous pouvez spécifier un délai d'avertissement différent pour une échéance
spécifique en utilisant la syntaxe suivante. Voici un exemple avec une
période d'avertissement de 5 jours 'DEADLINE : <2004-02-29 Sun -5d>'.
Cet avertissement est désactivé si la tâche est planifiée et que vous attribuez
la valeur t à org-agenda-skip-deadline-prewarning-if- scheduled.
"PROGRAMMÉ
Signification : vous prévoyez de commencer à travailler sur cette tâche à la date indiquée.
Le titre est répertorié sous la date donnée7 . En outre, un rappel indiquant
que la date prévue est passée est présent dans la compilation pour aujourd'hui,
jusqu'à ce que l'entrée soit marquée comme effectuée, c'est-à-dire que la
tâche est automatiquement transmise jusqu'à ce qu'elle soit terminée.
*** TODO Appeler Trillian pour un rendez-vous la veille du Nouvel An.
PROGRAMME : <2004-12-25 sam>
Si vous souhaitez retarder l'affichage de cette tâche dans l'agenda, utilisez 'SCHEDULED' :
<2004-12-25 Sat -2d>' : la tâche est toujours programmée le 25 mais
apparaîtra deux jours plus tard. Si la tâche contient un répéteur, le délai est
considéré comme affectant toutes les occurrences ; si vous souhaitez que le
délai n'affecte que la première occurrence programmée de la tâche, utilisez
'--2d' à la place. Voir org-scheduled-delay-days et org-agenda-skip-
scheduled-delay-if-deadline pour plus de détails sur la façon de
contrôler ceci globalement ou par agenda.
Important : la programmation d'un élément en mode Org ne doit
pas être comprise de la même manière que la programmation
d'une réunion. Fixer une date pour une réunion n'est qu'un simple
rendez-vous, vous devriez marquer cette entrée avec un simple
horodatage, pour que cet élément s'affiche à la date à laquelle il
s'applique. Il s'agit d'une erreur de compréhension fréquente de
la part des utilisateurs d'Org. En mode Org, planifier signifie fixer
une date à laquelle vous voulez commencer à travailler sur un
élément d'action.
Vous pouvez utiliser les horodatages avec les répétiteurs dans les entrées de
programmation et d'échéance. Le mode Org émet des avertissements précoces et
tardifs en partant du principe que l'horodatage représente l'instance la plus proche du
répétiteur. Toutefois, l'utilisation d'expressions d'agenda telles que
<%%(journal-float t 42)>
Chapitre 8 : Dates et heures 14
2
7
Il sera toujours répertorié à cette date après avoir été marqué comme terminé. Si cela ne vous convient pas, définissez la
variable
org-agenda-skip-scheduled-if-done.
Chapitre 8 : Dates et heures 14
3
Le mode Org ne connaît pas suffisamment les aspects internes de chaque fonction pour
émettre des avertissements précoces et tardifs. Le mode Org n'en sait pas assez sur les
aspects internes de chaque fonction pour émettre des avertissements précoces et
tardifs. Cependant, il affiche chaque jour l'élément pour lequel l'entrée de l'expression
correspond.
le "+1m" est un répéteur ; l'interprétation voulue est que la tâche a une échéance le
"<2005-10-01>" et se répète tous les (un) mois à partir de cette date. Vous pouvez
utiliser des témoins de répétition annuels, mensuels, hebdomadaires, quotidiens et
horaires en utilisant les lettres "y", "m", "w", "d" et "h". Si vous avez besoin à la fois
d'une répétition et d'une période d'avertissement spéciale dans une entrée de délai, la
répétition doit être placée en premier et la période d'avertissement en dernier.
DATE LIMITE : <2005-10-01 sam +1m -3d>
Les échéances et les éléments planifiés produisent des entrées dans l'agenda lorsqu'ils
sont en retard, il est donc important de pouvoir marquer un tel élément comme étant fait
une fois que vous l'avez fait. Lorsque vous marquez un "DEADLINE" ou un "SCHEDULED"
avec le mot-clé TODO "DONE", il ne produit plus d'entrées dans l'agenda. Le problème
est que la prochaine occurrence de l'entrée répétée ne sera pas non plus active. Le
mode Org gère ce problème de la manière suivante : lorsque vous essayez de marquer
une telle entrée comme terminée, en utilisant C-c C-t, il décale la date de base de
l'horodatage répété de l'intervalle du répétiteur, et remet immédiatement l'état de l'entrée
à TODO12 . Dans l'exemple ci-dessus, le fait de mettre l'état à "FAIT" modifierait en fait la
date comme suit :
** TODO Payer le loyer
DATE LIMITE : <2005-11-01 Mar +1m>
Pour marquer une tâche avec un répétiteur comme étant FAITE, utilisez C-- 1 C-c
C-t, c'est-à-dire org-todo avec un préfixe numérique de '-1'.
Un horodatage (13 ) est ajouté sous le délai, afin de garder une trace du fait que vous
avez effectivement agi lors de la précédente occurrence de ce délai.
En raison du décalage de la date de base, cette entrée n'est plus visible dans
l'agenda lors de la vérification des dates passées, mais toutes les instances futures le
seront.
Avec le cookie "+1m", le décalage de la date est toujours d'un mois exactement. Ainsi,
si vous n'avez pas payé le loyer depuis trois mois, le fait de marquer cette entrée "FAIT"
la maintient comme une échéance en retard. En fonction de la tâche, ce n'est peut-être
pas la meilleure façon de la gérer. Par exemple, si vous avez oublié d'appeler votre père
pendant trois semaines, il n'est pas judicieux de l'appeler trois fois en une seule journée
pour rattraper le coup. Enfin, certaines tâches, comme le changement de piles, doivent
toujours être répétées un certain temps après la dernière fois que vous les avez
effectuées. Pour ces tâches, le mode Org dispose de répétiteurs spéciaux '++' et '.+'. En
voici un exemple :
** TODO Call Father
DATE LIMITE : <2008-02-10 Sun ++1w>
Le fait de marquer "FAIT" décale la date d'au moins une
semaine, mais aussi d'autant de semaines qu'il est nécessaire
pour que cette date soit reportée dans le futur.
Cependant, il reste un dimanche, même si vous avez appelé et
indiqué qu'il avait été fait le samedi.
14 L'
horloge ne fonctionne que si tous les titres sont indentés avec moins de 30 étoiles. Il s'agit d'une
limitation codée en dur de lmax dans org-clock-sum.
15
Pour reprendre l'horloge en supposant que vous avez travaillé sur cette tâche en dehors d'Emacs, utilisez
'(setq org-clock-persist t)'.
Chapitre 8 : Dates et heures 14
8
plusieurs lignes 'CLOCK' sont regroupées dans un tiroir 'LOGBOOK' (voir aussi la
variable org-clock-into-drawer). Vous pouvez également annuler la
configuration de cette variable pour une sous-arborescence en définissant
une propriété 'CLOCK_INTO_DRAWER' ou 'LOG_INTO_DRAWER'. Lorsqu'il est
appelé avec un argument préfixe C-u, il sélectionne la tâche dans une liste
de tâches récemment cadencées. Avec deux préfixes C-u C-u, la tâche est
cadencée au point et marquée comme tâche par défaut ; la tâche par défaut
est toujours disponible avec la lettre d lors de la sélection d'une tâche de
cadencement. Avec trois préfixes C-u C-u C-u, forcer le cadencement continu
en démarrant l'horloge lorsque la dernière horloge s'est arrêtée.
Pendant que l'horloge fonctionne, Org affiche le temps d'horloge actuel dans
la ligne de mode, ainsi que le titre de la tâche. Le temps d'horloge affiché est
tout le temps d'horloge jamais enregistré pour cette tâche et ses enfants. Si
la tâche a une estimation de l'effort (voir Section 8.5 [Estimation de l'effort],
page 91), la ligne de mode affiche le temps de pointage actuel par rapport à
cette estimation16 . Si la tâche est répétitive (voir Section 8.3.2 [Tâches
répétées], page 82), elle n'affiche que le temps écoulé depuis la dernière
réinitialisation de la tâche17 . Vous pouvez exercer un plus grand contrôle sur
l'affichage de l'heure avec la propriété 'CLOCK_MODELINE_TOTAL'. Elle peut
prendre les valeurs 'current' pour n'afficher que l'instance d'horloge
actuelle, 'today' pour afficher tout le temps enregistré sur cette tâche
aujourd'hui - voir aussi la variable org-extend-today-until, all pour
inclure tout le temps, ou auto qui est la valeur par défaut18 . En cliquant
avec la souris sur l'entrée de la ligne de mode, un menu d'options de
pointage apparaît.
C-c C-x C-o (blocage de l'org)
Arrêter l'horloge (clock-out). Cette opération insère un autre horodatage à
l'endroit où l'horloge a été démarrée pour la dernière fois. Elle calcule aussi
directement l'heure résultante et l'insère après l'intervalle de temps sous la
forme '=>HH:MM'. Voir la variable org-log-note- clock-out pour la
possibilité d'enregistrer une note supplémentaire avec l'horodatage clock-
out19 .
C-c C-x C-x (org-clock-in-last)
Re-cadence la dernière tâche cadencée. Avec un préfixe C-u, sélectionner la
tâche dans l'historique de l'horloge. Avec deux préfixes C-u, forcer une
horloge continue en démarrant l'horloge lorsque la dernière horloge s'est
arrêtée.
C-c C-x C-e (org-clock-modify-effort-estimate)
Mettre à jour l'estimation de l'effort pour la tâche d'horloge en cours.
C-c C-c ou C-c C-y (org-evaluate-time-range)
Recalculer l'intervalle de temps après avoir modifié l'un des horodateurs.
Cette opération n'est nécessaire que si vous modifiez directement les
horodateurs. Si vous les modifiez à l'aide des touches S-<curseur>, la mise
à jour est automatique.
C-S-UP (org-clock-timestamps-up)
C-S-DOWN (org-clock-timestamps-down)
Sur les lignes d'enregistrement CLOCK, augmentez/diminuez les deux
horodatages de manière à ce que la durée de l'horloge conserve la même
valeur.
Chapitre 8 : Dates et heures 14
9
16
Pour ajouter une estimation de l'effort "à la volée", ajoutez une fonction à org-clock-in-prepare-hook.
17
La dernière réinitialisation de la tâche est enregistrée par la propriété "LAST_REPEAT".
18
Voir aussi la variable org-clock-mode-line-total.
19
Le paramètre correspondant dans la mémoire tampon est : '#+STARTUP : lognoteclock-out'.
Chapitre 8 : Dates et heures 15
0
S-M-UP (org-timestamp-up)
S-M-DOWN (org-timestamp-down)
Sur les lignes de journal "CLOCK", augmentez/diminuez l'horodatage au point
et celui de l'horodatage précédent ou suivant de la même durée. Par
exemple, si vous appuyez sur S-M-UP pour augmenter l'horodatage d'une
horloge de sortie de cinq minutes, l'horodatage d'entrée de l'horloge suivante
est augmenté de cinq minutes.
C-c C-t (org-todo)
Changer l'état TODO d'un élément en DONE arrête automatiquement
l'horloge si elle est en cours d'exécution dans ce même élément.
C-c C-x C-q (annulation de l'horloge)
Annule l'horloge en cours. Cette fonction est utile si une horloge a été lancée
par erreur ou si vous avez fini par travailler sur autre chose.
C-c C-x C-j (org-clock-goto)
Sauter à la tête de la tâche actuellement cadencée. Avec un argument
préfixe C-u, sélectionner la tâche cible dans une liste de tâches récemment
pointées.
C-c C-x C-d (affichage de l'horloge)
Affiche des résumés temporels pour chaque sous-arbre dans la mémoire
tampon actuelle. Cela permet d'afficher des superpositions à la fin de
chaque titre, montrant le temps total enregistré sous ce titre, y compris le
temps de tous les sous-titres. Vous pouvez utiliser le cycle de visibilité pour
étudier l'arbre, mais les surimpressions disparaissent lorsque vous changez
de tampon (voir la variable org-remove-highlights-with-change) ou
lorsque vous appuyez sur C-c C-c.
La touche l peut être utilisée dans l'agenda (voir section 11.3.1 [Agenda
hebdomadaire/journalier], page 111) pour indiquer les tâches qui ont été travaillées ou
clôturées au cours d'une journée.
Important : les options org-clock-out et org-clock-in-last peuvent avoir un
raccourci clavier global et ne modifient pas la disposition de la fenêtre.
S-GAUCHE
S-RIGHT (org-clocktable-try-shift)
Décale l'intervalle ':block' actuel et met à jour la table. Le point doit se
trouver dans la ligne '#+BEGIN : clocktable' pour cette commande. Si
':block' est 'today', il est décalé à 'today-1', etc.
Voici un exemple de la trame d'une table d'horloge telle qu'elle est insérée dans la mémoire tampon par
org-clock-report :
#+BEGIN : clocktable :maxlevel 2 :emphasize nil :scope file
#+END :
La ligne '#+BEGIN' contient des options permettant de définir la portée, la structure et
le formatage du rapport. Les valeurs par défaut de toutes ces options peuvent être
configurées dans la variable org-clocktable- defaults.
Tout d'abord, des options permettent de déterminer quelles entrées d'horloge doivent être sélectionnées
:
':maxlevel'
Profondeur maximale du niveau jusqu'à laquelle les heures sont indiquées dans le tableau.
Horloges à des niveaux plus profonds
sont additionnés dans le niveau supérieur.
':scope' Le champ d'application à prendre en compte. Il peut s'agir de l'un des éléments suivants :
'nil' le tampon actuel ou la région rétrécie
fichier le tampon actuel complet
'subtree' le sous-arbre dans lequel se trouve la table d'horloge
arbreN l'arbre environnant de niveau N, par exemple "arbre3".
arbre" l'arbre environnant de niveau 1
agenda tous les fichiers de l'agenda
'("fichier" ...)' analyse ces fichiers
'FONCTION' analyse les fichiers retournés par l'appel à FUNCTION
sans argument 'file-with-archives' (fichier avec archives) fichier
actuel et ses archives
Agenda-with-archives Tous les fichiers de l'agenda, y compris les archives.
':bloc' Le bloc de temps à prendre en compte. Ce bloc est spécifié soit de manière
absolue, soit de manière relative à l'heure actuelle et peut prendre l'un de
ces formats :
'2007-12-31'
2007-12"
"2007-
W50"
"2007-Q2"
"2007
aujourd'hui", "hier", "aujourd'hui-N"
"cette semaine", "cette dernière
semaine", "cette semaine-N" "ce mois",
"ce dernier mois", "ce mois-N" "cette
année", "cette dernière année", "cette
année-N" "jusqu'à présent".20
Lorsque cette option n'est pas définie, Org revient à la valeur de org-clock-
display- default-range, qui est par défaut l'année en cours.
Utilisez S-LEFT ou S-RIGHT pour décaler l'intervalle de temps.
Chapitre 8 : Dates et heures 15
3
20
Lors de l'utilisation de :step, untilnow commence au début de l'année 2003, et non au début du temps.
Chapitre 8 : Dates et heures 15
4
' :tstart' Chaîne de temps spécifiant quand commencer à considérer les temps. Des
temps relatifs comme '"<-2w>"' peuvent également être utilisés. Voir Section
11.3.3 [Correspondance des balises et des propriétés], page 115 pour la
syntaxe des temps relatifs.
':tend' Chaîne de temps spécifiant quand cesser de prendre en compte les temps.
Des temps relatifs comme '"<now>"' peuvent également être utilisés. Voir
Section 11.3.3 [Correspondance des balises et des propriétés], page 115
pour la syntaxe des temps relatifs.
':wstart' Le jour de la semaine qui commence. La valeur par défaut
est 1 pour le lundi. ':mstart' Le jour du début du mois. La valeur par
défaut est 1 pour le premier.
':step' Indique 'day', 'week', 'semimonth', 'month', 'quarter', ou 'year' pour diviser le
tableau en morceaux. Pour l'utiliser, il faut soit ':block', soit ':tstart' et
':tend'.
':stepskip0'
Si elle est non nulle, ne pas afficher les étapes dont la durée est nulle.
':fileskip0'
S'il est non nul, ne pas afficher les sections de tableau des fichiers qui n'ont pas contribué.
':match' Une correspondance de balises pour sélectionner les entrées qui devraient
contribuer. Voir Section 11.3.3 [Correspondance des balises et des
propriétés], page 115 pour la syntaxe de correspondance.
Il existe ensuite des options qui déterminent le formatage du tableau. Ces options
sont interprétées par la fonction org-clocktable-write-default, mais vous pouvez
spécifier votre propre fonction en utilisant le paramètre ':formatter'.
':souligner'
Si elle est non nulle, elle met l'accent sur les éléments de niveau 1 et de niveau 2.
':lang' Langue21 à utiliser pour les cellules descriptives
telles que "Task". ':link' Relier les titres des éléments du
tableau à leurs origines.
':narrow' Un nombre entier pour limiter la largeur de la colonne des titres dans le
tableau Org. Si vous l'écrivez comme '50!', le titre sera également raccourci
à l'exportation.
':indent' Indenter chaque champ du titre en fonction de
son niveau. ':filetitle'
Afficher le titre dans la colonne du fichier si le fichier a un '#+titre'.
':hidefiles'
Masquer la colonne du fichier lorsque plusieurs fichiers sont utilisés pour produire le tableau.
':tcolumns'
Nombre de colonnes à utiliser pour les temps. Si ce nombre est inférieur à
':maxlevel', les niveaux inférieurs sont regroupés en une seule colonne.
':level' Faut-il inclure une colonne de numéro de niveau ?
Chapitre 8 : Dates et heures 15
5
':sort' Une cellule cons contenant la colonne à trier et un type de tri. Par exemple, ':sort (1 .
?a)' trie la première colonne par ordre alphabétique.
21 Les
termes linguistiques peuvent être définis à l'aide de la variable org-clock-clocktable-language-setup.
Chapitre 8 : Dates et heures 15
6
':compact'
Abréviation de ':level nil :indent t :narrow 40 ! :tcolumns 1'. Tous ces
éléments sont écrasés, sauf s'il y a un ':narrow' explicite.
':timestamp'
Un horodatage de l'entrée, s'il est disponible. Recherchez les propriétés
spéciales "SCHEDULED", "DEADLINE", "TIMESTAMP" et "TIMESTAMP_IA" (voir
section 7.2 [Propriétés spéciales], page 69), dans cet ordre.
':tags' Lorsque ce drapeau est non nul, les tags du titre sont
affichés. ':properties'
Liste des propriétés figurant dans le tableau. Chaque propriété a sa propre colonne.
':inherit-props'
Lorsque cet indicateur est non nul, les valeurs de ':properties' sont héritées.
':formule'
Contenu d'un mot-clé "TBLFM" à ajouter et à évaluer. Dans un cas particulier,
':formula %' ajoute une colonne avec % de temps. Si vous ne spécifiez pas
de formule ici, toute formule existante sous le tableau de l'horloge survit aux
mises à jour et est évaluée.
':formatter'
Une fonction pour formater les données d'horloge et les insérer dans le tampon.
Pour obtenir un résumé de l'horloge de l'arbre actuel de niveau 1, pour le jour en
cours, vous pouvez écrire : #+BEGIN : clocktable :maxlevel 2 :block today
:scope tree1 :link t #+END :
Pour utiliser un intervalle de temps spécifique, vous pouvez écrire22
#+BEGIN : clocktable :tstart "<2006-08-10 Thu 10:00>"
:tend "<2006-08-10 Thu 12:00>"
#+END :
Un intervalle commençant il y a une semaine et se terminant
maintenant pourrait être écrit comme #+BEGIN : clocktable
:tstart "<-1w>" :tend "<now>" #+END :
Un résumé de la sous-arborescence actuelle avec % de temps serait
#+BEGIN : clocktable :scope subtree :link t :formula
% #+END :
Une représentation horizontale compacte de tout ce qui a été enregistré au cours de la semaine dernière
serait la suivante
#+BEGIN : clocktable :scope agenda :block lastweek :compact t
#+END :
Horloge continue
Il se peut que vous souhaitiez commencer le cadencement à partir du moment où vous
avez cadencé la tâche précédente. Pour activer cela systématiquement, mettez org-
clock-continuously à non-nil. À chaque fois que vous pointez, Org récupère l'heure
de sortie de la dernière entrée pointée pour cette session, et démarre la nouvelle
horloge à partir de là.
Si vous ne voulez le faire que de temps en temps, utilisez trois arguments préfixes universels avec
org-clock-in et deux C-u C-u avec org-clock-in-last.
Déconnexion automatique après un certain temps d'inactivité
Si vous oubliez souvent de pointer avant d'être inactif et que vous ne voulez pas régler
manuellement le temps d'horloge pour en tenir compte, vous pouvez régler org-clock-
auto-clockout-timer à un certain nombre de secondes et ajouter '(org-clock-auto-
clockout-insinuate)' à votre fichier '.emacs'.
Lorsque l'horloge fonctionne et qu'Emacs est inactif pendant plus de ce nombre de
secondes, l'horloge est automatiquement arrêtée.
Utilisez 'M-x org-clock-toggle-auto-clockout RET' pour activer ou désactiver temporairement cette
fonction.
9.2 Archivage
Lorsqu'un projet représenté par un (sous-)arbre est terminé, il se peut que vous
souhaitiez déplacer l'arbre et l'empêcher de contribuer à l'agenda. L'archivage est
important pour que vos fichiers de travail restent compacts et que les recherches
globales, comme la construction des vues de l'agenda, soient rapides.
C-c C-x C-a (org-archive-subtree-default)
Archiver l'entrée actuelle en utilisant la commande spécifiée dans la variable
org-archive-default-command.
9.2.1 Déplacer un arbre vers un fichier d'archive
L'action d'archivage la plus courante consiste à déplacer l'arborescence d'un projet dans un autre fichier, le
fichier d'archive.
C-c C-x C-s ou court C-c $ (org-archive-subtree)
Archive le sous-arbre commençant à la position du point à l'emplacement donné par
org-archive-location.
C-u C-c C-x C-s
Vérifier si des enfants directs du titre actuel pourraient être déplacés vers
l'archive. Pour ce faire, la commande vérifie chaque sous-arbre pour les
entrées TODO ouvertes. Si aucune n'est trouvée, la commande propose de
la déplacer vers l'archive. Si le point n'est pas sur un titre lorsque cette
commande est invoquée, vérifiez les arbres de niveau 1.
C-u C-u C-c C-x C-s
Comme ci-dessus, mais en vérifiant la présence d'horodatages dans la
sous-arborescence au lieu d'entrées TODO. La commande propose
d'archiver la sous-arborescence si elle contient un horodatage, et que cet
horodatage se situe dans le passé.
L'emplacement par défaut de l'archive est un fichier situé dans le même répertoire
que le fichier actuel, dont le nom est obtenu en ajoutant "_archive" au nom du fichier
actuel. Vous pouvez également choisir l'intitulé des éléments archivés, avec la
possibilité de les ajouter à un arbre de données dans un fichier. Pour des informations et
des exemples sur la manière de spécifier le fichier et le titre, voir la chaîne de
documentation de la variable org-archive-location.
Il existe également une option dans la mémoire tampon pour définir cette variable, par exemple :
#+ARCHIVE : %s_done: :
Si vous souhaitez disposer d'un emplacement d'archivage spécial pour une entrée
unique ou un (sous-)arbre, attribuez à l'entrée une propriété "ARCHIVE" avec
l'emplacement comme valeur (voir le chapitre 7 [Propriétés et colonnes], page 67).
Lorsqu'une sous-arborescence est déplacée, elle reçoit un certain nombre de
propriétés spéciales qui enregistrent des informations contextuelles comme le fichier
d'où provient l'entrée, son chemin d'accès, l'heure d'archivage, etc. Configurez la
Chapitre 9 : Remise en forme et 16
archivageorg-archive-save-context-info
variable 7
pour ajuster la quantité d'informations
ajoutées.
Lorsque org-archive-subtree-save-file-p est non nul, sauvegarde le tampon de l'archive cible.
Chapitre 9 : Remise en forme et 16
archivage 8
10.1 Capture
La capture vous permet de stocker rapidement des notes sans trop interrompre votre
flux de travail. La méthode d'Org pour capturer de nouveaux éléments est fortement
inspirée de l'excellent logiciel Remember de John Wiegley.
:empty-lines-after
Indique le nombre de lignes à insérer après le nouvel élément.
Remplace :empty-lines pour le nombre de lignes insérées
après.
:empty-lines-before
Indique le nombre de lignes à insérer avant le nouvel élément.
Remplace :empty-lines pour le nombre de lignes insérées
avant.
:clock-in
Démarrer l'horloge dans ce poste.
:clock-keep
Faites tourner l'horloge lors de l'enregistrement de l'entrée saisie.
:clock-resume
Si le démarrage de la capture a interrompu une horloge,
redémarrer cette horloge une fois la capture terminée. Notez que
:clock-keep a la priorité sur :clock-resume. Si les deux
paramètres sont non nuls, l'horloge en cours fonctionnera et
l'horloge précédente ne sera pas reprise.
:time-prompt
Demande une date/heure à utiliser pour les arbres date/semaine
et lors du remplissage du modèle. Sans cette propriété, la
capture utilise la date et l'heure actuelles. Même si cette
propriété n'a pas été définie, vous pouvez forcer le même
comportement en appelant org-capture avec un argument de
préfixe C-1.
:type
d'arbre Utilisez semaine pour créer une arborescence hebdomadaire au
lieu de l'arborescence mois-jour, c'est-à-dire pour placer les
rubriques de chaque jour sous une rubrique indiquant la semaine
ISO en cours. Utiliser mois pour regrouper les entrées par mois
uniquement. Par défaut, les entrées sont regroupées par jour.
:unnarrowed
Ne réduisez pas le tampon cible, montrez simplement le tampon
complet. L'erreur consiste à réduire la zone tampon de manière
à ne voir que le nouveau matériel.
:table-line-pos
Spécification de l'emplacement dans le tableau où la nouvelle
ligne doit être insérée. Il doit s'agir d'une chaîne comme "II-3",
ce qui signifie que la nouvelle ligne doit devenir la troisième ligne
avant la deuxième ligne de séparation horizontale.
:kill-buffer
Si le fichier cible n'a pas encore été visité lorsque la capture a
été invoquée, tuer le tampon à nouveau après la fin de la
capture.
:no-save Ne pas enregistrer le fichier cible après avoir terminé la capture.
:refile-targets
Chapitre 10 : Capture et pièces jointes 178
:hook Une fonction nulle ou une liste de fonctions nulles exécutées avant le
org-capture-mode-hook lorsque le modèle est sélectionné.
:préparer-finaliser
Une fonction nullaire ou une liste de fonctions nullaires
exécutées avant org-capture-prepare-finalize-hook
lorsque le modèle est sélectionné.
:before-finalize
Une fonction nullaire ou une liste de fonctions nullaires
exécutées avant org-capture-before-finalize-hook lorsque
le modèle est sélectionné.
:after-finalize
Une fonction nullaire ou une liste de fonctions nullaires
exécutées avant org-capture-after-finalize-hook lorsque
le modèle est sélectionné.
gnus '%:group', pour les messages, également tous les champs d'email
w3, w3m '%:url'
info '%:fichier', '%:nœud'
calendrier '%:date'
org-protocol '%:link', '%:description', '%:annotation'
10.1.3.3 Modèles en contexte
Pour contrôler si un modèle de capture doit être accessible à partir d'un contexte
spécifique, vous pouvez personnaliser org-capture-templates-contexts. Disons, par
exemple, que vous avez un modèle de capture "p" pour stocker les courriels Gnus
contenant des correctifs. Vous devez alors configurer cette option comme suit :
(setq org-capture-templates-contexts
'(("p" ((in-mode . "message-mode")))))
Vous pouvez également indiquer que la clé de commande p doit faire référence à un
autre modèle. Dans ce cas, ajoutez cette clé de commande comme suit :
(setq org-capture-templates-contexts
'(("p" "q" ((in-mode . "message-mode")))))
Voir la docstring de la variable pour plus d'informations.
a (org-attach-attach)
Sélectionnez un fichier et déplacez-le dans le répertoire des
pièces jointes de la tâche. Le fichier est copié, déplacé ou lié,
selon la méthode org-attach. Notez que les liens en dur ne sont
pas pris en charge sur tous les systèmes.
c/m/l Attachez un fichier en utilisant la méthode de
copie/déplacement/lien. Notez que les liens en dur ne sont pas
pris en charge sur tous les systèmes.
b (org-attach-buffer)
Sélectionnez un tampon et enregistrez-le en tant que fichier dans le répertoire des
pièces jointes de la tâche.
n (org-attach-new)
Créer une nouvelle pièce jointe sous forme de tampon Emacs.
z (org-attach-sync)
Synchroniser la tâche en cours avec son répertoire de pièces
jointes, au cas où vous auriez ajouté des pièces jointes vous-
même.
o (org-attach-open)
Ouvrir la pièce jointe de la tâche en cours. S'il y en a plusieurs,
un nom de fichier est d'abord demandé. L'ouverture suit les
règles établies par org-file- apps. Pour plus de détails, voir
les informations sur le suivi des hyperliens (voir Section 4.5
[Gestion des liens], page 42).
O (org-attach-open-in-emacs)
Ouvrez également la pièce jointe, mais forcez l'ouverture du fichier dans Emacs.
f (org-attach-reveal)
Ouvrir le répertoire des pièces jointes de la tâche en cours.
F (org-attach-reveal-in-emacs)
Ouvrez également le répertoire, mais forcez l'utilisation de Dired dans Emacs.
d (org-attach-delete-one)
Sélectionner et supprimer une seule pièce jointe.
D (org-attach-delete-all)
Supprimer toutes les pièces jointes d'une tâche. Une méthode
plus sûre consiste à ouvrir le répertoire dans Dired et à le
supprimer à partir de là.
s (org-attach-set-directory)
Définir un répertoire spécifique comme répertoire d'attachement
de l'entrée. Pour ce faire, il suffit d'indiquer le chemin d'accès au
répertoire dans la propriété "DIR".
S (org-attach-unset-directory)
Supprimer le répertoire de pièces jointes. Cette commande
supprime la propriété 'DIR' et demande à l'utilisateur de déplacer le
contenu dans ce dossier, si une propriété 'ID' est définie, de
supprimer le contenu, ou de laisser le répertoire de pièces
jointes tel quel, mais de ne plus l'attacher au nœud de contour.
10.2.2 Options d'attachement
Chapitre 10 : Capture et pièces jointes 184
Il existe quelques options pour les pièces jointes qui méritent d'être mentionnées.
org-attach-id-dir
Répertoire dans lequel les pièces jointes sont stockées lorsque la méthode utilisée est "ID".
Chapitre 10 : Capture et pièces jointes 185
org-attach-dir-relative
Lorsque l'on définit la propriété 'DIR' sur un noeud en utilisant C-c C-a s (org-
attach-set- directory), les liens absolus sont saisis par défaut. Cette
option les remplace par des liens relatifs.
org-attach-use-inheritance
Par défaut, les dossiers attachés à un nœud de contour sont hérités des
parents conformément à org-use-property-inheritance. Si l'on souhaite
au contraire définir l'héritage spécifiquement pour Org attach, on peut le faire
en utilisant org-attach-use- inheritance. L'héritage de documents à
travers la hiérarchie des nœuds est très utile dans la plupart des cas. En
particulier lors de l'utilisation de liens d'attachement (voir Section 10.2.3 [Liens
d'attachement], page 107). L'exemple suivant montre un cas d'utilisation de
l'héritage de pièces jointes :
* Chapitre A ...
:PROPRIÉTÉS :
DIR : Chapitre A/
:FIN :
** Introduction
Quelques textes
#+NAME : Image 1
[[attachment:image 1.jpg]]
Sans l'héritage, il serait impossible de résoudre le lien vers "image 1.jpg",
puisque le lien se trouve dans un sous-titre du "chapitre A".
L'héritage fonctionne de la même manière pour les propriétés "ID" et "DIR".
Si les deux propriétés sont définies sur le même titre, c'est "DIR" qui a la
priorité. Il en va de même si l'héritage est activé. Si la propriété "DIR" est
héritée d'un nœud parent dans le plan, cette propriété a toujours la priorité
sur la propriété "ID" définie sur le nœud lui-même.
org-attach-method
Lors de l'attachement de fichiers à l'aide du distributeur C-c C-a, les fichiers
sont copiés par défaut. Ce comportement peut être modifié en personnalisant
org-attach-method. Les options sont Copy, Move/Rename, Hard link ou
Symbolic link.
org-attach-preferred-new-method
Cette personnalisation vous permet de choisir le mode d'attachement par
défaut aux nœuds sans propriétés "ID" et "DIR" existantes. La valeur par
défaut est id, mais elle peut également être fixée à dir, ask ou nil.
org-attach-archive-delete
Ce paramètre permet de déterminer si les pièces jointes doivent être
supprimées ou non lors de l'archivage d'une sous-arborescence contenant
des pièces jointes.
org-attach-auto-tag
Lorsque des fichiers sont joints à une rubrique, une étiquette leur est
attribuée en fonction des paramètres définis ici.
Chapitre 10 : Capture et pièces jointes 186
org-attach-id-to-path-function-list
Lorsque 'ID' est utilisé pour les pièces jointes, l'ID est analysé comme une
partie d'un chemin de répertoire. Voir org-attach-id-uuid-folder-format
pour la fonction par défaut. Définissez-en une nouvelle et ajoutez-la comme
premier élément de la liste des fonctions org-attach-id-to- path si
vous souhaitez que la structure du dossier soit différente. Toutes les
fonctions de cette liste seront essayées lors de la résolution des ID existants
en chemins d'accès, afin de maintenir une compatibilité ascendante avec les
dossiers existants dans votre système.
org-attach-store-link-p
Enregistre un lien vers le fichier joint. Le lien est stocké dans org-
stored-links pour être inséré ultérieurement avec C-c C-l (voir Section 4.5
[Traitement des liens], page 42). En fonction de l'option définie dans org-
attach-store- link-p, le lien est stocké soit à l'emplacement d'origine
en tant que lien de fichier, soit à l'emplacement de la pièce jointe en tant
que lien de pièce jointe, soit à l'emplacement de la pièce jointe en tant que
lien de fichier.
org-attach-commandes
Liste de toutes les commandes utilisées dans le répartiteur de pièces jointes.
org-attach-expert
Ne pas afficher le splash buffer avec le distributeur d'attachement lorsque
org-attach- expert est positionné à non-nil.
Voir le groupe de personnalisation 'Org Attach' si vous souhaitez modifier les paramètres par défaut.
définie par la variable org-attach-method. Lorsque des fichiers sont marqués dans la
fenêtre Dired, tous les fichiers marqués sont attachés.
Ajoutez les lignes suivantes au fichier Emacs init pour que C-c C-x a attache les
fichiers dans les tampons Dired.
(add-hook 'dired-mode-hook
(lambda ()
(define-key dired-mode-map
(kbd "C-c C-x a")
#'org-attach-dired-to-subtree)))
Le code suivant montre comment lier la commande précédente à une méthode
d'attachement spécifique.
(add-hook 'dired-mode-hook
(lambda ()
(define-key dired-mode-map (kbd "C-c C-x c")
(lambda ()
(interactif)
(let ((org-attach-method 'cp))
(appel interactif #'org-attach-dired-to-subtree))))))
11 Vues de l'agenda
En raison du mode de fonctionnement d'Org, les éléments TODO, les éléments horodatés
et les titres marqués peuvent être dispersés dans un fichier ou même dans plusieurs
fichiers. Pour avoir une vue d'ensemble des actions en cours ou des événements
importants à une date donnée, ces informations doivent être collectées, triées et
affichées de manière organisée.
Org peut sélectionner des éléments en fonction de divers critères et les afficher dans
une mémoire tampon distincte. Six types d'affichage différents sont proposés :
• un agenda qui ressemble à un calendrier et présente des informations pour des dates précises,
• une liste TODO qui couvre toutes les actions non terminées,
• dans une vue de correspondance, les titres des annonces sont basés sur les
étiquettes, les propriétés et l'état TODO qui leur sont associés,
• une vue de recherche de texte qui affiche toutes les entrées de plusieurs fichiers
contenant les mots-clés spécifiés,
• une vue des projets bloqués montrant les projets qui n'avancent pas actuellement, et
• des vues personnalisées qui sont des recherches spéciales et des combinaisons de vues différentes.
Les informations extraites sont affichées dans un tampon d'agenda spécial. Cette
mémoire tampon est en lecture seule, mais elle fournit des commandes permettant de
visiter les emplacements correspondants dans les fichiers Org originaux, et même de
modifier ces fichiers à distance.
Par défaut, le rapport ignore les entrées commentées (voir Section 13.6 [Lignes de
commentaires], page 155) et archivées (voir Section 9.2.2 [Archivage interne], page 96). Il
est possible d'ignorer ces entrées en fixant org-agenda-skip-comment-trees et org-
agenda-skip-archived-trees à nil.
Deux variables contrôlent l'affichage de la mémoire tampon de l'agenda et la
restauration de la configuration de la fenêtre lorsque l'agenda se termine : org-agenda-
window-setup et org-agenda- restore-windows-after-quit.
C-c ] (org-remove-file)
Retirer le fichier actuel de la liste des fichiers à l'ordre du jour.
C-'
C-, (org-cycle-agenda-files)
Parcourez la liste des fichiers de l'agenda, en visitant un fichier après l'autre.
M-x org-switchb
Commande permettant d'utiliser une interface de type Iswitchb pour passer d'un tampon Org à
l'autre.
Le menu Org contient la liste actuelle des fichiers et peut être utilisé pour visiter n'importe lequel d'entre
eux.
Si vous souhaitez concentrer temporairement l'agenda sur un fichier ne figurant pas
dans cette liste, ou sur un seul fichier de la liste, ou même sur une sous-arborescence
d'un fichier, vous pouvez le faire de différentes manières. Pour une seule commande
d'agenda, vous pouvez appuyer sur < une ou plusieurs fois dans le répartiteur (voir Section
11.2 [Répartiteur d'agenda], page 110). Pour restreindre la portée de l'agenda pendant
une période prolongée, utilisez les commandes suivantes :
C-c C-x < (org-agenda-set-restriction-lock)
Restreint l'agenda au sous-arbre actuel. S'il existe déjà une restriction à
point, supprimez-la. Lorsqu'il est appelé avec un argument de préfixe
universel ou avec point avant le premier titre d'un fichier, la portée de
l'agenda est fixée à l'ensemble du fichier. Cette restriction reste en vigueur
jusqu'à ce qu'elle soit supprimée avec C-c C-x >, ou en tapant < ou > dans le
distributeur d'agenda. Si une fenêtre affiche une vue de l'agenda, la nouvelle
restriction prend effet immédiatement.
C-c C-x > (org-agenda-remove-restriction-lock)
Supprime la restriction créée par C-c C-x <.
Lorsque vous travaillez avec Speedbar, vous pouvez utiliser les commandes
suivantes dans le cadre Speedbar :
< (org-speedbar-set-agenda-restriction)
Restreindre l'agenda à l'élément - soit un fichier Org, soit un sous-arbre d'un
tel fichier - à un point du cadre de la barre de vitesse. Si l'agenda est déjà
restreint à cet endroit, supprimez la restriction. Si une fenêtre affiche une
vue de l'agenda, la nouvelle restriction prend effet immédiatement.
> (org-agenda-remove-restriction-lock)
Supprimer la restriction.
m
M Créer une liste de titres correspondant à une expression donnée (voir Section
11.3.3 [Balises et propriétés de correspondance], page 115).
s Créer une liste d'entrées sélectionnées par une expression booléenne de
mots-clés et/ou d'expressions régulières qui doivent ou ne doivent pas
apparaître dans l'entrée.
/ Recherche d'une expression régulière dans tous les fichiers de l'agenda et
en plus dans les fichiers listés dans org-agenda-text-search-extra-
files. Ceci utilise le mandat commun Emacs multi-occur. Un argument
préfixe peut être utilisé pour spécifier le nombre de lignes de contexte pour
chaque correspondance, la valeur par défaut est 1.
# Créer une liste des projets bloqués (voir Section 11.3.5 [Projets bloqués], page 117).
! Configurez la liste des projets bloqués (voir Section 11.3.5 [Projets bloqués],
page 117).
< Restreindre une commande d'agenda à la mémoire tampon actuelle3 . Si un
rétrécissement est en vigueur, restreindre la commande à la partie rétrécie
de la mémoire tampon. Après avoir appuyé sur <, vous devez encore
appuyer sur le caractère sélectionnant la commande.
< S'il existe une région active, la commande suivante de l'agenda est limitée à la
région. Sinon, restreignez-la au sous-arbre actuel4 . Après avoir appuyé sur
< <, vous devez encore appuyer sur le caractère sélectionnant la
commande.
* Permet d'alterner les vues collantes de l'agenda. Par défaut, Org ne
maintient qu'un seul tampon d'agenda et le reconstruit à chaque fois que
vous changez de vue, pour s'assurer que tout est toujours à jour. Si vous
passez souvent d'une vue à l'autre et que le temps de construction vous
dérange, vous pouvez activer les tampons d'agenda collants (faites-en la
valeur par défaut en personnalisant la variable org-agenda-sticky). Avec
les agendas collants, le répartiteur ne passe qu'à la vue sélectionnée, vous
devez la mettre à jour à la main avec r ou g. Vous pouvez basculer
l'affichage de l'agenda collant à tout moment avec org-toggle- sticky-
agenda.
Vous pouvez également définir des commandes personnalisées qui sont accessibles
via le répartiteur, tout comme les commandes par défaut. Cela inclut la possibilité de
créer des tampons d'agenda étendus qui contiennent plusieurs blocs ensemble, par
exemple l'agenda hebdomadaire, la liste TODO globale et un certain nombre de
correspondances d'étiquettes spéciales. Voir Section 11.6 [Vues d'agenda personnalisées],
page 130.
3
Pour des raisons de compatibilité ascendante, vous pouvez également appuyer sur 1 pour vous limiter à la mémoire
tampon actuelle.
4
Pour des raisons de compatibilité ascendante, vous pouvez également appuyer sur 0 pour vous limiter à la région/sous-
arborescence actuelle.
Chapitre 11 : Vues de 193
l'agenda
:FIN :
%%(org-calendar-holiday) ; fonction spéciale pour les noms de jours fériés
* Anniversaires
:PROPRIÉTÉS :
CATEGORIE : Ann
:FIN :
%%(org-anniversary 1956 5 14) Arthur Dent a %d ans
%%(org-anniversaire 1869 10 2) Mahatma Gandhi aurait %d ans
Anniversaires du BBDB
Si vous utilisez la base de données Insidious Big Brother pour stocker vos contacts,
vous préférez très probablement stocker les anniversaires dans la BBDB plutôt que
dans un fichier Org ou agenda séparé. Org le permet et peut afficher les anniversaires
de la BBDB dans le cadre de l'agenda. Il vous suffit d'ajouter ce qui suit à l'un de vos
fichiers d'agenda :
* Anniversaires
:PROPRIÉTÉS :
CATEGORIE : Anniv
:FIN :
%%(org-bbdb-anniversaires)
Vous pouvez ensuite définir des anniversaires pour un enregistrement BBDB. En fait,
vous avez besoin d'un champ nommé "anniversaire" pour l'enregistrement BBDB, qui
contient la date au format "AAAA-MM-JJ" ou "MM-JJ", suivie d'un espace et de la classe
de l'anniversaire ("anniversaire", "mariage", ou une chaîne de format). Si vous
omettez la classe, la valeur par défaut est "anniversaire". Voici quelques exemples,
l'en-tête du fichier "ol-bbdb.el" contient des informations plus détaillées.
1973-06-22
06-22
1955-08-02 mariage
2008-04-14 %s a publié la version 6.01 du mode Org, il y a %d ans
Après une modification de BBDB, ou pour le premier affichage de l'agenda au cours
d'une session Emacs, l'affichage de l'agenda subit un court délai car Org met à jour son
hachage avec les anniversaires. Cependant, à partir de ce moment, les choses seront
très rapides, beaucoup plus rapides en fait qu'une longue liste d'entrées '%%(diary-
anniversary)' dans un fichier Org ou Diary.
Si vous souhaitez voir les anniversaires à venir avec un peu d'anticipation, vous
pouvez utiliser ce qui suit :
* Anniversaires
:PROPRIÉTÉS :
CATEGORIE : Anniv
:FIN :
%%(org-bbdb-anniversaires-future 3)
Vous serez ainsi averti trois jours à l'avance : à la date anniversaire elle-même et les
deux jours précédents. L'argument est facultatif : s'il est omis, la valeur par défaut est 7.
Chapitre 11 : Vues de 196
l'agenda
Rappels de rendez-vous
Org peut interagir avec la fonction de notification de rendez-vous d'Emacs. Pour ajouter
les rendez-vous de vos fichiers d'agenda, utilisez la commande org-agenda-to-appt.
Cette commande vous permet de filtrer la liste de vos rendez-vous et de n'ajouter que
ceux qui appartiennent à une catégorie spécifique ou qui correspondent à une expression
régulière. Elle lit également une propriété 'APPT_WARNTIME' qui remplace la valeur de appt-
message-warning-time pour ce rendez-vous. Voir la docstring pour plus de détails.
doit être appliquée avec précaution : par exemple, une sélection positive sur plusieurs
mots-clés TODO ne peut pas être combinée de manière significative avec la méthode
booléenne AND. En revanche, une sélection négative combinée avec AND peut être
significative. Pour s'assurer que seules les lignes contenant un mot-clé TODO sont
vérifiées (ce qui accélère le processus), utilisez M-x org-agenda M, ou commencez la
partie TODO après la barre oblique par ' ! L'utilisation de M-x org-agenda M ou '/!' ne
correspond pas aux mots-clés TODO dans l'état DONE. Exemples :
Travail/Attente
Identique à 'work+TODO="WAITING"'.
'work/!-WAITING-NEXT' (travail)
Sélectionner les lignes TODO étiquetées "travail" qui ne sont ni "EN ATTENTE" ni "SUIVANT".
'work/!+WAITING|+NEXT'
Sélectionner les lignes TODO étiquetées "travail" qui sont soit "EN ATTENTE", soit "SUIVANT".
11.3.4 Vue de la recherche
Cette vue de l'agenda est un outil de recherche de texte général pour les entrées du
mode Org. Elle est particulièrement utile pour trouver des notes.
M-x org-agenda s (org-search-view)
Il s'agit d'une recherche spéciale qui vous permet de sélectionner des
entrées en faisant correspondre une sous-chaîne ou des mots spécifiques à
l'aide d'une logique booléenne.
Par exemple, la chaîne de recherche "matériel informatique" correspond aux
entrées qui contiennent "matériel informatique" comme sous-chaîne, même si les
deux mots sont séparés par un espace supplémentaire ou un saut de ligne.
La vue de recherche peut également rechercher des mots-clés spécifiques dans
l'entrée, en utilisant la logique booléenne. La chaîne de recherche "+computer +wifi -
ethernet -{8\.11[bg]}" correspond aux entrées de notes qui contiennent les mots-
clés "computer" et "wifi", mais pas le mot-clé "ethernet", et qui ne correspondent pas
non plus à l'expression régulière "8\.11[bg]", c'est-à-dire qui excluent à la fois "8.11b"
et "8.11g". Le premier "+" est nécessaire pour activer la recherche booléenne, les autres
caractères "+" sont facultatifs. Pour plus de détails, voir la docstring de la commande
org-search-view.
Vous pouvez ajuster progressivement et facilement une recherche booléenne à partir de
la vue de recherche de l'agenda à l'aide des touches suivantes
[ Ajouter un mot de recherche positif
] Ajouter un mot de recherche négatif
{ Ajouter une expression régulière positive
} Ajouter une expression régulière négative
Notez qu'en plus des fichiers de l'agenda, cette commande recherche également les fichiers listés dans
la rubrique
org-agenda-text-search-extra-files.
11.3.5 Projets bloqués
Si vous suivez un système tel que GTD de David Allen pour organiser votre travail,
l'une de vos "tâches" consiste à vérifier régulièrement que tous les projets avancent.
Un projet bloqué est un projet dont les prochaines actions ne sont pas définies et qui
n'apparaît donc jamais dans les listes TODO produites par le mode Org. Lors de la
Chapitre 11 : Vues de 203
l'agenda
revue, vous devez identifier ces projets et définir les actions suivantes.
Chapitre 11 : Vues de 204
l'agenda
11.4.1 Catégories
La catégorie est une étiquette générale attribuée à chaque point de l'ordre du jour. Par
défaut, la catégorie est simplement dérivée du nom du fichier, mais vous pouvez
également la spécifier avec une ligne spéciale dans le tampon, comme ceci :
#+CATEGORIE : Thèse
Si vous souhaitez avoir une catégorie spéciale pour une entrée unique ou un (sous-
)arbre, donnez à l'entrée une propriété "CATEGORY" avec la catégorie spéciale que vous
souhaitez appliquer comme valeur.
L'affichage dans la mémoire tampon de l'agenda est optimal si la catégorie ne
comporte pas plus de 10 caractères. Vous pouvez définir des icônes pour la catégorie
en personnalisant la variable org-agenda-category-icon- alist.
Chapitre 11 : Vues de 205
l'agenda
se compose de la priorité de base (2000 pour la priorité "A", 1000 pour la priorité "B"
et 0 pour la priorité "C"), plus des incréments supplémentaires pour les éléments
programmés en retard ou à échéance.
• Pour la liste TODO, les éléments restent dans l'ordre des catégories, mais à
l'intérieur de chaque catégorie, le tri se fait en fonction de la priorité (voir Section 5.4
[Priorités], page 56). La priorité utilisée pour le tri dérive du cookie de priorité, avec
des ajouts en fonction de la proximité d'un élément par rapport à sa date
d'échéance ou de planification.
• Pour les correspondances de balises, les éléments ne sont pas triés du tout, mais
apparaissent simplement dans l'ordre dans lequel ils se trouvent dans les fichiers de
l'agenda.
Le tri peut être personnalisé à l'aide de la variable org-agenda-sorting-strategy, et
peut également inclure des critères basés sur l'effort estimé d'une entrée (voir Section
8.5 [Estimation de l'effort], page 91).
= (org-agenda-filter-by-regexp)
Filtrer l'affichage de l'agenda par une expression régulière : n'afficher que les
entrées de l'agenda correspondant à l'expression régulière saisie par
l'utilisateur. Pour effacer le filtre, rappelez la commande en appuyant sur =.
(org-agenda-filtre-par-effort)
Filtrez la vue de l'agenda en fonction des estimations d'effort, afin de
sélectionner les tâches qui prennent le temps nécessaire. Vous devez
d'abord établir une liste globale des efforts, par exemple
(setq org-global-properties
'(("Effort_ALL". "0 0:10 0:30 1:00 2:00 3:00 4:00"))))
Vous pouvez ensuite filtrer un effort en tapant d'abord un opérateur, parmi <, > et
=, puis l'indice à un chiffre d'une estimation de l'effort dans votre tableau de
valeurs autorisées, où 0 signifie la 10e valeur. Le filtre se limite alors aux
entrées dont l'effort est inférieur ou égal, égal ou supérieur ou égal à la
valeur sélectionnée. Pour l'application de l'opérateur, les entrées sans effort
défini sont traitées selon la valeur de org-sort-agenda-noeffort-is-high.
Pour effacer le filtre, appuyez sur
_ deux fois (une fois pour rappeler la commande, et une fois à la première invite).
^ (org-agenda-filter-by-top-headline)
Filtre la vue de l'agenda en cours et n'affiche que les éléments qui tombent
sous le même titre de premier niveau que l'entrée en cours. Pour effacer le
filtre, rappelez cette commande en appuyant sur ^.
/ (org-agenda-filter)
Il s'agit de l'interface unifiée pour quatre des cinq méthodes de filtrage
décrites ci-dessus. À l'invite, spécifiez différents éléments de filtrage dans
une seule chaîne de caractères, avec un support de complétion complet. Par
exemple,
+work-John+<0:10-/plot/
sélectionne les entrées de la catégorie "travail" et les estimations d'effort
inférieures à 10 minutes, et désélectionne les entrées avec l'étiquette "John"
ou correspondant à l'expression rationnelle "plot" (voir Section 17.9
[Expressions régulières], page 254). Vous pouvez omettre "+" si cela
n'entraîne pas d'ambiguïté. La séquence des éléments est arbitraire. La
syntaxe du filtre suppose qu'il n'y a pas de chevauchement entre les
catégories et les balises. Dans le cas contraire, les balises sont prioritaires.
Si vous répondez à l'invite par la chaîne vide, tout filtrage est supprimé. Si
un filtre est spécifié, il remplace tous les filtres actuels. Mais si vous appelez
la commande avec un double argument préfixe, ou si vous ajoutez un "+"
supplémentaire (par exemple, "++travail") au début de la chaîne, les
nouveaux éléments de filtrage sont ajoutés aux éléments actifs. Un
argument préfixe unique applique l'ensemble du filtre dans un sens négatif.
| (org-agenda-filter-remove-all)
Supprimer tous les filtres dans la vue de l'agenda en cours.
Filtrage des étiquettes calculées
Si la variable org-agenda-auto-exclude-function est définie comme une fonction
définie par l'utilisateur, cette fonction peut sélectionner les balises qui doivent être
utilisées comme filtre de balises lorsqu'elles sont demandées. La fonction sera appelée
Chapitre 11 : Vues de 210
l'agenda
avec les versions minuscules de toutes les balises représentées dans la vue actuelle. La
fonction
Chapitre 11 : Vues de 211
l'agenda
doit renvoyer ""-tag"" si le filtre doit supprimer les entrées avec cette balise, ""+tag""
si seules les entrées avec cette balise doivent être conservées, ou ""nil"" si cette balise
n'est pas pertinente. Par exemple, supposons que vous utilisiez une balise "Net" pour
identifier les tâches nécessitant un accès au réseau, une balise "Errand" pour les
courses en ville et une balise "Call" pour les appels téléphoniques. Vous pourriez
exclure automatiquement ces balises en fonction de la disponibilité de l'internet, et en
dehors des heures de bureau, avec quelque chose comme ceci :
(defun my-auto-exclude-fn (tag)
(when (cond ((string= tag "net")
(/= 0 (call-process "/sbin/ping" nil nil nil
"-c1" "-q" "-t1" "mail.gnu.org"))
((member tag '("errand" "call")))
(let ((hr (nth 2 (decode-time))))
(ou (< hr 8) (> hr 21)))))
(concat "-" tag)))
Motion
n (org-agenda-next-line)
Ligne suivante (identique à DOWN et C-n).
p (org-agenda-ligne précédente)
Ligne précédente (identique à UP et C-p).
Voir / Aller au fichier Org
SPC ou mouse-3 (org-agenda-show-and-scroll-up)
Afficher l'emplacement d'origine de l'élément dans une autre fenêtre. Avec
un argument préfixe, s'assurer que les tiroirs restent pliés.
L (org-agenda-recenter)
Afficher l'emplacement d'origine et recentrer la fenêtre.
TAB ou souris-2 (org-agenda-goto)
Aller à l'emplacement d'origine de l'élément dans une autre fenêtre.
RET (org-agenda-switch-to)
Rendez-vous à l'emplacement d'origine de l'élément et supprimez les autres fenêtres.
F (org-agenda-follow-mode)
Basculer le mode Suivi. En mode Suivi, lorsque vous déplacez un point dans
le tampon d'agenda, l'autre fenêtre affiche toujours l'emplacement
correspondant dans le fichier Org. Le réglage initial de ce mode dans les
nouveaux tampons d'agenda peut être défini à l'aide de la variable org-
agenda-start-with-follow-mode.
C-c C-x b (org-agenda-tree-to-indirect-buffer)
Affiche le sous-arbre complet de l'élément courant dans une mémoire
tampon indirecte. Avec un préfixe numérique N, remonter au niveau N et
prendre l'arbre. Si N est négatif, remonter d'autant de niveaux. Avec un
préfixe C-u, ne pas supprimer le tampon indirect précédemment utilisé.
C-c C-o (org-agenda-open-link)
Suivre un lien dans l'entrée. Cette option propose une sélection de liens
dans le texte appartenant au nœud Org référencé. S'il n'y a qu'un seul lien, il
est suivi sans demande de sélection.
Modifier l'affichage
A Sélectionner interactivement une autre vue de l'agenda et l'ajouter à la vue actuelle.
Chapitre 11 : Vues de 214
l'agenda
D (org-agenda-toggle-diary)
Basculer l'inclusion des entrées d'agenda. Voir la section 11.3.1 [Agenda
hebdomadaire/journalier], page 111.
v l ou v L ou short l (org-agenda-log-mode)
Basculer le mode journal. En mode journal, les entrées qui ont été marquées
comme effectuées lorsque la journalisation était activée (voir la variable org-
log-done) sont affichées dans l'agenda, de même que les entrées qui ont été
pointées ce jour-là. Vous pouvez configurer les types d'entrées qui doivent
être incluses dans le mode journal en utilisant la variable org-agenda-log-
mode-items. Lorsqu'il est appelé avec un argument préfixe C-u, il affiche
toutes les entrées possibles du journal, y compris les changements d'état.
Lorsqu'il est appelé avec deux arguments de préfixe C-u C-u, il n'affiche que
les informations de journalisation, rien d'autre. v L est équivalent à C-u v l.
v [ ou court [ (org-agenda-manipuler-query-add)
Inclure les horodatages inactifs dans la vue actuelle. Uniquement pour les
agendas hebdomadaires/journaliers.
v a (org-agenda-archives-mode)
Basculer en mode Archives. En mode Archives, les arbres qui sont archivés
(voir Section 9.2.2 [Archivage interne], page 96) sont également numérisés
lors de la production de l'agenda. Pour quitter le mode Archives, appuyez à
nouveau sur v a.
vA Basculer en mode Archives. Inclut également tous les fichiers d'archive.
v R ou R court (org-agenda-clockreport-mode)
Basculer le mode Rapport d'horloge. En mode Rapport d'horloge, l'agenda
quotidien/hebdomadaire affiche un tableau avec les heures chronométrées
pour l'intervalle de temps et l'étendue du fichier couverts par la vue de
l'agenda en cours. Le paramètre initial de ce mode dans les nouveaux
tampons d'agenda peut être défini à l'aide de la variable org-agenda-start-
with-clockreport- mode. En utilisant un argument préfixe lors du
basculement de ce mode (c'est-à-dire C-u R), la table d'horloge ne montre pas
les contributions des entrées qui sont cachées par le filtrage de l'agenda9 .
Voir aussi les variables org-clock-report-include-clocking-task et org-
agenda-clock-report-header.
vc Affiche les entrées d'horloge qui se chevauchent, les écarts d'horloge et les
autres problèmes d'horloge dans la plage d'agenda actuelle. Vous pouvez
alors visiter les lignes d'horloge et les corriger manuellement. Voir la variable
org-agenda-clock-consistency-checks pour savoir comment
personnaliser la définition de ce qui constitue un problème d'horloge. Pour
revenir à l'affichage normal de l'agenda, appuyez sur l pour quitter le mode
Carnet de route.
v E ou E court (org-agenda-entry-text-mode)
Basculer le mode texte d'entrée. En mode texte d'entrée, un certain nombre
de lignes du nœud Org outline référencé par une ligne d'agenda sont
affichées sous la ligne. Le nombre maximum de lignes est donné par la
variable org-agenda-entry-text- maxlines. L'appel de cette commande
avec un préfixe numérique modifie temporairement ce nombre en fonction
de la valeur du préfixe.
G (org-agenda-toggle-time-grid)
Chapitre 11 : Vues de 217
l'agenda Permet d'activer ou de désactiver la grille horaire. Voir aussi les variables
org-agenda-use-time- grid et org-agenda-time-grid.
9
Seul le filtrage des balises est respecté ici, le filtrage de l'effort est ignoré.
Chapitre 11 : Vues de 218
l'agenda
r (org-agenda-redo)
g Recrée la mémoire tampon de l'agenda, par exemple pour refléter les
changements après modification des horodatages des éléments avec S-LEFT
et S-RIGHT. Lorsque le tampon est la liste TODO globale, un argument
préfixe est interprété pour créer une liste sélective pour un mot-clé TODO
spécifique.
C-x C-s ou s court (org-save-all-org-buffers)
Sauvegarde tous les tampons Org de la session Emacs en cours, ainsi que l'emplacement des ID.
C-c C-x C-c (org-agenda-columns)
Invoquer la vue en colonnes (voir Section 7.5 [Vue en colonnes], page 71)
dans la mémoire tampon de l'agenda. Le format de la vue en colonnes est
tiré de l'entrée au point ou, s'il n'y a pas d'entrée au point, de la première
entrée dans la vue de l'agenda. Ainsi, le format de cette entrée dans le
tampon d'origine (provenant d'une propriété, d'un mot-clé 'COLUMNS' ou de la
variable par défaut org-columns-default- format) est utilisé dans
l'agenda.
C-c C-x > (org-agenda-remove-restriction-lock)
Supprimer le verrou de restriction sur l'agenda, s'il est actuellement limité à
un fichier ou à une sous-arborescence (voir Section 11.1 [Fichiers d'agenda],
page 109).
M-UP (org-agenda-drag-line-backward)
Faire glisser la ligne au point vers l'arrière d'une ligne. Avec un préfixe
numérique, faire glisser la ligne vers l'arrière d'autant de lignes.
Le déplacement des lignes de l'agenda ne persiste pas après un
rafraîchissement de l'agenda et ne modifie pas les fichiers Org qui y
contribuent.
M-DOWN (org-agenda-drag-line-forward)
Faire glisser la ligne au point vers l'avant d'une ligne. Avec un préfixe
numérique, la ligne est déplacée d'autant de lignes vers l'avant.
Edition à distance
0--9 Argument de chiffre.
C-_ (org-agenda-undo)
Annuler une modification due à une commande d'édition à distance. La
modification est annulée à la fois dans la mémoire tampon de l'agenda et
dans la mémoire tampon distante.
t (org-agenda-todo)
Change l'état TODO de l'élément, à la fois dans l'agenda et dans le fichier
Org original. Un préfixe arg est transmis à la commande org-todo, ainsi
par exemple un préfixe are C-u déclenchera la prise d'une note pour
documenter le changement d'état.
C-S-RIGHT (org-agenda-todo-nextset)
Passer à la série suivante de mots-clés TODO.
C-S-LEFT, org-agenda-todo-previousset
Passer à l'ensemble précédent de mots-clés TODO.
C-k (org-agenda-kill)
Chapitre 11 : Vues de 219
l'agenda Supprimer le point actuel de l'ordre du jour ainsi que toute la sous-
arborescence qui lui appartient dans le fichier Org d'origine. Si le texte à
supprimer à distance est plus long qu'une ligne,
Chapitre 11 : Vues de 220
l'agenda
U (org-agenda-bulk-unmark-all)
Désélectionner toutes les entrées marquées en vue d'une action groupée.
M-m (org-agenda-bulk-toggle)
Marque de basculement de l'entrée au point d'action de masse.
M-* (org-agenda-bulk-toggle-all)
Marque de basculement de chaque entrée pour l'action en bloc.
% (org-agenda-bulk-mark-regexp)
Marquer les entrées correspondant à une expression régulière pour une action en bloc.
B (org-agenda-bulk-action)
Action globale : agir sur toutes les entrées marquées dans l'agenda. Une
autre touche est demandée pour sélectionner l'action à appliquer.
L'argument préfixe de B est transmis aux commandes s et d, pour supprimer
en bloc ces horodatages spéciaux. Par défaut, les marques sont supprimées
après la suppression en bloc. Si vous voulez qu'elles persistent, mettez org-
agenda-bulk-persistent-marks à t ou tapez p à l'invite.
p Permet d'activer les marques persistantes.
$ Archiver toutes les entrées sélectionnées.
A Archiver les entrées en les déplaçant vers leurs fratries d'archives respectives.
t Changer l'état d'un TODO. Cette fonction demande un seul mot-
clé TODO et modifie l'état de toutes les entrées sélectionnées, en
contournant le blocage et en supprimant les notes
d'enregistrement, mais pas les horodatages.
+ Ajouter une balise à toutes les entrées sélectionnées.
- Supprimer une balise de toutes les entrées sélectionnées.
s Programmer tous les éléments à une nouvelle date. Pour
décaler les dates de programmation existantes d'un nombre fixe
de jours, utilisez un nom commençant par un double plus à
l'invite, par exemple "++8j" ou "++2w".
d Fixer la date limite à une date spécifique.
r Demande une cible de refichage unique et déplace toutes les
entrées. Les entrées ne figurent plus dans l'agenda ;
rafraîchissez (g) pour les faire réapparaître.
S Reprogrammer aléatoirement dans les N jours à venir. N est
demandé. Avec un argument préfixe (C-u B S), la répartition se
fait uniquement sur les jours de la semaine.
f Appliquer une fonction10 aux entrées marquées. Par exemple,
la fonction ci-dessous définit la propriété "CATEGORY" des
entrées à "web".
(defun set-category
() (interactive
"P")
(let ((marker (or (org-get-at-bol 'org-hd-marker)
(org-agenda-error))))
(org-with-point-at marker
(org-back-to-heading t)
Chapitre 11 : Vues de 223
l'agenda (org-set-property "CATEGORY" "web"))))
10
Vous pouvez également créer des fonctions personnalisées persistantes via org-agenda-bulk-custom-functions.
Chapitre 11 : Vues de 224
l'agenda
Commandes de calendrier
c (org-agenda-goto-calendrier)
Ouvrez le calendrier Emacs et allez à la date indiquée dans l'agenda.
c (org-calendar-goto-agenda)
Lorsque vous êtes dans le calendrier, calculez et montrez l'agenda de l'Org pour la date en
question.
i (org-agenda-diary-entry)
Insère une nouvelle entrée dans l'agenda, en utilisant la date au point et
(pour les entrées en bloc) la date à la marque. Cette commande ajoute une
entrée au fichier d'agenda Emacs11 , d'une manière similaire à la commande
i du calendrier. Le fichier de l'agenda apparaît dans une autre fenêtre, où
vous pouvez ajouter l'entrée.
Si vous configurez org-agenda-diary-file pour qu'il pointe vers un fichier
Org, Org crée des en- tries dans ce fichier à la place. La plupart des entrées
sont stockées dans une arborescence basée sur la date qui facilitera plus tard
l'archivage des rendez-vous des mois/années précédents. L'arbre est
construit sous une entrée avec une propriété 'DATE_TREE', ou bien avec des
années comme entrées de premier niveau. Emacs vous demande le texte
de l'entrée - si vous le spécifiez, l'entrée est créée dans org-agenda-diary-
file sans autre interaction. Si vous appuyez directement sur RET à l'invite
sans taper de texte, le fichier cible est affiché dans une autre fenêtre pour
que vous puissiez y terminer l'entrée. Voir aussi la commande k r.
M (org-agenda-phases-de-la-lune)
Montrer les phases de la lune pour les trois mois autour de la date actuelle.
S (org-agenda-sunrise-sunset)
Affiche les heures de lever et de coucher du soleil. La localisation
géographique doit être définie avec des variables de calendrier, voir la
documentation du calendrier Emacs.
C (org-agenda-convert-date)
Convertissez la date du point dans de nombreux autres calendriers culturels et historiques.
H (org-agenda-vacances)
Afficher les vacances pendant trois mois autour de la date de référence.
Quitter et sortir
q (org-agenda-quit)
Quitter l'agenda, supprimer la mémoire tampon de l'agenda.
x (org-agenda-exit)
Quitter l'agenda, supprimer le tampon de l'agenda et tous les tampons
chargés par Emacs pour la compilation de l'agenda. Les tampons créés par
l'utilisateur pour visiter les fichiers Org ne sont pas supprimés.
Comme vous le voyez, la définition des valeurs et des parenthèses est un peu
complexe. En cas de doute, utilisez l'interface de personnalisation pour définir cette
variable - elle prend entièrement en charge sa structure. Une seule mise en garde :
lorsque vous définissez des options dans cette interface, les valeurs ne sont que des
expressions Lisp. Ainsi, si la valeur est une chaîne de caractères, vous devez ajouter
vous-même les guillemets doubles autour de la valeur.
Pour contrôler si une commande de l'agenda doit être accessible à partir d'un
contexte spécifique, vous pouvez personnaliser org-agenda-custom-commands-
contexts. Supposons par exemple que vous ayez une commande d'agenda pour afficher
une vue dont vous n'avez besoin que lorsque vous lisez des courriels. Vous devez alors
configurer cette option comme suit :
(setq org-agenda-custom-commands-contexts
'(("o" (in-mode . "message-mode"))))
Vous pouvez également dire que la clé de commande o doit faire référence à une
autre clé de commande r. Dans ce cas, ajoutez cette clé de commande comme suit :
(setq org-agenda-custom-commands-contexts
'(("o" "r" (in-mode . "message-mode"))))
(setq org-agenda-custom-commands
'(("X" agenda "")
((ps-nombre-de-colonnes
2) (ps-landscape-mode
t))
(org-agenda-prefix-format " [ ]
") (org-agenda-with-colors nil)
(org-agenda-remove-tags t))
("theagenda.ps"))))
Cette commande définit deux options pour l'exportateur Postscript, afin qu'il imprime en
deux colonnes au format paysage - la page résultante peut être coupée en deux et utilisée
dans un agenda papier. Les autres paramètres modifient le préfixe de l'agenda afin
d'omettre les informations relatives à la catégorie et à l'horaire, et d'inclure à la place
une case à cocher pour cocher les éléments. Nous supprimons également les balises
pour rendre les lignes plus compactes et nous ne voulons pas utiliser de couleurs pour
l'imprimante noir et blanc. Les paramètres spécifiés dans org-agenda-exporter-
settings s'appliquent également, par exemple,
(setq org-agenda-exporter-settings
'((ps-number-of-columns 2)
(ps-paysage-mode t)
(org-agenda-add-entry-text-maxlines 5)
(htmlize-output-type 'css)))
mais les paramètres de org-agenda-custom-commands sont prioritaires.
A partir de la ligne de commande, vous pouvez également utiliser :
emacs -eval (org-batch-store-agenda-views) -kill
ou, si vous devez modifier certains paramètres17
emacs -eval '(org-batch-store-agenda-views \
org-agenda-span (mois de citation) \
org-agenda-start-day "2007-11-01" \
org-agenda-include-diary
n
il\ org-agenda-files (quote
("~/org/project.org")))'' \
-tuer
qui crée les vues de l'agenda limitées au fichier "~/org/project.org", sans entrées de
journal et avec une durée de 30 jours.
Vous pouvez également extraire les informations de l'agenda de manière à permettre
un traitement ultérieur par d'autres programmes. Pour plus d'informations, reportez-vous
à la section A.9 [Extraction des informations de l'agenda], page 273.
Pour comprendre comment l'utiliser correctement, il est important de réaliser que les
entrées de l'agenda ne sont plus dans leur environnement de contour approprié. Cela
entraîne les problèmes suivants :
1. Org doit décider du format de colonnes à utiliser. Comme les entrées de l'agenda
sont collectées à partir de différents fichiers, et que ces fichiers peuvent avoir des
formats de colonnes différents, c'est un problème non trivial. Org vérifie d'abord si
org-overriding-columns- format est actuellement défini, et si c'est le cas, il
prend le format à partir de là. Vous ne devez définir cette variable que dans la section
des paramètres locaux d'une commande d'agenda personnalisée (voir Section 11.6
[Vues d'agenda personnalisées], page 130) pour qu'elle soit valide pour cette vue
d'agenda spécifique. Si aucune liaison de ce type n'existe, il vérifie, dans l'ordre,
org-columns-default-format-for- agenda, le format associé au premier élément
de l'agenda (par l'intermédiaire d'une propriété ou d'un paramètre '#+COLUMNS' dans
ce tampon) et enfin org-columns-default-format.
2. Si l'une des colonnes a un type de résumé défini (voir section 7.5.1.2 [Column at-
tributes], page 71), l'activation de l'affichage des colonnes dans l'agenda permet de
consulter tous les fichiers d'agenda concernés et de s'assurer que les calculs de
cette propriété sont à jour. Il en va de même pour la propriété spéciale "CLOCKSUM".
Org additionne ensuite les valeurs affichées dans l'agenda. Dans l'agenda
quotidien/hebdomadaire, les sommes couvrent un seul jour ; dans toutes les autres
vues, elles couvrent le bloc entier.
Il est important de savoir que l'agenda peut présenter deux fois la même entrée, par
exemple comme étant planifiée et comme étant une échéance, et qu'il peut présenter
deux entrées de la même hiérarchie (par exemple un parent et son enfant). Dans ces
cas, l'addition dans l'agenda conduit à des résultats incorrects car certaines valeurs
comptent double.
3. Lorsque la vue en colonnes de l'agenda affiche la propriété "CLOCKSUM", il s'agit
toujours de l'ensemble du temps chronométré pour ce point. Ainsi, même dans
l'agenda quotidien/hebdomadaire, la somme des heures répertoriées dans la vue en
colonnes peut provenir de moments situés en dehors de la vue actuelle. L'avantage
est que vous pouvez comparer ces valeurs avec une colonne listant l'effort total
planifié pour une tâche - l'une des principales applications de la vue en colonnes
dans l'agenda. Si vous souhaitez obtenir des informations sur le temps chronométré
dans la période affichée, utilisez le mode tableau d'horloge (appuyez sur R dans
l'agenda).
4. Lorsque la vue en colonnes de l'agenda affiche la propriété "CLOCKSUM_T", il s'agit
toujours du temps chronométré d'aujourd'hui pour ce point. Ainsi, même dans
l'agenda hebdomadaire, le temps de pointage indiqué dans la vue en colonnes ne
provient que d'aujourd'hui. Cela vous permet de comparer le temps que vous avez
passé sur une tâche aujourd'hui avec le temps déjà passé - via 'CLOCKSUM' - et avec
l'effort total planifié pour cette tâche.
Chapitre 12 : Le balisage des 236
contenus enrichis
12.1 Paragraphes
Les paragraphes sont séparés par au moins une ligne vide. Si vous devez imposer un
saut de ligne à l'intérieur d'un paragraphe, utilisez "\N" à la fin d'une ligne.
Pour préserver les sauts de ligne, l'indentation et les lignes vierges dans une région,
tout en utilisant le formatage normal, vous pouvez utiliser cette construction, qui peut
également être utilisée pour formater des poèmes.
#+BEGIN_VERSE
De grands nuages au-dessus de la tête
De minuscules oiseaux noirs
montent et descendent La
neige recouvre Emacs
---AlexSchroeder
#+END_VERSE
Lorsque vous citez un passage d'un autre document, il est d'usage de le présenter
sous la forme d'un paragraphe indenté à gauche et à droite. Vous pouvez inclure des
citations dans les documents Org de cette manière :
#+BEGIN_QUOTE
Tout doit être rendu aussi simple que possible,
mais pas plus simple ---Albert Einstein
#+END_QUOTE
Si vous souhaitez centrer un texte, procédez comme suit :
#+BEGIN_CENTER
Tout doit être aussi simple que possible, mais pas
plus.
#+END_CENTER
Si vous souhaitez que les entités soient affichées en caractères UTF-8, utilisez la
commande suivante :1 :
C-c C-x \N- (org-toggle-pretty-entities)
Afficher les entités en caractères UTF-8. Cela ne modifie pas le contenu de la
mémoire tampon, qui reste en ASCII, mais superpose le caractère UTF-8 à
des fins d'affichage uniquement.
Outre les entités régulières définies ci-dessus, Org exporte d'une manière spéciale2
les combinaisons de caractères suivantes, couramment utilisées : '\-' est traité comme
un petit trait d'union, '--' et '---' sont convertis en tirets, et '...' devient un ensemble
compact de points.
\n-{equation}% etc
Org CDLATEX qui fait partie d'Org. Activez-le pour le tampon actuel avec M-x org-
cdlatex-mode, ou pour tous les fichiers Org avec
5
Ceux-ci sont respectivement disponibles à https://sourceforge.net/projects/dvipng/, http://dvisvgm.
bplaced . net / et dans la suite ImageMagick. Choisissez le convertisseur en définissant la variable
org-preview-latex-default-process en conséquence.
Chapitre 12 : Le balisage des 241
contenus enrichis
L'appui sur _ et ^ à l'intérieur d'un fragment LATEX insère ces caractères avec
une paire d'accolades. Si vous utilisez TAB pour sortir des accolades, et si
les accolades n'entourent qu'un seul caractère ou une macro, elles sont à
` nouveau supprimées (en fonction de la variable cdlatex-simplify-sub-
super-scripts).
L'appui sur le guillemet suivi d'un caractère insère des macros mathématiques,
' également en dehors des fragments LATEX. Si vous attendez plus de 1,5
seconde après le guillemet, une fenêtre d'aide s'affiche.
L'appui sur le guillemet simple suivi d'un autre caractère modifie le sym- bol
LATEX avant le point avec un accent ou une police. Si vous attendez plus de
1,5 seconde après l'appui sur le guillemet simple, une fenêtre d'aide
s'affiche. La modification des caractères ne fonctionne qu'à l'intérieur des
fragments LATEX ; à l'extérieur du guillemet, tout est normal.
org-inside-LaTeX-fragment-p.
Chapitre 12 : Le balisage des 243
contenus enrichis
#+BEGIN_EXAMPLE
Je ne suis pas un vrai
titre #+END_EXAMPLE
Pour simplifier l'utilisation de petits exemples, vous pouvez également commencer
les lignes d'exemple par un deux-points suivi d'un espace. Il peut également y avoir des
espaces blancs supplémentaires avant les deux points :
En voici un exemple
: Quelques exemples tirés d'un fichier texte.
Si l'exemple est un code source d'un langage de programmation, ou tout autre texte
qui peut être marqué par le verrouillage des polices dans Emacs, vous pouvez
demander que l'exemple ressemble au tampon Emacs fontifié7 . Cela se fait avec le bloc
de code, où vous devez également spécifier le nom du mode majeur qui doit être utilisé
pour fontifier l'exemple8 , voir Section 17.2 [Modèles de structure], page 247 pour des
raccourcis permettant d'insérer facilement des blocs de code.
#+BEGIN_SRC emacs-lisp
(defun org-xor (a
b)
"Exclusif ou."
(if a (not b) b))
#+END_SRC
Dans les extraits "example" et "src", vous pouvez ajouter un commutateur "-n" à la
fin de la ligne "#+BEGIN", pour que les lignes de l'exemple soient numérotées. Le
commutateur "-n" prend un argument numérique facultatif spécifiant le numéro de la
ligne de départ du bloc. Si vous utilisez l'option '+n', la numérotation de l'extrait numéroté
précédent est reprise dans l'extrait actuel. Le commutateur '+n' peut également prendre
un argument numérique. Il ajoute la valeur de l'argument à la dernière ligne du bloc
précédent pour déterminer le numéro de la ligne de départ.
#+BEGIN_SRC emacs-lisp -n 20
; ; Ceci s'exporte avec la ligne numéro
20. (message "Ceci est la ligne 21")
#+END_SRC
#+BEGIN_SRC emacs-lisp +n 10
; ; Ceci est listé comme la ligne
31. (message "Ceci est la ligne
32")
#+END_SRC
Dans les exemples littéraux, Org interprète des chaînes comme '(ref:name)' comme
des étiquettes, et les utilise comme cibles pour des liens hypertextes spéciaux comme
'[[(name)]]' - c'est-à-dire le nom de la référence entre parenthèses simples. En HTML,
le passage de la souris sur un tel lien met en évidence à distance la ligne de code
correspondante, ce qui est plutôt sympa.
7
Cela fonctionne automatiquement pour le backend HTML (cela nécessite la version 1.34 du paquetage
'htmlize.el', que vous devez installer). Les morceaux de code fontifiés dans LATEX peuvent être
obtenus en utilisant soit le paquetage listings LATEX, soit le paquetage minted LATEX, soit en utilisant
engrave-faces . Référez-vous à org-latex-src-block-backend pour plus de détails.
Chapitre 12 : Le balisage des 244
contenus
8 Le enrichis
code source contenu dans les blocs de code peut également être évalué de manière interactive ou lors
de l'exportation. Voir le chapitre 16 [Travailler avec le code source], page 217 pour plus d'informations
sur l'évaluation des blocs de code.
Chapitre 12 : Le balisage des 245
contenus enrichis
Vous pouvez également ajouter un commutateur "-r" qui supprime les étiquettes du
code source9 . Avec le commutateur "-n", les liens vers ces références sont étiquetés
par les numéros de ligne de la liste du code. Sinon, les liens utilisent les étiquettes sans
parenthèses. Voici un exemple :
#+BEGIN_SRC emacs-lisp -n -r
(save-excursion (ref:sc)
(goto-char (point-min)) (ref:jump)
#+END_SRC
Dans la ligne [[(sc)]], nous mémorisons la position actuelle.
[[(saut)][Ligne (saut)]] saute au point-min.
Le code source et les exemples peuvent être indentés afin de s'aligner sur le texte
environnant, et en particulier sur la structure des listes simples (voir Section 2.6 [Listes
simples], page 12). Par défaut, Org ne conserve que l'indentation relative entre les
lignes, par exemple lors de l'exportation du contenu du bloc. Cependant, vous pouvez
utiliser le commutateur '-i' pour préserver également l'indentation globale, si cela a de
l'importance. Voir Section 16.10 [Édition du code source], page 240.
Si la syntaxe du format de l'étiquette est en conflit avec la syntaxe du langage,
utilisez le commutateur "-l" pour modifier le format, par exemple
#+BEGIN_SRC pascal -n -r -l "((%s))"
Voir aussi la variable org-coderef-label-format.
L'exportation HTML permet également de publier des exemples sous forme de zones
de texte (voir section 13.9.11 [Zones de texte dans l'exportation HTML], page 166).
Étant donné que les motifs '#+BEGIN' . . . #+END' doivent être ajoutés très souvent, un
raccourci est fourni (voir Section 17.2 [Modèles de structure], page 247).
C-c ' (org-edit-special)
Modifier l'exemple de code source à un moment donné dans son mode natif.
Cela fonctionne en basculant vers une mémoire tampon temporaire
contenant le code source. Vous devez quitter en appuyant à nouveau sur C-c
'. La version éditée remplace alors l'ancienne version dans le tampon Org.
Les régions de largeur fixe - où chaque ligne commence par un deux-points
suivi d'un espace - sont éditées en utilisant le mode Artiste10 pour permettre
de créer facilement des dessins ASCII. L'utilisation de cette commande dans
une ligne vide crée une nouvelle région de largeur fixe.
L'appel à org-store-link (voir Section 4.5 [Gestion des liens], page 42) pendant
l'édition d'un exemple de code source dans un tampon temporaire créé avec C-c '
demande une étiquette. Assurez-vous qu'elle est unique dans le tampon actuel et
insérez-la avec le formatage approprié comme '(ref:label)' à la fin de la ligne
actuelle. L'étiquette est ensuite stockée sous la forme d'un lien '(étiquette)', qui peut
être récupéré avec C-c C-l.
12.7 Images
Une image est un lien vers un fichier image11 qui n'a pas de partie descriptive, par exemple
ajout de '-k' à '-n -r' permet de conserver les étiquettes dans le code source tout en utilisant des
9 L'
numéros de ligne pour les liens, ce qui peut être utile pour expliquer ces derniers dans un exemple de
code en mode Org.
10
Vous pouvez sélectionner un autre mode à l'aide de la variable org-edit-fixed-width-region-mode.
Chapitre 12 : Le balisage des 246
contenus
11 enrichis
Ce qu'Emacs considère comme une image dépend des extensions du nom du fichier-image et des
regexps du nom du fichier-image.
Chapitre 12 : Le balisage des 247
contenus enrichis
./img/cat.jpg
Si vous souhaitez définir une légende pour l'image (voir Section 12.8 [Légendes], page
144) et peut-être une étiquette pour les références croisées internes (voir Section 4.2
[Liens internes], page 39), assurez-vous que le lien se trouve sur une ligne distincte et
faites-le précéder des mots-clés 'CAPTION' et 'NAME' comme suit :
#+CAPTION : Il s'agit de la légende du lien de la figure
suivante (ou du tableau) #+NAME : fig:SED-HR4049
[[./img/a.jpg]]
Ces images peuvent être affichées dans la mémoire tampon à l'aide de la commande suivante :
C-c C-x C-v (org-toggle-inline-images)
Bascule l'affichage en ligne des images liées. Lorsqu'il est appelé avec un
argument préfixe, il affiche également les images qui ont une description de
lien. Vous pouvez demander l'affichage des images en ligne au démarrage
en configurant la variable org-startup- with-inline-images12 .
Par défaut, le mode Org affiche les images en ligne en fonction de leur largeur réelle.
Vous pouvez personnaliser la largeur de l'image affichée en utilisant la variable org-
image-actual-width (globalement) ou la propriété 'ORG-IMAGE-ACTUAL-WIDTH' (au
niveau du sous-arbre)13 . Leur valeur peut être la suivante :
• (par défaut) Non nul, utilise la largeur réelle des images lors de l'incrustation.
• Lorsqu'il s'agit d'un nombre, imagemagick (s'il est disponible) définit la largeur de
l'image en fonction de cette valeur.
• Lorsqu'il est défini comme un nombre dans une liste, il essaie d'obtenir la
largeur à partir de n'importe quel mot-clé '#+ATTR.*' s'il correspond à une
spécification de largeur comme :
#+ATTR_HTML : :width 300px
et se rabattre sur ce numéro si aucun n'est trouvé.
• Lorsqu'il est défini à nil, il tente d'obtenir la largeur à partir d'un mot-clé '#+ATTR.*' et
reprend la largeur d'origine s'il n'en trouve pas.
Les images en ligne peuvent également être affichées lors du cycle de l'état de pliage.
Lorsque l'option personnalisée org-cycle-inline-images-display est définie, les
images en ligne visibles sous la sous-arborescence seront affichées automatiquement.
12.8 Légendes
Vous pouvez attribuer une légende à une partie spécifique d'un document en insérant un
mot-clé "CAPTION" immédiatement avant celle-ci :
#+CAPTION : Il s'agit de la légende du tableau (ou du lien) suivant.
| ... | ... |
|-----+---------|
En option, la légende peut prendre la forme :
12
La variable org-startup-with-inline-images peut être définie dans un tampon avec les options
'STARTUP' 'inlineimages' et 'noinlineimages'.
13
La largeur peut être personnalisée dans Emacs >= 24.1, construit avec le support d'imagemagick.
Chapitre 12 : Le balisage des 248
contenus enrichis
s Trier les définitions des notes de bas de page par ordre de référence.
r Renuméroter les notes de bas de page simples 'fn:N'.
S Abréviation de l'action "r", puis "s".
n Renommer toutes les notes de bas de page en une séquence 'fn:1' . . . 'fn:n'.
d Supprimer la note de bas de page au point, y compris la définition et les références.
En fonction de la variable org-footnote-auto-adjust15 , la renumérotation
et le tri des notes de bas de page peuvent être automatiques après chaque
insertion ou suppression.
C-c C-c Si le point se trouve sur une référence de note de bas de page, sauter à la
définition. S'il se trouve sur la définition, il revient à la référence. Lorsqu'il est
appelé à un emplacement de note de bas de page avec un argument
préfixe, il offre le même menu que C-c C-x f.
C-c C-o ou souris-1/2
Les étiquettes des notes de bas de page sont également des liens vers la
définition ou la référence correspondante, et vous pouvez utiliser les
commandes habituelles pour suivre ces liens.
15
Les options correspondantes dans la mémoire tampon sont '#+STARTUP : fnadjust' et '#+STARTUP : nofnadjust'.
Chapitre 13 : 251
L'exportation
13 Exportation
A un moment donné, vous voudrez peut-être imprimer vos notes, les publier sur le Web
ou les partager avec des personnes qui n'utilisent pas Org. Org peut convertir et
exporter des documents dans une variété d'autres formats tout en conservant autant
que possible la structure (voir le chapitre 2 [Structure du document], page 6) et le
balisage (voir le chapitre 12 [Balisage pour un contenu riche], page 137).
Les bibliothèques chargées de traduire les fichiers Org dans d'autres formats sont appelées "back-ends".
Org est livré avec un support pour les back-ends suivants :
• ascii (format ASCII)
• beamer (format LATEX Beamer)
• html (format HTML)
• icalendar (format iCalendar)
• latex (format LATEX)
• md (format Markdown)
• odt (format texte OpenDocument)
• org (format Org)
• texinfo (format Texinfo)
• man (format de page de manuel)
Les utilisateurs peuvent installer des bibliothèques pour des formats supplémentaires
à partir du système d'empaquetage d'Emacs. Pour faciliter la découverte, ces paquets
ont un schéma de dénomination commun : ox-NAME, où NAME est un format. Par
exemple, ox-koma-letter pour le back-end de koma-letter. D'autres bibliothèques
peuvent être trouvées dans le dépôt 'org-contrib' (voir Section 1.2 [Installation], page
2).
Org ne charge par défaut que les back-ends pour les formats suivants : ASCII,
HTML, iCalendar, LATEX et ODT. Des backends supplémentaires peuvent être chargés
de deux manières : en configurant la variable org-export-backends, ou en demandant
des bibliothèques dans le fichier init d'Emacs. Par exemple, pour charger le back-end
Markdown, ajoutez ceci à votre configuration Emacs :
(require 'ox-md)
C-a
Permet d'activer l'exportation asynchrone. L'exportation asynchrone utilise
un processus Emacs externe avec un fichier d'initialisation spécialement
configuré pour terminer le processus d'exportation en arrière-plan, sans
mettre Emacs en veille. Cette fonction est particulièrement utile lors de
l'exportation de longs documents.
La sortie d'une exportation asynchrone est enregistrée dans la pile
d'exportation. Pour visualiser cette pile, appelez le répartiteur d'exportation
avec un double argument préfixe C-u. Si vous êtes déjà dans le menu du
distributeur d'exportation, & affiche la pile.
Vous pouvez faire de l'exportation asynchrone la valeur par défaut en
définissant org-export-in- background.
Vous pouvez définir le fichier d'initialisation utilisé par le processus d'arrière-plan en définissant
C-b
org-export-async-init-file.
individuellement, une bonne façon de s'assurer que le mot-clé est correct est de taper
'#+' puis d'utiliser M-TAB1 pour compléter.
1
De nombreux bureaux interceptent la touche M-TAB pour changer de fenêtre. Utilisez plutôt C-M-i ou ESC TAB.
Chapitre 13 : 254
L'exportation
Les mots-clés d'exportation disponibles pour chaque back-end, ainsi que les variables
globales équivalentes, sont les suivants :
'AUTHOR' L'auteur du document (nom complet de l'utilisateur).
CREATOR Entité responsable de la génération de la sortie (org-export-creator-
string). DATE " Une date ou un horodatage2 .
EMAIL L'adresse électronique (user-mail-
address). LANGUE
Langue à utiliser pour traduire certaines chaînes (org-export-default-
langue). Avec '#+LANGUAGE : fr', par exemple, Org traduit 'Table of
contents' en français 'Table des mati`eres' 3 .
'SELECT_TAGS'
La valeur par défaut est '("export")'. Lorsqu'un arbre est marqué avec
'export' (org-export-select-tags), Org sélectionne cet arbre et ses sous-
arbres pour l'exportation. Org exclut les arbres avec des balises 'noexport',
voir ci-dessous. Lors de l'exportation sélective de fichiers avec les balises
'export', Org n'exporte pas le texte qui apparaît avant le premier titre.
'EXCLUDE_TAGS' (EN ANGLAIS)
La valeur par défaut est '("noexport")'. Lorsqu'un arbre est marqué avec
'noexport' (org-export-exclude-tags), Org exclut cet arbre et ses sous-
arbres de l'exportation. Les entrées marquées avec 'noexport' sont
inconditionnellement exclues de l'exportation, même si elles ont une balise
'export'. Même si un sous-arbre n'est pas exporté, Org exécute tous les
blocs de code qu'il contient.
'TITLE' Org affiche ce titre. Pour les titres longs, utilisez plusieurs lignes
'#+TITLE'. 'NOM_DU_FICHIER_EXPORT'
Le nom du fichier de sortie à générer. Sinon, Org génère le fichier
le nom du fichier est basé sur le nom de la mémoire tampon et l'extension
est basée sur le format du back-end.
Le mot-clé 'OPTIONS' est une forme compacte. Pour configurer plusieurs options,
utilisez plusieurs lignes 'OPTIONS'. Le mot clé 'OPTIONS' reconnaît les arguments
suivants.
' Activer les guillemets intelligents (org-export-with-smart-quotes). En fonction de la
langue utilisée, Org traite les paires de guillemets doubles comme des
guillemets primaires, les paires de guillemets simples comme des guillemets
secondaires et les guillemets simples comme des apostrophes.
* Permet d'accentuer le texte (org-export-with-emphasize).
- Conversion des chaînes spéciales (org-export-with-special-strings).
: Afficher les sections à largeur fixe (org-export-with-fixed-width).
2
La variable org-export-date-timestamp-format définit la manière dont ces horodatages sont exportés.
3
Pour l'exportation vers le format LATEX - ou des formats apparentés à LATEX comme Beamer -, la variable
'org-latex-package-alist' doit être configurée davantage. Voir Section 13.10.2 [Paramètres d'exportation
spécifiques à LATEX], page 169.
Chapitre 13 : 255
L'exportation
Org insère normalement la table des matières directement avant le premier titre du
fichier. Pour déplacer la table des matières à un autre endroit, désactivez d'abord la
valeur par défaut avec la variable org-export- with-toc ou avec '#+OPTIONS :
toc:nil'. Insérez ensuite '#+TOC : headlines N' à l'endroit ou aux endroits souhaités.
#+OPTIONS : toc:nil
...
#+TOC : titres 2
Pour ajuster la profondeur de la table des matières pour une section spécifique du
document Org, ajoutez un paramètre supplémentaire "local". Ce paramètre devient une
profondeur relative pour le niveau actuel. L'exemple suivant insère une table des
matières locale, avec les enfants directs uniquement.
* Section
#+TOC : titres 1 local
Notez que pour que cette fonctionnalité fonctionne correctement dans l'exportation
LATEX, le fichier Org nécessite l'inclusion du paquet titletoc. Pour des raisons de
compatibilité, titletoc doit être chargé avant hyperref. Personnalisez la variable org-
latex-default-packages-alist.
L'exemple suivant insère une table des matières qui renvoie aux enfants de la cible
spécifiée.
* Cible
:PROPRIÉTÉS :
:CUSTOM_ID : TargetSection
:FIN :
** Rubrique A
** Rubrique B
* Une autre section
#+TOC : headlines 1 :target #TargetSection
L'attribut ':target' est pris en charge dans les exportations HTML, Markdown, ODT
et ASCII. Utilisez le mot-clé "TOC" pour générer une liste de tableaux - respectivement,
toutes les listes - avec des légendes.
#+TOC : listes
#+TOC :
tableaux
Normalement, Org utilise le titre pour son entrée dans la table des matières. Mais la
propriété 'ALT_TITLE' permet de spécifier une entrée différente pour la table des
matières.
Si un fichier inclus n'est pas spécifié comme ayant un langage de balisage, Org
suppose qu'il est au format Org et procède comme d'habitude à quelques exceptions
près. Org rend les étiquettes de notes de bas de page (voir Section 12.10 [Créer des
notes de bas de page], page 145) dans le fichier inclus locales à ce fichier. Le contenu
du fichier inclus appartient à la même structure - titre, article - qui contient le mot-clé
"INCLUDE". En particulier, les titres à l'intérieur du fichier deviennent des enfants de la
section courante. Ce comportement peut être modifié en fournissant un mot-clé
supplémentaire, ':minlevel'. Il fait passer les titres du fichier inclus au niveau le plus
bas. Par exemple, cette syntaxe fait du fichier inclus un frère ou une sœur du titre de
premier niveau actuel :
#+INCLUDE : "~/mon-livre/chapitre2.org" :minlevel 1
L'inclusion de parties de fichiers seulement est spécifiée en utilisant le paramètre
ranges avec le mot-clé ':lines'. La ligne située à l'extrémité supérieure de l'intervalle ne
sera pas incluse. Le début et/ou la fin de l'intervalle peuvent être omis pour utiliser les
valeurs par défaut évidentes.
'#+INCLUDE : "~/.emacs" :lignes "5-10"' Inclure les lignes 5 à 10, 10 exclues
'#+INCLUDE : "~/.emacs" :lignes "-10"' Inclure leslignes 1 à 10, 10
exclues '#+INCLUDE : "~/.emacs" :lines "10-"' Inclure les lignes
de 10 à EOF
Les inclusions peuvent spécifier un lien vers un fichier pour extraire un objet
correspondant à org-link-search5 (voir section 4.8 [Options de recherche], page 46).
Les plages du mot-clé ':lines' sont relatives à l'élément demandé. Par conséquent,
#+INCLUDE : "./paper.org::*conclusion" :lignes 1-20
comprend les 20 premières lignes du titre intitulé "conclusion".
Pour extraire uniquement le contenu de l'objet correspondant, définissez la propriété
':only-contents' comme non nulle. Cela permet d'omettre les lignes de planification
ou les tiroirs de propriétés. Par exemple, pour inclure le corps de l'en-tête avec
l'identifiant personnalisé "théorie", vous pouvez utiliser la propriété ':only-contents'.
#+INCLUDE : "./paper.org::#theory" :only-contents t
La commande suivante permet de naviguer vers le document inclus :
C-c ' (org-edit-special)
Visitez le fichier inclus au point.
La rose est rouge, la violette est bleue. La vie est ordonnée : Org vous assiste.
Dans un cas particulier, Org analyse tout texte de remplacement commençant par
'(eval' comme une expression Emacs Lisp et l'évalue en conséquence. Dans de tels
modèles, les arguments deviennent des chaînes de caractères. Ainsi, la macro suivante
#+MACRO : gnustamp (eval (concat "GNU/" (capitalize $1)))
transforme '{{{gnustamp(linux)}}}' en 'GNU/Linux' lors de l'exportation.
Org reconnaît les références macro dans les zones de balisage suivantes :
paragraphes, titres, blocs de vers, tableaux, cellules et listes. Org reconnaît également les
références macro dans les mots-clés, tels que 'CAPTION', 'TITLE', 'AUTHOR', 'DATE', et pour
certaines options d'exportation spécifiques au back-end.
Org est livré avec les macros prédéfinies suivantes :
'{{{mot clé(NOM)}}}'
'{{{titre}}}'
'{{{auteur}}}'
'{{{email}}}'
La macro "keyword" recueille toutes les valeurs des mots-clés NAME dans la
mémoire tampon, séparées par un espace blanc. Les macros 'title',
'author' et 'email' sont des raccourcis pour, respectivement, '{{{mot-
clé(TITLE)}}', '{{mot-clé(AUTHOR)}}' et '{{mot-clé(EMAIL)}}'.
'{{{date}}}'
'{{{date(FORMAT)}}}'
Cette macro fait référence au mot-clé 'DATE'. FORMAT est un argument
facultatif de la macro 'date' qui n'est utilisé que si 'DATE' est un
horodatage unique. FORMAT doit être une chaîne de format comprise par
format-time-string.
'{{{heure(FORMAT)}}}'
'{{{modification-time(FORMAT, VC)}}}'
Ces macros font référence à la date et à l'heure d'exportation et à la date et à
l'heure de modification du document. FORMAT est une chaîne comprise par
format-time-string. Si le deuxième argument de la macro
modification-time est non nul, Org utilise 'vc.el' pour récupérer l'heure
de modification du document à partir du système de contrôle de version.
Sinon, Org lit les attributs du fichier.
'{{{fichier d'entrée}}}'
Cette macro fait référence au nom du fichier exporté.
'{{property(PROPERTY-NAME)}}}'
'{{property(PROPERTY-NAME, SEARCH OPTION)}}'
Cette macro renvoie la valeur de la propriété PROPERTY-NAME dans
l'entrée courante. Si SEARCH-OPTION (voir Section 4.8 [Options de
recherche], page 46) fait référence à une entrée distante, utilisez-la à la
place.
'{{{n}}}'
'{{n(NOM)}}}'
'{{n(NOM, ACTION)}}}'
Cette macro met en œuvre des compteurs personnalisés en renvoyant le
nombre de fois que la macro a été développée jusqu'à présent lors de
l'exportation de la mémoire tampon. Vous pouvez créer plusieurs compteurs en
Chapitre 13 : 263
L'exportationutilisant différentes valeurs de NOM. Si ACTION est '-', le compteur
précédent
Chapitre 13 : 264
L'exportation
#+BEGIN_EXPORT ascii
Org n'exporte le texte dans ce bloc que lorsqu'il utilise le back-end
ASCII. #+END_EXPORT
#+BEGIN_JUSTIFYRIGHT
...et ensuite un pas vers la droite.
#+END_JUSTIFYRIGHT
Chapitre 13 : 267
L'exportation
8
Si 'BEAMER_ENV' est défini, l'exportation Org ajoute la balise 'B_environment' pour la rendre visible. Cette
balise sert d'aide visuelle et n'a aucune pertinence sémantique.
Chapitre 13 : 270
L'exportation
et remplit la colonne avec le contenu de l'entrée Org. Si l'entrée Org n'a pas
d'environnement spécifique défini, Beamer export ignore l'en-tête. Si l'entrée Org a
un environnement défini, Beamer export utilise l'en-tête comme titre. Dans les
coulisses, l'exportation Beamer gère automatiquement les séparations de colonnes
LATEX pour les titres contigus. Pour les ajuster manuellement en fonction des
besoins de configuration uniques, utilisez la propriété 'BEAMER_ENV'.
#+BEGIN_EXPORT beamer
Seul le back-end d'exportation Beamer
exporte ceci. #+END_EXPORT
** Cadre 1
*** Merci à Eric Fraga B_block :
:PROPRIÉTÉS :
:BEAMER_COL : 0.48
:BEAMER_ENV : bloc
:FIN :
pour la première installation viable de Beamer en Org
*** Merci à tous les autres B_block :
:PROPRIÉTÉS :
:BEAMER_COL : 0.48
:BEAMER_ACT : <2->
:BEAMER_ENV : bloc
:FIN :
pour avoir contribué à la discussion
**** Ceci sera formaté comme une note beamer :B_note :
:PROPRIÉTÉS :
BEAMER_env : note
:FIN :
** Cadre 2 (où nous n'utiliserons pas de colonnes)
*** Demande
S'il vous plaît, testez ce produit !
SUBTITLE' (SOUS-TITRES)
Le sous-titre du document. L'exportateur HTML formate le sous-titre si le
type de document est 'HTML5' et si le CSS a une classe 'subtitle'.
Certains de ces mots-clés sont expliqués plus en détail dans les sections suivantes
du manuel.
#+BEGIN_EXPORT html
Toutes les lignes entre ces marqueurs sont exportées
littéralement #+END_EXPORT
view : " Vue initiale lorsque le site web est affiché pour la première fois.
Les valeurs possibles sont les suivantes 'info'Interface de
type infographique avec une section par page 'overview'
Interface pliante, ne montrant initialement que le niveau
supérieur 'content'Interface pliante, commençant avec tous
les titres visibles 'showall' Interface pliante, tous les titres et
le texte visibles
sdepth:' Niveau maximum des titres, toujours considéré comme une section
indépendante pour les modes info et folding. La valeur par défaut est tirée
de org-export-headline-levels, c'est-à-dire de l'option "H" dans "OPTIONS".
Si cette valeur est inférieure à celle de org-export-headline- levels,
chaque section info/folding peut encore contenir des titres enfants.
'toc:' La table des matières doit-elle être visible au départ ? Même si elle est "nulle",
vous pouvez toujours accéder à la "toc" avec i.
'tdepth:' Profondeur de la table des matières. Les valeurs par défaut sont tirées des variables
org-export-headline-levels et org-export-with-toc.
ftoc : "Le CSS de la page spécifie-t-il une position fixe pour le "toc" ? Si oui, la toc est
affichée comme une section.
ltoc : " Doit-il y avoir des contenus courts (enfants) dans chaque section ? Indiquez
"above" si la section doit être placée au-dessus du texte initial.
souris : Les titres sont mis en évidence lorsque la souris passe dessus. Doit être
'underline' (par défaut) ou une couleur d'arrière-plan comme '#cccccc'.
'boutons:'
Les boutons de basculement de la vue doivent-ils être omniprésents ? Si le
bouton est "nil" (valeur par défaut), un seul bouton de ce type est présent.
Vous pouvez choisir des valeurs par défaut pour ces options en personnalisant la
variable org-infojs- options. Si vous souhaitez toujours appliquer le script à vos
pages, configurez la variable org-export-html-use-infojs.
'LATEX_CLASS'
Il s'agit d'une classe de document LATEX, telle que article, rapport, livre, etc.,
qui contient un préambule prédéfini et une correspondance au niveau du
titre dont le back-end de l'ex-port LATEX a besoin. Le back-end lit le nom de
la classe par défaut à partir de la variable org-latex-default-class. Org a
article comme classe par défaut. Une classe par défaut valide doit être un
élément de org-latex-classes.
'LATEX_CLASS_OPTIONS'
Options utilisées par le back-end d'exportation LATEX lors de l'appel de la classe de document LATEX.
'LATEX_COMPILER'
Le compilateur, tel que 'pdflatex', 'xelatex', 'lualatex', pour produire le
PDF. Voir org-latex-compiler.
'LATEX_HEADER'
'LATEX_HEADER_EXTRA'
Lignes arbitraires à ajouter au préambule du document, avant les paramètres
de l'hyperref. Voir org-latex-classes pour ajuster la structure et l'ordre des
en-têtes LATEX.
KEYWORDS"
Les mots-clés du document. La description ainsi que le nom de l'auteur, les
(MOTS-
mots-clés et les métadonnées des fichiers connexes sont insérés dans le
CLÉS) fichier de sortie par le paquet hyperref. Voir org-latex-hyperref-template
pour personnaliser les éléments de métadonnées. Voir org-latex-title-
command pour la composition de la description dans la première page du
document. Utilisez plusieurs lignes "KEYWORDS" si nécessaire.
Les options et la syntaxe pour les spécifier, y compris leur mise entre crochets, suivent
les conventions LATEX.
#+LATEX_CLASS_OPTIONS : [a4paper,11pt,twoside,twocolumn]
Le back-end d'exportation LATEX ajoute les valeurs des mots-clés 'LATEX_HEADER' et
'LATEX_HEADER_EXTRA' à l'en-tête LATEX. La docstring pour les classes org-latex-
explique plus en détail. Notez également que le back-end d'exportation LATEX n'ajoute
pas 'LATEX_HEADER_EXTRA' à l'en-tête lors de la prévisualisation de fragments LATEX (voir
Section 12.5.2 [Prévisualisation de fragments LATEX], page 140).
Un exemple de fichier Org avec les en-têtes ci-dessus :
#+LATEX_CLASS : article
#+LATEX_CLASS_OPTIONS :
[a4paper]
#+LATEX_HEADER : \usepackage{xyz}
* Titre 1
un peu de
texte
* Titre 2 un
peu plus de
texte
Les paquets LATEX "babel" ou "polyglossia" peuvent également être chargés dans
un document. La chaîne "AUTO" sera remplacée dans les deux cas par la valeur
appropriée du mot-clé "LANGUAGE", s'il est présent dans le document, ou par la valeur de
org-export-default-language. Voyons quelques exemples dans l'un ou l'autre cas.
Babel accepte la syntaxe classique et (en plus) la nouvelle syntaxe avec la
commande '\babelprovide' pour charger les langues en utilisant la nouvelle procédure
des fichiers 'INI'. Gardez à l'esprit qu'il existe un certain nombre de langues qui ne sont
servies dans Babel qu'à l'aide de fichiers 'INI', et qui ne peuvent donc pas être
déclarées à l'aide de la syntaxe classique, mais uniquement à l'aide de la commande
'\babelprovide' (voir https : / /mirrors .ctan .org /macros /latex /required /babel
/base / babel.pdf). Des exemples d'utilisation valables pourraient être :
#+LATEX_HEADER : \usepackage[french,italian,AUTO]{babel}
où "AUTO" est la langue principale. Mais il peut également être chargé à l'aide de la
commande "\babelprovide" :
#+LATEX_HEADER : \usepackage[french,italian]{babel}
#+LATEX_HEADER : \babelprovide[import, main]{AUTO}
Pour que cette procédure soit efficace, la "polyglossie" doit être chargée en utilisant
la même syntaxe classique de "babel" (mais notez qu'il ne s'agit pas de la syntaxe réelle de
la polyglossie). Par exemple, supposons qu'un document déclare le grec polytonique
comme langue principale et le français comme langue secondaire. Dans ce cas, il serait
exprimé comme suit :
#+LANGUE : el-polyton
#+LATEX_HEADER : \usepackage[french,AUTO]{polyglossia}
Cela produirait en LATEX (avec la syntaxe "polyglossique" actuelle) :
\n-usepackage{polyglossia}
\setmainlanguage[variant=polytonic]{greek}
\setotherlanguage{french}
Chapitre 13 : 288
L'exportation
Par exemple, un type float défini par l'utilisateur avec le package LATEX 'float'.
Chapitre 13 : 292
L'exportation
Par conséquent, tout nombre pair supérieur à 2 est la somme de deux nombres
premiers.
\n-{preuve}
Si vous souhaitez insérer une commande de légende spécifique, utilisez l'attribut
':caption'. Il remplace la valeur standard "CAPTION", le cas échéant. Par exemple,
l'attribut ':caption' remplace la valeur standard 'CAPTION' :
#+ATTR_LATEX : :caption \MyCaption{HeadingA}
#+BEGIN_proof
...
#+END_proof
DESCRIPTION
Il s'agit de la description du document, que le back-end d'exportation ODT
insère en tant que métadonnées du document. Pour les descriptions
Chapitre 13 : 298
L'exportation
14
Voir Open Document Format for Office Applications (OpenDocument) Version 1.2.
Chapitre 13 : 299
L'exportation
KEYWORDS"
Les mots-clés du document. Le back-end d'exportation ODT insère la
(MOTS-
description ainsi que le nom de l'auteur, les mots-clés et les métadonnées
CLÉS) des fichiers connexes en tant que métadonnées dans le fichier de sortie.
Utilisez plusieurs "KEYWORDS" si nécessaire.
'ODT_STYLES_FILE'
Le back-end d'exportation ODT utilise par défaut le fichier org-odt-
styles. Voir Section 13.12.5 [Appliquer des styles personnalisés], page
180 pour plus de détails.
SUBTITLE' (SOUS-TITRES)
Le sous-titre du document.
#+ATTR_ODT : :scale
0.5 [[./img.png]]
Mettre à l'échelle l'image à une largeur spécifique
Pour intégrer "img.png" avec une largeur de 10 cm tout en conservant le
rapport hauteur/largeur d'origine, procédez comme suit :
#+ATTR_ODT : :width
10 [[./img.png]]
Mettre à l'échelle l'image à une hauteur spécifique
Pour intégrer "img.png" avec une hauteur de 10 cm tout en conservant le
rapport hauteur/largeur d'origine, procédez comme suit :
#+ATTR_ODT : :height
10 [[./img.png]]
(setq org-latex-to-mathml-convert-command
"latexmlmath \"%i\" --presentationmathml=%o")
Pour vérifier rapidement la fiabilité du convertisseur LATEX-MathML, utilisez
les commandes suivantes :
M-x org-export-as-odf
Convertit un extrait mathématique LATEX en un fichier
OpenDocument formula ('.odf').
M-x org-export-as-odf-and-open
Convertir un extrait mathématique LATEX en un fichier de
formule OpenDocument ('.odf') et ouvrir le fichier de formule
avec l'application enregistrée dans le système.
Images PNG
Ajouter cette ligne au fichier Org. Cette option est activée pour chaque fichier.
#+OPTIONS : tex:dvipng
#+OPTIONS : tex:dvisvgm
ou
#+OPTIONS : tex:imagemagick
Avec cette option, les fragments LATEX sont transformés en images PNG ou
SVG et les images résultantes sont incorporées dans le document exporté.
Cette méthode nécessite les programmes dvipng, dvisvgm ou ImageMagick.
(setq org-odt-category-map-alist
'((" Figure " "Illustration" "valeur" "Figure" org-odt--enumerable-image-p)))
Avec la modification ci-dessus, l'exemple précédent devient :
Illustration 2 : Courbe de Bell
((use-first-row-styles . t)
(use-first-column-styles . t)))
("TableWithFirstRowandLastRow" "Custom"
((use-first-row-styles . t)
(use-last-row-styles . t))))))
#+ATTR_ODT : :style TableWithHeaderRowAndColumn
| Nom, prénom, téléphone, âge, etc.
| Peter | 1234 | 17 |
| Anna | 4321 | 25 |
L'exemple ci-dessus utilise le modèle "Custom" et installe deux styles de tableau
"TableWithHeaderRowAndColumn" et "TableWithFirstRowandLastRow". Important : les
styles OpenDocument nécessaires pour produire le modèle ci-dessus ont été prédéfinis.
Ils sont disponibles dans la section intitulée "Custom Table Template" dans
"OrgOdtContentTemplate.xml" (voir [Factory styles], page 186). Pour ajouter de
nouveaux modèles, définissez de nouveaux styles à cet endroit.
Pour utiliser cette fonction, procédez comme suit :
1. Créer un modèle de tableau18 .
Un modèle de tableau est un ensemble de styles de "cellule de tableau" et de
"paragraphe" pour chacune des catégories de cellules de tableau suivantes :
• Corps
• Première colonne
• Dernière colonne
• Première ligne
• Dernière ligne
• Rangée paire
• Rangée impaire
• Colonne paire
• Colonne impaire
Les noms des styles ci-dessus doivent être choisis en fonction du nom du modèle de
tableau, selon une convention bien définie.
La convention d'appellation est mieux illustrée par un exemple. Pour un modèle de
tableau portant le nom "Personnalisé", les noms de style nécessaires sont
énumérés dans le tableau suivant.
13.14.7 Indices
Le back-end d'exportation Texinfo reconnaît ces mots-clés d'indexation s'ils sont utilisés
dans le fichier Org : 'CINDEX', 'FINDEX', 'KINDEX', 'PINDEX', 'TINDEX' et 'VINDEX'. Écrivez
leur valeur sous forme de code Texinfo textuel ; en particulier, les caractères '{', '}' et '@'
doivent être échappés par '@' s'ils n'appartiennent pas à une commande Texinfo.
#+CINDEX : Définition des entrées d'indexation
Chapitre 13 : 318
L'exportation
Pour que le back-end génère une entrée d'index pour un titre, définissez la propriété
'INDEX' sur 'cp' ou 'vr'. Ces abréviations proviennent de Texinfo et signifient "concept
index" et "variable index". Le manuel Texinfo contient des abréviations pour tous les
autres types d'index. Le back-end exporte le titre sous la forme d'une commande de
chapitre ou de section non numérotée, puis insère l'index après son contenu.
* Index des concepts
:PROPRIÉTÉS :
:INDEX : cp
:FIN :
#+TEXINFO : @need800
Ce paragraphe est précédé par...
#+BEGIN_EXPORT texinfo
@auindex Johnson, Mark
@auindex Lakoff,
George
#+END_EXPORT
#+END_QUOTE
#+TEXINFO_FILENAME : sample.info
Chapitre 13 : 323
L'exportation
#+TEXINFO_HEADER : @syncodeindex pg cp
* Copie
:PROPRIÉTÉS :
:COPYING : t
:FIN :
#+BEGIN_QUOTE
Il est permis de copier, distribuer et/ou modifier ce document
selon les termes de la licence de documentation libre GNU, version
1.3 ou toute version ultérieure publiée par la Free Software
Foundation ; sans sections invariantes, sans textes de couverture
et sans textes de quatrième de couverture. Une copie de la licence
est incluse dans la section intitulée "Licence de documentation
libre GNU".
#+END_QUOTE
* Invocation de
l'échantillon
#+PINDEX :
échantillon
#+CINDEX : invocation de @command{sample}
* Index
Chapitre 13 : 325
L'exportation
:PROPRIÉTÉS :
:INDEX : cp
:FIN :
La propriété "TIMEZONE" peut être utilisée pour spécifier un fuseau horaire par entrée
et s'applique à toute entrée contenant des informations d'horodatage. Les fuseaux
horaires doivent être spécifiés conformément au format de la base de données des
fuseaux horaires de l'IANA, par exemple "Asia/Almaty". La valeur de la propriété peut
également être "UTC", afin d'imposer le temps UTC pour cette entrée uniquement.
La propriété "CLASS" peut être utilisée pour spécifier une classe de visibilité par
entrée ou des restrictions d'accès, et s'applique à toute entrée comportant des
informations de classe. La norme iCalendar définit trois classes de visibilité :
PUBLIC" L'entrée est visible par le public (par défaut).
CONFIDENTIEL
Seul un groupe limité de clients a accès à l'événement.
PRIVATE' L'entrée ne peut être récupérée que par son propriétaire.
Le serveur doit traiter les propriétés de classe inconnue de la même manière que "PRIVATE".
L'exportation au format iCalendar dépend en grande partie des capacités de
l'application de destination. Certaines sont plus souples que d'autres. Consultez la FAQ
du mode Org pour obtenir des conseils sur des applications spécifiques.
Filtres
Les filtres sont des listes de fonctions à appliquer à certaines parties d'un back-end
donné. La sortie de la première fonction du filtre est transmise à la fonction suivante du
filtre. La sortie finale est la sortie de la dernière fonction du filtre.
Le processus d'exportation d'Org comporte de nombreux ensembles de filtres
applicables à différents types d'objets, de texte brut, d'arbres d'analyse, d'options
d'exportation et de formats de sortie finaux. Les filtres sont nommés d'après le type
d'élément ou d'objet : org-export-filter-TYPE-functions, où TYPE est le type ciblé
par le filtre. Les types valides sont les suivants :
corps audacieux babel-call
bloc central horloge code
journal-sexp tiroir bloc
dynamique
entité exemple de bloc bloc
d'exportation
export-snippet sortie finale largeur fixe
définition des notes de référence de la note de titre
bas de page bas de page
règle horizontale inline-babel-call inline-src-block
tâche en ligne italique article
mot-clé latex-environnement fragment de
latex
saut de ligne lien propriété de
nœud
options paragraphe parse-tree
liste simple texte clair planification
tiroir de propriété bloc de citations cible radio
section bloc spécial bloc src
cookie-statistiques traversée indice
exposant table tableau-cellule
table-row cible horodatage
souligner verbatim bloc de vers
Voici un exemple de filtre qui remplace les espaces insécables ~ ~ dans le tampon
Org par '~' pour le back-end LATEX.
(defun my-latex-filter-nobreaks (text backend info)
"S'assurer que les \N \N \N \N sont correctement
traités dans l'exportation LaTeX." (when (org-export-
derived-backend-p backend 'latex)
(replace-regexp-in-string " " "~" text)))
(add-to-list 'org-export-filter-plain-text-functions
'my-latex-filter-nobreaks)
Un filtre nécessite trois arguments : le code à transformer, le nom du back-end et
quelques informations facultatives sur le processus d'exportation. Le troisième argument
peut être ignoré sans risque. Notez l'utilisation du prédicat org-export-derived-
backend-p qui teste le back-end latex ou tout autre back-end, tel que beamer, dérivé de
latex.
14 Édition
Org comprend un système de gestion de la publication qui vous permet de configurer la
conversion HTML automatique des projets composés de fichiers Org interconnectés.
Vous pouvez également configurer Org pour qu'il télécharge automatiquement vos
pages HTML exportées et les pièces jointes associées, telles que les images et les
fichiers de code source, vers un serveur web.
Vous pouvez également utiliser Org pour convertir des fichiers en PDF, ou même
combiner la conversion HTML et PDF afin que les fichiers soient disponibles dans les
deux formats sur le serveur.
L'édition a été réalisée avec la contribution de David O'Toole à Org.
14.1 Configuration
La publication nécessite une configuration importante pour spécifier les fichiers, la
destination et de nombreuses autres propriétés d'un projet.
:completion-function
Fonction ou liste de fonctions appelées à la fin du processus de publication,
par exemple pour modifier les permissions des fichiers résultants. Chaque
fonction d'achèvement est appelée avec un seul argument, la liste des
propriétés du projet.
Propriétés génériques
:arbres-archivés org-export-avec-arbres-archivés
:exclude-tags org-export-exclude-tags
:headline-levels org-export-headline-levels
:langue org-export-default-language
:preserve-breaks org-export-preserve-breaks
:numéros de section org-export-avec-numéros-de-sections
:select-tags org-export-select-tags
:avec-auteur org-export-avec-auteur
:avec-liens-cassés org-export-avec-liens-cassés
:avec horloges org-export-avec-horloges
:avec-créateur org-export-avec-créateur
:avec-date org-export-with-date
:avec-tiroirs org-export-avec-tiroirs
:avec-email org-export-with-email
:avec emphase org-export-avec-emphase
:avec-largeur-fixe org-export-avec-largeur-fixe
:avec-notes org-export-with-footnotes
:avec-latex org-export-avec-latex
:avec planification org-exportation-avec-planification
:avec-priorité org-export-avec-priorité
:avec propriétés org-export-avec-propriétés
:avec-chaînes-spéciales org-export-avec-chaînes-spéciales
:avec-sous-titre org-export-with-sub-superscripts
:avec tableaux org-export-with-tables
:with-tags org-export-with-tags
:avec tâches org-export-avec-tâches
:avec horodatage org-export-with-timestamps
:avec-titre org-export-with-title
:avec-toc org-export-with-toc
:avec-mots-clefs org-export-avec-mots-clefs
:ascii-format-drawer-function org-ascii-format-fonction-tiroir
:ascii-format-inlinetask-function org-ascii-format-inlinetask-function
:ascii-espacement des titres org-ascii-espacement des titres
:ascii-indented-line-width org-ascii-largeur de ligne indentée
:ascii-inlinetask-width org-ascii-inlinetask-width
:ascii-inner-margin org-ascii-inner-margin
:ascii-links-to-notes org-ascii-links-to-notes
:ascii-list-margin org-ascii-list-margin
:ascii-espacement de paragraphe org-ascii-espacement de paragraphe
:ascii-quote-margin org-ascii-quote-margin
:ascii-table-keep-all-vertical-lines org-ascii-table-keep-all-vertical-lines
:ascii-table-use-ascii-art org-ascii-table-use-ascii-art
:ascii-table-widen-columns org-ascii-table-widen-columns
:ascii-text-width org-ascii-text-width
:ascii-underline org-ascii-underline
:ascii-verbatim-format org-ascii-verbatim-format
:html-infojs-options org-html-infojs-options
:html-infojs-template org-html-infojs-template
:html-inline-image-rules org-html-inline-image-rules
:html-inline-images org-html-inline-images
:html-link-home org-html-link-home
:html-link-org-files-as-html org-html-link-org-files-as-html
:html-link-up org-html-link-up
:html-link-use-abs-url org-html-link-use-abs-url
:html-mathjax-options org-html-mathjax-options
:html-mathjax-template org-html-mathjax-template
:html-equation-reference-format org-html-equation-reference-format
:html-metadata-timestamp-format org-html-metadata-timestamp-format
:html-postamble-format org-html-postamble-format
:html-postamble org-html-postamble
:html-preamble-format org-html-preamble-format
:html-preamble org-html-preamble
:html-auto-lien-titres org-html-auto-lien-titres
:html-table-align-individual-field org-html-table-align-individual-fields
:html-table-attributes org-html-table-default-attributes
:html-table-caption-above org-html-table-caption-above
:html-table-data-tags org-html-table-data-tags
:html-table-header-tags org-html-table-header-tags
:html-table-row-tags org-html-table-row-tags
:html-table-use-header-tags-for-first-column org-html-table-use-header-tags-for-first-colu
:html-tag-class-prefix org-html-tag-class-prefix
:html-text-markup-alist org-html-text-markup-alist
:html-todo-kwd-class-prefix org-html-todo-kwd-class-prefix
:html-toplevel-hlevel org-html-toplevel-hlevel
:html-use-infojs org-html-use-infojs
Lien de validation :html org-html-validation-link
:html-viewport org-html-viewport
:html-wrap-src-lines org-html-wrap-src-lines
:html-xml-declaration org-html-xml-declaration
Propriétés spécifiques de L A T E X
:latex-active-timestamp-format org-latex-active-timestamp-format
:latex-caption-above org-latex-caption-above
:latex-classes org-latex-classes
:latex-class org-latex-default-class
:latex-compiler org-latex-compiler
:latex-default-figure-position org-latex-default-figure-position
:latex-default-table-environment org-latex-default-table-environment
:latex-default-table-mode org-latex-default-table-mode
:latex-diary-timestamp-format org-latex-diary-timestamp-format
:latex-engraved-options org-latex-engraved-options
:latex-engraved-preamble org-latex-engraved-preamble
Chapitre 14 : 340
Publication
:latex-engraved-theme org-latex-engraved-theme
:latex-footnote-defined-format org-latex-footnote-defined-format
:latex-footnote-separator org-latex-séparateur de notes de bas de page
:latex-format-drawer-function org-latex-format-drawer-function
:latex-format-headline-function org-latex-format-headline-function
:latex-format-inlinetask-function org-latex-format-inlinetask-function
:latex-hyperref-template org-latex-hyperref-template
:latex-image-default-height org-latex-image-hauteur par défaut
:latex-image-default-option org-latex-image-default-option
:latex-image-default-width org-latex-image-default-width
:latex-images-centrées org-latex-images-centrées
:latex-inactive-timestamp-format org-latex-inactive-timestamp-format
:latex-inline-image-rules org-latex-inline-image-rules
:latex-lien-avec-format-de-chemin-inconnu org-latex-link-with-unknown-path-format
:latex-listings-langs org-latex-listings-langs
:latex-listings-options org-latex-listings-options
:latex-minted-langs org-latex-minted-langs
:latex-minted-options org-latex-minted-options
:latex-prefer-user-labels org-latex-prefer-user-labels
:latex-subtitle-format org-latex-subtitle-format
:latex-subtitle-separate org-latex-sous-titre-séparé
:latex-src-block-backend org-latex-src-block-backend
:latex-table-scientific-notation org-latex-table-scientific-notation
:latex-tables-booktabs org-latex-tables-booktabs
:latex-tables-centered org-latex-tables-centrées
:latex-text-markup-alist org-latex-text-markup-alist
:latex-title-command org-latex-title-command
:latex-toc-command org-latex-toc-command
:odt-table-styles org-odt-table-styles
:odt-use-date-fields org-odt-use-date-fields
:auto-sitemap
Si non nul, publier un sitemap pendant org-publish-current-project ou
org-publish-all.
:sitemap-filename
Nom de fichier pour la sortie du plan du site. La valeur par défaut est
"sitemap.org", qui devient "sitemap.html".
:sitemap-title
Titre de la page du plan du site. Le nom du fichier est utilisé par défaut.
:sitemap-format-entry
Cette option permet d'indiquer comment une entrée du plan du site est
formatée dans le plan du site. Il s'agit d'une fonction appelée avec trois
arguments : le nom du fichier ou du répertoire relatif au répertoire de base
du projet, le style du plan du site et le projet en cours. Elle doit renvoyer une
chaîne de caractères. La valeur par défaut transforme les noms de fichiers
en liens et utilise les titres des documents comme descriptions. Pour des
besoins de formatage spécifiques, on peut utiliser org-publish-find-date,
org-publish-find-title et org-publish-find- property, pour récupérer
des informations supplémentaires sur les documents publiés.
:sitemap-function
Fonction du plug-in à utiliser pour la génération du plan du site. Elle est
appelée avec deux arguments : le titre du plan du site et une représentation
des fichiers et des répertoires impliqués dans le projet sous la forme d'une
liste imbriquée, qui peut être transformée à l'aide de org-list-to-generic,
org-list-to-subtree et d'autres méthodes similaires. La valeur par défaut
génère une liste simple de liens vers tous les fichiers du projet.
:sitemap-tri-dossiers
L'endroit où les dossiers doivent apparaître dans le plan du site. Définissez
ce paramètre sur premier (par défaut) ou dernier pour afficher les
dossiers en premier ou en dernier, respectivement. Si la valeur est "ignore",
les dossiers sont totalement ignorés. Toute autre valeur mélange les fichiers
et les dossiers. Cette variable n'a aucun effet lorsque le style du plan du site
est arbre.
:sitemap-tri-fichiers
Comment les fichiers sont triés dans le plan du site. Il est possible de choisir
l'ordre alphabétique (par défaut), l'ordre chronologique ou l'ordre anti-
chronologique. L'ordre chronologique trie les fichiers les plus anciens en
premier, tandis que l'ordre anti-chronologique trie les fichiers les plus
récents en premier. L'ordre alphabétique trie les fichiers dans l'ordre
alphabétique. La date d'un fichier est récupérée avec org-publish-find-
date.
:sitemap-ignore-case
Le tri doit-il être sensible à la casse ? La valeur par défaut est nulle.
:sitemap-file-entry-format
Cette option permet d'indiquer comment l'entrée d'un sitemap est formatée
dans le sitemap. Il s'agit d'une chaîne de format avec quelques séquences
Chapitre 14 : 343
Publication d'échappement : %t représente le titre du fichier, %a représente l'auteur du
fichier et %d représente la date du fichier. La date est récupérée avec la
fonction org-publish-find-date et formatée avec org-publish-sitemap-
date-format. Valeur par défaut %t.
Chapitre 14 : 344
Publication
:sitemap-date-format
Chaîne de format pour la fonction format-time-string qui indique
comment la date d'une entrée du sitemap doit être formatée. Cette propriété
contourne la fonction org-publish-sitemap- date-format qui prend par
défaut la valeur %Y-%m-%d.
("images"
:base-directory "~/images/"
:base-extension "jpg\\|gif\\Npng"
:publishing-directory "/ssh:user@host:~/html/images/"
:publishing-function org-publish-attachment)
Chapitre 14 : 347
Publication
("autres"
:base-directory "~/other/"
:base-extension "css\\|el"
:publishing-directory "/ssh:user@host:~/html/other/"
:publishing-function org-publish-attachment)
("website" :components ("orgfiles" "images" "other"))))
15.1 Citations
Avant d'ajouter des citations, il faut d'abord définir une ou plusieurs bibliographies, soit
globalement avec org-cite- global-bibliography, soit localement en utilisant un ou
plusieurs mots-clés "bibliography".
#+bibliographie : SomeFile.bib
#+bibliographie :
/quelqu'un/autre/fichier.json
#+bibliographie : "/quelque/fichier/avec des espaces dans son nom.bib"
Il est ensuite possible d'insérer et d'éditer des citations en utilisant org-cite-insert, appelé avec C-c C-
x @.
Une citation nécessite une ou plusieurs clés de citation, éléments permettant
d'identifier une référence dans la bibliographie.
• Chaque citation est entourée de crochets et utilise le type "cite".
• Chaque touche commence par le caractère "@".
• Chaque clé peut être qualifiée par un préfixe (par exemple "voir") et/ou un suffixe (par
exemple "p. 123"), donnant des informations utiles ou nécessaires à la
compréhension de la citation mais non incluses dans la référence.
• Une même citation peut citer plus d'une référence ; les clés sont séparées par des points-virgules.
; le formatage de ces groupes de citations est spécifié par le style.
• Il est également possible de spécifier une variation stylistique pour les citations en
insérant un "/" et un nom de style entre le mot-clé "cite" et les deux points ; cela n'a
généralement de sens que pour les styles de l'année de l'auteur.
[cite/style:préfixe commun ;préfixe @key suffixe ; ... ; suffixe commun]
Les seuls éléments obligatoires sont les suivants :
• Le mot-clé "citation" et les deux points.
• Le caractère '@' précédant immédiatement chaque touche.
• Les parenthèses entourant la (les) citation(s) (groupe).
Chapitre 15 : Traitement des 349
citations
'<articles d'en-tête>'
Facultatif. Les arguments d'en-tête contrôlent de nombreux aspects de
l'évaluation, de l'exportation et de l'enchevêtrement des blocs de code (voir
Section 16.3 [Utilisation des arguments d'en-tête], page 219). En utilisant les
propriétés d'Org, les arguments d'en-tête peuvent être appliqués
sélectivement à l'ensemble du tampon ou à des sous-arbres spécifiques du
document Org.
'<body>' Code source dans le dialecte de l'identificateur de langue spécifié.
Chaque langue peut avoir des arguments d'en-tête par défaut distincts en
personnalisant la variable org-babel-default-header-args:<LANG>, où <LANG> est le
nom de la langue. Pour plus de détails, voir la documentation en ligne spécifique à chaque
langue à l'adresse https://orgmode.org/worg/ org-contrib/babel/.
Arguments d'en-tête dans les propriétés du mode Org
Pour les arguments d'en-tête applicables à la mémoire tampon, utilisez le mot-clé
"PROPERTY" n'importe où dans le fichier Org (voir la section 7.1 [Syntaxe des propriétés],
page 67).
L'exemple suivant fait en sorte que tous les blocs de code R soient exécutés dans la
même session. La valeur "silent" attribuée à ':results' ignore les résultats des
exécutions de tous les blocs, et pas seulement des blocs de code R ; aucun résultat
n'est inséré pour aucun bloc.
#+PROPERTY : header-
args:R :session *R* #+PROPERTY : header-
args :results silent
Les arguments d'en-tête définis par les tiroirs de propriétés d'Org (voir Section 7.1
[Syntaxe des propriétés], page 67) s'appliquent au niveau de la sous-arborescence.
Comme ces tiroirs de propriétés peuvent apparaître n'importe où dans la hiérarchie des
fichiers, Org utilise l'appel ou le bloc source le plus externe pour résoudre les valeurs. Org
ignore le paramètre org-use-property-inheritance.
Dans cet exemple, la valeur par défaut de ':cache' est "yes" pour tous les blocs de code du sous-arbre.
* exemple d'en-tête
:PROPRIÉTÉS :
:header-args: :cache yes
:FIN :
Les propriétés définies par la fonction org-set-property, liée à C-c C-x p,
s'appliquent à toutes les langues actives. Elles remplacent les propriétés définies dans
org-babel-default-header-args.
Les arguments d'en-tête spécifiques à une langue sont également lus à partir des
propriétés "header-args:<LANG>", où <LANG> est l'identifiant de la langue. Par exemple,
la propriété 'header-args:<LANG>' est l'identifiant de la langue,
* En-tête
:PROPRIÉTÉS :
:header-args:clojure : :session *clojure-1*
:header-args:R: :session *R*
:FIN :
** Sous-titre
:PROPRIÉTÉS :
:header-args:clojure : :session *clojure-2*
:FIN :
forcerait des sessions séparées pour les blocs Clojure dans 'Heading' et 'Subheading',
mais utiliserait la même session pour tous les blocs R. Les blocs de "Subheading"
héritent des paramètres de "Heading".
Arguments d'en-tête spécifiques au bloc de code
Les arguments d'en-tête sont le plus souvent définis au niveau du bloc de code source,
sur la ligne '#+BEGIN_SRC'. Les arguments définis à ce niveau sont prioritaires sur ceux
définis dans la variable org-babel-default-header-args, ainsi que sur ceux définis
Chapitre 16 : Travailler avec le code 359
source
en tant que propriétés d'en-tête.
Dans l'exemple suivant, la valeur "silent" attribuée à ':results" permet
d'ignorer les résultats de l'exécution du code. Le réglage de ':exports' sur 'code'
n'exporte que le corps du bloc de code vers HTML ou LATEX.
Chapitre 16 : Travailler avec le code 360
source
#+NAME : factorielle
#+BEGIN_SRC haskell :results silent :exports code :var
n=0 fac 0 = 1
fac n = n * fac (n-1)
#+END_SRC
Les mêmes arguments d'en-tête dans un bloc de code en ligne :
src_haskell[:exports both]{fac 5}
Les arguments d'en-tête de bloc de code peuvent s'étendre sur plusieurs lignes en
utilisant '#+HEADER:' sur chaque ligne. Notez qu'Org accepte actuellement l'orthographe
plurielle de '#+HEADER:' uniquement pour des raisons de compatibilité ascendante. Il
est possible qu'elle soit supprimée à un moment donné.
Arguments d'en-tête multilignes sur un bloc de code sans nom :
#+HEADER : :var data1=1
#+BEGIN_SRC emacs-lisp :var data2=2
(message "data1:%S, data2:%S" data1 data2)
#+END_SRC
#+RESULTS :
: data1:1, data2:2
Arguments d'en-tête sur plusieurs lignes dans un bloc de code nommé :
#+NAME : named-block
#+HEADER : :var
data=2 #+BEGIN_SRC
emacs-lisp
(message "data:%S"
data) #+END_SRC
#+NAME : table-length
#+BEGIN_SRC emacs-lisp :var table=example-table
(length table)
#+END_SRC
#+RESULTS : table-length
: 4
Lorsque vous transmettez un tableau, vous pouvez traiter spécialement la
ligne ou la colonne contenant les étiquettes des colonnes ou des lignes du
tableau.
L'argument d'en-tête 'colnames' accepte les valeurs 'yes', 'no' ou 'nil'. La
valeur de défaut est 'nil' : si un tableau d'entrée a des noms de colonnes -
parce que la deuxième ligne est une règle horizontale - alors Org enlève les
noms de colonnes, traite le tableau, remet les noms de colonnes, et écrit
ensuite le tableau dans le bloc de résultats. En utilisant 'yes', Org fait la
même chose pour la première ligne, même si le tableau initial ne contient
pas de règle horizontale. Avec 'no', Org ne traite pas du tout les noms de
colonnes.
#+NAME : less-cols
| a |
|---|
| b |
| c |
Chapitre 16 : Travailler avec le code 362
source
#+RESULTS :
| a |
|----|
| b* |
| c* |
De même, l'argument d'en-tête "rownames" peut prendre deux valeurs : 'yes'
ou 'no'. Lorsque la valeur est 'yes', Org enlève la première colonne, traite le
tableau, remet la première colonne, puis écrit le tableau dans le bloc de
résultats. La valeur par défaut est 'no', ce qui signifie qu'Org ne traite pas la
première colonne. Notez que les blocs de code Emacs Lisp ignorent
l'argument d'en-tête 'rownames' en raison de la facilité de traitement des
tableaux dans Emacs.
#+NAME : avec les noms de famille
| un | 1 | 2 | 3 | 4 | 5 |
| deux | 6 | 7 | 8 | 9 | 10 |
#+RESULTS :
| un | 11 | 12 | 13 | 14 | 15 |
| deux | 16 | 17 | 18 | 19 | 20 |
Pour faire référence à une table dans un autre fichier, joignez le nom du fichier et le
nom de la table par deux points, par exemple : ':var table=autre-
fichier.org:exemple-table'.
#+RESULTS :
| simple | liste |
Notez que seuls les éléments de la liste de premier niveau sont transmis.
Les éléments de liste imbriqués sont ignorés.
Chapitre 16 : Travailler avec le code 363
source
#+RESULTS :
: 8
#+RESULTS : double
: 16
#+NAME : carré
#+BEGIN_SRC emacs-lisp :var input=double(input=1)
(* input input)
#+END_SRC
#+RESULTS : squared
: 4
#+NAME : read-literal-example
#+BEGIN_SRC emacs-lisp :var x=literal-example[]
(concaténer #'string x " for you.")
#+END_SRC
#+RESULTS : read-literal-example
: Un exemple concret
: sur deux lignes pour vous.
Chapitre 16 : Travailler avec le code 364
source
L'indexation des valeurs variables permet de faire référence à des parties d'une
variable. Les index sont basés sur 0, les valeurs négatives comptant à rebours à partir de
la fin. Si un index est séparé par des virgules, chaque section suivante est indexée
comme la dimension suivante. Notez que cette indexation intervient avant l'application
d'autres arguments d'en-tête liés au tableau, tels que "hlines", "colnames" et
"rownames". L'exemple suivant affecte la dernière cellule de la première ligne du tableau
"exemple-table" à la variable "data" :
#+NAME : exemple de tableau
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
#+RESULTS :
: a
Deux entiers séparés par deux points font référence à une plage de valeurs
variables. Dans ce cas, c'est l'ensemble de la plage incluse qui est référencée. Par
exemple, l'exemple suivant attribue les trois lignes du milieu de "tableau-exemple" à
"données".
#+NAME : exemple de tableau
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
| 5 | 3 |
#+RESULTS :
| 2 | b |
| 3 | c |
| 4 | d |
Pour sélectionner l'ensemble de la plage, utilisez un index vide ou le caractère
unique "*". Le caractère '0:-1' fait la même chose. L'exemple ci-dessous montre
comment faire référence à la première colonne uniquement.
#+NAME : exemple de tableau
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
#+END_SRC
#+RESULTS :
| 1 | 2 | 3 | 4 |
Le référencement par index peut être utilisé pour les tableaux et les blocs de code. La
référence à un index peut prendre en charge un nombre illimité de dimensions. Les
virgules délimitent les dimensions multiples, comme indiqué ci-dessous.
#+NAME : 3D
#+BEGIN_SRC emacs-lisp
'(((1 2 3) (4 5 6) (7 8 9))
((10 11 12) (13 14 15) (16 17 18))
((19 20 21) (22 23 24) (25 26 27)))
#+END_SRC
#+RESULTS :
| 11 | 14 | 17 |
Notez que les noms de lignes et de colonnes ne sont pas supprimés avant
l'indexation des variables. Vous devez les prendre en compte, même si les arguments
d'en-tête 'colnames' ou 'rownames' les suppriment.
Le code Emacs Lisp peut également définir les valeurs des variables. Pour
différencier une valeur du code Lisp, Org interprète toute valeur commençant par '(', '[',
''' ou '`' comme du code Lisp Emacs. Le résultat de l'évaluation de ce code est alors
assigné à la valeur de cette variable. L'exemple suivant montre comment interroger et
transmettre de manière fiable le nom de fichier du tampon du mode Org à un bloc de
code en utilisant des en-têtes. Nous avons besoin de fiabilité ici parce que le nom du
fichier pourrait changer une fois que le code dans le bloc commence à s'exécuter.
#+BEGIN_SRC sh :var nom-de-fichier=(nom-de-fichier-tampon)
:exports both wc -w $nom-de-fichier
#+END_SRC
Notez que les valeurs lues dans les tableaux et les listes ne sont pas évaluées par
erreur comme du code Emacs Lisp, comme le montre l'exemple suivant.
#+NAME : table
(a b c) | (a b c) | (a b c) | (a b c) | (a b c)
#+HEADER : :var
data=table[0,0] #+BEGIN_SRC
perl
$data
#+END_SRC
#+RESULTS :
: (a b c)
Chapitre 16 : Travailler avec le code 366
source
[[file:/scp:dand@yakuba.princeton.edu:/home/dand/plot.png][plot.png]]
Lorsque 'dir' est utilisé avec 'session', Org définit le répertoire de départ pour une nouvelle session.
Mais Org ne modifie pas le répertoire d'une session déjà existante.
N'utilisez pas 'dir' avec ':exports results' ou avec ':exports both' pour éviter
qu'Org n'insère des liens incorrects vers des fichiers distants. En effet, Org n'étend pas le
répertoire par défaut afin d'éviter certains problèmes de portabilité sous-jacents.
Si l'argument d'en-tête 'eval' n'est pas défini, alors Org détermine s'il faut évaluer le
code source à partir de la variable org-confirm-babel-evaluate (voir Section 17.13
[Sécurité de l'évaluation du code], page 255).
#+RESULTS[a2a72cd647ad44515fab62e144796432793d68e1]: random
0.4659510825295
#+NAME : appelant
#+BEGIN_SRC emacs-lisp :var x=random :cache
yes x
Chapitre 16 : Travailler avec le code 371
source#+END_SRC
Chapitre 16 : Travailler avec le code 372
source
#+RESULTS[bec9c8724e397d5df3b696502df3ed7892fc4f5f]: caller
0.254227238707244
Collection
Les options de collecte précisent les résultats. Choisissez l'une des options ; elles sont
mutuellement exclusives.
'value' Valeur par défaut pour la plupart des bibliothèques Babel3 . Mode fonctionnel.
Org obtient la valeur en enveloppant le code dans une définition de fonction
dans le langage du bloc source. C'est pourquoi, lorsqu'on utilise ':results
value', le code doit s'exécuter comme une fonction et renvoyer une valeur.
Pour les langages comme Python, une déclaration de retour explicite est
obligatoire lors de l'utilisation de ':valeur des résultats'. Le résultat est
la valeur renvoyée par la dernière instruction du bloc de code.
Lors de l'évaluation du bloc de code dans une session (voir Section 16.4
[Environnement d'un bloc de code], page 221), Org transmet le code à un
interpréteur fonctionnant comme un processus inférieur interactif d'Emacs.
Org obtient la valeur de la sortie de la dernière déclaration de l'interpréteur
du code source. Org doit utiliser des méthodes spécifiques au langage pour
obtenir la valeur. Par exemple, à partir de la variable _ en Ruby, et de la
valeur de .Last.value en R.
'output' Mode de script. Org transmet le code à un processus externe qui exécute
l'inter- preur. Org renvoie le contenu du flux de sortie standard sous forme
de résultats textuels. Lors de l'utilisation d'une session, Org transmet le code
à l'interpréteur s'exécutant en tant que session.
processus inférieur interactif d'Emacs. Org concatène toute sortie de texte provenant de la
commande
et renvoie la collection comme résultat.
Type
Type indique les types de résultats à attendre de l'exécution du bloc de code. Choisissez
l'une des options ; elles s'excluent mutuellement.
Le comportement par défaut consiste à déterminer automatiquement le type de
résultat. La détection du type de résultat dépend du langage du bloc de code, comme
Chapitre 16 : Travailler avec le code 373
sourcedans la documentation des différents langages. Voir Section 16.9 [Langages], page
décrit
239.
3
En fait, les constructions 'call_<name>()' et 'src_<lang>{}' ne sont pas évaluées lorsqu'elles
apparaissent dans un mot-clé (voir Section 17.8 [Paramètres dans la mémoire tampon], page 251).
Chapitre 16 : Travailler avec le code 374
source
table
'vector' Interpréter les résultats comme un tableau Org. Si le résultat est une valeur
unique, créez un tableau avec une ligne et une colonne. Exemple
d'utilisation : ':results value table'. Entre chaque ligne du tableau ou sous
les titres du tableau, les résultats ont parfois
les lignes horizontales, également appelées "hlines". L'argument "hlines",
avec la valeur par défaut "no", supprime ces lignes de la table d'entrée. Pour
la plupart des codes, c'est souhaitable, sinon ces symboles "hline"
provoquent des erreurs de variables non liées. La valeur "yes" accepte ces
lignes, comme le montre l'exemple suivant.
#+NOM : many-cols
| a | b | c |
|---+---+---|
| d | e | f |
|---+---+---|
| g | h | i |
#+NAME : no-hline
#+BEGIN_SRC python :var tab=many-cols :hlines no
return tab
#+END_SRC
#+RESULTS : no-hline
| a | b | c |
| d | e | f |
| g | h | i |
#+NAME : hlines
#+BEGIN_SRC python :var tab=many-cols :hlines yes
return tab
#+END_SRC
#+RESULTATS : hlines
| a | b | c |
|---+---+---|
| d | e | f |
|---+---+---|
| g | h | i |
'list' Interpréter les résultats comme une liste Org. Si le résultat est une valeur unique,
créer une liste d'un seul élément.
scalaire
"
"verbati Interpréter littéralement et insérer comme texte cité. Ne pas créer de tableau.
m Exemple d'utilisation : ':results value verbatim'.
'file' Interpréter comme un nom de fichier. Enregistrez les résultats de l'exécution du
bloc de code dans ce fichier, puis insérez un lien vers celui-ci. Vous pouvez
contrôler à la fois le nom du fichier et la description associée au lien.
Chapitre 16 : Travailler avec le code 375
source
Format
Le format concerne le type de résultat renvoyé par le bloc de code. Choisissez l'une des
options ; elles s'excluent mutuellement. La valeur par défaut découle du type spécifié ci-
dessus.
'code' Résultat inclus dans un bloc de code. Utile pour l'analyse syntaxique. Exemple
d'utilisation : ':results value code'.
'drawer' Résultat enveloppé dans un tiroir 'RESULTS'. Utile pour contenir des résultats
"bruts" ou "org" en vue d'un script ultérieur et d'un traitement automatisé.
Exemple d'utilisation : ':results value drawer'.
'html' Résultats inclus dans un bloc 'BEGIN_EXPORT html'. Exemple d'utilisation :
':results value html'.
'latex' Résultats inclus dans un bloc 'BEGIN_EXPORT latex'. Exemple d'utilisation :
':results value latex'.
Chapitre 16 : Travailler avec le code 376
source
lien"
"graphiqu
e Lorsqu'il est utilisé avec le type 'file', le résultat est un lien vers le fichier
spécifié dans l'argument d'en-tête ':file'. Cependant, contrairement au type
"file", la sortie du bloc de code n'est pas écrite sur le disque. Le bloc est
censé générer le fichier uniquement par ses effets secondaires, comme
dans l'exemple suivant :
#+begin_src shell :results file link :file "org-mode-unicorn.svg"
wget -c "https://orgmode.org/resources/img/org-mode-unicorn.svg"
#+end_src
#+RESULTS :
[[file:org-mode-unicorn.svg]]
'org' Résultats inclus dans un bloc 'BEGIN_SRC org'. Pour l'échappement de la
virgule, il faut soit utiliser la touche TAB dans le bloc, soit exporter le
fichier. Exemple d'utilisation : ':results value org'.
Résultat 'pp' converti en code source 'pretty-print'. Encadré dans un bloc
de code. Langages supportés : Emacs Lisp, Python et Ruby. Exemple
d'utilisation : ':results value pp'.
'raw' Interprété comme un mode Org brut. Inséré directement dans la mémoire
tampon. Aligné s'il s'agit d'un tableau. Exemple d'utilisation : ':results
value raw'.
L'argument d'en-tête 'wrap' marque inconditionnellement le bloc de résultats en
ajoutant des chaînes à '#+BEGIN_' et '#+END_'. Si aucune chaîne de caractères n'est
spécifiée, Org regroupe les résultats dans un bloc '#+BEGIN_results' . . .
#+END_results'. Ce bloc a la priorité sur la valeur "results" mentionnée ci-dessus.
Par exemple,
#+BEGIN_SRC emacs-lisp :results html :wrap EXPORT markdown
"<blink>Bienvenue dans les années 90</blink>"
#+END_SRC
#+RESULTS :
#+BEGIN_EXPORT markdown
<blink>Bienvenue dans les années 90</blink>
#+END_EXPORT
Manipulation
Options de traitement après la collecte des résultats. Choisissez l'une des options ; elles
s'excluent mutuellement.
'replace' Défaut. Insère les résultats dans le tampon Org. Supprime les résultats
précédents. Exemple d'utilisation : ':results output replace'.
'silencieux' Ne pas insérer les résultats dans le tampon du mode Org, mais les répercuter dans le
minibuffer.
Exemple d'utilisation : ':results output silent'.
'none' Calcule les résultats, mais n'en fait rien. Pas d'insertion dans le tampon du mode
Chapitre 16 : Travailler avec le code 377
source
Org ni d'écho dans le minibuffer. Les résultats peuvent toujours être utilisés
lorsqu'ils sont référencés à partir d'un autre bloc de code. Exemple
d'utilisation : ':results none'.
Chapitre 16 : Travailler avec le code 378
source
'discard' Ignorer complètement les résultats. Cette option est similaire à "none", mais
aucun traitement n'est effectué sur la valeur de retour. L'appel du bloc de
code par programme (voir [Comment évaluer le code source], page 228) ou
par référence (voir [Passer des arguments], page 221 et Section 16.11
[Syntaxe de référence Noweb], page 241) produira toujours un résultat nul.
append' Ajoute les résultats au tampon Org. Les derniers résultats sont en bas. Ne
supprime pas les résultats précédents. Exemple d'utilisation : ':results
output append'.
'prepend' Ajouter les résultats au tampon Org. Les résultats les plus récents sont placés
en tête de liste. Ne supprime pas les résultats précédents. Exemple
d'utilisation : ':results output prepend'.
Post-traitement
L'argument d'en-tête 'post' sert à post-traiter les résultats de l'évaluation du bloc. Quand
'post' a une valeur quelconque, Org lie les résultats à *cette* variable pour faciliter le
passage aux spécifications de l'argument d'en-tête 'var' (voir Section 16.4 [Environnement
d'un bloc de code], page 221). Cela rend les résultats disponibles pour d'autres blocs de
code, ou même pour l'exécution directe de code Emacs Lisp.
Les deux exemples suivants illustrent l'argument d'en-tête "post" en action. Le
premier montre comment attacher un mot-clé 'ATTR_LATEX' en utilisant 'post'.
#+NAME : attr_wrap
#+BEGIN_SRC sh :var data="" :var width="\Ntextwidth" :results output
echo "#+ATTR_LATEX : :width $width"
echo "$data"
#+END_SRC
#+RESULTS :
RESULTATS :
#+ATTR_LATEX :largeur
5cm
[[file:/tmp/it.png]]
:FIN :
Le deuxième exemple montre l'utilisation de l'argument d'en-tête "colnames" dans
"post" pour transmettre des données entre les blocs de code.
#+NAME : round-tbl
#+BEGIN_SRC emacs-lisp :var tbl="" fmt="%.3f"
(mapcar (lambda (row)
(mapcar (lambda (cell)
(si (nombrep cellule)
Chapitre 16 : Travailler avec le code 379
source
#+RESULTS :
|foo |
|------------|
| 1.371 |
#+END_SRC
no' La valeur par défaut. Ne pas extraire le code dans un fichier de code source.
Exemple : ':tangle no'.
NOM DE FICHIER
Exporter le bloc de code dans un fichier source dont le nom de fichier est
dérivé de toute chaîne passée à l'argument d'en-tête 'tangle'. Org dérive le
nom du fichier comme étant relatif au répertoire de l'emplacement du fichier
Org. Exemple : ':tangle FILENAME'.
L'argument d'en-tête 'mkdirp' crée des répertoires parents pour les fichiers
enchevêtrés si le répertoire n'existe pas. La valeur "yes" active la création de
répertoires, tandis que la valeur "no" l'inhibe.
L'argument d'en-tête "comments" permet d'insérer des commentaires dans les fichiers
enchevêtrés. Ces commentaires s'ajoutent à ceux qui existent déjà dans le bloc de
code.
no' La valeur par défaut. N'insère pas de commentaires supplémentaires pendant
l'enchevêtrement.
Enrouler le bloc de code dans les commentaires. Inclure des liens pointant
vers l'endroit du fichier Org à partir duquel le code a été enchevêtré.
'yes' Conservé pour des raisons de compatibilité ascendante ; identique à 'link'.
'org'Le texte du titre le plus proche du fichier Org est inséré en tant que
commentaire. Le texte exact qui est inséré est choisi dans le contexte
principal du bloc source.
'both' Inclut les options 'link' et 'org'.
'noweb' Inclut l'option 'link', développe les références noweb (voir Section 16.11
[Syntaxe de référence noweb], page 241), et les insère dans des
commentaires de lien à l'intérieur du corps du bloc de code.
L'argument d'en-tête "padline" contrôle l'insertion de nouvelles lignes pour remplir le
code source dans le fichier enchevêtré.
'yes' Défaut. Insérer une nouvelle ligne avant et après chaque bloc de code
dans le fichier enchevêtré. 'no' Ne pas insérer de nouvelles lignes pour remplir les
blocs de code enchevêtrés.
L'argument d'en-tête 'shebang' peut transformer les résultats en fichiers de script
exécutables. En lui donnant la valeur d'une chaîne de caractères - par exemple,
':shebang "#!/bin/bash"'- Org insère cette chaîne de caractères comme première
ligne du fichier enchevêtré dans lequel le bloc de code est extrait. Org active ensuite
l'autorisation d'exécution du fichier enchevêtré.
L'argument d'en-tête 'tangle-mode' spécifie les permissions à définir pour les fichiers
enchevêtrés par set-file-modes. Les permissions sont données par une valeur octale, qui
peut être fournie en appelant la fonction identity sur une valeur octale elisp. Par
exemple, pour créer un fichier en lecture seule, on peut utiliser ':tangle-mode (identity
#o444)'. Pour réduire la verbosité nécessaire, un raccourci octal est défini, 'oXXX' ('o' pour
octal). En utilisant cette abréviation, notre exemple en lecture seule est ':tangle-mode
o444'. L'omission du préfixe 'o' entraîne l'interprétation de l'argument comme un entier,
ce qui peut conduire à des résultats inattendus ('444' est la même chose que 'o674').
Deux autres raccourcis sont reconnus : les chaînes de style ls comme "rw-r--r--", et
les permissions de style chmod comme "g+w". Notez que les permissions de style chmod
Chapitre 16 : Travailler avec le code 383
source
sont basées sur org-babel-tangle-default-file-mode, qui est '#o544' par défaut.
Lorsque ':tangle-mode' et ':shebang' sont tous deux spécifiés, le paramètre
':tangle-mode' a priorité sur les autorisations de ':shebang'. Lorsque plusieurs blocs de
code source s'enchevêtrent dans un seul fichier avec des arguments d'en-tête ':tangle-
mode' contradictoires, le comportement d'Org est indéfini.
Chapitre 16 : Travailler avec le code 384
source
Par défaut, Org développe les blocs de code lors de l'enchevêtrement. L'argument
d'en-tête 'no-expand' désactive ces expansions. Notez qu'un effet de bord de
l'expansion par org-babel-expand- src-block assigne aussi des valeurs (voir Section
16.4 [Environnement d'un bloc de code], page 221) aux variables. Les expansions
remplacent aussi les références noweb par leurs cibles (voir Section 16.11 [Syntaxe des
références noweb], page 241). Certaines de ces expansions peuvent entraîner une
affectation prématurée, d'où cette option. Cette option ne fait une différence que pour
l'enchevêtrement. Elle n'a aucun effet lors de l'exportation puisque les blocs de code à
exécuter doivent être étendus de toute façon.
Fonctions
org-babel-tangle
Enchevêtrer le fichier en cours. Lié à C-c C-v t.
Avec l'argument du préfixe, seul le bloc de code en cours est enchevêtré.
org-babel-tangle-file
Choisissez un fichier à enchevêtrer. Lié à C-c C-v f.
Crochets d'enchevêtrement
org-babel-pre-tangle-hook
Ce crochet est exécuté avant le début du processus d'enchevêtrement. Le
tampon actif est le tampon à emmêler.
org-babel-tangle-corps-crochet
Ce crochet est exécuté à partir d'un tampon temporaire contenant le code
étendu de chaque bloc de code enchevêtré. Le crochet peut modifier le code
développé si nécessaire. Le contenu du tampon actuel sera utilisé pour
l'expansion réelle du bloc de code.
org-babel-post-tangle-hook
Ce crochet est exécuté à partir des fichiers de code enchevêtrés par org-
babel-tangle, ce qui le rend adapté au post-traitement, à la compilation et à
l'évaluation du code dans les fichiers enchevêtrés.
org-babel-tangle-finished-hook
Ce crochet est exécuté après les crochets post-tangle, dans le tampon d'origine.
Sauter entre le code et Org
Les débogueurs renvoient normalement les erreurs et les messages au code source. Mais
pour les fichiers enchevêtrés, nous voulons renvoyer au fichier Org, et non au fichier
source enchevêtré. Pour faire ce saut supplémentaire, Org utilise la fonction org-babel-
tangle-jump-to-org avec deux arguments supplémentaires d'en-tête de bloc de code
source :
1. Régler 'padline' sur true - c'est le réglage par défaut.
2. Définissez 'comments' à 'link', ce qui permet à Org d'insérer des liens vers le fichier Org.
16.9 Langues
Les blocs de code sont pris en charge dans des dizaines de langues. Voir le site web de
Worg pour la documentation spécifique à chaque langue.
Par défaut, seul Emacs Lisp est activé pour l'évaluation. Pour activer ou désactiver
d'autres langues, il faut personnaliser la variable org-babel-load-languages, soit par
l'interface de configuration d'Emacs, soit en ajoutant du code au fichier init, comme
Chapitre 16 : Travailler avec le code 385
source ci-dessous.
indiqué
Chapitre 16 : Travailler avec le code 386
source
Dans cet exemple, l'évaluation est désactivée pour Emacs Lisp et activée pour R.
(org-babel-do-load-languages
'org-babel-load-languages
'((emacs-lisp . nil)
(R . t)))
Notez que ce n'est pas la seule façon d'activer une langue. Org active également les
langages lorsqu'ils sont chargés avec l'instruction require. Par exemple, l'exemple
suivant active l'exécution des blocs de code Clojure :
(require 'ob-clojure)
(require 'color)
(set-face-attribute 'org-block nil :background
(couleur-nom sombre
(face-attribute 'default :background) 3))
4
Pour plus de détails sur la programmation de noweb literate, voir https://www.cs.tufts.edu/~nr/noweb/.
Chapitre 16 : Travailler avec le code 389
source
#+NAME :
initialisation
#+BEGIN_SRC emacs-lisp
(setq sentence "Jamais un pied de trop,
même") #+END_SRC
** dépouiller la ligne
d'en-tête #+BEGIN_SRC sh
|sed '1d'
\N-END_SRC
<<NOM(arguments facultatifs)>>
Notez que dans ce cas, un nom de bloc de code défini par le mot-clé "NAME" est
nécessaire ; la référence définie par "noweb-ref" ne fonctionnera pas lorsque
l'évaluation est souhaitée.
Voici un exemple qui montre comment le contenu exporté change lorsque les
références de style noweb sont utilisées avec des parenthèses ou sans. Étant donné.. :
#+NAME : some-code
#+BEGIN_SRC python :var num=0 :résultats output :exports none
print(num*10)
#+END_SRC
ce bloc de code :
#+BEGIN_SRC text :noweb yes
<<some-code>>
#+END_SRC
s'étend à :
print(num*10)
Ci-dessous, une référence de style noweb similaire est utilisée, mais avec des
parenthèses, tout en fixant une variable "num" à 10 :
#+BEGIN_SRC text :noweb yes
<<some-code(num=10)>>
#+END_SRC
Notez que l'expansion contient maintenant les résultats du bloc de code "some-code", et
non le bloc de code lui-même :
100
Les insertions noweb respectent les caractères de préfixe qui apparaissent avant la
référence syntaxique noweb. Ce comportement est illustré dans l'exemple suivant. Comme
la référence noweb '<<exemple>>' apparaît derrière la syntaxe de commentaire SQL,
chaque ligne de la référence noweb développée est commentée. Avec :
#+NAME : exemple
#+BEGIN_SRC text
this is the
corps de l'exemple sur
plusieurs lignes #+END_SRC
ce bloc de code :
#+BEGIN_SRC sql :noweb yes
---<<exemple>>
#+END_SRC
s'étend à :
#+BEGIN_SRC sql :noweb yes
---il s'agit de la
---corps de l'exemple sur
plusieurs lignes #+END_SRC
Comme ce changement n'affecte pas le texte de remplacement de noweb qui ne
comporte pas de nouvelles lignes, les références noweb en ligne sont acceptables.
Chapitre 16 : Travailler avec le code 391
source
Cette fonctionnalité peut également être utilisée pour gérer l'indentation dans les extraits de code
exportés.
Avec :
#+NAME : if-true
#+BEGIN_SRC python :exports none
print('do things when true')
#+end_src
#+nom : if-false
#+begin_src python :exports none
print('do things when false')
#+end_src
ce bloc de code :
#+begin_src python :noweb yes :results output
if true :
<<si vrai>>
else :
<<if-false>>
#+end_src
s'étend à :
s'il est vrai :
print('faire des choses quand
c'est vrai') else :
print('faire des choses quand c'est faux')
Ce comportement de préfixe peut être désactivé dans un bloc en définissant
l'argument d'en-tête 'noweb-prefix' à 'no', comme dans l'exemple suivant :
#+BEGIN_SRC elisp :noweb-prefix no
(setq example-data "<<example>>")
#+END_SRC
qui s'étend jusqu'à :
(setq exemple-données "c'est
le corps de l'exemple en
plusieurs lignes")
En cas de doute sur le résultat de l'expansion d'un bloc de code source, vous pouvez
prévisualiser les résultats à l'aide de la commande suivante :
C-c C-v v ou C-c C-v C-v (org-babel-expand-src-block)
Développe le bloc de code source actuel en fonction de ses arguments d'en-
tête et ouvre les résultats dans un tampon de prévisualisation.
#!/bin/sh
# Enchevêtrer les fichiers
avec le mode Org #
emacs -Q --batch --eval
" (progn
(require 'ob-tangle)
(dolist (file command-line-args-left)
(with-current-buffer (find-file-noselect file)
(org-babel-tangle))))
" "$@"
Chapitre 17 : Divers 394
17 Divers
17.1 Achèvement
Org dispose de complétions dans la mémoire tampon. Contrairement aux complétions
du minibuffer, qui sont utiles pour les interactions de commandes rapides, les
complétions dans le tampon d'Org conviennent mieux à la création de contenu dans les
documents Org. Tapez une ou plusieurs lettres et invoquez le raccourci clavier pour
compléter le texte sur place. Selon le contexte et les touches, Org propose différents
types de complétions. Il n'y a pas de mini-tampon. Ces touches de raccourci spécifiques
à un mode sont devenues partie intégrante d'Emacs et Org fournit plusieurs raccourcis.
M-TAB
Mot complet au point.
• Au début d'un titre vide, complétez les mots-clés TODO.
• Après "\", compléter les symboles TEX pris en charge par l'exportateur.
• Après ':' dans un titre, balises complètes. Org déduit la liste des balises
de l'option 'TAGS' dans le tampon (voir Section 6.2 [Définition des
balises], page 61), de la variable org-tag-alist, ou de toutes les
balises utilisées dans le tampon actuel.
• Après ':' et en dehors d'un titre, les clés de propriétés complètes. La
liste des clés est construite dynamiquement à partir de toutes les clés
utilisées dans le tampon actuel.
• Après "[[", compléter les abréviations des liens (voir section 4.7
[Abréviations des liens], page 45).
• Après '[[*'', les titres complets dans la mémoire tampon actuelle afin
qu'ils puissent être utilisés dans des liens de recherche tels que :
'[[*trouver ce titre]]]
• Après '#+', complétez les mots-clés spéciaux tels que 'TYP_TODO' ou les
'OPTIONS' spécifiques au fichier. Une fois le mot-clé option complété,
une nouvelle pression sur M-TAB permet d'insérer des exemples de
paramètres pour ce mot-clé.
• Après le mot-clé 'STARTUP', compléter les éléments de démarrage.
• Lorsque le point est ailleurs, complétez les mots du dictionnaire à l'aide d'Ispell.
Par défaut, les touches rapides sont désactivées dans Org. Pour activer les touches
de vitesse, il faut donner à la variable org-use-speed-commands une valeur non nulle.
Pour déclencher une touche de vitesse, le point doit se trouver au début d'un titre d'Org,
avant les étoiles.
Org est livré avec une liste prédéfinie de touches rapides. Pour ajouter ou modifier des
touches rapides, personnalisez l'option org-speed-commands. Pour plus de détails, voir la
docstring de la variable. Lorsque les Speed Keys sont activés, M-x org-speed-command-
help, ou ? lorsque le point est au début d'un titre Org, affiche les Speed Keys
actuellement actifs, y compris ceux définis par l'utilisateur.
Org peut y parvenir de deux manières, (1) en affichant simplement le tampon de cette
manière sans le modifier, ou (2) en indentant chaque ligne de la quantité souhaitée avec
des espaces durs et en masquant les étoiles de tête.
Chapitre 17 : Divers 398
• Si le point se trouve sur une ligne de propriété ou au début ou à la fin d'un tiroir de
propriété, proposer des commandes de propriété.
• Si le point est un renvoi à une note de bas de page, il faut aller à la définition correspondante, et vice
versa.
• Si le point se trouve sur un cookie statistique, mettez-le à jour.
• Si le point se trouve dans un élément de liste simple avec une case à cocher, bascule l'état de la case
à cocher.
• Si le point se trouve sur un élément numéroté d'une liste simple, renuméroter la liste ordonnée.
• Si le point se trouve sur la ligne '#+BEGIN' d'un bloc dynamique, le bloc est mis à jour.
• Si le point est situé sur un horodatage, fixer le nom du jour dans l'horodatage.
'#+SETUPFILE : fichier'
Le fichier de configuration ou un URL pointant vers ce fichier est destiné à
des réglages supplémentaires dans la mémoire tampon. Org charge ce
fichier et l'analyse pour y trouver des paramètres uniquement lorsque Org
ouvre le fichier principal. Si l'URL est spécifié, le contenu est téléchargé et
stocké dans un fichier cache temporaire. C-c C-c sur la ligne des paramètres
analyse et charge le fichier, et réinitialise également le cache temporaire.
Org analyse et charge également le document au cours du processus
normal d'exportation. Org analyse le contenu de ce document comme s'il
était inclus dans le tampon. Il peut s'agir d'un autre fichier Org. Pour visiter le
fichier - et non une URL - utilisez C-c ' lorsque le point se trouve sur la ligne
contenant le nom du fichier.
'#+STARTUP:'
Options de démarrage utilisées par Org lors de la première visite d'un fichier.
La première série d'options concerne la visibilité initiale de l'arbre des
contours. La variable correspondante pour les paramètres globaux par défaut
est org-startup-folded avec une valeur par défaut de showeverything.
Aperçu Titres de premier niveau uniquement.
Contenu Tous les titres.
'showall' Pas de pliage sur aucune
entrée. 'show2levels' Niveaux de titres 1-2.
'show3levels' Niveaux de titres 1-3.
'show4levels' Niveaux de titres 1-4.
'show5levels' Niveaux de titres 1-5.
'showeverything' (tout montrer) Affiche
même le contenu des tiroirs.
L'indentation virtuelle dynamique est contrôlée par la variable org-startup-
indented5 .
'indent' Commence avec le mode Org Indent
activé. 'noindent' Commence avec le mode
Org Indent désactivé.
La numération virtuelle dynamique des titres est contrôlée par la variable
org-startup-numerated.
'num' Démarrer avec le mode Org num
activé. 'nonum' Démarrer avec le mode Org
num désactivé.
Aligne les tableaux de manière cohérente lors de la visite d'un fichier. La variable
correspondante est
org-startup-align-all-tables avec nil comme valeur par défaut.
'aligner' Aligne tous les tableaux.
noalign' Ne pas aligner les tableaux au démarrage.
Réduire les colonnes d'un tableau avec un cookie de largeur. La variable correspondante
est
org-startup-shrink-all-tables avec nil comme valeur par défaut.
Lors de la visite d'un fichier, les images en ligne peuvent être
automatiquement affichées. La variable correspondante est org-startup-
with-inline-images, avec une valeur par défaut nulle pour éviter les
retards lors de la visite d'un fichier.
Chapitre 17 : Divers 405
'inlineimages' Affiche les images en ligne.
noinlineimages' Ne pas afficher les images en ligne au
démarrage.
5
Notez que le mode Org Indent définit également la propriété wrap-prefix, de sorte que le mode Visual
Line (ou le simple fait de définir word-wrap) permet de mettre correctement en retrait les longues
lignes, y compris les titres.
Chapitre 17 : Divers 406
Par exemple, voici comment exécuter les blocs de code ditaa sans être invité à le faire :
(defun my-org-confirm-babel-evaluate (lang body)
(not (string= lang "ditaa"))) ;ne pas demander
ditaa
(setq org-confirm-babel-evaluate #'my-org-confirm-babel-evaluate)
Suivre les liens 'shell' et 'elisp
Org possède deux types de liens qui peuvent évaluer directement le code
(voir section 4.4 [Liens externes], page 40). Comme ce code n'est pas
visible, ces liens présentent un risque potentiel. Org invite donc l'utilisateur
lorsqu'il rencontre de tels liens. Les variables de personnalisation sont les
suivantes :
Oui, ces clés sont malheureusement plus difficiles à retenir. Si vous voulez
avoir d'autres clés de remplacement, regardez la variable org-disputed-
keys.
ecomplete.el" par Lars Magne Ingebrigtsen
Ecomplete fournit une complétion d'adresse "électrique" dans les lignes
d'en-tête des messages. Malheureusement, le mode Orgtbl coupe
l'alimentation d'Ecomplete : aucune com- plétion ne se produit lorsque le
mode Orgtbl est activé dans les tampons de messages pendant la saisie de
texte dans les lignes d'en-tête d'adresse. Si l'on veut utiliser ecomplete, il ne
faut pas suivre le conseil d'activer automatiquement le mode Orgtbl dans les
tampons de messages (voir Section 3.4 [Mode Orgtbl], page 22), mais plutôt
- après avoir rempli les en-têtes de messages - activer manuellement le
mode Orgtbl lorsque c'est nécessaire dans le corps du message.
filladapt.el" par Kyle Jones
Le mode Org tente de faire ce qu'il faut pour remplir les paragraphes, les
éléments de liste et d'autres éléments. De nombreux utilisateurs ont signalé
des problèmes lors de l'utilisation de 'filladapt.el' et du mode Org, c'est
pourquoi il est prudent de désactiver filladapt comme ceci :
(add-hook 'org-mode-hook 'turn-off-filladapt-mode)
viper.el" par Michael Kifer
Viper utilise C-c / et donc cette clé n'accède pas à la commande
correspondante du mode Org org-sparse-tree. Vous devez trouver une
autre clé pour cette commande, ou remplacer la clé dans viper-vi-global-
user-map avec
(define-key viper-vi-global-user-map "C-c /" 'org-sparse-tree)
windmove.el" par Hovav Shacham
Ce paquet utilise également les touches S-<cursor>, donc tout ce qui est
écrit dans le paragraphe ci-dessus à propos du mode CUA s'applique
également ici. Si vous voulez activer la fonction windmove dans les endroits
où le mode Org n'a pas de fonctionnalité spéciale sur S-<cursor>, ajoutez ceci
à votre configuration :
; ; Faire fonctionner windmove en mode Org :
(add-hook 'org-shiftup-final-hook 'windmove-up)
(add-hook 'org-shiftleft-final-hook 'windmove-
left) (add-hook 'org-shiftdown-final-hook
'windmove-down)
(add-hook 'org-shiftright-final-hook 'windmove-right)
'yasnippet.el'
La façon dont le mode Org lie la touche TAB (en la liant à [tab] au lieu de
"\t") écrase l'accès de YASnippet à cette touche. Le code suivant corrige ce
problème :
(add-hook 'org-mode-hook
(lambda ()
(setq-local yas/trigger-key [tab])
(define-key yas/keymap [tab] 'yas/next-field-or-maybe-expand)))
La dernière version de YASnippet ne fonctionne pas bien avec le mode Org.
Si le code ci-dessus ne résout pas le conflit, commencez par définir la
fonction suivante :
Chapitre 17 : Divers 417
(defun yas/org-very-safe-expand ()
(let ((yas/fallback-behavior 'return-nil)) (yas/expand)))
Indiquez ensuite au mode Org d'utiliser cette fonction :
(add-hook 'org-mode-hook
Chapitre 17 : Divers 418
(lambda ()
(make-variable-buffer-local 'yas/trigger-key)
(setq yas/trigger-key [tab])
(add-to-list 'org-tab-first-hook 'yas/org-very-safe-
expand) (define-key yas/keymap [tab] 'yas/next-field)))
%: linkL'URL
%:descriptionTitre de la page web
%: annotationEquivalent à [[%:link][%:description]]]
Le texte sélectionné
Étant donné que "exemple.com/$" est utilisé comme expression régulière, il associe "http://example.com/",
"https://example.com", "http://www.example.com/" et autres expressions similaires à
"/home/user/example/index.php".
Les règles :rewrites sont utilisées en dernier recours si et seulement si aucun nom
de fichier existant ne correspond.
Deux fonctions peuvent vous aider à remplir org-protocol-project-alist avec un
contenu valide : org-protocol-create et org-protocol-create-for-org. Cette
dernière est utile si vous éditez un fichier Org qui fait partie d'un projet de publication.
Enfin, Org écrit le fichier "index.org", qui contient des liens vers d'autres fichiers.
L'application mobile lit d'abord ce fichier à partir du serveur afin de déterminer les autres
fichiers à télécharger pour les agendas. Pour des téléchargements plus rapides, il est
prévu de ne lire que les fichiers dont les sommes de contrôle10 ont été modifiées.
10
Les sommes de contrôle sont stockées automatiquement dans le fichier "checksums.dat".
11
Le fichier sera vide après cette opération.
Annexe A : Piratage 428
Annexe A Piratage
Cette annexe décrit quelques moyens par lesquels un utilisateur peut étendre les fonctionnalités d'Org.
A.1 Crochets
Org dispose d'un grand nombre de variables d'accroche permettant d'ajouter des
fonctionnalités. Cette annexe illustre l'utilisation de quelques-unes d'entre elles. Une liste
complète des crochets avec leur documentation est maintenue par le projet Worg à
l'adresse https://orgmode.org/worg/doc.html#hooks.
(org-link-set-parameters "man"
:follow #'org-man-open
:export #'org-man-export
:store #'org-man-store-link)
(defun org-man-store-link ()
"Stocker un lien vers une
page de manuel".
(when (memq major-mode '(Man-mode woman-mode))
; ; Il s'agit d'une page de manuel, nous
Annexe A : Piratage 429
faisons ce lien. (let* ((page (org-man-get-
page-name))
Annexe A : Piratage 430
(defun org-man-get-page-name ()
"Extraire le nom de la page du nom de la mémoire tampon".
; ; Cela fonctionne à la fois pour le mode "homme"
et le mode "femme". (if (string-match " \\N(\N-
+\N)\N*" (nom-tampon))
(match-string 1 (nom-tampon))
(error "Cannot create link to this man page")))
(fournir ol-man)
;; ; ol-man.el se termine ici
Pour activer les liens vers les pages de manuel dans Org, entrez ceci dans le fichier Emacs init :
(nécessite 'ol-man)
Un examen de "ol-man.el" :
':skip N' Sauter les N premières lignes du tableau.Les lignes H comptent ; incluez-les
si elles doivent être ignorées.
':skipcols (n1 n2 ...)'
Liste des colonnes à ignorer. First Org écarte automatiquement les colonnes
comportant des marques de calcul et envoie ensuite le tableau à la fonction
de traduction, qui saute alors les colonnes comme spécifié dans 'skipcols'.
Pour que le tableau source reste intact dans la mémoire tampon sans être perturbé
lors de la compilation du fichier source ou d'une autre opération, utilisez l'une des
stratégies suivantes :
• Placez le tableau dans un commentaire de bloc. Par exemple, en mode C, vous
pouvez placer le tableau entre les lignes '/*' et '*/'.
• Placez le tableau après une déclaration de "fin". Par exemple, \ebye en TEX et \eend{document}
en LATEX.
• Commentez et dé-commentez chaque ligne du tableau pendant les modifications.
La commande M-x orgtbl- toggle-comment facilite cette opération.
| Fév | 21 | 16 | 0.8 |
| mars | 22 | 278 | 12.6 |
#+TBLFM : $4=$3/$2;%.1f
% $ (dollar supplémentaire facultatif pour satisfaire Font Lock, voir note de bas de
page)
\n-{comment}
Après l'édition, C-c C-c insère le tableau traduit à l'emplacement cible, entre les
deux lignes de repère.
Pour les tableaux personnalisés faits à la main, notez que le traducteur doit sauter les
deux premières lignes du tableau source. La commande doit également couper le
tableau cible sans l'en-tête et le pied de page.
\begin{tabular}{lrrr}
Mois & \multicolumn{1}{c}{Days} & Nr. \N vendu & par jour\N
% BEGIN RECEIVE ORGTBL salesfigures
% END RECEIVE ORGTBL salesfigures
\N-END{tabular}
%
\begin{comment}
#+ORGTBL : SEND salesfigures orgtbl-to-latex :splice t :skip 2
| Nombre d'unités vendues par jour
|-------+------+---------+------------------|
| Jan | 23 | 55 | 2.4 |
| Fév | 21 | 16 | 0.8 |
| Mars | 22 | 278 | 12.6 |
#+TBLFM : $4=$3/$2;%.1f
\n-{comment}
La fonction de traduction LATEX orgtbl-to-latex fait déjà partie du mode Orgtbl et
utilise un environnement 'tabular' pour saisir le tableau et marque les lignes
horizontales avec \hline. Pour des paramètres supplémentaires permettant de contrôler
la sortie, voir la section A. 5.3 [Fonctions du traducteur], page 270 :
':splice BOOLEAN'
Lorsque {{var(BOOLEAN}} n'est pas nulle, ne renvoie que les lignes du corps
du tableau, c'est-à-dire qu'elles ne sont pas enveloppées dans
l'environnement "tabular". La valeur par défaut est nil.
':fmt FMT' Chaîne de format pour déformer chaque champ. Elle doit contenir '%s' pour la
valeur originale du champ. Par exemple, pour envelopper chaque valeur de
champ dans le symbole du dollar, vous pouvez utiliser ':fmt "$%s$"'. Le
format peut également envelopper une liste de propriétés avec des numéros
de colonnes et des formats, par exemple ':fmt (2 "$%s$" 4 "%s\%%")'. Au
lieu d'une chaîne de caractères, une fonction à un argument peut être
utilisée ; la fonction doit renvoyer une chaîne de caractères formatée.
':efmt EFMT
Formatage des nombres sous forme d'exponentielles. La spécification doit
comporter deux fois '%s' pour insérer la mantisse et l'exposant, par exemple
'"%s\times10^{%s}". Il peut également s'agir d'une liste de propriétés avec
des numéros de colonnes et des formats, par exemple ':efmt (2
"$%s\times10^{%s}$" 4 "$%s\cdot10^{%s}$")". Une fois que EFMT a été
appliqué à une valeur, FMT - voir ci-dessus - est également appliqué. Les
fonctions à deux ar- guments peuvent être fournies à la place des chaînes
de caractères. Par défaut, aucun formatage spécial n'est appliqué.
Annexe A : Piratage 436
((org-agenda-skip-function '(org-agenda-skip-subtree-if
'regexp ":waiting :"))
(org-agenda-overriding-header "Projets en attente de quelque chose : "))))
agenda-avec-archives
Tous les fichiers de l'agenda avec les fichiers d'archives qui leur sont associés.
liste des noms de fichiers
S'il s'agit d'une liste, tous les fichiers de la liste sont analysés.
Les autres arguments sont traités comme des paramètres pour les fonctions de
saut du scanner. Les arguments valides sont les suivants :
archive Ignorer les arbres avec la balise
'ARCHIVE'. comment Sauter les arbres contenant le
mot-clé COMMENT. fonction ou forme Lisp
Utilisé comme valeur pour org-agenda-skip-function, de sorte que chaque fois que la
fonction
retourne t, FUNC est appelé pour cette entrée et la recherche se
poursuit à partir du point où la fonction l'a quittée.
La routine de mappage peut appeler n'importe quelle fonction arbitraire, même les
fonctions qui modifient les métadonnées ou interrogent l'API des propriétés (voir la
section A.10 [Utilisation de l'API des propriétés], page 275). Voici quelques fonctions
pratiques :
B.1 De Carsten
Org est né en 2003, d'une frustration liée à l'interface utilisateur du mode Outline
d'Emacs. J'essayais d'organiser mes notes et mes projets, et l'utilisation d'Emacs
semblait être la solution naturelle. Cependant, devoir se souvenir de onze commandes
différentes, avec deux ou trois touches par commande, uniquement pour cacher et
afficher des parties de l'arborescence, me paraissait tout à fait inacceptable. De plus,
lorsque j'utilisais les contours pour prendre des notes, je voulais constamment
restructurer l'arbre, en l'organisant parallèlement à mes pensées et à mes plans. Le
cycle de visibilité et l'édition de la structure ont été implémentés à l'origine dans le
paquetage "outline-magic.el", mais ont été rapidement déplacés vers le paquetage
plus général "org.el". Cet environnement étant devenu confortable pour la planification
de projets, l'étape suivante a consisté à ajouter les entrées TODO, les horodatages de
base et la prise en charge des tableaux. Ces éléments ont mis en évidence les deux
principaux objectifs qu'Org poursuit encore aujourd'hui : être un nouveau mode de
texte brut basé sur les contours, avec des fonctions d'édition innovantes et intuitives, et
intégrer des fonctionnalités de planification de projet directement dans un fichier de
notes.
Depuis la première version, des milliers de courriels qui m'ont été adressés ou qui ont
été envoyés à la liste de diffusion ont fourni un flux constant de rapports de bogues, de
commentaires, de nouvelles idées, et parfois de correctifs et de codes complémentaires.
Un grand merci à tous ceux qui ont contribué à l'amélioration de ce paquet. J'essaie de
conserver ici une liste des personnes qui ont eu une influence significative sur
l'élaboration d'un ou plusieurs aspects d'Org. Cette liste n'est peut-être pas complète, et
si j'ai oublié quelqu'un, je vous prie de m'en excuser et de me le faire savoir.
Avant d'aborder cette liste, quelques mentions spéciales s'imposent :
Bastien Guerry
Bastien a écrit un grand nombre d'extensions pour Org (la plupart d'entre
elles sont maintenant intégrées au noyau), y compris l'exportateur LATEX et
l'analyseur de listes simples. Son soutien durant les premiers jours a été
essentiel à la réussite de ce projet. Bastien a également inventé Worg, a
aidé à établir la présence d'Org sur le Web et a financé les coûts
d'hébergement du site orgmode.org. Bastien a pris le relais en tant que
mainteneur d'Org entre 2011 et 2013, à un moment où j'avais
désespérément besoin d'une pause.
Eric Schulte et Dan Davison
Eric et Dan sont conjointement responsables du système Babel d'Org, qui
transforme Org en un environnement multilingue permettant d'évaluer le
code, de faire de la programmation lettrée et de la recherche reproductible.
Ce système est devenu l'une des fonctions phares d'Org, qui définit ce
qu'est Org aujourd'hui.
John Wiegley
John a contribué à un certain nombre de grandes idées et de correctifs
directement dans Org, y compris le système d'attachement ('org-
attach.el'), l'intégration avec Apple Mail ('org-mac-message.el'), les
dépendances hiérarchiques des éléments TODO, le suivi des habitudes
('org-habits.el'), et le cryptage ('org-crypt.el'). De plus, le système de
captures est en fait une copie étendue de son excellent "remember.el".
Annexe B : Historique et remerciements 451
Sebastian Rose
Sans Sebastian, la publication HTML/XHTML d'Org serait le travail pitoyable
d'un amateur ignorant. Sebastian a poussé cette partie d'Org sur un
Annexe B : Historique et remerciements 452
B.2 De Bastien
C'est moi (Bastien) qui ai assuré la maintenance d'Org entre 2011 et 2013. Cette
annexe ne serait pas complète sans l'ajout de quelques autres reconnaissances et
remerciements.
Je suis tout d'abord reconnaissant à Carsten pour la confiance qu'il m'a témoignée en
me confiant la maintenance d'Org. Son soutien sans faille est ce qui m'a vraiment aidé à
devenir plus confiant au fil du temps, à la fois avec la communauté et avec le code.
Lorsque j'ai pris en charge la maintenance, je savais que je devrais rendre Org plus
collaboratif que jamais, car je devrais m'appuyer sur des personnes plus compétentes
que moi sur de nombreuses parties du code. Voici une liste des personnes sur
lesquelles je pouvais compter, elles devraient vraiment être considérées comme des co-
mainteneurs, soit du code, soit de la communauté :
Eric Schulte
Eric maintient les parties Babel d'Org. Sa réactivité m'a permis de ne pas me
préoccuper d'éventuels bugs ici et de me concentrer sur d'autres parties.
Nicolas Goaziou
Nicolas maintient la cohérence des parties les plus profondes d'Org. Son
travail sur 'org-element.el' et 'ox.el' a été remarquable et a ouvert la voie
à de nombreuses nouvelles idées et fonctionnalités. Il a réécrit de nombreux
anciens exportateurs pour utiliser le nouveau moteur d'exportation, et a aidé
à documenter ce changement majeur. Plus important encore (si c'est
possible), il a été plus que fiable pendant tout le travail effectué pour Org
8.0, et toujours très réactif sur la liste de diffusion.
Achim Gratz
Achim a réécrit le processus de construction d'Org, transformant quelques
outils ad hoc en un processus flexible et conceptuellement propre. Il a
patiemment fait face aux nombreux problèmes qu'un tel changement peut
créer pour les utilisateurs.
Nick Dokos
La liste de diffusion Org mode ne serait pas aussi agréable sans Nick, qui a
patiemment aidé les utilisateurs à de nombreuses reprises. Il est impossible
de surestimer une telle aide, et la liste ne serait pas aussi active sans lui.
J'ai reçu le soutien de tant d'utilisateurs qu'il est impossible d'être juste en en
sélectionnant quelques-uns, mais l'histoire d'Org ne serait pas complète si les
utilisateurs ci-dessus n'étaient pas mentionnés dans ce manuel.
• Frank Ruell a résolu le mystère du bug 'keymapp nil', un conflit avec 'allout.el'.
• Jason Riedy a généralisé le mécanisme d'envoi et de réception des tables Orgtbl en y
apportant des correctifs importants.
• Philip Rooke a créé la carte de référence Org, a fourni de nombreux commentaires, a
développé et appliqué des normes à la documentation Org.
• Christian Schlauer a proposé, entre autres, des crochets angulaires autour des liens.
• Paul Sexton a écrit 'org-ctags.el'.
• Le site "organizer-mode.el" de Tom Shannon a inspiré des liens vers VM/BBDB/Gnus.
• Ilya Shlyakhter a proposé l'Archive Sibling, la numérotation des lignes dans les
exemples littéraux et la mise en évidence à distance des lignes de code
référencées.
• Stathis Sideris a écrit le convertisseur ASCII vers PNG 'ditaa.jar' qui est
maintenant empaqueté dans le dépôt org-contrib.
• Daniel Sinder a eu l'idée d'un archivage interne en verrouillant les sous-arbres.
• Dale Smith a proposé des abréviations de liens.
• James TD Smith a contribué à un grand nombre de correctifs pour des
améliorations et des fonctionnalités utiles.
• Adam Spiers a demandé des commandes de liaison globales, a inspiré le système
d'extension des liens, a ajouté la prise en charge de Mairix et a proposé l'API de
cartographie.
• Ulf Stegemann a créé la table pour traduire les symboles spéciaux en HTML, LATEX,
UTF-8, Latin-1 et ASCII.
• Andy Stewart a contribué au code 'ol-w3m.el', pour copier le contenu HTML avec
la transformation des liens vers la syntaxe Org.
• David O'Toole a écrit "org-publish.el" et rédigé le chapitre du manuel consacré à
la publication.
• Jambunathan K. a contribué à l'exportateur ODT.
• Sébastien Vauban a signalé de nombreux problèmes liés à l'exportation de LATEX et
de Beamer et a activé la mise en évidence du code source dans Gnus.
• Stefan Vollmar a organisé une conférence enregistrée sur vidéo à l'Institut Max-
Planck de neurologie. Il a également inspiré la création d'un index des concepts
pour l'exportation HTML.
• Ju¨rgen Vollmer a contribué au code générant la table des matières en sortie HTML.
• Samuel Wales a fourni des informations importantes et des rapports de bogues.
• Chris Wallace a fourni un correctif mettant en œuvre le bloc "QUOTE".
• David Wainberg a suggéré l'archivage et l'amélioration du système de liens.
• Carsten Wimmer a suggéré quelques changements et a aidé à corriger un bug dans la liaison avec
Gnus.
• Roland Winkler a demandé des raccourcis clavier supplémentaires pour permettre à Org de
fonctionner sur un TTY.
• Piotr Zielinski a écrit "org-mouse.el", proposé des blocs d'ordre du jour et contribué
à diverses idées et extraits de code.
• Marco Wahl a écrit 'ol-eww.el'.
Annexe C : Licence de documentation libre 457
GNU
Les "Sections Invariables" sont certaines Sections Secondaires dont les titres sont
désignés, comme étant ceux des Sections Invariables, dans l'avis qui indique que le
Document est publié.
Annexe C : Licence de documentation libre 459
GNU
Vous pouvez copier et distribuer le document sur n'importe quel support, à des fins
commerciales ou non, à condition que la présente licence, les avis de copyright et
l'avis de licence indiquant que la présente licence s'applique au document soient
reproduits dans toutes les copies, et que vous n'ajoutiez aucune autre condition que
ce soit à celles de la présente licence. Vous ne pouvez pas utiliser de mesures
techniques pour empêcher ou contrôler la lecture ou la copie ultérieure des copies
que vous faites ou distribuez. Toutefois, vous pouvez accepter une compensation en
échange des copies. Si vous distribuez un nombre suffisamment important de
copies, vous devez également respecter les conditions de la section 3.
Vous pouvez également prêter des copies, dans les mêmes conditions que celles
énoncées ci-dessus, et vous pouvez afficher publiquement des copies.
3. LA COPIE EN QUANTITÉ
Si vous publiez des copies imprimées (ou des copies sur des supports qui ont
généralement des couvertures imprimées) du Document, au nombre de plus de 100,
et que la notice de licence du Document exige des Textes de couverture, vous
devez inclure les copies dans des couvertures qui portent, de manière claire et
lisible, tous ces Textes de couverture : Les textes de la première de couverture sur
la première de couverture et les textes de la quatrième de couverture sur la
quatrième de couverture. Les deux couvertures doivent également indiquer
clairement et lisiblement que vous êtes l'éditeur de ces exemplaires. La première de
couverture doit présenter le titre complet, tous les mots du titre étant également mis
en évidence et visibles. Vous pouvez ajouter d'autres éléments sur les couvertures.
La copie avec des changements limités aux couvertures, tant qu'ils préservent le
titre du document et remplissent ces conditions, peut être considérée comme une
copie verbatim à d'autres égards.
Si les textes requis pour l'une ou l'autre des couvertures sont trop volumineux pour
être lisibles, il convient de placer les premiers textes énumérés (autant que
possible) sur la couverture proprement dite, et de poursuivre le reste sur les pages
adjacentes.
Si vous publiez ou distribuez plus de 100 copies opaques du document, vous devez
soit inclure une copie transparente lisible par machine avec chaque copie opaque,
soit indiquer dans ou avec chaque copie opaque un emplacement de réseau
informatique à partir duquel le grand public utilisant le réseau peut télécharger, en
utilisant des protocoles de réseau publics, une copie transparente complète du
document, exempte de tout élément ajouté. Si vous choisissez cette dernière
option, vous devez prendre des mesures raisonnablement prudentes, lorsque vous
commencez à distribuer des copies opaques en quantité, pour vous assurer que
cette copie transparente restera ainsi accessible à l'emplacement indiqué jusqu'à au
moins un an après la dernière fois que vous aurez distribué une copie opaque
(directement ou par l'intermédiaire de vos agents ou détaillants) de cette édition au
public.
Il est demandé, mais non exigé, que vous contactiez les auteurs du document
bien avant de redistribuer un grand nombre de copies, afin de leur donner la
possibilité de vous fournir une version mise à jour du document.
4. MODIFICATIONS
Vous pouvez copier et distribuer une Version modifiée du Document dans les
conditions des sections 2 et 3 ci-dessus, à condition de publier la Version modifiée
précisément sous cette Licence, la Version modifiée remplissant le rôle du
Document, ce qui autorise la distribution et la modification de la Version modifiée à
quiconque en possède une copie. En outre, vous devez faire les choses suivantes
Annexe C : Licence de documentation libre 462
GNUdans la Version modifiée :
A. Utiliser dans la page de titre (et sur les couvertures, le cas échéant) un titre
distinct de celui du document et de ceux des versions antérieures (qui
devraient, le cas échéant, être des titres de la page de titre),
Annexe C : Licence de documentation libre 463
GNU
à la liste des sections invariantes dans l'avis de licence de la version modifiée. Ces
titres doivent être distincts de tout autre titre de section.
Vous pouvez ajouter une section intitulée "Approbations", à condition qu'elle ne
contienne rien d'autre que des approbations de votre Version modifiée par diverses
parties - par exemple, des déclarations d'évaluation par les pairs ou le fait que le
texte a été approuvé par une organisation en tant que définition faisant autorité
d'une norme.
Vous pouvez ajouter un passage de cinq mots au maximum comme texte de
couverture et un passage de 25 mots au maximum comme texte de quatrième de
couverture à la fin de la liste des textes de couverture de la version modifiée. Une
seule entité peut ajouter un passage de texte de couverture et un passage de texte
de quatrième de couverture (ou prendre des dispositions à cet effet). Si le document
comprend déjà un texte de couverture pour la même couverture, ajouté
précédemment par vous ou par un arrangement conclu par l'entité pour laquelle
vous agissez, vous ne pouvez pas en ajouter un autre ; mais vous pouvez
remplacer l'ancien, avec l'autorisation explicite de l'éditeur précédent qui a ajouté
l'ancien texte.
Les auteurs et les éditeurs du document ne sont pas autorisés par la présente licence
à utiliser leur nom à des fins publicitaires ou pour affirmer ou impliquer l'approbation
d'une version modifiée.
5. LA COMBINAISON DE DOCUMENTS
Vous pouvez combiner le document avec d'autres documents publiés sous cette
licence, dans les conditions définies à la section 4 ci-dessus pour les versions
modifiées, à condition d'inclure dans la combinaison toutes les Sections invariantes
de tous les documents originaux, non modifiées, et de les énumérer toutes comme
Sections invariantes de votre travail combiné dans son avis de licence, et de
préserver toutes leurs clauses de non-responsabilité de garantie.
L'œuvre combinée ne doit contenir qu'un seul exemplaire de la présente licence, et
plusieurs sections invariantes identiques peuvent être remplacées par un seul
exemplaire. S'il existe plusieurs Sections Invariables ayant le même nom mais des
contenus différents, rendez le titre de chacune de ces sections unique en ajoutant à
la fin de celui-ci, entre parenthèses, le nom de l'auteur ou de l'éditeur original de
cette section s'il est connu, ou bien un numéro unique. Procéder à la même
adaptation des titres des sections dans la liste des sections invariantes dans l'avis
de licence de l'œuvre combinée.
Dans la combinaison, vous devez regrouper toutes les sections intitulées "Histoire"
dans les différents documents originaux, pour former une section intitulée "Histoire"
; de même, vous devez regrouper toutes les sections intitulées "Remerciements" et
toutes les sections intitulées "Dédicaces". Vous devez supprimer toutes les sections
intitulées "avenants".
6. LES COLLECTIONS DE DOCUMENTS
Vous pouvez constituer un recueil composé du document et d'autres documents
publiés sous cette licence, et remplacer les copies individuelles de cette licence
dans les divers documents par une copie unique incluse dans le recueil, à condition
que vous respectiez les règles de cette licence pour la copie verbatim de chacun
des documents à tous autres égards.
Vous pouvez extraire un seul document d'une telle collection et le distribuer
individuellement sous la présente licence, à condition d'insérer une copie de la
Annexe C : Licence de documentation libre 466
GNUprésente licence dans le document extrait et de respecter la présente licence à tous
autres égards en ce qui concerne la copie mot à mot de ce document.
Annexe C : Licence de documentation libre 467
GNU
18 Index principal
'BEGIN_EXAMPLE' . . . . . . . . . . . . . . . . . . . . . . . . 141
. . . . . . . . . . . . . . . . ...........................
...
'BEGIN_EXPORT ascii' . . . . . . . . . . . . . . . . . . . . 156
.........
'BEGIN_EXPORT beamer' . . . . . . . . . . . . . . . . . . . 159
....
'BEGIN_EXPORT html' ................................................163
'BEGIN_EXPORT latex' . . . . . . . . . . . . . . . . . . . . 172
...........
'BEGIN_EXPORT texinfo' . . . . . . . . . . . . . . . . . . 193
...........
'BEGIN_JUSTIFYLEFT' . . . . . . . . . . . . . . . . . . . . . 156
.............
'BEGIN_JUSTIFYRIGHT' . . . . . . . . . . . . . . . . . . . . 156
. . . . . . . . . . . . . . . . . . . . . . . ..................
BEGIN_QUOTE' .............................................................137
BEGIN_SRC .........................................................142, 218
Chapitre 18 : Index 473
principal
L M
remplacement des macros, lors de l'exportation..153
arguments d'en-tête par défaut spécifiques à la
MACRO", mot-clé..........................................................153
langue ........................................................................219 mainteneur .....................................................................3
propriétés des arguments d'en-tête spécifiques à la entrées de mappage, API........................................276
langue mappings dans le protocole open-source .............262
. ..........................................................................220 anneau de marquage..................................................44
langue, en blocs de code.........................................218 Exportation Markdown..............................................178
'LANGUE', mot-clé ......................................149, 169, 171 marquage des caractères, tableaux.........................34
LAST_REPEAT', propriété .............................................85 vue du match .............................................................115
LATEX", mot-clé..........................................................172 correspondance, des biens .....................................115
'LATEX_CLASS', mot-clé .............................................170 correspondance, d'étiquettes ..................................115
'LATEX_CLASS_OPTIONS', mot-clé ............................170 correspondance, étiquettes........................................61
'LATEX_COMPILER', mot-clé ..............................169, 170 symboles mathématiques........................................138
'LATEX_HEADER', mot-clé..........................161, 170, 171 MathJax......................................................................165
'LATEX_HEADER_EXTRA', mot-clé......................170, 171 MathML ......................................................................183
Classe LATEX.............................................................170
Exportation LATEX....................................................168 Liens MH-E .................................................................40
Fragments de LATEX.................................................139 minlevel", inclure.....................................................152
Fragments LATEX, aperçu.........................................140 mode mineur pour les tableaux.................................22
En-tête LATEX............................................................170 'mkdirp', argument d'en-tête ...........................227, 238
Interprétation LATEX.................................................139
Structure de sectionnement LATEX ..........................170 pour le mode Calc.......................................................25
Mode LATEX et Orgtbl .............................................268 temps de modification", macro..........................154
Exportations des pays latins-1..............................155 motion commande dans l'ordre du jour..................123
listes de lettres, dans l'exportation Texinfo ...........193 mouvement, entre les titres .........................................8
niveau, pour la correspondance entre les plusieurs lignes de formule......................................32
étiquettes et les propriétés....................................115 plusieurs éléments dans les listes Texinfo............193
LibreOffice..................................................................179
limites, dans l'agenda...............................................122
sauts de ligne, règles de balisage ..........................137 N
lignes", inclure.........................................................153 n", macro ....................................................................154
abréviations des liens .................................................45 nom de la colonne ou du champ ..............................25
lien abréviations, complément de...........................247 Mot-clé "NOM", dans les blocs source .....................218
achèvement du lien.....................................................43 NOM", mot-clé .........................................................25, 39
format de lien..............................................................38 Références nominatives .............................................25
LIEN", mot-clé .....................................................46, 251 les noms comme mots-clés TODO ..........................49
liens, externes .............................................................40
colonnes étroites dans les tableaux .........................21
liens, recherche du suivant/précédent ..................45
liens, manipulation ......................................................42
Chapitre 18 : Index 478
principal
minuterie relative . . . . . . . . . . . . . . . . . . . . . . . . . 92
.........
rappels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
. . . . . . . . . . . . . . . . ............................
édition à distance, en vrac, à partir de l'agenda . 128
...........
édition à distance, à partir de l'agenda . . . . . . . 126
...........
édition à distance, annuler . . . . . . . . . . . . . . . . . 126
........
références à distance . . . . . . . . . . . . . . . . . . . . . . . 25
.......
tâches répétées ... ... ... ... ... ... ... ... ... ... ... ... . 82
... ... ... ... ... ... ... ... ... ...
rapport, du temps chronométré . . . . . . . . . . . . . . 86
. . . . . . . . . . . . . . . . . . . . . . . . .................
...
signaler un bogue . . . . . . . . . . . . . . . . . . . . . . . . . 3
. . . . . . . . . . . . . . . . . . . . ......................
...
résoudre le temps mort . . . . . . . . . . . . . . . . . . . . 90
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ......
..........
'results', argument d'en-tête . . . . . . . . . . . . . . 231
.....
'résultats', macro . . . . . . . . . . . . . . . . . . . . . . 155
. . . . . . . . . . . . . . . . . . . . . . ....................
...
'RESULTS', mot-clé . . . . . . . . . . . . . . . . . . . . . . . 228
. . . . . . . . . . . . . . . ...........................
révéler le contexte.........................................................7 show branches, commande ..........................................7
URL réécrite dans un protocole open-source.......261 montrer les enfants, commande .................................7
Liens Rmail ..................................................................40 afficher le texte caché...................................................6
séparateur de lignes, dans les tableaux..................17 trait d'union timide, symbole spécial ......................139
rangée, de coordonnées de champ..........................24 Plan du site, des pages publiées............................209
'rownames', argument d'en-tête ...............................223 smartphone................................................................263
Flux RSS..............................................................97, 108 tri, des points de l'ordre du jour...............................119
rsync ...........................................................................211 tri, de la liste simple ....................................................15
tri, des sous-arbres .......................................................9
S
Marqueur "SCHEDULED ................................................81
"SCHEDULED", propriété spéciale................................69
l'ordonnancement........................................................76
scripts, pour le traitement de l'agenda ...................273
option de recherche dans les liens de fichiers........46
chaînes de recherche, personnalisées .....................47
Vue de la recherche...................................................117
recherche d'étiquettes ................................................65
recherche, pour le texte ...........................................117
recherche, de biens ....................................................69
structure de sectionnement, pour l'exportation
LATEX........................................................................170
'SELECT_TAGS', mot-clé.............................................149
'sep', argument d'en-tête..........................................233
sep, attribut Texinfo ..................................................193
SEQ_TODO", mot-clé.............................................51, 254
'session', argument d'en-tête .................................227
réglage des étiquettes ................................................61
'SETUPFILE', mot-clé.........................................148, 252
timestamps sexp .........................................................76
'shebang', argument d'en-tête .................................238
liens vers les coquilles................................................40
shift-sélection.............................................................257
mode de sélection par décalage................................14
show all, commande.....................................................7
show all, global visibility state......................................7
code source, exécution par lots . . . . . . . . . . . . 245
. . . . . . . . . . . . . . . . . . . . . .................
code source, structure des blocs . . . . . . . . . . . . 218
. . . . . . . . . . . . . . . . . . . . . .................
code source, édition . . . . . . . . . . . . . . . . . . . . . . 240
. . . . . . . . . . . . . . . . . . . . . . . .................
Chapitre 18 : Index code source, évaluation . . . . . . . . . . . . . . . . . . 480 228
principal . . . . . . . . . . . . . . . . . . . . . . . . .................
code source, exportation . . . . . . . . . . . . . . . . . . 236
. . . . . . . . . . . . . . . . . . . . . . . ...................
.
arbre clairsemé, pour les délais................................82 code source, extraction . . . . . . . . . . . . . . . . . . . 237
. . . . . . . . . . . . . . . . . . . . . ...................
arbre clairsemé, pour TODO.....................................48
code source, en ligne . . . . . . . . . . . . . . . . . . . . 218
arbre clairsemé, basé sur les balises.......................61 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .........
arbres clairsemés..........................................................11 ......
blocs spéciaux, dans l'exportation ASCII ..............156 code source, langues . . . . . . . . . . . . . . . . . . . . . . 239
blocs spéciaux, dans l'exportation LATEX .............176 . . . . . . . . . . . . . . . . . . . ..................
mots-clés spéciaux ...................................................251 code source, bibliothèque . . . . . . . . . . . . . . . . . 244
symboles spéciaux....................................................138 ..........
symboles spéciaux, affichage dans la mémoire code source, référence noweb . . . . . . . . . . . . . . 241
tampon .......................................................................138 . . . . . . . . . . . . . . . . . . . ..................
touches de vitesse ......................................................248 code source, résultats de l'évaluation 231
speedbar.el..............................................................257 ..........................................
code source, travail avec . . . . . . . . . . . . . . . . . . 217
capacités des tableurs.................................................23 . . . . . . . . . . . . . . . . ....................
crochets, autour des liens..........................................42
visibilité des startups...................................................7
STARTUP", mot-clé...........................................8, 15, 252
statistiques, pour les cases à cocher .......................58
statistiques, pour les points TODO ..........................57
protocole store-link ...................................................260
stocker le lien, dans un tampon de code source ..143
stockage des liens ......................................................42
texte barré, règles de balisage .............................137
édition de la structure ...................................................9
structure du document..................................................6
STYLE", propriété .........................................................55
styles, personnalisés ........................................180, 185
SUBAUTHOR", mot-clé.........................................190, 191
sous-niveaux, inclusion dans la correspondance des
étiquettes .....................................................................61
sous-niveaux, inclusion dans la liste TODO .........114
indice ..........................................................................138
SUBTITLE", mot-clé.........156, 158, 162, 170, 180, 190
cycle des sous-arbres ..................................................6
états de visibilité des sous-arbres ...........................6
sous-arbre, couper-coller .............................................9
sous-arbre, état de visibilité du sous-arbre ...............6
sous-arbres, couper-coller ...........................................9
résumé............................................................................1
SOMMAIRE", propriété.................................................198
exposant.....................................................................138
commutateurs, en blocs de code ...........................218
vérificateur de syntaxe .............................................254
syntaxe, noweb .........................................................241
syntaxe des formules .................................................25
Chapitre 18 : Index 481
principal
+ 1
+...................................................................................127 1..9,0 ..........................................................................73
, A
,...................................................................................127 a ............................................................................74, 127
a (répartiteur Agenda) .............................................112
- A ..................................................................................123
-...................................................................................127
B
. b ..................................................................................124
B ..................................................................................129
. ............................................................................79, 124
C
/ c ..................................................................................130
/ (répartiteur de l'agenda) .......................................111 C ............................................................................90, 130
C (répartiteur de l'agenda).......................................131
C (menu Capture ........................................................98
: C-#.................................................................................33
:...................................................................................127 C-' ..............................................................................110
C-, ..............................................................................110
C.....................................................................................79
< C-_...............................................................................126
< ..............................................................................74, 79 C-0 C-c C-w ................................................................94
< (répartiteur de l'agenda) .......................................111 C-2 C-c C-w ................................................................94
Chapitre 19 : Index 484
des clés
G
g ............................................................................73, 126 N
G...................................................................................125 n ............................................................................73, 123
H O
H...................................................................................130 o ..................................................................................124
O ..................................................................................128
I
i...................................................................................130 P
I...................................................................................128 p ............................................................................73, 123
J Q
j...................................................................................124
J..........................................................................124, 128 q......................................................................63, 73, 130
Chapitre 19 : Index 487
des clés
R U
r....................................................................73, 114, 126 u...................................................................................128
R ..................................................................................125 U...................................................................................129
RET ....................................................18, 44, 63, 79, 123
V
S v.....................................................................................74
v [ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
s ............................................................................90, 126 .........
s (répartiteur de l'agenda) ..............................111, 117 v a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
S ............................................................................90, 130 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .........
S-DOWN .................................14, 18, 31, 57, 78, 79, 127 .............
S-GAUCHE . . . 15, 18, 31, 48, 50, 69, 73, 78, 79, 87, vv EA .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. 125 125
128 .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..... .. .. .. .. .. .. .. .. .. ..
............
.............
v c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
S-M-DOWN ......................................................................86 .v. l . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..... .. .. ... 125
. . . . . . . . . . . . . . . . . . . . . . . . . . . . ..........................
.v. . d. . .. ... .. .. .. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
S-M-GAUCHE ..................................................................74 .v. L . . .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. .. ..... .. .. ... 125
. . . . . . . . . . . . . . . . . . . . . . ....................
...........
S-M-RET ........................................................................49 v m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..........
.............
S-M-RIGHT....................................................................74 v R . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
. . . . . . . . . . . . . . . . . . . . . . . ...................
T ...........
S-M-UP ..........................................................................86 Xv SPC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
t...................................................................................126 ........
x...................................................................................130
tS-RET
(répartiteur de l'agenda) ................................49, 114
............................................................................20 v w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
T...................................................................................127 X...................................................................................128
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..........
T (répartiteur de l'agenda) .......................................114 .............
S-DROITE . . 15, 19, 31, 48, 50, 69, 73, 78, 79, 87, v y . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
TAB...................................6,
128 9, 13, 18, 31, 63, 123, 141 Z. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ..........
z...................................................................................127
.............
S-TAB ........................................................................7, 18
S-UP .....................................14, 18, 31, 57, 78, 79, 127
CPS ........................................................................63, 123 W
w . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
.........
Chapitre 20 : Index des commandes et 488
des fonctions
L org-agenda-goto-date ............................................124
org-agenda-goto-today .........................................124
lisp-complete-symbol .............................................31
org-agenda-fêtes ...................................................130
org-agenda-kill ......................................................126
N org-agenda-later....................................................124
org-agenda-limit-interactively.......................122
erreur suivante ........................................................12 org-agenda-list ......................................................112
org-agenda-list-projets bloqués.....................118
O org-agenda-log-mode ..............................................125
org-agenda-manipuler-query-add.........................125
ou-clock-goto ............................................................86 org-agenda-mois-vue ..............................................124
org-agenda ....................................................................3 org-agenda-next-line ............................................123
org-agenda-add-note ..............................................127 org-agenda-open-link ............................................123
org-agenda-archive................................................127 org-agenda-phases-de-la-lune ............................130
org-agenda-archive-default-with- org-agenda-ligne precedente..............................123
confirmation....................................................127 org-agenda-priorité .............................................127
org-agenda-archive-to-archive-sibling ........127 org-agenda-priority-down ....................................127
org-agenda-archives-mode ....................................125 org-agenda-priorité-up.........................................127
org-agenda-bulk-action .......................................129 org-agenda-quit ......................................................130
org-agenda-bulk-mark ............................................128 org-agenda-recenter .............................................123
org-agenda-bulk-mark-all.....................................128 org-agenda-redo ......................................................126
org-agenda-bulk-mark-regexp .............................129 org-agenda-refile..................................................127
org-agenda-bulk-toggle .......................................129 org-agenda-remove-restriction-lock........110, 126
org-agenda-bulk-toggle-all.................................129 org-agenda-reset-view ..........................................124
org-agenda-bulk-unmark .......................................128 org-agenda-schedule .............................................127
org-agenda-bulk-unmark-all.................................129 org-agenda-set-effort .........................................127
org-agenda-capture................................................128 org-agenda-set-restriction-lock ......................110
org-agenda-clock-cancel .....................................128 org-agenda-set-tags ..............................................127
org-agenda-clock-goto..................................124, 128 org-agenda-show-and-scroll-up...........................123
org-agenda-clock-in...............................................128 org-agenda-show-tags ............................................127
org-agenda-clock-out.............................................128 org-agenda-skip-entry-if.....................................272
org-agenda-clockreport-mode ..............................125 org-agenda-skip-subtree-if.................................272
org-agenda-columns .......................................126, 135 org-agenda-sunrise-sunset .................................130
org-agenda-convert-date ......................................130 org-agenda-switch-to.............................................123
org-agenda-date-prompt .......................................128 org-agenda-todo ......................................................126
org-agenda-day-view ..............................................124 org-agenda-todo-nextset .....................................126
org-agenda-deadline .............................................128 org-agenda-toggle-archive-tag...........................127
org-agenda-diary-entry ........................................130 org-agenda-toggle-diary .....................................125
org-agenda-do-date-earlier ...............................128 org-agenda-tree-to-indirect-buffer...............123
org-agenda-do-date-later ....................................128 org-agenda-undo ......................................................126
org-agenda-drag-line-backward.........................126 org-agenda-week-view ............................................124
org-agenda-drag-line-forward ...........................126 org-agenda-write ...................................................134
org-agenda-earlier................................................124 org-agenda-year-view ............................................124
org-agenda-entry-text-mode ................................125 org-anniversaire......................................................76
org-agenda-exit ......................................................130 org-archive-subtree................................................95
org-agenda-file-to-front ...................................109 org-archive-subtree-default ...............................95
org-agenda-filter..................................................121 org-archive-to-archive-sibling.........................96
org-agenda-filtre-par-categorie.....................120 org-ascii-convert-region-to-ascii.................202
org-agenda-filtre-par-effort ...........................121 org-ascii-convert-region-to-utf8....................202
org-agenda-filter-by-regexp .............................121 org-ascii-export-as-ascii ..................................156
org-agenda-filter-by-tag.....................................120 org-ascii-export-to-ascii ..................................155
org-agenda-filter-by-top-headline.................121 org-attach .......................................................104, 127
org-agenda-follow-mode ........................................123 org-attach-attach..................................................105
org-agenda-goto ......................................................123 org-attach-buffer..................................................105
org-agenda-goto-calendrier ...............................130 org-attach-dired-to-subtree.............................107
Chapitre 20 : Index des commandes et 489
des fonctions
21 Indice variable
Il ne s'agit pas d'un index complet des variables et des faces, mais seulement de celles
qui sont mentionnées dans le manuel. Pour obtenir une liste plus complète, utilisez M-x
org-customize et cliquez vous-même dans l'arbre.
C org-agenda-skip-scheduled-delay-if-deadline
cdlatex-simplifier-sous-super-scripts ........141 . .............................................................................81
org-agenda-skip-scheduled-if-deadline-is-
constantes-système d'unités ......................25, 253
shown ....................................................................84
org-agenda-skip-scheduled-if-done ....................81
org-agenda-sorting-strategy .............................120
L org-agenda-span..............................................112, 124
LaTeX-verbatim-environnements.........................268 org-agenda-début-jour...........................................112
org-agenda-début-de-semaine.............................112
org-agenda-start-with-clockreport-mode ........125
O org-agenda-start-with-entry-text-mode ..........125
org-adapt-indentation .........................................249 org-agenda-start-with-follow-mode ..................123
org-agenda-auto-exclude-function...................121 org-agenda-sticky..................................................111
org-agenda-bulk-custom-functions ..........128, 129 org-agenda-tag-filter-preset ...........................120
org-agenda-bulk-marques persistantes ...........129 org-agenda-tags-column .......................................118
org-agenda-category-filter-preset.................120 org-agenda-tags-todo-honor-ignore-options
org-agenda-category-icon-alist.......................118 . ..........................................................................115
org-agenda-clock-consistency-checks.............125 org-agenda-text-search-extra-files ......111, 117
org-agenda-columns-add-appointments-to- org-agenda-time-grid....................................119, 125
effort-sum...........................................................91 org-agenda-todo-ignore-deadlines...................114
org-agenda-confirm-kill ......................................126 org-agenda-todo-ignore-scheduled...................114
org-agenda-custom-commandes .....12, 131, 132, 273 org-agenda-todo-ignore-timestamp...................114
org-agenda-custom-commands-contexts.............133 org-agenda-todo-ignore-with-date ....................114
org-agenda-diary-file ..........................................130 org-agenda-todo-list-sublevels ................57, 114
org-agenda-dim-tâches bloquées ................53, 273 org-agenda-use-tag-inheritance ................61, 273
org-agenda-use-time-grid............................119, 125
org-agenda-effort-filtre-preset.....................120
org-agenda-window-setup .....................................109
org-agenda-entry-text-maxlines.......................125
org-alphabetical-lists .........................................12
org-agenda-exporter-settings ..................134, 135
org-archive-default-command.......................95, 127
org-agenda-files ...........................................109, 119
org-archive-location.....................................95, 251
org-agenda-ignore-properties ...........................273
org-archive-save-context-info ............................95
org-agenda-inhibit-startup ...............................273 org-archive-subtree-save-file-p ............................95
org-agenda-log-mode-items .................................125 org-ascii-links-to-notes ...................................155
org-agenda-loop-over-headlines-in-active- org-ascii-text-width ............................................155
region ................................................................250 org-attach-archive-delete .................................106
org-agenda-max-effort .........................................122 org-attach-auto-tag...............................................106
org-agenda-max-entries .......................................122 org-attach-commands .............................................107
org-agenda-max-tags ..............................................122 org-attach-dir-relative .....................................106
org-agenda-max-todos ...........................................122 org-attach-expert..................................................107
org-agenda-overriding-header ...........................272 org-attach-id-dir...................................................105
org-agenda-prefix-format ...................................118 org-attach-id-to-path-function-list ..............107
org-agenda-regexp-filtre-preset.....................120 méthode org-attach.......................................105, 106
org-agenda-restore-windows-after-quit ..........109 org-attach-preferred-new-method.....................106
org-agenda-search-headline-for-time ..............119 org-attach-store-link-p .........................................107
org-agenda-show-inherited-tags................127, 273 org-attach-use-inheritance ...............................106
org-agenda-skip-archived-trees ................96, 109 org-babel-default-header-args ..........................219
org-agenda-skip-comment-trees.........................109 org-babel-default-inline-header-args ............219
org-agenda-skip-deadline-prewarning- if org-babel-inline-result-wrap ............................228
scheduled ............................................................81 org-babel-load-languages ...................................239
org-agenda-skip-function ..................271, 272, 277 org-babel-post-tangle-hook ................................239
org-agenda-skip-function-global.....................271 org-babel-pre-tangle-hook ..................................239
Chapitre 21 : Index des 493
variables
org-treat-insert-todo-heading-as-state- P
change ....................................................................9
org-treat-S-cursor-todo-selection-as-state- parse-temps-mois......................................................79
changer ................................................................48 parse-time-weekdays................................................79
org-use-property-inheritance............70, 220, 275
org-use-speed-commands .......................................248
org-use-sub-superscripts ...................................138 U
org-use-tag-inheritance .......................................61
org-yank-adjusted-subtrees .................................10 nom d'utilisateur ..................................................149
org-yank-sous-arbres-pliés .................................10 adresse électronique de l'utilisateur ........149