LaTeX 板


LINE

includegraphics 與 adjustbox 搭配雖然好用 但是就 adjustbox 中裁切的功能來說, 左側邊界及上方邊界雖然一望便知 右側邊界及下方邊界還要計算就比較麻煩了 如果像是用 foxit reader, 得先確定該 pdf 檔的頁面大小, 再減去圖片 的右界/下界, 才能得到應裁切的量 當資料量一多的時候, 時常計算是蠻繁瑣的 上面的問題可以用 LaTeX 中簡易的巨集計算功能加以解決 即引入 fp 套件 不過問題又來了, LaTeX 當中的巨集定義最多只能提供9個變數 但是我們的計算裡必須有很多資訊加以考慮: 例如: 欲引入 pdf 頁面的頁數, 長寬, 檔名 (4個變數) 左 下 右 上 四個邊界 (4個變數) 引入的圖片是否需放大或縮小? 是否需旋轉? (2 個變數) 是否要給予標題/label (2個變數) ... 因此, 單純的 LaTeX 巨集很難處理這些問題 況且 #1 ~ #9 的巨集變數也不容易除錯修改 比較好的辦法應該是使用 xkeyval 這個套件 xkeyval 套件的中文文件很少, 大部份是英文的 而且給的範例也不好懂 以 C 語言來比喻, 這些範例不是從 Hello World 開始 , 反而像是在談指標, 談字串 ~~~ 暈倒 最簡單的 xkeyval 使用方式應該像這樣: \makeatletter % 開始 \define@key{family}{keya}{\def\mykeya{#1}} \newcommand{\printmykey}[1]{ \setkeys{family}{#1} this is \mykeya } \makeatother % 結束 \define@key{}{}{} => 第1個{}內是 family, 即其後定義的 keya 屬於 family 這個群組 第3個 {} 內是命令, 意即取得 keya 這個 key 後要做的事 在範例中, 敝人是通過取得使用者輸入的 keya 值, 設定一變數 \mykeya 以便在之後使用 \mykeya 如果使用者沒有提供該 key, 也要有 presetkeys 的功能可提供預設值 以下是敝人的 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} \XeTeXlinebreaklocale "zh" \XeTeXlinebreakskip=0pt plus 1pt \usepackage{fp} \usepackage{xkeyval} \usepackage{adjustbox} \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=0.5\textwidth, scewidth=\sourcepdfwidth, sceheight=\sourcepdfheight}{} \newcommand{\getsourcepdfparameter}[1]{ \setkeys{pdfmanage}{#1} } \makeatother %結束 \newcommand{\myincludepdfgraphics}[1]{ \getsourcepdfparameter{#1} %底下使用 fp 套件計算右邊界及下方邊界應裁的量 \FPeval\truerightmargin{\mysourcewidth-\myrightmargin} \FPeval\truedownmargin{\mysourceheight-\mydownmargin} \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,newwidth=5} %測試範例 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://webptt.com/m.aspx?n=bbs/LaTeX/M.1421846145.A.877.html
1F:推 andrew43: 好文! 01/21 21:47
2F:→ bleph: 謝謝您的謬讚 01/22 12:49
※ 編輯: bleph (210.63.211.145), 01/22/2015 12:55:19 ※ 編輯: bleph (210.63.211.145), 01/22/2015 13:01:27







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:BuyTogether站內搜尋

TOP