威沙 通常版v23.6
威沙 通常版v23.6をリリースしました。
変更点は次の通りとなります。
■機能追加
●ifmatch/ifunmatchタグ実装
義値に指定の文字列が含まれているか、いないかをを判定するifmatch /ifunmatchタグを実装しました。
<define name="TEST1" value="tabito_kazeno"/>
<ifmatch name="TEST1" value="kazeno"/>マッチ!</ifmatch>
<define name="TEST2" value="tabito_kazeno"/>
<ifunmatch name="TEST2" value="izuna"/>アンマッチ!</ifunmatch>
なお、大文字・小文字は無視して判定します。
●全ページノンブル付与機能実装
中表紙や目次、奥付にもノンブル・柱を付与する『全ページノンブル付与』を実装しました。
隠しノンブルが不可という印刷所向けに実装した機能となります。

この対応に伴い、威沙本体だけでなく、テンプレート側にも改修が入っていますのでご注意ください。
※既存動作の互換性には問題ありませんが、全ページノンブル付与対応時に一部機能(nopagenum)が実質機能しなくなります。

■仕様変更
●全ページノンブル付与機能実装に伴うテンプレートの仕様変更
全ページノンブル付与対応のため、テンプレート関連の機能に対して次の修正・変更が行われました。
もし既存のカスタマイズしたテンプレートを『全ページノンブル付与対応』にする場合は、標準テンプレートを参考に『ノンブル・柱に背景色を設定』を適用してください。
(無くても動作しますが、挿絵のノンブルが見えづらくなる可能性があります)
・nopagenumタグ無効化
全ページノンブル付与を有効にした場合、実質nopagenumタグの効果が無効になります。
・テンプレートからnopagenumタグ削除
テンプレートにはnopagenumタグが必須でしたが、これが不要になりました。
※有っても無くても動作に影響をしなくなりました。
・ノンブル・柱に背景色を設定
背景色はプロファイルの背景色設定を参照するようにしています。
※全ページノンブル付与時、挿絵に対してノンブルを付与する際、挿絵と混ざらないようにするための対応となります。

●性能向上施策適用
全ページノンブル付与対応に伴い、開発版に適用していた性能向上施策のコードをマージしました。
※全ページノンブル付与対応の前提となるコードのための対応です。
既に二年以上も開発版で実績のあるコードのため問題にならないと判断していますが、何かあればご連絡をお願いします。(挿絵の配置関連に影響します)
■バグ修正
●GUI版が重くて使えない状態になる問題の対応
GUI版にて大量のフォルダ・ファイルがあるところに変換元ファイルがあった場合に操作が重くなる、またPDF変換がとても遅くなる現象についての対応を行いました。
これらの原因はローカルプロファイル・ローカルテンプレート・ローカルフォントの監視処理が大量のファイルを処理するため操作やPDF変換に悪影響を及ぼしていました。
監視ファイル数に制限を設け、一定数(現時点では暫定200個)以上のファイル・フォルダが監視対象となった場合は監視処理を停止するように処理を変更しました。(エラーメッセージが表示されます)
また、PDF変換時には監視処理を一旦停止するなどの対応を盛り込みました。
●濁点置換方式をbindにすると濁点の位置がズレる問題の修正
詳細設定で濁点置換方式をbindモードに設定した場合、デフォルトフォントである源暎こぶり明朝で濁点の位置が異なる問題があったため、修正しました。
Web版での濁点文字対応時にGUI/CLI版での対応との不整合があり、問題が発生していました。
このため、GUI/CLI/Web版の実装を統一し、テキスト⇒TNF変換時のTNF形式を変更しました。(ifmatchタグでフォント種別を判定する方式に変更)
なお、bindによる濁点対応が無い場合は定義がTNFファイルに出力されません。
また、コマンドライン版のデフォルトがbindになっていたため、GUI版と合わせて外字対応をデフォルトに変更しました。
●青空文庫ファイル変換で挿絵が正常に抽出できない場合がある問題の修正
青空文庫ファイル変換時に挿絵が見つからないというエラーでPDF変換がエラーとなる問題の修正を行いました。
挿絵の指定文字列に『(』が含まれている場合、ファイル名の切り出し位置が特定できず、指定文字列全体がファイル名として扱われていたためでした。
ファイル名の切り出しについて処理を修正することで回避しました。
●欧文文字対応修正
欧文文字のうち『WinAnsiEncoding』に含まれている『ç』『ã』などが正常に処理できていなかった問題を修正しました。
『WinAnsiEncoding』範囲外の欧文文字については別対応とする方針としております。なお、フォントに寄ってはすべての文字が表示されない場合もありますので、ご注意ください。
WinAnsiEncoding参考:
https://eclecticgeek.com/dompdf/debug_tests/charsetsupport.htm
