我在获取包含网址的图例的正确pdf输出时遇到问题。它的作用为bookdown::gitbook
,但不作为bookdown::pdf_book
以下是一个例子:
---
output: bookdown::pdf_book
---
## Reference with URL doesn't work
In this experiment, we will use a [spectrophotometer] (https://en.wikipedia.org/wiki/Spectrophotometry) to measure the absorption of light of different wavelength by colored solutions.
(ref:spectrum) [Spectrum of light. V, violet; B, blue; G, green Y, yellow; O, orange; R, red](https://commons.wikimedia.org/wiki/File:Linear_visible_spectrum.svg)
```{r spectrum, fig.cap='(ref:spectrum)', echo=FALSE, message=FALSE, warning=FALSE}
knitr::include_graphics("./figures/photosynthesis/spectrum.png")
```
## Reference without URL does work
In this experiment, we will use a [spectrophotometer] (https://en.wikipedia.org/wiki/Spectrophotometry) to measure the absorption of light of different wavelength by colored solutions.
(ref:spectrumNOurl) Spectrum of light. V, violet; B, blue; G, green Y, yellow; O, orange; R, red.
```{r spectrumNOurl, fig.cap='(ref:spectrumNOurl)', echo=FALSE, message=FALSE, warning=FALSE}
knitr::include_graphics("./figures/photosynthesis/spectrum.png")
```
我想要的是图例,如图所示,没有网址,但在脚注的网址上加了一个上标。
其他信息
我在MacBook Pro 13上的OS X(10.13.5 Beta)上的docker容器(摇杆/ rstudio)上使用了bookdown(0.7.8),rstudio(1.1.423)和Pandoc 2.1.3。
我已尽力而为但无法解决这个问题。我将所有Pandoc降级为带有降价功能的1.x版本,但却遇到了同样的问题。我是否使用pdflatex或xelatex作为引擎并不重要。
答案 0 :(得分:2)
这里有两个问题:
<强> 1。添加超链接作为脚注
默认情况下,输出LaTeX文档不会显示超链接。我们可以使用LaTeX命令重新定义href
的工作方式。您可以将以下行添加到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。文字参考不在标题中
导致此问题的原因是文字参考似乎无法包含任何特殊字符,包括_
和-
。我已将此问题作为另一个问题提出,因为这似乎是您问题的一个特定子问题:Bookdown text references not working if URL contains special characters
最简单的解决方法似乎是使用this等服务缩短网址。它是免费的,链接不会过期。
这是部分有效的解决方案。 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/citations.html