Как изменить стиль цитирования статей в biblatex?

Как изменить стиль цитирования статей в biblatex?

Я редактирую библиографию своей диссертации с помощью biblatex, но в литературе и во Франции у нас очень четкие правила цитирования документов. Я использую verbosecitestyle и 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 @articles 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}

Оссия Триллинг, «Кальвино в музыке», Сипарио, № 189, т. XVII, янв. 1962 год.


Если вы настаиваете на обмене 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}

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