使用 hyperref 使得表中的枚举不对齐

使用 hyperref 使得表中的枚举不对齐

这就是我想要做的:

\documentclass[11pt]{report}  
%\usepackage{hyperref} % without hyperref one line, with hyperref two lines
\begin{document}
Some text
\begin{minipage}[t]{10cm}
  \begin{enumerate}
  \item Some text
  \end{enumerate}
\end{minipage}
\end{document}

并且运行良好,正如预期的那样: 在此处输入图片描述

但如果我取消注释该行

\usepackage{hyperref}                

我得到 在此处输入图片描述

您对如何解决这个问题有什么想法吗?

更新:

如果我需要枚举内的超链接功能,我该怎么办?

答案1

要使 PDF 链接正常工作,hyperref需要插入链接目标,这些目标在 TeX 中实现为“whatsits”。这些 whatsits 对 TeX 的框处理并非不可见。枚举环境在第一个项目的顶部获取一个 whatsit。现在,的顶部对齐minipage指的是这个 whatsit,而不是第一行的基线。

解决方法:如果enumerate不需要“超级”功能,则可以通过环境暂时关闭它们NoHyper

\documentclass[11pt]{report}  
\usepackage{hyperref}
\begin{document}
Some text
\begin{minipage}[t]{10cm}
  \begin{NoHyper}% <<<<<< HERE
    \begin{enumerate}
    \item Some text
    \end{enumerate}%
  \end{NoHyper}%   <<<<<< HERE
\end{minipage}
\end{document}

结果

答案2

Heiko Oberdiek 给出了解释。这是一种解决方法。我没有费很大力气让枚举下方的垂直间距“正确”(无论这意味着什么)。我使用enumitempackage to kill 通过在parsep=0pt枚举顶部添加胶水来实现。

\documentclass[11pt]{report}  
\usepackage{hyperref}
\usepackage{enumitem}
\begin{document}
Some text
\raisebox{\ht\strutbox}{%\tracingmacros1
\begin{minipage}[t]{10cm}%
  \begin{enumerate}[parsep=0pt]
  \item \label{zoo}\strut Some text
  \item  Some text
  \item  Some text
  \item  Some text
  \item \label{foo}Some text
  \item  Some text
  \end{enumerate}
\strut
\end{minipage}\relax}

\vspace{-\baselineskip}

Next paragraph, see \ref{zoo}.

Next paragraph, see \ref{foo}.

%\showoutput
\end{document}

在此处输入图片描述

相关内容