hyperref
如果在序言中,这个最小工作示例将不起作用。这是为什么?其他一切都运行良好。
\documentclass[10pt]{article}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{hyperref}
\definecolor{myblue}{rgb}{0.7,0.8,0.9}
\makeatletter\newenvironment{bluebox}{
\begin{lrbox}{\@tempboxa}\begin{minipage}{\textwidth}}{\end{minipage}\end{lrbox}
\colorbox{myblue}{\usebox{\@tempboxa}}
}\makeatother
\begin{document}
\renewcommand{\thepage}[1]{\centerline{\arabic{page} of 3}}
\centerline{\LARGE{\bf{CURRICULUM VITAE}}}
\vspace{0.5cm}
\begin{bluebox}
{\bf CONTACT}
\end{bluebox}
\end{document}
它说:
! \HyPL@CheckThePage 的参数有一个额外的 }。\par l.20 \end{document}
谨致问候,亚历克斯
答案1
\renewcommand{\thepage}[1]{}
hyperref
现在期望一个论点\thepage
以及排版和链接都搞砸了。
您可以使用lastpage
和\pageref*{LastPage}
来实现1 of 10000
等等。
不要使用\bf
- 它已经过时了 - 要么用作\bfseries
字体开关,要么使用限制版本\textbf
。此外,\LARGE
它没有参数。也删除\centerline
。
我已经\thepage
用设置替换了奇怪的设置fancyhdr
\fancyfoot[C]{...}
和蓝色框tcolorbox
。
\documentclass[10pt]{article}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{lastpage}
\usepackage{fancyhdr}
\usepackage[most]{tcolorbox}
\usepackage{blindtext}
\usepackage{hyperref}
\definecolor{myblue}{rgb}{0.7,0.8,0.9}
\pagestyle{fancy}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[C]{\thepage\ of \pageref*{LastPage}}
\newtcolorbox{bluebox}[1][]{enhanced, sharp corners, frame hidden,colback=myblue,halign=left,boxsep=0pt,fontupper=\bfseries,left=0pt, #1}
\begin{document}
\begin{center}
\LARGE \bfseries CURRICULUM VITAE
\end{center}
\begin{bluebox}
\bfseries CONTACT
\end{bluebox}
\blindtext[20]
\end{document}
答案2
这里的问题是您对它的重新定义\thepage
- 许多包将其用于辅助目的。以下代码复制了您的行为:
\documentclass{article}
\usepackage{hyperref}
\begin{document}
\renewcommand{\thepage}[1]{\centerline{\arabic{page} of 3}}
Random text.
\end{document}
具体来说,hyperref
链接到文档的开头,这需要使用\thepage
。您\thepage
不仅需要页码,还需要一些格式和附加文本。
相反,使用fancyhdr
像这样设置你的标题(建议):
\documentclass{article}
\usepackage{fancyhdr,lastpage}
\usepackage{hyperref}
\pagestyle{fancy}
\fancyhf{}% Clear header/footer
\renewcommand{\headrulewidth}{0pt}% Remove header rule
\renewcommand{\footrulewidth}{0pt}% Remove footer rule (default)
\fancyfoot[C]{\thepage{} of \pageref*{LastPage}}
\begin{document}
Random text.
\end{document}
注意使用lastpage
它会自动为文档的最后一页设置一个\label
(称为LastPage
),我们在页脚中使用它来引用它的页面。这样您就可以动态更改“第 X 页,共 Y 页”。