варианты для стилизации \fullcite

варианты для стилизации \fullcite

У меня есть список элементов библатекса в документе, который дополнительно имеет раздел библиографии. В этой части я хочу перечислить некоторые элементы библиографии, \fullciteно в другом стиле, чем основная библиография.

Я могу изменить количество авторов следующим образом:

\begingroup
\defcounter{minnames}{2}
\fullcite{key}
\endgroup

Как я могу еще больше изменить стиль \fullcite?

МВЕБ

\documentclass[en-US,de-DE]{article}

\usepackage[
  style=authoryear-ibid,
  maxnames=2,
  backend=biber,
  safeinputenc,
  isbn=false,
  doi=false,
  maxcitenames=2,
  urldate=iso8601,
  date=iso8601
]{biblatex}

\addbibresource{\jobname.bib}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@book{key,
  author = {Author, A.},
  year = {2001},
  title = {Title},
  publisher = {Publisher},
  pagetotal = {383},
  edition = {1},
  pages = {151--154},
  url = {http://www.google.com},
}
\end{filecontents}

\begin{document}
text1

\fullcite{key}

text2

\cite{key}

text3

\printbibliography[heading=bibintoc]

\end{document}

Я хочу удалить год, URL-адреса из этих элементов, перечисленных, \fullciteа также номера страниц и издания книг?

pdf-рендеринг

решение1

Это можно сделать двумя способами: можно переопределить команду, \fullciteчтобы очистить ненужные поля, или, как отмечено в комментариях, можно использовать \AtEverycitekeyдля того же самого.

Концептуально, изменение \fullciteкажется лучшим решением, поскольку использование \AtEveryCitekeyизменяет любую ссылку, поэтому, если вы хотите удалить какую-либо информацию из , \fullciteкоторая обычно включается в обычный \cite, то выдолжениспользуйте это решение.

Если вы просто удаляете URL, издание и страницы из , \fullciteто не будет никаких плохих побочных эффектов от использования, \AtEveryCitekeyпоскольку только \fullciteкоманда цитирования будет выводить эти поля. Но если вы хотите удалить также и год (как вы упоминаете в комментариях), то изменение \fullcite— единственный способ сделать это. \AtEveryCitekeyПо этой причине я удалил решение из кода, но поместил его отдельно в конце.

В зависимости от типа информации, которую нужно подавить, вам может потребоваться использовать один из \clearfield, \clearlistили \clearname. В случае publisher, или location, например, их типом является список, поэтому \clearlistдля их очистки вам нужно использовать . Раздел 2.2.2 документации biblatexописывает каждое поле и его тип данных.

\documentclass[en-US,de-DE]{article}

\usepackage[
  style=authoryear-ibid,
  maxnames=2,
  backend=biber,
  safeinputenc,
  isbn=false,
  doi=false,
  maxcitenames=2,
  urldate=iso8601,
  date=iso8601
]{biblatex}

\addbibresource{\jobname.bib}
\usepackage{filecontents}

\begin{filecontents}{\jobname.bib}
@book{key,
  author = {Author, A.},
  year = {2001},
  title = {Title},
  publisher = {Publisher},
  pagetotal = {383},
  edition = {1},
  pages = {151--154},
  url = {http://www.google.com},
}
\end{filecontents}

\DeclareCiteCommand{\fullcite}
  {\usebibmacro{prenote}}
  {\clearfield{url}%
   \clearfield{pages}%
   \clearfield{pagetotal}%
   \clearfield{edition}%
   \clearfield{labelyear}%
   \usedriver
     {\DeclareNameAlias{sortname}{default}}
     {\thefield{entrytype}}}
  {\multicitedelim}
  {\usebibmacro{postnote}}
\begin{document}
text1
\cite{key}

\fullcite{key}

text2

\cite{key}

text3

\printbibliography[heading=bibintoc]

\end{document}

вывод кода

С использованием\AtEveryCitekey

Как отмечено выше, использование \AtEveryCitekeyтакже может работать, если нет совпадений в информации, которая вам нужна в обычном cite, и информации, которую вы подавляете в \fullcite. Вот код для использования этого метода:

\AtEveryCitekey{
\clearfield{url}
   \clearfield{pages}
   \clearfield{pagetotal}
   \clearfield{edition}
   \clearfield{labelyear}
}

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