Я редактирую библиографию своей диссертации с помощью biblatex, но в литературе и во Франции у нас очень четкие правила цитирования документов. Я использую verbose
citestyle и bibstyle, чтобы сделать свои цитаты сносками, но стиль цитирования статей не отвечает моим потребностям. Вот мой пример:
\documentclass[french,a4paper,12pt,oneside]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{csquotes}
\usepackage[citestyle=verbose-trad2,citepages=omit,bibstyle=verbose,isbn=false,doi=false,sorting=ynt]{biblatex}
\defbibheading{bibliography}[\bibname]{\subsubsection*{#1}}
\renewcommand{\newunitpunct}[0]{\addcomma\addspace}
\renewcommand*{\mkibid}{\emph} % pour mettre ibid, op. cit. et loc.cit. en italique
%pour mettre "éditeur, ville, date":
\renewbibmacro*{publisher+location+date}{%
\printlist{location}%
\setunit*{\addcomma\space}%
\printlist{publisher}%
\setunit*{\addcomma\space}%
\usebibmacro{date}%
\newunit}
\DefineBibliographyStrings{french}{%
in = {dans}%
}
%pour mettre la date de l'édition utilisée juste après l'année originale
\renewbibmacro{date}{%
\DeclareFieldFormat{edition}{##1}%
\printfield{year}%
\addspace%
\printfield{edition}%
}
\DeclareFieldFormat{edition}{}
%\bibliography{bibliotheseA}
\begin{filecontents}{test.bib}
@article{TrillingCalvino1962,
title = {Calvino in musica},
author = {Trilling, Ossia},
date = {1962-01},
journaltitle = {Sipario},
volume = {XVII},
keywords = {2caa},
langid = {italian},
number = {189}
}
@book{ValeryEgo1992,
title = {Ego scriptor},
author = {Valéry, Paul},
date = {1992},
publisher = {{Gallimard}},
location = {{Paris}},
keywords = {2lit},
langid = {french}
}
\end{filecontents}
\addbibresource{test.bib}
\begin{document}
Some text.\autocite{ValeryEgo1992}
Other text.\autocite{TrillingCalvino1962}
\printbibliography
\end{document}
По какой-то причине у меня не работает цитирование книги, но в любом случае это не проблема для моего документа. Проблема в результате цитирования статьи:
Я бы хотел, чтобы цитата была такой: Триллинг, Оссиа, «Кальвино в музыке»,Сипарио, № 189, т. XVII, 1962.
Или, в более общем смысле:
<SURNAME>, <Name>, "<title>", *<journaltitle>*, n°<number>, vol.<volume>, <date>.
Мне удалось изменить порядок и стиль для книг, но не для статей. Есть идеи?
решение1
В biblatex
@article
s number
всегда есть подразделениеvolume
. Если в вашем случаеобъемявляется подразделениемчислоЯ, вероятно, склонился бы к тому, чтобы поменять два поля во входных данных, чтобы сохранить согласованность с другими стилями. Сначала я покажу решение, которое это делает, а затем объясню, что нужно сделать для обмена, volume
и number
если вы настаиваете, это необходимо.
Взяв за основу biblatex-ext
«'», ext-verbose-trad2
можно внести множество необходимых изменений, просто изменив макросы пунктуации.
\documentclass[french,a4paper,12pt,oneside]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[french=quotes]{csquotes}
\usepackage[backend=biber,
style=ext-verbose-trad2,
sorting=ynt,
articlein=false,
isbn=false, doi=false,
citepages=omit]{biblatex}
\renewcommand{\newunitpunct}{\addcomma\space}
\renewcommand*{\mkibid}{\emph}
\renewcommand*{\jourvoldelim}{\addcomma\space}
\renewcommand*{\volnumdelim}{\addcomma\space}
\DeclareFieldFormat[article,periodical]{volume}{\bibstring{number}~#1}
\DeclareFieldFormat[article,periodical]{number}{\bibstring{jourvol}~#1}
\renewcommand*{\volnumdatedelim}{\addcomma\space}
\DeclareFieldFormat{issuedate}{#1}
\renewbibmacro{edition}{}
\renewcommand*{\locdatedelim}{\addcomma\space}
\renewcommand*{\locpubdelim}{\addcomma\space}
\renewcommand*{\pubdatedelim}{\addcomma\space}
\renewbibmacro*{pubinstorg+location+date}[1]{%
\printlist{location}%
\iflistundef{#1}
{\setunit*{\locdatedelim}}
{\setunit*{\locpubdelim}}%
\printlist{#1}%
\setunit*{\pubdatedelim}%
\usebibmacro{date}%
\setunit{\addspace}%
\printfield{edition}%
\newunit}
\DefineBibliographyStrings{french}{%
in = {dans},
jourvol = {vol\adddot},
}
\begin{filecontents}{\jobname.bib}
@article{TrillingCalvino1962,
title = {Calvino in musica},
author = {Trilling, Ossia},
date = {1962-01},
journaltitle = {Sipario},
number = {XVII},
keywords = {2caa},
langid = {italian},
volume = {189},
}
@book{ValeryEgo1992,
title = {Ego scriptor},
author = {Valéry, Paul},
date = {1992},
publisher = {Gallimard},
location = {Paris},
edition = {4},
keywords = {2lit},
langid = {french},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Some text.\autocite{ValeryEgo1992}
Other text.\autocite{TrillingCalvino1962}
\printbibliography
\end{document}
Если вы настаиваете на обмене volume
и journal
вам также необходимо изменить bibmacro volume+number+eid
.
\documentclass[french,a4paper,12pt,oneside]{book}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage[french=quotes]{csquotes}
\usepackage[backend=biber,
style=ext-verbose-trad2,
sorting=ynt,
articlein=false,
isbn=false, doi=false,
citepages=omit]{biblatex}
\renewcommand{\newunitpunct}{\addcomma\space}
\renewcommand*{\mkibid}{\emph}
\renewcommand*{\jourvoldelim}{\addcomma\space}
\newcommand*{\numvoldelim}{\addcomma\space}
\DeclareFieldFormat[article,periodical]{number}{\bibstring{number}~#1}
\DeclareFieldFormat[article,periodical]{volume}{\bibstring{jourvol}~#1}
\renewbibmacro*{volume+number+eid}{%
\printfield{number}%
\setunit*{\numvoldelim}%
\printfield{volume}%
\setunit{\bibeidpunct}%
\printfield{eid}}
\renewcommand*{\volnumdatedelim}{\addcomma\space}
\DeclareFieldFormat{issuedate}{#1}
\renewbibmacro{edition}{}
\renewcommand*{\locdatedelim}{\addcomma\space}
\renewcommand*{\locpubdelim}{\addcomma\space}
\renewcommand*{\pubdatedelim}{\addcomma\space}
\renewbibmacro*{pubinstorg+location+date}[1]{%
\printlist{location}%
\iflistundef{#1}
{\setunit*{\locdatedelim}}
{\setunit*{\locpubdelim}}%
\printlist{#1}%
\setunit*{\pubdatedelim}%
\usebibmacro{date}%
\setunit{\addspace}%
\printfield{edition}%
\newunit}
\DefineBibliographyStrings{french}{%
in = {dans},
jourvol = {vol\adddot},
}
\begin{filecontents}{\jobname.bib}
@article{TrillingCalvino1962,
title = {Calvino in musica},
author = {Trilling, Ossia},
date = {1962-01},
journaltitle = {Sipario},
volume = {XVII},
keywords = {2caa},
langid = {italian},
number = {189},
}
@book{ValeryEgo1992,
title = {Ego scriptor},
author = {Valéry, Paul},
date = {1992},
publisher = {Gallimard},
location = {Paris},
edition = {4},
keywords = {2lit},
langid = {french},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
Some text.\autocite{ValeryEgo1992}
Other text.\autocite{TrillingCalvino1962}
\printbibliography
\end{document}