「部門/Ruby/名札自動作成プログラム改訂版」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
なんか前のやつを久しぶりに動かしたら全然期待と違う動きをするので、直してみた。CSVが偶数行じゃないと動かないという問題も解決したつもり。でもこれもちゃんと動くかどうかよくわからない。TeXコマンドをファイルに出力するときに、\\にするのか、\にするかは環境に依存しそう。もっとうまく書きたいけど、めんどいからこんな感じで。
#highlight(ruby,linenumber){{{
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
# オナーの名札作成プログラム
eventname = "2010年度卒業生送別会"
if ARGV[0] == nil then
print "このプログラムの使い方
所属(半角カンマ)セミナー名(半角カンマ)氏名(改行)
例:物理学科3年,永宮G, 金森 順次郎
物理学科3年, 八木G, 湯川 秀樹
というようなファイルを引数に入れてくれると
名札を作るためのTeXソースファイルをつくります。
あとはそれをコンパイルしてPDFにして印刷してね。
何かあれば
foo@bar.com
まで¥n"
else
f1 = File.open("#{ARGV[0]}.tex", "w")
f1.print "¥documentclass[14pt,a4paper]{jsarticle}
¥usepackage[dvipdfmx]{graphicx}
¥pagestyle{empty}
¥setlength{¥¥unitlength}{1truemm}
¥setlength{¥¥hoffset}{0in}
¥setlength{¥¥voffset}{0in}
¥setlength{¥¥headheight}{0in}
¥setlength{¥¥headsep}{0in}
¥setlength{¥¥oddsidemargin}{14truemm}
¥setlength{¥¥topmargin}{16truemm}
¥advance¥¥oddsidemargin -1in
¥advance¥¥topmargin -1in
¥setlength{¥¥footskip}{0in}
¥begin{document}
"
require "csv"
CSV.open(ARGV[0], "r")
b=CSV.readlines(ARGV[0])
puts b[0]
i = 0
while b[i] != nil
f1.print "¥begin{picture}(89.1,54.6)(0,0)
¥put(-0.45,-0.2){¥line(1,0){90}}
¥put(-0.45,-0.2){¥line(0,1){55}}
¥put(89.55,54.8){¥line(-1,0){90}}
¥put(89.55,54.8){¥line(0,-1){55}}
¥put(46,20){¥¥makebox(0,0){¥Huge ¥bf #{b[i][2]}}}
¥put(52,44){¥¥makebox(0,0)[]{¥small #{eventname}}}
¥put(52,35.5){¥¥makebox(0,0){¥large #{b[i][0]}}}
¥put(82,3.5){¥¥makebox(0,0)[r]{¥large #{b[i][1]}}}
¥put(5,28){¥¥includegraphics[width=20truemm]{001.eps}}
¥end{picture}"
if b[i+1] != nil
f1.print "
¥begin{picture}(89.1,54.6)(0,0)
¥put(-0.45,-0.2){¥line(1,0){90}}
¥put(-0.45,-0.2){¥line(0,1){55}}
¥put(89.55,54.8){¥line(-1,0){90}}
¥put(89.55,54.8){¥line(0,-1){55}}
¥put(46,20){¥makebox(0,0){¥¥Huge ¥bf #{b[i+1][2]}}}
¥put(52,45){¥makebox(0,0)[]{¥small #{eventname}}}
¥put(52,35.5){¥makebox(0,0){¥large #{b[i+1][0]}}}
¥put(82,3.5){¥makebox(0,0)[r]{¥large #{b[i+1][1]}}}
¥put(5,28){¥includegraphics[width=20truemm]{001.eps}}
¥end{picture}¥par
"
end
elsif b[i+1] != nil
f1.print "
¥begin{picture}(89.1,54.6)(0,0)
¥put(-0.45,-0.2){¥line(1,0){90}}
¥put(-0.45,-0.2){¥line(0,1){55}}
¥put(89.55,54.8){¥line(-1,0){90}}
¥put(89.55,54.8){¥line(0,-1){55}}
¥put(46,20){¥makebox(0,0){¥¥Huge ¥bf }}}
¥put(52,45){¥makebox(0,0)[]{¥small }}}
¥put(52,35.5){¥makebox(0,0){¥large }}}
¥put(82,3.5){¥makebox(0,0)[r]{¥large }}}
¥put(5,28){¥includegraphics[width=20truemm]{001.eps}}
¥end{picture}¥par
"
end
i += 2
end
f1.puts "¥end{document}
"
f1.close
puts "#{i}人分の名札ができた模様"
end
}}}
**コメント
#comment_num2()
なんか[[前のやつ>http://www47.atwiki.jp/cscd/pages/52.html]]を久しぶりに動かしたら全然期待と違う動きをするので、直してみた。CSVが偶数行じゃないと動かないという問題も解決したつもり。でもこれもちゃんと動くかどうかよくわからない。TeXコマンドをファイルに出力するときに、\\にするのか、\にするかは環境に依存しそう。もっとうまく書きたいけど、めんどいからこんな感じで。
#highlight(ruby,linenumber){{{
#!/usr/bin/ruby
# -*- coding: utf-8 -*-
# オナーの名札作成プログラム
eventname = "2010年度卒業生送別会"
if ARGV[0] == nil then
print "このプログラムの使い方
所属(半角カンマ)セミナー名(半角カンマ)氏名(改行)
例:物理学科3年,永宮G, 金森 順次郎
物理学科3年, 八木G, 湯川 秀樹
というようなファイルを引数に入れてくれると
名札を作るためのTeXソースファイルをつくります。
あとはそれをコンパイルしてPDFにして印刷してね。
何かあれば
foo@bar.com
まで¥n"
else
f1 = File.open("#{ARGV[0]}.tex", "w")
f1.print "¥documentclass[14pt,a4paper]{jsarticle}
¥usepackage[dvipdfmx]{graphicx}
¥pagestyle{empty}
¥setlength{¥¥unitlength}{1truemm}
¥setlength{¥¥hoffset}{0in}
¥setlength{¥¥voffset}{0in}
¥setlength{¥¥headheight}{0in}
¥setlength{¥¥headsep}{0in}
¥setlength{¥¥oddsidemargin}{14truemm}
¥setlength{¥¥topmargin}{16truemm}
¥advance¥¥oddsidemargin -1in
¥advance¥¥topmargin -1in
¥setlength{¥¥footskip}{0in}
¥begin{document}
"
require "csv"
CSV.open(ARGV[0], "r")
b=CSV.readlines(ARGV[0])
puts b[0]
i = 0
while b[i] != nil
f1.print "¥begin{picture}(89.1,54.6)(0,0)
¥put(-0.45,-0.2){¥line(1,0){90}}
¥put(-0.45,-0.2){¥line(0,1){55}}
¥put(89.55,54.8){¥line(-1,0){90}}
¥put(89.55,54.8){¥line(0,-1){55}}
¥put(46,20){¥¥makebox(0,0){¥Huge ¥bf #{b[i][2]}}}
¥put(52,44){¥¥makebox(0,0)[]{¥small #{eventname}}}
¥put(52,35.5){¥¥makebox(0,0){¥large #{b[i][0]}}}
¥put(82,3.5){¥¥makebox(0,0)[r]{¥large #{b[i][1]}}}
¥put(5,28){¥¥includegraphics[width=20truemm]{001.eps}}
¥end{picture}"
if b[i+1] != nil
f1.print "
¥begin{picture}(89.1,54.6)(0,0)
¥put(-0.45,-0.2){¥line(1,0){90}}
¥put(-0.45,-0.2){¥line(0,1){55}}
¥put(89.55,54.8){¥line(-1,0){90}}
¥put(89.55,54.8){¥line(0,-1){55}}
¥put(46,20){¥makebox(0,0){¥¥Huge ¥bf #{b[i+1][2]}}}
¥put(52,45){¥makebox(0,0)[]{¥small #{eventname}}}
¥put(52,35.5){¥makebox(0,0){¥large #{b[i+1][0]}}}
¥put(82,3.5){¥makebox(0,0)[r]{¥large #{b[i+1][1]}}}
¥put(5,28){¥includegraphics[width=20truemm]{001.eps}}
¥end{picture}¥par
"
end
elsif b[i+1] != nil
f1.print "
¥begin{picture}(89.1,54.6)(0,0)
¥put(-0.45,-0.2){¥line(1,0){90}}
¥put(-0.45,-0.2){¥line(0,1){55}}
¥put(89.55,54.8){¥line(-1,0){90}}
¥put(89.55,54.8){¥line(0,-1){55}}
¥put(46,20){¥makebox(0,0){¥¥Huge ¥bf }}}
¥put(52,45){¥makebox(0,0)[]{¥small }}}
¥put(52,35.5){¥makebox(0,0){¥large }}}
¥put(82,3.5){¥makebox(0,0)[r]{¥large }}}
¥put(5,28){¥includegraphics[width=20truemm]{001.eps}}
¥end{picture}¥par
"
end
i += 2
end
f1.puts "¥end{document}
"
f1.close
puts "#{i}人分の名札ができた模様"
end
}}}
**コメント
#comment_num2()