Привет,
Я использую \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
обычно создается путем вызова макроса \finentry
в finentry
bibmacro.
biblatex
явно не устанавливается \finentrypuntc
в \fullcite
. Это немного упрощает работу с несколькими цитатами в одной \fullcite
и дает пользователю полный контроль над последующей пунктуацией.
В общем, я думаю, что \fullcite
следует использовать умеренно, поэтому мне интересно, какой именно вариант использования здесь. Может быть, есть более элегантные методы, которые \fullcite
вообще избегают явного и уже идут с желаемым периодом или упрощают получение периода.
Стандартное определение \footcite
можно найти вbiblatex.def
(11. 2157-2163 в т. 3.18б). Я бы добавил \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}