表格中的 natbib 引用存在 hyperref 问题

表格中的 natbib 引用存在 hyperref 问题

我正在使用latex-> dvips->ps2pdf创建 pdf 文档。在环境中使用natbib的命令时,我遇到了麻烦,它不会在引用周围创建框引用,而只会“下划线”。没有一切正常。也可以正常工作。即使在 之外也可以正常工作。这种奇怪行为的原因可能是什么?..\citetabularhyperrefnatbibpdflatextabular natbib

这是一个简单的例子:

\documentclass{article}

\usepackage{hyperref}
\usepackage[numbers]{natbib}


\begin{document}

\cite{miranda:1999:3581}
\bigskip

\begin{tabular}{|c|}
    \hline
    \cite{miranda:1999:3581}\\
    \hline
\end{tabular}

\bibliography{papers_litstudy_diplexer}
\bibliographystyle{plain}


\end{document}

输出:

LaTeX 输出

答案1

这发生在pdfmark驱动程序上(dvipsdvipsone、...)。生成链接的主要方法有两种:

  • \hyper@link:将链接放入盒子中并测量矩形。
  • \hyper@linkstart... \hyper@linkend:在链接的开头写了一个 PostScript 特殊字符,在链接结束时,可以测量宽度。但链接的高度未知,因此\baselineskip用作近似值。

如果是natbib,则\cite使用后一种方法。但是,\baselineskip在 内为零tabular。因此链接矩形缩小为“线”。

作为解决方法,\baselineskip可以明确设置:

\documentclass{article}

\usepackage{hyperref}
\usepackage[numbers]{natbib}

\begin{document}

\cite{miranda:1999:3581}
\bigskip

\begin{tabular}{|c|}
    \hline
    \setlength{\baselineskip}{10pt}%
    \cite{miranda:1999:3581}\\
    \hline
\end{tabular}

\begin{thebibliography}{9}
\bibitem{miranda:1999:3581}Miranda.

\end{thebibliography}
\end{document}

结果

相关内容