关于 \renewbibmacro*{author} 的副作用是在作者和标题之前显示一个简短作者,并在简短作者之后添加一个单词

关于 \renewbibmacro*{author} 的副作用是在作者和标题之前显示一个简短作者,并在简短作者之后添加一个单词

我需要参考书目中有这样的内容,以及在引文中首次出现的内容

곽윤직 편집대표,민법주해 제V권 제1판(민일영 집필부분),(박영사,2011)。

곽윤직 是短作者,편집대표 是特定词,민법주해 是书名,제V권 是卷,제1판 是版本,집필부분 是另一个特定词,박영사 是出版商,2011 是不言而喻的。

我通过以下代码实现了短作者部分表达(곽윤직 편집대표)。其他代码完成了剩余部分,考虑到我为制作一个最小工作示例而进行的测试,这些代码与我的问题无关。

\renewbibmacro*{author}{%
 \ifboolexpr{
  test \ifuseauthor
  and
  not test {\ifnameundef{author}}
  and
  not test {\ifkeyword{kommentar}}
  }
  {\printnames{author}%
    \iffieldundef{authortype}
    {}
    {\setunit{\printdelim{authortypedelim}}%
    \usebibmacro{authorstrg}}}
    {\printnames{shortauthor}\addspace\printtext{편집대표}
   \iffieldundef{authortype}
   {}
   {\setunit{\printdelim{authortypedelim}}%
    \usebibmacro{authorstrg}}}}

但是这样就导致同一个作者在参考书目中不再被破折号替换,就像下面这样。

Hess, Stephen A.,《联邦合同法中的“基本变革”原则》,《美国法律报告 Westlaw》,2006 年。

Hess, Stephen A.,《总成本法(或方法)》和《改良总成本法(或方法)》用于证明联邦合同案件中的损害赔偿,美国法律报告 Westlaw,2005 年。

我想要的是这个,保留上面的简短作者表达(곽윤직 편집대표 ...)。(顺便说一句,请不要担心缩进。)

Hess, Stephen A.,《联邦合同法中的“基本变革”原则》,《美国法律报告 Westlaw》,2006 年。

_______,《总成本法(或方法)》和《改进的总成本法(或方法)》用于证明联邦合同案件中的损害赔偿,美国法律报告 Westlaw,2005 年。

我的 MWE 是这样的。

\documentclass{scrbook}
\usepackage{biblatex}
\addbibresource{jobname.bib}
\defbibheading{bibliography}[bibliography]{\section*{#1}}

\usepackage{lipsum, filecontents}

\begin{filecontents}{\jobname.bib}
 @article{Hess2006,
       author = {Stephen A. Hess},
       title = {``Cardinal Change'' Doctrine in Federal Contracts Law},
       journaltitle = {American Law Reports},
       year = {2006},
   }
  @article{Hess2005,
       author = {Stephen A. Hess},
       title = {``Total Cost Method(or Approach)'' and ``Modified Total Cost Method(or Approach)'' to Proving Damages in Federal Contract Cases},
       journaltitle = {American Law Reports},
       year = {2005},
   }
   \end{filecontents}

\renewbibmacro*{author}{%
 \ifboolexpr{%
  test \ifuseauthor
  and
  not test {\ifnameundef{author}}
  }
  {\printnames{author}%
    \iffieldundef{authortype}
    {}
    {\setunit{\printdelim{authortypedelim}}%
    \usebibmacro{authorstrg}}}
    {\printnames{shortauthor}\addspace\printtext{test}%
   \iffieldundef{authortype}
   {}
   {\setunit{\printdelim{authortypedelim}}%
    \usebibmacro{authorstrg}}
    }}

\begin{document}

\lipsum[1]\footnote{\cite{Hess:2005aa}}

\lipsum[3]\footnote{\cite{Hess:2006aa}}

\printbibliography
\end{document}

顺便说一句,即使我复制并粘贴\newbibmacro*{author}biblatex.def 中的所有内容,也会发生这种情况。将命令更改为\renewbibmacro也会出现同样的情况。

MacTex Tex Live 2020,已应用 XeLaTeX。在我的测试中参考书目风格中立。

相关内容