![超链接和页码之间有冲突吗?](https://linux22.com/image/474834/%E8%B6%85%E9%93%BE%E6%8E%A5%E5%92%8C%E9%A1%B5%E7%A0%81%E4%B9%8B%E9%97%B4%E6%9C%89%E5%86%B2%E7%AA%81%E5%90%97%EF%BC%9F.png)
看起来hyperref
软件包和文档的“页码”之间存在冲突(可能与软件包有关fancyhdr
?)。以下 MWE 中有 67 条警告。如何解决这种不兼容性,从而删除警告?
\documentclass{article}
\usepackage[a4paper,
left = 0.2cm,
right = 0.2cm,
top = 0.1cm,
bottom = 0.2cm]{geometry}
\usepackage{lipsum}
\usepackage[colorlinks = true,
linkcolor = blue,
urlcolor = blue,
citecolor = blue,
anchorcolor = blue]{hyperref}
\setlength\footskip{1pt}
\def\thepage{\smash{\raisebox{10pt}{---\arabic{page}---}}}
\usepackage{fancyhdr}
\fancyhf{}
\pagestyle{fancy}
\rfoot{\thepage}
\renewcommand{\footrulewidth}{0pt}
\begin{document}
\lipsum[1-5]
\lipsum[1-5]
\lipsum[1-5]
\href{https://en.wikipedia.org/wiki/LaTeX}{A link to LaTeX}
\lipsum[1-5]
\lipsum[1-5]
\lipsum[1-5]
\end{document}
以下是 67 条警告中的一部分:
软件包 lipsum 警告:未知语言“拉丁语”。将改用“英语”的连字符模式。使用 LuaTeX,lipsum 需要 babel 才能获得正确的连字符(您可以使用 \usepackage[base]{babel})。
Package fancyhdr Warning: \footskip is too small (1.0pt):
(fancyhdr) Make it at least 12.0pt, for example:
(fancyhdr) \setlength{\footskip}{12.0pt}.
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref) removing `\setbox' on input line 29.
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref) removing `\z@' on input line 29.
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref) removing `\hbox' on input line 29.
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref) removing `\color@begingroup' on input line 29.
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref) removing `\@ifnextchar' on input line 29.
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref) removing `\endgraf' on input line 29.
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref) removing `\endgroup' on input line 29.
Package hyperref Warning: Token not allowed in a PDF string (Unicode):
(hyperref) removing `\ht' on input line 29.
ETC...
根据@Ulrike Fischer 的评论进行编辑
非常感谢@Ulrike Fischer,与明显不兼容相关的警告hyperref
已消失。但是,页码现在位于底部中心而不是在底部正确的页面的一角,因为我需要:
\documentclass{article}
\usepackage[a4paper,
left = 0.2cm,
right = 0.2cm,
top = 0.1cm,
bottom = 0.2cm]{geometry}
\usepackage{lipsum}
\usepackage[colorlinks = true,
linkcolor = blue,
urlcolor = blue,
citecolor = blue,
anchorcolor = blue]{hyperref}
\setlength\footskip{1pt}
% \def\thepage{\smash{\raisebox{10pt}{---\arabic{page}---}}}
\usepackage{fancyhdr}
\fancyhf{}
\pagestyle{fancy}
\rfoot{\thepage}
\cfoot{\smash{\raisebox{10pt}{---\arabic{page}---}}{\thepage}}
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
\begin{document}
\lipsum[1-5]
\lipsum[1-5]
\lipsum[1-5]
\href{https://en.wikipedia.org/wiki/LaTeX}{A link to LaTeX}
\lipsum[1-5]
\lipsum[1-5]
\lipsum[1-5]
\end{document}
如何保持页码在底部正确的页面的角落?
答案1
感谢@Ulrike Fischer 和@John Kormylo 的建议,我得到了我想要的。
诀窍是更换这个
\def\thepage{\smash{\raisebox{10pt}{---\arabic{page}---}}}
\rfoot{\thepage}
有了这个
\fancyfoot[R]{\smash{\raisebox{10pt}{\textbf{---\arabic{page}---}}}}
或者使用这个
\fancyfoot[R]{\smash{\raisebox{10pt}{\textbf{--~\thepage~--}}}}
以下是整个工作解决方案:
\documentclass{article}
\usepackage[a4paper,
left = 0.2cm,
right = 0.2cm,
top = 0.1cm,
bottom = 0.2cm]{geometry}
\usepackage{lipsum}
\usepackage[colorlinks = true,
linkcolor = blue,
urlcolor = blue,
citecolor = blue,
anchorcolor = blue]{hyperref}
\usepackage{fancyhdr}
\setlength\footskip{1pt}
% \fancyfoot{} % clear all footer fields
\fancyhf{} % remove everything
% \renewcommand{\footrulewidth}{0pt} % remove lines as well
\pagestyle{fancy}
\fancyfoot[R]{\smash{\raisebox{0.5cm}{\textbf{--~\thepage~--}}}} % \hspace*{1cm}
\begin{document}
\lipsum[1-5]
\lipsum[1-5]
\lipsum[1-5]
\href{https://en.wikipedia.org/wiki/LaTeX}{A link to LaTeX}
\lipsum[1-5]
\lipsum[1-5]
\lipsum[1-5]
\end{document}