Object Design
Home > Index

Index

entry 繁体字フォントをEDDで指定しているにもかかわらずMS明朝でオーバライドされるという問題(構造化FrameMaker8) 2009-10-26

半年ほど前に、 EDDでフォントをArial指定しているのにMS 明朝になってしまう、という問題 というエントリーを書いたのだが、 その問題をそのまま放置していたところ、 今回、中国語の繁体字指定したEDDを使ってXMLをFrameMaker8で開いたところ、 繁体字フォント指定がほとんど反映されないで、ほぼすべてがMS明朝になってしまった。

今回はそのエントリーに書いた以下の部分を簡単に解消できるツールをつくりました。

方法としては、FrameMakerのGUI上で処理してもよいし、mifにいったん保存して、 該当箇所の書式上書き設定記述を削除することでも解消できる。

結論としてツールだけを入手したい場合はこちらです。

続きを読む Read more

entry Adobe FrameMaker FDK, 構造化されたドキュメントの要素を順にたどって要素の属性を列挙するAPI Client(C++版) 2009-10-16

C++版

続きを読む Read more

entry Adobe FrameMaker FDK, 構造化されたドキュメントの要素を順にたどって要素の属性を列挙するAPI Client 2009-10-16

DocbookXMLで内容を記述し、それを構造化FrameMakerでフォーマットしている。
フォーマット(スタイル)の指定のほとんどはEDDであらかじめ指定しておけばよいのだが、 仕上げの段階の「詰め」の作業などで、どうしてもスポット的に行間を狭めたり、長体をかけたり、という 例外的なフォーマット指定を行う必要が生じる。

これをタッチアップと称して、FrameMaker上で手作業で行うのだが、 この手作業の結果は、次にDocbookXMLから再度フォーマットし直したときに失われてしまう。
(ラウンドトリップして、FrameMakerからDocbookに再度書き戻せられれば問題ないのだが、そうなっていない。 というか、Docbookにはスタイルを記録できる要素や属性は定義されていなから基本的には無理なわけだが...)
したがって、フォーマットのたびに毎回同じ手作業による修正が発生してしまいます。

前置きが長くなりましたが、このタッチアップを少しでも減らすために、 DocbookXMLをFrameMakerで開いたときに各要素に埋め込まれたスタイル指定情報(※)を読み出して そのスタイル適用するAPI ClientをFDKを使って書いてみようと、そういう話です。

※もちろんDocbookXMLにはスタイル情報を記録できる要素や属性はないので、ちょっとしたトリックを使う必要はあります。

まだ道半ば(もいいところなの)ですが、まずは、構造図に表示される要素ツリーを順にたどって、 各要素の属性を取得するところまで作動するものができたので、ここにメモしておきます。

続きを読む Read more

entry 数値文字参照(Numeric Character Reference)をJDOMで使いたい 2009-09-16

数値文字参照 を含んだXMLをJDOMで生成するにはどうすればいいのか?と思って調べてみたのだが、 そのまま数値文字参照をテキストとしてセットする方法がわからなかった。

以下のような代替案で対処したので、メモしておきます。

続きを読む Read more

entry Adobe FrameMaker FDK 8.0 API Client を nmake を使ってコマンドプロンプトでビルドする方法 2009-09-09

