2015-11-25 16 views
16

Ich verwende rmarkdown, um PDF-Dokumente zu rendern. Jetzt möchte ich interne Links in den Texten hinzufügen.Interne Links in rmarkdown funktionieren nicht

In den helfenden Seiten von rmarkdown, sagt es ein interner Link ist definiert als:

See the [Introduction](#introduction). 

Wenn ich zum Beispiel verwenden Der nächste Code sollte zwei interne Links sein: link1 und link2. Beide verlinken nicht. Ist etwas offensichtlich, dass ich falsch mache? Vielen Dank im Voraus!

--- 
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 

Antwort

20

Sie setzen die Anker nicht korrekt.

Versuchen Sie Folgendes:

# 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

Vielen Dank für Ihre schnelle Antwort. Das ist es! – rdatasculptor

+2

Obwohl es ziemlich seltsam ist, dass im Rmarkdown-Tutorial keine Anker erwähnt werden. Stattdessen heißt es: "Um eine Verknüpfung mit einem anderen Abschnitt desselben Dokuments herzustellen, verwenden Sie den automatisch generierten Bezeichner" – rdatasculptor

+0

@ user1983395, Die Dokumentation wurde nicht überprüft. Ich weiß, dass sie in HTML normalerweise Anker genannt werden, aber vielleicht sind "Bezeichner" genauer. – A5C1D2H2I1M1N2O1R2T1

1

Josh Paulson einen Artikel über Rstudio Website hat, die in die Details geht. Hier ist seine Lösung

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

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

Das funktioniert mir. Ein Handcart Und Mohair Code funktioniert nicht auf RHTML

0

Es gibt einige knifflige Regeln für interne Links in rmarkdown PDF-Ausgabe, nicht gut dokumentiert auf Spickzettel usw.

Regeln:
-Nur ein # für Anker , auch wenn Sie eine Kopfzeile mit mehreren # verwenden. Beispiel: ### header wird beim Verknüpfen zu #header.
- Keine Leerzeichen zwischen # und Ankertext. Beispiel: #header, nicht # header.
-Mehrwort-Anker sollten durch Bindestriche getrennt sein. Beispiel: # Dies ist ein Header muss # in diesem Link # this-is-a-header werden.
-Anker-Links müssen in Kleinbuchstaben sein, auch wenn der Header, zu dem Sie verlinken, Capitolization hat. Beispiel: #Section wird #Sektion in der Verknüpfung.

Verwandte Themen