我想使用 biblatex 的 autopunct 选项自动将带括号的引用移到标点符号内。例如,我想blah blah.\autocite{smith}
将其渲染为“blah blah1。”而不是“等等等等。”1“。如果我使用上标样式,它就会起作用:
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage[style=american]{csquotes}
\usepackage[autocite=superscript,autopunct=true]{biblatex}
\addbibresource{refs.bib}
\begin{document}
Test citation inside punctuation \autocite{smith}.
Test citation outside punctuation.\autocite{smith}
\printbibliography
\end{document}
但是,更改autocite=superscript
为autocite=numeric
会失去自动标点行为:
答案1
biblatex
我担心,在的行为框架内,这是不可能的autopunct
。
这biblatex
文档解释该autopunct
选项如下(§3.1.2.1 序言选项 > 常规,第 50 页)
此选项控制引用命令是否提前扫描标点符号。
这里重要的是向前扫描:该autopunct
功能只能影响\autocite
命令后面的标点符号。
所以
punctuation.\autocite{sigfridsson}
不属于此功能的范围,并且永远不会更改。只有
punctuation \autocite{sigfridsson}.
可以改变。
以下是如何实现将引用移到句号/外部标点符号后的相反行为:使用可选<position>
参数\DeclareAutoCiteCommand
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[american]{babel}
\usepackage[style=american]{csquotes}
\usepackage[autocite=inline, autopunct=true]{biblatex}
\DeclareAutoCiteCommand{inline}[l]{\parencite}{\parencites}
\addbibresource{biblatex-examples.bib}
\begin{document}
Test citation inside punctuation \autocite{sigfridsson}.
Test citation outside punctuation.\autocite{sigfridsson}
\printbibliography
\end{document}