威沙 通常版v24.6
威沙 通常版v24.6をリリースしました。
24周年記念リリースとなる、今回のリリースでは文字回転機能、及びnewpageタグの機能強化を実装しています。
■仕様変更
●折り本出力機能実装変更
折り本出力機能の実装を変更し、外部ライブラリを使用したPDFファイルの再変換処理による実装に置き換えました。
(4ページ・8ページ・16ページ折り本出力が該当)
これは文字回転機能をサポートするための事前準備としての対応でした。
なお、これに伴い、折り本出力機能での暗号化などの認証系機能は非サポートとなりました。
■機能追加
●文字回転機能実装
文字を一文字単位で任意角度に回転できる機能を実装しました。
fontタグ及びbindタグに『rotate』オプションが追加されており、このオプションに角度を指定すると反時計回りに回転します。
なお、文字列に適用するとその範囲の文字列の一文字単位で回転します。(文字列まるごとの回転はしません)
<fontmap name="s" file="fonts/ShipporiMincho-Bold.ttf"/>
<font name="s">
<bind x="10%" y="-70%" size="60%" color="#0011ff" char="雪" rotate="360">
<bind x="-50%" y="-50%" size="60%" color="#0022ff" char="と" rotate="-40">
<bind x="-80%" y="5%" size="60%" color="#0044ff" char="風" rotate="-80">
<bind x="-70%" y="75%" size="60%" color="#0066ff" char="と" rotate="-120">
<bind x="-20%" y="105%" size="60%" color="#0088ff" char="彼" rotate="-160">
<bind x="50%" y="105%" size="60%" color="#00aaff" char="方" rotate="-200">
<bind x="100%" y="70%" size="60%" color="#00ccff" char="の" rotate="-240">
<bind x="100%" y="10%" size="60%" color="#00ddff" char="物" rotate="-280">
<bind x="75%" y="-50%" size="60%" color="#00eeff" char="語" rotate="-315">
<bind char="☆" color="#0022ff" rotate="15">
<bind char="☆" color="#0044ff" rotate="30">
<bind char="☆" color="#0066ff" rotate="45">
<bind char="☆" color="#0088ff" rotate="60">
<bind char="☆" color="#00aaff" rotate="75">
<bind char="☆" color="#00ccff" rotate="90">
<font color="#00ccff" rotate="0">
☆
</font>
</bind></bind></bind></bind></bind></bind></bind></bind></bind></bind></bind></bind></bind></bind></bind>
<font rotate="0" size="150%">雪と風と彼方の物語</font>
<br/>
<font rotate="35">風野旅人</font>
</font>
<br/>
<br/>
<font color="#ff0000" rotate="0">あ</font>
<bind char="□"><font color="#ff0000" rotate="0">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="5">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="10">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="20">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="30">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="40">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="50">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="60">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="70">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="80">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="90">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="100">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="110">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="120">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="130">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="140">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="150">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="160">あ</font></bind>
<bind char="□"><font color="#ff0000" rotate="170">あ</font></bind>
<font color="#ff0000" rotate="45">あ</font><br/>
●字間調整機能実装
文字回転機能実装に伴い、英文文字などと組み合わせる際に時間を調整したい場合があることを想定して、fontタグに字間調整オプション『spacing』を実装しました。
spacingに『-10%』などと指定するとフォントサイズをベースに字間を調整します。
なお、行間とは異なり、文字と文字の縦の位置調整ですのでご注意ください。
abcdefg<font rotate="-90"><kerning size="-15%">ω</kerning></font>aaaaa<br/>
abcdefg<font spacing="-15%" rotate="-90">ω</font>aaaaa<br/>
●newpageタグ関連機能拡張
TNF『newpage』タグ、及びPreTNFタグ『#NEWPAGE#・#改ページ#・#改頁#』の拡張機能を
実装しました。
– newpageタグ『forward』オプション追加
newpageタグに改ページ位置を調整するforwardオプションを実装しました。
このオプションは改ページ後に、指定した左右いずれかのページではない場合は、追加で改ページを実行して、指定されたページから開始させる機能となります。
記述例:
<newpage forward="left"/> 左開始
<newpage forward="right"/> 右開始なお、このオプションはテンプレートでは意図した動作にならないため、テンプレートでの使用時はオプションが無効化されますのでご注意ください。
- #NEWPAGEタグ#拡張指定追加
PreTNFのNEWPAGEタグは、後方互換性のため強制改ページオプション『force』が有効になっていますが、この場合ページ開始位置でも改ページが必ず発生するため、多重に改ページがされることになります。
この挙動では不都合がある(=通常のnewpageと同じ挙動にしてほしい)という要望があり、#NEWPAGE#関連タグについて機能拡張を実装しました。
また、先のforeardオプションもPreTNFから使用できるように拡張しています。
記述例:
! 空ページ無効化
#NEWPAGE#NOBLANK#
#NEWPAGE#NB#
#改ページ#空無#
#改頁#空無#
! 空ページ有効化(通常の#NEWPAGE#と同じ挙動)
#NEWPAGE#BLANK#
#NEWPAGE#B#
#改ページ#空有#
#改頁#空有#
! 改ページ左送り
#NEWPAGE#FORWARDLEFT#
#NEWPAGE#FL#
#改ページ#左送#
#改頁#左送#
! 改ページ右送り
#NEWPAGE#FORWARDRIGHT#
#NEWPAGE#FR#
#改ページ#右送#
#改頁#右送# なお、#NEWPAGE#FL#・#NEWPAGE#FR#はforceオプションを有効化しないため、通常の#NEWPAGE#とでは少々挙動が異なります。
(有効にした場合は無駄な空ページが増えるため)
同じ挙動にしたい場合は、『#NEWPAGE#FL,B#』などと複合指定で出来ますので、強制改ページとページ送りを有効にしてください。
こちらの機能については立蒼さんが詳細を元TwitterのXへ記載して頂いていますので、こちらもご確認下さい。
