From 1ac15aaf28e3e2f3b90ca95b97186acf7e56d92a Mon Sep 17 00:00:00 2001 From: Bastien Dumont Date: Mon, 6 Sep 2021 18:25:25 +0200 Subject: [PATCH] =?UTF-8?q?Mise=20en=20=C5=93uvre=20de=20l'hyph=C3=A9natio?= =?UTF-8?q?n=20des=20verbatim=20par=20un=20m=C3=A9lange=20d'options=20de?= =?UTF-8?q?=20ConTeXt=20et=20d'interventions=20manuelles?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Documentation/GUIDE_CSL-Clio.md | 4 ++-- Utilitaires/Makefile | 1 + Utilitaires/TEMPLATE_Guide-CSL-Clio.context | 8 ++++++-- Utilitaires/context-aux-functions.lua | 3 +++ Utilitaires/microfixes-docDiapo.sh | 4 ++++ 5 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 Utilitaires/context-aux-functions.lua create mode 100755 Utilitaires/microfixes-docDiapo.sh diff --git a/Documentation/GUIDE_CSL-Clio.md b/Documentation/GUIDE_CSL-Clio.md index fe9e974..802c83c 100644 --- a/Documentation/GUIDE_CSL-Clio.md +++ b/Documentation/GUIDE_CSL-Clio.md @@ -506,7 +506,7 @@ Les sources publiées dans la *Patrologie grecque*, la *Patrologie latine* et la ### Apostrophes et guillemets -Là où vous utilisez les caractères « droits » ASCII (i. e. `"` et `'`), les processeurs `citeproc-js` et `citeproc` choisissent automatiquement les guillemets typographiques correspondant à la langue dans laquelle vous écrivez (en français, « ou » et ') ; de même si vous utilisez les guillemets droits pour mettre en évidence une citation à l'intérieur d'une citation (`"il dit 'courir', je dis 'marcher'"` → *« il dit “courir”, je dis “marcher” »*). Il convient de prendre garde à trois points : +Là où vous utilisez les caractères « droits » ASCII `"` et `'`, les processeurs `citeproc-js` et `citeproc` choisissent automatiquement les guillemets typographiques correspondant à la langue dans laquelle vous écrivez (en français, « ou » et ') ; de même si vous utilisez les guillemets droits pour mettre en évidence une citation à l'intérieur d'une citation (`"il dit 'courir', je dis 'marcher'"` → *« il dit “courir”, je dis “marcher” »*). Il convient de prendre garde à trois points : * Si vous utilisez une [liste d'abréviations](#listes-dabréviations), veillez à ce que les enregistrements dans *Zotero* soient cohérents avec elle. En particulier, si vous importez les références à partir de votre navigateur ou utilisez des copier-coller, certains titres de revues ou de collections risquent de contenir des apostrophes typographiques^[ Dites aussi guillemets-apostrophes, car elles recouvrent aussi bien les apostrophes que les guillemets ouvrants à l'intérieur de citations en anglais. Voir le tableau répertoriant les différents encodages de l'apostrophe [sur Wikipedia](https://fr.wikipedia.org/wiki/Apostrophe_(typographie)#Informatique). @@ -800,7 +800,7 @@ Suivant un principe éprouvé et largement appliqué en programmation, [le code * Le nom d'une macro doit indiquer précisément ce qu'elle fait : `publicationTitle` s'occupe du titre principal d'une publication (et non d'une source), `titleInItalics` produit un titre en italiques ; * Par convention, les noms de macros doivent être en _camelCase_ ; * Les macros doivent être courtes (entre 3 et 40 lignes). Dès que vous imbriquez des choix conditionnels ou que vous mêlez des informations sur des parties différentes de la citation (titre, auteur,...), demandez-vous si vous ne pourriez pas créer différentes macros pour gérer ces différents problèmes et les appeler dans votre macro principale. La logique d'ensemble n'en sera que plus claire ; - * Reprenez le plus possible les titres de macros déjà existants, et donc la logique sous-jacentes. En particulier, essayez de conserver la division des citations en `sourceReference`/`publicationReference`/`digitalReference`, avec la subdivision de `sourceReference` en `sourceAuthor`/`sourceTitle`/`sourceIdentifier`, etc... + * Reprenez le plus possible les titres de macros déjà existants, et donc la logique sous-jacentes. En particulier, essayez de conserver la division des citations en `sourceReference`, `publicationReference` et `digitalReference`, avec la subdivision de `sourceReference` en `sourceAuthor`, `sourceTitle` et `sourceIdentifier`, etc... * Pour délimiter les différentes parties d'un bloc, enclosez-les dans des éléments `group` dotés d'un attribut `delimiter` plutôt que d'utiliser les attributs `prefix` et `suffix`. ### Les macros diff --git a/Utilitaires/Makefile b/Utilitaires/Makefile index 959cc79..482c8a0 100644 --- a/Utilitaires/Makefile +++ b/Utilitaires/Makefile @@ -85,5 +85,6 @@ docA4: $(DOC_FILE).md TEMPLATE_Guide-CSL-Clio.latex docDiapo: $(DOC_FILE).md TEMPLATE_Guide-CSL-Clio.context pandoc $(COMMON_DOC_OPTIONS) -o $(DOC_FILE)_Diapo.tex -t context --template=TEMPLATE_Guide-CSL-Clio.context && \ + ./microfixes-docDiapo.sh $(DOC_FILE)_Diapo.tex && \ cd $(DOC_DIR) && \ context --noconsole --errors $(DOC_FILE)_Diapo.tex diff --git a/Utilitaires/TEMPLATE_Guide-CSL-Clio.context b/Utilitaires/TEMPLATE_Guide-CSL-Clio.context index c411683..9e56a1d 100644 --- a/Utilitaires/TEMPLATE_Guide-CSL-Clio.context +++ b/Utilitaires/TEMPLATE_Guide-CSL-Clio.context @@ -27,8 +27,12 @@ $endif$ \definefontfamily[mainface][ss][linuxbiolinumo] \definefontfamily[mainface][tt][nimbusmonops][features=none] \setupbodyfont[mainface,12pt] -\setuptype[lines=hyphenated] -\setbreakpoints[compound] +\definetype[hyphenatedtype][lines=hyphenated] +\def\type#1{\startluacode + require '../Utilitaires/context-aux-functions' + context(split_cmd_at_char([[#1]], '-', 'hyphenatedtype')) + \stopluacode +} \setuphead[chapter] [style=\ssc\bf\setupinterlinespace,header=empty] \setuphead[section] [style=\ssb\bf\setupinterlinespace] diff --git a/Utilitaires/context-aux-functions.lua b/Utilitaires/context-aux-functions.lua new file mode 100644 index 0000000..c6061e2 --- /dev/null +++ b/Utilitaires/context-aux-functions.lua @@ -0,0 +1,3 @@ +function split_cmd_at_char(arg, delimiter, replacement_cmd) + return string.gsub(arg, '([^' .. delimiter .. ']+-?)', '\\' .. replacement_cmd .. '{%1}\\discretionary{}{}{}') +end diff --git a/Utilitaires/microfixes-docDiapo.sh b/Utilitaires/microfixes-docDiapo.sh new file mode 100755 index 0000000..fadace6 --- /dev/null +++ b/Utilitaires/microfixes-docDiapo.sh @@ -0,0 +1,4 @@ +#!/bin/bash + +sed -i 's/\\type{publication/\\type{publication}\\-\\type{/' "$1" +sed -i 's/\\type{sourceAuthor},/\\type{source}\\-\\type{Au}\\-\\hbox{\\type{thor},}/' "$1"