【问题标题】:Cross-referencing not working in rmarkdown beamer presentation交叉引用在 rmarkdown beamer 演示文稿中不起作用
【发布时间】:2017-11-15 04:33:26
【问题描述】:

我想通过 Rmarkdown 链接 beamer_presentation 中的部分标题(即,创建交叉引用或 Pandoc's internal links)。例如,我想要一个链接,例如“see 'introduction'”,通过点击这个链接,演示文稿应该跳转到标题为“introduction”的幻灯片。

我试过这段代码:

---
output: beamer_presentation
---

## TOC

- [Important](#Important)
- [More](#More)
- [Stuff](#stuff)



## Important

jklödfs

## More


sdfjkls

## stuff {#stuff}

但是,预期的行为没有出现。相反,如果单击链接,则会显示第一页(但不显示相应的幻灯片)。


会话信息:

pandoc 1.19.1

R 版本 3.4.0 (2017-04-21) 平台:x86_64-apple-darwin15.6.0(64位) 运行于:macOS Sierra 10.12.5

矩阵产品:默认 BLAS:/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib LAPACK:/Library/Frameworks/R.framework/Versions/3.4/Resources/lib/libRlapack.dylib

语言环境: [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

附加的基础包: [1] stats graphics grDevices utils datasets methods base

通过命名空间加载(未附加): [1] compiler_3.4.0 backports_1.1.0 magrittr_1.5 rsconnect_0.8 rprojroot_1.2 htmltools_0.3.6 tools_3.4.0 yaml_2.1.14 Rcpp_0.12.11
[10] stringi_1.1.5 rmarkdown_1.5 knitr_1.16 stringr_1.2.0 digest_0.6.12 evaluate_0.10

【问题讨论】:

标签: r knitr r-markdown beamer cross-reference


【解决方案1】:

编辑:

根据issue on GitHub

幻灯片似乎使用片段标识符(URL 中哈希后的部分)来跟踪您所在的幻灯片,因此 pandoc 生成的所有内部链接都不起作用。

但是,您始终可以编写自己的链接,例如链接,其中 1 是您要链接到的幻灯片编号...

所以你必须使用以下解决方法(原则上与我下面的旧方法相同,但直接在 Rmd 文件中):

---
title: "Untitled"
author: "John Doe"
date: "13 June 2017"
output:
  slidy_presentation: default
  ioslides_presentation: default
  beamer_presentation: default
---

## TOC

[Important](#(3))

[More](#(4))

[Stuff](#(5))

## Important {#important}

jklödfs

## More {#more}

sdfjkls

## stuff {#stuff}

下面的旧答案:

恐怕这只是一种解决方法,但可以工作(至少在我的系统上,Win 8.1、R 3.4.0、pandoc 1.19.2.1、knitr 1.15.16):

使用下面的 Rmd 文档:

---
title: "Untitled"
author: "John Doe"
date: "13 June 2017"
output:
  slidy_presentation: default
  ioslides_presentation: default
  beamer_presentation: default
---

## TOC

[Important](#important)

[More](#more)

[Stuff](#stuff)

## Important {#important}

jklödfs

## More {#more}

sdfjkls

## stuff {#stuff}

运行 Knit 到 html(适用于 ioslides 和 slidy)并找到并更改目录 部分:

<div id="toc" class="slide section level2">
<h2>TOC</h2>
<p><a href="#important">Important</a></p>
<p><a href="#more">More</a></p>
<p><a href="#stuff">Stuff</a></p>
</div>

到这里:

<div id="toc" class="slide section level2">
<h2>TOC</h2>
<p><a href="#(3)">Important</a></p>
<p><a href="#(4)">More</a></p>
<p><a href="#(5)">Stuff</a></p>
</div>

问题是浏览器找不到例如#important 部分,但找到 #(3)。我不知道为什么很遗憾,因为生成的 html 文件有 &lt;div id="important" class="slide section level2"&gt; 等部分。

【讨论】:

  • 这个答案是指 HTML 幻灯片(ioslides 和 slidy),但对投影仪没有帮助。
猜你喜欢
  • 2021-01-30
  • 1970-01-01
  • 2023-02-23
  • 2018-10-14
  • 2015-02-07
  • 1970-01-01
  • 1970-01-01
  • 2016-06-11
  • 2021-12-05
相关资源
最近更新 更多