« 2018年1月 | トップページ | 2018年3月 »

2018年2月の2件の記事

DM200アウトライン記号&青空文庫ルビの一太郎変換マクロ

DM200と一太郎

 小説創作ではpomera DM200で小説を書き、一太郎で組版という手順で作業しています。その際、DM200上では

ルビ|親字《ルビ》
傍点[#「○○」に傍点]

といった青空文庫記法のマークアップとDM200用のアウトライン記号を併用しています。「.(ピリオド)」の数で階層深さを指定する形です。以下にサンプルを示します。

.タイトル
..第一部
...第一章
あああああ親字《ルビ》
|あああああ親字《ルビ》
ここに傍点[#「傍点」に傍点]を振る
[#ここから4字下げ]いいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいいい。[#ここで字下げ終わり]
...第二章
....第一節
...第三章
..第二部
...第四章
...第五章
..あとがき

 一太郎2018ではマークアップルビの読み込みがある程度サポートされたのですが今ひとつ痒いところに手が届きません。というわけで、自前の記法混在環境に合わせたマクロを作ることにしました。ブログ『All season with my Dear』様の「一太郎で青空文庫ルビ」という記事で公開されていたマクロを元に少しだけ改造したものです。

DM200アウトライン記号と青空ルビの一太郎用変換マクロ

 以下のGIFアニメのように動作するマクロです。上のサンプルテキストで試してみました。

Aozora_macro

  • 青空文庫ルビ、傍点、字下げ記号の一太郎形式化
  • DM200のアウトライン記号の一太郎見出し形式化
    ※階層ひとつめはタイトル、見出しはふたつめ以降に使用

以下にマクロのコードを貼っておきます。


!! --- 青空文庫のテキストにルビを振る ---
!! ---        for 一太郎2018          ---
!! ---          ver1.31b               ---
!! ---   2010/4/25 Copyright Tsukasa   ---
!! ---   2018/3/3 Modified Tou Asaya   ---
!!
!! 青空文庫形式のルビを振ります。
!!ver 1.20 傍点の処理を追加・NS画面用のスタイルに変更
!!ver 1.30 ルビの処理を訂正。長いルビにも対応した。まだエラーを起こすことがある。
!!         字下げの処理を追加した。
!!ver 1.32b DM200タイプ見出し処理追加。PDF出力削除。
!!     地付き、地上げ、縦中横処理追加。
!!↓↓ルビの処理↓↓
!!↓↓長い単語のルビの処理↓↓
 declare variable %ページ(2) 
 declare variable %行(2) 
 declare variable %字(2) 
文書頭()
 %ret(1) =1
 %i = 1
 do until %ret(1) =0
  %ret(1) = 正規表現検索("|",1)
  if(%ret(1)>0 and %i >0) then 
   %ページ(1)= GetPage()
   %行(1) = GetRow()
   %字(1) = GetColumn()
   挿入("★") 
   %ret(2) = 正規表現検索("《[^》]+》",1)
   if(%ret(2)>0) then
    %ページ(2)= GetPage()
    %行(2) = GetRow()
    %字(2) = GetColumn()
    %ルビ = GetString()
    try
   !!エラー発生時はこのルビ処理は飛ばす
     if(MaxSize(%ルビ)>1)then
      %ルビ(1) = %ルビ(1) & %ルビ(2)
     end if
     削除()
     %字数=Len(%ルビ(1))
     %ルビ(1) = Mid(%ルビ(1),2,%字数-2)
     範囲モード(1)
     ジャンプ(%ページ(1),%行(1),%字(1))
     範囲始点()
     ジャンプ(%ページ(2),%行(2),%字(2))
     範囲終点()
     ルビ( 1, %ルビ(1),1)
    exception
     case else
      挿入("★")
    end try
   end if
  end if 
  %i = %i+1
 loop
!!↑↑長い単語のルビの処理↑↑
!!↓↓短い単語のルビの処理↓↓
文書頭( )
%ret = 1
do until %ret = 0
 %ret = 正規表現検索( "《.+?》",1 )
 if(%ret<>"")then
  %ルビ = GetString(  )
  !!エラー発生時はこのルビ処理は飛ばす  try
  try
   if(MaxSize(%ルビ)>1) then 
    %ルビ(1) = %ルビ(1) & %ルビ(2)
   end if
   %字数 = Len(%ルビ(1))
   %ルビ(1) = Mid(%ルビ(1),2,%字数-2)
   挿入("★")
   LeftWord( 2 )
   範囲モード( 6 )
   範囲始点( )
   範囲終点()
   ルビ( 1,%ルビ(1) ,1)
  exception
   case else
    挿入("★")
  end try
 end if
loop
文字全置換("★",,3,0,0)
!!↑↑ルビの処理↑↑
!!↓↓傍点の処理↓↓
文書頭( )
%ret = 1
do until %ret = 0
 %ret = 正規表現検索( "[#「[^」]+」に傍点]",1 )
 if(%ret<>"")then
  %ルビ = GetString(  )
  if(MaxSize(%ルビ)>1) then 
   %ルビ(1) = %ルビ(1) & %ルビ(2)
  end if
  %字数 = Len(%ルビ(1))-8
  カット()  
  範囲モード(1)
  範囲始点( )
  前文字(%字数)
  範囲終点()
  傍点(2)
 end if
loop
!!↑↑傍点の処理↑↑
!!↓↓縦中横の処理↓↓
文書頭( )
%ret = 1
do until %ret = 0
 %ret = 正規表現検索( "[#「[^」]+」は縦中横]",1 )
 if(%ret<>"")then
  %ルビ = GetString(  )
  if(MaxSize(%ルビ)>1) then 
   %ルビ(1) = %ルビ(1) & %ルビ(2)
  end if
  %字数 = Len(%ルビ(1))-9
  カット()  
  範囲モード(1)
  範囲始点( )
  前文字(%字数)
  範囲終点()
  縦中横( )
 end if
loop
!!↑↑縦中横の処理↑↑
!!↓↓字下げの処理↓↓
文書頭()
%ret=1
do until %ret = 0
 %ret = 正規表現検索("[#ここから.字下げ]",1)
 if(%ret > 0 ) then
  %文字 = GetString()
  %数 = han(Mid(%文字(1),7,1))*2
  if(%数>0)then
   削除()
  else
   continue do
  end if
  %ページ(1)= GetPage()
  %行(1) = GetRow()   
  %ret = 正規表現検索("[#ここで字下げ終わり]",1)
  %ページ(2)=GetPage()
  %行(2) = GetRow()
  削除
  ジャンプ(%ページ(1),%行(1),1)
  範囲モード(2)
  範囲始点()
  ジャンプ(%ページ(2),%行(2),1)
  範囲終点()
  インデント(1,%数)
 end if
loop
!!↑↑字下げの処理↑↑
!!↓↓一行だけの字下げの処理↓↓
文書頭()
%ret=1
do until %ret = 0
 %ret = 正規表現検索("[#.字下げ]",1)
 if(%ret > 0 ) then
  %文字 = GetString()
  %数 = han(Mid(%文字(1),3,1))*2
  if(%数>0)then
   削除()
  else
   continue do
  end if
  インデント(1,%数)  
 end if
loop
!!↑↑一行だけの字下げの処理↑↑
!!↓↓地付きの処理↓↓
文書頭()
%ret=1
do until %ret = 0
 %ret = 正規表現検索("[#地付き]",1)
 if(%ret > 0 ) then
  %文字 = GetString()
  %数 = Len(%文字(1))*2
  if(%数>0)then
   削除()
  else
   continue do
  end if
  %ページ(1)= GetPage()
  %行(1) = GetRow()
  行頭()
  %ページ(2)=GetPage()
  %行(2) = GetRow()
  ジャンプ(%ページ(1),%行(1),1)
  範囲モード(2)
  範囲始点()
  ジャンプ(%ページ(2),%行(2),1)
  範囲終点()
  右寄せ( )
 end if
loop
!!↑↑字付きの処理↑↑
!!↓↓地から*字上げの処理↓↓
文書頭()
%ret=1
do until %ret = 0
 %ret = 正規表現検索("[#地から.字上げ]",1)
 if(%ret > 0 ) then
  %文字 = GetString()
  %数 = han(Mid(%文字(1),6,1))*2
  if(%数>0)then
   削除()
  else
   continue do
  end if
  %ページ(1)= GetPage()
  %行(1) = GetRow()
  行頭()
  %ページ(2)=GetPage()
  %行(2) = GetRow()
  ジャンプ(%ページ(1),%行(1),1)
  範囲モード(2)
  範囲始点()
  ジャンプ(%ページ(2),%行(2),1)
  範囲終点()
  右寄せ( )
  インデント(1,0,%数)  
 end if
loop
!!↑↑一行だけの字下げの処理↑↑
!!↓↓改丁の処理↓↓
!!↓↓※改丁は一太郎では改ページと判別せず↓↓
文書頭()
%ret=1
do until %ret = 0
 %ret = 正規表現検索("[#改丁]",1)
 if(%ret > 0 ) then
  %文字 = GetString()
  %数 = Len(%文字(1))*2
  if(%数>0)then
   削除()
  else
   continue do
  end if
  改ページ(1)
 end if
loop
!!↑↑改丁の処理↑↑
!!↓↓改ページの処理↓↓
文書頭()
%ret=1
do until %ret = 0
 %ret = 正規表現検索("[#改ページ]",1)
 if(%ret > 0 ) then
  %文字 = GetString()
  %数 = Len(%文字(1))*2
  if(%数>0)then
   削除()
  else
   continue do
  end if
  改ページ( 1 )
 end if
loop
!!↑↑改ページの処理↑↑
!!↓↓改段の処理↓↓
文書頭()
%ret=1
do until %ret = 0
 %ret = 正規表現検索("[#改段]",1)
 if(%ret > 0 ) then
  %文字 = GetString()
  %数 = Len(%文字(1))*2
  if(%数>0)then
   削除()
  else
   continue do
  end if
  改段( 1 )
 end if
loop
!!↑↑改段の処理↑↑
!!↓↓見出しの処理↓↓
文書頭()
%ret=1
do until %ret = 0
 %ret = 正規表現検索("^\.+?",1)
 if(%ret > 0 ) then
  %文字 = GetString()
  %階層数 = len(%文字(1))
  if(%階層数>0)then
   削除()
  else
   continue do
  end if
  %ページ(1)= GetPage()
  %行(1) = GetRow()
  if(%階層数 = 2 ) then
    SetParagraphStyle( 1, "大見出し(オートスタイル)" )
  else if(%階層数 = 3 ) then
    SetParagraphStyle( 1, "中見出し(オートスタイル)" )
  else if(%階層数 = 4 ) then
    SetParagraphStyle( 1, "小見出し(オートスタイル)" )
  else if(%階層数 = 5 ) then
    SetParagraphStyle( 1, "小見出し2(オートスタイル)" )
  else if(%階層数 = 6 ) then
    SetParagraphStyle( 1, "小見出し3(オートスタイル)" )
  else if(%階層数 = 7 ) then
    SetParagraphStyle( 1, "小見出し4(オートスタイル)" )  
  else if(%階層数 = 8 ) then
    SetParagraphStyle( 1, "小見出し5(オートスタイル)" )
  end if
 end if
loop
!!↑↑見出しの処理↑↑

*マクロを使用する前に一度文書を[保存]してください。

|

小説創作のための一太郎2018プレミアム

一太郎2018プレミアム購入

 一太郎をバージョンアップしました。2016から2018のプレミアム版へです。

 プレミアム版は

  • 一太郎
  • 広辞苑第七版 for ATOK
  • イワタ書体
  • 詠太
  • 花子
  • Shuriken
  • JUST PDF

のセットです。お目当ては小説創作対応の進んだ一太郎本体とテキスト読み上げ機能の詠太、久々の花子でした。

ダウンロード&インストール

 購入はJust MyShopのダウンロード版。Wi-Fiが遅かったのか本体ダウンロードに三十分近くかかってしまいました。インストールも同じくらいかかった気がします。少し古めとはいえCore i3のノートPCとSSDドライブで回線も光なのに……。
プレミアム版パッケージを全部ひとまとめにインストールするメニューなどもあってワンクリックでインストールが終了するのは便利でした。

瑛太

 楽しみにしていたテキスト読み上げ機能・瑛太。一昔前の不自然な声ではなく違和感の(比較的)少ない声で読み上げてくれます。朗読を楽しむという用途にはまだまだですが、校正機能の一つとして利用するなら効果的。黙読で校正を試みても意外に間違いに気づけませんが瑛太で読み上げながら文章を追うと目視で気付きにくい誤字が拾えます。また、瑛太では読み上げ速度が機械的に与えられるため、黙読で読み飛ばしてしまいがちなところをしっかり安定した速度でチェックできることも校正精度を上げる気がします。

一太郎:ルビ付テキストの読み込み

 一太郎2017から強化された機能。青空文庫的な《》ルビ記号のついた部分をテキスト読込時に一太郎の整形済みルビにしますよ、という機能です。

Ichitaro2018_01

 対応している記号が
|(半角のパイプ)ルビを振りたい文字《ルビ》  ルビを振りたい文字ルビ
となっていて「どこで使われてるルールだろう?」と疑問に。調べてみました。

フォーマット記号結果
青空文庫|(全角) (字種境界までの場合省略可)ルビを振りたい文字《ルビ》ルビを振りたい文字ルビ
小説家になろう|(全角)もしくは|(半角)(漢字のみの場合省略可)ルビを振りたい文字《ルビ》ルビを振りたい文字ルビ
カクヨム|(全角)もしくは|(半角) (漢字のみの場合省略可)ルビを振りたい文字《ルビ》ルビを振りたい文字ルビ
エブリスタ|(全角)もしくは|(半角) (漢字のみの場合省略可)ルビを振りたい文字《ルビ》ルビを振りたい文字ルビ
アルファポリス#ルビを振りたい文字__ルビ__#ルビを振りたい文字ルビ
pixiv[[rb:ルビを振りたい文字 > ルビ]]ルビを振りたい文字ルビ

 全角|も対象になるとより実用的かな。贅沢を言うなら青空文庫の

  • 見出しタグ[#「○○」は×見出し]を段落スタイルに
  • 傍点

あたりにも対応して欲しいところ。
 あと一太郎の以前からの仕様なのですがCopy&Pasteではなく[ファイルの読み込み]からテキストを読み込む場合はShiftJIS限定。文字コードの自動判別が難しいのはわかるのですがさすがにそろそろUnicodeに対応しても良い頃合いです。utf8/16/32やBOMの有無を問わず。

一太郎:ソプラウィンドウDM200連携

 ポメラを愛用している人には嬉しいソプラウィンドウ経由の接続。新たにDM200にも対応していました。

  • 上の「ルビ付きテキストの読み込み」が適用されないらしい
  • ポメラ上にあるのがBOMなしのutf8テキストだと文字化けする

一太郎:文書校正

 以前は小説で一太郎の機械校正をかけると整っていない口語や擬音語が誤指摘だらけでうんざりさせられがちでした。それでも機械校正の強力さは魅力で愛用していた機能です。そのあたりの煩わしさが2017版から改善されていると知って試すのを楽しみにしていました。実際試してみると、うざくない! これなら十分に小説創作ユーザにお勧めできます。
 もちろん人力校正も欠かせないですが機械校正は人の眼では見つけづらい間違いを拾ってくれるので人力と重ねて利用することでよりミスの少ない原稿が作れます。おすすめ。ちょーおすすめ。詠太を併用した校正も重ねておすすめ。


ATOK2018

 普段ポメラを持ち歩き小説を書いていることもあってパソコン上での文字入力はあまりせず活躍の場面が少ないです。それでも2016版より動作も軽く変換効率もかなり改善されている気がします。MS-IMEでも不満のない身だったりするのであてにならないかもしれません。

ATOK:広辞苑第七版

 この記事を書くのにATOK版広辞苑を積極的に利用してみました。同義語もうまく引っ張ってきてくれたりるようになっているあたりは楽しいです。画像も入り語彙も多いです。
 小説創作向けのATOK版辞書ツールでのお気に入りは明鏡国語辞典です。テキストライティングの友として言葉の使い分けや文法に特化した明鏡は使い出があります。

一太郎&花子:モジグラフィ

 一太郎2016から搭載されていたモジグラフィ機能ですが今回初めて試しました。

Ichitaro_mojigraphy

 テンプレから選んでタイトルを入れるだけでかっこいいタイトル文字ができます。これイイ。デザインをいじりたいときは花子モジグラフィ+でテンプレから編集していけば細かく調整できました。かなり使えるかも。


花子

 visioあたりがライバルの感じでしょうか。パーツを使って図を組み上げていくのが得意なタイプのようです。フローチャートや回路図の部品が用意されていたり、ビジネス文書や学校の配布プリント用らしきテンプレートが用意されている、と紹介すると想像できるのではないかと思います。UIもきれいに整理されていてMS-DOS時代を引き継ぐ混沌とした一太郎と比べると非常にすっきりとわかりやすくなっています。
 自由なベジェ曲線も描けるのでInkscapeいらずになるかも。このあたりはもう少し使い込んでみないとわからない感じ。

花子と一太郎

 2018年5月の文学フリマ東京用に一太郎と花子の組み合わせで図の多めなフリーペーパーを作ってみました。

Freepaper001 Freepaper002 Freepaper003 Freepaper004

 四ページ、一枚を二つ折り・両面印刷したペーパーです。題字は花子モジグラフィ+をベースに少しだけ加工したもの。図も花子の部品と基本図形の組み合わせ。楕円軌道リングの形だけ座標からのプロットです。
 作業しながら思ったのですが、一太郎と組み合わせる花子は快適です。文字グラフィも頭の中に抱えているデザインのストックの少ない字書きには雛形が提示されるのがとても便利。Inkscapeに比べるとレスポンスも軽快ですし、何より一太郎に図を貼る時にビットマップのdpiマッチを気にしなくて良いベクトル図形というのが気に入りました。

感想まとめ

 一太郎2016、あるいはそれ以前のバージョンからの更新で一番気に入ったのは校正関連機能です。擬音語の校正指摘抑制+詠太で校正作業がとても捗ります。自身の書く文章は間違いが少ない、あるいは目視校正で完璧と思っている人にこそ試して欲しい機械校正。
 花子の印象も大きく変わりました。広辞苑第七版やフォント、詠太を目当てにプレミアム以上のバージョンを買った人も一度花子を試してみるのをお勧め。

 記事は少しずつ書き足していくつもりです(2/18)


|

« 2018年1月 | トップページ | 2018年3月 »