我的文档中有大图形(PNG 图像),它们很细,但由于长度太长而占满了整个页面。是否有可用的软件包可以将它们切成两半,并将这两半并排放置为一个图形?
答案1
adjustbox
使用 Martin Scharrer 的优秀软件包可以很容易地完成此操作:
\documentclass{article}
\usepackage{adjustbox}
\newcommand{\splitimage}[1]{%
\adjustimage{trim=0 0.5\height{} 0 0, clip=true}{#1}%
\adjustimage{trim=0 0 0 0.5\height{}, clip=true}{#1}%
}
\begin{document}
\splitimage{bottle}
\end{document}
或者仅使用graphicx
功能:
\documentclass{article}
\usepackage{graphicx}
\newcommand{\splitimage}[1]{%
\newlength{\imageheight}%
\settoheight{\imageheight}{\includegraphics{#1}}%
\includegraphics[trim=0 0.5\imageheight{} 0 0, clip=true]{#1}%
\includegraphics[trim=0 0 0 0.5\imageheight{}, clip=true]{#1}%
}
\begin{document}
\splitimage{bottle}
\end{document}
图片取自 Wikimedia Comons:https://commons.wikimedia.org/wiki/File:Normflasche-1.jpg
答案2
你可以剪辑图像的任何内容:
\documentclass{article}
\usepackage{graphicx,multido}
\newlength\Iwidth\newlength\Iheight\newsavebox\IBox
\savebox\IBox{\includegraphics{Normflasche}}
\setlength\Iwidth{\wd\IBox} \setlength\Iheight{\ht\IBox}
\begin{document}
\noindent
\multido{\ry=0.5+-0.5, \rY=1.0+-0.5}{2}{%
\multido{\rx=0.00+0.25, \rX=0.25+0.25}{4}{%
\fbox{\includegraphics[%
viewport={\rx\Iwidth} {\ry\Iheight} {\rX\Iwidth} \rY\Iheight,clip,scale=0.5]{Normflasche}}} \\[2pt]%
}
\end{document}
答案3
在 ConTeXt 中,您可以使用\clip
命令。使用\setupclipping
您可以选择要剪辑的内容。在这里我选择在垂直轴上剪辑成五个切片。使用x=…
和y=…
设置您可以指定要检索哪个切片。
\setupclipping
[nx=1, ny=5]
\starttext
\dorecurse{5}{
\clip[y=\recurselevel]{\externalfigure[hacker]}\blank}
\stoptext
结果:
答案4
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{multido}
\usepackage{graphicx}
\def\Columns{5}% columns
\def\Rows{5}% rows
\def\Filename{ParisHilton}
\def\Scale{1}
\newsavebox\IBox
\savebox\IBox{\includegraphics[scale=\Scale]{\Filename}}
\psset
{
xunit=\dimexpr\wd\IBox/\Columns\relax,
yunit=\dimexpr\ht\IBox/\Rows\relax,
}
\SpecialCoor
\begin{document}
\multido{\ny=\Rows+-1}{\Rows}
{
\multido{\nx=0+1}{\Columns}
{
\pspicture(\Columns,\Rows)
\psclip{\psframe[linestyle=none,linewidth=0pt](!\nx\space \ny\space 1 sub)(!\nx\space 1 add \ny)}
\rput[bl](0,0){\usebox\IBox}
\endpsclip
\endpspicture
}
}
\end{document}
这里是图片我在此答案中使用它作为演示图片。