我的大学对于参考书目有一些特殊的格式规则:
比赛项目末尾没有句号。只有最后一个项目必须以句号结尾!
它看起来应该是这样的 :)
我用 - 更改了 finentrypoint \renewcommand{\finentrypunct}{}
,效果很好。但是我如何获取最后一个条目后的句点呢?
我使用 biber。
有人给我建议吗?
答案1
您可以重新定义\defbibenvironment{bibliography}
以包含最后一个句点。请注意,这很可能会导致空书目出现问题。
保持\renewcommand{\finentrypunct}{}
。
将 的定义\defbibenvironment{bibliography}
添加\addperiod
到 行中{\endlist}
,因此其内容为。您可以在文件中{\addperiod\endlist}
找到 的定义,以符合您的参考书目样式。\defbibenvironment{bibliography}
.bbx
因为numeric
那是
\defbibenvironment{bibliography}
{\list
{\printtext[labelnumberwidth]{%
\printfield{prefixnumber}%
\printfield{labelnumber}}}
{\setlength{\labelwidth}{\labelnumberwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}%
\renewcommand*{\makelabel}[1]{\hss##1}}
{\addperiod\endlist}%<---- here
{\item}
因为authoryear
它
\defbibenvironment{bibliography}
{\list
{}
{\setlength{\leftmargin}{\bibhang}%
\setlength{\itemindent}{-\leftmargin}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}}
{\addperiod\endlist}%<---- here
{\item}
平均能量损失
\documentclass[a4paper,12pt]{article}%
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[backend=biber]{biblatex}
\addbibresource{biblatex-examples.bib}
\renewcommand{\finentrypunct}{}
\defbibenvironment{bibliography}
{\list
{\printtext[labelnumberwidth]{%
\printfield{prefixnumber}%
\printfield{labelnumber}}}
{\setlength{\labelwidth}{\labelnumberwidth}%
\setlength{\leftmargin}{\labelwidth}%
\setlength{\labelsep}{\biblabelsep}%
\addtolength{\leftmargin}{\labelsep}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}%
\renewcommand*{\makelabel}[1]{\hss##1}}
{\addperiod\endlist}%<---- here
{\item}
\begin{document}
\nocite{wilde,cicero,knuth:ct:a}
\printbibliography
\end{document}
答案2
书目输出是在以下定义的环境中完成的
% {<name>}{<start code>}[<end code>]{<item code>}
\newrobustcmd*{\defbibenvironment}[4]{%
\long\csdef{blx@env@#1}{#2}%
\long\csdef{blx@endenv@#1}{#3}%
\long\csdef{blx@item@#1}{#4}}
每种风格都使用这种修改环境的定义。因此,为了满足您的需要,您必须确保将最终期限设置为blx@endenv@#1
。这可以通过以下方式全局实现:
\cspreto{blx@endenv@bibliography}{\addperiod}
以下是完整的 MWE:
\documentclass[]{article}
\usepackage[T1]{fontenc}
\usepackage[]{biblatex}
\addbibresource{biblatex-examples.bib}
\DeclareFieldFormat{labelnumberwidth}{#1.}
\renewcommand{\finentrypunct}{}
\cspreto{blx@endenv@bibliography}{\addperiod}
\begin{document}
\cite{companion,knuth:ct:a,angenendt}
\printbibliography
\end{document}