是否可以通过\newcommand
或创建新命令\def
?里面“.bib 文件?
我使用 LuaLaTeX 和 biblatex,并在 Mac 上使用 BibDesk 整理我的参考书目。我还将有关论文 x 重印本的信息存储在集合 y 中。我Addendum
通过类似以下方式将此信息添加到 biblatex 的 -field中
\bibstring{reprintin}\intitlepunct\addspace\citeauthor{author:1986}\labelnamepunct\addspace\citetitle{author:1986}\addcomma\space\citeyear{author:1986}
ETC。
为此,我必须在 .tex 文件的序言中定义一些 bibstrings:
\NewBibliographyString{reprintin}
\DefineBibliographyStrings{american}{
reprintin = {Reprint in},
}
\DefineBibliographyStrings{british}{
reprintin = {Reprint in},
}
\DefineBibliographyStrings{german}{
reprintin = {Nachdruck in},
}
\DefineBibliographyStrings{ngerman}{
reprintin = {Nachdruck in},
}
我现在想创建一个新命令\bibreprintin
,让我只需在附录字段中提示\bibreprintin{author:1986}
,而不必输入上述代码bibstring{reprintin} ...
。
这样,如果以后有必要,我可以通过“一键”更改重印信息的外观,并确保我的书目中所有出版物的重印信息看起来都相同。
我现在的问题是,是否有可能使用诸如\def
、\newcommand
和\NewBibliographyString
里面.bib 文件(因为这只是一个文件),而不仅仅是每个单独的 .tex 文件内(因为我正在处理许多不同的文件)。
答案1
bib
您可以通过@preamble
和字段在文件中定义 (La)TeX 命令execute
。后者用于按条目进行定义。
新的参考书目字符串应在其他地方初始化,例如:
- 用户配置文件(
biblatex.cfg
) - 文件序言(
tex
文件) - 所有相关的本地化模块(
lbx
文件) - 样式文件(
bbx
或cbx
)
对于您的情况,Ulrike 的建议(配置文件)似乎最合适。
现在,重印本最好使用即将发布的biblatex
和开发版本中的“相关条目”功能来处理biber
。以下是一个例子(tex
为简单起见,仅使用文件)。
\documentclass{article}
\usepackage[american]{babel}
\usepackage{csquotes}
\usepackage[backend=biber]{biblatex}
\usepackage{hyperref}
\NewBibliographyString{reprintin}
\DefineBibliographyStrings{english}{reprintin = {Reprint in}}
\DefineBibliographyStrings{german}{reprintin = {Nachdruck in}}
\renewcommand*{\relatedpunct}{\intitlepunct}
\begin{filecontents}{\jobname.bib}
@article{orwell,
title = {Reflections on Gandhi},
author = {Orwell, George},
year = {1949},
journal = {Partisan Review},
number = {6},
pages = {85--92},
related = {gariepy},
relatedtype = {reprintin}}
@book{gariepy,
title = {Twentieth-Century Literary Criticism},
editor = {Gariepy, Jennifer},
volume = {59},
year = {1995},
publisher = {Gale}}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\cite{orwell}
\printbibliography
\end{document}
related:default
相关条目信息由 中定义的参考书目宏格式化biblatex.def
。可以通过定义一个将相关条目键作为单个参数的参考书目宏来覆盖此格式related:<relatedtype>
。以下内容将模拟您当前在字段中执行的格式化addendum
。
\newbibmacro*{related:reprintin}[1]{%
\entrydata{#1}{%
\printnames{labelname}%
\setunit{\labelnamepunct}%
\printfield[citetitle]{title}%
\setunit{\addcomma\space}%
\printfield{year}}}