R 如何使用激活的'跳到脚注;设置空间';和';footmisc';包裹
我刚刚注意到,点击pdf中的脚注链接会使文档跳到顶部,而不是脚注。调查我为什么确定latex软件包R 如何使用激活的'跳到脚注;设置空间';和';footmisc';包裹,r,latex,r-markdown,knitr,pandoc,R,Latex,R Markdown,Knitr,Pandoc,我刚刚注意到,点击pdf中的脚注链接会使文档跳到顶部,而不是脚注。调查我为什么确定latex软件包setspace和footmisc显然是导致错误的原因 不幸的是,我急需两个包裹。前者可以在\onehalfspacting和\singlespacing之间切换,后者可以获得漂亮的悬挂脚注 有人知道解决办法吗 MWE (注意:尝试取消注释未注释的行。) 注意事项: MiKTeX 2.9.6850 故意使用过时的rmarkdown_1.8() >sessionInfo() R版本3.5.1(2
setspace
和footmisc
显然是导致错误的原因
不幸的是,我急需两个包裹。前者可以在\onehalfspacting
和\singlespacing
之间切换,后者可以获得漂亮的悬挂脚注
有人知道解决办法吗
MWE
(注意:尝试取消注释未注释的行。)
注意事项:
- MiKTeX 2.9.6850
- 故意使用过时的rmarkdown_1.8()
>sessionInfo()
R版本3.5.1(2018-07-02)
平台:x86_64-w64-mingw32/x64(64位)
在以下环境下运行:Windows 7 x64(build 7601)Service Pack 1
矩阵乘积:默认值
区域设置:
[1] LC\U COLLATE=德国瑞士。1252 LC\U CTYPE=德国瑞士。1252
[3] LC_货币=德国_瑞士。1252 LC_数字=C
[5] LC_时间=英语_美国1252
附加基本包:
[1] 统计图形GRUTILS数据集方法库
通过命名空间加载(未附加):
[1] 编译器\u 3.5.1后台端口\u 1.1.2 rprojroot\u 1.3-2 htmltools\u 0.3.6工具\u 3.5.1
[6] yaml_2.2.0 Rcpp_0.12.19 R标记_1.8 knitr_1.20 digest_0.6.18
[11] 评估0.12
我遇到了类似的问题(脚注不是链接,因此在使用footmisc时不再可点击)。不幸的是,我无法在.Rmd
文档本身中找到任何直接解决此问题的方法。相反,我必须编辑随rmarkdown一起提供的Pandoc LaTeX模板
正如@Mico在TeX/LaTeX stack exchange站点中解释的,根本问题是LaTeX包hyperref在footmisc之前调用,而它必须以相反的方式调用,以避免两者之间的不兼容。如果查看rmarkdown使用的默认LaTeX模板,您会注意到在标题包含来自YAML前端的之前,hyperref被称为way。我所知道的唯一解决方法是修改LaTeX模板,即在调用hyperref的行之前插入行\usepackage[hang,flushmargin]{footmisc}
要执行此操作,请执行以下步骤:
找到在rmarkdown/knitr调用Pandoc时使用的原始模板文件
在Unix/Linux系统上,您可能会在路径~/Library/R/3.5/Library/rmarkdown/rmd/latex/
或/usr/lib/R/site Library/rmarkdown/rmd/latex/
下找到原始模板文件(只需将路径的开头替换为在R控制台中显示的.libpath()
)
至少在rmarkdown v1.10中,上面的文件夹包含4个不同的LaTeX模板文件:
default-1.14.tex
default-1.15.2.tex
default-1.17.0.2.tex
default.tex
default-1.17.0.2.tex
如果使用的是半新版本的Pandoc(它与rmarkdown捆绑在一起,如果在您的系统上找不到或只有过时的Pandoc版本,则将使用它;运行rmarkdown::Pandoc_version()
以了解实际使用的版本)
首先,我尝试了default.tex
,但结果非常过时,default-1.17.0.2.tex
工作正常
将该文件的内容放入一个新的template.tex
(或任何您想命名的)文件中,并在调用package hyperref之前插入footmisc自定义代码(第57行)
将新模板文件的路径放入YAML front matter项下的output.pdf\u document.template
:
---
output:
pdf_document:
template: 'path/to/template.tex'
---
顺便说一句:我没有遇到任何关于包设置空间的问题。但在我的例子中,由于YAML前端设置了linestretch
(有关触发设置空间加载等的详细信息,请参阅模板)。我肯定已经遵循了您的所有步骤,但它仍然会跳到顶部。使用pandoc版本1.19.2.1
hm,奇怪。我使用的是相同的Pandoc版本'1.19.2.1'
。您确定它与您正在使用的PDF视图无关吗?
---
output:
pdf_document:
template: 'path/to/template.tex'
---