我正在尝试在(许多)图片的右下角放置一些文字(署名行)。文字应与图片的右边缘右对齐。我尝试过类似
\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}