Bookdown 添加 URL 作为脚注

2023-12-12

我在获取包含 url 的图例的正确 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")
```

我想要的是图形图例看起来像示例中没有 url,但在脚注中的 url 上有上标。


附加信息

我在 MacBook Pro 13 上的 OS X (10.13.5 Beta) 上的 docker 容器 (rocker/rstudio) 上使用 bookdown (0.7.8)、rstudio (1.1.423) 和 Pandoc 2.1.3。

我已经尽了一切努力,但无法解决这个问题。我将所有 Pandoc 降级到 bookdown 附带的 1.x 版本,但遇到了同样的问题。我使用 pdflatex 还是 xelatex 作为引擎并不重要。


这里有两个问题:

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)
```

enter image description here

我说这只是部分起作用:正如您所看到的,我们现在有了 URL 的脚注,但标题中的脚注实际上并未显示在页脚中!

我认为你更好的选择是使用参考书目并使用 [@ref] 中的引文来引用该图。检查这里:https://bookdown.org/yihui/bookdown/itations.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bookdown 添加 URL 作为脚注 的相关文章

  • Rmarkdown 到 Word 输出 - 在标题上方插入图像

    我有一个 Rmarkdown 文档 我正在将其输出到 Word 并且我正在尝试将公司徽标插入到页面顶部 位于包含标题和作者的标题上方 我还没有找到解决这个问题的办法 我尝试过使用pandoc args to include in heade
  • 包含来自外部 R 脚本的代码、运行、显示代码和输出

    是否可以将外部 R 脚本中的代码包含在 Rmd 中 并同时运行代码 显示代码并在输出 HTML 文件中显示其结果 例如 如果我有 x lt 1 y lt 3 z lt x y z in external R 在输出文档中 我想看到上面的代码
  • 如何在align环境中标记每个方程?

    我想知道如何在对齐环境中标记每个方程 例如 begin align label eq lnnonspbb lambda i mu i 0 mu i xi i 0 lambda i y i w T x i b 1 xi i 0 end ali
  • 在 python 中将 Latex 代码转换为 mathml 或 svg 代码

    是否有任何 python 代码允许获取乳胶代码 用于方程 并将其解析为 mathml 或 svg 代码 一个以字符串 latex 代码 作为参数并输出字符串 svg 或 mathml 代码 的简单函数将是完美的 附言 我找到了这个http
  • Rmarkdown 和 PDF 输出:评估 Latex 部分中的 Markdown

    如何才能评估 Latex 代码中使用的 markdown 代码 带有 PDF Latex 输出的 Rmarkdown 非常简单的最小示例 begin center should be bold text end center 使用knitr
  • 删除 rmarkdown 文档中的部分

    我希望将章节标题放在页眉而不是页面正文中 fancyhead C 将节标题放在标题中 但如何抑制节的正文打印 title Untitled classoption landscape output pdf document number s
  • 如何在电子邮件正文中发送 R Markdown 报告?

    更新 布兰登 贝特尔森的回答 布兰登的答案产生以下输出 它不会像 Rstudio 那样生成漂亮的表格或突出显示代码 并且它会在某些带有 unicode 的 html 文件上崩溃 因此我没有使用它来自动化我的电子邮件报告 我目前的做法是用Rs
  • pybtex 是否支持 .bib 文件中的重音/特殊字符?

    from pybtex database input import bibtex parser bibtex Parser bibdata parser parse file sample bib 上面的代码片段在解析 bib 文件时效果非
  • 在 R Markdown 文件中嵌入 pdf 并调整分页

    我即将完成博士学位 我需要在 R Markdown 文本中间的某个位置嵌入一些论文 pdf 格式 将 R Markdown 转换为 PDF 时 我希望将这些 PDF 论文嵌入到转换中 但是 我希望这些 PDF 论文也根据 Markdown
  • Sympy - 分数操作

    我基本上希望 Sympy 生成乳胶代码 frac x 1 3 y 但每当我要求它生成事物的 Tex 组件时 Sympy 总是返回 frac x 3 frac 1 3 如何避免分解方程 并将等于运算符分配给另一个变量 我还没有尝试将 y 部分
  • R 笔记本:opts_chunk 没有效果

    我正在开发我的第一台 R 笔记本 除了一个问题之外 它运行得很好 我想成为我内联输出的数字 r realbignumber 以逗号作为分隔符且最多 2 位小数 123 456 789 12 为了实现这一目标 我在文档的开头添加了一个块 其中
  • 有没有办法让 LaTeX 将图形放置在同一页面中作为对该图形的引用?

    我正在使用 LaTeX 和图形环境 我非常熟悉该环境的参数 htbp 而且我通常也熟悉 LaTeX 默认情况下决定将每个图形放在哪里的策略 例如 将图形放置在页面的顶部或底部 我想知道是否有一个包 宏或一些我可以提供的命令 这样如果我有一个
  • 更改 blogdown 中的图形和表格标题

    我正在摆弄blogdown并想创建带有非英语标题的图形和表格 下面的块 r label1 echo FALSE fig cap Fancy caption fig fullwidth TRUE plot 1 1 生成情节和标题 图 1 精美
  • Mathjax Latex 符号正方形和三角形大小

    我有一个使用 MathJax 来显示一些乳胶的应用程序 它显示大多数内容都很好 但是当我想用命令显示正方形时 square 我正在尝试这个乳胶代码作为测试 triangle Box square bigtriangleup blacksqu
  • 在小页面/子图中缩放时控制 LaTeX 中图形的字体大小?

    我正在使用 pgf tikz 图形 我想知道在 minipage subfig 环境中使用图形时如何控制图形中字体大小的缩放 有没有办法手动为 pgf tikz 图形或一般乳胶设置永久字体大小 以使字体大小与缩放无关 理想情况下 我希望能够
  • Pandoc:如何在目录前添加表格?

    我想在 pandoc markdown 生成的目录之前添加一个表格 我找到了参数 include before 这样 我可以在目录之前添加文本 但是有没有办法添加表格呢 下面显示我的代码 我希望目录位于两个表和 header1 之间 而不是
  • 如果文件类型 == tex

    如果文件是乳胶文件 我想在 vimrc 中运行命令 我想我的语法有问题 但它不起作用 有什么线索吗 if filetype tex set spell endif 您可以使用自动命令来实现您想要的 autocmd BufNewFile Bu
  • 从 markdown 转换为 pandoc 时的 \newcommand 环境

    我使用 ipython 笔记本输入数学 然后转换为乳胶 让 mathjax 理解 newcommand 我必须把它放进去 例如 newcommand cl operatorname cl 与 mathjax 配合良好 问题是 当我使用 pa
  • Matplotlib mathtext:刻度标签中的字形错误

    当使用默认值时 我在 matplotlib 2 0 2 中渲染数学时观察到错误mathtext https matplotlib org 1 5 1 users mathtext html mathtext tutorial与LaTeX h
  • RMarkdown html_output 错误

    我正在尝试使用 RStudio 创建 RMarkdown 文档闪亮的服务器 如果输出是 pdf 它工作正常 但如果我想要它作为 html 我会在过程结束时收到以下错误 在 RMarkdown 控制台中 我可以看到它达到了 100 错误 ht

随机推荐