ラテックスチャート制作:EPSファイルからPDFファイルへの変換とPDFクロップ自動化に関するシェルスクリプト制作


ここに画像の説明を挿入

序文

もうすぐ研究2年目になりますが、論文を書き終えて、次の論文執筆に入ろうとしたときに、前回の論文で改善すべき点がまだまだたくさんあることに気づきました。論文の絵 それが良いか悪いか、査読者の注目を集め好意を得ることができるかは熟考に値する問題であり、収入や労力にプラスに関係するこのような事柄にはもっと注意を払う必要があります。次に、図面、集計などの科学研究の詳細を更新し続けます... (また新しい穴を掘っています)


1. EPSファイルをPDFファイルに変換します

EPS は、ベクター グラフィックス ファイルとしても知られており、Latex 紙のライティング テンプレートに挿入できるファイル形式です。PDF 形式のファイルを使用するのがより一般的です。これは、PDF が一度生成されて修正されると、(Word や Txt などのファイルと比較して) 変更するのが容易ではないためです。

1. 過去の研究マッピングスキーム

実際、これ以前の科学研究と描画のプロセスでは、Python の matplotlib を使用して画像を描画し、PDF または PNG ファイルとして保存するのが私の日常的な作業です。ただし、PDF として保存し、Latex 用紙に配置すると、問題が発生します。つまり、必要なチャートが PDF ページの中央に配置され、周囲に白い境界線があり、チャートが白で表示されます。紙に入れると少し小さいです。したがって、PDF をトリミングする必要がありますPDF スクリーンショットを画像として保存し、その画像を 1 ページのみの PPT (Power Point) にコピーし、PPT ページ サイズを画像と同じに設定し、最後に PDF ファイルとして保存してトリミングを完了します。 。このプロセスは少し面倒なようですが、この方法で保存された PDF には別の問題があり、PDF 内の一部のテキストは、元は画像であるためコピーできなくなります。通常のPDFのテキストをコピーすることができます。

2. 将来の研究マッピングスキーム

もちろん、読者は WPS (有料) や Adob​​e などのツールを使用して視覚的なトリミングを行うことができます。手動トリミングの問題点は、PDFの白い端をうまく切り取ることができないことと、毎回手動で調整するのが非常に面倒なことです。そこで次に説明する方法は、無料ツールを使用してコマンドライン形式で自動的にトリミングする方法です。

2. ステップを使用する

この記事は Ubuntu などの Linux システムで実行されており、Windows オペレーティング システムには適していない可能性があることに注意してください。ところで、科学研究にはUbuntuが欠かせません。Windows には Fork 操作がないため、配布コードなどの一部のコードは Linux オペレーティング システムでのみ実行できます。

1. シングルトン操作

まず、対応するツールキットを Ubuntu にインストールします: epstool

a.epstoolをインストールする

sudo apt-get install epstool

b. EPS ファイルの白い境界線を切り取り、一時的な EPS ファイルを保存します

ファイル input_file.eps を例として取り上げます。

epstool --copy --bbox input_file.eps input_file.temp.eps

結果を input_file.temp.eps として一時的に保存します

d. EPS ファイルを PDF ファイルに変換する

epstopdf --hires --outfile=output_file.pdf input_file.temp.eps

変換後、output_file.pdf ファイルが、必要な最終結果と同じディレクトリに生成されます。
この手順でエラーが発生した場合は、プロンプトに従って対応するライブラリをインストールします。ここでは、texlive-font-utils をインストールするように求められます。

sudo apt install texlive-font-utils

2. バッチ操作

上記は 1 つの EPS ファイルに対するものですが、自動ワンクリック操作を実現するには、多くの場合、複数のファイルをバッチ変換する必要があります。ここではシェルスクリプトを使用します。
コードを直接与えて、その使用方法を紹介します。

a. シェルスクリプト

vi eps2pdf.sh または vim eps2pdf.sh を使用して、新しいシェル スクリプト ファイルを作成します。
ソースコードはgithubで公開されています: https://github.com/Regan-Zhang/EPS2PDF

#!/bin/sh
for file in ./*;do # 遍历当前目录所有文件
	if [ "${file##*.}"x = "eps"x ];then # 如果文件后缀为eps,即为eps文件则进行如下操作
		echo "$file is eps file"
		filename=${file%.*} # 去除.eps后缀名
		echo "$filename"
		# 执行单例命令
		epstool --copy --bbox $file $filename.temp.eps 
		epstopdf --hires --outfile=$filename.pdf $filename.temp.eps	
		rm -f $filename.temp.eps # 删除临时文件
	fi
done
read -p "Press any key to end"

b. 使用説明書

すべての EPS ファイルをフォルダーに配置し、eps2pdf.sh スクリプトをこのディレクトリに配置します。
次に、現在のディレクトリの端末ウィンドウに進み、次のように入力します。

sh ./eps2pdf.sh

完了するまで実行できます。

参考サイト

ubuntu、epsをpdfに変換し、白い境界線を切り取る
Mac党の福音:epsをpdfに変換し、白い境界線を切り取るための2行のコマンドシェル ファイル名を分割して
ファイル拡張子またはファイル名を抽出する

おすすめ

転載: blog.csdn.net/weixin_43594279/article/details/131118707