例子

例子

我想包含来自另一个 PDF 的图表。

有一种快捷方式,我可以截取屏幕截图,保存为我想要的格式,但是\includegraphics[scale=xx]{<file path>}这会弄乱缩放,希望图像中的文本大小与文档的文本大小相匹配。

我正在考虑使用\includepdf[pages=x,trim= l r b t,clip]{<file path>}

总的来说,我想知道是否有更聪明的方法。

例子

我想usemanual.pdf在我的文档中包含一张来自用户手册的图表,该图表显示了在定义计算模型的输入网格时变量之间的关系Thesis.tex

答案1

graphicx能够从 PDF 文件中添加一页并将其修剪。

\documentclass{article}
\usepackage{graphicx}
\begin{document}
Some text

\includegraphics[
  page=15,
  trim=14.8cm 5cm 1cm 21cm,
  clip
]{../calcolo/trigonometria/trigonometria.pdf}

Some other text

\end{document}

在此处输入图片描述

这是原始页面:

在此处输入图片描述

通过反复试验确定修剪量可以解决问题。

答案2

您可以使用以下代码来确定视口以修剪外面的任何内容。

% cropper.tex
\documentclass[preview,border=12pt]{standalone}% remove border option to get a tight output
\usepackage{pstricks}

\def\M{10}% columns
\def\N{10}% rows
\def\scale{1}% scale
\def\filename{example-image-a.pdf}% filename
\def\page{1}% page

\usepackage{graphicx}
\newsavebox\IBox
\savebox\IBox{\includegraphics[scale=\scale]{\filename}}

\addtopsstyle{gridstyle}
{
    gridcolor=yellow,
    subgridcolor=gray,
    subgriddiv=10,
    griddots=0,
    subgriddots=5,
    gridwidth=0.4pt,
    subgridwidth=0.2pt,
}

\psset
{
   xunit=\dimexpr\wd\IBox/\M,
   yunit=\dimexpr\ht\IBox/\N,
}


\def\Navigator{%
\begin{pspicture}[showgrid=top](\M,\N)
    \rput[bl](0,0){\usebox\IBox}
\end{pspicture}}

\def\viewport(#1,#2)(#3,#4){\includegraphics[page=\page,scale=\scale,viewport=#1 #2 #3 #4,clip]{\filename}}

\def\ViewPort(#1,#2)(#3,#4){\viewport(\the\dimexpr#1\psxunit,\the\dimexpr#2\psyunit)(\the\dimexpr#3\psxunit,\the\dimexpr#4\psyunit)}

\parindent=0pt\relax

\begin{document}
\begin{center}
\Navigator% disable it after using

\vspace{1cm}
\ViewPort(3.5,2.6)(6.5,7.3)
\end{center}
\end{document}

在此处输入图片描述

使用以下方法编译

xelatex cropper.tex

您可能需要多次编译才能获得更好的视口值。最终编译应关闭导航器以获得 PDF 格式的紧密裁剪输出。

一旦你有了一个紧凑的 PDF 输出,你就可以使用 将其从主输入文件中导入includegraphics[<any options>]{cropper}。编译应该通过pdflatex

批量处理

从单个 PDF 中裁剪出一堆图像(基于@TeXenthusiast 的评论)。 status-lua.pdf是所有安装了 TeX 的计算机上唯一可测试的多页 PDF(我认为)。

% cropper.tex
\documentclass[preview,border=12pt,multi]{standalone}% remove border option to get a tight output
\usepackage{pstricks}

\def\M{10}% columns
\def\N{10}% rows
\def\scale{1}% scale
\def\filename{status-lua.pdf}% filename
\def\page{1}% page

\usepackage{graphicx}
\newsavebox\IBox
\savebox\IBox{\includegraphics[scale=\scale]{\filename}}

\addtopsstyle{gridstyle}
{
    gridcolor=yellow,
    subgridcolor=gray,
    subgriddiv=10,
    griddots=0,
    subgriddots=5,
    gridwidth=0.4pt,
    subgridwidth=0.2pt,
}

\psset
{
   xunit=\dimexpr\wd\IBox/\M,
   yunit=\dimexpr\ht\IBox/\N,
}


\def\Navigator{%
\begin{pspicture}[showgrid=top](\M,\N)
    \rput[bl](0,0){\usebox\IBox}
\end{pspicture}}

\def\viewport(#1,#2)(#3,#4){\includegraphics[page=\page,scale=\scale,viewport=#1 #2 #3 #4,clip]{\filename}}

\def\ViewPort(#1,#2)(#3,#4){\viewport(\the\dimexpr#1\psxunit,\the\dimexpr#2\psyunit)(\the\dimexpr#3\psxunit,\the\dimexpr#4\psyunit)}

\parindent=0pt\relax

\begin{document}
%\Navigator% disable it after using
\foreach \x in {1,...,4}
{
    \def\page{\x}
    \begin{preview}
        \fbox{\ViewPort(3.5,2.6)(6.5,7.3)}
    \end{preview}
}
\end{document}

在此处输入图片描述

答案3

我使用“Ghostscript”和“GeoGebra”有不同的方法

提取两种不同格式的页面文件(第 5 至 10 页):

gs -sDEVICE=jpeg -dNOPAUSE -dBATCH -dFirstPage=5 -dLastPage=10 -sOutputFile=figure-%d.jpg input.pdf
gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH -dFirstPage=5 -dLastPage=10 -sOutputFile=figure-%d.pdf input.pdf

我们有以下文件:

figure-1.jpg,figure-2.jpg,figure-3.jpg,figure-4.jpg,figure-5.jpg,figure-6.jpg

figure-1.pdf, figure-2.pdf, figure-3.pdf, figure-4.pdf, figure-5.pdf, figure-6.pdf

打开 GeoGebra 并创建树点

O=(0,0)
P=(21.6,0)
Q=(0,27.9)

插入图像 .jpg (>ABC 图标>第二选择),按 Esc 键,鼠标左键,
将图像设置为背景,然后定位

Corner1= O
Corner2= P
Corner3= Q

为“修剪”区域绘制一个多边形 ABCD,点 A 应位于左下角,其余点逆时针方向。复制并粘贴到输入栏中

trim={x(A),y(B),x(P)-x(B),y(Q)-y(C)}

“修剪”参数显示在左侧(代数)。

trim={value1,value2,value3,value4}

现在,文件>导出> PGF / Tikz,删除我们不需要的代码,然后添加:

    \documentclass[10pt]{article}
    \usepackage{graphicx}
    \usepackage{tikz}
    \pagestyle{empty}
    \begin{document}
    \includegraphics[trim=value1cm value2cm value3cm value4cm,clip]{figure-1.pdf}
%\includegraphics[page=5,trim=value1cm value2cm value3cm value4cm,clip]{input.pdf}
    \end{document}

保存为 cropper.tex,编译

pdflatex croped.tex

和裁剪

pdfcrop croped.pdf figure1-crop.pdf

重复这个过程,至少对我来说是有效的。Salu2

相关内容