调整 biblatex authoryear 样式(以接近 apalike)

调整 biblatex authoryear 样式(以接近 apalike)

又读了几个小时后,我还是找不到获得以下引用样式的解决方案:

[Senarclens de Grancy 和 Reimann 2014]

以及参考书目中的以下格式

[Senarclens de Grancy 和 Reimann,2014] Senarclens de Grancy,G. 和 Reimann,
M.:“具有时间窗口和多名服务人员的车辆路线问题:ACO 和 GRASP 之间的系统比较”;《中欧运筹学杂志》123,1-20

请注意引文和参考书目中的方括号。在参考书目中,冒号后面加上引号,这样会更好。理想情况下,我希望坚持调整 biblatex 的作者年份样式,但是我最接近上述做法的是使用常规 bibtex 和 \bibliographystyle{apalike}。一个很好的提示是Biblatex,作者年份,方括号,但我无法进行剩余的调整。如能得到任何帮助,我将不胜感激。

编辑:根据要求,这里是如何呈现参考书目的屏幕截图。 参考资料的屏幕截图

EDIT2:我目前正在努力解决的一个代码片段(复制了几个我不太明白的例子)

\documentclass{article}
\usepackage[style=authoryear]{biblatex}
\usepackage{filecontents}

\makeatletter

\newrobustcmd*{\parentexttrack}[1]{%
  \begingroup
  \blx@blxinit
  \blx@setsfcodes
  \blx@bibopenparen#1\blx@bibcloseparen
  \endgroup}

\AtEveryCite{%
  \let\parentext=\parentexttrack%
  \let\bibopenparen=\bibopenbracket%
  \let\bibcloseparen=\bibclosebracket}

\def\act@on@bibmacro#1#2{%
  \expandafter#1\csname abx@macro@\detokenize{#2}\endcsname
}
\def\patchbibmacro{\act@on@bibmacro\patchcmd}
\def\pretobibmacro{\act@on@bibmacro\pretocmd}
\def\apptobibmacro{\act@on@bibmacro\apptocmd}
\def\showbibmacro{\act@on@bibmacro\show}

\makeatother

\begin{filecontents}{\jobname.bib}
@Article{ SenarclensAndReimann:2014,
  author={{Senarclens~{d}e~Grancy}, Gerald and Reimann, Marc},
  title={Vehicle routing problems with time windows and multiple service
workers:   a systematic comparison between ACO and GRASP},
  issn={1435-246X},
  year={2014},
  journal={Central European Journal of Operations Research},
  publisher={Springer Berlin Heidelberg},
  doi={10.1007/s10100-014-0341-z},
  pages={1-20}
}
\end{filecontents}

\addbibresource{\jobname.bib}

\begin{document}
    \textcite{SenarclensAndReimann:2014} \\
    \parencite{SenarclensAndReimann:2014} \\
    \autocite{SenarclensAndReimann:2014} \\
    \printbibliography
\end{document}

答案1

引用部分使用你的代码。参考书目部分可以修改样式的宏。

A。书目风格authortitle与问题中的风格比较相似authoryear。建议bibstyle=authortitle在的负载中 使用biblatex

b.该示例仅使用名字的首字母,因此需要使用firstinits=true

C。样式书目需要打印所有作者。这可以使用maxbibnames=99。(括号内的名称将在下面处理)。

d.书目条目的第一部分是作者姓名组成的“标签”。如果作者人数大于 2,则姓名会被截断。然后可以重新定义begentry 。 IE

