我使用 Latex 已经有几年了,这是迄今为止我遇到的最奇怪的问题。
我正在使用scrbook
并尝试执行以下操作:我希望我的书的前两章(简介和致谢)属于\frontmatter
罗马数字页码。
这是我的正常 WE(我尝试制作 MWE,但没有重现错误,因此我将其包括在内):
\documentclass[10pt,a4paper,twoside]{scrbook}%
\usepackage[dvips=false,pdftex=false,vtex=false]{geometry}
\geometry{
paperwidth=155mm,
paperheight=230mm,
inner=25mm,
outer=23mm,
bottom=20mm,
top=27mm
}
\usepackage[polutonikogreek,ngerman]{babel}%
\usepackage[utf8]{inputenc}%
\usepackage[T1]{fontenc}%
\usepackage{anyfontsize}
\usepackage{textcomp}%
\usepackage{longtable}%
\usepackage{tabularx}%
\usepackage{blindtext}
\usepackage{array}%
\usepackage{float}%
\usepackage{textcomp}%
\usepackage{setspace}%
\usepackage{tabto}%
\usepackage{scrlayer-scrpage}%replaces fancyheader because its not good to use it with scrbook
\usepackage{graphicx}%
\usepackage{nameref}%
\usepackage{rotating}%
\usepackage[textwidth=2cm, textsize=tiny, backgroundcolor=white, linecolor=black]{todonotes}%
\usepackage{acronym}
\usepackage{bookmark}
\usepackage[nonewpage]{imakeidx}% MULTIPLE INDICES
\indexsetup{level=\section*,toclevel=section,noclearpage} %
\makeindex[name=band1-bibelstellen,title=Bibelstellen, intoc, options= -s one.ist]
\makeindex[name=band1-themen,title=Themen, intoc, options= -s two.ist]
\makeindex[name=band1-personen,title=Personen, intoc, options= -s three.ist]
\makeindex[name=band2-bibelstellen,title=Bibelstellen, intoc, options= -s one.ist]
\makeindex[name=band2-themen,title=Themen, intoc, options= -s two.ist]
\makeindex[name=band2-personen,title=Personen, intoc, options= -s three.ist]
\makeindex[name=band3-bibelstellen,title=Bibelstellen, intoc, options= -s one.ist]
\makeindex[name=band3-themen,title=Themen, intoc, options= -s two.ist]
\makeindex[name=band3-personen,title=Personen, intoc, options= -s three.ist]
\usepackage{xcolor}%
\usepackage{mdwlist}%
\usepackage{titlesec}% ovo ti treba za paragraph bez brojeva
\usepackage{mathptmx}% Times font
\usepackage[normalem]{ulem}% Strikethrough text
%
% CHANGE CHAPTER TO BAND
%
\usepackage{xpatch}
\makeatletter
\@addtoreset{chapter}{part}
\xpatchcmd{\@part}{\normalfont}{\normalfont\centering}{}{}
\xpatchcmd{\@part}{\Large}{\LARGE}{}{}
\makeatother
%
% CROP MARKS FOR PRINTING
%
\usepackage[cam,a4,center,dvips]{crop}
\usepackage{etoc}
%
% SECTIONS NUBERING
%
\setcounter{secnumdepth}{4}
%
% TEXT SPACING%
%
\renewcommand{\baselinestretch}{1.2}
\renewcommand{\arraystretch}{1.25}
%
% FOOTNOTES
%
\setlength{\footnotesep}{9pt}% WHITE SPACE BETWEEN FOOTNOTES
\renewcommand*\footnoterule{}% NO LINE BETWEEN TEXT AND FOOTNOTES
\interfootnotelinepenalty=-300% SETS HOW OFTEN FOOTNOTE BREAKS % Default value 100
%
% FOOTNOTE-NUMBERS RESET FOR EACH PART OF THE WORK
%
\usepackage{chngcntr}
\counterwithin*{footnote}{part}
%
% SAME FOOTNOTE SIZE ALL ARROUND
%
\makeatletter
\renewcommand\@makefnmark{%
\hbox{\ftntm@font\raisebox{\adjust@fnmheight}{\scriptsize\thefootnotemark}}%
}
\newcommand{\adjust@fnmheight}{%
\dimexpr.85ex+.3\dimexpr\f@size pt-\basic@size pt\relax\relax
}
\AtBeginDocument{\edef\basic@size{\f@size}}
\makeatother
%
% ALLIGN FOOTNOTE IN KOMA-SCRIPT
%
\deffootnote{1em} {1em}{\textsuperscript{\thefootnotemark\ }}
%
%
% GREEK AND LATIN
%
\newcommand{\grk}[1]{{\foreignlanguage{polutonikogreek}{#1}}}%
\newcommand{\lat}[1]{\emph{{#1}}}%
%
% PART NO DOT
%
\renewcommand*{\partformat}{\partname~\thepart}
\renewcommand*{\partpagestyle}{empty}
%
% PART NAME CHANGE FROM KAPITEL TO BAND
%
\addto{\captionsngerman}{\renewcommand*{\partname}{Band}}
%
% RESET CHAPTERS AND SECTIONS ALWAYS AFTER PART
%
\usepackage{chngcntr}
\counterwithin*{chapter}{part}
%
% NEW CROSSREF COMMAND FOR CROSSREFERENCING VOLUMES
%
\usepackage[counter,user,hyperref]{zref}
\makeatletter
\AtBeginDocument{%
\@ifpackageloaded{hyperref}{%
}{
\providecommand{\phantomsection}{}
\providecommand{\hyperlink}[2]{#2}
}
\zref@newlist{partpage}
\zref@newprop*{partprop}[-1]{\number\value{part}}
\zref@addprops{partpage}{partprop,page,anchor} % page is defined by default!
%\newcounter{herecntr}
\newcommand{\here}[1]{%
\phantomsection% Needed for correct hyper links
\zref@labelbyprops{#1}{partprop,page,anchor}%
}
\newcommand{\crossref}[1]{%
\ifnum\value{part}=\zref@extract{#1}{partprop}\relax% Check whether the current part counter value is the same as the extracted part property from the label
S. \hyperlink{\zref@extract{#1}{anchor}}{\zpageref{#1}}%
\else% No, it is not the same!
Christologie und Kommunion, Bd. \zref[partprop]{#1}, S. \hyperlink{\zref@extract{#1}{anchor}}{\zpageref{#1}}%
\fi
}
}
\makeatother
%
% BIBLATEX:%
%
\usepackage[style=historische-zeitschrift, maxnames=2, hyperref=false, backref=true, backrefstyle=none, backend=bibtex,idemtracker=true]{biblatex}% change to hyperref=true to get clickable links
\usepackage[babel,german=quotes]{csquotes}%
\usepackage{filecontents}
\begin{filecontents}{\jobname.bib}
@incollection{athanasius1998,
Address = {Berlin/New York},
Author = {{Athanasius Alexandrinus}},
Booktitle = {Athanasius Werke - Die dogmatischen Schriften},
Call-Number = {TH: Vb 17.02-1.1.2},
Date-Added = {2010-10-16 13:24:30 +0200},
Date-Modified = {2014-03-13 17:12:32 +0000},
Editor = {Marin Tetz and others},
Keywords = {source},
Pages = {109-175},
Publisher = {Walter de Gruyter},
Read = {No},
Series = {Urkunden zur Geschichte des Arianischen Streites 318-328},
Shortauthor = {Ath.},
Shorttitle = {Ar. 1},
Title = {Oratio I contra Arianos},
Volume = {1, Tl. 1, Lfg. 2},
Year = {1998}}
@incollection{evagrius2011,
Address = {Paris},
Author = {{Evagrius Scholasticus}},
Booktitle = {{\'E}vagre Le Scholastique: Histoire Eccl{\'e}siastique - Livres I-III},
Call-Number = {TH: Va1.05/542},
Date-Added = {2013-08-24 12:11:20 +0000},
Date-Modified = {2014-03-30 11:54:31 +0000},
Editor = {Joseph Bidez and Leon Parmentier},
Keywords = {source},
Publisher = {Les {\'E}ditions du Cerf},
Series = {Sources chr{\'e}tiennes},
Shortauthor = {Evagr.},
Shorttitle = {h.e.},
Title = {Historia ecclesiastica},
Volume = {542},
Year = {2011}}
\end{filecontents}%
\bibliography{\jobname}
%
% CHANGING (Wie...) to (wie)%
%
\DeclareFieldFormat*{title}{#1\isdot}%
%
%
% HISTORISCHE ZEITSCHRIFT - NEW MACRO FOR SHORTVOLUME CITE
%
\makeatletter%
\renewbibmacro*{footcite}{%
\global\boolfalse{cbx@loccit}%
\global\boolfalse{cbx@seenote}% NEW!%
\ifciteseen%
{\iffieldundef{shorthand}%
{\ifthenelse{\ifciteibid\AND\NOT\iffirstonpage}%
{\usebibmacro{footcite:ibid}}%
{\usebibmacro{footcite:note}}}%
{\usebibmacro{footcite:shorthand}}}%
{\iffieldundef{shortseries}%
{\usebibmacro{footcite:full}}%
{\printnames{author}%
\setunit{\addcomma\space}%
\printfield{title}\isdot%
{\setunit{\addcomma\space}%
\usebibmacro{in:}%
\printfield{shortseries}%
\setunit*{\addspace}%
\printfield[default]{number}}}%
\usebibmacro{footcite:save}}%
}%
\makeatother%
%
\makeatletter%
\renewbibmacro*{footcite:note}{%
\global\booltrue{cbx@seenote}% NEW!%
\ifnameundef{labelname}%
{\printfield{label}}%
{\printnames{labelname}}%
\ifsingletitle%
{}%
{\setunit*{\addcomma\space}%
\printfield[title]{labeltitle}}%
\setunit*{\addspace}%
\printtext{%
\bibhyperlink{\thefield{entrykey}:%
\@nameuse{cbx@first@\thefield{entrykey}}}{%
\printtext{\bibleftparen}%
\bibstring{seenote}\addnbspace%
\@nameuse{cbx@note@\thefield{entrykey}}%
% \setunit{\addcomma\space}%
\addcomma\addnbspace%
\bibstring{page}\addnbspace% THIS IF YOU WANT S. X
\@nameuse{cbx@page@\thefield{entrykey}}}}}%
\makeatother%
%
\makeatletter%
\renewbibmacro*{footcite:save}{%
\ifundef\@thefnmark%
{\ifundef\@theenmark % endnotes.sty%
{\csgdef{cbx@note@\thefield{entrykey}}{%
\BibliographyWarning{Missing footnote mark}\textbf{??}}}%
{\global\cslet{cbx@note@\thefield{entrykey}}\@theenmark}}%
{\global\cslet{cbx@note@\thefield{entrykey}}\@thefnmark}%
\csxdef{cbx@page@\thefield{entrykey}}{\thepage}%
\csxdef{cbx@first@\thefield{entrykey}}{\the\value{instcount}}}%
\makeatother%
%
% HISTORISCHE ZEITSCHRIFT - FIXING "( HRSG.)" TO " (HRSG.)"%
%
\makeatletter%
\renewbibmacro*{editorstrg}{%
\ifthenelse{\value{editor}>1\OR\ifandothers{editor}}%
{\bibstring[\mkbibparens]{editors}}%
{\bibstring[\mkbibparens]{editor}}}%
\makeatother%
%
% HISTORISCHE ZEITSCHRIFT - PUBLISHER IN BIBLIOGRAPHY NOT OMMITED%
%
\makeatletter%
\renewbibmacro*{publisher+location+year}{%
\printlist{location}:%
\setunit*{\addspace}%
\printlist{publisher}\addcomma%
\setunit*{\addspace}%
\printfield{year}%
\newunit}%
\makeatother%
%
% HISTORISCHE ZEITSCHRIFT - NO PAGES IN INCOLLECTION FOOTNOTES BUT PAGES IN BIBLIOGRAPHY%
%
\renewbibmacro*{chapter+pages}{%
\printfield{chapter}%
\newunit}%
%
% HISTORISCHE ZEITSCHRIFT - NO PAGES IN ARTICLE FOOTNOTES BUT PAGES IN BIBLIOGRAPHY%
%
\newbibmacro*{onlypages}{%
\printfield{chapter}%
\newunit}
\DeclareBibliographyDriver{article}{%
\usebibmacro{bibindex}%
\usebibmacro{author/editor}%
\setunit{\labelnamepunct}\newblock
\usebibmacro{title}%
\newunit
\usebibmacro{byauthor}%
\newunit
\printlist{language}%
\newunit\newblock
\usebibmacro{byeditor+others}%
% \newunit\newblock
\setunit{\addcomma\space}%
\usebibmacro{in:}%
\usebibmacro{journal+issuetitle}%
% \newunit\newblock
\setunit*{\addcomma\space}%
\printfield{note}%
% \newunit\newblock
\setunit*{\newunitpunct}%
\usebibmacro{onlypages}%
\newunit\newblock%
\usebibmacro{doi+eprint+url}%
\newunit\newblock%
\printfield{addendum}%
\newunit\newblock
\usebibmacro{pageref}%
\usebibmacro{finentry}}
%
% HISTORISCHE ZEITSCHRIFT - ADDING ZITIERT AUF INSTEAD OF SIEHE S. IN BIBLIOGRAPHY
%
\DefineBibliographyStrings{ngerman}{
backrefpage = {Zitiert auf S\adddot},
backrefpages = {Zitiert auf S\adddot},
}
%
% EPIGRAPHS%
%
\usepackage{epigraph}%
\setlength{\epigraphwidth}{10.3 cm}%changes the width of epigraph text%
\renewcommand{\epigraphsize}{\small}%changes the size of epigraph text%
\renewcommand{\epigraphrule}{0 pt}% removes the line. if you want it set: put number inside {}%
\renewcommand{\textflush}{flushepinormal}%changes formating to justified%
\let\tmpepigraph=\epigraph
\renewcommand{\epigraph}[2]%
{{\onehalfspacing\tmpepigraph{#1}{#2}}}%
%
% CHANGING QUOTE WIDTH
%
\renewenvironment{quote}{%
\list{}{%
\leftmargin0.35cm % this is the adjusting screw%
\rightmargin\leftmargin%
\onehalfspacing\small%
}%
\item\relax%
}%
{\endlist}%
%
% CHANGING ENUMERATE WIDTH
%
\let\oldenumerate=\enumerate%
\let\endoldenumerate=\endenumerate%
\renewenvironment{enumerate}{%
\leftmargin0.35cm % this is the adjusting screw%
\rightmargin\leftmargin%
\onehalfspacing\small
\begin{oldenumerate}%
\setlength{\parskip}{0.1\parskip}%
\setlength{\itemsep}{0.1\itemsep}%
}%
{%
\end{oldenumerate}%
}%
%
% CHANGING ITEMIZE
%
\let\olditemize=\itemize%
\let\endolditemize=\enditemize%
\renewenvironment{itemize}{%
\vspace*{-1.5\parsep}%
\leftmargin0.35cm% this is the adjusting screw%
\rightmargin\leftmargin%
\onehalfspacing\small
\begin{olditemize}%
\setlength{\parskip}{0.1\parskip}%
\setlength{\itemsep}{0.1\itemsep}%
}%
{%
\end{olditemize}%
}%
%
%
% SMALLENUMERATE FOR LITURGY PART
%
\newenvironment{smallenumerate}{%
\footnotesize%
\enumerate%
\setlength{\parskip}{0.1\parskip}%
\setlength{\itemsep}{0.1\itemsep}%
}{%
\endenumerate%
}%
%
% SMALLITEMIZE FOR LITURGY PART%
%
\newenvironment{smallitemize}{%
\footnotesize%
\itemize%
\setlength{\parskip}{0.1\parskip}%
\setlength{\itemsep}{0.1\itemsep}%
}{%
\enditemize%
}%
%
%
% IDENT FULL PARAGRAPH%
%
\newenvironment{myindentpar}[1]%
{\begin{list}{}%
{\setlength{\leftmargin}{#1}}%
\item[]%
}%
{\end{list}}%
%
% PARAGRAPHS WITHOUT NUMBERS (REQUIRES TITLESEC)
%
\titleclass{\subsubsubsection}{straight}[\subsection]%
%
\newcounter{subsubsubsection}%
\renewcommand\thesubsubsubsection{\thesubsubsection.\arabic{subsubsubsection}}%
\renewcommand\theparagraph{\thesubsubsubsection.\arabic{paragraph}} % optional; useful if paragraphs are to be numbered%
%
\titleformat{\subsubsubsection}%
{\normalfont\normalsize\sffamily\bfseries}{\thesubsubsubsection}{1em}{}%
\titlespacing*{\subsubsubsection}%
{0pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex}%
%
\makeatletter%
\renewcommand\paragraph{\@startsection{paragraph}{5}{\z@}%
{3.25ex \@plus1ex \@minus.2ex}%
{-1em}%
{\normalfont\normalsize\bfseries}}%
\renewcommand\subparagraph{\@startsection{subparagraph}{6}{\parindent}%
{3.25ex \@plus1ex \@minus .2ex}%
{-1em}%
{\normalfont\normalsize\bfseries}}%
\def\toclevel@subsubsubsection{4}%
\def\toclevel@paragraph{5}%
\def\toclevel@paragraph{6}%
\def\l@subsubsubsection{\@dottedtocline{4}{7em}{4em}}%
\def\l@paragraph{\@dottedtocline{5}{10em}{5em}}%
\def\l@subparagraph{\@dottedtocline{6}{14em}{6em}}%
\makeatother%
%
% REDESIGNING TITLE STYLES (REQUIRES TITLESEC)
%
\titleformat{\chapter}[display]% CHAPTER
{\fontsize{11}{12}\selectfont\scshape\centering}
{\scshape\chaptertitlename\ \thechapter.\enskip}{1pt}{\fontsize{11}{12}\selectfont}
\titlespacing*{\chapter}{0pt}{30pt}{30pt}% FIRST NUMBER BEFORE LAST NUMBER AFTER
\titleformat{\section}[block]% SECTION
{\fontsize{10.5}{8}\selectfont\centering}
{\thesection.\enskip}{1pt}{\fontsize{10.5}{8}\selectfont}
\titlespacing*{\section}{0pt}{15pt}{15pt}% FIRST NUMBER BEFORE LAST NUMBER AFTER
\titleformat{\subsection}[block]% SUBSECTION
{\fontsize{10.5}{8}\selectfont\centering\itshape}
{\itshape\thesubsection.\enskip}{1pt}{\fontsize{10.5}{8}\selectfont}
\titlespacing*{\subsection}{0pt}{15pt}{10pt}% FIRST NUMBER BEFORE LAST NUMBER AFTER
% SPECIFYING BULLET TYPE WHEN USING ITEMIZE
%
%\renewcommand*\labelitemi{$\circ$}%
%
%
% BOLD ENUMERATE%
%
\newenvironment{boenumerate}%
{\begin{enumerate}\renewcommand\labelenumi{\textbf\theenumi}}%
{\end{enumerate}}%
%
%
% HYPERREF - LINKS IN TOC%
%
%
\usepackage{hyperref}%this package must be the last one from all loaded packages%
\hypersetup{%
colorlinks,%
citecolor=black,%
filecolor=black,%
linkcolor=black,%
urlcolor=black,%
hypertexnames=false% this is required because pages of each volume start with nr. 1 otherwise it will confuse hyperref
}%
\usepackage[all]{hypcap}% THIS IS FIXING ERROR WITH HYPERRREF SHOWING BELOW THE IMAGE this package must be the last after hyperref%
%
%
%
\begin{document}%
%
% HEADER:%
%
\clearpairofpagestyles
\pagestyle{scrheadings}
\renewcommand\sectionmarkformat{\arabic{section}.\enskip}% CHANGES FORMATING FOR THE SECTION IN HEADER
\renewcommand\chaptermarkformat{\small{\chaptername}\ \thechapter:\enskip}% CHANGES FORMATING FOR THE CHAPTER IN HEADER
\renewcommand{\headfont}{\normalfont}% REMOVES ITALIC FROM HEADER
\clearpairofpagestyles
\ohead*{\pagemark}
\chead{\headmark}
%
\frontmatter
\mainmatter
\blinddocument[1]\index[band1-themen]{Frömmigkeit!Ehrfurcht}\footcite[vgl. z.\,B.][]{athanasius1998}% THIS IS MY INTRUDUCTION FILE
\cleardoublepage
% \newpage\thispagestyle{empty}\mbox{}\newpage
\blinddocument[2]\index[band1-bibelstellen]{Mt 16, 16}% THIS IS MY ACKNOWLEDGMENT FILE
\cleardoublepage
\pagestyle{scrheadings}%
\cleardoublepage
\newrefsection% THIS STARTS NEW BIBLIOGRAPHY (NEEDS BIBLATEX)
\setcounter{page}{1}
\invisiblelocaltableofcontents\label{parttoc:1}
\blinddocument[3]\index[band1-themen]{Frömmigkeit!Ehrfurcht}% THIS IS MY FIRST CHAPTER
\cleardoublepage
\blinddocument[4]\index[band1-themen]{Arianismus!anti-arianisch}% THIS IS MY SECOND CHAPTER
\cleardoublepage
\etocsetnexttocdepth{3}\index[band1-personen]{Jungmann J. A.}% THIS IS MY THIRD CHAPTER
\begin{spacing}{1.28}
\tableofcontents\ref{parttoc:1}
\end{spacing}
\blinddocument[5]% THIS IS MY FOURTH CHAPTER
\clearpage
\blinddocument[6]\index[band1-themen]{Konzilien und Synoden!Konzil von Nicäa (325)}% THIS IS MY FIFHT CHAPTER
\clearpage
\backmatter
\addchap*{Bibliographie}%
\addcontentsline{toc}{chapter}{Bibliographie}
\phantomsection%
\addchap*{Quellen}%
\cehead{Quellen}%
\addcontentsline{toc}{section}{Quellen}%
\thispagestyle{empty}%
% \renewcommand*{\bibfont}{\footnotesize}% SIZE OF THE FONT IN BIBLIOGRAPHY
\printbibliography[title={A.\,Christliche und nichtchristliche Autoren},keyword=source,heading=subbibliography]%
\printbibliography[title={B.\,Synodaltexte und Rechtsquellen},keyword=source; law,heading=subbibliography]%
\printbibliography[title={C.\,Liturgica},keyword=source; liturgy,heading=subbibliography]%
% \pagebreak%
\phantomsection%
\cehead{Lexika und Hilfsmittel}%
\addcontentsline{toc}{section}{Lexika und Hilfsmittel}%
\thispagestyle{myheadings}%
\printbibliography[title={Lexika und Hilfsmittel},keyword=lexical,heading=bibliography]%
% \pagebreak%
\phantomsection%
\cehead{Sekundärliteratur}%
\thispagestyle{myheadings}%
\addcontentsline{toc}{section}{Sekundärliteratur}%
\printbibliography[title={Sekundärliteratur},keyword=secondary,heading=bibliography]%
\addchap*{Stellenregister}%
\addcontentsline{toc}{chapter}{Stellenregister}
\cehead{Stellenregister}%
\printindex[band1-bibelstellen]
\printindex[band1-themen]
\printindex[band1-personen]
%
% BIBLIOGRAPHY:%
%
% PUTTING OLD BIBLIOGRAPHY BACK WITH INCOLLECTION PAGES IN IT
\renewbibmacro*{chapter+pages}{%
\printfield{chapter}%
\setunit*{\addcomma\space}%
\printfield{pages}%
\newunit}%
%
% PUTTING OLD BIBLIOGRAPHY BACK WITH ARTICLE PAGES IN IT
\renewbibmacro*{onlypages}{%
\printfield{chapter}%
\setunit*{\addcomma\space}%
\printfield{pages}%
\newunit}%
%
%
\end{document}%
当我编译它时,一切都运行良好(但介绍和致谢的页码不是罗马数字)。
现在,当我移动\mainmatter
到我想要的位置时,它就像\invisiblelocaltableofcontents
这样:
\invisiblelocaltableofcontents\label{parttoc:1}
\mainmatter
这会产生错误。
我原本以为这是由\index
这一行引起的:
\blinddocument[1]\index[band1-themen]{Frömmigkeit!Ehrfurcht}\footcite[vgl. z.\,B.][]{athanasius1998}% THIS IS MY INTRUDUCTION FILE
但事实并非如此。当我删除时,\footcite[vgl. z.\,B.][]{athanasius1998}
一切都正常,只是末尾的索引忽略了属于的所有索引条目\frotmatter
答案1
这里的问题是\thepage
前言中有太多的格式指令。但\thepage
后面的引用需要这些指令才能最终显示正确的页码。
放
\makeatletter
\protected\def\abx@aux@backref#1#2#3#4#5{%
\ifcsundef{blx@pref@#3@\detokenize{#2}}
{\global\cslet{blx@pref@#3@\detokenize{#2}}\@empty
\expandafter\blx@onlypreamble\csname blx@pref@#3@\detokenize{#2}\endcsname}
{}%
\def\blx@tempitem{\detokenize{#4}}%
\xifinlistcs{\blx@tempitem}{blx@pref@#3@\detokenize{#2}}
{}
{\listcsxadd{blx@pref@#3@\detokenize{#2}}{\blx@tempitem}}%
\blx@addpagesum{#1}{#5}}
\makeatother
在你的序言中
或者,使用
\makeatletter
\def\@roman#1{\romannumeral#1}
\makeatother