Re: [心得] 裁切 pdf 的頁面(添加巨集功能)

看板LaTeX作者 (bleph)時間9年前 (2015/01/25 20:29), 9年前編輯推噓0(002)
留言2則, 2人參與, 最新討論串3/4 (看更多)
※ 引述《ChenMeng0518 (LSiYue)》之銘言: : 好文!思路很有意思,可以考慮整理成套件,發佈到 CTAN。 : 說兩個問題。 : pdfcrop 這個程式可以用來自動裁剪 PDF 格式圖檔的白邊。 : xeCJK 套件已經對中文斷行做了處理,因此不需要再使用 : \XeTeX 的兩個 primitives 來控制斷行。 謝謝您寶貴的意見 小弟初學, 平日使用 LaTeX 的機會也不多, 主要是因為有一些電子書要整理成自己的筆記 (跟最初 Knuth 大師用 TeX 來排版自己的數學式子大相逕庭) 發覺 LaTeX 有裁切的功能很實用 班門弄斧, 貽笑方家 以下是針對弟的前文再加修改的 tex 檔, 修改處是添加了裁切後的圖片寬度大小預設的功能 與原本的檔案不同之處會以標示顯示 \documentclass[11pt]{article} \usepackage[T1]{fontenc} \usepackage{fixltx2e} \usepackage{graphicx} \usepackage{longtable} \usepackage{float} \usepackage{wrapfig} \usepackage{soul} \usepackage{textcomp} \usepackage{marvosym} \usepackage{wasysym} \usepackage{latexsym} \usepackage{amssymb} \usepackage{hyperref} \tolerance=1000 \usepackage{fontspec} \usepackage[boldfont,slantfont]{xeCJK} \setCJKmainfont{cwTeX Q Ming Medium} \usepackage{fp} \usepackage{xkeyval} \usepackage{adjustbox} \usepackage{ifthen} %新加入的 package, 要在後面使用 \providecommand{\alert}[1]{\textbf{#1}} %先對 pdf 紙張大小設定預設值為 A4 paper \def\sourcepdfwidth{21.4} \def\sourcepdfheight{29.7} \makeatletter %開始 \define@key{pdfmanage}{lt}{\def\myleftmargin{#1}} %左邊界,也是左側應裁切的量 \define@key{pdfmanage}{rt}{\def\myrightmargin{#1}} %右邊界 \define@key{pdfmanage}{up}{\def\myuppermargin{#1}} %上方邊界, 也是應裁的量 \define@key{pdfmanage}{dn}{\def\mydownmargin{#1}} %下方邊界 \define@key{pdfmanage}{angle}{\def\myangle{#1}} %旋轉角度 \define@key{pdfmanage}{page}{\def\mypage{#1}} %頁數 \define@key{pdfmanage}{newwidth}{\def\mynewwidth{#1}} %裁割後的圖片新的寬度 \define@key{pdfmanage}{scewidth}{\def\mysourcewidth{#1}} %pdf 頁面寬度 \define@key{pdfmanage}{sceheight}{\def\mysourceheight{#1}} %pdf 頁面高度 \define@key{pdfmanage}{source}{\def\mysourcefilename{#1}} %pdf 檔名 %底下提供預設值 \presetkeys{pdfmanage}{lt=0,rt=0,up=0,dn=0,angle=0,page=1, newwidth=-10, scewidth=\sourcepdfwidth, sceheight=\sourcepdfheight}{} % 這邊若使用者未輸入圖片裁切後新的寬度, 則預設為 -10, 後面會重新計算 \newcommand{\getsourcepdfparameter}[1]{ \setkeys{pdfmanage}{#1} } \makeatother %結束 \newcommand{\myincludepdfgraphics}[1]{ \getsourcepdfparameter{#1} %底下使用 fp 套件計算右邊界及下方邊界應裁的量 \FPeval\truerightmargin{\mysourcewidth-\myrightmargin} \FPeval\truedownmargin{\mysourceheight-\mydownmargin} % ifthen套件的作用在此 % 如使用者未輸入新的圖片寬度,則預設為 -10, 我們 % 再用右邊界減去左邊界,以之作為圖片寬度(即圖片寬度不變) % 這樣又可以少計算一項數據 \ifthenelse{\equal{\mynewwidth}{-10}} {\FPeval\mynewwidth{\myrightmargin-\myleftmargin}{}} \resizebox{\mynewwidth cm}{!}{ %請注意 \mynewwidth 與其後的"公分" %有一空白鍵隔開 \adjustbox{trim=\myleftmargin cm \truedownmargin cm \truerightmargin cm \myuppermargin cm,clip}{% \includegraphics[angle=\myangle,page=\mypage]{\mysourcefilename}}} } \begin{document} %測試範例 1 \myincludepdfgraphics{page=5,scewidth=21,source=4756.pdf, sceheight=27.94,lt=1.7,dn=11.6,up=2.3,rt=11.5} % 試著不 key 入新圖片寬度 %測試範例 2 , 也可以使用 figure 環境 \begin{figure}{ \myincludepdfgraphics{page=3,scewidth=21,source=4756.pdf, sceheight=27.94,lt=1.4,dn=14.4,up=2.3,rt=7.1,newwidth=3.5} \caption{第二張圖} \label{fig2} } \end{figure} \end{document} -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.63.211.145 ※ 文章網址: https://www.ptt.cc/bbs/LaTeX/M.1422188949.A.560.html

01/26 21:25, , 1F
都說了不需要使用 \XeTeX 兩個元命令來控制斷行啦…
01/26 21:25, 1F
※ 編輯: bleph (122.117.0.219), 01/27/2015 03:52:40

01/27 10:05, , 2F
已修正 :)
01/27 10:05, 2F
文章代碼(AID): #1KnE6LLW (LaTeX)
討論串 (同標題文章)
文章代碼(AID): #1KnE6LLW (LaTeX)