CAS記法のマークアップがなぜ必要なのかー図版とキャプションの例

CAS-UBは、原稿テキストに対して、簡易マークアップ(CAS記法)で、階層構造や文脈を付与します。

原稿などの編集にはMicrosoft Wordなどを使っている方が多いでしょう。Microsoft Wordは、画面に印刷レイアウト状態で表示しながら編集しますが、こうした方式はWYSIWYG(みたままを出力)といいます。WYSIWYGに慣れているユーザーにとっては、CAS-UBの簡易マークアップ方式には違和感を感じることと思います。

しかし、CAS-UBではどうしても簡易マークアップが必要です。そこで今日は簡易マークアップがなぜ必要かを図版とキャプションの例で説明したいと思います。

WYSIWYGではレイアウトを視覚的に行います。例えばMicrosoft Wordで次のようなキャプションをつけた図が入った原稿を編集しているとします:

原稿で図の前に一行増えますと、キャプションが次のページに送られて図とキャプションが別のページに分かれてしまいます:

皆さんはこのようなときどうしますか?

おそらく、図とキャプションが別ページになってしまうのを避けるために次のような編集をすることでしょう。

①原稿のテキストを編集して一行短くする
②キャプションの行が同じページになるように図を少し小さくする
③図とキャプションを選択して、改ページ位置の自動修正で「次の段落と分離しない」とする。(この例では図の前で改ページします。)(コメントにより7/2追加)

①、②のような操作はWYSIWYG方式特有です。構造という概念とは無縁です。ちなみに、この原稿を他のツール、例えばInDesignなどで印刷用に仕上げようとします。InDesignの文字の並べ方はMicrosoft Wordとは違うためページ区切りがずれます。Microsoft Wordの上のようなレイアウト操作は無駄だったということになります[1]。③は構造によるページ分割制御ですが、WYSIWYGツールで使う人は少数派のようです。

CAS-UBでは、①紙やPDFのような印刷媒体と、②WebページやEPUBという異なる特性をもつ2種類の媒体を想定して、原稿を再編集しないで両方にワンボタンで出力できます。PDFは自動組版ソフト(AH Formatter[2])によりサーバー上で自動生成します。

原稿に対して、図とキャプションが一体のものであるという構造情報を付与します。そして、この構造を利用してスタイルシートによって図とキャプションが別ページにならないように制御します。つまり構造でレイアウトを制御するのです。

CAS記法では図とキャプションが一体のものであるということを次のように表します。

[[[:fig =透かしの透明度(有無) 
{{WaterMarkSetOpacity-example.png}}
]]]

[[[:fig

]]]

は図のブロック

=透かしの透明度(有無) 

はキャプションです。

次に例を示します。

1. CAS記法を指定しないとき
図の次の行にキャプションを置きます。レイアウトは中央揃え・ゴシックとしました。


次図は上が透かしの透明度を0.2、下が同透明度0.7に設定した結果です。

{{:width=80% WaterMarkSetOpacity-example.png}}

:center 図 透かしの透明度(有無)

PDFを生成しますと次のように泣き分かれてしまいます。

2. CAS記法を指定したとき


次図は上が透かしの透明度を0.2、下が同透明度0.7に設定した結果です。

[[[:fig =透かしの透明度(有無)
{{:width=80% WaterMarkSetOpacity-example.png}}
]]]

PDFを生成しますと次のように、図の前で改ページが入ります。

注意
上の処理の問題点は、図の前で改ページするために大きな空きができてしまうことです。
これを回避するためには、図の前の本文テキストと図の位置関係を自動的に逆転処理するというレイアウト設定もできます。上の例では説明を分かりやすくするため図と本文テキストの入れ替えの設定をしていません。なお、現状では、自動的に図を小さくする処理はできません。

[1] 思い出しましたが、Microsoft Wordは、図の挿入方法によって図を小さくしたときの解像度の扱いが違うので、場合によっては有害です。(参考)Wordに埋め込まれたイメージ画像の解像度はどうなるか?
[2] AH Formatter

一回使ったら止められない CAS-UBの超便利機能 UBテキストのご紹介

今年発売の『PDF CookBook』シリーズの制作では、UBテキストが大活躍です。2冊とも、アウトライン(章見出し、節見出し、項見出し)の作成はWordで行いました。アウトラインをCAS-UBにインポートして見出しを作った後のテキスト本文編集作業は、USテキスト形式で、ほとんど行なってしまいました。

さらに、Javaのサンプルプログラムを書いた担当者に、UBテキストを渡してプログラム部分を編集(重複している部分を最初に出現した箇所への参照に)してもらいました。UBテキストはwikiを拡張したものですので、プログラマであれば一目で内容が理解できるようです。

ご参考のために、下記に『PDF CookBook第2巻』の先頭部分のUBテキストをご紹介します。ちょっと長いですが、最初に簡単な解説をまとめます。

