Markieren Sie die LaTeX-Konvertierung mit einer benutzerdefinierten Präambel mit Pandoc

14563
John

Ich weiß, dass ich die Befehle -Hoder verwenden kann --include-in-header, um eine benutzerdefinierte Präambel in die generierte Ausgabe aufzunehmen. Das Problem besteht nun darin, dass Pandoc meine Präambel enthält, aber eine weitere Präambel vorstellt :

\documentclass \usepackage \usepackage \ifxetex \usepackage \defaultfontfeatures \else \ifluatex \usepackage \defaultfontfeatures \else \usepackage[utf8] \fi \fi \ifxetex \usepackage[setpagesize=false, % page size defined by xetex unicode=false, % unicode breaks when used with xetex xetex] \else \usepackage[unicode=true] \fi \hypersetup} \setlength{\parindent} \setlength{\parskip} \setlength{\emergencystretch} % prevent overfull lines \setcounter  [... my preamble ...] 

Ich weiß, dass dies die LaTeX-Standardpräambel ( default.latex) ist, die Pandoc aus seinem templatesOrdner lädt . Das gleiche passiert, wenn ich verwende --include-after-bodymit \end.

Dies ist der Befehl, den ich verwende:

pandoc -o output.tex input.txt --include-before-body=header.tex --include-after-body=footer.tex 
14

1 Antwort auf die Frage

19
Nathan Grigg

--include-in-headerFügt, wie Sie festgestellt haben, der Präambel in der LaTeX-Vorlage von Pandoc Text hinzu. Es gibt mehrere Möglichkeiten, das zu tun, was Sie versuchen.

  1. Wenn Sie eine vollständig benutzerdefinierte Präambel wünschen, müssen Sie eine Vorlagendatei mit angeben

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

    Die Vorlage kann Variablen (wie $title$und vor allem $body$) und Bedingungen enthalten. Wenn Sie etwas Inspiration wünschen, können Sie die Standardvorlage mit dem Befehl auschecken

    pandoc -D latex 
  2. Wenn Sie eine neue Vorlage ein für alle Mal verwenden möchten, können Sie sie erstellen, aufrufen default.latexund in das Vorlagenverzeichnis ( ~/.pandoc/templates/auf einem Unix-Computer) legen . In diesem Fall müssen Sie durch Aufrufen angeben, dass Sie eine Vorlage verwenden möchten

    pandoc -o output.tex --standalone input.txt 
  3. Wenn Sie lieber nicht mit Vorlagen arbeiten möchten, können Sie es einfach ausführen

    pandoc -o output.tex input.txt 

    und das Ergebnis wird ein leeres LaTeX-Dokument sein, dh ohne Präambel \beginoder \end. Dann können Sie selbst eine Präambel hinzufügen. Beachten Sie, dass Metadaten (Titel, Autor) bei Verwendung dieser Methode verloren gehen.

Ausführliche Informationen zum Erstellen und Verwenden von Vorlagen finden Sie in Pandocs hervorragender Manpage .