我喜欢将图像包含在高度很大的文档中。是否有任何选项可以让 tex 引擎在图像中间放置分页符?请注意,调整图像大小以适合页面不是一个选项,因为这会使我的图像无法读取。
请注意,即使图像以任意方式分割,我也不介意。
答案1
\includegraphics
我使用了标准包中内置的裁剪选项graphicx
,并使用包calc}
(用于长度)和forloop
图像部分在纯 LaTeX 中自动执行该过程。
这是一个有效代码(在multipageimage
宏中)。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[margin=20mm]{geometry}
\usepackage{graphicx}
\usepackage{calc}
\usepackage{forloop}
\newcommand{\multipageimage}[2][2]{
\newlength{\pageaspectratio}
\setlength{\pageaspectratio}{1pt*\ratio{\textheight}{\textwidth}}
\newlength{\hhimg} \newlength{\wwimg}
\newsavebox{\myimage} \savebox{\myimage}{\includegraphics{#2}}
\settoheight{\hhimg}{\usebox{\myimage}}
\settowidth{\wwimg}{\usebox{\myimage}}
\newcounter{nb} \setcounter{nb}{#1}
\newlength{\newaspectratio}
\setlength{\newaspectratio}{\hhimg*\ratio{1pt}{\wwimg*\real{\thenb}}}
\newlength{\newwidth} \newlength{\newheight}
\ifnum\numexpr\newaspectratio\relax>\numexpr\pageaspectratio\relax
\setlength{\newheight}{\textheight}
\setlength{\newwidth}%
{\wwimg*\real{\thenb}*\ratio{\newheight}{\hhimg}}
\else
\setlength{\newwidth}{\textwidth}
\setlength{\newheight}%
{\hhimg*\ratio{\newwidth}{\wwimg*\real{\thenb}}}
\fi
\newlength{\lowertrim} \newlength{\uppertrim}
\newcounter{img}
\forloop{img}{0}{\value{img} < \value{nb}}{
\setlength{\uppertrim}%
{\hhimg*\ratio{\theimg pt}{\thenb pt}}
\setlength{\lowertrim}%
{\hhimg*\ratio{\thenb pt-\theimg pt-1pt}{\thenb pt}}
\includegraphics[width=\newwidth,height=\newheight,
trim=0 {\the\lowertrim} 0 {\the\uppertrim}, clip=true]{#2}
}
}
\begin{document}
\multipageimage[3]{eiffeltower}
\end{document}
结果如下所示,尺寸缩小,并以实际尺寸下载(带图像)我的dropbox。
对于此示例,在图像上展开的页面数是第一个可选参数(默认为 2),并且图像部分会最大化以适应\textheight
或\textwidth
根据其纵横比。这可以轻松自定义。