Mise en œuvre de l'hyphénation des verbatim par un mélange d'options de ConTeXt et d'interventions manuelles

This commit is contained in:
Bastien Dumont 2021-09-06 18:25:25 +02:00
parent 3ef028a216
commit 1ac15aaf28
5 changed files with 16 additions and 4 deletions

View File

@ -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

View File

@ -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

View File

@ -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]

View File

@ -0,0 +1,3 @@
function split_cmd_at_char(arg, delimiter, replacement_cmd)
return string.gsub(arg, '([^' .. delimiter .. ']+-?)', '\\' .. replacement_cmd .. '{%1}\\discretionary{}{}{}')
end

View File

@ -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"