想象一个普通人哈佛引文使用\parencite
函数来设置样式:
应用程序处于初始状态...
\parencite[pre][post]{authorID}
... 在实际中,会这样使用...
\parencite[cf.][p. 25]{Doe}
...并产生如下结果:
(参见 Doe,1998,第 25 页)
是否可以减少p.
[post] 括号内的页面符号和页码25
(也位于同一括号内)之间的间距?大多数人可能只需按下键盘上的空格键即可轻松插入空格。
不幸的是,我认为这个大空间看起来真的不美观......
一个(更糟糕的)选择是引用如下:
\parencite[cf.][p.\addnbthinspace 25]{Doe}
另外一个(更糟糕的)选择是引用如下:
\parencite[cf.][p.{\,}25]{Doe}
最小工作示例(MWE):
% ==== PREAMBEL =============================================================
\documentclass{scrbook}
\usepackage[
backend=biber,
citestyle=numeric,
style=authoryear,
natbib=true,
]{biblatex}
\usepackage{filecontents}
% ==== BIBLIOGRAPHY ========================================================
\begin{filecontents}{\jobname.bib}
@book{Doe,
author = {Doe, Jon},
title = {How to cite a literature-entry in a beautiful way},
date = {1998},
}
\end{filecontents}
\bibliography{\jobname}
% ==== DOCUMENT ============================================================
\begin{document}
\chapter{For the friends of typography}
For generating the following citations, the \textbackslash parencite-function was used:\\
\textbackslash parencite[cf.][p. 25]$\{Doe\}$.
\bigskip
This is a text with an ugly look because of the big space between the letter \textbf{p.}\\
and the \textbf{pagenumber} \parencite[cf.][p. 25]{Doe}.
\bigskip
This is a text with a beautiful look because of the small space between the letter \textbf{p.}\\
and the \textbf{pagenumber} \parencite[cf.][p.{\,}25]{Doe}.
\bigskip
This is a text with a beautiful look because of the small space between the letter \textbf{p.}\\
and the \textbf{pagenumber} \parencite[cf.][p.\addnbthinspace 25]{Doe}.
\end{document}
初始状态截图:
最终(期望)状态的屏幕截图:
最后一个问题:
有没有办法可以自动将此空间设置为较小的距离(例如\addnbthinspace
),而无需将代码放在命令的输入字段内\parencite
?这对于源代码的清洁度确实更好(以及引用过程的加速)...
非常感谢您的帮助!
答案1
如果您让其biblatex
自行处理分页,那么您想要的就非常简单了。包含数字(和一些其他特殊符号)的附注会被自动识别为页面(范围)并按此格式进行格式化biblatex
。
因此,引用时最好完全删除页面前缀,例如
\parencite[24]{worman} and \parencite[cf.][17--19]{geer}
biblatex
如果有多个页面,则会自动添加必需的“p.”或“pp.”。此外,这将使您的代码更加简洁。
默认情况下,页码前缀和页码之间的空格是不间断空格,但我们可以使用以下命令轻松将其变成细空格:
\renewcommand*{\ppspace}{\addnbthinspace}
另请参阅biblatex
文档,第 194 页,有关部分\mkpageprefix
。
还有\sqspace
控制后续标记和页码如“第 14 页起”。
平均能量损失
\documentclass{article}
\usepackage[backend=biber, style=authoryear, natbib]{biblatex}
\addbibresource{biblatex-examples.bib}
\renewcommand*{\ppspace}{\addnbthinspace}
\begin{document}
\parencite[24]{worman} and \parencite[cf.][17--19]{geer}
\parencite[p.\addnbthinspace 24]{worman} and \parencite[cf.][pp.\addnbthinspace 17--19]{geer}
\parencite[p. 24]{worman} and \parencite[cf.][pp. 17--19]{geer}
\end{document}