パーソナルツール
現在位置: 創作:グレンダイザー関係 / 製作環境に関するメモ

製作環境に関するメモ

 裕川の使っている製作環境。Macな上にTeXというのは、ファンフィク書きとしてはどマイナー環境だとは思うが、まあメモしておく。WindowsほどMacは縦書きワープロの種類も数も充実してないので、やってみたい人は参考にしてください。つか、TeXnitianへの道は厳しいし、こんなことに熱中していたら創作の方ががちっとも進まない罠……orz。

 現在、元の文字コードにshift-jisを使う環境からUTF-8を使う環境に移行中。それぞれのコードで使うツールが違うので、【】で示した。

小説製作環境・ツールなど

  • ハードウェア PowerBook G4 (1GHz)
  • OS Mac OS X 10.4
  • pTeX (パッケージはここからダウンロード) 【shift-jis】
  • プレビュア Xdvi【shift-jis】
  • 編集用エディタ Kacis マイノート2【shift-jis】
  • tex を呼ぶためのフロントエンド mi【shift-jis】
  • dvipdfmx(pTeXパッケージ付属)から公開用pdfにする Adobe Acrobat Professional
  • 編集用エディタ Mellel2【UTF-8】
  • TeXShop + teTeX【UTF-8】
    [改訂第4版] LaTeX2ε美文書作成入門の付録CD-ROMのものを使っている。
  • html変換 latex2html
    sourceforge.netなどで入手できる。 日本語化の方法や解説はここ
  • JEditX
    latex2htmlを通した後のhtmlファイルの修正に必要。miでもできるが、たまに落ちることがあるのでエディタは2種類用意している。なお、文字コードを変えた時の互換性チェック機能があるので便利。
  • プロット検討用ツール Bee Doc's Timeline
    登場人物の動きとか事件とかを時間軸で並べて整理するのに必須。ガントチャートベースのプロマネツールの使用も考えたが、結局シンプルなこれに落ち着いた。
  • 資料整理用ツール DEVONThink pro
    データベース管理ソフト。 見たDVDのキャプチャ画像をrtf形式のファイルに貼り付けてコメントをつけるとか、その他いろんな資料を(フォーマットを問わず)分類して放り込んでおける。関連項目も見つけやすい。
  • 玉双紙
    rtfファイルを編集できる。左右のウィンドウで別々の内容を編集でき、左右のブロックやパラグラフの対応をつけることができる。シナリオを左で入力し、シーン番号ごとに右側で本編の内容を入れて違いを見るとか、左側に欧文ドキュメント、右側に翻訳を入れるといった使い方をしている。これがないと創作やら考証やらの基礎データを作ることもできない。pdfで左右を対応させた形で出力可能。

 その他、使えそうなツールとしては、Jers Novel Writerがある。プロットやシーンの管理も同時にできそうだが……。

 アウトラインプロセッサを名乗るソフトは沢山あって、ウィンドウのどちら側かに文章の構造を表示し、見出しクリックで本文を出すという機能は共通しているのだが、これがカード型、つまりクリックしたらその項目だけが画面上に表示されて、スクロールしただけでは一つ上や下の項目にいかないというものがかなりある。これは使いにくい。一カ所見直して前後にも手を入れるなんてことがしょっちゅうあるので、つながりを確認しながら通して見ないと文章を書く作業が切れてしまう。だから、「アウトライン機能+見出しクリックでジャンプ+本文はスクロールして通しで見れる」という条件を満たすものを選ぶようにしている。

latexソースコードヘッダ部分・latex2html対応版

 latex2htmlは、縦書きには対応していないし、ふりがなパッケージなどについてもデフォルトでは対応していない。公開用の本文を縦書きtbookで出力するとしても、html化の前には、通常の横書きで標準パッケージのみを使う形にする必要がある。そこで、texソースのヘッダ部分で違いを吸収するようにしてみた。つまり、縦書きの¥rensuji命令をすっ飛ばすとか、ルビを振る¥kana{}{}の出力を変えるといったことをすればよい。これで、本文を全くいじらず、縦書きpdfとhtml化の両方に対応することができる。

 なお、裕川は、pTeX付属のtbook.clsを一部変更した tbookRH.clsを作って、縦書きpdfを製作している。

