\documentclass{article}
\usepackage[table]{xcolor}
\definecolor{background}{rgb}{1,0.62502,0}
\usepackage{caption}
\usepackage{lipsum}
\usepackage{hyperref}
\hypersetup{
colorlinks = true,
urlcolor = blue,
linkcolor = blue,
citecolor = red
}
\usepackage{wrapfig}
\begin{document}
\lipsum[1]
\begin{wrapfigure}{l}{6.5cm}
\noindent
\setlength{\fboxsep}{0pt}
\fcolorbox{background}{background}{
\begin{minipage}[t]{0.5\textwidth}
\lipsum[4]
%\fcolorbox{frame color}{box background color}{text}
\end{minipage}}
\end{wrapfigure}
\lipsum[1]
\end{document}
迷你页面中的文本与其周围文本之间的垂直错位非常轻微,但很明显(请特别注意剪辑的底部以及 p 的底部如何在迷你页面中被切断但在换行文本的相邻行中大致可见)。当我从上面的代码中删除 \usepackage{caption} 时,迷你页面中的文本将与换行文本对齐:
我怎样才能阻止字幕包产生这种垂直错位?
答案1
caption
这是包与之间的交互hyperref
。您可以通过使用\showoutput
和检查.log
文件来发现这一点,您将看到插入了以下材料
........\glue -6.02773
........\rule(0.0+0.0)x*
........\penalty 10000
........\glue -6.0
........\glue 0.0
........\pdfdest name{figure.caption.1} xyz
........\penalty 10000
........\rule(0.0+0.0)x*
........\penalty 10000
........\glue 6.0
........\glue 0.0
........\glue(\parskip) 0.0
........\glue(\parskip) 0.0
这看起来好像胶合应该被取消,但显然并没有。设置包hypcap=false
的选项caption
会删除额外的垂直空间。hyperref
然后锚点将被放置在您添加的任何标题处,而不是环境的开头。
\documentclass{article}
\usepackage[table]{xcolor}
\definecolor{background}{rgb}{1,0.62502,0}
\usepackage{wrapfig}
\usepackage[hypcap=false]{caption}
\usepackage{lipsum}
\usepackage{hyperref}
\hypersetup{
colorlinks = true,
urlcolor = blue,
linkcolor = blue,
citecolor = red,
}
\begin{document}
\lipsum[1]
\begin{wrapfigure}{l}{6.5cm}
\setlength{\fboxsep}{0pt}%
\fcolorbox{background}{background}{%
\begin{minipage}[t]{0.5\textwidth}
\lipsum[4]
\end{minipage}}%
\end{wrapfigure}
\lipsum[1]
\end{document}
顺便说一句,我注释掉了(使用%
)您设置中的几个行尾,它们引入了一些水平间距,这可能是也可能不是想要的。