
Gibt es, wie im Titel erwähnt, eine Möglichkeit, die Seitenzahlen im alten Stil anzuzeigen und die Seitennummerierung („S.“ und „pp.“) beizubehalten?
Das habe ich bisher getan:
Mein MWE-Code:
% !TEX program = xelatex
\documentclass{article}
\usepackage{filecontents}
\usepackage{hyperref}
\begin{filecontents}{mybib.bib}
@Article{Cormos2012,
Title = {Integrated assessment of IGCC power generation technology with carbon capture and storage (CCS)},
Author = {Cormos, C.},
Journal = {Energy},
Year = {2012},
Number = {1},
Pages = {434-445},
Volume = {42},
ISBN = {0360-5442},
Publisher = {Elsevier Ltd},
Url = {http://dx.doi.org/10.1016/j.energy.2012.03.025}
}
@Article{Mumford2015,
Title = {Review of solvent based carbon-dioxide capture technologies},
Author = {Mumford, Kathryn a. and Wu, Yue and Smith, Kathryn H. and Stevens, Geoffrey W.},
Journal = {Frontiers of Chemical Science and Engineering},
Year = {2015},
Number = {2},
Pages = {125-141},
Volume = {9},
Doi = {10.1007/s11705-015-1514-6},
ISBN = {2095-0179},
Keywords = {absorption,carbon capture,carbon dioxide,large scale,solvent},
Url = {http://link.springer.com/10.1007/s11705-015-1514-6}
}
\end{filecontents}
\usepackage[%
backend = biber,
style = numeric-comp,
firstinits = true,
isbn = false,
doi = true,
url = false,
maxcitenames = 4,
maxbibnames = 4
]{biblatex}
\DeclareFieldFormat*{pages}{\mkpageprefix[pagination]{\oldstylenums{#1}}}
\addbibresource{mybib.bib}
\begin{document}
Here comes the 1st citation\autocite{Cormos2012} and the 2nd one\autocite{Mumford2015}.
\printbibliography
\end{document}
Wie Sie sehen, ändert sich die Seitenzahl der ersten [1] überhaupt nicht, die der zweiten jedoch erfolgreich. Beide verlieren "p." und "pp.", die ich behalten möchte.
Entschuldigen Sie, ich bin neu und habe einige „Reputationsprobleme“, das Bild zu posten.
Antwort1
Mit \NumCheckSetup
können Sie \oldstylenums
beim Testen ignorieren, ob das Seitenfeld eine Zahl ist. (Siehe auchBiblatex druckt kein „p.“, wenn die Seitenzahl mit bestimmten Buchstaben endet,Zusammengesetzte Seitenzahlen mit einem einzelnen BindestrichUnd\DeclareNumChars und Befehle im Seitenfeld)
Die sicherste Lösung ist wahrscheinlich
\newcommand{\myosn}[1]{\ifpages{#1}{\oldstylenums{#1}}{#1}}
\DeclareFieldFormat*{pages}{\mkpageprefix[pagination]{\myosn{#1}}}
\NumCheckSetup{\renewcommand{\myosn}[1]{#1}}
Alternativ können Sie nur ignorieren\oldstylenums
\DeclareFieldFormat*{pages}{\mkpageprefix[pagination]{\oldstylenums{#1}}}
\NumCheckSetup{\def\oldstylenums#1{#1}}
Eine weitere schnelle Lösung besteht darin, \oldstylenums
das interne Makro zu ergänzen, das für Folgendes zuständig ist:\mkpageprefix
\makeatletter
\protected\long\def\blx@mkpageprefix#1[#2]#3{%
\ifnumeral{#3}
{\bibstring{#1}\ppspace}
{\ifnumerals{#3}
{\bibstring{#1s}\ppspace}
{\def\pno{\bibstring{#1}}%
\def\ppno{\bibstring{#1s}}}}%
\blx@mkpageprefix@i[#2]{\oldstylenums{#3}}}
\makeatother