更新

更新

当我添加大于 A4 页面的图像时,我遇到了一个小问题。通常,我会使用此代码,但使用此代码,我可以使用边界框(从 0, 0 到 500,700)裁剪它:

%%image start
\begin{figure}[h!]
      \caption{\url{http://www.url.com/.htm}
  \newline
  Text
  \newline
}
  \centering
   % cropped at 500 x 700
    \includegraphics[bb= 0 0 500 700 ,clip]{images/001.png}
\end{figure}
%%image end

问题是我的图像比页面大(但每个图像的大小都不同),所以我想从左上角到右下角裁剪它,切掉下部,假设图像高 700。是否可以使用边界框或其他东西来做到这一点?

答案1

我想到的唯一想法是将图形存储在一个盒子中,这样我们就可以查询 tex 的高度(\ht),并使用该值作为边界框一个角的 y 坐标,然后从该值中减去所需的高度,并使用结果作为另一个角的 y 坐标。

我写了一个宏来做这些计算。下面是一个 MWE:

\documentclass{article}
\usepackage{mwe}  % For the sample images
\usepackage{graphicx}
\newcommand{\includeclippedgraphics}[3]{%
  % #1 = width
  % #2 = height
  % #3 = graphics file
  \setbox0=\hbox{\includegraphics{#3}}%
  \dimen1=\ht0\advance\dimen1 by -#2bp%
  \includegraphics[clip, viewport=0 \dimen1 #1 \ht0]{#3}%
}
\begin{document}
  % Original image
  \includegraphics{example-image}  
  \vskip 5mm
  % Standard crop (from bottom left corner)
  \includegraphics[clip, bb=0 0 160 120]{example-image}      
  \vskip 5mm
  % New crop (from upper left corner)
  \includeclippedgraphics{160}{120}{example-image}
\end{document}

结果:

在此处输入图片描述

更新

我引入了一个变体,其中宏的第一个参数(图像所需的宽度)是可选的。如果省略,则使用原始宽度,因此您只需指定所需的垂直尺寸,图像的底部就会被裁剪。

\documentclass{article}
\usepackage{mwe}  % For the sample images
\usepackage{graphicx}
\usepackage[margin=5mm]{geometry}
\newcommand{\includeclippedgraphics}[3][0]{%
  % #1 = width (optional)
  % #2 = height
  % #3 = graphics file
  \setbox0=\hbox{\includegraphics{#3}}%
  \dimen1=\ht0\advance\dimen1 by -#2bp%
  \ifnum#1=0\dimen2=\wd0\else\dimen2=#1bp\fi
  \includegraphics[clip, viewport=0 \dimen1 \dimen2 \ht0]{#3}%
}
\begin{document}
  % Original image
  \includegraphics{example-image}
  \vskip 5mm
  % Standard crop (from bottom left corner)
  \includegraphics[clip, bb=0 0 160 120]{example-image}
  \vskip 5mm
  % New crop (from upper left corner) with optional width set to 160
  \includeclippedgraphics[160]{120}{example-image}
  \vskip 5mm
  % New crop (from upper left corner) with optional width omitted
  \includeclippedgraphics{120}{example-image}
\end{document}

结果如下:

新的

相关内容