2015-11-25 51 views
16

我使用rmarkdown來渲染pdf文檔。現在我想在文本中添加內部鏈接。rmarkdown中的內部鏈接不起作用

rmarkdown的幫助頁面,它說,內部鏈接的定義是:當我使用例如

See the [Introduction](#introduction). 

下一個代碼應該有兩個內部鏈接:link1和link2。兩者都不聯繫。有什麼顯而易見的,我做錯了嗎?提前謝謝了!

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

回答

20

您沒有正確設置錨點。

嘗試以下操作:

# 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

感謝您的快速回復。而已! – rdatasculptor

+2

雖然在rmarkdown教程中沒有提到錨點,但相當奇怪。相反,它說:「要鏈接到同一文檔的另一部分,使用自動生成的標識符」 – rdatasculptor

+0

@ user1983395,沒有檢查文檔。我知道在HTML中,它們通常被稱爲錨點,但是「標識符」可能更準確。 – A5C1D2H2I1M1N2O1R2T1

1

喬什 - 保爾森對Rstudio網站,進入細節的文章。這是他的解決方案

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

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

這對我有用。手推車和馬海毛的代碼不會對RHTML

工作
0

有在rmarkdown PDF輸出,無據可查的小抄內部鏈接一些棘手的規則等

規則:
- 只有一個#錨,即使您使用帶有多個#的標頭。例如:###標題在鏈接時變爲#header。
#和錨文本之間沒有空格。例如:#標題,而不是#標題。
- 多字錨應用破折號分隔。例如:#這是一個標題需要變成鏈接中的#這是一個標題。
- 即使您正在鏈接的標題具有Capitolization,鏈接也需要小寫。例如:#Section在鏈接中變爲#section。