我正在使用命令\renewbibmacro*{finentry}{}
来隐藏 biblatex 引用末尾的点,这似乎有效。我现在正试图想出一个\fullcitebib
命令来打印正文中的引用,格式与引用中的格式相同。我有以下代码
\documentclass{article}
\usepackage[backend=biber,style=authoryear]{biblatex}
\begin{filecontents}{\jobname.bib}
@Book{crys2010,
author = {David Crystal},
title = {An Encyclopedic Dictionary of Language and Languages},
publisher = {Blackwell},
year = {2010},
edition = {3},
address = {Oxford},
}
@InCollection{herm2006,
author = {Rachel Hermetet},
title = {\emph{The Criterion} et les litt\'{e}ratures
europ\'{e}ennes, 1922--1935},
booktitle = {Revues Modernistes anglo-am\'ericaines: lieux
d'\'{e}changes, lieux d'exil},
publisher = {Ent'revues},
year = {2006},
editor = {Beno\^{i}t Tadi\'{e}},
pages = {189-200},
address = {Paris},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\renewbibmacro*{finentry}{}
\DeclareCiteCommand{\fullcitebib}
{\list{}
{\setlength{\leftmargin}{\bibhang}%
\setlength{\itemindent}{-\leftmargin}%
\setlength{\itemsep}{\bibitemsep}%
\setlength{\parsep}{\bibparsep}}\item}
{\usedriver
{}
{\thefield{entrytype}}\finentry
}
{\item}
{\endlist
}
\begin{document}
\fullcitebib{crys2010,herm2006}
\printbibliography
\end{document}
从而产生了这个
如何去掉用我的新命令创建的引用末尾的点?
答案1
代替
\renewbibmacro*{finentry}{}
去
\renewcommand*{\finentrypunct}{}
出现问题的原因在于,通常我们有\newbibmacro*{finentry}{\finentry}
,除其他有用的功能外,宏\finentry
还会打印\finentrypunct
。如果您重新定义 bibmacrofinentry
以不执行任何操作,则看不到\finentrypunct
(但您还缺少一些内部帮助程序的重置)。但在您直接\fullcitebib
调用时\finentry
,它仍然会打印\finentrypunct
。
因此,删除末尾标点符号的正确方法是使用 来\finentrypunct
清空\renewcommand*{\finentrypunct}{}
。另请参阅如何删除每个参考书目条目末尾的句号?