Как реализовать полный синтаксис LaTeX в Rmarkdown? - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть вопрос из двух частей, касающийся использования LaTeX в Rmarkdown:

1) При работе в Rmarkdown (с целью рендеринга в PDF) существует ли правило, когда мы должны просто использоватьдвойные знаки доллара ($$) для записи чего-либо в LaTeX или когда нам нужно использовать синтаксис LaTeX для начала и окончания всего нашего кода LaTeX (например, \ documentclass {...}, \ begin {document}, \ end {document}и т. д.

Полагаю, что я прочитал, что использовать последнюю опцию можно, а Rmarkdown игнорирует все экранированные латексные команды, если документ отображается не в формате PDF.

2) Причина, по которой я спрашиваю в этом случае, заключается в том, что я пытаюсь включить помеченное матричное умножение в документ Rmarkdown, который я пишу.В частности, я хотел бы включить некоторые матрицы, которые принимают форму, показанную на этой странице .Вот код:

\documentclass{article}
\usepackage{amsmath}

\newenvironment{spmatrix}[1]
 {\def\mysubscript{#1}\mathop\bgroup\begin{pmatrix}}
 {\end{pmatrix}\egroup_{\textstyle\mathstrut\mysubscript}}

\begin{document}
\begin{equation}
\begin{spmatrix}{A}
    a & b \\
    c & d
\end{spmatrix}
\begin{spmatrix}{x}
    x_1 \\
    x_2
\end{spmatrix}
=
\begin{spmatrix}{b}
    b_1  \\
    b_2
\end{spmatrix}
\end{equation}
\end{document}

Как реализовать этот код в Rmarkdown?Вам нужно переместить вызов \ usepackage в YAML, как предложено в других потоках, обсуждающих загрузку пакетов LaTeX в Rmarkdown ?Нужна ли первая строка \documentclass{article} в документе Rmarkdown?

Я новичок во всем этом, и, следовательно, я смог получить, используя двойные знаки доллара, чтобы выделить весь мой код LaTeX для простых уравнений и даже простую матрицу здесь и там, чтоЯ пытался писать, но для математических выражений, которые требуют большего форматирования, выравнивания, многострочных доказательств и т. Д., Большинство примеров, с которыми я сталкивался, написаны на платах TEX, написанных с синтаксисом, подобным приведенному выше коду.Я не смог понять, как реализовать эти типы примеров в Rmarkdown.Будем очень благодарны за любые полезные предложения или указания, где лучше понять эту проблему!

1 Ответ

0 голосов
/ 25 ноября 2018

Действительно возможно поместить большинство конструкций LaTeX уровня тела в тело вашего файла Rmd.Другие бэкэнды будут игнорировать эти конструкции, но результат может выглядеть измененным.Так что, с моей точки зрения, вы привязываете себя к выводу PDF.Но это может быть хорошо в вашем случае.

Относительно вашей конкретной проблемы:

  • amsmath уже включен в шаблон по умолчанию, который также заботится о \ḑocumentclass и среде document.
  • Вам необходимо добавить определение среды в отдельный файл tex (в моем случае preamble.tex) и включить этот файл через заголовки YAML.
  • Затем вы можете использовать конструкции LaTeX, как вRmd тело.

Собираем вещи вместе:

---
output:
  pdf_document: 
    keep_tex: yes
    includes:
      in_header: preamble.tex
---

\begin{equation}
\begin{spmatrix}{A}
    a & b \\
    c & d
\end{spmatrix}
\begin{spmatrix}{x}
    x_1 \\
    x_2
\end{spmatrix}
=
\begin{spmatrix}{b}
    b_1  \\
    b_2
\end{spmatrix}
\end{equation}
...