:整形済みブロックCAS記法でマークアップの一覧表はこちらです。テキストエディタは使い易いものがいろいろあります。無料のものまであります。テキストエディタによる編集は、Webブラウザから操作するよりも、実に素早く便利です。CookBook』は、電子の紙PDFを企業向けのシステムで編集したり、加工したりする方法を紹介する本です。PDFをメイン素材とする料理本です。APIには無料でお使いいただける評価版を用意しています。次のページをご参照ください。本書で紹介しているプログラム例は次のページよりダウンロードしていただけます。[[www.antenna.co.jp/ptl/cookbook/source/]](省略)本書はシリーズ2巻目にあたります。APIの機能のうち第1章セキュリティ、第2章透かし、第3章しおりをテーマに取り上げています。CookBook』第1巻として参照しています。32000-1)は権限をもたないユーザーによるPDF文書へのアクセスを防止するための暗号化機能として、共通鍵(パスワード)による暗号化と公開鍵による暗号化の2種類を規定しています。本章の第1節ではパスワードによる暗号化の機能と使い方を説明します。APIは公開鍵による暗号化の機能はありません。32000-1には規定されていない、独自の閲覧制限機能があります。第3節では独自の閲覧制限の使い方について説明します。sectionPDF文書の内容はパスワードによって暗号化することで、権限をもたないユーザーによるアクセスを防止できます。32000-1の用語ではパスワードによる暗号化機能を標準セキュリティハンドラと呼びます。PDFは上位バージョンほど標準セキュリティハンドラの機能が強化されています。AES]]]のどちらかを選択します。[[https://ja.wikipedia.org/wiki/RC4]]))。http://www.cryptrec.go.jp/topics/cryptrec_20110912_aes_cryptanalysis.html]]))。PDFのバージョンによって暗号化に使うキーの長さに制限があります。暗号化のキー長]]]はパスワードの文字数(パスワードの長さ)ではなく、標準セキュリティハンドラが内部的に計算して作成する値です。32000-1で規定されています。1.4以降では暗号化のキー長は40ビット超128ビット以下の範囲で8の倍数単位で設定できます。PDFアプリケーションの多くは128ビットに固定しています。APIでは暗号アルゴリズムの種類と暗号キーの長さを指定できます。APIでは暗号化するときのキー長は40ビット、128ビット(256ビット)のどちらかを指定できます。暗号を解読するときは8の倍数で可変のキー長の指定を受け付けます。AESの仕様では暗号のキー長は128ビット以上とされています。40ビットを規定しているのは誤りの可能性があります。いずれにせよ新しく作成するPDF文書に40ビット暗号は使わないことを推奨します。APIでは、入力PDF文書のバージョンと指定した暗号アルゴリズムと暗号キーの長さの組みによって、出力されるPDF文書のバージョンは、次表のようになります。オーナーパスワード]]]のどちらか一方または両方を設定できます。ユーザーパスワードはPDF文書を開くためのパスワードです(詳細は[[##e.i02-0004.ユーザーパスワードによるセキュリティの設定]]を参照)。オーナーパスワードはPDF文書の利用権限を設定するパスワードです(詳細は[[##e.201805301211.オーナーパスワード]]を参照)。ユーザーパスワードとオーナーパスワードは異なっている必要があります。*ユーザーパスワードのみ設定されていると、ユーザーパスワードを入力してセキュリティの変更や解除ができます。*オーナーパスワードのみ設定されていると、オーナーパスワードを入力してセキュリティの変更や解除ができます。セキュリティの情報を取得]]]します。=処理の概要PDF文書のセキュリティ設定は、PDF文書のトレイラーにある暗号辞書に記録されています。暗号辞書からユーザーパスワードの設定状況とオーナーパスワードの権限設定内容を取得して画面に表示します。入力PDF文書にユーザーパスワードが設定されているとき、PDF文書を開くには正しいパスワードの入力が必要です。GetEncryptInfo.png}}次は暗号化キー長256ビットのAESでオーナーパスワード設定したPDF文書の例です。GetEncryptInfo1.png}}次は暗号化キー長256ビットのAESで添付ファイルのみ暗号化したPDF文書の例です。GetEncryptInfo-2.png}}UBテキストによるフローは次のようになります。難しく考えることはなくテキストファイル(UBテキスト)のダウンロードとアップロードが追加になるだけです。V5にアップグレードしました。レスポンシブなWebページ生成や、UBテキスト機能の公開などが目玉です。cas-support返信MathMLが今後どのように普及するか、未来を考えてみたい。このため、まずは、2017年11月時点での現状を整理してみる。○数式エディタデザインサイエンス社のMathTypeは数式専用のエディタであり、編集した数式をMathMLで出力できる。MathTypeをWord、Pages、iBooksAuthorなどのワープロに組み込んで使える。Wordはバイナリ文書(doc)形式の時代には、MathTypeの簡易版を組み込んでいた。2007より独自開発の新しい数式エディタを内蔵している[1]。(OMML))で保存される[2]。このOMML形式の数式をWord内蔵のスタイルシートでMathMLに変換したり、Wordの編集画面から数式をコピーしてメモ帳にMathMLとして貼り付けることができる。○TeXから変換TeXマークアップをMathMLマークアップに変換するツールは様々なところからオープンソースとして提供されている。AuthorはLaTeXで数式を書くことができる。その場合は「blahtex」を使ってLaTeXで入力した数式をMathMLに変換している[3]。AuthorはMathMLを直接記述して数式を入力できる[4]。○XML文書MathMLはXML形式のマークアップである。XMLではメインの文書の中に他の語彙によるマークアップを組み込む、名前空間という仕組が用意されている。名前空間を使えば任意のXML文書にMathMLを組み込むことができる。以下に主なマークアップ語彙でのMathMLの採用例を挙げる。○XHTMLXHTMLは、HTMLをXMLとして表現した語彙であり、上記の名前空間の機構をつかってMathMLを組み込むことができる。○HTML5HTML5は、MathMLの語彙をHTML5の要素と同様に扱ってHTML5文書中に記述できる(ネイティブサポートという)。して組み込まれたMathMLによる数式の解析は、XMLとして組み込まれたときの解析とは若干の相違が生じる。3.0仕様書に整理されている[5]。○EPUB3EPUB3.1は、MathMLを本文中に組み込むことができる。若干の制約が付いている[6]。正式版V1.1および安定ドラフト版V1.2d1は、いずれもMathMLを組み込める。数式の最上位は<mml:math>である。1.1で導入されたforeign要素を特殊化してMathMLを使えるようにする必要があった。1.3では数式とMathMLの二つのドメインが追加された。MathMLドメインを使えば特殊化する必要がなくなった[7]。GroupはDAISY3標準で数式をアクセシブルにするための仕様の策定を最優先課題としている[8]。可視化(ビジュアルレンダリング)○ブラウザネイティブFireFoxはMathMLをブラウザ自体の機能で可視化できる。MathMLの要素や属性などを完全にサポートしている状態ではない。MathJax、KaTeX、MediaWIkiに対して、FireFoxのネイティブなMathMLレンダリングを強制するためのAdd-onも用意されている[9]。Safariは5.1からMathMLをサポートしている。それはボランティアによるWebKitの改善努力に依存するものであまり高精度とは言えなかった[10]。IgaliaによるWebKitの改善が続けられている[11]。Chrome、EdgeはMathMLをサポートしていない。DevelopperのページではMathMLサポートに関する投票が行われている[12]。○MathJaxによるサポートMathJaxはMathMLをサポートしないブラウザの上で、MathMLを表示するJavaScriptプログラムである。MathJaxは多くの学会や団体が支援しており、最も成功したオープンソースの一つとして普及している。MathJaxの最新版は2.7(2017年8月リリース)である。MathJaxは、現在、3.0を開発中である。3.0ではアーキテクチャが根本的に変更になることが告知されている[13]。○プラグイン数式レンダラデザインサイエンス社のMathPlayerは、当初は、IEのプラグインとして普及した。IE10以降ではMathPlayerをプラグインとして使うためのAPIが禁止になってしまった。読み上げ(音声レンダリング)○デザインサイエンス社のMathPlayerは、MathMLを音声で読むことができる[14]。MathPlayerは無料で配布されている。勧告の歴史はMathML勧告のバージョン史[15]にまとめられている。Editionでは、主にHTML5でMathMLを使うのに適合するようにXMLのパースに関する前提条件の変更の改訂がなされた。まとめMathMLは、ドキュメントをXMLで記述するときに、数式を表現する技術として重要な存在である。常に順風満帆という状態ではないが、徐々に普及していることが確かめられる。XML以外ではHTML5でもネイティブにサポートされている。ブラウザのネイティブレンダリングに向けて足並みが揃っている状態ではない。MicrosoftのEdgeのプロジェクトでMathMLサポートへの投票が行われているが、投票者のコメントを見ると視覚障害者から熱烈な要望が多いようだ。WebKitの数式(MathML)でSafariはボランティアの努力を採用し、数式を表示できる。Chromeは同じものを不採用として批判を浴びる。コメントをどうぞ索引について―階層化索引を簡単に作る方法を考えました。前回[1]は、主に索引の目的について考えてみました。今回はちょっと実践的に、ECMJ流!のシリーズの制作の際に階層化索引を簡単に作る方法を考案しましたので、それについてご紹介します。階層化索引というのは例えば次のような形式です。この例では親階層が「Eコマース」、「Eコマース革命」です。その子供の索引として「大企業のEコマース」、「中小企業のEコマース」などがあります。Eコマースが共通ですので、表示を簡素化するためダッシュで代替しています。○PDFのとき巻末に索引を自動生成し、索引語または(複数箇所あるとき)索引語のカウンターから本文の索引語位置への内部リンクを設定CAS-UBの編集画面には簡単な索引を作る対話式のダイヤログがあり、これを使えば1階層の索引を簡単につくることができます[2]。残念ながら、現在のところ、編集画面のダイヤログでは階層化索引を作ることができません。そこで、CAS-UBの編集画面で手入力でCAS記法のマークアップすることになります。CAS記法のマークアップの説明はこちら:CAS記法リファレンス親子の索引は本文に次のようにマークアップします。子供の索引語]]]]]]xxxに親の索引語の読み、yyyに子供の索引語の読みしかし、どうもまだるっこしいので、テキストファイルとして索引を用意する方法を考えてみました。上の図の例の索引を作るには、次のようなテキストファイルを用意します。――以降の2年間]]]]]](:nodispは索引語をPDFとEPUBの本文に表示しないという指定です)それで索引語検索して、ヒットしたところに、索引のマークアップを貼り付けていきます。(1)「大企業のEコマース」を検索します。(2)ヒットした中で索引を付ける箇所を選択します。この場合は(9,76)の位置に付けますので、(9,76)をクリックします。(3)すると編集画面で(9,76)の位置にジャンプします。大企業の――]]]]]]をコピーして、索引語の前に貼り付けます。(4)貼り付けた結果は次の図のようになります。(5)PDFとEPUBを作成すると索引のページが自動的に作られ、索引の各項目から本文へのリンクが設定されます。本文の索引語が非表示でもリンク先としては有効ですので、索引のマークアップは索引からジャンプしたい箇所に設定して置くのが良いです。索引論再訪ー索引の目的とは。1階層の索引の作り方は、動画とブログで紹介しています。動画とブログは下記の過去記事をご覧ください。CAS-UBではEPUBに索引を自動的に出力できます。索引の作り方を考える。一歩進んで、本文に出てこない索引語や、索引語の階層化の試み。cas-support返信ブログの記事を整理した本文ができあがりました。本には索引が必要ですので、簡単な索引を設定します。本文で索引項目を選定します。日本語の漢字を含むときは、索引の読みを入力して、「CAS記法」をクリックすると索引がマークアップされます。アルファベット・カタカナ・ひらがなは読みの入力は不要です。本文中に表示されない索引項目は位置だけ指定し、索引語と(必要なら)読みを入力します。索引のマークアップには:nodisp属性が付きます。PDFに索引を「出す」「出さない」を設定します。(索引項目が一つもないと、「出す」としても索引ページはできません。目次に索引ページが追加されています。索引項目には本文へのリンクが設定されます。※PDFの生成設定は本文二段組みとなっている。索引を追加する(mp4動画です)【デモ動画一覧】(それぞれMP4ファイルを表示します)(1)新出版物を作り『蕎麦の味と食い方問題』(青空文庫)をコピーする(2)ルビ、縦中横、リンクをマークアップする(3)Wordからの外部入力の操作例(4)PDF生成の基本設定(5)PDF生成のレイアウト調整(6)PDFの後書きのページ内配置と見出しの指定変更(7)『XSL-FOの基礎』サンプルレイアウト改善の例(8)ブログをコピーして節の本文に貼り付け、項の見出しを付ける(9)目次に出す見出しのレベルを二つから一つに変更する(10)検索、検索・置換する、記事の先頭はそのままにする(11)Word文書で作成した「前書」を追加します。cas-support返信ブログの記事を整理した本文ができあがりました。そこで、Word文書で作成した「前書」を追加します。【シナリオ】1.本文第1章~第9章に「前書」を追加する2.まえがきはWordの原稿で用意する3.Wordの原稿からインポートする4.記事の種類を「前書」に設定する※「前書」は自動的に目次の前に配置する「前書」には番号は付かない※PDFの生成設定は本文二段組みとなっている。Guidelines」[1]を紹介する。EPUB3.0のパッケージ中は、XHTML5、CSS、SVGとJavaScriptというWebコンテンツ形式で構成する。従って、アクセシビリティの基本はWebアクセシビリティ、つまり、WCAG(Webアクセシビリティガイドライン)とWAI-ARIA(アクセシブルなリッチインターネット・アプリケーション)である。EPUB3.0には、PLS辞書(発音辞書)、ナビゲーション文書のような独自の機能もある。EPUB3.0では、音声読みあげツールなどの支援技術を使ったときにも、本の読み順が分かりやすいようにマークアップしなければならない。EPUB3.0のアクセシビリティを高めるポイントは非常に多岐にわたる。Guidelinesは、次の構成になっている。Started」の見出しがO’Reilly本の広告へのリンクになっているので注意)。この資料は、Webページとして閲覧できるほか、EPUB形式でも無料でダウンロードできる。PDFのアクセシビリティ。ワンソースマルチユースのもう一つの応用。cas-support返信JEPAサイトで完成版公開ナビゲーションナビゲーションは航法、航海術を表す言葉であり、船舶や航空機などを目的地まで導くことやその役割を意味する。近年は、インターネットのWeb、電子書籍などのデジタル出版分野でも目的とする情報にたどりつくことやそのための手段のことをナビゲーションというようになった。ちなみにHTML5でナビゲーション用のリンクをグループ化する<nav>タグが定義された。ここでは、デジタル出版物を中心としてナビゲーションについて検討する。紙の本ではナビゲーションという言葉は使わない。機能としてのナビゲーション、すなわち目的の情報に導く手段はいろいろある。紙の本で目的地を示す情報には、見出し番号と見出し、図表番号とキャプション、ノンブル(ページ番号)、柱などを用意する。目的地に導く方法として、ぱらぱらとページをめくって探す、目次から辿る、索引や図表一覧から辿るなどが使われる。紙のしおりを挟む、付箋を貼るなどの手段を使うことがある。PDFPDFは紙の本をデジタル化したものなので、目的地を示す情報は紙で用意されている項目と同じである。目的地に導く方法は、PDFに用意するものとしては、アウトラインツリー(目的地毎にアウトライン項目を用意し、アウトライン項目をツリー構造で示したもので、Acrobatでは、アウトラインツリーを「しおり」表現している)、サムネイルなどがPDF独自の方法である。アウトライン項目、目次の見出し、索引の項目から目的地へのリンクを設定できる。紙より便利な点は、リンクのテキストをクリックすると目的地にハイパージャンプできることである。用意しているのは普通である。紙のページをぱらぱらめくるのに相当する機能が用意されているPDFリーダーはあまり見かけない。読んでいるPDFに対してユーザーが自分専用の目的地のしるしをつけるためのカスタム手段は、PDFリーダーがサポートすべき項目であるが、こうした機能をもつPDFリーダーは見かけない。EPUB3EPUB3では目的地を示す情報として読者に見えるのは、見出し番号と見出し、図表番号とキャプション位である。EPUB3では柱で目的地を示すことができないし、特にリフロー型EPUBではEPUBリーダーが表示するページ番号は目的地を示すために使えない。ハイパーリンクの行先アドレスは、目的地を示すが可視化されない。指定したファイル)を必ず用意しなければならない。制作ガイドでは「版元から特に指示がないかぎり、カバーページ、目次ページ、奥付ページへのリンクのみとする」とされているなど、あまり重視されていない。ナビゲーション・ファイルとは、別に、本文とは同様なレイアウトを設定する目次ファイルを用意することが多い。索引や図表一覧などは用意することができるが、市販の電子書籍ではあまり使われていない。紙より便利な点は、リンクのテキストをクリックすると目的地にハイパージャンプできることである。用意しているのは普通である。スライダーでページ素早く進むインターフェイスを用意しているEPUBリーダーもある。読んでいるEPUBでユーザーが自分専用の目的地のしるしをつけるためのカスタム手段をサポートするEPUBリーダーも珍しくない。全体としてEPUBのナビゲーションは紙と比べて機能が低い。cas-support返信CAS-UBでユーザーが段落・パラグラフ(p要素)を配置できる要素について検討してみます。以下は、CAS-UB実装メモであり検討中のものです。注意)CAS-UBは内部的にはHTMLを主にクラス属性を使って拡張した形式でデータを処理しています。コンテンツを記述するのは簡易マークアップ記法であるCAS記法を用いているため、HTMLで使うことのできるすべての要素の組み合わせを記述することができません。class=”level9′′)の内容pはh1~h6タグの兄弟となる。〇引用(blockquote)pはblockquoteの子供である。引用の中に見出し(h1~h6)を置いたとき、pはdivの子供でh1~h6の兄弟となる。1.短い引用は段落の中に取り込む。MLAは散文なら4行以内は取り込む。([1]p.124)2.散文の長い引用。一段落またはその一部だけを引用するとき、一行目を他の行よりもインデントしない。二つ以上の段落を引用する必要があるとき、各段落の一行目を1/4インチだけ追加でインデントする。オリジナルが最初の段落を深くインデントしてないなら、最初の段落をインデントしないで2段落以降のみインデントする。th)HTMLのモデルではliの中にpを置くことができるがCAS記法では記述できない。HTMLの表を直接埋め込んだ場合には、表のセルはパラグラフを複数含むことができる。〇箇条書きの説明(li)HTMLのモデルではliの中にpを置くことができるがCAS記法では記述できない。liの内容が二つ以上のパラグラフをもつことはない。〇用語定義リストの説明(dt)HTMLのモデルではliの中にpを置くことができるがCAS記法では記述できない。liの内容が二つ以上のパラグラフをもつことはない。〇特殊なブロックCAS記法では、次の5種類のクラス属性をもつdiv(ブロック)を特殊化したブロックと言い、それぞれにスタイルをあらかじめ指定しています。class=”tbl”)1~5でpはdivの子供である。〇検討事項CAS記法ではクラス属性のないdivの中にパラグラフを記述できます。このときpはdivの子供となります。→継続する段落はpにcont属性を付ける。段落と段落の間に空きがあったとき。Type”[2]に、段落のレイアウト・スタイルの様々な見本が掲載されている。英語の本の箇条書き(リスト)のスタイルについて調べてみました。調査は不十分で規則として言えるような段階ではないですが。この文章では、箇条書きとリストは同じ意味で用いています。最初にルールブックの記述を見ます。Style:1、(a)、(i)の順だが、1、(i)、(a)でも良い・階層が深い時は、大文字のアルファベット、大文字のローマ数字を使っても良い・項目の階層が無い時はビュレットのようなタイポロジカル記号を使う。ビュレットと項目テキストの間はenスペース。Style[2]テキストの中に入るリストと縦に配置するリストがある。リストを縦に配置するのは次のとき。(6.124)・タイポグラフィックに目立つようにする・長い・階層がある項目を番号付ける時、番号にはピリオドを付けて、テキストは大文字で開始する。項目が2行以上になるときはハンギング・インデントとする。番号付きリストでは先頭は1行目のテキスト開始位置に揃える。インデントする代わりに項目間を空けても良い。(6.127)項目が長い時は、番号付き段落としても良い。(6.128)番号付きリストをさらに階層化するときは、番号と文字の両方を使ってよい。数字は最下位で桁ぞろえする。括弧で括る文字はローマンでもイタリックでも良い。階層が深い時の例:I.>A.>1.>a)>(1)>(a)>i)(6.130)3.実際の本におけるスタイル実際の英語の本(4冊)で縦に配置する箇条書き(ディスプレイ)スタイルをチェックしてみました。確認したケースが少なく、基本的にデザイン依存ですので一般的な要件とは断言できませんが、次のようになっていました。ラベルのない箇条書き実際の本では、番号や記号のラベルをつけないで項目を並べる箇条書きは、事例を挙げるまでもなくかなり頻繁にでてきます。番号なし箇条書き番号なし箇条書きは、各項目の先頭にビュレットを置いて項目を目立つようにするものであり、ビジネス本などでは良く見かけます。その特徴は:・ブロック全体の左余白は文脈依存である。言えばビュレットの位置をブロックのパラグラフ左開始位置に置くのが多いようだ。・ブロックの前・後の空きは文脈依存である。・項目と項目の間を項目内の改行幅よりも広くすることがある・ビュレットと項目のテキスト間には若干の空きがある。項目が長い時、2行目は1行目のテキスト開始位置に揃える。番号付き箇条書き番号付き箇条書きもビジネス書などで頻繁に見かけます。その特徴は:・ブロック全体の左余白は文脈依存である。言えば番号の位置をブロックのパラグラフ左開始位置に置くのが多いようだ。・ブロックの前・後の空きは文脈依存である。・番号と項目のテキストの間には若干の空きがある。項目が長い時、2行目は1行目のテキスト開始位置に揃える。・第一階層の番号は通常はアラビア数字で区切りにはピリオドを付ける。cas-support本の形を考える―段落と段落のスタイルを考える(草稿)(4月5日)[1]で次のように書きました。Rule”[2]には次のように記述されています。章、節、項の見出しに続くテキストの最初の行は左マージンまでフルに配置され、パラグラフのインデントはない。続く各パラグラフの最初の行は通常インデントされる。(p.15)このパラグラフ・スタイルを自動組版でできるだけ簡単に実現するには、先頭の段落とはなにかをプログラムで処理できるように規定する必要があります。そのために実際の本ではどうなっているかを調べてみました。Times”[3]の一部分です。この本では、章、節の見出しに続く第1段落は字下げなし、第2段落以降は字下げするという標準的な段落スタイルで組版されています。章のタイトルの直後の段落は字下げしない例(p.150)本書はニューヨークタイムズの編集現場でのフィールド調査の報告で、記者に対するインタビューの引用箇所が多数あります。引用箇所の多くでは引用の直後の段落で字下げしていません。直後の段落を第1段落として扱っているわけです。引用の直後の段落で字下げしない例(p.46)しかし、さらに調べますと、引用の直後の段落で字下げしている箇所も見つかります。引用の直後の段落で字下げする例(p.80)こうしてみますと、引用直後の段落を第1段落として扱うか、続きの段落として扱うかは文脈依存になるようです。Handbook[4]を見ても、引用文のブロックの直後の段落を継続段落(先頭行字下げ)とするか、最初の段落(先頭行を字下げしない)とするかは、文脈依存になっています。(プログラム)コードなどのブロックが入ることが多いのですが、それらのブロック直後の段落で字下げするかどうかを画一的なルールで処理するのは難しいようです。Handbookは、学部レベルのレポート執筆要綱のガイドなので本文の記述ではなく、印刷された本のレイアウトを見ています。この機会にオンラインストアを少し改善しました。第3巻』を10月下旬発売します。第4版』プリントオンデマンド版発売。技術書典5にも出品しますのでどうぞよろしくお願いします。簡単な解説10月8日(月)「アンテナハウスCAS電子出版」は、『技術書典5』に出典します。『XSL-FOの基礎』画像制作のこと。Word経由でインポートした画像は印刷品質の劣化が激しいため、第2版ではできるだけSVG形式に変更した件。EdgeのEPUB表示機能はなかなか良い。これからはEdgeだと言いたいところですが、しかし、残念な点もあります。FormatterClubセミナーでの、CAS-UBのスライドと動画を公開しました。