scrartcl hyperref 不起作用

scrartcl hyperref 不起作用

hyperref在类内不起作用scrartcl。当我使用该类时会发生这种情况,我想链接到另一个页面,但根本不起作用。有什么帮助吗?提前谢谢!

\documentclass[
10pt,
pagesize,
headinclude=false,
footinclude=false,
hyperref=true
]
{scrartcl}

\usepackage[x11names]{xcolor}
\usepackage{float}
\usepackage{pagecolor}
\usepackage{CJKutf8}
\usepackage[pdftitle=learnChinese,pdfauthor=yu,
colorlinks=true, urlcolor=magenta, linkcolor=black]{hyperref}

\paperwidth=4cm
\paperheight=4cm
\typearea{100}

\pagecolor{LightCyan2}


\begin{document}
\begin{CJK}{UTF8}{gbsn}
\Huge

\clearpage
\vspace*{\stretch{1}}
\begin{center}
\hyperref[o]{あ}
\end{center}
\vspace*{\stretch{2.5}}

\newpage
\vspace*{\stretch{1}}
\begin{center}
\end{center}
\vspace*{\stretch{2.5}}

\clearpage
\vspace*{\stretch{1}}
\begin{center}
\end{center}
\vspace*{\stretch{2.5}}

\clearpage
\vspace*{\stretch{1}}
\begin{center}
\end{center}
\vspace*{\stretch{2.5}}

\clearpage
\vspace*{\stretch{1}}
\begin{center}
お \label{o}
\end{center}
\vspace*{\stretch{2.5}}


\end{CJK}
\end{document}

当你运行 MWE 时,你会发现单击第一页的字符后无法转到第五页。

答案1

这个问题与 无关,scrartcl而是对 的误解\label,所以让我把它归结为最低限度。考虑以下代码

% WRONG CODE
\documentclass{article}

\begin{document}
\ref{bla} How \newpage
are \newpage
you? \label{bla}
\end{document}

标签指向最后一项(章节、部分、公式、图表......),其中包含一些柜台增加了\refstepcounter。如果你查看aux上述代码生成的文件,你会发现

\newlabel{bla}{{}{3}}

因此第三页上的标签没有任何引用。使用\hyperref将导致链接指向任何地方,而在本例中(默认情况下?老实说,我不知道)该链接指向文档的开头。

如果您想在文档中创建内部链接和目标,您至少有两种可能性:第一种是使用宏\phantomsection,它基本上提供了一个隐藏的计数器:

\documentclass{article}

\usepackage{hyperref}

\begin{document}
\hyperref[bla]{How} \newpage
are \newpage
you? \phantomsection\label{bla}
\end{document}

或者,您可以使用\hyperlink/\hypertarget命令对

\documentclass{article}

\usepackage{hyperref}

\begin{document}
\hyperlink{bla}{How} \newpage
are \newpage
\hypertarget{bla}{you?}
\end{document}

相关内容