Заставить Pandoc записывать команды LaTex из HTML-тегов `<cite>` в виде простого текста - PullRequest
2 голосов
/ 15 мая 2019

Я пытаюсь изменить некоторый код, который позволяет скомпилировать код в каталоге проекта, который может принимать много форматов, например, HTML, LaTex, markdown, используя Pandoc (ну, Pypandoc).У меня есть некоторый код в файле HTML, который выглядит следующим образом:

<h1 data-label="850151" class="ltx_title_section">A heading</h1><h2 data-label="367935" class="ltx_title_subsection">Another heading</h2><div><cite class="ltx_cite raw v1">\cite{ebert_epidemiology_2013}</cite></div><div>Figure <span class="au-ref raw v1">\ref{286335}</span></div><div></div>

Это вывод LaTex.

...
\section{A heading}\label{a-heading}

\subsection{Another heading}\label{another-heading}

\textbackslash{}cite\{ebert\_epidemiology\_2013\}

Figure {\textbackslash{}ref\{286335\}}
...

Требуемый вывод, конечно,

...
\section{A heading}\label{a-heading}

\subsection{Another heading}\label{another-heading}

\cite{ebert_epidemiology_2013}

\ref{286335}
...

Думаю, если бы я мог заставить Пандока убрать теги <cite> и написать команду цитирования в виде простого текста, это сработало бы.Я знаю, что фильтры Pandoc - вещь, но я не уверен, что это то, что мне нужно.

1 Ответ

3 голосов
/ 16 мая 2019

Да, вы можете использовать фильтр для удаления тегов цитирования.

Если вы используете pandoc -f html+raw_html -t native, вы увидите, что <cite>bar</cite> отображается в:

RawInline (Format "html") "<cite>",Str "bar",RawInline (Format "html") "</cite>"

Таким образом, фильтр должен выглядеть примерно так:

function RawInline(elem)
  if elem.format == "html"
    return {}
  else
    return elem
end
...