允许文本位于界外图形上方

允许文本位于界外图形上方

我有一个羽化图形,它超出了边界框。它融入了背景,不应该干扰主文本设置。不幸的是,在图形之前设置的文本被它遮挡了。

羽化图像遮挡了其前面的文本

以下是 MWE:

\documentclass{tufte-book}

\usepackage{graphicx}
\usepackage[export]{adjustbox}


\begin{document}

Ultrices mi tempus imperdiet nulla. Mauris commodo quis imperdiet massa tincidunt nunc pulvinar. Risus viverra adipiscing at in tellus. Et sollicitudin ac orci phasellus egestas tellus rutrum. Elit eget gravida cum sociis. Ut tristique et egestas quis. A scelerisque purus semper eget duis at. Nunc aliquet bibendum enim facilisis. Consectetur lorem donec massa sapien faucibus et molestie.

\begin{figure}[h!]
    \includegraphics[width=6\linewidth, max width=\linewidth, trim={\linewidth*\real{2.5} 11cm \linewidth*\real{2.5} 10.5cm}]{image.png}
    \caption{Sem et tortor consequat id porta nibh}
\end{figure}

Eget arcu dictum varius duis at consectetur lorem donec. Pulvinar sapien et ligula ullamcorper. Facilisis sed odio morbi quis commodo odio. Magna sit amet purus gravida quis blandit turpis. Platea dictumst quisque sagittis purus. Curabitur vitae nunc sed velit dignissim sodales ut eu. Eleifend donec pretium vulputate sapien nec.

\end{document}

我见过类似的问题(这里, 和这里) 提出了相当简单的方法来解决实际布局障碍,因此似乎还没有一个通用的解决方案。我也知道 LaTeX 没有分层输出,因此可能需要一种创造性的方法。

[h!] 是为本演示而设置的,但背景对图形来说通常非常重要,因此我真的不想强制 [t] 位置来规避这个问题。我也不想减少羽化,因为在这个级别以下边界变得非常明显。

答案1

我没有您的图形文件example.png,因此选择基于更常见的文档类来创建此示例。不过,我相信您也可以在您的场景中使用宏\BackgroundPicture。它将图片放在背景上。

\documentclass{article}

%\usepackage{graphicx}
\usepackage{tikzpagenodes}% loads tikz which loads graphicx
\usepackage{eso-pic}

\newcommand{\BackgroundPicture}[2][]{%
\begingroup\tikzset{/BackgroundPicture/.cd,#1}%
\setbox0\hbox{#2}%
\vspace*{\pgfkeysvalueof{/BackgroundPicture/before}}\par%
\begin{tikzpicture}[remember picture]
    \node[inner sep=0pt,outer sep=0pt,opacity=0,
    minimum width=\wd0,minimum height=\ht0
    ](BackgroundPicture){};
\end{tikzpicture}\par%
\vspace*{\pgfkeysvalueof{/BackgroundPicture/after}}%
\AddToShipoutPictureBG*{\begin{tikzpicture}[overlay,remember picture] 
    \path (BackgroundPicture) node{#2};
\end{tikzpicture}}%
\endgroup}
\tikzset{/BackgroundPicture/.cd,before/.initial=0cm,after/.initial=0cm}%
\begin{document}

Ultrices mi tempus imperdiet nulla. Mauris commodo quis imperdiet massa tincidunt nunc pulvinar. Risus viverra adipiscing at in tellus. Et sollicitudin ac orci phasellus egestas tellus rutrum. Elit eget gravida cum sociis. Ut tristique et egestas quis. A scelerisque purus semper eget duis at. Nunc aliquet bibendum enim facilisis. Consectetur lorem donec massa sapien faucibus et molestie.

\begin{figure}[h!]
    \centering
    \BackgroundPicture[before=-2cm,after=-1cm]{\includegraphics[width=0.9\linewidth]{example-image}}
    \caption{Sem et tortor consequat id porta nibh}
\end{figure}

Eget arcu dictum varius duis at consectetur lorem donec. Pulvinar sapien et ligula ullamcorper. Facilisis sed odio morbi quis commodo odio. Magna sit amet purus gravida quis blandit turpis. Platea dictumst quisque sagittis purus. Curabitur vitae nunc sed velit dignissim sodales ut eu. Eleifend donec pretium vulputate sapien nec.

\end{document}

在此处输入图片描述

这仅仅是一个原理证明。如您所见,您可以通过分别向after和/或提供负值来剪切图片后(特别是图片前)的一些垂直空间before

相关内容