我无法将引文放在图片标题中。我在 rmarkdown 中编写文档,使用 markdown 引文[@bibtexCitationkey]
,但使用 LaTeX 来处理图片和表格。我希望能够将引文放在图片和表格标题中,但我尝试了以下方法,但没有成功。
---
title: "Table tests"
csl: harvard-cite-them-right.csl
output:
pdf_document: default
word_document: default
html_document: default
header-includes:
- \usepackage{graphicx}
- \graphicspath{ {./figs&tabs/} }
bibliography: library.bib
---
\begin{figure}[h]
\begin{center}
\includegraphics{gr1_lrg.jpg}
\caption {Caption text [@Levin2013] or caption text \cite{Levin2013}}
\label{f:ckd}
\end{center}
\end{figure}
这将产生:标题文本@Levin2013 或标题文本 [?]
在 markdown 格式的引用在文档的其余部分中起作用,我的 .bib 没有问题
答案1
注意:
似乎您还需要 HTML 和 Word 输出,但 Rmarkdowm 中的 LaTeX 代码仅对 PDF 输出有用,否则将被省略。使用它可能不是一个好主意?
Rmarkdown 里面的 LaTeX 命令或环境都是通过 LaTeX 规则来解析的。所以
[@Levin2013]
里面的\caption{}
不是一个引用,只是纯文本。Rmarkdown 中的参考书目默认由 处理
pandoc-citeproc
,因此即使在 LaTeX 版本中,bibliograhy 也不是\bibliography
命令,甚至\printbibliography
也不是thebibliography
带有 \bibitems 的命令,而只是直接带有 的参考文献\hypertarget
,因此\cite
-like 命令与之无关。您可以强制使用真正的 bibtex 或 biblatex 书目,但即便如此,上述内容也适用,并且您不能在 markdown 中自由嵌套 LaTeX,也不能在 LaTeX 中自由嵌套 markdown。
R chunks 是制作图形和表格的另一种方法,但增加了文件导出方式的另一层复杂性,因此您不能直接在里面使用 markdown 或 LaTeX,
fig.cap
尽管有一些技巧可以做到这一点(参见示例)。交叉引用在基本方面受到限制
rmarkdown
,但它是 rmarkdown 的一个有趣扩展,它避免了在图形中使用 和/或 命令bookdown
的需要 ,这仅适用于 PDF 输出。\label{}
\ref{}
虽然不常见,但有时在复杂的文档中,Rmarkdown 内部对 LaTeX 代码的识别会非常失败。然后会被视为纯文本,从而导致致命的错误和麻烦。
考虑到这一点,有几个选项,一个是原始 LaTeX 浮点数,但它应该是最后一个选项,并且没有 markdown:
MimimalWorkingExample.Rmd
---
linkcolor: blue
bibliography: /usr/local/texlive/2020/texmf-dist/bibtex/bib/msc/biblio.bib
output:
bookdown::pdf_document2:
keep_tex: yes
toc: no
citation_package: biblatex
biblio-style: authoryear
biblatexoptions: maxbibnames=9
---
(ref:rudolph) *nice* cite: [@Lam94].
I recommend the figure \@ref(fig:foo) method:
```{r foo, fig.cap= 'Caption \\emph{with} *very* (ref:rudolph)', echo=F, fig.align = 'center', out.width='10%'}
knitr::include_graphics("/usr/local/texlive/2020/texmf-dist/tex/latex/mwe/example-image-a.png")
```
You can use also the figure \@ref(fig:bah) method:
![Caption text [@Lam94](\#fig:bah)](example-image-b.png){width=10%}
But I do not recommend the figure \ref{baz} method:
\begin{figure}[h]\centering
\includegraphics[width=.1\linewidth]{example-image-c}
\caption {Caption text \autocite{Lam94}.\label{baz}}
\end{figure}