Overleaf nabízí integraci s knitr, která vám umožňuje přidat do dokumentu LaTeX kód v jazyce R a generovat tak dynamický výstup.Dokumenty obsahující kód R musí být uloženy s příponou .Rtex nebo .Rnw, jinak kód nebude fungovat. Podívejme se na příklad:
\documentclass{article}\begin{document}You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:<<>>=# Create a sequence of numbersX = 2:10# Display basic statistical measuressummary(X)@\end{document}
Otevřít tento příklad knitr v OverleafuJak vidíte, text mezi znaky <<>>= a @ je kód R. Tento kód a jeho výstup se vypíší ve formátu podobném výpisu (listingu). Tento úsek kódu může přijímat další parametry pro přizpůsobení dynamického výstupu, jak je popsáno v následující části.
Blok kódu, jako je ten v předchozí části, se obvykle nazývá chunk (úsek). V úsecích knitr můžete nastavit další volby. Viz příklad níže:
\documentclass{article}\begin{document}You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:<<echo=FALSE, cache=TRUE>>=# Create a sequence of numbersX = 2:10# Display basic statistical measuressummary(X)@\end{document}
echo=FALSE Skryje kód a vypíše pouze výstup vygenerovaný R.
cache=TRUE Je-li cache nastavena na true, úsek se nespouští, použijí se pouze objekty, které vygeneroval. To šetří čas, pokud se data v daném úseku nezměnila.
Upozorňujeme, že volba cache=TRUE není v Overleafu v současnosti podporována, ale lokálně by měla fungovat.
Objekty vygenerované v úseku je možné zpřístupnit a vypsat přímo v textu.
\documentclass{article}\begin{document}You can type R commands in your \LaTeX{} document which will be processed and their output included in the document:<<echo=FALSE, cache=TRUE>>=# Create a sequence of numbersX = 2:10# Display basic statistical measuressummary(X)@So, the mean of the data is $\Sexpr{mean(X)}$\end{document}
Otevřít tento příklad knitr v OverleafuTento histogram používá data uložená v souboru “data.txt” v aktuálním pracovním adresáři. Úseku je předáno několik voleb souvisejících s obrázkem.plot1 Toto je návěští použité pro odkazování na graf. Předpona “fig:” je povinná. V příkladu vidíte, že na obrázek se odkazuje pomocí \ref{fig:plot1}. fig.pos="t" je parametr umístění. Je stejný jako v prostředí figure. fig.height=4, fig.width=4 Šířka a výška obrázku. fig.cap="First plot" Popisek obrázku.
Do dokumentu knitr můžete importovat části externího skriptu R. To je velmi užitečné, protože je poměrně běžné napsat a odladit skript v externím programu před jeho vložením do dokumentu.Předpokládejme, že máme následující kód R v souboru mycode.R, který vkládáme do našeho dokumentu LaTeX:
## ---- myrcode1# Create a sequence of numbers X = 2:10## ---- myrcode2# Display basic statistical measuressummary(X)
Všimněte si řádků:
## ---- myrcode1
a
## ---- myrcode2
Ty označují začátek úseku kódu a jsou povinné, pokud chcete tento skript použít v dokumentu, jak ukazuje následující fragment kódu:
The chunk below will not be printed<<echo=FALSE, cache=FALSE>>=read_chunk("mycode.R")@The code must show up here<<myrcode2>>=@
První úsek se nevypisuje a slouží pouze k importu skriptu pomocí příkazu read_chunk("mycode.R"). Proto je nastavena volba echo=FALSE. Skripty také nesmí být ukládány do cache. Po importu skriptu můžete vypsat úsek pomocí návěští, které jste nastavili za ## ----. V tomto případě je to myrcode2.Všechny fragmenty kódu z tohoto článku jsme umístili do projektu, který si můžete otevřít v Overleafu.