我想知道是否可以在参考书目列表中的页码范围的破折号周围添加空格。
这就是我所拥有的:
S. 1234-1235
这就是我想要的:
S. 1234 - 1235
在我的 bib 文件中,页面标签包含空格:
pages = {1234 -- 1235}
这是我的最小 bib 文件:
@article{IJAMT,
author = {Author},
title = {Title},
journaltitle = {Journal},
year = {2016},
volume = {69},
number = {9 -- 12},
pages = {2315 -- 2321},
label = {REF}
以下是我的简单示例:
\documentclass[a4paper,11pt,oneside,ngerman]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[style=alphabetic,bibencoding=utf8,hyperref=true,sorting=anyt, natbib=true, backend=biber]{biblatex}
% Own Style for Articles
\DeclareBibliographyDriver{article}{%
\printnames{author}:\newunit%
\printfield{title}.\newunit%
\printfield{journaltitle}{ }\printfield{volume}{ }%
(\printfield{year}){ }\printfield{number},\newunit%
\printfield{pages}%
\finentry}
\bibliography{literature/bib}
\begin{document}
\cite{IJAMT}
\newpage
\printbibliography
\end{document}
答案1
我们只需要重新定义\bibrangedash
以添加空间
\DefineBibliographyExtras{english}{%
\renewrobustcmd*{\bibrangedash}{\addspace\textendash\space}}
由于\bibrangedash
是特定于语言的命令,我们需要在文档语言\DefineBibliographyExtras{<lang>}
中重新定义它。<lang>
你\addspace\textendash\space
也可以使用细空格并通过使用来防止在破折号前换行
\addnbthinspace\textendash\penalty\hyphenpenalty\addthinspace
反而。
顺便说一句:你不必@article
按照你的方式重新定义你的驱动程序,而是可以使用
\renewcommand*{\labelnamepunct}{\addcolon\space}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\setunit*{\addspace}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}%
\setunit{\addspace}}%
\printfield{volume}%
\setunit{\addspace}%
\usebibmacro{issue+date}%
\setunit{\addspace}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\newunit}
实现类似的目标。此外也许抑制“In:” biblatex。您的驱动程序中不应有文字标点符号,始终将\setunit
和朋友连同\addcomma
和朋友一起使用,或将格式设置为\DeclareFieldFormat
。