\renewbibmacro*{begentry}{%`
\mkbibbrackets{% Print between brackets
% Fist author only, if num. of authors is greater to 2.
\printnames[][1-\ifnumgreater{\value{labelname}}{2}{1}{\value{maxnames}}]{labelname}
\space\printfield{year}}\space%
\renewcommand{\newunitpunct}{\addsemicolon\space}%
 }

e.@article条目没有使用in:betweentitle和 journal 这个词。然后该in:宏被重新定义为:

\newbibmacro*{in:}{}

F。期刊名称不再被强调。然后journaltitle格式被重新定义为:

\DeclareFieldFormat{journaltitle}{{#1}}

G。页面部分不使用页面词缩写,则pages和的格式pagetotal重新定义为:

\DeclareFieldFormat{pages}{{#1}}
\DeclareFieldFormat{pagetotal}{{#1}}

H。最后,作者姓名的排序为'lastname'-'firstname',然后定义格式为authoreditor并且 translator形式与格式相同last-first

\DeclareNameAlias{author}{last-first}
\DeclareNameAlias{editor}{last-first}
\DeclareNameAlias{translator}{last-first}

上面的“代码”不会重现问题中图片中的所有条目,因为很难猜测仅查看图片的样式规则。但它回答了如何在参考书目中添加括号部分以及如何编辑默认样式。我试图重现“[Hicks et al. 1998]”和[[Senarclens de Grancy and Reimann, 2014]”引文。最后我不明白“123”是什么。这部分不在 MWE 的文献目录中。

梅威瑟:

\documentclass{article}
\usepackage[style=authoryear, maxbibnames=99, bibstyle=authortitle, firstinits=true,doi=false]{biblatex}
\usepackage{filecontents}

\makeatletter

\newrobustcmd*{\parentexttrack}[1]{%
  \begingroup
  \blx@blxinit
  \blx@setsfcodes
  \blx@bibopenparen#1\blx@bibcloseparen
  \endgroup}

\AtEveryCite{%
  \let\parentext=\parentexttrack%
  \let\bibopenparen=\bibopenbracket%
  \let\bibcloseparen=\bibclosebracket}


\def\patchbibmacro{\act@on@bibmacro\patchcmd}
\def\pretobibmacro{\act@on@bibmacro\pretocmd}
\def\apptobibmacro{\act@on@bibmacro\apptocmd}
\def\showbibmacro{\act@on@bibmacro\show}

\makeatother

\renewbibmacro*{begentry}{%
  \mkbibbrackets{%
  \printnames[][1-\ifnumgreater{\value{labelname}}{2}{1}{\value{maxnames}}]{labelname}%
  \space\printfield{year}}\space%
  \renewcommand{\newunitpunct}{\addsemicolon\space}%
 }

\newbibmacro*{in:}{}

\DeclareFieldFormat{journaltitle}{{#1}}

\DeclareFieldFormat{pages}{{#1}}
\DeclareFieldFormat{pagetotal}{{#1}}

\DeclareNameAlias{author}{last-first}
\DeclareNameAlias{editor}{last-first}
\DeclareNameAlias{translator}{last-first}

\begin{filecontents}{\jobname.bib}
@Article{ SenarclensAndReimann:2014,
  author={{Senarclens~{d}e~Grancy}, Gerald and Reimann, Marc},
  title={Vehicle routing problems with time windows and multiple service
workers:   a systematic comparison between ACO and GRASP},
  issn={1435-246X},
  year={2014},
  journal={Central European Journal of Operations Research},
  publisher={Springer Berlin Heidelberg},
  doi={10.1007/s10100-014-0341-z},
  pages={1-20},
}

@Article{othercite,
  author={Hicks, D. and Leggett, J. and N{\"u}rnberg, P. and Schnase, J.},
  title={A hypermedia version control framework},
  number={2},
  year={1998},
  month={4},
  journal={ACM Trans. Inf. Sys.},
  publisher={Springer},
  volume={16},
  pages={127-160},
}

\end{filecontents}

\addbibresource{\jobname.bib}
 \renewcommand*{\labelnamepunct}{\addcolon\space}
 \newbibmacro*{volume+number+eid}{%
   \isdot\setunit*{\addcomma\space}%
   \printfield{volume}%
   \setunit*{\addcomma\space}%
   \printfield{number}%
   \setunit{\addcomma\space}%
   \printfield{eid}}

\begin{document}
    \textcite{SenarclensAndReimann:2014} \\
    \parencite{SenarclensAndReimann:2014} \\
    \autocite{SenarclensAndReimann:2014} \\


    \cite{othercite}
    \printbibliography
\end{document}

图片:

在此处输入图片描述

相关内容