Перекрестные ссылки не работают в презентации rmarkdown beamer

Я хотел бы связать заголовки разделов в презентации beamer_presentation через Rmarkdown (т. Е. Создание перекрестных ссылок или внутренних ссылок Pandoc). Например, я хотел бы иметь ссылку, такую ​​как «см.« Введение »», щелкнув эту ссылку, презентация должна перейти к слайду с заголовком «Введение».

Я пробовал этот код:

---
output: beamer_presentation
---

## TOC

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



## Important

jklödfs

## More


sdfjkls

## stuff {#stuff}

Однако ожидаемого поведения не наблюдается. Вместо этого, если щелкнуть ссылку, будут показаны первые страницы (но не соответствующий слайд).


SessionInfo:

pandoc 1.19.1

R версия 3.4.0 (21.04.2017) Платформа: 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] статистика графики grDevices утилит наборы данных методы база

загружается через пространство имен (и не прикреплено): [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 оценивать_0.10


person Sebastian Sauer    schedule 13.06.2017    source источник
comment
Кажется, что этот вопрос также рассматривается здесь: stackoverflow.com/questions/28264805/   -  person jarauh    schedule 13.09.2019


Ответы (1)


Редактировать:

Согласно проблеме на 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 to html (работает как для ioslides, так и для slidy), найдите и измените раздел TOC:

<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 файле есть разделы <div id="important" class="slide section level2"> и т. Д.

person m-dz    schedule 13.06.2017
comment
Этот ответ относится к слайдам HTML (ioslides и slidy), но не помогает с проектором. - person jarauh; 13.09.2019