hyperref 的子浮点对齐问题

hyperref 的子浮点对齐问题

为什么仅仅加载 hyperref 包就会搞乱对齐?我该如何解决这个问题?

正确的图像和示例代码:

在此处输入图片描述

\documentclass{article}
\usepackage{tabularx}
\usepackage[margin=0pt,singlelinecheck=0,labelfont=bf]{subfig}
\usepackage{graphicx}
\graphicspath{{Bilder/}}
\usepackage[hidelinks]{hyperref}
\begin{document}
\begin{figure}[hbt]
\begin{tabularx}{\textwidth}{>{\raggedleft \arraybackslash}X
                         >{\raggedright\arraybackslash}X}
\subfloat[]{\label{fig-a}\includegraphics[width=0.3\textwidth]{1.png}}
&   \subfloat[]{\label{fig-b}\includegraphics[width=0.2\textwidth]    {1.png}}
\\%
\subfloat[]{\label{fig-c}\includegraphics[width=0.2\textwidth]{1.png}}
&   \subfloat[]{\label{fig-d}\includegraphics[width=0.22\textwidth]{1.png}}
\end{tabularx}
\caption{}%
\label{}
\end{figure}
\end{document}

由于 hyperref 导致错位:

在此处输入图片描述

答案1

似乎\hyperref强制根据其自己的标准对齐单元格内容。在的情况下tabular,这意味着单元格内容将顶部对齐。当包含的图像\includegraphics{...}具有相同的高度时,这并不重要......

但是,对于你的情况,图像的高度不同。如果你希望它们底部对齐,那么最简单的解决方法是重新定义列X

\renewcommand\tabularxcolumn[1]{b{#1}}

这将导致:

在此处输入图片描述

上述获取 MWE 的完整代码是:

\documentclass{article}
\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{b{#1}}
\usepackage{graphicx}
%\graphicspath{{Bilder/}}

\usepackage[margin=0pt,singlelinecheck=0,labelfont=bf]{subfig}
\usepackage[hidelinks]{hyperref}

\begin{document}
\begin{figure}[hbt]
\begin{tabularx}{\textwidth}{>{\raggedleft \arraybackslash}X
                             >{\raggedright\arraybackslash}X}
\subfloat[\label{fig-a}]{\includegraphics[width=0.3\textwidth]{example-image}}
&   \subfloat[\label{fig-b}]{\includegraphics[width=0.2\textwidth]    {example-image}}
\\%
\subfloat[\label{fig-c}]{\includegraphics[width=0.2\textwidth]{example-image}}
&   \subfloat[\label{fig-d}]{\includegraphics[width=0.22\textwidth]{example-image}}
\end{tabularx}
\caption{}%
\label{}
\end{figure}
\end{document}

但是,如果你想让底部图片在顶部对齐,但保持顶部图片在底部对齐(请参阅我对你的问题的回答中的附录 2问题)你可以使用该包\adjustwidth

\documentclass{article}
\usepackage{tabularx}
\renewcommand\tabularxcolumn[1]{b{#1}}
\usepackage{graphicx}
%\graphicspath{{Bilder/}}

\usepackage[export]{adjustbox}
\usepackage[margin=0pt,singlelinecheck=0,labelfont=bf]{subfig}
\usepackage[hidelinks]{hyperref}

\begin{document}
\begin{figure}[hbt]
\begin{tabularx}{\textwidth}{>{\raggedleft \arraybackslash}X
                             >{\raggedright\arraybackslash}X}
\subfloat[\label{fig-a}]{\includegraphics[width=0.3\textwidth]{example-image}}
&   \subfloat[\label{fig-b}]{\includegraphics[width=0.2\textwidth]    {example-image}}
\\%
\subfloat[\label{fig-c}]{\includegraphics[width=0.2\textwidth,valign=T]{example-image}}
&   \subfloat[\label{fig-d}]{\includegraphics[width=0.22\textwidth,valign=T]{example-image}}
\end{tabularx}
\caption{}%
\label{}
\end{figure}
\end{document}

为了得到:

在此处输入图片描述

相关内容