![\parencite 与 \parencites:我们需要前者吗?](https://linux22.com/image/379412/%5Cparencite%20%E4%B8%8E%20%5Cparencites%EF%BC%9A%E6%88%91%E4%BB%AC%E9%9C%80%E8%A6%81%E5%89%8D%E8%80%85%E5%90%97%EF%BC%9F.png)
即使仅引用一个参考文献,仅使用\parencites
(带 s)是否会引起问题?
是否可以做一个\newcommand
类似
\newcommand{\pc}{\parencites{#1}{#2}}
然后它会‘询问’引用关键字以及前注(#1)和后注(#2)?
编辑:修改了一些错别字和措辞,以使信息更加清晰。
答案1
答案假设我们正在谈论,
biblatex
因为据我所知,这是唯一定义的包\parencites
。
多引用命令\cites
、 、 ... 的语法与单引用命令、、 ...\parencites
的语法完全兼容\cite
\parencite
但两者的实现有很大不同。虽然单引用命令知道只能传递一个强制参数,但多引用命令需要提前扫描更多可能的参数,因为(强制)参数的数量是不固定的。
尤其文档biblatex
参见第 3.8.3 节“合格引用列表”,第 99 页,
请注意,multicite 命令会持续扫描参数,直到遇到不是可选或强制参数开头的标记。如果 multicite 命令后面跟着左括号或方括号,则需要在
\relax
最后一个有效参数后添加或控制空格(反斜杠后跟空格)来屏蔽它。这将导致扫描仪停止。
这意味着
- 多引用命令必须比单引用命令做更多的工作。
- 在特殊情况下,多引用命令的参数扫描器可能需要人工干预以避免误解。
比较以下 MWE
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[style=authoryear, backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\begin{document}
\cites[380]{sigfridsson}[12]{worman}\ [blub]
\cites[380]{sigfridsson}[12]{worman}\ {\itshape how old fashioned}
\cite[380]{sigfridsson} [blub]
\cite[380]{sigfridsson} {\itshape how old fashioned}
\printbibliography
\end{document}
其中\
是必要的\cites
,但 也不是必要的\cite
。
因此单引用命令确实有其用途:它们在实施上稍微“更安全”且更简单。
不管怎样,我通常使用单引用命令,只有当我用后注引用多个来源时才会使用多引用版本。