Ubuntu20.04で動作したので作業記録。
./td-Linux.glibc2.3で起動を試みる。
sudo apt install libxtst6:i386":i386"を付けることで明示的に32ビット版をインストールできる
set device postscript orientation=3 file='out.ps'のようにする。出力ファイル形式は多分Postscriptしか対応してない。orientation=3 の意味は、描画方向の指定らしい。要は3以外に指定すると変な向きになるので、おまじない的に書いておくべし、ということ。
plot
plot symbol=CP size=3 red
join 1
join 20
join 1 width=2 green dashes
plot symbol=CP size=3 blue join 1 width=3 blue dots
histogram
plot symbol=LPのようにする。
( 半角左括弧でコメントを記述できる。 ( 処理は記述順に実行されるので、書く順番は重要。 ( 出力ファイルを指定。 set device postscript orientation=3 file='out.ps' ( この記述を入れたらフォントがきれいになる set font duplex ( 線の太さ調整, 論文用...3, スライド用...4くらい? set intensity 3 set ticks size 0.05 ( 出力紙面上のグラフエリアの位置を指定 set size x=13 y=17 set window x 2 7 y 2 7 ( グラフの範囲指定 set limits x 0 to 2000 y 0 to 6000 ( input fileの指定。ファイル形式はn行2列でスペース区切りで数値のみを記述。 set file input='input.dat' ( 軸タイトルの設定, lines= で位置を微調整できる title bottom "Energy (keV)" title left lines=-0.5 "Counts / keV" ( ヒストグラムとして出力。点をつ場合はplot, 線で結ぶならjoin。 histogram
td example.top
if 0 .ne. 0 then ( ここからコメント 要らない記述 endif ( ここまでコメント
set order x dummy y
$ echo -e "1 1\n 2 2\n join"|td -w
set size x=13 y=13
title text 6.4,6.4 rjustify "Simulation" size=3 intensity=3
title text 1 1 ljustify "E(20+126213) and B223" case "I C CUUC C GC C"
6 5 8 5 join text
( 凡例 set order x y define value legendx0=9.8 ( 凡例の原点x位置 define value legendy0=6.0 define value legendll=0.7 ( 凡例線の長さ define value legendss=1.0 ( 文字開始位置 define value legendls=0.3 ( 行間 (凡例0 <legendx0> <legendy0-legendls*0> <legendx0+legendll> <legendy0-legendls*0> join text dot (title text <legendx0+legendll/2> <legendy0-legendls*0> center "9" size=3 (case "P" title text <legendx0+legendss>,<legendy0-legendls*0> ljustify " 20+11R 00+1" case " C CUA C C" (凡例1 <legendx0> <legendy0-legendls*1> <legendx0+legendll> <legendy0-legendls*1> join text dash (title text <legendx0+legendll/2> <legendy0-legendls*1> center "9" size=3 (case "P" title text <legendx0+legendss>,<legendy0-legendls*1> ljustify "(40+1)R 20+1" case " C C A C C"
( set device test で今まで開いていたpostscriptファイルから抜ける set device test spawn ps2pdf temp.ps spawn pdfcrop --margins 8 temp.pdf out.pdf spawn rm -f temp.ps temp.pdf
define string OUTPUTFILE "pdf/Ti58-2_test.pdf" ( OUTPUTFILEに文字列 "pdf/Ti58-2_test.pdf"を定義 show strings ( 定義された文字列一覧を表示。TD_S_OUTPUTFILEという環境変数に格納されているのがわかる。 TD_S_OUTPUTFILE=pdf/Ti58-2_test.pdf spawn echo $TD_S_OUTPUTFILE pdf/Ti58-2_test.pdf spawn ps2pdf temp.ps spawn pdfcrop --margins 8 temp.pdf $TD_S_OUTPUTFILE
define value xpos2=4.12 define value xpos3=4.7 define value ypos1=6.7 define value lheight=0.3 <xpos2> <ypos1-2*lheight> <xpos3> <ypos1-2*lheight> join text dash
td macro.top -V value=0. -S name="Yumiko"のようにして変数の引き渡しが出来る。
td -V value1=1.0 -V value2=2.0のようにする。
set intensity 7
set device postscript orientation=3 file='out.ps "yellow=b8860b"のようにする。この例では、見えにくいYellowを茶色に変更してる。色の定義を変えることは出来るが、新しい色を定義して使える色数を増やすことは出来ない。
set fill entry 1 angle 30 red set fill entry 2 angle 60 blue histogram fill
TD: READ MESH TD: FOR X=0 1 2 TD: Y=0 Z=1 1 1 TD: Y=1 Z=1 2 1 TD: Y=2 Z=1 1 1 TD: join TD: PLOT AXES HIDE
set device postscript orientation=3 file='out.ps' set font duplex set intensity 3 set size x=13 y=17 set ticks size 0.05 set window x 2 7 y 2 7 set limits x -60 to 60 set limits y -60 to 60 set limits z 0 to 1 set file input='dat.tdm' CONTOUR outside=off
set labels left off set labels bottom off
set limits x 0.0 to 4.0 y 1042 to 1052 set scale x lin labels=4 tick=4 set scale y lin labels=5 tick=4 set limit z 0.0050 to 0.0100 set scale z lin labels=25 tick=4
set limits x 0 to 180 set scale x base=30 labels=7 tick=3
set device postscript orientation=3 file='tdtemp.ps' : : set device test ( 今まで開いていたpostscriptファイルから抜ける spawn ps2pdf tdtemp.ps tdtemp.pdf spawn pdfcrop --margins 0 tdtemp.pdf tdtemp2.pdf > /dev/null ( "> /dev/null"は単にメッセージを消してるだけ spawn pdftoppm -png -singlefile tdtemp2.pdf tdtemp2 ( 最終的にtdtemp2.pngというファイルが出来上がる
\input{epsf} % プリアンブルに書いておく : \begin{figure}[ht] \centering \epsfxsize=13cm \epsfbox{tdout.ps} \caption{テスト} \end{figure}
ghostscript -sDEVICE=png16 -dNOPAUSE -dBATCH -dSAFER -r300 -sOutputFile=output.png output.ps convert output.png -trim output_cropped.png
convert -density 100 output.ps -colorspace RGB -alpha off output.png
ps2pdf output.ps output.pdf pdfcrop --margins 0 output.pdf output_cropped.pdf
#!/usr/bin/perl open(TD, "|td -w"); select TD; print "1 1\n"; print "2 2\n"; print "join\n";
#!/usr/bin/perl open(TD, "|td 3>&2 2>&1 1>&3|convert -density 600 - -colorspace RGB -alpha off -resize 25% output.png"); # ↑この表記にすることで、pngファイルに直接出力させる select TD; set "device postscript orientation=3 file='/dev/stderr' 'yellow=b8860b'\n"; # ↑ポストスクリプトの出力先をエラー出力にする set "font duplex"; set "window x 2 7 y 2 7"; set "limits x 0 to 3"; set "limits y 0 to 80000"; for (my $i = 0; $i < 49; $i++) { set "order x dummy y"; set "file input='tmpdirs/tmp${i}/dcs2.dat'"; my $ltype = &linetype($i); my $lcolor = &color($i); tdjoin "1 $ltype $lcolor"; }
set bar size 0とする
set outline off set ticks off set labels off 1 1 2 2 join
set fill entry full arrow from 22 120 data to 22 105 data fill=on
x=0 to 720 step 10 y="(1/sqrt(2))*(sin(xv)+cos(xv))" join red
set scale y log 1 LABELS=EXPONENTIAL