梅丘歌曲会館 詩と音楽 の作曲家別の作品集を latex 化するための ruby スクリプト
- git 環境
- ruby 環境
- JUMAN
-
これを読めるので基本的な git 環境は OK です
-
スクリプト内部よりローカルな git リポジトリを作成するため、 git config で以下の二つを登録
git config --global user.email "[email protected]" git config --global user.name "Your Name"
- html 情報から各種情報を取り出すため ruby nokogiri を利用します
- scoop install ruby / brew install ruby / 他
- gem install tomlrb nokogiri git
- 利用する gem パッケージは scripts/Gemfile 参照
-
邦訳された作品タイトル名の索引情報作成に、その「ひらがな化」が必要
-
和文の形態要素解析プログラムは、漢字の「よみ」も生成するのでこれを利用
-
mecab juman jumanpp などがあるが windows macOS ともにプリコンパイル されたものが存在する juman を使うことにした
- ただし開発当初は jumanpp を利用していたが、リリースに間に合わないので 「よみ」情報を手動でキャッシュとして蓄えて利用する
-
インストール
- JUMAN 開発版 (at GitHub)
- JUMAN Ver.7.01 (bzip2圧縮; 4,286,891 bytes)
- JUMAN Ver.7.0 (Windows 32bit版) (インストーラ付; 8,276,060 bytes)
- JUMAN Ver.7.0 (Windows 64bit版) (インストーラ付; 8,330,604 bytes)
- JUMAN/KNPのチュートリアルのスライド (京都大学学術情報メディアセンター, メディア情報処理専修コース「自然言語処理技術」, 2009/09/30)
-
PATH に「 C:\Program Files (x86)\juman 」を追記しリブート
C:\Program Files\juman\COPYING C:\Program Files\juman\dic C:\Program Files\juman\juman.exe C:\Program Files\juman\manual.pdf C:\Program Files\juman\unins000.dat C:\Program Files\juman\unins000.exe
-
TOML ファイルの用意
TOML ディレクトリのサンプル TOML ファイルを参考に 作曲家リスト(国・ 地域別) などから作家情報を作成
-
TOML ファイルを利用して htm ファイルをダウンロード
ruby scripts/00-lyricssongs-download.rb TOML/Brahms.toml ...
-
初回ダウンロード時は一件あたり 5 秒間隔でダウンロード
-
作曲家情報は COMP / 作品情報は TEXT ディレクトリに格納
-
-
htm ファイルの tex 化と latex によるテスト&対策
-
ダウンロードした htm ファイルを tex 化
ruby scripts/21-lyricssongs-tex-gen.rb COMP/Brahms.htm ...
-
上記の処理で、 作曲家毎に各ディレクトリに LaTeX に必要なものが書き込まれます。
-
Brams を例にとれば以下のようなものが作成されます。
- Brahms.tex
- Brahms-hyper-link.tex
- Brahms/Brahms-section-nn.tex
- Sxxxx.tex
-
廃止(削除ファイル)情報
- scripts/20-lyricssongs-tex-gen.rb
- scripts/10-lyricssongs-tex-gen.rb
- sty/myMacros.sty
-
-
-
latex などでビルド
mkdir out llmk Brahms/Brahms
-
現在判明していること
作品タイトル名索引を作成するためには「あいうえお順」になるよう「ひらが な」にする必要があり、形態要素解析プログラムを今回は juman の出力結果 を利用することとした。
作品情報は「さ-さくいん@索引」のようにひらがなの先頭の一文字を前置する ように設計したので、以下の点に留意する必要がある。
- 先頭の数文字程度が妥当なひらがなであれば良い
- 先頭の文字が濁点や半濁点などであれば対応の文字を前置する (例「け-げー て@ゲーテ」)
- 「第n番」のような作品は 0 を補充して桁合わせするつこと
- 「第1」「第2」「第3」のような場合は「だい1」「だい2」「だい3」の ようにするとあいうえお順的に並べることができる
21-lyricssongs-tex-gen.rb は .htm ファイルから .tex ファイルを作成する 際にこの索引情報を生成するが、「よみ」情報を以下のファイルからキャッシュ として蓄えて利用する。
- 以前 21-lyricssongs-tex-gen.rb で生成した .htm ファイル
- yomi.dict (ここに登録されたものが有効になる)
初回の「よみ」は juman の出力結果で作成される。タイトルだけでは十分な 情報がないため十分な形態要素解析ができず、間違った「よみ」で処理される ので必要に応じて、修正作業が必要である。
考慮する点は以下のとおおり。
-
先頭数文字が妥当であれば変更不要
-
juman 利用での問題点
-
「夏」→「か」/「春」→「しゅん」/「花」→「か」のようになることが多い
- ある程度はスクリプト内にハードコードして対応はしているが漏れはたくさんある
-
漢字のままになってしまうケースがあるので 21-lyricssongs-tex-gen.rb 実行時に以下のような手動編集を促す警告メッセージを表示する
JUMAN (一部)よみ変換できず、要手動編集 JUMAN よみ 変 換 前 諷刺の歌 JUMAN よみ 暫定変換後 んんん◆◆のうた
-
警告メッセージが表示されたものは yomi.dict に「諷刺の歌=>ふうしの うた」のように追加登録し、再処理すれば所定の「よみ」が採用される
-
-
現状の「よみ」情報は、myYomiDictList.rb で表示することができるので yomi.dict にリダイレクトしてもよい
-
登録したもののチェックは以下のような方法で確認できる
ruby scripts/myYomi.rb 'ヴェネツィアの歌I' '笑いと涙' 竪琴弾き'
-
juman 対応
-
style macro の見直し
-
Op 番号、作品番号の表示が Op.Op などとなるなど とおかしい
- Op 番号なしなどがたくさんあるので
- 他の作者では Op 番号や WoO 番号が無い、あるいはそのほかの記号があるので、対応検討中(アイデア募集)
- 整理番号はタイトルの補助的な文字列としスタイルマクロを全面改訂
- 作曲者リストの整理番号と作品リストの先頭の文字から各作品の整理番号を合成していたが、 リンク情報から作品のデータをさらに読み込み、作品整理番号を取得することにした。
-
予想外のデータ対策(これは当分は終結はしないだろう)
- 下線(アンダースコア)のデータあり、暫定で で対応
- html での & を & に変換するとエラーになるので \&
- Wolf で「>>」…「<<」が html encoding された < > になっているので LaTeX エラーが生じている
-
Brahms の 299 ページ目で、原題タイトルが行溢れ
-
Windows 環境で「警告?(guessed encoding: UTF-8 = utf8) 」
-
uplatex guess encoding wrong #1137 edocevoli commented on Jul 28, 2022
This "input encoding" guessing was only implemented on Windows. In June, the Windows implementation was ported and is now available in the latest pTeX binaries which TeX Live 2022 not yet provides. MiKTeX provides the new implementation. Maybe the implementation is wrong in some way. I cannot tell. This must be fixed upstream.
-
systemu 経由で入手する情報を NKF で UTF-8 化
-