![图表列表中的自动引用](https://linux22.com/image/412893/%E5%9B%BE%E8%A1%A8%E5%88%97%E8%A1%A8%E4%B8%AD%E7%9A%84%E8%87%AA%E5%8A%A8%E5%BC%95%E7%94%A8%20.png)
我使用biblatex
withbiber
作为后端。我想使用命令为我的图表创建引文\cite
,但在图表标题或相应页面的脚注中隐藏其任何输出。
相反,引用(包括页码)应仅打印在 中\listoffigures
,而不是标题中。我使用的是 样式verbose-ibid
。我希望图表列表中的参考文献默认以该样式的缩写形式打印。如果之前未在文中引用过,则还应将所引用的书籍添加到参考书目中。
我目前在做什么:
\cite
将命令放在[]
里面\caption[]{}
以避免在图表页面上输出任何引文,并在图表列表内打印引文。所引用的书籍也会添加到参考书目中。
除了图表列表中的引用样式(始终打印完整引用)之外,一切都很好。
有没有关于如何在图表列表中默认实现缩写引用样式的想法?有没有比我的方法更好的方法?
梅威瑟:
\documentclass{article}
\usepackage{graphicx}
\usepackage[backend=biber,style=verbose-ibid,hyperref=false]{biblatex}
\addbibresource{mwe.bib}
\begin{filecontents}{mwe.bib}
@Book{knuth1986,
Title = {The \TeX book},
Author = {Donald~Ervin Knuth},
Publisher = {Addison-Wesley},
Year = {1986}
}
\end{filecontents}
\begin{document}
\begin{figure}
\centering
\includegraphics{example-image-a}
\caption[{\cite[][5]{knuth1986}}]{This is a caption}
\end{figure}
\printbibliography
\listoffigures
\end{document}
答案1
您可以在此处使用 Moewe 答案中的简短引用代码:https://tex.stackexchange.com/a/236894/29873
\documentclass{article}
\usepackage{graphicx}
\usepackage[backend=biber,style=verbose-ibid,hyperref=false]{biblatex}
\addbibresource{mwe.bib}
\newbibmacro*{shrtcite}{%
\usebibmacro{cite:citepages}%
\iffieldundef{shorthand}
{\usebibmacro{cite:short}}
{\usebibmacro{cite:shorthand}}}
\DeclareCiteCommand{\shrtcite}
{\usebibmacro{prenote}}
{\usebibmacro{citeindex}%
\usebibmacro{shrtcite}}
{\multicitedelim}
{\usebibmacro{cite:postnote}}
\begin{filecontents}{mwe.bib}
@Book{knuth1986,
Title = {The \TeX book},
Author = {Donald~Ervin Knuth},
Publisher = {Addison-Wesley},
Year = {1986}
}
\end{filecontents}
\begin{document}
\begin{figure}
\centering
\includegraphics{example-image-a}
\caption[{\shrtcite[][5]{knuth1986}}]{This is a caption}
\end{figure}
\printbibliography
\listoffigures
\end{document}