我正在尝试以自己的biblatex
风格写作,我的引用规范要求我在没有地址和出版商信息的情况下在标题后添加“[Sl: sn]”。所以我尝试这样做(但使用我自己的自定义bibstrings
,这些只是作为示例):
\begin{filecontents}{\jobname.bib}
@book{salaman1985,
author ={Redcliffe N. Salaman},
year =1985,
title ={The History and Social Influence of the Potato}}
\end{filecontents}
\documentclass{article}
\usepackage[backend=biber, bibstyle=standard, citestyle=authoryear]{biblatex}
\addbibresource{\jobname.bib}
\newbibmacro*{publisher+location+date}{%
%\addperiod\addspace
\brackettext{\bibstring{volume}\addcolon\addnbspace\bibstring{number}}
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit}
\begin{document}
\cite{salaman1985}
\printbibliography
\end{document}
它会打印“…of the Potato[. Vol.: no.]”,括号内有一个句号。如果我取消注释该行,则表示\addperiod\addspace
句号已消失,但在“Vol.”之前仍有一个空格,并且\unspace
不会将其删除。
我想要的当然是“……土豆。 [卷:号]”。
那么我该怎么做呢?
答案1
不要使用\brackettext
,\printtext[brackets]
而要改用 。
\renewbibmacro*{publisher+location+date}{%
%\addperiod\addspace
\printtext[brackets]{\bibstring{volume}\addcolon\addnbspace\bibstring{number}}
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit}
这与如何使用标点符号跟踪器处理标点符号有关biblatex
。您可以在 §4.11.7 中阅读有关文档biblatex
特别是§4.11.7.2常见错误。跟踪器不会“看到”您的\brackettext
,但它看到\printtext[brackets]