Dans le document simple que j’attache à la fin de cet article, on trouvera la plupart des commandes que l’on utilise dans un article : citations, notes de bas de page, bibliographie. On trouvera aussi des mots en grec ancien, et même en arabe. Le but est de montrer comment on peut travailler entièrement sous XeLaTeX, puis convertir l’article au dernier moment dans le format .odt pour le donner à l’éditeur.
Le préambule du document .tex
Il doit être aussi simple que possible pour une raison évidente : les raffinements typographiques et de mise en page sont réservés à (Xe)LaTeX lui-même. Le fichier de traitement de texte devra être propre, et répondre aux exigences de base de l’éditeur, qui le reprendra de toute façon dans son propre système de mise en page.
On peut donc partir de ceci :
\documentclass{article}
% J'aime bien toujours charger babel dont la typographie est bien
% meilleure que celle de polyglossia. Mais si vous le souhaitez,
% ou si vous en avez besoin, vous pouvez toujours mettre:
% \usepackage{polyglossia}
% \setdefaultlanguage{french}
\usepackage[french]{babel}
\usepackage{fontspec,xltxtra}
\setmainfont{Linux Libertine O}
\setsansfont{Linux Biolinum O}
\setmonofont[Scale=.9]{Linux Libertine Mono O}
\usepackage{csquotes}
\title{<titre du document>}
\author{<nom de l'auteur>}À vrai dire, on peut se contenter de :
\documentclass{article}
\usepackage{fontspec,xltxtra}
\title{<titre du document>}
\author{<nom de l'auteur>}car par défaut, pandoc ignorera les paramètres de langue et les polices de caractère. Le plus simple sera de choisir ces éléments dans les paramètres du document de traitement de texte, comme nous le verrons à la fin de cet article. J’ai cependant ajouté ces lignes dans le préambule du source .tex, car on peut souhaiter compiler le document plusieurs fois avant de le passer sous traitement de texte.
Auquel cas, une solution est de créer deux préambules : l’un pour LaTeX, l’autre pour pandoc. On les écrira dans deux fichiers distincts qu’on inclura au cas par cas.
Les commandes courantes
Quels sont les éléments couramment utilsés dans un article ? On peut penser à ceci :
- un résumé :
\begin{abstract} \end{abstract} - des commandes de division de texte :
\section{}, \subsection{}, \paragraph{}, etc. - des notes de bas de page :
\footnote{} - des citations :
\begin{quote} \end{quote} - des citations en vers :
\begin{verse} \end{verse} - des commandes de mise en forme des mots
\emph{}, \textbf{}
Tout cela est parfaitement pris en charge par pandoc.
Tableaux
Les tableaux sont également pris en charge, mais les extensions telles que longtable ne le sont pas. Si le document comporte des tableaux longs, on les saisira néanmoins dans l’environnement standard tabular. Sous (Xe)LaTeX, les résultats ne seront pas bons, mais les tableaux seront correctement convertis sous traitement de texte.
Si on utilise longtable sans utiliser de type de colonnes personnalisé, une solution peut être de mettre dans le préambule spécifique à pandoc les lignes suivantes :
\let\longtable\tabular
\let\endlongtable\endtabularCe qui permettra d’utiliser longtable lorsqu’on utilise (Xe)LaTeX.
Langues étrangères
La seule contrainte est de les saisir en unicode : tous les caractères seront convertis, et même les langues qui se lisent de droite à gauche, comme l’arabe, seront reconnues. Si les textes en langue étrangère sont saisis dans des commandes telles que \textgreek{} pour le grec ou \textarab{} pour l’arabe, peu importe : les commandes seront le plus souvent ignorées.
Dans certains cas cependant, les commandes de changement de langue propres polyglossia produisent des effets inattendus : on a ainsi constaté en faisant des tests que des commandes telles que \textfrench{} ou \textlatin{} ne produisaient rien ! Les textes passés en argument disparaissent tout simplement !
Dans ce cas, il faut neutraliser ces commandes dans le préambule, de la façon suivante (l’exemple qui suit neutralise les deux commandes données au paragraphe précédent) :
\renewcommand{\textfrench}[1]{#1}
\renewcommand{\textlatin}[1]{#1}En fonction des commandes à neutraliser, on adaptera ce code, qu’il faut évidemment placer dans le préambule après celles qui ont servi à charger polyglossia ou tout autre package dans lequel ces commandes sont définies.
Bibliographie
On prend ici le cas d’une bibliographie construite à l’aide de biblatex/biber. Le plus important est de comprendre que pandoc ignore les styles de citation et les styles de bibliographie que l’on a choisis dans le source .tex. À la place, pandoc peut utiliser tout style au format CSL. Il en exixte un très grand nombre (voir ci-dessous).
Dans le document, on peut utiliser les commandes de citation suivantes :
-
\cite{} -
\autocite{} -
\citeyear{} -
\parencite{} -
\footcite{} -
\textcite[avant][après]{} -
\smartcite[avant][après]{} -
\autocite{} -
\citeauthor{}
Et à la fin du document, on mettra simplement \printbibliography. Les bibliographies multiples ne sont pas prises en charge.
Conversion du document
La conversion se fait à la ligne de commande.
Pour un document sans bibliographie, on fait ceci :
pandoc --latex-engine=xelatex article.tex -o article.odtPour un document avec bibliographie, on a deux possibilités.
1 Choix par défaut du style Chicago author-date :
pandoc --bibliography="bibliographie.bib" --biblatex \
--latex-engine=xelatex article.tex -o article.odtCette commande convertit le fichier article.tex vers article.odt, en utilisant pour les citations le fichier bibliographie.bib.
2 Choix d’un style CSL. Dans cet exemple, j’utilise le style « harvard-kings-college-london » :
pandoc --filter pandoc-citeproc --csl=harvard-kings-college-london.csl \
--bibliography="bibliographie.bib" --biblatex \
--latex-engine=xelatex article.tex -o article.odtPour récupérer un style existant, on peut se rendre ici :
https://www.zotero.org/styles. Le dépôt Git est ici :
https://github.com/citation-style-language/styles.
Il faut enregistrer le fichier CSL au même endroit que les fichiers .tex et .bib.
Post-traitement
Observez bien le fichier de sortie. Vous remarquerez qu’il est bien stylé. Il sera alors très facile de générer une table des matières.
En ce qui concerne les langues à caractères non-occidentaux, comme le grec ou l’arabe, il suffit encore de modifier les paramètres du document LibreOffice pour que tout soit adapté parfaitement sur l’ensemble du document. Dans le document LibreOffice attaché, voici comment j’ai procédé :
Langue française
Typographie
Remarquez que l’utilisation des features OpenType dans les paramètres dits des « Polices standard (occidentales) » a pour effet d’insérer automatiquement des espaces fines entre les mots et tout signe de ponctuation double.
Fichiers
Voici les fichiers que j’ai utilisés. Ils vous permettront de vous entraîner !


