14

Я знаю, что могу использовать команды -H или --include-in-header для включения пользовательской преамбулы в сгенерированный вывод. Проблема в том, что Pandoc включает мою преамбулу, но ставит перед ней другую преамбулу:

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

Я знаю, что это преамбула LaTeX по умолчанию (default.latex), которую Pandoc загружает из папки с templates . То же самое происходит, когда я использую --include-after-body с \end{document} .

Это команда, которую я использую:

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

1 ответ1

19

Как вы обнаружили, --include-in-header добавляет текст в преамбулу, указанную в шаблоне LaTeX Pandoc. Есть несколько способов сделать то, что вы пытаетесь сделать.

  1. Если вам нужна полностью настраиваемая преамбула, вам нужно указать файл шаблона, используя

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

    Шаблон может иметь переменные (такие как $title$ и, что более важно, $body$) и условные выражения. Если вы хотите получить вдохновение, вы можете проверить шаблон по умолчанию с помощью команды

    pandoc -D latex
    
  2. Если вы хотите использовать новый шаблон раз и навсегда, вы можете создать его, назвать его default.latex и поместить его в каталог шаблонов (~/.pandoc/templates/ на компьютере с Unix). В этом случае вам нужно указать, что вы хотите использовать шаблон, позвонив

    pandoc -o output.tex --standalone input.txt
    
  3. Если вы не хотите иметь дело с шаблонами, вы можете просто запустить

    pandoc -o output.tex input.txt
    

    и результатом будет пустой документ LaTeX, то есть без преамбулы \begin{document} или \end{document} . Затем вы можете добавить преамбулу самостоятельно. Обратите внимание, что любые метаданные (название, автор) будут потеряны при использовании этого метода.

Полную информацию о том, как создавать и использовать шаблоны, можно найти на превосходной справочной странице Pandoc.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .