Aqui está minha receita:
pandoc -s -t latex --toc --chapters \
--latex-engine=lualatex $BOOK.epub -o $BOOK.pdf
se o acréscimo de --toc
e --chapters
não produzir os resultados desejados, deixe-os de fora. Às vezes, as imagens dentro do epub são inválidas para serem usadas com o latex, então você precisa convertê-las no processo:
$ pandoc -s -t latex --toc --chapters \
--latex-engine=lualatex $BOOK.epub -o $BOOK.pdf
!LuaTeX error (file /tmp/tex2pdf.23440/3f21bef8dd2877aad72f5cddbf00284ca88fa0e7
.jpg): reading JPEG image failed (no marker found)
==> Fatal error occurred, no output PDF file produced!
pandoc: Error producing PDF
Aqui está uma solução alternativa. Verifique se um arquivo tex pode ser produzido:
$ pandoc \
-s -t latex \
--toc --chapters \
--latex-engine=lualatex $BOOK.epub -o $BOOK.tex
Extraia imagens e outras mídias contidas no contêiner epub para o diretório DIR, criando-o, se necessário, e ajuste as referências de imagens no documento [LaTeX] para que elas apontem para os arquivos extraídos, com a opção --extract-media= DIR
. Selecione o diretório atual que também contém o arquivo ePub. Adicione --extract-media=
. o que significa extrair no diretório atual, que também é $HOME/Documents
$ cd Documents
$ pandoc \
-s -t latex \
--toc --chapters \
--latex-engine=lualatex \
--extract-media=. $BOOK.epub -o $BOOK.tex
pandoc: extracting ./images/9781501144158.jpg
pandoc: extracting ./images/com-01.jpg
pandoc: extracting ./images/f0003-01.jpg
pandoc: extracting ./images/f0005-01.jpg
[ ----- extract-media logging shortened ---- ]
pandoc: extracting ./images/f0177-01.jpg
pandoc: extracting ./images/f0187-01.jpg
pandoc: extracting ./images/logo.jpg
pandoc: extracting ./images/logo1.jpg
pandoc: extracting ./images/title.jpg
Revogue as imagens .jpg extraídas criando novas imagens JPEG compatíveis com LaTeX com o utilitário 'converter' (do conjunto de programas imagemagick)
$ cd images
$ convert logo1.jpg logo1.jpeg
e substitua as imagens .jpg anteriormente extraídas por pandoc pelas imagens .jpeg recém-criadas:
$ mv logo1.jpeg logo1.jpg
Pode-se fazer isso com um único loop for
na linha de comando:
$ cd images/
$ for i in *.jpg; do convert $i 'echo $i | sed 's/jpg/jpeg/''; done
$ rm -f *.jpg
$ for i in *.jpeg; do mv $i 'echo $i | sed 's/jpeg/jpg/''; done
$ cd ..
Execute a primeira linha de comando novamente, mas desta vez o mecanismo do LuaTeX procura por seu \includegraphics
no mesmo diretório onde as imagens do ePub foram extraídas anteriormente ( --data-dir=DIRECTORY Specify the user data directory to search for pandoc data files. If this option is not specified, the default user data directory will be used. This is, in Unix: $HOME/.pandoc
) adicionando a opção --data-dir=.
:
$ pandoc \
-s -t latex \
--toc --chapters \
--latex-engine=lualatex \
--data-dir=. $BOOK.epub -o $BOOK.pdf