%heading
%\documentclass[a5j,twocolumn,10pt,notitlepage,openany,twoside]{tbookRH} 縦書き時ON
\documentclass[10pt,notitlepage,twoside]{jarticle} 横書き時ON

%\newcommand{\hs}{\hspace{-0.3em}} 縦書き時ON、横書き時OFF

%横組み対応 この部分は縦書きのときは全部コメントアウト
\makeatletter
\def\rensuji#1{#1}
\makeatother
\newcommand{\hs}{}
\pagestyle{empty}
%横組み対応終わり

%ラノべ文庫本だと、42字×17行=714字/ページ、全250ページで178500字ほど。

%--------------------------------------ノーマル設定。23行2段組=1104字
\setlength{\topmargin}{-5zw}
\setlength{\textwidth}{52zw} %1行24文字
\setlength{\textheight}{33zw}
\setlength{\oddsidemargin}{-2zw}
\setlength{\evensidemargin}{-2zw}
%--------------詰める場合はこちら。ただしルビで行間隔が若干変わる。
%\setlength{\topmargin}{-6zw}
%\setlength{\textwidth}{55zw} %1行26文字
%\setlength{\textheight}{34zw}
%\setlength{\oddsidemargin}{-2.5zw}
%\setlength{\evensidemargin}{-2.5zw}

%\usepackage{multicol} %段組用

%行間隔を少し狭く
\def\baselinestretch{0.8}

%圏点の指定
\def\boutenchar{%
\lower.8zw\hbox{%
\tiny $\bullet$}}

%shift-jisの時は以下をコメントアウト
\usepackage[expert]{otf}

%縦組編のパッケージ 常時ON以外は必要に応じてON。横書き時は全てOFF。
%\usepackage{furikana} 縦書き時常時ON
%\usepackage{furiknkt} 縦書き時常時ON
%\usepackage{j-uline}
%\usepackage{jundline}
%\usepackage{kochu}
%\usepackage{kyakuchu}
%\usepackage{sfdanrak}
%\usepackage{sfkanbun}
%\usepackage{shiika}
%%\usepackage{tkokugo}
%\usepackage{tnamisen}
%\usepackage{tochu}
%\usepackage{tsayusen}
%\usepackage{tundline}
%\usepackage{warichu}

%sfdanrakの指定
%\danrakuC
%\parindent=1zw
%\let\swindent=\noindent

%2段組み区切り線
\columnsep=4zw
\columnseprule=.4pt

