2015-02-13 2 views
5

Ich möchte eine Zeichenfolge von Inline-Latex-Mathe in einem Objekt speichern, dann geben Sie diese Zeichenfolge, so dass wenn Rmarkdown gestrickt ist, eine Latex-Gleichung ausgegeben wird pdf. Ich habe einen Fehler, wenn ich "\ beta" in die Zeichenfolge einfüge. Hier ist das Beispiel:Drucken Inline-Latex-Gleichungen aus Variable in R, Problem mit beta

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

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

`r b_0` 

Fehler:

>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 

Dies ist der gleiche Fehler, den ich bekommen würde, wenn ich kopiert und eingefügt einen Beta-Charakter in die rmarkdown Datei. Ich überlegte (und versuchte es ein wenig), die Kodierung zu ändern, um Beta als Charakter zu integrieren, erkannte aber, dass dies mein Problem nicht lösen würde. Ich brauche die Textzeile, um $ \ beta $ zu lesen, nicht $ β $. Ich habe versucht, die Zeichenfolge so zu ändern, dass sie "$" nicht enthält:

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

$`r b_0`$ 

Und der Fehler ist der gleiche. Ich denke, was ich finde ist, dass R "\ beta" liest und es in β umwandelt, was ich nicht will.

Was ich ausgegeben werden möchte, ist β mit 0 als tiefgestellt.

Bitte verzeihen Sie meine Unwissenheit, wie diese Dinge funktionieren (ich bin mir nicht sicher, wie r, rmarkdown, Latex, knitr und pandoc alle interagieren, um das endgültige pdf zu produzieren).

Mein ultimatives Ziel ist es, eine große Tabelle zu erstellen, die Latexgleichungen enthält (die \ beta enthalten). Ich möchte die Gleichungen als Variablen speichern, damit sie einfach an einem Ort bearbeitet werden können. Wenn Sie einen anderen Weg kennen, dies zu erreichen, würde ich es begrüßen. Ich kann mir vorstellen, dass dies in LaTex möglich ist, aber ich habe mehr Erfahrung mit rmarkdown und das ist meine Vorliebe. Mein Gedanke/meine Hoffnung ist, dass es wahrscheinlich etwas Einfaches gibt, dass ich hier vermisse.

Ich bin in Rstudio Arbeit (0.98.1091.) Auf O X 10.10.2, mit R 3.0.3

+0

Sie müssen fast sicher den Backslash mit einem anderen, z. 'b_0 =" $ \\ beta_0 $ "'. Es kann jedoch sein, dass Sie einen benutzerdefinierten Stich oder ein linkes Muster benötigen (ich bin schlecht in der Knitr-Terminologie), um sicherzustellen, dass dieser Inline-Code der Option "output = 'asis'' chunk" entspricht. Aber versuchen Sie es mit dem doppelten Backslash und sehen Sie, ob das ausreicht. – Gregor

Antwort

6

Nach meinem Kommentar zu testen, wie es scheint es, ohne zusätzliche Komplikationen gut funktioniert.

Ein umgekehrter Schrägstrich ist ein Sonderzeichen in R-Zeichenfolgen, daher müssen Sie ihn mit einem weiteren umgekehrten Schrägstrich zurückgeben. Stricken:

--- 
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`. 

Ausbeuten:

enter image description here

Umgekehrte Schrägstriche in Strings ist ein ziemlich gemeinsame R-FAQ. Weitere Informationen finden Sie unter here oder here.

+1

Gregor, du bist mein Held für den Tag. Ich wusste, dass es so etwas sein musste, danke für deine Hilfe. Danke auch für die hilfreichen Links. – Tedward