我想包含来自另一个 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