FreePWINGで複数の副本を持つ書籍を作成する
現在、oald7-fpwを改造しています。 主な改造点の一つとして、一つの副本を持つ書籍を三つではなく、三つの副本を持つ一つの書籍を生成するようにしました。 FreePWINGはそのような複数の副本を持つ書籍を作る事も考慮されている事に今更ながら気付いたので、その手順を示したメモを公開します。
トップディレクトリのMakefileに必要なパラメタの設定を行います。 最低限必要になるのは、PACKAGE, DIR, SUBDIRSの三つです。 前二者は通常でも指定する物なので割愛します。 SUBDIRSは副本のディレクトリ名を副本の数だけ記述します。 同一ディレクトリを複数回指定する事はできません。 また、SUBDIRSにはDIRで設定したものと同名のディレクトリを設定するとパッケージを作成する際に異常動作を起こすと思われますので回避して下さい。 例えば以下のようになります。
PACKAGE = oald7-fpw
DIR = OALD_7
SUBDIRS = OALD7 OALD7CG OALD7WF
また、catalogsファイルは各副本ディレクトリに置かれたcatalogs.txtファイルから自動生成しますが、FreePWING 1.4.4では生成コマンドの記述がおかしいので、Makefileに以下のような記述を加えてoverrideします。
catalogs.txt: $(addsuffix /catalogs.txt,${SUBDIRS})
rm -f $@
echo "[Catalog]" > $@
echo "FileName = catalogs" >> $@
echo "Type = EPWING1" >> $@
${PERL} -e 'printf "Books\t\t= %d\n", scalar(@ARGV)' ${SUBDIRS} >> $@
for subdir in ${SUBDIRS} ; do \
echo "[Book]" >> $@ ; \
sed -n -e '/^Title[ ]*=/p' $$subdir/$@ >> $@ ; \
sed -n -e '/^BookType[ ]*=/p' $$subdir/$@ >> $@ ; \
sed -n -e '/^HanGaiji[ ]*=/p' $$subdir/$@ >> $@ ; \
sed -n -e '/^ZenGaiji[ ]*=/p' $$subdir/$@ >> $@ ; \
echo "Directory = \"$$subdir\"" >> $@ ; \
done
続いてSUBDIRSに設定したディレクトリ名に合わせたディレクトリを作成し、その中にMakefileとcatalogs.txtファイルを作成します。 catalogs.txtは[Book]エントリに相当する部分があればよいはずです。 Makefileは通常のFreePWING用のMakefileと同様に記述します。 ただし、パラメタPACKAGE, DIRは不要です。
上記を副本の数だけくり返せば完成です。 あとは通常のFreePWINGを利用したツールと同じ手順で書籍を作成できます。
タグ:FreePWING