为啥 Xaringan 幻灯片中没有出现智能引号和破折号?
Posted
技术标签:
【中文标题】为啥 Xaringan 幻灯片中没有出现智能引号和破折号?【英文标题】:Why are smart quotes and em-dashes not appearing in Xaringan slides?为什么 Xaringan 幻灯片中没有出现智能引号和破折号? 【发布时间】:2020-07-10 08:04:41 【问题描述】:问题
根据文档,Xaringan 应该
将普通引号" "
转换为智能引号“ ”,并且
将 3 个连字符“---
”的序列变成一个破折号“-”
我遇到的问题是,这些转换仅发生在 yaml 元数据中的字符串(出现在标题幻灯片中),但不会发生在普通幻灯片中的文本。
示例
文件minimal.Rmd
包含以下代码:
---
title: "\"It works, doesn't it?\" --- this is the title slide"
subtitle: "Smart quotes and em dash work in yaml"
output:
xaringan::moon_reader
---
# This is a normal slide
It works in the slides too, doesn't it? --- "I hope so", he said.
No, it doesn't.
编织后,我在minimal.html
得到以下幻灯片:
标题幻灯片(注意智能引号和 em-dash):
第二张幻灯片(难看的引号和 3 个连字符):
想法
我很确定 Xaringan 确实不使用 Pandoc 来生成 html。如果过程中使用了Pandoc,默认会美化引号。
我尝试在 yaml 元数据中使用smart: true
,如RMarkdown book 所示,但没有效果。
查看moon_reader
function 的代码,我看到它调用rmarkdown::html_document
来生成html。
这个open issue in the RMarkdown
Github repository 讨论了smart: true
选项和对Pandoc 的调用中的等效选项。问题作者建议放弃 yaml 选项,让 Pandoc 来美化引号等。
但是 Xaringan 不使用 Pandoc,所以这可能是相关的吗?
我的设置
R version 3.6.3 (2020-02-29)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 18.04.4 LTS
xaringan_0.15
knitr_1.28
rmarkdown_2.1
提前感谢您的帮助。
【问题讨论】:
你是对的,对于 xaringan 幻灯片,Markdown 是通过 web 浏览器中的 remark.js 呈现的,而不是 Pandoc。 谢谢@YihuiXie。我刚刚意识到调用 pandoc 只生成标题幻灯片;这就是标题幻灯片有智能引号的原因。因此,是否需要注意美化其他幻灯片中的引号和破折号? 完全正确。 【参考方案1】:解决方案链接
https://github.com/fnaufel/smartify
详情
毕竟,xaringan 和 remarkjs 都不负责美化引号和破折号。
我四处寻找 javascript 解决方案来解决我的问题,但最终决定实现我自己的。在in_header.html
和after_body.html
中添加几行代码后,您可以加载并运行我的 Javascript hack 来智能化幻灯片中的引号和破折号。无需安装任何东西。
更多详情请访问https://github.com/fnaufel/smartify。
我希望这对其他人有用。
再次感谢@YihuiXie 的cmets。
【讨论】:
这对我很有帮助,因为前几天我还在为这种行为摸不着头脑。我一定会看看你的 GitHub 存储库。以上是关于为啥 Xaringan 幻灯片中没有出现智能引号和破折号?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 css 文件控制 xaringan 幻灯片 rmarkdown 中标题幻灯片中的作者和日期文本