2015-02-13 19 views
5

Chciałbym zapisać ciąg wbudowanej matematyki lateksowej w obiekcie r, a następnie wyprowadzić ten ciąg tak, aby po zsynchronizowaniu rarkownu wyprowadzono równanie lateksu pdf. Wystąpił błąd, gdy dołączam ciąg "\ beta". Oto przykład:drukowanie równania lateksu inline z zmiennej w R, kłopot z beta

--- 
title: "Untitled" 
author: "Tedward" 
date: "February 12, 2015" 
output: pdf_document 
--- 

```{r} 
b_0<-"$\beta_0$" 
``` 

`r b_0` 

błąd:

>output file: Test_beta.knit.md 
> 
>! Package inputenc Error: Keyboard character used is undefined 
>(inputenc)    in inputencoding `utf8'. 
> 
>See the inputenc package documentation for explanation. 
>Type H <return> for immediate help. 
> ...            
>             
>l.97 $^^H 
> 
>Try running pandoc with --latex-engine=xelatex. 
>pandoc: Error producing PDF from TeX source 
>Error: pandoc document conversion failed with error 43 
>Execution halted 

Jest to ten sam błąd bym się gdybym został skopiowany i wklejony znak beta do pliku rmarkdown. Zastanowiłem się (i próbowałem przez chwilę), aby zmienić kodowanie tak, aby zawierało beta jako postać, ale zdałem sobie sprawę, że to nie rozwiąże mojego problemu. Potrzebuję linii tekstu do przeczytania $ \ beta $, a nie $ β $. Próbowałem zmodyfikować ciąg znaków tak, aby nie zawierał "$":

```{r} 
b_0<-"\beta_0" 
``` 

$`r b_0`$ 

Błąd jest taki sam. Myślę, że stwierdzam, że R czyta "\ beta" i przekształca go w β, co nie jest tym, czego chcę.

To, co chciałbym uzyskać, to β z 0 jako dolnym.

Proszę wybaczyć moją ignorancję, jak działają te rzeczy (nie jestem pewien, jak r, rmarkdown, lateks, knitr i pandoc wszystkim współdziałać w celu uzyskania ostatecznego pdf).

Moim ostatecznym celem jest stworzenie dużego stołu z równaniami lateksu (w tym \ beta). Chciałbym zapisać równania jako zmienne, aby można było je łatwo edytować w jednym miejscu. Jeśli znasz inny sposób, aby to osiągnąć, byłbym wdzięczny. Wyobrażam sobie, że jest to możliwe w LaTexie, ale jestem bardziej doświadczony w RStowndown i dlatego to moje preferencje. Moje myślenie/nadzieja jest taka, że ​​prawdopodobnie jest coś prostego, czego tu brakuje.

pracuję w Rstudio (0.98.1091.) Na OS X 10.10.2, z R 3.0.3

+0

Prawie na pewno trzeba będzie uciec od ukośnika odwrotnego za pomocą innego, np. 'b_0 =" $ \\ beta_0 $ "'. Jednak możesz potrzebować niestandardowego ściegu lub bełtu lub czegoś (jestem zły w terminologii knitr), aby upewnić się, że ten wbudowany kod ma odpowiednik opcji 'output = 'asis'' chunk. Ale spróbuj z podwójnym odwróconym ukośnikiem i sprawdź, czy to wystarczy. – Gregor

Odpowiedz

6

Po przetestowaniu mój komentarz, wydaje się, że działa poprawnie bez dodatkowych komplikacji.

Ukośnik odwrotny jest specjalną postacią w ciągach R, więc należy uciec z nią za pomocą innego ukośnika odwrotnego. Knitting:

--- 
title: "beta test" 
author: "Gregor" 
date: "Friday, February 13, 2015" 
output: pdf_document 
--- 

```{r} 
b0 = "$\\beta_0$" 
``` 
Let's see if it works: `r b0`. 

Plony:

enter image description here

Odwrotne ukośniki w łańcuchach jest dość powszechne R-FAQ. Aby uzyskać więcej informacji, zobacz here lub here.

+1

Gregor, jesteś moim bohaterem na ten dzień. Wiedziałem, że to musi być coś takiego, dziękuję za twoją pomoc. Dziękuję również za pomocne linki. – Tedward