我想使用完整的 插入图片到页面底部\paperwidth
。我textblock
从文本位置包并以这种方式定义命令:
\newcommand*{\grafikunten}[1]{
\begin{textblock*}{\paperwidth}(0mm, 80mm)
\includegraphics[width=\paperwidth, keepaspectratio]{#1}
\end{textblock*}
}
到目前为止,这种方法都是可行的,假设图片的垂直起始位置始终为“80mm”,但事实并非如此。这取决于图像的高度。
如何获取图像的高度来计算精确的垂直位置?
或者是否有其他方法将图像放置在页面底部,或其他每一侧,甚至在角落?
答案1
环境textblock
还有一个可选参数,用于指定文本块的锚点:[0,1]
即左下角。这样你就不需要知道图像的高度了:
\documentclass{article}
\usepackage[a6paper,hmargin=10mm,vmargin={10mm,20mm}]{geometry}
\usepackage[absolute]{textpos}
\usepackage{graphicx}
\usepackage{lipsum}
\newcommand*{\grafikunten}[1]{
\begin{textblock*}{\paperwidth}[0,1](0mm, \paperheight)
\noindent
\includegraphics[width=\paperwidth, keepaspectratio]{#1}
\end{textblock*}
}
\begin{document}
\grafikunten{redline}
\lipsum[1-2]
\end{document}
测量
在这种情况下,不需要知道图像的高度。在其他情况下,获取高度会很有用。
图像的高度可以通过以下方式测量\settoheight
:
\newdimen\imageheight % goes into the preamble
\settoheight{\imageheight}{%
\includegraphics[width=\paperwidth,keepaspectratio]{myimage}%
}
或者将图像放入一个框中:
\newsavebox\imagebox % goes into the preamble
\sbox{\imagebox}{%
\includegraphics[width=\paperwidth,keepaspectratio]{myimage}%
}%
盒子的高度、深度和宽度可通过以下方式获得:或\ht\imagebox
。(LaTeX 纯粹主义者可以使用包代替。)\dp\imagebox
\wd\imagebox
settobox
答案2
正如我在评论中提到的,我的回答是有哪些方法可以将内容绝对定位在页面上?提供了一种方法来实现您的要求。我修改了示例以在我的论文上布局图像(而不是文本)。
如果您事先不知道图像的大小(我假装是蓝色框),请将其设置在保存框中,并使用其测量值来指导放置。
\documentclass{article}
\usepackage{everypage}
\usepackage{xcolor}
\usepackage{lipsum}
\usepackage[demo]{graphicx}
% THESE ARE LaTeX DEFAULTS; CAN CHANGE IF NEEDED.
\def\PageTopMargin{1in}
\def\PageLeftMargin{1in}
\newcommand\atxy[3]{%
\AddThispageHook{\smash{\hspace*{\dimexpr-\PageLeftMargin-\hoffset+#1\relax}%
\raisebox{\dimexpr\PageTopMargin+\voffset-#2\relax}{#3}}}}
% VERIFIED THAT SETTING \hoffset AND \voffset DO NOT BREAK SOLUTION.
%\hoffset=0.4in
%\voffset=0.2in
\begin{document}
\lipsum[1]
\atxy{0in}{\paperheight}{\includegraphics[width=\paperwidth,height=2cm]{test}}
\atxy{0in}{\paperheight}{\textcolor{red}{\includegraphics[width=1cm,height=1cm]{test}}}
\atxy{\dimexpr\paperwidth-1.5cm}{\paperheight}{\textcolor{yellow}{%
\includegraphics[width=1.5cm,height=1.5cm]{test}}}
\newsavebox\myfig
\savebox{\myfig}{\textcolor{blue}{\includegraphics[width=3cm,height=3cm]{test}}}
\atxy{\dimexpr\paperwidth-\wd\myfig}{\ht\myfig}{\usebox{\myfig}}
\end{document}
答案3
使用包calc
:
\newlength{\mylength}
\setlength{\mylength}{\heightof{\includegraphics{myimage.png}}}
长度\mylength
现在包含图像的高度,您可以使用它来执行最佳定位。