我使用biblatex
在我的 LaTeX 文档中插入参考文献。在一些书目条目中,例如百科全书和经典著作,我插入了一个shorthand
字段,并决定仅使用简写作为标签从头到尾引用它们。这意味着,我只想获得:
临界值
代替
康德 1968 年(以下简称 KpV)
但是,biblatex
第一次总是使用常规标签和简写简介输出它们。
有人知道我如何才能从第一次就获得速记作为唯一标签,而无需额外的书目数据(作者、年份、标题等)和 shorthandintro?我只想用像缩写这样的标签来引用它。
以下是一个小例子:
\documentclass{memoir}
\usepackage{xltxtra,fontspec,xunicode}
\usepackage[style=philosophy-modern,backend=biber,language=auto]{biblatex}
\bibliography{bibliography}
\bibintoc
\begin{document}
......
\printbibliography
\end{document}
答案1
您没有提到您使用的样式,因此这里有一个针对verbose
样式的解决方案,其中包括您问题中描述的速记机制(尽管在第一个引文中打印了“完整”条目)。对于verbose
,您必须切换 bibmacro 中的测试cite
——我已经包含了原始定义和我的重新定义。
\documentclass{article}
\usepackage[style=verbose]{biblatex}
% Original definition
% \newbibmacro*{cite}{%
% \usebibmacro{cite:citepages}%
% \ifciteseen
% {\iffieldundef{shorthand}
% {\usebibmacro{cite:short}}
% {\usebibmacro{cite:shorthand}}}
% {\usebibmacro{cite:full}}}
\renewbibmacro*{cite}{%
\usebibmacro{cite:citepages}%
\iffieldundef{shorthand}
{\ifciteseen
{\usebibmacro{cite:short}}
{\usebibmacro{cite:full}}}
{\usebibmacro{cite:shorthand}}}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
}
@misc{Kan68,
shorthand = {KpV},
author = {Kant, Immanuel},
year = {1968},
title = {Kritik der praktischen Vernunft},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\null\vfill% just for the example
Some text.\autocite{Kan68}
Some text.\autocite{Kan68}
Some text.\autocite{A01}
Some text.\autocite{A01}
\printshorthands
\printbibliography
\end{document}
编辑:由于您正在使用该philosophy-modern
样式,因此无需修改内部宏;只需使用包选项即可shorthandintro=false
。
\documentclass{article}
\usepackage[style=philosophy-modern,backend=biber,language=auto,
shorthandintro=false]{biblatex}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@misc{A01,
author = {Author, A.},
year = {2001},
title = {Alpha},
}
@misc{Kan68,
shorthand = {KpV},
author = {Kant, Immanuel},
year = {1968},
title = {Kritik der praktischen Vernunft},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\null\vfill% just for the example
Some text.\autocite{Kan68}
Some text.\autocite{Kan68}
Some text.\autocite{A01}
Some text.\autocite{A01}
\printshorthands
\printbibliography
\end{document}