reference - 在 Latex 中用逗号替换引用中的括号
问题描述
我想在参考文献中用逗号替换年份的括号,因为它是《金融期刊》中的标准方法。
在参考文献中,我有这个结构;作者(2020)标题...但我想将其更改为;作者, 2020, 标题...
这将是一个示例书目:
@article{examplesource,
title={Title of article},
author={LastName1, FirstName1 and LastName2, FirstName2 and LastName3, FirstName3},
journal={Journal of Finance},
volume={40},
number={1},
pages={3--73},
year={2005}}
这是我到目前为止所拥有的:
\documentclass{article}
\usepackage[style=ext-authoryear, backend=biber, giveninits=true, uniquelist = false, uniquename=init, isbn=false, maxcitenames=3, dashed=false, maxbibnames=999, doi=false, url=false]{biblatex}
\addbibresource{biblatex-examples.bib}
%\DeclareDelimFormat{nameyeardelim}{\addcomma\space}
\setlength{\bibhang}{15pt}
\DeclareNameAlias{sortname}{family-given}
\renewcommand*{\labelnamepunct}{\addspace}
\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished]{title}{#1}
\DeclareFieldFormat{titlecase}{\MakeSentenceCase*{#1}}
\renewbibmacro*{in:}
{\ifentrytype{article}
{\setunit{\addcomma\space}}
{\printtext{\bibstring{in}\intitlepunct}}}
\DeclareFieldFormat{journaltitlecase}{#1}
\renewbibmacro*{journal}{
\ifboolexpr{
test {\iffieldundef{journaltitle}}
and
test {\iffieldundef{journalsubtitle}}}
{\printtext[journaltitle]{
\printfield[journaltitlecase]{journaltitle}
\setunit{\subtitlepunct}
\printfield[journaltitlecase]{journalsubtitle}}}}
\renewbibmacro*{volume+number+eid}{
\printfield{volume}
\setunit{\addcomma\space}
\printfield{eid}}
\DeclareFieldFormat[article,periodical]{volume}{{#1}}
\DeclareFieldFormat{pages}{#1}
\UndeclareInnerCiteDelims{parencite}
\DeclareInnerCiteDelims{parencite}{(}{)}
\begin{document}
\textcite{examplesource} lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\\
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua \parencite{examplesource}.
\printbibliography
\end{document}
非常感谢你的帮助!
解决方案
幸运的是,您正在使用该ext-authoryear
样式,因此您可以使用
\DeclareFieldFormat{biblabeldate}{#1}
删除括号\DeclareDelimFormat[bib]{nameyeardelim}{\addcomma\space}
在年份前添加逗号\ExecuteBibliographyOptions{innamebeforetitle=true} \DeclareDelimFormat[bib]{nametitledelim}{\addcomma\space}
在年份后添加逗号
\documentclass{article}
\usepackage[style=ext-authoryear, backend=biber, giveninits=true, uniquelist = false, uniquename=init, isbn=false, maxcitenames=3, dashed=false, maxbibnames=999, doi=false, url=false]{biblatex}
\addbibresource{biblatex-examples.bib}
%\DeclareDelimFormat{nameyeardelim}{\addcomma\space}
\setlength{\bibhang}{15pt}
\DeclareNameAlias{sortname}{family-given}
\renewcommand*{\labelnamepunct}{\addspace}
\DeclareFieldFormat[article,inbook,incollection,inproceedings,patent,thesis,unpublished]{title}{#1}
\DeclareFieldFormat{titlecase}{\MakeSentenceCase*{#1}}
\renewbibmacro*{in:}
{\ifentrytype{article}
{\setunit{\addcomma\space}}
{\printtext{\bibstring{in}\intitlepunct}}}
\DeclareFieldFormat{journaltitlecase}{#1}
\renewbibmacro*{journal}{
\ifboolexpr{
test {\iffieldundef{journaltitle}}
and
test {\iffieldundef{journalsubtitle}}}
{\printtext[journaltitle]{
\printfield[journaltitlecase]{journaltitle}
\setunit{\subtitlepunct}
\printfield[journaltitlecase]{journalsubtitle}}}}
\renewbibmacro*{volume+number+eid}{
\printfield{volume}
\setunit{\addcomma\space}
\printfield{eid}}
\DeclareFieldFormat[article,periodical]{volume}{{#1}}
\DeclareFieldFormat{pages}{#1}
\UndeclareInnerCiteDelims{parencite}
\DeclareInnerCiteDelims{parencite}{(}{)}
\DeclareFieldFormat{biblabeldate}{#1}
\DeclareDelimFormat[bib]{nameyeardelim}{\addcomma\space}
\ExecuteBibliographyOptions{innamebeforetitle=true} \DeclareDelimFormat[bib]{nametitledelim}{\addcomma\space}
\begin{document}
\textcite{knuth:ct} lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.\\
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua \parencite{knuth:ct}.
\printbibliography
\end{document}
推荐阅读
- r - 根据特定模式刮取多个段落
- python - 如何从 Jupyter 笔记本中删除意外的 CSS?
- python - 医学影像数据 - 如何将 .raw/mhd 转换为 Nifti/nii
- node.js - 如何从 ionic 公开静态 html 页面
- express - 无法从 express/npm 模块中找到静态资产
- node.js - 建立数据库连接后如何获取所有文档
- android - Android Studio:膨胀类 android.support.design.widget.FloatingActionButton 时出错
- python-3.x - Google Cloud Speech to Text 中的 enable_speaker_diarization 标记出错
- python - Scrapy 将动态项目导出到 csv
- c++ - 这个 OpenFST 函数中的 `Read` 来自哪里?