这就是我想要做的:
\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 给出了解释。这是一种解决方法。我没有费很大力气让枚举下方的垂直间距“正确”(无论这意味着什么)。我使用enumitem
package 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}