最近、筑波大ではTRIOSデータベースが 公用化(≒入れないと待遇が不利になる)されました。 その割にはTRIOSデータベースへの入力はインターフェースが悪くて大変 (かつ 出力形式が私の趣味に合わない) ので、一念発起してフィルタを書きました。
(作成に意外に時間がかかってしまいました‥。Unixユーザで無い人はここでさようならです。 一応cygwinでも動きますが。開発は主にcygwin上でしたし。)
基本的には、手元でテキストのマスターファイルを保有しておいて、 そこからhtmlファイル(4種類)を吐き出したり、 再編集用のテキストファイル(Excel向けとテキストエディタ向けの2種類)を吐き出したり、 TRIOS入力画面に対する補助ファイルを吐き出したりします。
私のほかにユーザがいるかどうかかなり微妙ですが、まあ1人でもいれば大学全体で 効率は2倍になったということで良しとしましょう(どういう計算だか‥笑)。
2007/04/18, kameda[at]iit.tsukuba.ac.jp (shift_jis-dos)
■■■■■■
更新情報
■■■■■■
2007/04/18
trios-manager05.awk
クラス別のとき最後に年号を入れるようにしました。
trios-html.bash
trios-manager05.awkを呼び出すようにしました。
2007/04/09 Final-Beta-1
公開してみたり。
●●●●●●●
ファイル群
●●●●●●●
実行にはgawkとnkfが必要です。
以下のファイルをダウンロードしましょう。
・なにかしらの文献データファイル
Excelとかで作りましょう。
作成方法は下記の
◆Tab-separated-text (*-tab.txt)
参照。
・index_date-e.tmpl
・index_date-j.tmpl
・index_class-e.tmpl
・index_class-j.tmpl
・trios-html.bash
・trios-manager04.awk
・trios-cutter.awk
●●●●●●●
やってみる
●●●●●●●
(1) Excelでhoge-pubdb.xlsを編集する
(2) Excelで「名前を付けて保存⇒ファイルの種類:テキスト(タブ区切り)」として、
hoge-pubdb-tab.txtを作成
(3) ./trios-html.bash a-FirstFamily t-TitleString hoge-pubdb-tab.txt
(4) 下記trios-html.bashの<出力>の7ファイルが出来ているはず。
(5) 例えばpub-*-tab.txtをExcelで読み込んで編集。
(6) (2)と同じようにまた?-tab.txtを生成。
(7) (3)と同じように生成。
これで更新OK.
(5') pub-*-edt.txtをemacsで編集。
(6') (5')で編集したファイルを(3)と同じように実行。
こちらでも更新OK.
★★★★★★★★★★★★★★★★★★★★★★
★ trios-html.bash
★★★★★★★★★★★★★★★★★★★★★★
<概要>
全てのhtmlファイルやテキストファイルなどを
1つの文献データベースファイルから生成する。
<オプション>
下記 trios-manager04.awk の
▼著者フォーマット(html出力時)
▼題名フォーマット(html出力時)
に対応。ただし、それぞれ"a-", "t-"を前に付ける。
例:FirstFamily, TitleString形式を望むなら
trios-html.bash a-FirstFamily t-TitleString pubdb-tab.txt
<入力>
下記 trios-manager04.awk の
▼入力として受け付けるファイルフォーマット
に対応。nkfを内部で実行するので、文字コードは
任意でよい。
ファイル名が*-edt.txtかそうでないかで入力モードを自動切換えする。
<出力>
index_date-e.html
index_date-j.html
index_class-e.html
index_class-j.html
pub-YYYYMMDD-hhmmss-edt.txt
pub-YYYYMMDD-hhmmss-tab.txt
pub-YYYYMMDD-hhmmss-tri.txt
※いずれもshift_jis-dos。
※*.htmlは*.tmplから生成される。
__TRIOS_DATE__には日付が、__TRIOS_DATA__の部分には
trios-manager04.awkのhtmlモードの出力結果が挿入される。
★★★★★★★★★★★★★★★★★★★★★★
★ trios-manager04.awk (ないしそれ以降)
★★★★★★★★★★★★★★★★★★★★★★
<オプション>
・説明の先頭に*があるのがdefault。
・gawkではオプションの指定の仕方は
trios-manager04.awk -v imode=tab -v omode=html pubdb-tab.txt
のようになる。
・ファイル出力は常に標準出力。
▼入力として受け付けるファイルフォーマット(euc-japan-unix):
imode 説明 ファイル名推奨規則
tab *Tab-separated-text (*-tab.txt)
text Editable-text (*-edt.txt)
▼出力できるファイルフォーマット(euc-japan-unix):
omode 説明 ファイル名推奨規則
html *HTML (*.html)
tab Tab-separated-text (*-tab.txt)
trios Tab-separated-text-for-TRIOS (*-tri.txt)
text Editable-text (*-edt.txt)
▼言語:
key 説明
en *英語
jp 日本語
※あくまで「発表の場(会議・論文誌)で英語が公用語かどうか」を示す。
※国内発表だが原稿が英語のような場合は、key=jpとし、URL(YK_URM参照)に「英語」と注釈して対応。
▼著者フォーマット(html出力時)
aformat 説明
ORIGINAL *原論文表記(YK_NamePattern参照)に従う
FirstFamily 例:Yoshinari Kameda
FirstFAMILY 例:Yoshinari KAMEDA
FAMILYFirst 例:KAMEDA Yoshinari
FamilyF. 例:Kameda Y.
※ミドルネームがあればいずれも氏と名の間に入る。
▼題名フォーマット(html出力時)
tformat 説明
ORIGINAL *原論文表記(YK_TITLE-en参照)に従う
TitleString 例:Image Processing Algorithm
TITLESTRING 例:IMAGE PROCESSING ALGORITHM
Titlestring 例:Image processing algorithm
▼ソート基準
key 説明
date *逆時間順[html,tab,trios,text]
type 論文の型(YK_TYPE参照)[html]、何もしない[tab,trios,text]
<ファイルの形式>
◆Tab-separated-text (*-tab.txt)
・Excelから出力するには
「名前を付けて保存⇒ファイルの種類:テキスト(タブ区切り)」
・Excelで読み込むには
「ファイルを開く⇒ファイルの種類:テキスト」
のあと、テキストファイルウィザード中で「列のデータ形式」をすべて「文字列」扱いにしておくのがよい。
・先頭行は TAG を記述、2行目以降の各行が論文1つに対応。
・TAGの出現順(列)に意味はないので、見易さ優先で並べ替えても支障ない。
・必須TAGは "YK_*" 。
・必須では無いが入力推奨TAG は "YL_*" 。
・他にどのようなTAGも増やすことができる。
・各行で該当する入力が無い場合は、タブで飛ばしておく。
YK_TYPE
TRIOS論文上での扱い
選択可能なラベル 備考 学内種別 ReaD用種別 言語種別 査読
--------------- ------------------------------------------------------------
TAG_PAPER_E 原著論文 学術雑誌 英語 有
TAG_ICONF_EVAL 国際会議Proc. 学術雑誌 英語 有
TAG_ICONF_NONE 国際会議Proc. その他 英語 無
TAG_PAPER_J 原著論文 学術雑誌 日本語 有
TAG_LETTER_J 原著論文 学術雑誌 日本語 有
TAG_ORAL_RESEARCH 口頭発表 その他 日本語 無
TAG_ORAL_NATIONAL 口頭発表 その他 日本語 無
TAG_MISC 記事等 その他 その他 日本語 無
TAG_NONE 紀要等 学内紀要等 大学研究所紀要 日本語 無
TAG_BOOK_J 非論文 日本語
TAG_PRIZE 非論文 日本語
TAG_PATENT 非論文 日本語
YK_LANG
"E"ないし"J"。
ほぼYK_TYPEの言語種別で特定されるので自由度は0かも。
このTAGが"E"だと、YK_AU*-*-jp, YK_TITLE-jp,YK_TAKEN-BOOK-jpは英語表記側から自動生成されるので利用されない。
(YK_VENUE-jpは必要である‥やめてもいいんだけど。ToDo)
YK_INTERNAL
ここに1バイト以上あると、html/triosでは表示されない。(tab/textでは表示される。)
YK_TRIOS
TRIOSへの投入修了かどうかのメモにどうぞ。
YK_SELECT
1バイト以上あればTRIOS向け出力時に「公開対象とする」と表記される。
YK_NamePattern
原著での英語の著者名表記方法。
trios-manager04.awkの"aformat"の項の"ORIGINAL"以外のいずれかをラベルとして選択。
YK_AU{1-20}-{1-3}-{en,jp}
氏名。
最初の1-20は第1著者〜第20著者まで対応。必要な分だけ用意すればよい。
次の1-3は、1:family name, 2:middle name(例:"S."), 3:first name。
enは英語、jpは日本語。英語時は大文字小文字関係ない(自動フォーマットするため)。
YK_TITLE-{en,jp}
論文題名。
YK_LANGが"E"のときはYK_TITLE-jpは不要。
tformatがORIGINALになると、YK_TITLE-enをそのまま用いる。
tformatがORIGINAL以外のときは、YK_TITLE-enを加工して用いる。
YK_TAKEN-BOOK-{en,jp}
雑誌名。
YK_LANGが"E"のときはYK_TAKEN-BOOK-jpは不要。
YL_TAKEN-BOOK-ID
ISBN番号など。
YK_TAKEN-PUBLISHER-{en,jp}
出版社。
TRIOS時には用いる。
html時には利用されない。(ToDo)
YK_TAKEN-VOL / YK_TAKEN-NO
巻 / 号
YK_TAKEN-PP
ページ番号ないしページ数。
YK_TAKEN-ID
当該雑誌上での論文を特定する番号。
YK_TAKEN-PPがない場合、こちらで代用する(html/trios時)。
YK_DATE
発表日(YYYY/MM/DD)。国際会議なら登壇日。
論文のソートキーになるので注意。
YK_VENUE-{en,jp}
発表場所と期間。
論文誌の場合は空にしておくこと(html時に自動的に非表示になる)。
YK_{URL,URM}-{1-7}
html出力時にYK_URLで示すアンカーを、YK_URMのラベルで表記する。
和英の区別がないので、YK_URMは英語で表記すること。
YL_MISC-{1-15}
メモ用。html/trios時には利用されない。
◆Tab-separated-text-for-TRIOS (*-tri.txt)
・TRIOS入力に最適。
・このファイルをExcelで読み込んでおいて、TRIOS入力画面と並べると入力が速い。
◆HTML (*.html)
・論文リストの部分だけなので、HTMLとして完全にするには
trios-html.bash / trios-cutter.awk
を参照のこと。
◆Editable-text (*-edt.txt)
・Tab-separated-textと同じ内容を縦に並べている。
・テキストエディタで編集しやすい。
・PUB_DB_RECORD_BEGINの次の行からPUB_DB_RECORD_ENDの前の行までが1つのレコード。
・レコード中でも空行と#で始まる行は無視される。
・レコード中に1語だけの行があるとTAG扱いされて登録されるので注意。
・レコード中に2語以上あると、1語目をTAGとし、残り全てがそのデータとなる。
・レコードとレコードの間に何を書いても無視される。
★★★★★★★★★★★★★★★★★★★★★★
★ trios-cutter.awk
★★★★★★★★★★★★★★★★★★★★★★
<概要>
*.tmplを標準入力に取る。
trios-manager04.awkのhtmlモードの出力結果ファイル名をpubdbとして受ける。
実行すると、*.tmpl中で
__TRIOS_DATE__ には日付挿入
__TRIOS_DATA__ にはpubdbを挿入
する。結果は標準出力に出され、euc-japan-unixである。
$ ./trios-html.bash t-TitleString a-FirstFamily hoge-pubdb-tab.txtを実行してできるの生成ファイルの例。