请看以下\autocite
示例:
\autocite[15]{kant}
伊曼纽尔·康德:哈茨山自由公园,第 15 页。
我怎样才能将逗号改为句号?对于参考书目来说,这很容易。我可以使用:
\renewcommand*{\bibpagespunct}{\addperiod\addspace}
但对于引用呢?
答案1
从技术上讲,biblatex
不会在那里打印页面信息,而是postnote
。因此我们必须修改\postnotedelim
。
\renewcommand*{\postnotedelim}{\addperiod\space}
为了防止biblatex
句号后的“p.”大写,我们可以采用
\renewcommand*{\postnotedelim}{\addperiod\space\midsentence}
或者
\renewcommand*{\postnotedelim}{\adddot\space}
示例代码
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[style=authoryear]{biblatex}
\usepackage{hyperref}
\addbibresource{biblatex-examples.bib}
\renewcommand*{\postnotedelim}{\addperiod\space\midsentence}
\begin{document}
\autocite[15]{cicero}
\end{document}
更复杂的解决方案是,如果后注仅包含页面信息,则仅打印句点,否则会添加标准分隔符。
\renewbibmacro*{postnote}{%
\iffieldundef{postnote}
{}
{\iffieldpages{postnote}
{\setunit{\addperiod\space\midsentence}}
{\setunit{\postnotedelim}}%
\printfield{postnote}}}
\renewbibmacro*{multipostnote}{%
\iffieldundef{multipostnote}
{}
{\iffieldpages{postnote}
{\addperiod\space\midsentence}
{\postnotedelim}%
\printfield{multipostnote}}}
代码
\documentclass[a4paper,12pt]{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{lmodern}
\usepackage[style=authoryear]{biblatex}
\usepackage{hyperref}
\addbibresource{biblatex-examples.bib}
\renewbibmacro*{postnote}{%
\iffieldundef{postnote}
{}
{\iffieldpages{postnote}
{\setunit{\addperiod\space\midsentence}}
{\setunit{\postnotedelim}}%
\printfield{postnote}}}
\renewbibmacro*{multipostnote}{%
\iffieldundef{multipostnote}
{}
{\iffieldpages{postnote}
{\addperiod\space\midsentence}
{\postnotedelim}%
\printfield{multipostnote}}}
\begin{document}
\autocite[15]{cicero}
\end{document}
两者都给予
(西塞罗 1995 年,第 15 页)