图片来源位于图片下方且长度大于图片宽度

图片来源位于图片下方且长度大于图片宽度

这是对以下答案的后续https://tex.stackexchange.com/a/412010/221716

与原始问题一样,我想将源文本包含在图像下。但是,URL 的长度大于图像的宽度,并且环境是wrapfigure

乳胶来源:

\documentclass{book}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage{stackengine}
\usepackage{xurl}
\usepackage{lipsum}  

\begin{document}

\begin{wrapfigure}
  {r}{.25\textwidth}
  \centering
  \def\stackalignment{r}\stackunder{ %
    \includegraphics[width=.25\textwidth]{example-image-b} %
  }{\tiny Source: \url{https://www.example.org/very/very/very/very/very/very/very/long/url}}
  \caption{My Caption}
\end{wrapfigure}

\lipsum
\end{document}

因此 URL 没有考虑环境的宽度,导致图片错位,URL 无法包裹在合适的宽度内: 结果

令人惊讶的是,删除操作\stackalignment{r}正确地包装了 URL,但删除了图片: 结果_2

是否可以将图片和源文件正确对齐并换行?另外,由于文本太小,是否可以减少 URL 的垂直空间? 谢谢

答案1

像这样?

在此处输入图片描述

\documentclass{book}
\usepackage[skip=1ex, font=small, labelfont=bf,
            justification=raggedright]{caption}
\usepackage{graphicx}
\usepackage{wrapfig}
\usepackage{stackengine}
\usepackage{xurl}

\usepackage{etoolbox}
\BeforeBeginEnvironment{wrapfigure}{%
    \setlength{\intextsep}{0pt}} % remove superfluous vertical space above/below wrapfigure

\usepackage{lipsum}

\begin{document}

\begin{wrapfigure}{r}{.25\textwidth}
\def\stackalignment{r}\stackunder{%
\includegraphics[width=\linewidth]{example-image-duck}%{image.png} %
    }{\scriptsize 
    \parbox[t]{\linewidth}{% <... needed
    Source: \url{https://www.example.org/very/very/very/very/very/very/very/long/url}}
   }
  \caption{Caption of wrapfigure}
\end{wrapfigure}

\lipsum
\end{document}

相关内容