【问题标题】:Bookdown: Cross-reference figure with a custom link textBookdown:带有自定义链接文本的交叉参考图
【发布时间】:2020-10-27 09:51:27
【问题描述】:

我想在使用 bookdown 编译为 LaTex/PDF 输出的报告中交叉引用一个图 (PDF/PNG)带有自定义链接文本。。 p>

如果块标签是“FOO-Figure”,则可以通过 see Figure \@ref(fig:FOO-Figure) 轻松地将数字引用为数字(即参见图 1)。
不幸的是,bookdown book 中推荐的 自定义链接文本 的语法仅适用于我的链接和标题,不适用于包含的(外部)数字:

[custom link text](#fig:FOO-Figure)[custom link text](#FOO-Figure) 在 LaTex/PDF 输出中都不起作用。

有趣的是,如果输出格式是 HTML 并且按预期引用 file:///Users/.../book/my-headline.html#fig:FOO-Figure,则前者可以工作。

【问题讨论】:

    标签: r reference r-markdown markdown bookdown


    【解决方案1】:

    对于 LaTeX 输出,[text](#ID) 将无法正常工作。

    解释:

    ```{r yourfigure, fig.cap = "This is your Figure!"}
    knitr::include_graphics("image.png")
    ```
    

    引用\@ref(fig:yourfigure) 被解析为\ref{fig:yourfigure}。这很好,因为 knitr 确保将图像放置在带有此标签的浮动环境中。

    但是,[this](#fig:yourfigure) 被解析为 \protect\hyperlink{fig:yourfigure}{this},这是对不存在的锚点的引用。但是,我们可以手动生成这个锚点。解决方法是

    ```{r yourfigure, fig.cap = "This is your Figure!"}
    knitr::include_graphics("image.png")
    ```
    \hypertarget{fig:yourfigure}{}
    

    【讨论】:

    • 太棒了!非常感谢@MA!我在图形块上方添加了\hypertarget{fig:yourfigure}{},这样当点击链接的[reference to the figure](#fig:yourfigure)时,图形就完全显示出来了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-05-20
    • 1970-01-01
    • 2017-05-20
    • 1970-01-01
    • 2019-07-24
    • 2021-01-02
    • 2016-08-01
    相关资源
    最近更新 更多