biblatex и \fullcite: точка в конце отсутствует

biblatex и \fullcite: точка в конце отсутствует

Привет,

Я использую \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

Взгляните на это:

\DeclareCiteCommand{\fullcite} {\usebibmacro{prenote}} {\usedriver {} {\thefield{entrytype}}\addperiod} {\multicitedelim} {\usebibmacro{postnote}}

Выход:

введите описание изображения здесь

решение2

Точка в конце библиографической записи \finentrypunctобычно создается путем вызова макроса \finentryв finentrybibmacro.

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}

Что должно выглядеть так: Печатный пример

Связанный контент