2012-11-12 15 views
5

Chcę pokazać przykładowy fragment kodu R Z dzianiną < < .. >> = preambuła w dokumencie LaTeX. Oto przykład wyjścia pragnę:Wyświetlanie <<..>> = na wyjściu

snip-of-code

To musi być proste - ale czegoś mi brakuje. Sprawdziłem dokumentację i przeskanowałem przepełnienie stosu - ale bez powodzenia. Oto MWE:

\documentclass{article} 
    \begin{document} 
    <<mychunk, cache=TRUE, eval=FALSE, dpi=100>>= 
    "hello world" 
    @ 
    \end{document} 

Sugestie? Próbowałem wcięcia kodu w LaTex i owijania w bloku verbatim, ale dostałem tylko błędy.

+0

Czy dosłowne środowisko może pomóc? –

+0

@Lustrik - Próbowałem '\ begin {verbatim} ... \ end {verbatim}' i otrzymałem błędy kompilacji lateksu. –

+0

To dlatego, że wciąż kompiluje wbudowany kod knitr, a zatem próbuje uruchomić dosłowne środowisko w dosłownym środowisku. –

Odpowiedz

6

Właśnie sprawdziłem instrukcję dziergania. W ten sposób autor pakiet rozwiązał problem:

<<use-ext-chunk, echo=FALSE, comment=NA>>= 
cat('<<Q1, echo=TRUE, tidy=TRUE>>=','@',sep='\n') 
@ 

która produkuje wyjścia, jak pokazano na stronie 9 knitr manual

Oto minimalne przykład:

\documentclass[a4paper]{article} 
\begin{document} 


<<use-ext-chunk, echo=FALSE, comment=NA>>= 
    cat('<<Q1, echo=TRUE, tidy=TRUE>>=','@',sep='\n') 
@ 

\end{document} 

który produkuje dołączone wyjście.

enter image description here

+0

Dzięki! Nie wiedziałem, gdzie patrzeć, jak to zrobił autor Knitr. Wierzę, że zaproponuję nową opcję porcji, coś jak 'display.wrapper = TRUE' tak, że oryginalne opcje porcji również są osadzone w wynikach. –

+0

To dobra propozycja, a Yihui jest naprawdę pomocna i otwarta na nowe pomysły. Po prostu daj mu znać, co myśli. –

+0

@JohnLeonard Absolutnie uwielbiam tę propozycję i sam bolesny jest napisać '<<>> =' w samouczkach! –

4

Miałem to samo pytanie na tex.stackexchange.com rok temu i otrzymałem kilka fajnych odpowiedzi: https://tex.stackexchange.com/q/35485/3419. Jest to dla Sweave, ale myślę, że będzie działać tak samo w knitr.

Myślę, że skończyło się po prostu używając \Sexpr{"<<>>="} i \Sexpr{"@"} w dosłownym środowisku. np .:

\documentclass{article} 
\begin{document} 
\begin{verbatim} 
\Sexpr{"<<mychunk, cache=TRUE, eval=FALSE, dpi=100>>="} 
"hello world" 
\Sexpr{"@"} 
\end{verbatim} 
\end{document} 
+0

Również powiązane: http://tex.stackexchange.com/q/35830/3419 –

+0

Jest to praktyczne rozwiązanie - ale dla Sweave'a, a nie Knitra. Knitr nie wysyła środowiska '' Sexpr'. Dzięki! –

+0

@SachaEpskamp Właśnie wymyśliłem złą metodę przenoszenia innych odpowiedzi, włączając w to dużą, prawie białą stronę. Nie zrobiłem tego celowo, więc mam nadzieję, że mi wybaczysz ;-) Btw: Zamierzam opatentować to rozwiązanie, więc proszę nie kopiować ... –

3

Wystarczy szybkie follow-up: ta funkcja została wprowadzona w knitr (devel version> = 0.8.15); zobacz przykłady zarówno dla Rnw i. Alternatywne rozwiązanie to knitr FAQ.

Powiązane problemy