2016-12-11 1 views
3

J'ai une table à RMarkdown que je veux faire référenceRéférencer une table simple RMarkdown

Right  Left  Center  Default 
-------  ------ ---------- ------- 
    12  12  12   12 
    123  123  123   123 
     1  1   1    1 

Table: Demonstration of simple table syntax. 

Quelqu'un peut-il me dire comment faire référence. Donc, fondamentalement, je tiens à dire S'il vous plaît see table 1.1 for more detail

+2

Vous pouvez utiliser le filtre pandoc-crossref, il fonctionne avec tous les formats de sortie: https://github.com/lierdakil/pandoc-crossref – scoa

+0

Salut @scoa, Je vous remercie pour cela. Ça ressemble à ce dont j'ai besoin. Comme je ne suis pas un expert sur pandoc. Pouvez-vous me dire comment installer le filtre 'pandoc-crossref'. –

+0

Il existe (des binaires précompilés pour toutes les plateformes) [https://github.com/lierdakil/pandoc-crossref/releases/tag/v0.2.4.1a]; cependant, je pense qu'il est préférable de l'installer via cabal: [install haskell platform] (https://www.haskell.org/platform) puis de faire une mise à jour de cabal et une installation de cabal pandoc-crossref. Enfin, ajoutez 'pandoc_args: [" -F = pandoc-crossref "]' à l'avant de votre YAML pour lancer le filtre. – scoa

Répondre

3

Une solution qui ne dépend pas du format de sortie est le pandoc-crossref filter. Chaque fois que vous émettez une table, ajoutez une référence à sa légende (ici avec entremetteur):

```{r} 
library(pander) 
tb <- table(sample(letters[1:4], 10, replace=TRUE)) 
pander(tb, caption= "my table {#tbl:mytable}") 
``` 

Ensuite, vous pouvez faire référence à cette table avec:

see [@tbl:mytable] for more details 

Pour exécuter le filtre, ajoutez à votre YAML avant la matière:

--- 
output: 
    pdf_document: 
    pandoc_args: ["-F=pandoc-crossref"] 
--- 

Pandoc-crossref peut être installé avec son binaries ou par l'haskell platform. Dans ce dernier cas:

cabal update 
cabal install pandoc-crossref