我正在尝试更改期刊文章标题和以下元素(在本例中为期刊名称)之间的分隔符。但是,我无法在 biblatex 手册的§4.10 中找到正确的分隔符。
例如\renewcommand{\labelnamepunct}{\newline}
在最后一位作者后插入一个换行符。我尝试了类似的操作\subtitlepunct
,但似乎是错误的分隔符。
哪一个才是正确的?有吗?
编辑:进一步的测试发现了一些奇怪的行为。如果我使用\AtEveryCitekey{\renewcommand{\newunitpunct}{\newline}}
,那么换行符会被添加,但在标题的结束引号之前。如果我尝试其他方法,并将 in:(肯定在结束引号之后)替换为换行符,结果会\renewbibmacro{in:}{\newline}
更糟,这次标点符号和结束引号都在换行符之后。
说明我的问题的 MWE
\documentclass{article}
\usepackage{csquotes}
\usepackage{hyphenat}
\usepackage[american]{babel}
\usepackage[style=alphabetic, backend=biber]{biblatex}
\bibliography{biblatex-examples}
%\AtEveryCitekey{\renewcommand{\newunitpunct}{\newline}}
%\renewbibmacro{in:}{\newline}
\begin{document}
\fullcite{aksin}
\end{document}
答案1
我用这个包来做xpatch
:
\documentclass{article}
\usepackage{csquotes}
\usepackage{hyphenat}
\usepackage[american]{babel}
\usepackage[style=alphabetic, backend=biber]{biblatex}
\usepackage{xpatch}
\xpatchbibdriver{article}{%
\printfield{version}%
\newunit\newblock
\usebibmacro{in:}%
}%
{%
\printfield{version}%
\setunit{\addcomma\space}\newblock
\usebibmacro{in:}%
}{}{}
\bibliography{biblatex-examples}
\begin{document}
\fullcite{aksin}
\end{document}
答案2
如果我没记错的话,这是由\newunitpunct
(或可能是\newblockpunct
)控制的,但重新定义这些也会改变条目中其他一些地方的标点符号。