参考书目水平线代替作者姓名

参考书目水平线代替作者姓名

该线程的原始问题(biblatex 中的 Dashed=true 选项导致 biblatex2.sty 错误)已由下面的@JosephWright 解决,应保留以供将来参考。

当我更好地理解了问题的本质后,我决定编辑原标题并在下面提供答案。我还删除了我的旧评论以清理帖子。

我用\RequirePackage[backend=biber,sorting=nyt]{biblatex}

答案1

dashed选项不是内置的,biblatex但由一些标准样式提供:authoryear和衍生品。authoryear.bbx你会发现

\DeclareBibliographyOption{dashed}[true]{%
  \ifstrequal{#1}{true}
    {\ExecuteBibliographyOptions{pagetracker}%
     \renewbibmacro*{bbx:savehash}{\savefield{fullhash}{\bbx@lasthash}}}
    {\renewbibmacro*{bbx:savehash}{}}}

随着

\newbibmacro*{bbx:savehash}{%
  \savefield{fullhash}{\bbx@lasthash}}

并在各个地方使用这个新的宏。

因此,为了提供dashed选项,自定义样式必须加载authoryear并进行更改或者包含上述行(或其变体)。

答案2

这个宏插入到我的.def文件中,为同一作者的不同书目项目生成水平线、句号和空格。

行高可以通过“ex”调整,长度可以通过“em”调整

\renewcommand*{\bibnamedash}{%
  \leavevmode\raise -0.4ex\hbox to 5.5em{\hrulefill}.\space}

\newbibmacro*{bbx:dashcheck}[2]{%
  \ifboolexpr{
    test {\iffieldequals{fullhash}{\bbx@lasthash}}
    and
    not test \iffirstonpage
  }
    {#1}
    {#2}}

\newbibmacro*{cbx:dashcheck}[2]{#2}

\newbibmacro*{dashcheck}[2]{%
  \usebibmacro{cbx:dashcheck}{#1}{#2}}

\newbibmacro*{savehash}{}

它看起来是这样的:

在此处输入图片描述

相关内容