将文字放在图片的右下角

将文字放在图片的右下角

我正在尝试在(许多)图片的右下角放置一些文字(署名行)。文字应与图片的右边缘右对齐。我尝试过类似

\documentclass[a3paper,english]{article}
\usepackage[percent]{overpic}

\begin{document}

    \begin{overpic}[width=0.5\textwidth]{#1}%
        \put (98,2) {\makebox(0,0)[r]{\footnotesize some text}}%
    \end{overpic}%

\end{document}

图形的文件名在哪里#1。如果图片是横向格式,这似乎有效。如果是纵向格式,文本会出现在右侧外面。似乎 put 使用的坐标在 x 和 y 方向上是相同的,并且由图像的较大尺寸决定。有没有办法正确地将文本与图片的右边缘右对齐?

答案1

我认为在这种情况下不需要额外的包(如果我理解这个问题的话)。你可以只使用

\includegraphics[width=5cm]{example-image-a}% <--important!
\makebox[0pt][r]{\footnotesize some text}

为了避免出现虚假空格,注释符号很重要。注释符号\raisebox可能有用。例如,以下代码

\documentclass[convert={size=640}]{standalone}

\usepackage{graphicx}

\begin{document}

\includegraphics[width=5cm]{example-image-a}%
\makebox[0pt][r]{\footnotesize some text}

\includegraphics[angle=90,width=5cm]{example-image-a}%
\raisebox{1pt}{\makebox[0pt][r]{\footnotesize some other text}}

\end{document}

生成 在此处输入图片描述

答案2

不用说,TikZ 包可以处理这个以及更多内容。 inner sep控制节点内容和边缘之间的间隙。

\documentclass[a3paper,english]{article}
\usepackage{tikz}
\usepackage{mwe}

\begin{document}

 \noindent\hfil
    \begin{tikzpicture}
        \node[inner sep=0pt] (picture) {\includegraphics[width=0.3\textwidth]{example-image}};
        \node[above left] at (picture.south east) {some text};
    \end{tikzpicture}%
\hfil
    \begin{tikzpicture}
        \node[inner sep=0pt] (picture) {\includegraphics[angle=90,width=0.3\textwidth]{example-image}};
        \node[above left] at (picture.south east) {some text};
    \end{tikzpicture}%
\hfil
    \begin{tikzpicture}[every node/.style={rotate=90}]
        \node[inner sep=0pt] (picture) {\includegraphics[width=0.3\textwidth]{example-image}};
        \node[above left] at (picture.south east) {some text};
    \end{tikzpicture}%
\end{document}

使用 tikz 进行叠加

相关内容