Pandoc
Instruções para instalar o Pandoc
Conversão simples de Markdown para PDF
Execute o seguinte comando no terminal/shell:
pandoc -s -f markdown SeuArquivo.md --pdf-engine=xelatex -o SeuPDF.pdf
Entendendo o comando:
-s
stand-alone — Indica para o Pandoc que você deseja um arquivo como produto final da conversão. (Dependendo da conversão, o resultado poderia ser apenas um texto convertido na própria janela do terminal/shell).
-f
from — É o formato a partir do qual se converte (e.g. markdown / docx / html / gfm / etc) que deve ser seguido pelo nome do arquivo a partir do qual se converte (e.g. documento.md).
-o
output — É o resultado desejado, no nosso caso, um PDF (ver próximo item).
—pdf-engine=xelatex
— Como a conversão direta entre markdown e PDF não é possível, precisamos fazê-la via Latex ou HTML. A minha sugestão é usar XeLaTeX, pois tem a vantagem de suportar caracteres gregos e utilizar fontes do sistema Atenção: você precisa ter os pacotes LaTeX instalados. E.g. http://www.tug.org/mactex/MacTex.
Adicionando Variáveis
pandoc -s -f markdown SeuArquivo.md \
--pdf-engine=xelatex \
-V 'mainfont=Gentium Plus' \
-V 'sansfont=Source Sans Pro' \
-V 'monofont=Menlo' -V 'fontsize=13pt' \
-V 'geometry: top=3cm, left=3cm, right=2cm, bottom=2cm' \
-V 'linestretch:1.5' \
-V 'pagestyle:headings' \
--toc -o SeuPDF.pdf
-V
variable — Indica uma variável a ser inserida durante a conversão. Sempre lembrar de colocar o valor entre aspas simples.
mainfont=Gentium Plus
— Qualquer fonte do sistema pode ser utilizada com XeLateX. Para arquivos com textos em grego, eu gosto das seguintes fontes: Gentium Plus, Alegreya, EB Garamond e Linux Libertine. Você encontra todas elas aqui.
sansfont=Source Sans Pro
— Fonte sem serifa de escolha.
monofont=Menlo
— Fonte de largura fixa de sua preferência. Recomendo Menlo, TheSansMono Office, DejaVu Sans Mono.
geometry: top=3cm, left=3cm, right=2cm, bottom=2cm
— Pacote geometry para LaTex com a formatação da página configurada de acordo com a ABNT.
linestretch:1.5
— Espaçamento entre linhas.
pagestyle:headings
— Estilos diferentes de páginas: com cabeçalho, padrão e sem nada (headings / plain / empty).
—toc
— Incluir table of contents.
-V linkcolor:blue
Referências internas
Para facilitar as referências internas, podemos utilizar um filtro chamado Pandoc Secnos parte do pacote Xnos. Depois de instalar o filtro (instruções estão no repositório do pacote no github), basta evocar a bandeira --filter pandoc-secnos
no comando. Isso deve necessariamente acontecer ANTES dos comandos relacionados à bibliografia, listados abaixo.
Bibliografia
"--csl=$HOME/path/csl/chicago-author-date.csl" \
"--bibliography=$HOME/path/all.json"
"--csl=$HOME/path/csl/associacão-brasileira-de-normas-tecnicas-para-estudos-classicos.csl"
Esse é o caminho para o estilo (e.g. APA, Chicago, ABNT, etc) que deverá ser utilizado (em formato CSL, como o Zotero).
"--bibliography=$HOME/path/all.json"
Esse é caminho para o arquivo com as referências bibliográficas, que pode estar em BibTeX ou JSON (preferível).
Includes (transclusão)
"--lua-filter=$HOME/path/include-files.lua"
Para fazer transclusões usando o pandoc, é preciso usar um filtro adicional em lua no comando.