Markdown à la conversion LaTeX avec un préambule personnalisé utilisant Pandoc

16

Je sais que je peux utiliser les commandes -Hou --include-in-headerpour inclure un préambule personnalisé dans la sortie générée. Le problème est maintenant que Pandoc inclut mon préambule mais met un autre préambule devant lui:

\documentclass{article}
\usepackage{amssymb,amsmath}
\usepackage{ifxetex,ifluatex}
\ifxetex
  \usepackage{fontspec,xltxtra,xunicode}
  \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
\else
  \ifluatex
    \usepackage{fontspec}
    \defaultfontfeatures{Mapping=tex-text,Scale=MatchLowercase}
  \else
    \usepackage[utf8]{inputenc}
  \fi
\fi
\ifxetex
  \usepackage[setpagesize=false, % page size defined by xetex
              unicode=false, % unicode breaks when used with xetex
              xetex]{hyperref}
\else
  \usepackage[unicode=true]{hyperref}
\fi
\hypersetup{breaklinks=true, pdfborder={0 0 0}}
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
\setlength{\emergencystretch}{3em}  % prevent overfull lines
\setcounter{secnumdepth}{0}

[... my preamble ...]

Je sais que c'est le préambule ( default.latex) LaTeX par défaut que Pandoc charge à partir de son templatesdossier. La même chose se produit lorsque j'utilise --include-after-bodyavec \end{document}.

Voici la commande que j'utilise:

pandoc -o output.tex input.txt --include-before-body=header.tex --include-after-body=footer.tex
John
la source

Réponses:

20

Comme vous l'avez découvert, --include-in-headerajoute du texte dans le préambule spécifié dans le modèle LaTeX de Pandoc. Il existe plusieurs façons de faire ce que vous essayez de faire.

  1. Si vous souhaitez un préambule entièrement personnalisé, vous devez spécifier un fichier de modèle à l'aide

    pandoc -o output.tex --template=FILE input.txt
    

    Le modèle peut avoir des variables (telles que $title$et, plus important encore $body$) et des conditions. Si vous souhaitez de l'inspiration, vous pouvez consulter le modèle par défaut à l'aide de la commande

    pandoc -D latex
    
  2. Si vous souhaitez utiliser un nouveau modèle une fois pour toutes, vous pouvez en créer un, l'appeler default.latexet le placer dans le répertoire des modèles ( ~/.pandoc/templates/sur une machine Unix). Dans ce cas, vous devez spécifier que vous souhaitez utiliser un modèle en appelant

    pandoc -o output.tex --standalone input.txt
    
  3. Si vous préférez ne pas traiter du tout avec les modèles, vous pouvez simplement exécuter

    pandoc -o output.tex input.txt
    

    et le résultat sera un document LaTeX nu, c'est-à-dire sans préambule, \begin{document}ou \end{document}. Vous pouvez ensuite ajouter vous-même un préambule. Notez que toutes les métadonnées (titre, auteur) seront perdues lors de l'utilisation de cette méthode.

Vous trouverez tous les détails sur la création et l'utilisation de modèles dans l'excellente page de manuel de Pandoc .

Nathan Grigg
la source