7. 一步到位¶
本章在 腳本詳解 的基礎上,講解怎樣把命令合併到一個腳本中從而簡化 documentclass 的配置。
從 腳本詳解 中可以看出,本教程爲了方便排錯,而把命令分到多個腳本之中,逐個擊破,但其實完全是可以把命令全部寫入單個腳本之中,而實現簡化 documentclass 的設置的。
本章將會提供這麼做的範例。
7.1. 一步轉換成SVG¶
本小結將使用 util 文件夾中之 qk_pdf_to_svg.bat 腳本,以 mwe 文件夾中的 qk_to_svg.tex 爲例,展示如何一步轉換到SVG。
qk_to_svg.tex 中的 documentclass 的配置如下:
1 2 3 4 5 6 | \documentclass[tikz, convert, convert={outext=.svg, command=\unexpanded{
% 'out_svg'是用来存放SVG的文件夹
% 'out_svg'是用來存放SVG的文件夾
% 'out_svg' is the destination folder for SVG files
call ../util/qk_pdf_to_svg out_svg \infile\space \outfile\space
}}]{standalone}
|
其中, out_svg 是存放SVG的文件夾。
qk_pdf_svg.bat 腳本的內容如下:
1 2 3 4 5 6 7 8 9 10 11 | @echo off
set dst_dir=%1
set inputfile=%2
set outputfile=%3
if not exist %dst_dir%/NUL mkdir %dst_dir%
cd /d %dst_dir%
pdf2svg ../%inputfile% %outputfile% all
|
qk_pdf_to_svg.bat 中的命令,是把 demo_to_svg.tex 中的 documentclass 中的命令整合爲一,以達到簡化 documentclass 的配置的目的。
7.2. 一步轉換成PNG¶
本小結將使用 util 文件夾中之 qk_pdf_to_png.bat 腳本,以 mwe 文件夾中的 qk_to_png.tex 爲例,展示如何一步轉換到PNG 。
qk_to_png.tex 中的 documentclass 的配置如下:
1 2 3 4 5 6 | \documentclass[tikz, convert, convert={outext=.svg, command=\unexpanded{
% 'out_png'是用来存放PNG的文件夹
% 'out_png'是用來存放PNG的文件夾
% 'out_png' is the destination folder for PNG files
call ../util/qk_pdf_to_png out_png 600 \infile\space
}}]{standalone}
|
其中, out_png 是存放PNG的文件夾。
qk_pdf_to_png.bat 腳本的內容如下:
1 2 3 4 5 6 7 8 9 10 11 | @echo off
set dst_dir=%1
set dpi=%2
set intputfile=%3
if not exist %dst_dir%/NUL mkdir %dst_dir%
cd /d %dst_dir%
pdftocairo -r %dpi% -png ../%intputfile%
|
qk_pdf_to_png.bat 中的命令,是把 demo_to_png.tex 中的 documentclass 中的命令整合爲一,以達到簡化 documentclass 的配置的目的。
7.3. 一步轉換成EMF¶
本小結將使用 util 文件夾中之 qk_pdf_to_emf.bat 腳本,以 mwe 文件夾中的 qk_to_emf.tex 爲例,展示如何一步轉換到EMF。
qk_to_emf.tex 中的 documentclass 的配置如下:
1 2 3 4 5 6 7 | \documentclass[tikz, convert, convert={outext=.pdf,
command=\unexpanded{
% 'out_emf'是用来存放EMF的文件夹
% 'out_emf'是用來存放EMF的文件夾
% 'out_emf' is the destination folder for EMF files
call ../util/qk_pdf_to_emf out_emf \outfile\space \infile\space
}}]{standalone}
|
其中, out_emf 是存放EMF的文件夾。
qk_pdf_to_emf.bat 腳本的內容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | @echo off
set dst_dir=%1
set outputfile=%2
set intputfile=%3
if not exist %dst_dir%/NUL mkdir %dst_dir%
gswin64c -sDEVICE=pdfwrite -dSAFER -dNOPAUSE -dBATCH -sOutputFile=%dst_dir%/%outputfile% %intputfile%
cd /d %dst_dir%
for /r %%i in (*.pdf) do inkscape %%i -M %%~pni.emf
del /F *.pdf
|
qk_pdf_to_emf.bat 中的命令,是把 demo_to_emf.tex 中的 documentclass 中的命令整合爲一,以達到簡化 documentclass 的配置的目的。
7.4. 一步轉換成EPS¶
本小結將使用 util 文件夾中之 qk_pdf_to_eps.bat 腳本,以 mwe 文件夾中的 qk_to_eps.tex 爲例,展示如何一步轉換到EPS。
qk_to_eps.tex 中的 documentclass 的配置如下:
1 2 3 4 5 6 7 | \documentclass[tikz, convert, convert={outext=.pdf,
command=\unexpanded{
% 'out_eps'是用来存放EPS的文件夹
% 'out_eps'是用來存放EPS的文件夾
% 'out_eps' is the destination folder for EPS files
call ../util/qk_pdf_to_eps out_eps \outfile\space \infile\space
}}]{standalone}
|
其中, out_eps 是存放EPS的文件夾。
qk_pdf_to_eps.bat 腳本的內容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | @echo off
set dst_dir=%1
set outputfile=%2
set intputfile=%3
if not exist %dst_dir%/NUL mkdir %dst_dir%
gswin64c -sDEVICE=pdfwrite -dSAFER -dNOPAUSE -dBATCH -sOutputFile=%dst_dir%/%outputfile% %intputfile%
cd /d %dst_dir%
for /r %%i in (*.pdf) do inkscape %%i -E %%~pni.eps
del /F *.pdf
|
qk_pdf_to_eps.bat 中的命令,是把 demo_to_eps.tex 中的 documentclass 中的命令整合爲一,以達到簡化 documentclass 的配置的目的。