我希望文章显示为
Kowalski Jan,《Reforma reformatorska》,Przeglad Historyczny 1(1953 年),第 101-152 页。
Inbook 和 incollction 必须显示为
Kwiatkowska Anna,“Liczenie dla dzieci” [in:] Studia matematyczne,华沙:DiG,2014 年,第 247-272 页。
请注意两种情况下的分隔符(文章的期刊标题前有逗号,而 inbooks 的“in”前后没有逗号)。
我的代码如下:
\documentclass{article}
\usepackage[style=verbose-trad1]{biblatex}
%comma instead of dot as default delimiter
\renewcommand*{\newunitpunct}{\addcomma\space}
%no comma between first name and last name
\renewcommand*{\revsdnamepunct}{}
\renewbibmacro*{in:}{%
\ifentrytype{article}
{}
{\setunit{\space}%
\printtext{%
%\mkbibbrackets{\bibstring{in}\addcolon}}}}
\bibstring{in}\addcolon}}}
\begin{filecontents}{\jobname.bib}
@article{a1,
author ={Kowalski, Jan},
title ={Reforma reformatorska},
journaltitle ={Przeglad Historyczny},
date ={1953},
number ={1},
pages ={101-152},
}
@inbook{b1,
author ={Kwiatkowska, Anna},
location ={Warszawa},
publisher ={DiG},
booktitle ={Studia matematyczne},
title ={Liczenie dla dzieci},
pages ={247-272},
date ={2014},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
a\footcite{a1}
b\footcite{b1}
\printbibliography
\end{document}
如果不需要括号,一切都会很好。但是如果我使用\mkbibbrackets{\bibstring{in}\addcolon}
而不是 ,\bibstring{in}\addcolon
后面会有多余的逗号[in:]
。我怎样才能删除后面的逗号[in:]
并保留其他所有内容?
带有括号和冗余逗号的结果:
答案1
在您的解决方案中,in:
您只是缺少一种方法来确保“[in:]”后面打印的标点符号始终是空格。这可以用 来实现\printunit{\addspace}
。请注意,\printunit
在in:
(ll. 2927-2929 的biblatex.def
),您的重新定义似乎是基于旧版本的in:
。
\mkbibbrackets
根据新代码并遵循bibmacro 中永远不应该有裸露的原则,我建议
\documentclass{article}
\usepackage[style=verbose-trad1]{biblatex}
\renewcommand*{\newunitpunct}{\addcomma\space}
\renewcommand*{\revsdnamepunct}{}
\renewbibmacro*{in:}{%
\ifentrytype{article}
{}
{\setunit{\addspace}%
\printtext[brackets]{%
\bibstring{in}%
\addcolon}%
\printunit{\addspace}}}
\begin{filecontents}{\jobname.bib}
@article{a1,
author = {Kowalski, Jan},
title = {Reforma reformatorska},
journaltitle = {Przeglad Historyczny},
date = {1953},
number = {1},
pages = {101-152},
}
@inbook{b1,
author = {Kwiatkowska, Anna},
location = {Warszawa},
publisher = {DiG},
booktitle = {Studia matematyczne},
title = {Liczenie dla dzieci},
pages = {247-272},
date = {2014},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Lorem \autocite{a1}
ipsum \autocite{b1}
\printbibliography
\end{document}