在 BibLaTeX 中,有一个命令可以将插入参考文献中的点转换为缩写点,\isdot
,从而可以更精细地控制标点。还有各种命令,例如\addperiod
、\addcomma
等,用于类似目的。在某些语言中,书目样式使用省略号 (…) 来标记短标题,例如
J.杜邦,标题缩写…,第 16 页。
或者,没有页码引用,
J.杜邦,标题缩写…
但不是,
J.杜邦,标题缩写…。
有没有办法用 BibLaTeX 实现这一点?
\DeclareFieldFormat{shorttitle}{\textit{#1}\printtext{\dots\isdot}}
似乎不起作用,而且也不起作用,
\renewcommand{\bibfootnotewrapper}[1]{\bibsentence #1\adddot}
編輯:MWE
\documentclass{article}
\usepackage[french]{babel}
\usepackage{fontspec}
\usepackage{filecontents}
\begin{filecontents}{test.cbx}
\ProvidesFile{test.cbx}
\RequireCitationStyle{verbose}
\DeclareFieldFormat[book]{citetitle}{\textit{#1}\printtext{\dots}\isdot}
\DeclareFieldFormat[article]{citetitle}{\mkbibquote{#1\printtext{\dots}\isdot}}
%\renewcommand{\bibfootnotewrapper}[1]{\bibsentence #1\adddot}
\end{filecontents}
\begin{filecontents}{test.bbx}
\ProvidesFile{test.bbx}
\RequireBibliographyStyle{verbose}
\end{filecontents}
\begin{filecontents}{\jobname.bib}
@book{akkerman_studien_1937,
title = {Studien zum Karlmeinet: der dritte Abschnitt der Kompilation und sein Verh\"{a}ltnis zum ersten},
shorttitle = {Studien zum Karlmeinet},
author = {Jan Akkerman},
year = {1937}
}
@article{dupont_2002,
title = {Les chansons de geste: sous-titre particulièrement long que l'on va oublier},
volume = {28},
shorttitle = {Les chansons de geste},
journal = {Revue de philologie romane},
author = {Dupont, Jean},
gender = {sm},
year = {2002},
pages = {3--22}
}
\end{filecontents}
\usepackage[babel]{csquotes}
\usepackage[backend=biber,
style=test]{biblatex}
\addbibresource{\jobname.bib}
\begin{document}
\footcite{akkerman_studien_1937} %OK
\footcite{dupont_2002} %OK
\footcite[p.~50]{akkerman_studien_1937} %OK
\footcite[p.~50]{dupont_2002} %OK
\footcite{akkerman_studien_1937} %NOT OK
\footcite{dupont_2002} %OK
\printbibliography
\end{document}
答案1
Unicode 引擎和 pdfLaTeX 在处理省略号方面存在差异。此差异已在biblatex
3.10 中得到解决(https://github.com/plk/biblatex/issues/514,https://github.com/plk/biblatex/commit/5de1c77d639e4fdea5506bfdb3c90ec63be8c35c)。现在所有引擎都将省略号视为句末句号。如果您使用的是旧版本,请参阅编辑历史以寻求解决方案。
现在您可以使用\isdot
来抑制省略号后的句号,但允许使用逗号。
平均能量损失
\documentclass{article}
\usepackage[french]{babel}
\usepackage{fontspec}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{akkerman_studien_1937,
title = {Studien zum Karlmeinet: der dritte Abschnitt der Kompilation und sein Verh\"{a}ltnis zum ersten},
shorttitle = {Studien zum Karlmeinet},
author = {Jan Akkerman},
year = {1937},
}
@article{dupont_2002,
title = {Les chansons de geste: sous-titre particulièrement long que l'on va oublier},
volume = {28},
shorttitle = {Les chansons de geste},
journal = {Revue de philologie romane},
author = {Dupont, Jean},
gender = {sm},
year = {2002},
pages = {3--22},
}
\end{filecontents}
\usepackage[babel]{csquotes}
\usepackage[backend=biber,
style=verbose]{biblatex}
\addbibresource{\jobname.bib}
\DeclareFieldFormat[book]{citetitle}{\mkbibemph{#1}\dots\isdot}
\DeclareFieldFormat[article]{citetitle}{\mkbibquote{#1\dots\isdot}}
\begin{document}
Lorem \footcite{akkerman_studien_1937} %OK
ipsum \footcite{dupont_2002} %OK
dolor\footcite[50]{akkerman_studien_1937} %OK
sit\footcite[50]{dupont_2002} %OK
amet\footcite{akkerman_studien_1937} %NOT OK
foo\footcite{dupont_2002} %OK
\end{document}