LaTeXのTikZで作った画像だけをPDF化したいときのTips
回路図をLaTeXのTikZ使って描いたは良いけど,その画像だけのPDFが欲しい場合があったので備忘録
上記のような回路図を描きたいがために下記のコードを打ち込む.
その後,作った画像のみのPDFを作成する方法を示す.
\pgfrealjobname{filename}%このソースコードのファイル名(.texはいらない) % TikZのパッケージ \usepackage{tikz} \usepackage{circuitikz} \usetikzlibrary{calc,intersections,positioning,shapes,arrows} % 適切な位置に図を入れる \begin{figure}\centering \beginpgfgraphicnamed{fig}% ここから\endpgfgraphicnamedまでの図を別で描き出す \begin{circuitikz}[american voltages] %----------------------------- %各点の位置を定義 %----------------------------- \coordinate (O) at (0,0);%原点 \coordinate (X) at (5,0);%幅 \coordinate (X2) at ($(O)!0.5!(X)$);%幅の二等分線 \coordinate (Y) at (0,5);%高さ \coordinate (Y2) at ($(O)!0.5!(Y)$);%高さの二等分線 \coordinate (XY) at (X|-Y);%図の右上端 %----------------------------- %ここから描いていく %----------------------------- \draw (O) node[ground] {} -- (X) ;% アース \draw (Y) node[left] {High$[V]$} -- (XY) ;% High \draw (Y-|X2)[short,*-] to [european resistor] (Y2-|X2); % Highと抵抗を接続 \draw (Y2-|X2) ++ (0, -1) node[nmos] (mos) {} (mos.gate) node[anchor=south] {G} to[short, -o] (mos.gate -| O) node[below right]{入力電圧}% 抵抗と接続 (mos.drain) node[anchor=east] {D} to (Y2-|X2) to [short,*-o] (Y2-|X) node[above left]{出力電圧} (mos.source) node[anchor=east] {S}[short,-*] to (X2); % アースと接続 \end{circuitikz} \endpgfgraphicnamed% \beginpgfgraphicnamedから,ここまでの図を別で描き出す \caption{電界効果トランジスタを用いるNOTゲートの例} \end{figure} % 図ここまで
ポイントは以下の3つ
- \pgfrealjobname{filename}をプリアセンブルに記述すること.
- このときfilenameは今書いているソースコードのファイル名を入れる.ただし拡張子はいれない.
- TikZの画像を\beginpgfgraphicnamed{fig}と\endpgfgraphicnamedで挟む.
- ここでのfigはこの画像を保存する名前になる.
- uplatexでコンパイルする場合,--jobnameオプションをつける.
これでfig.dviというファイルが生成され,dvipdfmxなどでpdf化すればよい.
- dvipdfmx fig.dvi
ちなみに,描かれる画像の領域がズレている場合は,pdfcropコマンドを用いることでぴったりサイズの画像が得られる.
- pdfcrop fig.pdf
上記のコードを手順どおりに実行するとfig-crop.pdfというページ上部の図が生成される.
(ページ上部の図はpngに変換してから載せている)