2014-09-25 13 views
21

Sto scrivendo alcune equazioni multilinea in R Markdown - LaTeX, utilizzando la numerazione automatica e \ begin {align}. Ecco un esempio di funzionamento:"Annidamento errato di strutture di equazioni" nell'uso di " begin {align}" in un'equazione a più righe in rmarkdown a knit + pandoc pdf

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

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

Questo funziona perfettamente quando l'output è html_document. Ecco il risultato:

html_doc

Ma quando cambio il documento di output in pdf:

output: pdf_document 

ottengo il seguente errore (sto usando RStudio ultima versione 0.98.1056):

error

Ho cercato di leggere la documentazione come suggerito nel messaggio di errore, ma non mi sembra per avere una maniglia su di esso. Ho controllato Stack Overflow e Google e sebbene ci siano alcuni post/domande (ad esempio here, here, here), nessuno di loro risolve il problema (o si applica al mio problema).

Ho anche provato a modificare tutto. La soluzione più evidente sarebbe quella di sbarazzarsi dell 'ambiente \ begin {align},

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

ma non funziona per due motivi. Innanzitutto, la versione html non funziona così bene perché la numerazione automatica non appare centrata nell'equazione a più linee, ma piuttosto nella prima riga (e non mi piace così).

html output without the begin align

In secondo luogo, anche se la versione pdf in questo caso non compilare e produrre il pdf, non riconosce che si tratta di un'equazione multi-linea (è come se non riconosce il nuovo comando riga \) .

pdf

Tutte le idee sono molto apprezzati. Ho lottato con questo per un po 'e non riesco a trovare una soluzione. Adoro R Markdown perché integra davvero l'analisi con la scrittura e la comunicazione in un unico strumento (piuttosto che usare molti strumenti diversi andando avanti e indietro). Tuttavia, sembra che ci sia ancora molta strada da fare prima di poter scrivere un singolo file sorgente e renderlo correttamente in diversi formati di output.

+2

Provare e rimuovere l'esterno '$$' ... '$$', poiché 'align' avvia la modalità matematica da sola. – Werner

+0

Thx @Werner.Ho provato a utilizzare solo LaTeX e funziona, ma solo per l'output in pdf e stavo cercando di ottenere la stessa sintassi per funzionare allo stesso modo in output thml e pdf. Ad esempio, questo funziona per l'uscita pdf '\ begin {equation} \ begin {} allineato y = x^2 \\ y = x^3 \\ y = \ sqrt [2] {x} \ end {aligned} \ end {equation} 'Ma non rende le equazioni in output html. Inoltre, la numerazione automatica usando solo LaTeX non va d'accordo con la numerazione delle equazioni usando "(@eq) $$" –

+0

Ancora, '\ begin {equation}' ... '\ end {equation}' avvia la modalità matematica, che non è ciò che "allinea" vuole. – Werner

risposta

32

Stavo ricevendo lo stesso errore durante il tentativo di inviare un blocco allineato al PDF. Provare a cambiare la seguente:

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

al seguente:

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

\begin{align} è un ambiente matematico autonomo, mentre \begin{aligned} deve essere collocato all'interno di un ambiente di matematica esistente. Poiché Rmd delinea le sezioni matematiche con $$...$$, sembra che \begin{align} stia tentando di avviare un secondo ambiente matematico all'interno del primo e causare problemi.

+1

grazie mille –

+0

Grazie anche da parte mia! :) – MissMonicaE

+0

Questo ha funzionato anche per me, ma all'interno di un jupyter-notebook (Python). Il notebook è già in un ambiente matematico, quindi facendo 'align' mi ha dato un errore. Ho dovuto usare 'allineato'. La mia ricerca mi ha portato qui che ha corretto l'errore quindi grazie! – rayryeng