> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/latex/cs/dalsi-temata/29-knitr.md).

# Knitr

Jak je uvedeno na Wikipedii, [Knitr je nástroj pro dynamické generování reportů s R](https://en.wikipedia.org/wiki/Knitr), programovacím jazykem zaměřeným na statistiku. Tento článek vysvětluje, jak přidat kód R do vašeho dokumentu LaTeX, aby se generoval dynamický výstup.

Ve standardní distribuci LaTeXu musíte mít R nastavené ve svém operačním systému a ke kompilaci spustit několik speciálních příkazů. Overleaf vám může ušetřit starosti, **knitr** funguje ihned po instalaci.

## Úvod

Dokumenty, které obsahují 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:

```latex
\documentclass{article}
\begin{document}

Do svého dokumentu \LaTeX{} můžete zadávat příkazy R, které budou zpracovány a jejich výstup bude vložen do dokumentu:

<<>>=
# Vytvořte posloupnost čísel
X = 2:10

# Zobrazte základní statistické ukazatele
summary(X)

@
\end{document}
```

![KnitrDemo1.png](/files/0fb2e14785d4ff1205f6342e43eb8c588183c817)

&#x20;[Otevřete tento `knitr` příklad na Overleafu](https://www.overleaf.com/project/new/template/20421?id=69881107\&templateName=Knitr+demo+1\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Jak vidíte, text mezi znaky `<<>>=` a `@` je kód R, tento kód i jeho výstup se tisknou ve formátu připomínajícím výpis. Tento blok kódu může přijímat několik dalších parametrů pro přizpůsobení dynamického výstupu. Viz další část.

## Bloky kódu

Blok kódu, jako je ten uvedený v předchozí části, se obvykle nazývá *blok*. V blocích knitr můžete nastavit některé další volby. Podívejte se na níže uvedený příklad:

```latex
\documentclass{article}
\begin{document}

Do svého dokumentu \LaTeX{} můžete zadávat příkazy R, které budou zpracovány a jejich výstup bude vložen do dokumentu:

<<echo=FALSE, cache=TRUE>>=
# Vytvořte posloupnost čísel
X = 2:10

# Zobrazte základní statistické ukazatele
summary(X)

@
\end{document}
```

![KnitrDemo2.png](/files/086c1d413526264730fafeda412ba9a33598d654)

&#x20;[Otevřete tento `knitr` příklad na Overleafu](https://www.overleaf.com/project/new/template/20423?id=69885763\&templateName=Knitr+demo+2\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Uvnitř jsou předány tři další volby `<<` a `>>`.

**echo=FALSE**

Tím se skryje kód a vytiskne se pouze výstup generovaný R.

**cache=TRUE**

Je-li cache nastaveno na true, blok se nespustí, pouze objekty jím vytvořené. To šetří čas, pokud se data v tomto bloku nezměnila. Všimněte si, že volba cache=TRUE není v současnosti v Overleafu podporována, ale lokálně by měla fungovat.

Podívejte se na [referenční příručku](#reference-guide) pro další možnosti.

## Vložené příkazy

Je možné přistupovat k objektům vytvořeným v bloku a tisknout je vloženě.

```latex
\documentclass{article}
\begin{document}

Do svého dokumentu \LaTeX{} můžete zadávat příkazy R, které budou zpracovány a jejich výstup bude vložen do dokumentu:

<<echo=FALSE, cache=TRUE>>=
# Vytvořte posloupnost čísel
X = 2:10

# Zobrazte základní statistické ukazatele
summary(X)

@

Takže průměr dat je $\Sexpr{mean(X)}$
\end{document}
```

![KnitrDemo3.png](/files/36d6f7bf19f9958b3663a0190d42e4ee12033931)

&#x20;[Otevřete tento `knitr` příklad na Overleafu](https://www.overleaf.com/project/new/template/20425?id=69886866\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Příkaz `\Sexpr{mean(X)}` vypíše výstup vrácený kódem R `mean(X)`. Do složených závorek lze předat libovolný příkaz R.

## Grafy

Grafy lze také přidat do **knitr** dokumentu. Podívejte se na další příklad

```latex
\documentclass{article}
\begin{document}

<<plot1, fig.pos="t", fig.height=4, fig.width=4, fig.cap="First plot">>=

xdata = read.csv(file="data.txt", head=TRUE,sep=" ")

hist(xdata$data, main="Overleaf histogram", xlab="Data")

@

Obrázek \ref{fig:plot1} je jednoduchý histogram.

\end{document}
```

![KnitrDemo4.png](/files/b7749f8b3d7b5b369138303c0c7f0ccb300d6b45)

&#x20;[Otevřete tento `knitr` příklad na Overleafu](https://www.overleaf.com/project/new/template/20427?id=69890965\&templateName=Knitr+demo+3\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=)

Tento histogram používá data uložená v souboru "data.txt" v aktuálním pracovním adresáři. Do bloku je předáno několik voleb souvisejících s obrázkem.

**plot1**

Toto je označení použité pro odkaz na graf. Předpona "fig:" je povinná. V příkladu můžete vidět, že se na obrázek odkazuje pomocí \ref{fig:plot1}.

**fig.pos="t"**

Parametr umístění. Je stejný jako ten používaný v prostředí figure.

**fig.height=4, fig.width=4**

Šířka a výška obrázku.

**fig.cap="První graf"**

Popisek obrázku.

## Externí skripty R

Můžete importovat části externího skriptu R do **knitr** dokumentu. To je velmi užitečné, protože je poměrně běžné skript před vložením do dokumentu psát a ladit v externím programu.

Předpokládejme, že máme následující kód R v souboru nazvaném `mycode.R` který zahrneme do našeho dokumentu LaTeX:

```latex
## ---- myrcode1
# Vytvořte posloupnost čísel
 X = 2:10

## ---- myrcode2
# Zobrazte základní statistické ukazatele
summary(X)
```

Všimněte si řádků

```latex
## ---- myrcode1
```

a

```latex
## ---- myrcode2
```

Ty označují začátek bloku kódu a jsou povinné, pokud chcete tento skript použít v našem dokumentu, jak ukazuje následující úryvek kódu:

```latex
Níže uvedený blok se nevypíše

<<echo=FALSE, cache=FALSE>>=
read_chunk("mycode.R")
@

Kód se musí zobrazit zde

<<myrcode2>>=

@
```

![KnitrDemo5.png](/files/f3de0a6b58f608506422c9d4e31f4015cf738dc7)

První blok se nevypisuje, slouží pouze k importu skriptu příkazem `read_chunk("mycode.R")`, proto je volba `echo=FALSE` nastavena. Také skripty se nesmějí cachovat. Jakmile je skript importován, můžete vypsat blok pomocí označení, které jste nastavili po `## ----`. V tomto případě je to `myrcode2`.

Všechny úryvky kódu z článku jsme umístili do projektu, který  [můžete otevřít v Overleafu](https://www.overleaf.com/project/new/template/20429?id=69894649\&templateName=Knitr+full+demo\&latexEngine=pdflatex\&texImage=texlive-full%3A2020.1\&mainFile=) .

## Referenční příručka

**Některé volby bloku**

* `výsledky`. Mění chování výsledků generovaných kódem R, možné hodnoty jsou
  * `značkování` Pro formátování výstupu použijte LaTeX.
  * `beze změny` Vypíše nezpracované výsledky z R.
  * `ponechat` Uchová výstupní výsledky a vypíše je na konci bloku.
  * `skrýt` Skrýt výsledky.
* `echo`. Zda zahrnout zdrojový kód R. Může nabývat dalších parametrů, `echo=2:3` vypíše pouze druhý a třetí řádek; `echo=-2:-3` vyloučí pouze druhý a třetí řádek.
* `cache`. Zda cachovat blok kódu. Možné hodnoty jsou `TRUE` a `FALSE`
* `highlight`. Zda zvýraznit zdrojový kód. Možné hodnoty jsou `TRUE` a `FALSE`
* `pozadí`. Barva pozadí bloku; lze použít formáty rgb a HTML, výchozí hodnota je *"#F7F7F7"*.

## Další čtení

Další informace najdete v

* [Zvýrazňování kódu s minted](/latex/cs/formatovani/12-code-highlighting-with-minted.md)
* [Používání barev v LaTeXu](/latex/cs/formatovani/13-using-colors-in-latex.md)
* [grafy v LaTeXu](/latex/cs/pro-konkretni-obor/08-pgfplots-package.md)
* [Vkládání obrázků](/latex/cs/dalsi-temata/27-inserting-images.md)
* [Tabulky](/latex/cs/obrazky-a-tabulky/01-tables.md)
* [Umísťování obrázků a tabulek](/latex/cs/obrazky-a-tabulky/02-positioning-images-and-tables.md)
* [Balíček TikZ](/latex/cs/obrazky-a-tabulky/05-tikz-package.md)
* [Matematické výrazy](/latex/cs/matematika/01-mathematical-expressions.md)
* [webových stránkách **knitr** webová stránka](http://yihui.name/knitr/)
* [webových stránkách **knitr** manuál balíčku](https://bitbucket.org/stat/knitr/downloads/knitr-manual.pdf)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/latex/cs/dalsi-temata/29-knitr.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
