这里有两个问题:
1. 添加超链接作为脚注
默认情况下,输出的 LaTeX 文档不会显示超链接。我们可以重新定义如何href
使用 LaTeX 命令进行工作。您可以将以下行添加到您的preamble.tex
或者直接将其嵌入到标题中:
\let\oldhref\href
- \renewcommand{\href}[2]{#2\footnote{\url{#1}}}
在 YAML 标头中使用它:
---
output: bookdown::pdf_book
header-includes:
- \let\oldhref\href
- \renewcommand{\href}[2]{#2\footnote{\url{#1}}}
---
如果您更喜欢将其保存为单独的文件(我建议将其用于较大的项目),您可以使用:
header-includes: preamble.tex
2. 文本引用在标题中不起作用
导致此问题的原因是文本引用似乎无法包含任何特殊字符,包括_
and -
。我将此作为另一个问题提出,因为这似乎是您问题的一个特定子问题:如果 URL 包含特殊字符,Bookdown 文本引用将不起作用
最简单的解决方法似乎是使用类似服务来缩短 URLthis。它是免费的,并且链接不会过期。
这是一个部分有效的解决方案。 Stackoverflow 不允许包含来自 google 的网址,因此您必须替换缩短的网址与你的链接。
---
output: bookdown::pdf_book
header-includes:
- \let\oldhref\href
- \renewcommand{\href}[2]{#2\footnote{\url{#1}}}
---
The references work fine when not used within a text reference [Spectrum of light. V, violet; B, blue; G, green Y, yellow](https://commons.wikimedia.org/wiki/File:Linear_visible_spectrum.svg)
(ref:spectrum) [Spectrum of light. V, violet; B, blue; G, green Y, yellow](Shortened URL)
```{r spectrum, fig.cap='(ref:spectrum)', echo=FALSE, message=FALSE, warning=FALSE}
plot(cars)
```
我说这只是部分起作用:正如您所看到的,我们现在有了 URL 的脚注,但标题中的脚注实际上并未显示在页脚中!
我认为你更好的选择是使用参考书目并使用 [@ref] 中的引文来引用该图。检查这里:https://bookdown.org/yihui/bookdown/itations.html