![biblatex 和 \fullcite:末尾的点缺失](https://linux22.com/image/461849/biblatex%20%E5%92%8C%20%5Cfullcite%EF%BC%9A%E6%9C%AB%E5%B0%BE%E7%9A%84%E7%82%B9%E7%BC%BA%E5%A4%B1.png)
嘿,
我使用\fullcite
打印文本中的参考书目条目。在那里,我漏掉了最后一个点(年份后面的点),因为它在参考文献列表中正确显示为\printbibliography
。
我希望在使用该\fullcite
命令时有最后一个点。
例子:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Trzesniowski:2011,
address = {Wiesbaden},
author = {Trzesniowski, M.},
edition = {3},
publisher = {Vieweg-Teubner},
subtitle = {Handbuch mit praktischen Konstruktionsbeispielen},
title = {CAD mit CATIA V5},
year = {2011}}
\end{filecontents}
\usepackage[backend=biber,]{biblatex}
\bibliography{\jobname.bib}
\begin{document}
\fullcite{Trzesniowski:2011}
\printbibliography
\end{document}
答案1
答案2
书目条目末尾的句点\finentrypunct
通常是通过调用bibmacro\finentry
中的宏生成的finentry
。
biblatex
明确不设置\finentrypuntc
。\fullcite
这使得在一次引用中处理多个引用变得稍微容易一些\fullcite
,并且让用户可以完全控制以下标点符号。
一般来说,我认为\fullcite
应该谨慎使用,所以我想知道这里的具体用例是什么。也许有更优雅的方法可以\fullcite
完全避免显式,并且已经附带所需的周期或使获取周期变得更容易。
标准定义\footcite
可以在biblatex.def
(v3.18b 中第 2157-2163 行)我将添加一个\finentry
(排版\finentrypunct
)如下
\documentclass[british]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{csquotes}
\usepackage[backend=biber,]{biblatex}
\DeclareCiteCommand{\fullcite}
{\usebibmacro{prenote}}
{\usedriver
{\DeclareNameAlias{sortname}{default}}
{\thefield{entrytype}}}
{\multicitedelim}
{\usebibmacro{postnote}%
\finentry}
\addbibresource{biblatex-examples.bib}
\begin{document}
Lorem
\fullcite{sigfridsson}
\printbibliography
\end{document}
答案3
一个简单但不太复杂的解决方案就是简单地在命令后面放置一个句号\fullcite .
,例如,这应该会产生相同的结果,只是它比 scd 的解决方案不那么优雅:
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@book{Trzesniowski:2011,
address = {Wiesbaden},
author = {Trzesniowski, M.},
edition = {3},
publisher = {Vieweg-Teubner},
subtitle = {Handbuch mit praktischen Konstruktionsbeispielen},
title = {CAD mit CATIA V5},
year = {2011}}
\end{filecontents}
\usepackage[backend=biber,]{biblatex}
\bibliography{\jobname.bib}
\begin{document}
\fullcite{Trzesniowski:2011}.
\printbibliography
\end{document}