2015年8月1日土曜日

英語または日本語のフォント指定を一括変更

Microsoft Word では、選択した範囲のフォントを一括して別のフォントに変更することができる。以下、その方法。

文書内の選択範囲にある英字のうち、フォントが「txtt」となっているものを「CourierNew」に一括して変更する例を以下に示す。

メニューから「編集」>「置換」を選ぶ。下図のダイアログが開く。

図1 「検索と置換」ダイアログ

"A" で示した「検索する文字列」と書かれた入力欄をクリックし、そこにカーソルを表示させる。次いで下方の "B"「書式」ボタンをクリック。下図のダイアログが開く。

図2 「検索する文字」ダイアログ

赤丸で囲った「英数字用のフォント」欄に変更の対象としたいフォント名を入力、もしくはプルダウンメニューから選択する。
次に「OK」ボタンを押す。すると図1の画面に戻る。

このとき、図1 "C" の部分に今ほど設定したフォント名が表示されているはず。

今度は 図1の "D" で示した「置換後の文字列」と書かれた入力欄をクリックし、そこにカーソルを表示させる。次いで下方の "B"「書式」ボタンをクリック。下図のダイアログが開く。

図3 「置換後の文字」ダイアログ

赤丸で囲った「英数字用のフォント」欄に変更後のフォント名を入力、もしくはプルダウンメニューから選択する。
次に「OK」ボタンを押す。すると図1の画面に戻る。

このとき、図1 "E" の部分に今ほど設定したフォント名が表示されているはず。

以上で設定は終了。図1の「すべて置換」ボタンをクリックすればフォントの変更が実行される。

2015年7月29日水曜日

TeXをAcrobat経由でWordに変換

 TeX使いの筆者は MicrosoftWord なんて使いたくないのだが,同僚に「みんなから集めたファイルを統合して報告書を作るので .docx 出してちょ。ヨロシク!」と言われた日には渋い顔して「オケ」と言わざるを得ない。

 PDFで渡したって相手にそれをどうにかするスキルが無い事は分かりきっているし,「TeXにしよう,TeXに!」と言い張れば結局仕事が自分の方に回ってくることも目に見えているのだ。

 Word を使って一から文章を書き起こすときはそれほど苦痛でもないのだが,既に TeX で書いた文書がある場合は厄介だ。せっかく手持ちの資源があるのだから,それを最小の労力で Word に変換したい,とつい考えてしまうのだが, TeX→Word の変換をする頻度が低く,作業が自分なりに定型化出来ている訳ではないので,その時々に思いついた方法で変換してみる。ところが,一発で変換できる事など皆無で,変換したWordファイルには体裁の面で色々な不都合が生じる。結局は,その不都合を修正し,成形し直すのに多大な労力を使うハメに陥ってしまう。なんでこんなに面倒なんだ!一から作った方が早かったんじゃないか!?となる。TeX を Word に変換するという選択が適切かどうか,判断が難しいのだ。

 定型化できていないのには理由があって,過去の経験からすると,どうやら文書の様態に応じて変換方法を変えた方が良さそうな気がするのだ。日本語だけの単純な文書ならさして問題は無いが,数式や記号が多い場合,図表がある場合,レイアウトが特殊な場合,などは大抵変換のあとに面倒な作業を強いられたという嫌な経験しかない。

今回は数式や PSTricks で描いた図面を含む TeX 文書を Word に変換する必要が生じたのだが,どうやって変換しようかと考えていた時にふと思い出したのが,Adobe Acrobat のメニューに
 「ファイル」>「別名で保存」>「Microsoft Word」
というのがあったこと。これを試しに使ってみたところ,思いのほか使えることが判明したのでその結果を記録しておく。

 使い方は簡単で,TeXソースを
  foo.tex ー(dvips)→ foo.ps ー(ps2pdf)→ foo.pdf
としたあと,できたPDFファイルを Adobe Acrobat で開き,メニューから
 「ファイル」>「別名で保存」>「Microsoft Word」>「Word文書」
