如何更改 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}

由于某种原因,书籍引用对我来说不起作用,但无论如何,这不是我的文档的问题。问题是文章引用的结果:

结果文章引用

我希望引用如下:Trilling,Ossia,“音乐中的卡尔维诺”,西帕里奥,第 189 期,第 17 卷,1962 年。

或者更一般地:

<SURNAME>, <Name>, "<title>", *<journaltitle>*, n°<number>, vol.<volume>, <date>.

我可以更改书籍的顺序和样式,但无法更改文章的顺序和样式。有什么想法吗?

答案1

biblatex @articles中number,始终是 的细分volume。如果在你的案例中体积数字我可能倾向于交换输入中的两个字段,以保持与其他样式的一致性。我将首先展示一个解决方案,然后解释交换需要做什么volume以及number如果你坚持认为这是必要的。

biblatex-ext'sext-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}

Ossia Trilling,《卡尔维诺的音乐》,Sipario,第 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}

相关内容