如何从 bibtex 输入字段打印值?

如何从 bibtex 输入字段打印值?

我的文档中有多个网站引用。我使用 bibtex 来@misc指定它们。
我需要在引用这些网站和所有其他引用之间不断切换,或者将它们放在脚注中。我想让这种切换尽可能轻松,所以我的想法是使用一个新命令来引用网站,比如\wcite。我将其定义为:

\newcommand{\wcite}[1]{\cite{#1}} %normal cite  
\newcommand{\wcite}[1]{\footnote{\bibtitle{#1} - \bibhowpublished{#1}}} %footnote cite  

然后我会评论一下我目前没有使用的那个。这样我就可以快速地从引文切换到脚注,只需写一次网站的数据。我还可以轻松更改脚注的格式。

我明显的问题是\bibtitle\bibhowpublished不存在。我找不到从 bib 条目中获取字符串值的方法。

答案1

BibLaTeX 提供了条目类型@online作为url字段之一。因此,您可能需要考虑使用此条目类型来存储网站。

可以使用 定义新类型的引用\DeclareCiteCommand,因此定义打印标题和脚注中的 url 的命令的方式可能是这样的:

\DeclareCiteCommand{\wcite}
    [\mkbibfootnote]
    {}
    {\printfield{title}--\printfield{url}}
    {\addcomma\addspace}
    {}

第一个参数是命令的名称(\wcite);第二个参数是可选的,用于包装命令(在本例中是脚注,使用 BibLaTeX 提供的功能);第三个参数是预编码;第四个参数是引用的内容:可以使用打印字段的值\printfield{field name};第五个参数是在多个引用之间打印的代码;最后一个参数是邮政编码。

要使用howpublished字段替换\printfield{url}\printfield{howpublished}

编辑

可以使用选项来防止将网站(@misc)纳入参考书目中defenumbers(在生成参考书目后,必须对文档进行偶数次编译)

\usepackage[defernumbers]{biblatex}

\printbibliography[nottype=misc]

相关内容