Markdown para conversão LaTeX com um preâmbulo personalizado usando Pandoc

14

Eu sei que posso usar os comandos -H ou --include-in-header para incluir um preâmbulo personalizado na saída gerada. O problema agora é que Pandoc inclui meu preâmbulo, mas coloca outro preâmbulo na frente:

\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 ...]

Eu sei que este é o preâmbulo padrão do LaTeX ( default.latex ) que o Pandoc carrega de sua pasta templates . O mesmo acontece quando estou usando --include-after-body com \end{document} .

Este é o comando que estou usando:

pandoc -o output.tex input.txt --include-before-body=header.tex --include-after-body=footer.tex
    
por John 10.11.2011 / 18:58

1 resposta

19

Como você descobriu, --include-in-header adiciona texto ao preâmbulo especificado no modelo LaTeX do Pandoc. Existem algumas maneiras de fazer o que você está tentando fazer.

  1. Se você quiser um preâmbulo totalmente personalizado, é necessário especificar um arquivo de modelo usando

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

    O modelo pode ter variáveis (como $title$ e, mais importante, $body$ ) e condicionais. Se você quiser alguma inspiração, você pode verificar o modelo padrão usando o comando

    pandoc -D latex
    
  2. Se quiser usar um novo modelo de uma vez por todas, você pode criar um, chamá-lo default.latex e colocá-lo no diretório de modelos ( ~/.pandoc/templates/ em uma máquina unix). Neste caso, você precisa especificar que deseja usar um modelo chamando

    pandoc -o output.tex --standalone input.txt
    
  3. Se você preferir não lidar com modelos, pode simplesmente executar

    pandoc -o output.tex input.txt
    

    e o resultado será um documento LaTeX, ou seja, sem um preâmbulo, \begin{document} ou \end{document} . Então você pode adicionar um preâmbulo sozinho. Observe que qualquer metadado (título, autor) será perdido ao usar esse método.

Detalhes completos sobre como criar e usar modelos podem ser encontrados na excelente página de manual do Pandoc .

    
por 10.11.2011 / 19:32