首页 文章

交叉引用不适用于rmarkdown beamer演示文稿

提问于
浏览
4

我想通过Rmarkdown链接beamer_presentation中的节头(即,创建交叉引用或Pandoc's internal links) . 例如,我希望有一个链接,例如"see 'introduction'",通过单击此链接,演示文稿应跳转到 Headers 为'introduction'的幻灯片 .

我试过这段代码:

---
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(2017-04-21)平台:x86_64-apple-darwin15.6.0(64位)运行于:macOS Sierra 10.12.5

Matrix产品:默认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

locale:[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数据集方法库

通过命名空间加载(而不是附加):[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

1 回答

  • 0

    编辑:

    根据issue on GitHub

    看起来幻灯片使用片段标识符(URL中的散列后面的部分)来跟踪您所在的幻灯片,因此pandoc生成的所有内部链接都不起作用 . 但是,yhou总是可以写自己的链接liek链接,其中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)并查找和更改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"> 等部分 .

相关问题