Skip to content

128Mac/lyricssongs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Table of Contents

  1. lyricssongs
    1. 概要
    2. 必要なもの
      1. git 環境
      2. ruby 環境
      3. JUMAN
    3. 利用方法
    4. よみ
      1. 概要
      2. yomi.dict の保守
    5. TODO

lyricssongs

概要

 梅丘歌曲会館  詩と音楽 の作曲家別の作品集を latex 化するための ruby スクリプト

必要なもの

  • git 環境
  • ruby 環境
  • JUMAN

git 環境

  • これを読めるので基本的な git 環境は OK です

  • スクリプト内部よりローカルな git リポジトリを作成するため、 git config で以下の二つを登録

    git config --global user.email "[email protected]"
    git config --global user.name "Your Name"
    

ruby 環境

  • html 情報から各種情報を取り出すため ruby nokogiri を利用します
    • scoop install ruby / brew install ruby / 他
    • gem install tomlrb nokogiri git
      • 利用する gem パッケージは scripts/Gemfile 参照

JUMAN

  • 邦訳された作品タイトル名の索引情報作成に、その「ひらがな化」が必要

  • 和文の形態要素解析プログラムは、漢字の「よみ」も生成するのでこれを利用

  • mecab juman jumanpp などがあるが windows macOS ともにプリコンパイル されたものが存在する juman を使うことにした

    • ただし開発当初は jumanpp を利用していたが、リリースに間に合わないので 「よみ」情報を手動でキャッシュとして蓄えて利用する
  • URL 日本語形態素解析システム JUMAN

  • インストール

  • 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 (ここに登録されたものが有効になる)

yomi.dict の保守

初回の「よみ」は juman の出力結果で作成される。タイトルだけでは十分な 情報がないため十分な形態要素解析ができず、間違った「よみ」で処理される ので必要に応じて、修正作業が必要である。

考慮する点は以下のとおおり。

  • 先頭数文字が妥当であれば変更不要

  • juman 利用での問題点

    • 「夏」→「か」/「春」→「しゅん」/「花」→「か」のようになることが多い

      • ある程度はスクリプト内にハードコードして対応はしているが漏れはたくさんある
    • 漢字のままになってしまうケースがあるので 21-lyricssongs-tex-gen.rb 実行時に以下のような手動編集を促す警告メッセージを表示する

      JUMAN (一部)よみ変換できず、要手動編集
      JUMAN よみ 変 換 前 諷刺の歌
      JUMAN よみ 暫定変換後 んんん◆◆のうた
      
    • 警告メッセージが表示されたものは yomi.dict に「諷刺の歌=>ふうしの うた」のように追加登録し、再処理すれば所定の「よみ」が採用される

  • 現状の「よみ」情報は、myYomiDictList.rb で表示することができるので yomi.dict にリダイレクトしてもよい

  • 登録したもののチェックは以下のような方法で確認できる

    ruby scripts/myYomi.rb  'ヴェネツィアの歌I' '笑いと涙' 竪琴弾き'
    

TODO

  • 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 化

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published