簡単な解説
(1) +で始まる一連の行ブロックは、UBテキスト全体、および各記事のヘッダラベルです。これはCAS-UBからUBテキストをダウンロードするときに自動的に付加される部分です。記事の階層構造(章⇒節⇒項)を表します。
(2) 各記事の本文にはCAS記法でマークアップしています。ここで使っている主なマークアップを紹介しますと:
・[[www.antenna.co.jp/ptl/]] :[[~]] URLリンクになります。
・[[[:index:key=あんごうかのアルゴリズム 暗号化のアルゴリズム]]] :単純な索引です。
・((:footnote [[https://ja.wikipedia.org/wiki/RC4]])) :脚注です。
・[[[:tbl =ISO 32000規定によるPDFバージョンと暗号アルゴリズム・暗号キー長の関係 ~ ]]] :表のブロック(表のキャプション)
・|=PDFバージョン|=使用できる暗号アルゴリズム|=暗号キー長| :表のヘッダ(セル)
・|PDF 1.3|RC4|40| :表の本体(セル)
・=狙い・効果 :見出し
・{{:width=50% GetCryptInfo-top.png}} :画像(width=50%は画像の幅指定)
・*ユーザーパスワードのみ設定されていると、… :箇条書きの1項目
・*[[[:mindex [[[:nodisp:prim API]]][[[:second setPassword() :暗号化されたPDF文書を読み込む際のパスワードを設定]]]]]] :親子の索引
・{{{ ~~~ }}} :整形済みブロック

CAS記法でマークアップの一覧表はこちらです

テキストエディタは使い易いものがいろいろあります。しかも、無料のものまであります。テキストエディタによる編集は、Webブラウザから操作するよりも、実に素早く便利です。

ここからUBテキストの例

+ updated: 2018-06-02T06:33:47+0900
+ ahax$kind: article
+ author: AuthoringOne
+ title: PDF CookBook 第2巻
+ name: publ

++++++++
+ updated: 2018-06-03T08:46:40+0900
+ ahax$kind: article
+ author: AuthoringOne
+ title: はじめに
+ name: i01-0001
+ ahax$parent: publ
+ ahax$entryClass: preface

『PDF CookBook』は、電子の紙PDFを企業向けのシステムで編集したり、加工したりする方法を紹介する本です。いわば、PDFをメイン素材とする料理本です。

(省略)

PDF Tool APIには無料でお使いいただける評価版を用意しています。次のページをご参照ください。

[[www.antenna.co.jp/ptl/]]

本書のプログラム例はJava で作成しています。本書で紹介しているプログラム例は次のページよりダウンロードしていただけます。

[[www.antenna.co.jp/ptl/cookbook/source/]]

(省略)

本書はシリーズ2巻目にあたります。第2巻では、PDF Tool APIの機能のうち第1章セキュリティ、第2章透かし、第3章しおりをテーマに取り上げています。シリーズ初巻には巻番号が付いていませんが、本書の本文中では『PDF CookBook』第1巻として参照しています。

++++++++
+ updated: 2018-06-03T08:46:40+0900
+ ahax$kind: article
+ author: AuthoringOne
+ title: セキュリティ
+ name: i02-0001
+ ahax$parent: publ
+ ahax$entryClass: chapter

ISO 32000-1:2008(以下、ISO 32000-1)は権限をもたないユーザーによるPDF文書へのアクセスを防止するための暗号化機能として、共通鍵(パスワード)による暗号化と公開鍵による暗号化の2種類を規定しています。本章の第1節ではパスワードによる暗号化の機能と使い方を説明します。PDF Tool APIは公開鍵による暗号化の機能はありません。

さらに、PDF Tool APIは、ISO 32000-1には規定されていない、独自の閲覧制限機能があります。第3節では独自の閲覧制限の使い方について説明します。

++++++++
+ updated: 2018-06-03T08:46:40+0900
+ ahax$kind: article
+ author: AuthoringOne
+ title: パスワードセキュリティ
+ name: i02-0002
+ ahax$parent: i02-0001
+ ahax$entryClass: section

PDF文書の内容はパスワードによって暗号化することで、権限をもたないユーザーによるアクセスを防止できます。ISO 32000-1の用語ではパスワードによる暗号化機能を標準セキュリティハンドラと呼びます。PDFは上位バージョンほど標準セキュリティハンドラの機能が強化されています。

標準セキュリティハンドラは[[[:index:key=あんごうかのアルゴリズム 暗号化のアルゴリズム]]]として[[[:index RC4]]]と[[[:index AES]]]のどちらかを選択します。当初から使われてきたのはRC4ですが、RC4には、既に脆弱性の点で問題が指摘されています((:footnote [[https://ja.wikipedia.org/wiki/RC4]]))。ASE 128の脆弱性は現時点では問題とされていないようです((:footnote [[ http://www.cryptrec.go.jp/topics/cryptrec_20110912_aes_cryptanalysis.html|128ビットブロック暗号AESの安全性について\\ http://www.cryptrec.go.jp/topics/cryptrec_20110912_aes_cryptanalysis.html]]))。

PDFのバージョンによって暗号化に使うキーの長さに制限があります。[[[:index:key=あんごうかのキーちょう 暗号化のキー長]]]はパスワードの文字数(パスワードの長さ)ではなく、標準セキュリティハンドラが内部的に計算して作成する値です。キーの作成方法はISO 32000-1で規定されています。

[[[:tbl =ISO 32000規定によるPDFバージョンと暗号アルゴリズム・暗号キー長の関係
|=PDFバージョン|=使用できる暗号アルゴリズム|=暗号キー長|
|PDF 1.3|RC4|40|
|PDF 1.4|RC4|40/128|

(省略)

|PDF 1.7アドビ拡張|AES|256|
|PDF 2.0|AES|256|

ISO 32000-1の仕様上は、PDF 1.4以降では暗号化のキー長は40ビット超128ビット以下の範囲で8の倍数単位で設定できます。しかし、PDFアプリケーションの多くは128ビットに固定しています。

]]]

PDF Tool APIでは暗号アルゴリズムの種類と暗号キーの長さを指定できます。

PDF Tool APIでは暗号化するときのキー長は40ビット、128ビット(256ビット)のどちらかを指定できます。一方、暗号を解読するときは8の倍数で可変のキー長の指定を受け付けます。

PDF Tool API V5では、AES 40ビットは設定できません((:footnote AESの仕様では暗号のキー長は128ビット以上とされています。ISO 32000-1でAES 40ビットを規定しているのは誤りの可能性があります。いずれにせよ新しく作成するPDF文書に40ビット暗号は使わないことを推奨します。)

(省略)

PDF Tool APIでは、入力PDF文書のバージョンと指定した暗号アルゴリズムと暗号キーの長さの組みによって、出力されるPDF文書のバージョンは、次表のようになります。

[[[:tbl =PDF Tool APIで出力されるPDF文書のバージョン
|=入力PDF文書のバージョン|=RC4 40|=RC4 128|=AES 128|=AES 256
|PDF 1.3|1.3|1.5|1.6|1.7
(省略)
|PDF 1.7|1.7|1.7|1.7|1.7
]]]

PDF文書には、[[[:index ユーザーパスワード]]]と[[[:index オーナーパスワード]]]のどちらか一方または両方を設定できます。ユーザーパスワードはPDF文書を開くためのパスワードです(詳細は[[##e.i02-0004.ユーザーパスワードによるセキュリティの設定]]を参照)。オーナーパスワードはPDF文書の利用権限を設定するパスワードです(詳細は[[##e.201805301211.オーナーパスワード]]を参照)。

ユーザーパスワードとオーナーパスワードは異なっている必要があります。

*ユーザーパスワードのみ設定されていると、ユーザーパスワードを入力してセキュリティの変更や解除ができます。
*オーナーパスワードのみ設定されていると、オーナーパスワードを入力してセキュリティの変更や解除ができます。
*ユーザーパスワードとオーナーパスワードの両方が設定されていると、(省略)

++++++++
+ updated: 2018-06-03T08:46:40+0900
+ ahax$kind: article
+ author: AuthoringOne
+ title: セキュリティ情報の取得
+ name: i02-0003
+ ahax$parent: i02-0002
+ ahax$entryClass: subsection

{{:width=50% GetCryptInfo-top.png}}

=狙い・効果

PDF文書のパスワードによる[[[:index:key=セキュリティのじょうほうをしゅとく セキュリティの情報を取得]]]します。

=処理の概要

PDF文書のセキュリティ設定は、PDF文書のトレイラーにある暗号辞書に記録されています。暗号辞書からユーザーパスワードの設定状況とオーナーパスワードの権限設定内容を取得して画面に表示します。入力PDF文書にユーザーパスワードが設定されているとき、PDF文書を開くには正しいパスワードの入力が必要です。

=PDF Tool APIの主な機能

*[[[:mindex [[[:nodisp:prim API]]][[[:second setPassword() :暗号化されたPDF文書を読み込む際のパスワードを設定]]]]]]

(省略)

*[[[:mindex [[[:nodisp:prim API]]][[[:second getType() :権限設定タイプ取得]]]]]]

=プログラム例

{{{
package cookbook;
import jp.co.antenna.ptl.*;
public class GetEncryptInfo {

(省略)

}
}
}}}

=プログラムファイル名

GetEncryptInfo.java

=入出力操作の例

{{:width=80% GetEncryptInfo.png}}

次は暗号化キー長256ビットのAESでオーナーパスワード設定したPDF文書の例です。

{{:width=80% GetEncryptInfo1.png}}

次は暗号化キー長256ビットのAESで添付ファイルのみ暗号化したPDF文書の例です。

{{:width=80% GetEncryptInfo-2.png}}

UBテキストによるフローは次のようになります。特に難しく考えることはなくテキストファイル(UBテキスト)のダウンロードとアップロードが追加になるだけです。

参考資料
[1] UBテキストの使用例 ― 記事の構成を変更する
[2] CAS-UBで編集中の出版物をダウンロードし、テキストエディタで編集し、元に戻す
[3] CAS-UBで編集中の出版物をダウンロードし、テキストエディタで編集し、元に戻す(2)UBテキスト
[4] CAS-UB V5にアップグレードしました。レスポンシブなWebページ生成や、UBテキスト機能の公開などが目玉です。
[5] CAS-UBで編集中の出版物をダウンロードし、テキストエディタで編集し、元に戻す

UBテキストの使用例 ― 記事の構成を変更する

弊社では来週26日(月)よりAntenna House PDF Driver V7.5をリリースする予定です[1]。この利用ガイドは、Microsoft Wordで原稿を編集して、Web版はCAS-UBで作ります。

原稿のWordファイルをCAS-UBにインポートしたところ、記事ファイルが次のような構成になってしまいました。

このような記事のタイトルだけのファイルがいくつもできています。これはWordのインポートの時、見出し(スタイル)で記事を分割しているためなのですが、このままWebページにしますと次のようになります。

見出しだけのHTMLファイルができてしまうんですね。こうした見出しだけのHTMLファイルが沢山あると、Webの内容を前から順番にナビゲーションするときなどにクリック回数が増えることになります。こうした構成はあまり使い勝手が良くないのではないでしょうか。

このように分断されてしまった記事を一つに繫げるとき、昨年12月に追加したUBテキスト機能[2], [3]を使うと便利です。

まず、出版物の全体(または記事の構成を変更したい箇所)をUBテキストとして外部のテキストエディタにペーストします(下図左)。次に記事のタイトル部分を取り出して、前の記事の見出しにします(下図右)。

そして、編集後のUBテキストファイルをCAS-UBにアップロードします。

これにより次のように記事が合併できます。

編集後にWebページを生成すると次のようにタイトルだけのHTMLファイルはなくなります。

タイトルだけのHTMLファイルを無くす方が、Webのナビゲーションがし易いと思います。ぜひ、一度お試しください。

[1] PDF出力を行うGDI型仮想プリンタードライバー『Antenna House PDF Driver V7.5』 リリースのお知らせ
[2] CAS-UBで編集中の出版物をダウンロードし、テキストエディタで編集し、元に戻す
[3] CAS-UBで編集中の出版物をダウンロードし、テキストエディタで編集し、元に戻す(2)UBテキスト

CAS-UB:章見出しのPDF用CSSレイアウトカスタマイズ

CAS-UBでは、出版物の編集作業ではレイアウトのことはあまり考える必要がありません。

レイアウトはPDF/EPUB/Webページを生成するときレイアウト設定のボタンで指定します。各成果物の出力レイアウトは、予めテーマとして用意されているものから選択します。

それだけですと、お気に入りにならないことがありますので、さらにそれをカスタマイズできます。今回はCAS-UBのPDFレイアウトカスタマイズとして「章見出し」のデザインをCSSでカスタマイズする事例を紹介します。

章タイトルをCSSでデザインする

PDFのレイアウトをカスタマイズするには、専用のCSS「styleset-pdf.css」ファイルが必要です。先ずは空っぽのCSSファイルを作成しましょう[1]

章見出しのつくり

章見出しのレイアウトを変更するには、章見出しがどのようなレイアウト構成を持っているかを事前に把握しておく必要があります。

下の図を見ながら確認しましょう。

CAS-UBの記事編集画面の上部には、「タイトル」欄と、その横に「記事の種類」リストが並んでいます。

記事の種類が「本文:章」となっているとき、「タイトル」欄に挿入されているテキストがPDF出力したとき、「章見出し」になります。

次にCSSの構成を見ていきます。

EPUBに限らずPDF出力でも、「章」と設定されたタイトルには、デフォルトで「章番号」が付与されます(CAS-UB 生成画面より、PDFの「レイアウト設定」画面で変更が可能)。章番号を見出しに出す場合、これもCSSでカスタマイズすることができます。

PDF出力の場合のCSS属性は下記のとおりです。

項目 クラス属性 分類
章タイトル s-title-level1 ブロック
章番号 s-title-level1-number インライン
章タイトル・テキスト s-title-level1-text インライン

単純なものならば、この3つのクラス属性についてCSSを指定するだけで、見映えのする章見出しをデザインできます。

レイアウト設定例

章タイトル-縦組扉中央 章番号:黒地白抜き、章タイトル:白地黒抜き

章見出しのPDFレイアウトを予めCAS-UBの生成画面より、PDF:レイアウト詳細設定で設定しておきます。

  • 見出し番号レベル:1:章のみ(0:番号なし以外を選択)
  • 章扉の作り方:章扉を作り、その裏のページから節
  • 章扉の文字組方向:縦組
  • 章扉のタイトルの行進行方向の:中央
CSSコード
.s-title-level1{
font-weight: bold;
}
.s-title-level1-number{
padding:0.8em 0.8em 0 0.8em;
background-color:black;
border:1px solid black;
color:white;
}
.s-title-level1-text{
padding:0.8em;
border:1px solid black;
}

章タイトル-縦組扉なし、ライン

PDF:レイアウト詳細設定

  • 見出し番号レベル:1:章のみ(0:番号なし以外を選択)
  • 章扉の作り方:章は作らず、章は改ページで始まる
  • 章(見出しレベル1)>位置 レベル1:行頭寄せ
CSSコード
.s-title-level1{
font-weight: bold;
margin-top:-0.25em;
padding-top: 0.75em;
border-top:2px solid black;
border-right: 2px solid black;
padding-right:3px;
}
.s-title-level1-number{
background-color:black;
color:white;
}
.s-title-level1-text{
margin-top:1em;
}

PDF出力はEPUBと異なり、ユーザーが任意のレイアウトプロパティを設定することはできません。できることが限られていますが、ある程度のデザイン力はありますので是非この機能を使ってみてください。

PDF出力用のCSS設定については、CAS-UBサイトの「サポート&ガイド一覧」より、CAS-UB PDF生成のためのガイド「第6章 見出しと本文にメリハリを付ける」をご参照ください。

CAS-UBサポート&ガイド一覧

[1] PDFのレイアウトカスタマイズ用のスタイルシートファイルはCSS(Cascading Style Sheets)の書き方を採用していますが、CSSそのものではなく、使えるプロパティの名前や値はCSSとは若干違いますのでご注意ください。

CAS-UBで編集中の出版物をダウンロードし、テキストエディタで編集し、元に戻す(2)UBテキスト

(前回)
今回はUBテキストについて解説します。

UBテキストは、CAS-UBの一つの出版物全体を表すテキスト形式です。UBテキストを理解するには、最初にCAS-UBの出版物の構成方法を理解する必要があります。

次の図は、例として『投資信託による資産運用のイロハ』という書名の出版物を対象に、CAS-UBの編集画面の記事一覧を示したものです。

CAS-UBの出版物は複数の記事から構成しており、この出版物は7つのファイルから構成されています。記事一覧では各記事に1~7の番号が付いていますが、番号は仮に付けているものです。

記事一覧には各記事のタイトル、ファイル名、記事の種類を表示しています。

タイトルは記事単位で見たときの最上位の見出しになります。例えば、記事の種類が「章」のときタイトルは章見出しに相当します。ファイル名はサーバー側で記事を管理するときの名前です。出版物の中ではユニークでなければなりません。
記事の種類は、出版物の中での記事の位置付け/役割を表します。どのような記事の種類があるかは、ユーザーガイドの「4–1 記事の種類一覧」を参照してください。

ユーザーガイドの「4–1 記事の種類一覧」

この出版物のUBテキストは次のようなテキストファイルです。ダウンロードしたファイルの一部のみ示しています。

+ updated: 2017-08-01T05:36:46+0900
+ ahax$kind: article
+ author:  
+ title: 『投資信託による資産運用のイロハ』
+ name: publ
+ ahax$entryClass: book3

++++++++
+ updated: 2017-07-25T05:47:43+0900
+ ahax$kind: article
+ name: i01-0001
+ ahax$parent: publ
+ ahax$entryClass: body-title

.

.

.

.

.

:center 『投資信託による資産運用のイロハ』

:center 毎月分配型を中心に

++++++++
+ updated: 2017-07-24T11:07:11+0900
+ ahax$kind: article
+ title: はじめに
+ name: i01-0002
+ ahax$parent: publ
+ ahax$entryClass: preface

どんなひとでも普通に生活していくには、…
(省略)
…

++++++++
+ updated: 2017-07-19T07:43:57+0900
+ ahax$kind: article
+ title: 投資信託とは
+ name: i01-0003
+ ahax$parent: publ
+ ahax$entryClass: chapter

投資信託(ファンドとも呼ばれます)は、…
(省略)
…

++++++++
+ updated: 2017-07-25T09:31:13+0900
+ ahax$kind: article
+ title: 基本知識
+ name: i01-0004
+ ahax$parent: publ
+ ahax$entryClass: chapter

本章では投資信託のリターン…
(省略)
…

++++++++
+ updated: 2017-07-24T08:17:43+0900
+ ahax$kind: article
+ title: 最後に
+ name: 201707240759
+ ahax$parent: publ
+ ahax$entryClass: postface

Webなどのニュースやブログを見ますと、…
(省略)
…

:end 著者

8個の‘+’の並んだ行と、それに続く‘+’で開始する行が記事の先頭(記事のヘッダー)です。

‘+ title’に記事のタイトル、‘+ name’に記事のファイル名、‘+ ahax$entryClass’に記事の種類(記事クラス名)が設定されます。

UBテキストのファイル形式についての説明は、ユーザーガイドの「5–2 UBテキスト」の項をご参照ください。

ユーザーガイドの「5–2 UBテキスト」

(続く)

CAS-UBで編集中の出版物をダウンロードし、テキストエディタで編集し、元に戻す

先日のバージョンアップで追加した二つ目の新機能を紹介します。

CAS-UB V5からクラウドで編集中の出版物を外部に取り出し、使い慣れたテキストエディタで編集して、元に戻せるようになりました。

このテキスト形式はUBテキストという名前です。UBテキストを取り出したり元に戻したりする画面は、編集画面の「ダウンロード」をクリックして表示します。

「ダウンロード」をクリックすると次の画面になります。この画面でUBテキストを取り出したり、戻したりします。

UBテキストとはCAS-UBの出版物全体を表現できるテキスト形式です。
UBテキストZIP形式を使うと、画像ファイルも一緒に入出力できます。

UBテキストでできること
1.出版物の取り出しと戻し
・ダウンロードで保存すると出版物全体を取り出します。
・テキストエディタで出版物全体を編集してアップロードで元に戻すことができます。

2.一部の記事だけの更新
・出版物全体から、一部の記事だけを切り取って編集して戻すことができます。
・記事をテキストエディタで、新しく書いて既存の出版物に追加することもできます。

3.全部の記事をテキストエディタで書く
・UBテキストをゼロからテキストエディタで作成することもできます。

上記の1.のような使い方ではUBテキストについて詳しい知識は必要ないでしょう。しかし、2.、3.のような使い方をするには、CAS-UBの出版物の記事とUBテキストの構造について詳しく知っていることが前提になります。

次回は、UBテキストについて少し詳しく説明します。

CAS-UB V5のプレゼン資料:デジタル出版物制作Webサービス CAS-UB V5による シングルソースパブリッシング
関連記事:CAS-UB V5にアップグレードしました。レスポンシブなWebページ生成や、UBテキスト機能の公開などが目玉です。

Wordに埋め込まれたイメージ画像の解像度はどうなるか?

Microsoft Wordで原稿を書くとき、イメージ画像(イメージ)をWord文書の中に埋め込むことが多い。そのWord文書をCAS-UBに取り込んで、特にPDFを生成してプリントオンデマンド(POD)で印刷本にするとイメージの解像度が低くてぼやけてしまう経験がある。こうしたイメージはできればベクトル図形にするべきだが、画面のスナップショットなどはそうもいかない[1]

PODで本を作るときなど、これは大きな問題なので対応策を考える必要がある。

そこで、Wordに埋め込まれたイメージの解像度の扱いについて調査してみた。なお、以下の調査結果は次の条件による。
・PNG形式とJPEG形式についての調査結果を説明する。以下の調査結果は、JPEG、PNGとも共通である。
・Wordのバージョンは2013(32ビット)、動作環境はWindows10(64ビット)で調査した。

なお、解像度は縦横のピクセル数(px)とインチあたりのピクセル数(ppi)という2つの意味で用いているので注意(参考資料[2]を参照)。

Wordに埋め込まれたイメージの解像度の扱いは、Wordの内部でのイメージの持ち方に依存する。Office Open XML(OOXML)[3]でWordの内部のイメージはVMLのシェープ形式(旧形式)またはOOXMLのシェープ形式(新形式)のどちらかである。

(1) Wordの編集の画面に、イメージファイルをドラッグ&ドロップするとイメージは旧形式として保存される。
(2) イメージファイルをコピーしてWordの編集画面にペーストするか、Wordの「挿入」の「画像」で表示されるダイヤログでイメージを編集中の文書に挿入すると新形式として保存される。

Wordの「ファイル」「オプション」には、ファイル内のイメージの扱いについての設定がある(次の図)。この設定は新形式で保存されたときのみ有効である。

・「ファイル内のイメージを圧縮しない」にチェックがない状態(デフォルト)では、イメージの解像度は次の条件で圧縮される。
 取り込んだイメージの解像度をZ0pxとする。
 文書の中のイメージの幅をXmmに編集したとする。オプションで設定した既定の解像度をRppiに設定しているとき、その幅に入るイメージの解像度Z1pxは次のようになる。
 Z1=X/25.4(mm/inch)*R(ppi)
 Wordの中のイメージの解像度Zpxは、Z=min(Z0,Z1)
 
例えば、A4用紙(幅210mm)に左右各30mmの余白を設定しているとき、版面の幅は150mmである。150mmの幅は既定の解像度220ppiのとき、150mm/25.4*220=1299pxに相当する。

このため横幅がそれよりも大きい解像度のイメージは圧縮される。横幅は1299よりも小さい解像度のイメージはそのままの解像度でファイルに保存される。厳密には多少の許容範囲があり、例えば横幅1300pxのイメージは圧縮されない。

もし、Wordの編集画面でイメージの表示幅を55mm設定にして保存すると、元のイメージの解像度が55mm/25.4*220=477pxよりも大きなとき、477pxに圧縮されてしまう。
Wordで保存したファイルには圧縮された画像だけが保存されるので元に戻せない。

・「ファイル内のイメージを圧縮しない」にチェックすると、Word上でのイメージの表示幅にかかわらずイメージは圧縮されない。

イメージの解像度をWordに勝手に変更されたくない場合は、「ファイル内のイメージを圧縮しない」にチェックしておく必要がある。

なお、ドラッグ&ドロップで配置したイメージは旧形式となるが、旧形式に対しては、「ファイル」「オプション」の、ファイル内のイメージの扱いについての設定は影響を与えない。つまりドラッグ&ドロップで配置したイメージはWordの編集でサイズを表示サイズを変更しても影響を受けない

旧形式で保存されるイメージを圧縮するには、イメージを選択して表示される「図ツール」「書式」タブの「図の圧縮」ボタンをクリックして表示される「図の圧縮」ダイヤログで設定する。

【参考】
1.『XSL-FOの基礎』画像制作のこと。Word経由でインポートした画像は印刷品質の劣化が激しいため、第2版ではできるだけSVG形式に変更した件。
2.解像度とは
3.Office Open XML(OOXML)

FormatterClubセミナーでの、CAS-UBのスライドと動画を公開しました。

7月7日七夕の日のFormatterClubセミナーは、40数名のご参加いただき、大変盛況でした。大変暑い日でしたが、お集まりいただきました皆様に感謝申し上げます。

早速ですが、セミナーのCAS-UBプレゼン資料を下記に公開いたしました。参考にしていただければと存じます。

1. CAS-UBのスライド
「デジタル出版物制作Webサービス「CAS-UB」 ワンソースマルチユースのポイント AH FormatterによるPDF作成を中心に(スライドシェア)

2. 動画
CAS-UB操作の流れ(MP4形式動画)(CAS-UB Webページにて)

CAS記法によるWebページの作成:Webページ内の参考資料へのID設定と、本文から内部リンクを設定する方法

CAS-UBで次のようなWebのリンクを設定する方法を紹介します。

(1) Webページの末尾に参考資料のリストを作る。
(2) Webページの本文から、参考資料へのページ内リンクを設定する。

出来上がったWebページはこんな感じです。


図1 リンク元


図2 リンク先

HTMLで、このようなページ内部のリンクを作るには、リンク先の要素にid=id値を設定し、リンク元のアンカータグ(aタグ)のhref属性に#id値を設定します。

CAS記法では次のようにします。リンク先の要素にはユーザー独自idのマークアップを使います[1]。CAS-UBでユーザー独自のidを付けるには、二つの方法があります。難しい方法と簡単な方法があります。利用ガイドでは難しい方法のみを詳しく解説しています。(難しい方法には、自動化処理のための用途があるのですが)ここでは単にリンクを設定するだけの簡単な方法をご紹介します。

次のようにすれば良いです。

1.リンク先に:id=id値 という属性名と属性値を設定する
2.リンク元に[[#id値|アンカーテキスト]] というマークアップをする。

上の例では次のようになります。

1.リンク先
CAS記法のマークアップ:
*::nolabel:id=s1 [1] [[http://stackoverflow.com/questions/42618628/how-to-convert-office-file-to-image/43161134|How to convert office file to image]]
HTMLでは右のようになります:
<ul class=”nolabel”><li id=”s1″>[1] <a href=”http://stackoverflow.com/questions/42618628/how-to-convert-office-file-to-image/43161134″ >How to convert office file to image</li>

2.リンク元
CAS記法のマークアップ:
StackOverflow の質問(英語)[[#s1|[1~]]]より引用
HTMLでは右のようになります:
StackOverflow の質問(英語)<a href=”#s1″ >[1]より引用

::nolabelはリンクとは関係なく、CSSで箇条書きのラベルを付けないようにするためのクラス属性の設定です。
:id=s1 が箇条書きの項目(li)のid属性になります。

参考資料
[1] CAS-UBでは見出しや図・表のキャプションには自動的にidを設定します。ユーザーがCAS記法で設定するidについては、自動設定のidと区別するためにユーザー独自idという表現をしています。これは、HTMLでは通常のid属性にあたります。
[2]第9章 CAS記法の属性マークアップリファレンス
[3] ここでCAS-UBで作ったHTMLを埋め込んだWebのページ: Microsoft Office(マイクロソフト オフィス)のファイルを、プログラム開発者が自力でPDFや画像に変換するには、どうしたら良い?

ワンソースマルチユースの課題:HTMLソースのオーサリング問題を改めて考えてみようと。

2017年になってから久しぶりにWebページを自分で編集・更新をし始めています。XHTML形式のWebページをoXygenというXMLエディタ[1]で編集しているのですが、このところ毎日Webページ制作の生産性の低さに辟易しています。

少し遡っての個人的な経験ですが、私は2000年頃からドキュメントの多くをXML(XHTML)で作成するようになり、Webページなども簡単なHTMLタグの組み合わせで作成していました。それらのWebページはXHTMLタグでマークアップして簡単なCSSでレイアウトを施したものです。今から見ますと原始的なものですが、この頃のマークアップ編集はAntenna House XMLエディタという自社開発のXMLエディタを使っていました。この間、Antenna House XMLエディタは、開発があまり進まず、時代の流れに遅れてしまい、結局、販売も断念してしまいました。

その間、HTMLのタグを直接編集するのはどうも生産性が低いのでなんとかうまい解決策がないものかと考えていました。そうした経験からWiki記法のような簡易マークアップを使ってHTMLを書くことで、HTML制作の生産性を高めることができるだろう、と考えました。それが、2010年にCAS-UBの開発を開始した一つの理由です。CAS-UBはWiki記法を拡張したCAS記法をつかってHTML文書を記述します[2]。これは檜山正幸さんという天才的なアーキテクトに設計していただいたものです。自分で言うのもなんですが、いつも良く出来ていると感じます。CAS記法をなかなか普及させられないのは、偏に私のマーケティング力が足りないからだと反省します。

もう一つの理由は、出版の世界は一品生産のため、DITAマニュアルの制作システムのように大きな投資が必要なシステムを作るのは難しいので、PDFとEPUBを作る仕組をWebサービスとして提供するのが向いているのではないかと考えたことです。CAS-UBは出版物を作る仕組としてうまく機能するようになっています。まだまだ改善が必要ですが。

そうしたことで、2011年頃から、業務上の文書はOffice、簡単なWebページはブログ、出版物にするときはCAS-UB、といった使い分をしていました。そんなことで、個人的には問題も感じなくなり、もうワンソースマルチユースには課題はないだろうなどと考え始めていたのです。そして、ワンソースマルチユースの大きな課題であるソースドキュメント編集の問題について、やや忘れかけていました。

で、久しぶりにWebページ(HTML)をXMLエディタ(oXygen)で編集し始めて、HTML直接編集の生産性がさらに低下しているのに辟易しています。ずっと、HTMLの生産性が低い理由は、コンテンツ(原稿)とタグ(マークアップ)の二つを同時に考えるためと思っていました。しかし、今回、久しぶりにWebページを編集してみて、レイアウトのための余計なクラス属性や余計な階層構造が、さらに生産性を下げる原因になっている、と痛感しています。

ちなみに、今『CSS設計の教科書』(谷 拓樹著、インプレス発行、2016年2月第1版第4刷)を読んでいます。この本を見ますとCSSのセレクタには要素ではなく、クラス属性を指定する方を推奨しています。要素のセマンティクスにはあまり依存しないで、div要素に多数のクラスを設定し、CSSではクラスのセレクタを使って部品化し組み合わせる方法などがあります(pp.45-52 OOCSS)。こうなってきますと、今度はコンテンツの編集の際に、レイアウトのためのクラスの設定を適切に行わなければならなくなります。結局、HTMLの編集において、テキストや画像コンテンツ、セマンティクスとしてのHTMLタグ、さらにCSSレイアウトのためのクラス属性の設定、という三つを同時に考慮しなければなりません。これはちょっと? です。

見栄えの良いWebページを作るために、CSSが複雑になりメンテナンスしにくいのでクラス属性を組み合わせ、今度は内容を書くのが大変になる! って本末転倒しているように感じます。どうしたら良いんでしょうかね。

また、最近、2回ほど学術情報XML推進協議会のセミナーに参加して、皆さんの意見も伺い、久しぶりにコンテンツ制作の問題がまだ課題なんだな、と痛感している次第です。ということで、HTMLのオーサリングについて、改めて整理し直そうと考えているところです。

[1] oXygen
[2] CAS記法リファレンス
[3] 次回 HTMLを手軽に作る方法を再検討します。手軽といえば、まずWordでHTMLを作ることが思いつきます。

■シリーズ
(1) ワンソースマルチユースの課題:HTMLソースのオーサリング問題を改めて考えてみようと。
(2) HTMLを手軽に作る方法を再検討します。手軽といえば、まずWordでHTMLを作ることが思いつきます。
(3) Word2013のWord文書をHTML形式で保存を試してみる。その問題点は?
(4) HTMLを簡単に作る方法:h1要素の話(1)