2015-11-25 57 views
16

Uso rmarkdown per il rendering di documenti PDF. Ora voglio aggiungere collegamenti interni nei testi.I collegamenti interni in rmarkdown non funzionano

Nelle pagine di aiutare rmarkdown, si dice un link interno è definito come:

See the [Introduction](#introduction). 

quando uso per esempio nel prossimo codice ci dovrebbero essere due collegamenti interni: link1 e link2. Entrambi non collegano. C'è qualcosa di ovvio che sto sbagliando? Molte grazie in anticipo!

--- 
title: "Test" 
author: "test test" 
output: 
    pdf_document: 
    latex_engine: xelatex 
    number_sections: yes 
    toc: yes 
    toc_depth: 3 
    html_document: 
    css: tables.css 
    number_sections: yes 
    theme: cerulean 
    toc: yes 
    toc_depth: 3 
subtitle: test test test 
mainfont: Calibri Light 
fontsize: 12pt 
header-includes: 
- \usepackage[dutch]{babel} 
- \usepackage{fancyhdr} 
- \pagestyle{fancy} 
- \fancyfoot[LE,RO]{this is a fancy foot} 
- \usepackage{dcolumn} 
- \usepackage{here} 
- \usepackage{longtable} 
- \usepackage{caption} 
- \captionsetup{skip=2pt,labelsep=space,justification=justified,singlelinecheck=off} 
--- 

# start 

```{r results="asis",tidy=FALSE,eval=TRUE,echo=FALSE,message=FALSE, error=FALSE, warning=FALSE, comment = NA} 
cat("click here: [link1](#test 1)") 
``` 

click here: [link2](#test 1) 

\pagebreak 

#test 3 

\pagebreak 

#test 2 

\pagebreak 

#test 1 

risposta

20

Non stai impostando correttamente le ancore.

Provare quanto segue:

# start 

```{r results="asis",tidy=FALSE,eval=TRUE} 
cat("click here: [link1](#test1)") 
``` 

click here: [link2](#test1) 

\pagebreak 

# test 3 {#test3} 

\pagebreak 

#test 2 {#test2} 

\pagebreak 

#test 1 {#test1} 
+0

grazie per la risposta rapida. Questo è tutto! – rdatasculptor

+2

Anche se è piuttosto strano che nel tutorial di rmarkdown non vengano menzionati ancore. Invece dice: "Per collegarsi ad un'altra sezione dello stesso documento, usa l'identificatore generato automaticamente" – rdatasculptor

+0

@ user1983395, Non ha controllato la documentazione. So che in HTML, di solito sono chiamati ancore, ma forse "identificatori" sono più accurati. – A5C1D2H2I1M1N2O1R2T1

1

Josh Paulson ha un articolo sul sito web Rstudio che va in dettagli. Ecco la sua soluzione

Slide 1 
==================================== 
id: slide1 

Slide 2 
==================================== 
[Go to slide 1](#/slide1) 

Questo funziona io. Un codice dei carretti a mano e mohair di non funziona sul RHTML

0

Ci sono alcune regole complicate per i collegamenti interni in output PDF rmarkdown, non ben documentato sul cheat sheet, ecc

Regole:
-Solo un # per l'ancora , anche se stai usando un'intestazione con più #. Esempio: l'intestazione ### diventa #header durante il collegamento.
-Non ci sono spazi tra # e testo di ancoraggio. Esempio: #header, non # header.
- Gli ancoraggi multi-word devono essere separati da trattini. Esempio: #questa è un'intestazione che deve diventare # this-is-a-header nel link.
-I collegamenti di ancoraggio devono essere in minuscolo, anche se l'intestazione a cui si sta collegando ha capitolizzazione. Esempio: #Selezione diventa # sezione nel collegamento.