我有一个标题页,它不应该有真正的“页码”。因此,在标题页之后,我将页面计数器设置为 1,方法是
\setcounter{page}{1}
当然,在内部,标题页仍然有数字 1,这通常并不重要(因为它不显示它)。
现在我遇到了一个问题:在标题页上,我有一张图像,我需要用一小段文字来注明作者,比如“图片由 bla 提供...”,我想使用 biblatex 来实现这一点,因为,嗯...它是一个来源,使用起来非常方便。但由于它出现的内部页码是 1,因此在参考书目中它看起来就像是第 1 页。
有没有办法让显示“(见标题页)”而不是“(见第 1 页)”?由于页面是一个计数器,显然我无法将其设置为字符串(我无论如何都尝试过,但当然没有用)。
答案1
以下解决方案操纵\thepage
和page
计数器。标题页的名称设置在中\titlepagename
。如果不进行进一步调整,标题页图像的参考书目条目中的反向引用看起来会有点不对劲:“引用于标题页”,即页面会被提及两次。为了解决这个问题,我还做了一个\renewbibmacro*{pageref}
(通过修改代码biblatex.def
)。从那里,控制流到\printlist[list:citon]{pageref}
。自定义列表格式 list:citon
打印常规的反向引用简介(“cit. on p.”或“cit. on pp.”)或自定义字符串\myciton
(“cit. on”)。如果在标题页上有引用,则采用后者。
如果标题页和某些编号页上均未引用任何内容,则此解决方案效果良好。在后一种情况下,反向引用将看起来像“引用标题页,1”。更好的格式可能是“引用标题页,1 页”,但实现它可能并不简单。
\documentclass{article}
\usepackage[paperwidth=12cm,paperheight=6.5cm]{geometry}
\usepackage[backend=biber,style=authoryear,backref=true]{biblatex}
\usepackage{graphicx}
\usepackage{filecontents}
\usepackage{lipsum}
\usepackage{hyperref}
\newcommand{\titlepagename}{title page}
\newcommand{\myciton}{cit. on}
\newcommand{\mybibstring}{}
\DeclareListFormat{list:citon}{%
\ifnumless{\value{listcount}}{\value{liststop}}
{\ifdefstring{\titlepagename}{#1}{\myciton\ppspace\listbreak}{}}
{\ifdefstring{\titlepagename}{#1}{\myciton}{\mybibstring}\ppspace}}
\renewbibmacro*{pageref}{%
\iflistundef{pageref}
{}
{\printtext[parens]{%
\ifnumgreater{\value{pageref}}{1}
{\renewcommand{\mybibstring}{\bibstring{backrefpages}}}
{\renewcommand{\mybibstring}{\bibstring{backrefpage}}}%
\printlist[list:citon]{pageref}
\printlist[pageref][-\value{listtotal}]{pageref}}}}
\begin{filecontents}{\jobname.bib}
@Misc{eximga,
author = {Martin Scharrer},
title = {example-image-a},
howpublished = {In CTAN package \texttt{mwe}},
year = {2012},
}
@Article{author2013,
author = {Andy Author},
title = {About Apparatus},
journal = {Journal of Interesting Stuff},
year = {2013},
}
\end{filecontents}
\addbibresource{\jobname.bib}
\begin{document}
\let\theoldpage\thepage
\renewcommand{\thepage}{\titlepagename}
\label{titlepage}
\includegraphics[width=5cm]{example-image-a}
Image courtesy of \textcite{eximga}
\thispagestyle{empty}\newpage
\setcounter{page}{1}
\let\thepage\theoldpage
\phantomsection\label{firstpage}
The text starts here. Citing \textcite{author2013}.
\lipsum[1]
Citing \textcite{author2013} again.
\printbibliography
\end{document}