这是对以下答案的后续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,但删除了图片:
是否可以将图片和源文件正确对齐并换行?另外,由于文本太小,是否可以减少 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}