最近、筑波大では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を実行してできるの生成ファイルの例。