![Пользовательский стиль BibLaTeX](https://rvso.com/image/281605/%D0%9F%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9%20%D1%81%D1%82%D0%B8%D0%BB%D1%8C%20BibLaTeX.png)
Мне нужно создать следующий стиль 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" для @articles
tryэтот:
\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}
дает