%カウンター
\makeatletter
\newcounter{ActionNum} %シーンNo,
\newcounter{currentActionNum}
\newcounter{SubNum}
\newcounter{CurrentSubNum}
\setcounter{ActionNum}{1}
\def\Act#1{
%\subsection*{\mbox{{\bf PHASE {\thecurrentActionNum} #1}}}%htmlで横組み時使用、短めに改ページ
\setcounter{SubNum}{1}
\setcounter{currentActionNum}{\theActionNum}
\vspace{1.2em}
\mbox{{\bf ● PHASE \rensuji{\thecurrentActionNum} #1}} 横書き時ON
%\mbox{{\bf ● \hs\rensuji{P}\hs\rensuji{H}\hs\rensuji{A}\hs\rensuji{S}\hs\rensuji{E}\hs \rensuji{\thecurrentActionNum} #1}} 縦書き時ON
\vspace{1.2em}
\addtocounter{ActionNum}{1}}
\def\ActReset{
\setcounter{ActionNum}{1}}
\makeatother
%章立て
\makeatletter
\renewcommand{\thesection}{\rensuji{M}\hs\rensuji{I}\hs\rensuji{S}\hs\rensuji{S}\hs\rensuji{I}\hs\rensuji{O}\hs\rensuji{N}\hs \rensuji{\@arabic\c@section} }
\renewcommand{\section}{
\ActReset
\@startsection{section}{1}{\z@}%
{1.5\Cvs \@plus.5\Cdp \@minus.2\Cdp}%
{.5\Cvs \@plus.3\Cdp}%
{\reset@font\large\bfseries}}
\makeatother

%ページ参照(横組み時はコメントアウト) 漢数字でページを出すように変更しているので、コメントアウトすれば通常のpagerefが働く。
%\makeatletter
%\def\pageref#1{\expandafter\@setref\csname r@#1\endcsname\@SecondofTwo{#1}}
%\long\def\@SecondofTwo#1#2{\kanji#2}
%\makeatother

%横組み対応のふりがなの処理&ページ長さの設定 縦組み時はここをコメントアウト
\makeatletter
\def\kana#1#2{#1[[#2]]} ふりがな記号は何でも良いが、texの括弧記号とぶつからないものを使う。全角使用可。
\makeatother
\setlength{\textwidth}{33zw} %1行24文字
\setlength{\textheight}{50zw}
%横組み対応終わり

%タイトルとサブタイトル
\newcommand{\サブタイトル}{ここにサブタイトルを入力}
\newcommand{\タイトル}{タイトルを入力}
\newcommand{\タイトル補完}{追加があればここに入力}

\begin{document}
%\begin{multicols}{2}

%title
\markright{\protect{\small\hskip1zw\タイトル}\hfill}
\noindent
{\small \サブタイトル}

\begin{center}
{\LARGE \タイトル} \\ {\small \タイトル補完}
\end{center}

\begin{flushright}
裕川 涼
\end{flushright}
\vspace{1.8em}

¥newpage¥section{・・・・・} ¥section無しだと章立て無しシーン番号のみで構成。
¥Act{シーン1}
本文.......

\newpage\section*{あとがき(ネタバレ注意)} セクション番号無しの項目の設定方法
\markright{\protect{\small\hskip1zwあとがき}\hfill}  偶数ページ左上にセクション名をプリント

\begin{flushright} ここから奥付と改訂履歴
二〇〇X年 X月X日 ver.1

裕川 涼
\end{flushright}

%ending

%\end{multicols}
\end{document}

LaTeX2html

 当然のことながら、これらをインストールする前に、appleのウェブサイトから開発環境であるXCode(無料だがダウンロード時にデベロッパ登録が必要)をダウンロードしてインストールしておく必要がある。

  1. latex2html-2002-2-1.tar.gzとl2h-2002-2-1+jp2.0.patch.gzダウンロードする
  2. tar zxvf latex2html-2002-2-1.tar.gzを実行。パッチファイルはStuffit Expanderで展開。
  3. ターミナルを立ち上げてlatex2htmlのディレクトリに移動し、patch -p1 < と打ち込んだあと、Desktop にある l2h-2002-2-1+jp2.0.patch ファイルをターミナルにドラッグ・ドロップし、リターンを押して日本語化パッチを当てる。
  4. pTeXはshift jisコードを採用しているが、latex2htmlはshift jisだとどうしても完全には認識してくれないので、デフォルトのEUCコードのまま使用する。それでも、latex2htmlの説明ページのEUCコードが正しく判別されずに化けたりするが……。
  5. ./configure --prefix=/usr/local
    make
    sudo make install
  6. ターミナルを立ち上げて、変換したいファイルのあるディレクトリにcdする。キーボード入力だと日本語の入ったパスをうまく受け取れないので、cd とだけ入力し、半角スペースのあと、変換したいファイルのあるフォルダをターミナルにドラッグ・ドロップし、リターンを押すと移動できる。あとは、latex2html (変換したいファイル).texと打ち込んでリターンキーを押すだけ。
  7. 上記のlatex2html対応のソースで、横書き対応に書き直した後、適当なエディタを使って、日本語コードをEUC-JP、改行コードをLFにする(気付かなくてずいぶんドはまりしました……)。これをしないと、latex2htmlを通らない。また、出来上がったhtmlファイルは、エディタで開くとiso-8859と認識されるので、適当なエディタでコードの設定をEUC-JPにして再読込して保存すると、他のワープロなどで編集できるようになる。(この作業でmiは落ちるので使用不可、JEditXなら可能)。
  8. 関連情報はこのあたり

netpbmのインストール 

 latex2html単独では動作しない。まずは、netpbmを入れなければならない。

  1. netpbm-10.9.tgzをダウンロード。tar zxvf netpbm-10.9.tgzと入力して展開。
  2. cd netpbm-10.9
    ./configure
    make
  3. make を実行すると、ライブラリのリンク方法や、libjpeg等の場所をきいてくる。リンク方法はすべてデフォルトを選ぶ。また、libナントカについては全てnoneと入力する。
  4. コンパイルが終わったら、とりあえずmake install。すると、指示が出るので、それに従って、
    sudo make package pkgdir=/tmp/netpbm
    と入力する。パスワードをきいてくるので答えること。この段階のインストール先は一時的なので/tmpの下でよい。
  5. 次に、sudo ./installnetpbm を実行(これは、make installとやったときに表示される後の方の指示)。package directoryのデフォルトが/tmp/netpbmになっているのでそのままリターンキーを押す。ディレクトリの指定はデフォルトのままリターン、YesかNoで訊かれるところは全てYを入力。

GhostScripのインストール

 ここが参考になるけど、バージョンが変わったのでしなくていい手順もある。

  1. ghostscript-8.54-gpl.tar.gz、ghostscript-fonts-other-6.0.tar.gz、ghostscript-fonts-std-8.11.tar.gzをダウンロード。fonts-otherの方はver.8.53の方に含まれているが、念のため持ってきた。
  2. tar zxvf ghostscript-8.54-gpl.tar.gz
    cd ghostscript-8.54-gpl
    ./configure
    make
    sudo make install
  3. フォントファイルも全てtar zxvfで展開する。fontsディレクトリが作業場所にできる。その中身を全部、/usr/local/share/ghostscript/fontsに入れる。sudoで実行。もしこのディレクトリが無ければ作る。
    sudo cp fonts/*.* /usr/local/share/ghostscript/fontsを実行。
  4. 次の内容のスクリプトファイルをchurwname.shという名前で保存。
    cat $1 \
    | sed 's/a010015l.pfb/uagd8a.pfb/g' \
    | sed 's/a010035l.pfb/uagdo8a.pfb/g' \
    | sed 's/a010013l.pfb/uagk8a.pfb/g' \
    | sed 's/a010033l.pfb/uagko8a.pfb/g' \
    | sed 's/b018015l.pfb/ubkd8a.pfb/g' \
    | sed 's/b018035l.pfb/ubkdi8a.pfb/g' \
    | sed 's/b018012l.pfb/ubkl8a.pfb/g' \
    | sed 's/b018032l.pfb/ubkli8a.pfb/g' \
    | sed 's/n022004l.pfb/ucrb8a.pfb/g' \
    | sed 's/n022024l.pfb/ucrbo8a.pfb/g' \
    | sed 's/n022003l.pfb/ucrr8a.pfb/g' \
    | sed 's/n022023l.pfb/ucrro8a.pfb/g' \
    | sed 's/n019004l.pfb/uhvb8a.pfb/g' \
    | sed 's/n019044l.pfb/uhvb8ac.pfb/g' \
    | sed 's/n019024l.pfb/uhvbo8a.pfb/g' \
    | sed 's/n019064l.pfb/uhvbo8ac.pfb/g' \
    | sed 's/n019003l.pfb/uhvr8a.pfb/g' \
    | sed 's/n019043l.pfb/uhvr8ac.pfb/g' \
    | sed 's/n019023l.pfb/uhvro8a.pfb/g' \
    | sed 's/n019063l.pfb/uhvro8ac.pfb/g' \
    | sed 's/c059016l.pfb/uncb8a.pfb/g' \
    | sed 's/c059036l.pfb/uncbi8a.pfb/g' \
    | sed 's/c059013l.pfb/uncr8a.pfb/g' \
    | sed 's/c059033l.pfb/uncri8a.pfb/g' \
    | sed 's/p052004l.pfb/uplb8a.pfb/g' \
    | sed 's/p052024l.pfb/uplbi8a.pfb/g' \
    | sed 's/p052003l.pfb/uplr8a.pfb/g' \
    | sed 's/p052023l.pfb/uplri8a.pfb/g' \
    | sed 's/s050000l.pfb/usyr.pfb/g' \
    | sed 's/n021004l.pfb/utmb8a.pfb/g' \
    | sed 's/n021024l.pfb/utmbi8a.pfb/g' \
    | sed 's/n021003l.pfb/utmr8a.pfb/g' \
    | sed 's/n021023l.pfb/utmri8a.pfb/g' \
    | sed 's/z003034l.pfb/uzcmi8a.pfb/g' \
    | sed 's/d050000l.pfb/uzdr.pfb/g'
  5. sh churwname.sh /usr/local/share/ghostscript/8.54/lib/Fontmap.GS > Fontmap.GS
    sudo mv Fontmap.GS /usr/local/share/ghostscript/8.54/lib/
  6. hiralink-utf8.shを作業場所に保存。
    sudo mkdir /usr/local/share/ghostscript/8.54/Resource/CIDFont
    sh hiralink-utf8.sh
  7. /usr/local/share/ghostscript/8.54/lib/cidfmapに以下の内容を追加する。書き換え不可になっているので、sudo で+w属性にしてから書き込むこと。
    /Ryumin-Light /HiraMinPro-W3 ;
    /Ryumin-Regular /HiraMinPro-W6 ;
    /FutoMinA101-Bold /HiraKakuStd-W8 ;
    /GothicBBB-Medium /HiraKakuPro-W3 ;
    /FutoGoB101-Bold /HiraKakuPro-W6 ;
    /Jun101-Light /HiraMaruPro-W4 ;
  8. Font.tar.bz2を作業場所に保存(ブラウザからリンク先を保存でよい)。展開は、StuffitExpanderでできる。Fontフォルダができるので、
    sudo mv Font /usr/local/share/ghostscript/8.54/Resource/
    を実行。

問題点

 これで動くはずなんだが、Mac OS 10.3.xでは、
[japanese]Error: No such image type ''.
This installation supports (first is default):
という エラーが出て読み込みが止まってしまう。10.4.xでは問題なし。原因は不明。同様のエラーが出た際、Ghostscriptの対応画像の種類を増やして再インストールしろとか、ソースでだめならパッケージで入れろ(逆パターンもあり)とか、いろいろあるが、./configure一発で設定してるだけに、何をどうしたらいいものか……。

試してみて駄目だった方法

    1. LaTeX2Rtf
      Finderから呼べるようにするためのMac版のラッパーも出ていたりするが、元のlatex2rtfがまともに日本語に対応していないのでどうにもならない。まともなrtfが吐ければ、あとはwordでもエディタでも使ってhtmlに貼り付けるは簡単だと思ったのだが……。Finkをインストールしてからパッケージで突っ込んだが結果は良くない。なお、インストール後に、/usr/localよりも/swの下を探しに行くようにshellの設定を変えられてしまうので、後から入れたgsなんかが軒並みうまく見えなくなる。envでPATH設定を確認して、変わってるようならbashの設定ファイルを変更する必要あり。
    2. Acrobat Professional7で書き出し
      まず、縦書き&ルビありのままでは、フォーマットが壊れまくってどのファイル形式でも読めるような書き出しはできなかった。2段組をやめても結果は変わらず。
      横書き対応済みのtexファイルから、platexとdvipdfmxでpdfファイルを作って「別名で保存」により書き出すことを試みた。画像以外のテキスト情報書き出しは、一応以下の種類のものができることになっている。
      • HTML3.2, HTML4.01-CSS1.0準拠
      • Microsoft Word文書
      • XML1.0
      • テキスト(アクセシビリティ可能)
      • テキスト(プレーン)
      • リッチテキストフォーマット
      これらのうち、テキスト(アクセシビリティ可能)以外では、pdfで改行して表示されているところが全く改行されず、大幅な編集が必要であることがわかった。逆に、テキスト(アクセシビリティ可能)では、改行が正しい(1行に満たないところはそこで改行が入り、数行に渡る場合は字数をpdfと合わせるように改行が入る) 部分と、改行が1個余分に入る(pdfでは一行の途中で改行しているだけなのに、一行おきに表示されてしまう)部分が混じって出た。

 

      Acrobatの別名で保存と、dvipdfmxで作ったpdfファイルはなぜか相性が悪いらしい。
  1. TexMakerのconvert to html機能を使う
    内部ではdvipsして、psファイルを1ページ後とにパースしてhtmlになおしているらしい。これも、単独では動かず、Ghostscript、netpbm、psutils中のpsselectコマンドが必要になる。psutils.tar.gzを拾ってきて展開、./configure, make installで突っ込んでから試した。一応動くことは動くが、非現実的な遅さでとても使い物にならなかった。(TexMaker自体はコンパイラ呼び出しなど、通常の作業であればそこそこの使い勝手である。preferenceで、ptexの環境にあったパス指定をするとよい。mi + Tex Tools for miに変わる方法としてとっておいても良さそう)

まだ試してない方法

  1. Tex4ht
    情報はこことかこことか。cmフォントはmozillaのやつだとここ。日本語通すのが、NTTのTexならすんなりいくが、ptexだとフォントを入れないとだめらしい。折を見て試してみるか。dviファイルをパースしてhtmlを吐くらしい。