有没有一个好的方法可以使用该包romanbar
进行页码编排,并且兼容hyperref
?
下面的例子没有它也可以工作,hyperref
但是有它就不行。
\documentclass[12pt,a4paper,ngerman]{scrartcl}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{babel}
\usepackage{romanbar,hyperref}
\begin{document}
\makeatletter
\renewcommand*{\thepage}{\Roman@bar{\Roman{page}}}%
\makeatother
\jobname
\end{document}
用 激活此功能就更好了\pagenumbering{Roman}
。
这只是一个例子。我知道\thepage
以那种方式改变可能不是一个好主意。
答案1
页面标签只是文本字符串,因此romanbar
不支持额外的包栏。但它们可以轻松被禁用:
\usepackage{romanbar,hyperref}
\pdfstringdefDisableCommands{\let\Roman@bar\@firstofone}
(\@firstofone
也可以用\@empty
或\relax
来代替。)
答案2
我通过转换简化了用法答案 1放入 LaTeX 包中。请参阅romanbarpagenumber
在 CTAN。
\usepackage{romanbarpagenumber}
% And after \begin{document}
\pagenumbering{Roman}
答案3
谢谢。我刚发现我也可以重新定义,\pagemark
这样更优雅一些。
我使用它来设置\pagemark
何时\pagenumbering
扩展。
\let\pagenumberingRaw\pagenumbering\relax%
\renewcommand{\pagenumbering}[1]{%
\pagenumberingRaw{#1}%
\ifthenelse{\equal{#1}{Roman}}{%
%\renewcommand*{\pagemark}{\Roman@bar{\Roman{page}}}% not added by \pageref.
\renewcommand*{\thepage}{\Roman@bar{\Roman{page}}}%
}{
%\renewcommand*{\pagemark}{\thepage}%
}
}
编辑:毕竟,重新定义\thepage
接缝是最好的方法,因为它也被使用\pageref
。再次感谢 Heiko Oberdiek。