标题在参考书目中排在第一位,需要更新

标题在参考书目中排在第一位,需要更新

当我尝试此示例代码时另一个问题我收到一个 Latex 错误。

\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}

\DeclareBibliographyCategory{mine}
\addtocategory{mine}{companion,sigfridsson}
\nocite{companion,sigfridsson}

\newcommand{\nameuse}[1]{%
  \def\do##1{%
    \settoggle{blx@use##1}{#1}
  }%
  \dolistcsloop{blx@biber@datamodel@names}}

\newcommand{\nameusesave}{%
  \def\do##1{%
    \providetoggle{blx@save@use##1}%
    \iftoggle{blx@use##1}{\toggletrue{blx@save@use##1}}{\togglefalse{blx@save@use##1}}%
  }%
  \dolistcsloop{blx@biber@datamodel@names}}

\newcommand{\nameuserestore}{%
  \def\do##1{%
    \iftoggle{blx@save@use##1}{\toggletrue{blx@use##1}}{\togglefalse{blx@use##1}}%
  }%
  \dolistcsloop{blx@biber@datamodel@names}}

\begin{document}
\nameusesave
\nameuse{false}
\printbibliography[category=mine]
\nameuserestore

\printbibliography[category=mine]
\end{document}

错误:

! Missing \endcsname inserted.
<to be read again> 
                   \blx@biber@datamodel@names 
l.30 \nameusesave

我猜想原因是我使用的是较新版本的 Biblatex/Biber/其他软件。我正在使用 Pdftex、Biber 2.7 版和(我相信)Biblatex 3.7 版。

如果有人能解释这个问题和/或发布新的代码,我将不胜感激。

补充:当然,任何可行的解决方案都可以。它不必与之前的答案相同。

答案1

不久前,当 BibTeX 被宣布为遗留后端时,核心biblatex被重写,大多数对 Biber 的提及都从命令名称中删除。数据模型名称现在存储在 中\blx@datamodel@names,而不是 中\blx@biber@datamodel@names。所以我们需要将这三个都更改\dolistcsloop{blx@biber@datamodel@names}

\dolistcsloop{blx@datamodel@names}

我已经更新了我的答案将书名放在参考书目首位使用新名称。

在全

\documentclass{article}
\usepackage{biblatex}
\addbibresource{biblatex-examples.bib}

\DeclareBibliographyCategory{mine}
\addtocategory{mine}{companion,sigfridsson}
\nocite{companion,sigfridsson}

\newcommand{\nameuse}[1]{%
  \def\do##1{\settoggle{blx@use##1}{#1}}%
  \dolistcsloop{blx@datamodel@names}}

\newcommand{\nameusesave}{%
  \def\do##1{%
    \providetoggle{blx@save@use##1}%
    \iftoggle{blx@use##1}{\toggletrue{blx@save@use##1}}{\togglefalse{blx@save@use##1}}%
  }%
  \dolistcsloop{blx@datamodel@names}}

\newcommand{\nameuserestore}{%
  \def\do##1{%
    \iftoggle{blx@save@use##1}{\toggletrue{blx@use##1}}{\togglefalse{blx@use##1}}%
  }%
  \dolistcsloop{blx@datamodel@names}}

\begin{document}
\nameusesave
\nameuse{false}
\printbibliography[category=mine]
\nameuserestore

\printbibliography[category=mine]
\end{document}

在此处输入图片描述

相关内容