2014-09-25 1 views
21

Я пишу несколько многострочных уравнений в R Markdown - LaTeX, используя авто-нумерацию и \ begin {align}. Вот рабочий пример:«Ошибочное вложение структур уравнений» при использовании « begin {align}» в многострочном уравнении в rmarkdown to knit + pandoc pdf

--- 
title: "test" 
output: html_document 
--- 

(@eq01) $$ 
\begin{align} 
y = x^2 \\ 
y = x^3 \\ 
y = \sqrt[2]{x} 
\end{align} 
$$ 

Это отлично работает, когда выход представляет собой html_document. Вот результат:

html_doc

Но когда я изменить выходной документ в формате PDF:

output: pdf_document 

Я получаю следующее сообщение об ошибке (я использую RStudio последнюю версию 0.98.1056):

error

Я пытался прочитать документацию, как указано в сообщении об ошибке, но я не вижу чтобы получить ручку на нем. Я проверил Stack Overflow и Google и хотя есть некоторые связанные сообщения/вопросы (например, here, here, here), ни одна из них не решает проблему (или применительно к моей проблеме).

Я также попытался изменить все. Наиболее очевидным решением было бы избавиться от среды \ BEGIN {выравнивать},

(@eq01) $$ 
y = x^2 \\ 
y = x^3 \\ 
y = \sqrt[2]{x} 
$$ 

, но он не работает по двум причинам. Во-первых, версия html не работает так хорошо, потому что авто-нумерация не отображается по центру в многострочном уравнении, а скорее в первой строке (и мне это не нравится).

html output without the begin align

Во-вторых, хотя версия PDF в данном случае не компилировать и производить PDF, он не признает, что это уравнение многострочный (это как он не признает новую команду строки \) ,

pdf

Любые идеи действительно оценили. Я боролся с этим некоторое время, и я не могу найти решение. Я люблю R Markdown, потому что он действительно интегрирует анализ с написанием и общением в одном инструменте (вместо того, чтобы использовать много разных инструментов, идущих туда и обратно). Тем не менее, похоже, еще предстоит пройти долгий путь, прежде чем мы сможем написать один файл с одним исходным кодом и что он будет соответствующим образом отображен в нескольких разных форматах вывода.

+2

Попробуйте удалить внешнюю '$$' ... '$$', так как 'align' инициирует математический режим самостоятельно. – Werner

+0

Thx @Werner.Я пробовал использовать только LaTeX, и он работает, но только для вывода в формате pdf, и я пытался получить одинаковый синтаксис для работы в формате thml и pdf. Например, это работает для вывода в формате pdf '\ begin {equation} \ begin {aligned} y = x^2 \\ y = x^3 \\ y = \ sqrt [2] {x} \ end {aligned} \ end {equation} 'Но это не выводит уравнения в вывод html. Кроме того, автоматическая нумерация с использованием только LaTeX не сочетается с нумерацией нулевых чисел, используя «(@eq) $$» –

+0

Опять же, '\ begin {equation}' ... '\ end {equation}' запускает математический режим, что не соответствует требованиям 'align'. – Werner

ответ

32

Я получаю ту же ошибку при попытке отправить выровненный блок в PDF. Попробуйте изменить следующее:

$$ 
\begin{align} 
y = x^2 \\ 
y = x^3 \\ 
y = \sqrt[2]{x} 
\end{align} 
$$ 

к следующему:

$$ 
\begin{aligned} 
y = x^2 \\ 
y = x^3 \\ 
y = \sqrt[2]{x} 
\end{aligned} 
$$ 

\begin{align} является самодостаточной математикой среды, в то время как \begin{aligned} должен быть размещен внутри существующей математической среды. Поскольку Rmd определяет математические разделы с $$...$$, кажется, что \begin{align} пытался запустить вторую среду математики в первой и вызывать проблемы.

+1

спасибо большое –

+0

Спасибо тоже! :) – MissMonicaE

+0

Это тоже работало для меня, но внутри (Python) jupyter-notebook. Ноутбук уже находится в математической среде, поэтому, выполнив 'align', он дал мне ошибку. Мне пришлось использовать 'aligned'. Мой поиск привел меня сюда, который исправил ошибку, так что спасибо! – rayryeng

Смежные вопросы