FDK 8.0(FrameMaker Developer Kit を使って作成するAPI Client はVisualStudio2005 の使用してビルドする。
通常、VisualStudio2005 は GUI上で開発・ビルドを行うが、 わたしがつくっている程度の小さなC/C++プログラムでは、わざわざGUIを起動するのが面倒。

面倒というより、そもそもコーディングも vim でやっているので、ビルドするためだけに VisualStudio2005 の重いGUIを起動していることになる。
ビルドするだけなら、コマンドラインでMakeで済ませたい、と思って調べたところ、 標準でインストールされるVisualStudio2005 コマンドプロンプトを使って namke(というMicrosoftが提供している) make ツールを使えばよいことが判明。

VisualStudio2005をインストールすると一緒にインストールされる VisualStudio2005 コマンドプロンプトは、通常のDOSプロンプトと異なり あらかじめ C++ プログラムをビルドするのに必要な環境がセットアップされている。

続きを読む Read more

entry DocbookをHTMLに変換するには 2009-08-30

Docbookで書かれたXMLをHTMLに変換するのは簡単です。
なぜなら、 DocBook-XSL というDocbookをいろいろな形式に変換するためのスタイルシート集があるからです。

DocBook XML documents into other DocBookOutputFormats, such as HTML, PDF, Microsoft HTML Help, and man pages.

ただし、デフォルトで生成される出力はかなり素朴なものなので、 多くの場合、 商用で使うには、スタイルシートをカスタマイズする必要があるのではないでしょうか。

DocBook-XSLのスタイルシート集は結構巨大なので、どこからどうカスタマイズに手をつけたらいいか、わからないのですが、 DocBook XSL:The Complete Guide というすばらしいドキュメントがあるので、これを読んでいけば、DocBook-XSL が想定しているカスタマイズ範囲ならば かなり短期間でカスタマイズ対応ができそうです。

今回は、 デフォルトで生成される List of Tables を消す、というカスタマイズをやってみたのでメモとして残します。

続きを読む Read more

entry 日本語XML文書を英語に翻訳する(GoogleのTranslate API を使用) 2009-08-27

Google Translate API を使うといろいろな言語に品質はともかく簡単に翻訳することができます。

今回は、 前回のエントリXML文書から テキストノード text() を抜き出す方法 とGoogle TranslateAPIを使って、日本語XML文書を英語に翻訳してみます。

XMLを使った多言語展開のドキュメント制作においては、 元になる言語のマニュアルが完成すれば、あとは基本的にXML文書さえ翻訳すれば 多言語のマニュアルはほぼ完成します...と言いたいところですが、 実際は多言語に展開するにあたって、その展開先言語に固有の問題があり、 それに対処しなければなりません。

たとえば、日本語から英語に翻訳する場合、 文字量が変わる(増える)ことによるレイアウト調整や改ページ位置の調整などの ページネーション処理が必要になります。

したがって、実際の翻訳前に機械的に翻訳した英語データを使ってレイアウト調整を 行うことは意味があります。

続きを読む Read more

entry XML文書から テキストノード text() を抜き出す方法 2009-08-26

googleのTranslate APIを使って、XML文書を日本語から英語に翻訳する ためには、まず、翻訳対象のXML文書中でテキストノードを取り出す必要がある。

単にテキストノードを取り出すだけならば、 XPath で指定した特定部分だけをXML文書から抜き出すスタイルシート のようにXSLTを使えば済む話だが、 その取り出したテキストを

  1. 日本語から英語に翻訳した上で
  2. 翻訳した英語テキストを元の場所に書き戻す必要がある

のでXSLTだけでは厳しい。

そこで、例によってJDOMとJythonを使って、問題を解決する。

続きを読む Read more

entry XPath で指定した特定部分だけをXML文書から抜き出すスタイルシート 2009-08-17

XML文書から XPath で指定した部分だけを抜き出したい。 XSLTではデフォルトの変換規則があるため、これが意外に難しかったのでメモ。
(デフォルト規則が分かっていれば難しいことはない。)

XPathで指定した部分を取り出したいだけならば、xpathコマンドを使えばOK.
Ubuntu などでは、apt-get install libxml-xpath-perl でインストールできます。
以下のように使えます。

$ cat sample.xml | xpath -q -e "/book/chapter/title/text()"

続きを読む Read more

entry Trados WinAlign で翻訳メモリをつくる(試行錯誤中...) 2009-08-08

Trados 2007 Freelance にWinAlignという原文と訳文を整合するツールがあります。 対象となるドキュメントがXML(Docbook v4.4)だった場合に、 これを使って翻訳メモリをつくる場合の考え方。

続きを読む Read more

entry Ant で XMLを処理 ... XMLの整形(インデントと改行位置の調整) 2009-08-07

Docbook v4.4のXMLを使ってドキュメントをつくり、FrameMakerでフォーマット、 そのXML文書を多言語展開して、FrameMakerでフォーマット、という仕事をしていると、 diff とか diff3 を使ってXML文書を比較する機会が結構ある。

などの場合。

そのときに diff, diff3 を使って差を調べるのだが、XMLとして内容が同じでも 改行位置やインデント量が異なると diff, diff3 は内容が異なっていると判断してしまう。 これは意図したことではないため、対策として diff,diff3処理する前に、XML文書を整形して、改行位置とインデント量を整える(normalize 正規化) 作業を行う必要がある。

これをAntで処理する方法。

続きを読む Read more

entry Ant で XMLを処理 ... DOCTYPE 宣言の削除 2009-08-07

jdom などでXMLを変換するときに、DOCTYPE宣言がついていると(ネットワークに情報を取得していくのか) 処理がとても遅くなることがある。 そこで、DOCTYPE宣言を削除してからXMLを変換するのだが、その削除作業をAntで行う方法。

このエントリでは、処理するXML文書はDocBook v4.4で記述されていることとする。

続きを読む Read more

entry ひらがなの濁音を清音に変換するには 2009-08-04

ドキュメントの最後につける索引ページ、その索引タームのソート問題で、 今回は、濁音は清音に変換した状態でソートする必要がある。 どうすればいいか。

索引ソートの実際の全体の作業ステップとしては以下のようになります・・・

  1. 索引タームを抽出
  2. 索引タームが漢字カタカナひらがな混じりなので、ひらがなだけのよみに変換
  3. 濁音を清音に変換
  4. ソート

これだけが必要になります。

索引ターム自体の「漢字カタカナひらがな混じり」を「よみ(カタカナ・ひらがな)」に変換するには、 たとえば、YahooWebAPIを使います。(茶筅や和布蕪、KAKASIなどでもできると思いますが)

その後、YahooWebAPIで得た「よみ」はカタカナも含まれているので、カタカナをひらがなに変換します。

さらにひらがな中に含まれる濁音を清音に変換します。

すべて準備ができたらソートします。 (ソートはJavaやPythonを使えば簡単です。)

今回は、このステップのうちの濁音を清音に変換する部分の説明です。

続きを読む Read more

entry トラドス タグエディタ(Trados TagEditor) で Docbook v4.4(XML) を翻訳するための準備 2009-07-27

TagEditorでXML文書の翻訳を行う場合は、 翻訳対象となるXML文書だけでなく、そのXMLに対応したタグセット(iniファイル)が必要です。

はじめてiniファイルが必要だと翻訳会社の方に言われたときは なんなんだろうと思ったのですが、調べてみると、要するにDTDのことで、 それをTradosのTagEditorが扱えるように変換したファイルの拡張子が 「.ini」 だったという話です。

現実的な対処としては、翻訳を依頼する側が ini ファイルを用意して提供した方が親切なのかもしれませんが、 実際は、DTDさえあれば、すぐに ini ファイルを生成することができます。

続きを読む Read more

entry 構造化FrameMaker8 下矢印(downwards-arrow-sign, U+2193)がMS明朝になってしまう問題の回避 2009-07-23

Structured Frame Maker 8 で xml をフォーマットすると、下矢印文字(U+2193)が EDDで Arial指定しているにも関わらず、なぜか書式がオーバライドされてしまいMS明朝になってしまう。

そんな場合の回避方法。

続きを読む Read more

entry 構造化FrameMaker8 EDD PrefixRules のトリビア... less than sign はそのまま使えない 2009-07-11

納品条件はFrameMaker7 なのだが、 制作時は都合により FrameMaker8 を使っている。
しかし、納品時に、FM8 から FM7 にダウングレードすると特殊文字が文字化けが発生してしまう。 おそらくは、FM8からは内部もユニコードに対応、FM7までは内部は独自のコード体系を 持っているとかいった話と関係がありそうだが、対処方法がわからない。

続きを読む Read more

entry 現在開いているファイルを fm 形式で保存する(Adobe FrameMaker8 FDK Client) 2009-07-02

先ほどの続きで、いったん mif 形式で保存して処理をした後、 再度 fm 形式で保存するときに使うことを想定したFDKクライアントです。

ただやっている内容は、現在開いてるファイルを全部取得して、パラメータとして、 FV_ModeSaveAs を指定して fm 拡張子で保存しているだけです。

続きを読む Read more

entry ブック内の fm ファイルを mif 形式で保存する(Adobe FrameMaker8 FDK Client) 2009-07-02

仕上げ処理で、mif ファイルに対して一括処理をほどこすことがよくあります。 (小口に配置するツメの位置を章ごとに移動させる、など) 構造化FrameMakerでは、仕上げ段階では、XML文書からブックを生成しますが、 こうしてできた個々のファイルの形式は fm です。
この fm ファイルをひとつずつ開いて mif 保存しているのは苦痛なので 自動化しました。

処理内容は、ブックファイル中の fm ファイルを列挙して、 mif 拡張子を持つファイル名文字列を生成してから、 mif 形式で保存しているだけです。

保存形式の指定で FV_SaveFmtInterchange80 を使うのがポイントです。 もし、FV_SaveFmtInterchange を使うと、FrameMaker7 形式の mif になるようです。 FM8のfm形式ファイルを FM7 mif 形式に保存すると、 ユニコード関係で一部文字が化けることがあります。

続きを読む Read more

entry ブック中のすべての fm ファイルを開く(Adobe FrameMaker8 FDK Client) 2009-07-02

先ほどの tomif.cを流用して作成。 単に、ブック中のfmファイルを全部開くだけのクライアント。

ブックを印刷するとき、全部開いたまま行うと高速に処理できる・・・と (記憶では) ヘルプに書いてあったので...
たとえば、そんなときに役立つクライアント。 これで、ちまちまファイルを開く手間を省けます。

続きを読む Read more

entry EDDでフォントをArial指定しているのにMS 明朝になってしまう、という問題 ... 一応 解決(Adobe FrameMaker) 2009-06-29

構造化FrameMakerの話。

簡単に言えば、XMLをFrameMakerで開いてフォーマットしたときに、 EDD上で、TextRange指定した要素に対するフォント指定などの書式設定が上書きされて意図した書式設定がされない問題。

EDD設定は通常はCSSと同じように親のスタイルがカスケードされて子要素に反映されつつも、 子要素で設定された書式は優先されるはず・・・ 少なくとも、経験的にいって、 TextRangeではなく、ParagraphFormat 指定している場合はそのようにEDD(書式)設定が反映される。

しかし、今回の問題は、本来優先されるはずの子要素での書式設定が上書きされてしまう、という問題。 しかもどこにも指定していないはずのMS明朝が出現してしまう。

解決方法としては、書式のオーバライドを無効(元に戻す)にすればよい。 FrameMakerのGUIを使って、書式の上書きを削除するか、mifを経由して(いったんmif保存して) 上書きが起こっている箇所を削除することで問題が解消できる。

続きを読む Read more

entry アクティブブックドキュメント中のfmファイル名を順番に取得する方法(Adobe FrameMaker8 FDK) 2009-06-23

前回 は fmファイルを開いているときにそのファイル名(パス)を 得る方法を調べた。

その応用で今度は book形式のファイルを開いているときに、 そのbook内に含まれるすべてのfmファイルのファイル名(パス)を順に取得してみる。

さらにfm拡張子をmifに変換

続きを読む Read more

entry AdobeFrameMaker8 FDK Bookを開いているとのメニューバーと通常のメニューバー 2009-06-23

FDKを使うまで意識したことがなかったが、 bookがアクティブになっている場合のメニューと 通常のメニューは別になっていることが判明。

続きを読む Read more

entry アクティブドキュメントのファイル名を取得する方法(Adobe FrameMaker8 FDK) 2009-06-22

FDKを使ってやりたいことは、Book中のすべてのfmファイルを、mifファイルとして保存したい、 しかも拡張子だけ fm から mif に変えてファイル名のベース部分はそのままに。

しかし実際に取り組んでみると、そのためにはまだまだ道程は遠い。 まずは、アクティブドキュメント(fm形式)のファイル名を取得するところまでできたので、 そのメモ。

続きを読む Read more

entry Adobe FrameMaker8 FDK 最初の一歩 2009-06-20

FDKは、 CやVisualStudioの操作に慣れていないと、なかなか敷居が高い。 以下は、FDKのとっかかりのメモ。

続きを読む Read more

entry アタリ画像の作成(jython) 2009-06-02

ライティングをしている段階では、まだ画像データが用意されていないことが あります。 その場合にアタリとしてサイズだけは合わせたダミー画像を用意して 作業することがあります。

今回はそんな場合にアタリ画像を簡単に生成するための jython スクリプトです。

続きを読む Read more

entry FrameMaker で横見出し領域(side head)の設定方法 2009-05-28

横見出し領域を使うと、インデントレイアウトの管理が楽になる場合が多い。 特に手順を説明する場合の手順番号だけを付き出しインデント扱いしたい場合に、 重宝します。

続きを読む Read more

entry StructuredFrameMaker テキストの回り込みの解除トリック 2009-05-28

FrameMakerで画像とテキストのレイアウトしている場合で、 画像をRunin(段落内)扱いで配置した場合、 テキストの回り込みの解除方法がわからない。

HTMLのCSSで言えば、clear:both; に該当するスタイル指定をEDDなどでできないのか? と思うのだが、今のところその方法がわかっていない。

そこで、いままでは、無理やりに強制改行または空行を追加して、 縦スペースを確保することで、見た目上テキストの回り込みを回避していたのだが、 この方法はいろいろと不都合が多い。

続きを読む Read more

entry mif2xml ... mif を XMLに変換(FrameMaker,jython) 2009-05-25

Structured FrameMaker はルールベースで、レイアウトを作り出せるので、 ページ数が多いドキュメント作成に重宝しますが、 テンプレートのマスターページ管理が気に入りません... 具体的には以下の通り。

続きを読む Read more

entry 少しだけ異なるマスターページを管理する方法(Structured FrameMaker) 2009-05-23

ツメの位置だけが章別に異なる場所にレイアウトされるものの、 その他部分は完全に共通なテンプレート(中のマスターページ)を 管理したい。

共通部分に変更はいつ入るかわからない。 もし、 マスターページを単純コピーして作成すると、 共通部分に入った変更をコピーした分だけ繰り返し入れる必要が生じてしまう。

こういった作業は単に精神的に辛いだけでなく、発見が難しいヌケモレ系のミスを 引き起こし品質上の問題になる。

ではどうすればいいか?

続きを読む Read more

entry 段落書式でフォント SimSun で指定してもMS明朝になってしまう問題その2(Adobe Structured FrameMaker8) 2009-05-12

XML文書(Unicode,UTF-8)をFrameMaker8に読み込んでフォーマットして印刷用データを作成している。 しかし、多言語展開時に中国語(簡体字)の対応をしていて困ったことになってしまった。

FrameMakerのテンプレートで段落書式(本文)に SimSun を設定しているのに、 XML文書をそのテンプレートを使ってフォーマットすると、なぜか段落書式(本文)の 一部がMS 明朝に変わってしまうのだ。 全部 MS 明朝になるのではなく、設定通り SimSun になっているところもある。

他の言語展開(ドイツ語・フランス語・スペイン語など)ではこのような現象は起きないので (もっともそれら言語で使用してるフォントは Times New Roman だが)なんでだろうと。

いろいろ調べてみたものの原因がわからないので、 以下の方法で対処しました。

続きを読む Read more

entry 段落書式でフォント SimSun で指定してもMS明朝になってしまう問題その1(Adobe Structured FrameMaker8) 2009-05-07

FrameMaker8 日本語インタフェースを使用(構造化FrameMaker)して 中国語(簡体字)のDTPを行っている。 ところが、中国語が文字化けしてしまう不具合が発生、その調査顛末。

続きを読む Read more

entry FrameMakerデータのヘルプ化手順(RoboHelp8を使用) 2009-05-06

非構造化FrameMakerで作成されているドキュメントをヘルプ(MicrosoftHTMLHelpやWebHelp)に 変換する方法の検討。

Adobeのサイトの説明を読む限りは、 FrameMakerに対するサポートが充実しているような印象を受けるので、RoboHelp8 を使用してみる。

試用版をインストールして、軽くテストしてみたところ、 非構造化FrameMakerデータをRoboHelpのデータに変換(またはリンク)できる 機能は、ある意味優れいている。

しかし、印刷用に最適化されたFrameMakerを手直しなしで、RoboHelp経由でヘルプ化するのは、 画像を中心に 品質面では、かなり問題を感じた。

続きを読む Read more

entry Illustrator CS3 + JavaScript を使用して EPSをSVG or PNGへバッチ変換するJavaScript 2009-04-27

EPSをSVGやPNGにバッチ変換するためのスクリプト。

続きを読む Read more