を選ぶ。保存用のダイアログが開くので保存ボタンをクリックすれば良い。これで foo.doc というファイルができる。

 できたファイルを Word で開いてみて驚いた。予想以上の出来なのだ。サンプルとして TeX のソースから作成した PDF と,それを変換して得られた DOC をアップしたので見比べて欲しいのだが(DOCの方はダウンロードして Word で開かないと正常に表示されない),DOC はかなり忠実に元のPDFを再現している。

 特筆すべきはPSTricksを使って作成した図面の変換結果。今回はEPS形式で保存した図面を¥includegraphicsで取り込んであるのだが,それが変換後の.docでは文字データと直線や曲線などの図形データにきちんと切り分けられており,その上で元の図が忠実に再現されている。文字は改行やタブを駆使して図面上の所定位置に適切に配置されており,テキストデータとして編集可能。フォントやサイズが変更できる。図形データはオートシェイプに変換されており,これも線の太さを変えたり変形したりという編集ができる。

 図を含む文書をWordに変換するのなら,この方法を使わない手はないだろう。

 その他の点を見ていこう。テキストの色はちゃんと保持されているし,図やキャプションの位置も適切だ。コードを囲んだ枠の大きさが少しおかしいが,この程度の修正ならどうってことはない。

 あとはフォントだが,PDFでは日本語のフォントを HiraMinPro-W3,英語フォントをNimbusRomanNo9 にしておいたものが MS明朝 と TimesNewRoman に置き換えられている。一方,ゴシック体は HiraKakuPro-W6 だったのが MS明朝の太字になっている。MSゴシックになっていないのは残念だが,努力は買おう。

 英字の斜体については情報が失われてしまっている。あとプログラムのコードを書くのに使った等幅フォントだが,Wordではtxttという名前のフォントになっている。この名前はTeX側で指定したフォントの名前がそのまま引き継がれたもので,Windows のシステム内には存在しないフォントだ。実は,txttという名前が残っているのは大変有難いことで,置換機能を使えばこの txtt を Word で使える等幅フォント(たとえばCourieNew)に一括置換できるのだ。

ついでなので、フォントを別のフォントに一括して指定しなおす方法を「英語または日本語のフォント指定を一括変更」にまとめておいた。この方法は実際には存在しないフォントを別のフォントに置換する場合でも有効で、その際はリンク先の図2に示した入力欄に,存在しないフォントの名前を手打ちで入力すれば良い。

TeX側で指定したフォントの名前がそのまま Word に引き継がれる事を応用すれば、もしかしたらTeX側でイタリック体をスラント体に変えるとか,フォント名を別のに変えるとかしておけば,Word側に存在しないフォント名が引き継がれ,それを足がかりに置換できるかもしれない。今回はそこまでする必要がないので,持ち越し課題としよう。

 難点を挙げるとすれば,一行ごとに改行コードが入っていること位か。それも全ての改行コードを検索して削除し,その後必要なところだけ改行しなおす,という力業でなんとかなりそうだ。

 総合的に見て,この方法で変換したWordドキュメントなら,体裁や不具合の修正にそれ程労力を必要とすることは無いだろう。

もうひとつ。AdobeAcrobat は PDF から rtf を作る事もできる。メニューから
 「ファイル」>「別名で保存」>「その他のオプション」
                     >「リッチテキスト形式」
とすればよい。rtf に変換すれば OpenOffice や LibreOffice でもそれなりに読めるかも知れない,と思って変換したのがこれ(RTF形式)。OpenOffice Writer で開いてみたが,結果はあまり芳しくなかった。図が表示されないなど,再現性がいまひとつ。Microsoft Word で rtf を開いたらちゃんと図が表示されるので,データが失われている訳ではない。Writer の変換エンジンが対応していないのだろう。LibreOffice は持っていないのでどうなるかは不明である。

 さて,このエントリを書いている最中にふと思いついたことがある。epsファイルをAcrobatで読み込み,docに変換するとどうなるんだろうか?

さっそくやってみたところ, 変換した doc ファイルは Word や PowerPoint のファイルに図として貼り付け可能であることが分かった。しかも,直線,曲線などの図形データはオートシェイプとして再編集が可能なのだ。これって,PowerPoint で資料作る時でも,図面は PSTricks や xypic で描いていいって事ですよね? なんかちょっとウキッとした。

という訳で,詳細な手順は別エントリ「epsをワードやパワポで再利用 ー ベクトルデータを失わない方法」にまとめることにしたい。