我在markdown中生成幻灯片,通过pandoc转换为html(使用pandoc -s -S -t revealjs test.md -o test.html
)。
reveal.js框架允许2D设置:在幻灯片子集内“垂直”分组幻灯片,并水平分组幻灯片子集。在降价时,它可以像这样实现:
# Head1
## Below 1
text below 1
## Below 2
text below 2
# Head 2
这会生成预期的输出。结果有四张幻灯片,排列如下:
[ Head 1 ] [ Head 2 ]
[ Below 1 ]
[ Below 2 ]
不过,我想在“Head 1”幻灯片中有更多内容。这在reveal.js中是可能的,但pandoc未正确处理以下markdown:
# Head1
Head text 1
## Below 1
text below 1
## Below 2
text below 2
# Head 2
因为slide level变为1而不是2,而不是4个幻灯片,我得到两个(每个1级标题一个)。我可以使用pandoc选项强制滑动级别为2:
pandoc -s -S -t revealjs test.md -o test.html --slide-level 2
但后来我再次得到第一个安排 - 放弃直接在“Head 1”下面的任何内容。
有什么想法吗?
自Pandoc 2.7(2019年3月):
幻灯片放映格式行为更改:标题小于幻灯片级别下的内容不再被忽略,但包含在标题幻灯片中(对于HTML幻灯片放映)或标题幻灯片后的幻灯片(对于投影仪)。此更改使得2D reveal.js幻灯片显示在每个堆栈的顶部幻灯片中具有内容(#4317,#5237)。
给定此输入test.md文件:
# Head1
Head text 1
## Below 1
text below 1
## Below 2
text below 2
# Head 2
运行:
pandoc -s -t revealjs test.md -o test.html --slide-level 2
将生成reveal.js幻灯片,其中第一张幻灯片包含:
<h1>Head1</h1>
<p>Head text 1</p>
在Pandoc 2.7之前,如果要将幻灯片嵌套到级别2,则无法将内容置于级别1标题下。这个limitation是设计的。根据开发人员John MacFarlane的说法,in June 2015:
Pandoc有一种将内容刻录到幻灯片中的方法(在用户指南中描述),所有幻灯片格式的工作方式相同,因此您可以使用相同的来源进行reveal.js和beamer。这就是推动现有系统的动力,尽管我对更好的方式持开放态度,只要它与所有格式统一运作。
幻灯片放映格式行为更改:标题小于幻灯片级别下的内容不再被忽略,但包含在标题幻灯片中(对于HTML幻灯片放映)或标题幻灯片后的幻灯片(对于投影仪)。此更改使2D reveal.js幻灯片显示在每个堆栈的顶部幻灯片中具有内容(#4317,#5237)。
(重点补充)。我还没有测试过它。
这对我来说适用于当前的pandoc版本
# That presentation
## dummy slide
<!--javascript to remove dummy slide-->
<script>
document.getElementById("dummy-slide").remove();
</script>
<!--end dummy slide-->
</section>
<section>
<section class="titleslide slide level1">
<h1>Head 1<h1>
Head text 1
<!-- dummy-slide creates it's section end tag -->
<!-- </section> -->
## Below 1
text below 1
## Below 2
text below 2
</section>
<!-- need extra end tag before next section -->
</section>
<section class="titleslide slide level1">
<h1>Head 2<h1>
Head text 1
</section>
# Head 3
它有点消除了降价的想法,可能不适用于Pandoc的某些先前或更高版本。我在使用Rmarkdown时仍然觉得它很有用。以上是用
---
title: "That presentation"
output:
revealjs::revealjs_presentation:
keep_md: TRUE
---
## dummy slide
<!--javascript to remove dummy slide-->
<script>
document.getElementById("dummy-slide").remove();
</script>
<!--end dummy slide-->
</section>
<section>
<section class="titleslide slide level1">
<h1>Head 1<h1>
Head text 1
<!-- dummy-slide creates it's section end tag -->
<!-- </section> -->
## Below 1
text below 1
## Below 2
text below 2
</section>
<!-- need extra end tag before next section -->
</section>
<section class="titleslide slide level1">
<h1>Head 2<h1>
Head text 1
</section>
# Head 3
如果我理解正确,以下应该可以解决问题:
# Head1
---
Head text 1
## Below 1
text below 1
## Below 2
text below 2
# Head 2
使用您提到的第一个命令编译:
pandoc -s -S -t revealjs test.md -o test.html
这里有一个解决方法(https://github.com/rstudio/revealjs/issues/40),它建议以下(对我来说没问题):
---
title : Title
date : Dec 22, 2016
output :
revealjs::revealjs_presentation
---
<section class="titleslide level1">
<h1>TOP SLIDE</h1>
Some blabla
## SUBSLIDE
Some sub-blabla
</section>
# Next section slide
## Next subslide
Text as per standard layout