Hyperref相关问题

Hyperref相关问题

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 页”。

相关内容