
Я пишу докторскую диссертацию, но я разочаровываюсь, когда пытаюсь вывести формат ссылок, как того требует моя школа. Он должен быть следующим (в моей диссертации требуются только следующие три типа):
Журнал [Ж]
Книга [М]
Другие требования:
- Несколько авторов: если количество авторов больше 3, оставьте первых трех и используйте «et al» для остальных авторов.
- Сортировка: По внешнему виду.
Мой вопрос: какой стиль библиографии представлен выше?
и если ни один из существующих стилей библиографии не подходит для этого, как мне создать этот стиль с нуля?
.bib
:
@article{brauner91,
author = {Brauner, N.},
title = {Vapour absorption into falling film},
journal = {ASME J},
year = {1991},
volume = {34},
pages = {76-82},
number = {3}
}
@book{baehr1994,
title={Heat and mass transfer},
author={Baehr, H. D.},
year={1994},
page={221}
publisher={Berlin:Springer-Verlag}
}
@inproceedings{leiner1989,
year = {1989},
pages={68--71},
author = {Leiner, A.},
title = {Optical techniques for heat transfer measurements},
booktitle = { COLLINS W. Proc Int Conf on Energy and Environment},
publisher={New York: Academic Press}
}
решение1
Попробуйте следующее
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[style=numeric,backend=biber,giveninits=true,sorting=none,maxnames=3,minnames=3]{biblatex}
\addbibresource{biblatex-examples.bib}
\DeclareNameAlias{default}{family-given}
\renewcommand*{\revsdnamepunct}{}
\renewrobustcmd*{\bibinitperiod}{}
\renewcommand*{\finalnamedelim}{\multinamedelim}
\DeclareFieldFormat*{title}{#1}
\DeclareFieldFormat*{journaltitle}{#1\isdot}
\DeclareFieldFormat*{issuetitle}{#1}
\DeclareFieldFormat*{maintitle}{#1}
\DeclareFieldFormat*{booktitle}{#1}
\newbibmacro*{title}{%
\ifboolexpr{
test {\iffieldundef{title}}
and
test {\iffieldundef{subtitle}}
}
{}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}%
\ifentrytype{article}{\setunit{}\printtext{[A]}}{}
\ifentrytype{book}{\setunit{}\printtext{[B]}}{}%
\ifentrytype{inproceedings}{\setunit{}\printtext{[C]}}{}
\newunit}%
\printfield{titleaddon}}
\renewbibmacro*{in:}{\ifentrytype{article}{}{\printtext{//}}}
\renewbibmacro*{journal+issuetitle}{%
\usebibmacro{journal}%
\iffieldundef{series}
{}
{\newunit
\printfield{series}}%
\setunit{\addcomma\space}%
\printfield{issue}%
\setunit{\addcomma\space}%
\usebibmacro{date}
\setunit{\addcolon\space}%
\usebibmacro{issue}%
\setunit{\addcomma\space}%
\usebibmacro{volume+number+eid}%
\setunit{\addspace}%
\newunit}
\DeclareFieldFormat[article,periodical]{number}{\mkbibparens{#1}}
\renewbibmacro*{volume+number+eid}{%
\printfield{volume}%
\printfield{number}%
\setunit{\addcomma\space}%
\printfield{eid}}
\DeclareFieldFormat{pages}{#1}
\DeclareFieldFormat{postnote}{#1}
\DeclareFieldFormat{multipostnote}{#1}
\renewcommand*{\bibpagespunct}{\addcolon\addspace}
\renewcommand{\postnotedelim}{%
\iffieldpages{postnote}
{\addcolon\space}
{\addspace}}
\begin{document}
\cite{sigfridsson,brauner91,baehr1994,leiner1989,aksin}
\printbibliography
\end{document}
Большая часть этого довольно стандартна и может быть найдена вРуководство по настройке стилей biblatex,biblatex: убрать запятые между фамилиями и именами в библиографии,Двоеточие вместо «p.» в Biblatex authoryear-comp,Biblatex: Нет \postnotedelim для цитат, которые не являются цифрами,biblatex: скобки вокруг номера тома статьи
Странными требованиями вашего стиля были указание типа записи после заголовка, как у нас, как разделитель "//" для "in", они реализованы через
\renewbibmacro*{title}{%
\ifboolexpr{
test {\iffieldundef{title}}
and
test {\iffieldundef{subtitle}}
}
{}
{\printtext[title]{%
\printfield[titlecase]{title}%
\setunit{\subtitlepunct}%
\printfield[titlecase]{subtitle}}%
\ifentrytype{article}{\setunit{}\printtext{[A]}}{}
\ifentrytype{book}{\setunit{}\printtext{[B]}}{}%
\ifentrytype{inproceedings}{\setunit{}\printtext{[C]}}{}
\newunit}%
\printfield{titleaddon}}
\renewbibmacro*{in:}{\ifentrytype{article}{}{\printtext{//}}}
последнее, конечно, следует общей схемеПодавить «В:» biblatex.