Пользовательский стиль BibLaTeX

Пользовательский стиль BibLaTeX

Мне нужно создать следующий стиль BibLaTeX:

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

На данный момент я получаю следующий вывод:

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

с .bibфайлом под названиемLibtest.bib

@unpublished {mi:2009,
author = {T. Miller and X. Meyer and K. Nahel},
title = {Arbitrary title: extensive latex work pays of at university most likely},
type = {Unpublished working paper},
institution = {Random University}
location = {Random location}
date = {2009}
}

Тестирование:

\documentclass[a4paper, 12pt, headsepline, headings=small,]{scrreprt}
\overfullrule=1mm
\usepackage[onehalfspacing]{setspace}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}

\usepackage[backend=bibtex8,
    style=authoryear-icomp,
    dashed=false,
    autocite=footnote,
    maxcitenames=3,
    mincitenames=1,
    maxbibnames=100,
    sorting=nty
    ]{biblatex}
\bibliography{Libtest}
\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
  {}
  {\printtext[bibhyperref]{%
   \printtext[parens]{% 
   \printfield{labelyear}%
   \printfield{extrayear}}}}}
\bibliography{Libtest}
\begin{document}
\cite{mi:2009}  argue...
\printbibliography
\end{document}

Может быть, кто-нибудь поможет мне заменить «и» на запятые и добиться результата, показанного выше?

С уважением, Том.

решение1

Похоже, вы предпочитаете стиль, печатающий только инициалы имен, поэтому мы используем его firstinits=trueв качестве опции загрузки пакета.

Вам также нужен формат имени "Фамилия, Имя" для всех имен, поэтому мы выдаем \DeclareNameAlias{sortname}{last-first}. Чтобы избавиться от конечного "и": \renewcommand*{\finalnamedelim}{\multinamedelim}.

Никакие директивы форматирования не применяются titleк

\DeclareFieldFormat*{title}{#1}

Чтобы убрать скобки с года, добавьте в преамбулу следующее:

\renewbibmacro*{date+extrayear}{%
  \iffieldundef{\thefield{datelabelsource}year}
    {}
    {%\printtext[parens]{%
       \setunit{\addcomma\space}%
       \iffieldsequal{year}{\thefield{datelabelsource}year}
         {\printdateextralabel}%
         {\printfield{labelyear}%
          \printfield{extrayear}}}}%}%

Чтобы изменить порядок на «Учреждение, Местонахождение», мы используем

\renewbibmacro*{publisher+location+date}{%
  \printlist{publisher}%
  \setunit*{\addcomma\space}%
  \printlist{location}%
  \setunit*{\addcomma\space}
  \usebibmacro{date}%
  \newunit}

\renewbibmacro*{institution+location+date}{%
  \printlist{institution}%
  \setunit*{\addcomma\space}%
  \printlist{location}%
  \setunit*{\addcomma\space}
  \usebibmacro{date}%
  \newunit}

\renewbibmacro*{organization+location+date}{%
  \printlist{organization}%
  \setunit*{\addcomma\space}%
  \printlist{location}%
  \setunit*{\addcomma\space}
  \usebibmacro{date}%
  \newunit}

Чтобы избавиться от "in" для @articlestryэтот:

\renewbibmacro{in:}{%
  \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}

Следующий код отформатирует громкость и номер как «#vol (#nr)».

\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit*{\addspace}%
  \printfield[parens]{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}}

МВЭ

\documentclass{article}  
\usepackage[ngerman]{babel}
\usepackage{csquotes}
\usepackage[style=authoryear-icomp, dashed=false, autocite=footnote, maxcitenames=3,
    mincitenames=1, maxbibnames=100, sorting=nty, firstinits=true, backend=biber]{biblatex}
\usepackage{filecontents}
\usepackage{hyperref}
\begin{filecontents*}{\jobname.bib}
@unpublished {mi:2009,
  author = {T. Miller and X. Meyer and K. Nahel},
  title = {Arbitrary title: extensive latex work pays of at university most likely},
  type = {Unpublished working paper},
  institution = {Random University},
  location = {Random location},
  date = {2009},
}
@inproceedings{author2010title,
  AUTHOR   = {Smith, Agent},
  TITLE    = {{Entangled in the Matrix}},
  eventtitle= {Cyberwhatever Symposium},
  ADDRESS  = {Berlin},
  DATE     = {2010-06-01}
}
\end{filecontents*}
\addbibresource{\jobname.bib}
\addbibresource{biblatex-examples.bib}

\renewcommand*{\finalnamedelim}{\multinamedelim}
\DeclareNameAlias{sortname}{last-first}

\DeclareFieldFormat*{title}{#1}
\DeclareFieldFormat*{journaltitle}{#1}
\renewbibmacro*{cite:labelyear+extrayear}{%
\iffieldundef{labelyear}
  {}
  {\printtext[bibhyperref]{%
   \printtext[parens]{% 
   \printfield{labelyear}%
   \printfield{extrayear}}}}}

\renewbibmacro*{date+extrayear}{%
  \iffieldundef{\thefield{datelabelsource}year}
    {}
    {%\printtext[parens]{%
       \setunit{\addcomma\space}%
       \iffieldsequal{year}{\thefield{datelabelsource}year}
         {\printdateextralabel}%
         {\printfield{labelyear}%
          \printfield{extrayear}}}}%}%

\renewbibmacro*{publisher+location+date}{%
  \printlist{publisher}%
  \setunit*{\addcomma\space}%
  \printlist{location}%
  \setunit*{\addcomma\space}
  \usebibmacro{date}%
  \newunit}

\renewbibmacro*{institution+location+date}{%
  \printlist{institution}%
  \setunit*{\addcomma\space}%
  \printlist{location}%
  \setunit*{\addcomma\space}
  \usebibmacro{date}%
  \newunit}
\renewbibmacro*{organization+location+date}{%
  \printlist{organization}%
  \setunit*{\addcomma\space}%
  \printlist{location}%
  \setunit*{\addcomma\space}
  \usebibmacro{date}%
  \newunit}

\renewbibmacro{in:}{%
  \ifentrytype{article}{}{\printtext{\bibstring{in}\intitlepunct}}}

\renewbibmacro*{volume+number+eid}{%
  \printfield{volume}%
  \setunit*{\addspace}%
  \printfield[parens]{number}%
  \setunit{\addcomma\space}%
  \printfield{eid}}

\begin{document}
  \cite{mi:2009,markey,wilde,knuth:ct:a,baez/article,reese,itzhaki,cicero,author2010title,bertram}
  \printbibliography
\end{document}

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

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