k_ikiの雑記帳 DTPのこと、創作のことなど、思いつくまま 2016-04-14T19:16:05+09:00 k_iki Hatena::Blog hatenablog://blog/11696248318754827609 hatenablog://entry/10328537792371148811 2016-04-14T19:16:05+09:00 2016-04-18T12:42:43+09:00 ちょっと訳ありでSJISテキストの編集 CSVテキストの各フィールド(10列分)の先頭の数字が0なら1に置換したい。 #!usr/bin/ ruby -Ks while line = ARGF.gets line.gsub!(/0(\d\d\d\d\d,)([^,]+,[^,]+,[^,]+,[^,]+,[^,]+,[^,]+,[^,]+,[^,]+,[^,])/) {"1#{$1}#{$2}"} line.gsub!(/,0/) {",1"} print line end このとき,CSVファイルのファイル名は3桁の数字であり,結構たくさんある。 なので,ターミナルにドロップしたらそのファイ… <p>ちょっと訳ありで<a class="keyword" href="http://d.hatena.ne.jp/keyword/SJIS">SJIS</a>テキストの編集<br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/CSV">CSV</a>テキストの各フィールド(10列分)の先頭の数字が0なら1に置換したい。</p> <pre class="code lang-ruby" data-lang="ruby" data-unlink><span class="synPreProc">#!usr/bin/ ruby -Ks</span> <span class="synStatement">while</span> line = <span class="synIdentifier">ARGF</span>.gets line.gsub!(<span class="synSpecial">/</span><span class="synConstant">0</span><span class="synSpecial">(\d\d\d\d\d</span><span class="synConstant">,</span><span class="synSpecial">)([^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">])/</span>) {<span class="synSpecial">&quot;</span><span class="synConstant">1</span><span class="synSpecial">#{</span><span class="synIdentifier">$1</span><span class="synSpecial">}#{</span><span class="synIdentifier">$2</span><span class="synSpecial">}&quot;</span>} line.gsub!(<span class="synSpecial">/</span><span class="synConstant">,0</span><span class="synSpecial">/</span>) {<span class="synSpecial">&quot;</span><span class="synConstant">,1</span><span class="synSpecial">&quot;</span>} print line <span class="synStatement">end</span> </pre><p>このとき,<a class="keyword" href="http://d.hatena.ne.jp/keyword/CSV">CSV</a>ファイルのファイル名は3桁の数字であり,結構たくさんある。<br /> なので,ターミナルにドロップしたらそのファイル名を受け取り,250プラスしたファイル名に変更した上で書き出したい。<br /> つまり,ターミナル上には<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>ファイルと置換元の<a class="keyword" href="http://d.hatena.ne.jp/keyword/CSV">CSV</a>ファイルを投げるだけで,置換先の<a class="keyword" href="http://d.hatena.ne.jp/keyword/CSV">CSV</a>ファイルを自動生成したかったのだ。<br /> 下のようなイメージなのかな,と思ってやってみた。</p> <pre class="code lang-ruby" data-lang="ruby" data-unlink><span class="synPreProc">#!usr/bin/ ruby -Ks</span> <span class="synPreProc">require</span> <span class="synSpecial">&quot;</span><span class="synConstant">ftools</span><span class="synSpecial">&quot;</span> path_name = <span class="synType">File</span>.split(<span class="synIdentifier">ARGV</span>[<span class="synConstant">0</span>]) file_name = path_name[<span class="synConstant">1</span>].split<span class="synSpecial">&quot;</span><span class="synConstant">.</span><span class="synSpecial">&quot;</span> new_name = file_name[<span class="synConstant">0</span>].to_i + <span class="synConstant">250</span> nf_name = <span class="synType">File</span>.join(path_name[<span class="synConstant">0</span>], new_name.to_s + <span class="synSpecial">&quot;</span><span class="synConstant">.</span><span class="synSpecial">&quot;</span> + file_name[<span class="synConstant">1</span>]) <span class="synType">File</span>.copy(<span class="synIdentifier">ARGV</span>[<span class="synConstant">0</span>], nf_name) </pre><p><span style="color: #d32f2f">2016/04/18追記:</span><a class="keyword" href="http://d.hatena.ne.jp/keyword/csv">csv</a>ファイルの中身をいじるわけではないので<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%F3%A5%B3%A1%BC%A5%C9">エンコード</a>の指定が<a class="keyword" href="http://d.hatena.ne.jp/keyword/SJIS">SJIS</a>である必要はない。上記ソースのままだと動かないが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%F3%A5%B3%A1%BC%A5%C9">エンコード</a>をKuにしたら動いた。(2016/04/18追記・以上)<br /> 一応,プラス250したファイル名の<a class="keyword" href="http://d.hatena.ne.jp/keyword/CSV">CSV</a>は同じフォルダに出来ている。<br />  <br /> 最初の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>をくっつけてみる。</p> <pre class="code lang-ruby" data-lang="ruby" data-unlink><span class="synPreProc">#!usr/bin/ ruby -Ks</span> <span class="synPreProc">require</span> <span class="synSpecial">&quot;</span><span class="synConstant">ftools</span><span class="synSpecial">&quot;</span> path_name = <span class="synType">File</span>.split(<span class="synIdentifier">ARGV</span>[<span class="synConstant">0</span>]) file_name = path_name[<span class="synConstant">1</span>].split<span class="synSpecial">&quot;</span><span class="synConstant">.</span><span class="synSpecial">&quot;</span> new_name = file_name[<span class="synConstant">0</span>].to_i + <span class="synConstant">250</span> nf_name = <span class="synType">File</span>.join(path_name[<span class="synConstant">0</span>], new_name.to_s + <span class="synSpecial">&quot;</span><span class="synConstant">.</span><span class="synSpecial">&quot;</span> + file_name[<span class="synConstant">1</span>]) <span class="synType">File</span>.copy(<span class="synIdentifier">ARGV</span>[<span class="synConstant">0</span>], nf_name) <span class="synType">File</span>.open(nf_name, <span class="synSpecial">'</span><span class="synConstant">w</span><span class="synSpecial">'</span>) <span class="synStatement">do</span> |<span class="synIdentifier">io</span>| <span class="synStatement">while</span> line = io.gets line.gsub!(<span class="synSpecial">/</span><span class="synConstant">0</span><span class="synSpecial">(\d\d\d\d\d</span><span class="synConstant">,</span><span class="synSpecial">)([^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">]+</span><span class="synConstant">,</span><span class="synSpecial">[^</span><span class="synConstant">,</span><span class="synSpecial">])/</span>) {<span class="synSpecial">&quot;</span><span class="synConstant">1</span><span class="synSpecial">#{</span><span class="synIdentifier">$1</span><span class="synSpecial">}#{</span><span class="synIdentifier">$2</span><span class="synSpecial">}&quot;</span>} line.gsub!(<span class="synSpecial">/</span><span class="synConstant">,0</span><span class="synSpecial">/</span>) {<span class="synSpecial">&quot;</span><span class="synConstant">,1</span><span class="synSpecial">&quot;</span>} print line <span class="synStatement">end</span> <span class="synStatement">end</span> </pre><p>IOErrorと怒られちゃった(泣)<br /> <span style="color: #d32f2f">2016/04/18追記:</span><a class="keyword" href="http://d.hatena.ne.jp/keyword/csv">csv</a>ファイルを<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E6%A5%CB%A5%B3%A1%BC%A5%C9">ユニコード</a>に置換し、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%F3%A5%B3%A1%BC%A5%C9">エンコード</a>をKuにして試しても、やはりダメだった。(2016/04/18追記・以上)<br /> コピーしたファイルが存在するんだから普通に開けると思ったのに。<br /> 中年オヤジ,この時点で根気が尽きる。<br /> もう帰る〜,って感じでした。</p> k_iki Edicolorの正規表現 hatenablog://entry/12921228815717749717 2014-02-03T12:19:36+09:00 2014-02-03T12:22:52+09:00 EdicolorはVer.8からドキュメント上で正規表現検索置換が可能となった。 だが。たとえばこんなテキストがあったとして。 最初は最小一致検索で指定してみたんだけどエラーが出た。 そこで最小一致検索をあきらめ、より具体的な検索パターンに切り替えてみる。 (上記画像は正規表現のチェックボックスをONにする前に画面キャプチャを保存してしまったが、実際はチェックしてから検索している) 一行目は最初のパターンしか置換しない上、そのまま「$1」に置換されてしまった。 正規表現のバージョンがInDesignと違うんだな、と思って置換側にバックスラッシュ+1で呼び出してみたけど、やはりうまくいかない。そ… <p>EdicolorはVer.8からドキュメント上で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>検索置換が可能となった。<br /> だが。たとえばこんなテキストがあったとして。<br /> 最初は最小一致検索で指定してみたんだけどエラーが出た。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20140203/20140203105141.png" alt="f:id:k_iki:20140203105141p:plain" title="f:id:k_iki:20140203105141p:plain" class="hatena-fotolife" itemprop="image"></span><br /> そこで最小一致検索をあきらめ、より具体的な検索パターンに切り替えてみる。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20140203/20140203104542.png" alt="f:id:k_iki:20140203104542p:plain" title="f:id:k_iki:20140203104542p:plain" class="hatena-fotolife" itemprop="image"></span><br /> (上記画像は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C1%A5%A7%A5%C3%A5%AF%A5%DC%A5%C3%A5%AF%A5%B9">チェックボックス</a>をONにする前に画面キャプチャを保存してしまったが、実際はチェックしてから検索している)<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20140203/20140203104549.png" alt="f:id:k_iki:20140203104549p:plain" title="f:id:k_iki:20140203104549p:plain" class="hatena-fotolife" itemprop="image"></span><br /> 一行目は最初のパターンしか置換しない上、そのまま「$1」に置換されてしまった。<br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>のバージョンが<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>と違うんだな、と思って置換側にバックスラッシュ+1で呼び出してみたけど、やはりうまくいかない。それどころか一度はヒットしたはずの検索パターンもうまくヒットしてくれない。<br /> 何度かやるとたまにヒットするんだけど、置換後はやっぱりバックスラッシュ+1となってしまう。<br /> マシン固有のエラーかもしれないので、次に時間ができたら他の端末に入っているEdicolor10でも試してみる。</p> k_iki ICCプロファイルが埋め込めない hatenablog://entry/12921228815717748572 2014-02-03T12:16:56+09:00 2014-02-03T12:16:56+09:00 Illustratorの保存オプションにおいて、ICCプロファイルの埋め込みの可否を選択できる。 ICCプロファイルの埋め込みに関しては、埋め込まないのを原則としているところは少なくない。 しかし、自社内フローで完結する場合、及び他社間で印刷する場合でも互いの環境を合わせているならば、ICCプロファイルを埋め込むことを原則としているところもある。 で、スクリプトで埋め込みたかったのだが。 Illustrator CS6 保存スクリプト - k_ikiの雑記帳 上記で調査中として以来、結局埋め込むには手作業で行ってきた。 時間ができたので調査してみたが、もともとチェックが入っているものをスクリプ… <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Illustrator">Illustrator</a>の保存オプションにおいて、<a class="keyword" href="http://d.hatena.ne.jp/keyword/ICC">ICC</a>プロファイルの埋め込みの可否を選択できる。<br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/ICC">ICC</a>プロファイルの埋め込みに関しては、埋め込まないのを原則としているところは少なくない。<br /> しかし、自社内フローで完結する場合、及び他社間で印刷する場合でも互いの環境を合わせているならば、<a class="keyword" href="http://d.hatena.ne.jp/keyword/ICC">ICC</a>プロファイルを埋め込むことを原則としているところもある。<br /> で、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>で埋め込みたかったのだが。<br /> <a href="http://kstation2.hatenablog.com/entry/2013/06/28/183300">Illustrator CS6 &#x4FDD;&#x5B58;&#x30B9;&#x30AF;&#x30EA;&#x30D7;&#x30C8; - k_iki&#x306E;&#x96D1;&#x8A18;&#x5E33;</a><br /> 上記で調査中として以来、結局埋め込むには手作業で行ってきた。<br /> 時間ができたので調査してみたが、もともとチェックが入っているものを<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>で外すのは可能。<br /> しかしもともとチェックされていないものを<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>でチェック入れるのは不可能。<br /> なんじゃそりゃ。</p> k_iki 正規表現で字形を選択 hatenablog://entry/12921228815713392692 2013-11-29T16:31:22+09:00 2013-11-29T16:32:31+09:00 例えば、茨城県の「茨」について。 リュウミンの標準字形だと、にすいの部分の上側の画は右下がりの形だ。 これをくさかんむりと平行な画の字形にしたいなら、字形パネルで変更すればいい。 で、字形パネルで確認すれば、その異体字はエキスパート字形だとわかる。 ドキュメント中に出てくる茨をすべてエキスパート字形にしたければ、 まず文字スタイルを作っておく。 段落スタイル中で正規表現スタイルを作れば、 そのスタイルで使われる茨はすべてエキスパート字形に。 茨城のときだけエキスパート字形に、という場合は肯定先読みで対応できるけど、 たとえば「茨城の茨という文字」などというテキストに対しては、 もちろん前者の茨… <p>例えば、茨城県の「茨」について。<br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%E5%A5%A6%A5%DF%A5%F3">リュウミン</a>の標準字形だと、にすいの部分の上側の画は右下がりの形だ。<br /> これをくさかんむりと平行な画の字形にしたいなら、字形パネルで変更すればいい。<br /> で、字形パネルで確認すれば、その<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B0%DB%C2%CE%BB%FA">異体字</a>はエキスパート字形だとわかる。<br />  <br /> ドキュメント中に出てくる茨をすべてエキスパート字形にしたければ、<br /> まず文字スタイルを作っておく。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20131129/20131129161317.png" alt="f:id:k_iki:20131129161317p:plain" title="f:id:k_iki:20131129161317p:plain" class="hatena-fotolife" itemprop="image"></span><br />  <br /> 段落スタイル中で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>スタイルを作れば、<br /> そのスタイルで使われる茨はすべてエキスパート字形に。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20131129/20131129161330.png" alt="f:id:k_iki:20131129161330p:plain" title="f:id:k_iki:20131129161330p:plain" class="hatena-fotolife" itemprop="image"></span><br />  <br /> 茨城のときだけエキスパート字形に、という場合は肯定先読みで対応できるけど、<br /> たとえば「茨城の茨という文字」などというテキストに対しては、<br /> もちろん前者の茨しか置換しないので要注意だ。</p> k_iki テキストのドラッグ&ドロップ hatenablog://entry/12921228815712834549 2013-11-20T16:36:23+09:00 2013-11-21T09:26:58+09:00 環境:Mac OSX 10.7.5 / InDesign CS6 および CC InDesignのフレームグリッド内のテキストを、別のフレームグリッドまたは編集中のフレームグリッド内の別の段落などにコピー&ペーストすると書式が外れる。 具体的には、部分的に書式を変更しておいた場合にコピー&ペーストすると…… 上図、一行目は文字スタイルを適用せず、二行目には文字スタイルを適用してある。 通常のコピー&ペーストでは、いずれも下図のように書式が外れてしまう。 文字スタイルパネルで確認すると、オーバーライドマークがついている。 これを直すには、パネル上の文字スタイルをクリックしてオーバーライドを解消す… <p>環境:Mac OSX 10.7.5 / <a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a> CS6 および CC<br />  <br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>のフレームグリッド内のテキストを、別のフレームグリッドまたは編集中のフレームグリッド内の別の段落などにコピー&ペーストすると書式が外れる。<br /> 具体的には、部分的に書式を変更しておいた場合にコピー&ペーストすると……<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20131120/20131120162101.png" alt="f:id:k_iki:20131120162101p:plain" title="f:id:k_iki:20131120162101p:plain" class="hatena-fotolife" itemprop="image"></span><br /> 上図、一行目は文字スタイルを適用せず、二行目には文字スタイルを適用してある。<br /> 通常のコピー&ペーストでは、いずれも下図のように書式が外れてしまう。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20131120/20131120162054.png" alt="f:id:k_iki:20131120162054p:plain" title="f:id:k_iki:20131120162054p:plain" class="hatena-fotolife" itemprop="image"></span><br /> 文字スタイルパネルで確認すると、オーバーライドマークがついている。<br /> これを直すには、パネル上の文字スタイルをクリックしてオーバーライドを解消するしかない。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20131120/20131120162106.png" alt="f:id:k_iki:20131120162106p:plain" title="f:id:k_iki:20131120162106p:plain" class="hatena-fotolife" itemprop="image"></span><br /> 書式の変更箇所が多ければ多いほど面倒だ。<br /> そこで、環境設定を確認。<br /> テキストのドラッグ&ドロップ編集を、レイアウトビューで有効となるようチェックを。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20131120/20131120162113.png" alt="f:id:k_iki:20131120162113p:plain" title="f:id:k_iki:20131120162113p:plain" class="hatena-fotolife" itemprop="image"></span><br /> テキストを選択し、マウスカーソルを重ねるとポインタの形がIビームポインタでなく、図のような形に変わる。<br /> そこで、オプションを押しながら目的の場所までドラッグ&ドロップ。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20131120/20131120162119.png" alt="f:id:k_iki:20131120162119p:plain" title="f:id:k_iki:20131120162119p:plain" class="hatena-fotolife" itemprop="image"></span><br /> 下図の通り、書式を保ったままコピー&ペーストできる。<br /> ストーリー丸ごとドラッグ&ドロップも可能。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20131120/20131120162125.png" alt="f:id:k_iki:20131120162125p:plain" title="f:id:k_iki:20131120162125p:plain" class="hatena-fotolife" itemprop="image"></span><br /> こんなこと、誰でも知ってるかも知れない。<br /> でも、知らない人もいるかも知れない。<br /> なので、念のため。<br />  <br /> そして追記。<br /> 普通にコピーした後、ペースト時のコマンドで「グリッドフォーマットを適用せずにペースト」するのと同じ結果です。<br /> AJABON博士に指摘されるまですっかり忘れとったわw</p> k_iki うっかりコマンド+H hatenablog://entry/12921228815711804753 2013-11-02T17:32:06+09:00 2013-11-02T17:32:06+09:00 普段、イラストレータの表示機能において、「境界線を隠す」なんて使わない。 バウンディングボックスは、隠したり隠さなかったりするけれども。 なので、時間が無いときは特に、何らかの拍子にうっかりコマンド+Hなどをやらかすと焦る。 なにせ、テキストを選択しても編集画面の見た目でなんの変更もないのだから。 ついでにバウンディングボックスを非表示にしているとさらに焦る。 選択できてないとしか思えないのだから。 いらいらしながら何度かクリックし、ふとした拍子にドラッグすると、それに応じてオブジェクトが動く。 「なんだ、選択できてんじゃん」 そこでようやく気づく。 ああ、境界線を隠していたのか、と。 ガイド… <p>普段、イラストレータの表示機能において、「境界線を隠す」なんて使わない。<br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D0%A5%A6%A5%F3%A5%C7%A5%A3">バウンディ</a>ングボックスは、隠したり隠さなかったりするけれども。<br /> なので、時間が無いときは特に、何らかの拍子にうっかりコマンド+Hなどをやらかすと焦る。<br /> なにせ、テキストを選択しても編集画面の見た目でなんの変更もないのだから。<br /> ついでに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D0%A5%A6%A5%F3%A5%C7%A5%A3">バウンディ</a>ングボックスを非表示にしているとさらに焦る。<br /> 選択できてないとしか思えないのだから。<br /> いらいらしながら何度かクリックし、ふとした拍子にドラッグすると、それに応じてオブジェクトが動く。<br /> 「なんだ、選択できてんじゃん」<br /> そこでようやく気づく。<br /> ああ、境界線を隠していたのか、と。<br /> ガイドを隠すのは便利だけど、境界線は隠す必要がないのになあ、とか思ったり。<br /> 検索してみると、案外この機能でつまづく「初心者」さんがいらっしゃる。<br /> 大丈夫、何年やっててもとまどう人もいます。(全然大丈夫じゃない)<br /> 普段使ってない機能なんて、咄嗟の時には思い出せないんだよぉ。<br />  <br /> と、いうことで。<br /> テキストを選択したはずなのに反転表示されないときは、とりあえずコマンド+Hしてみましょう。<br /> おそまつでした。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20131102/20131102173111.png" alt="f:id:k_iki:20131102173111p:plain" title="f:id:k_iki:20131102173111p:plain" class="hatena-fotolife" itemprop="image"></span></p> k_iki テキストフレームを選択順に結合 hatenablog://entry/11696248318756320238 2013-08-01T18:42:49+09:00 2013-08-01T18:42:49+09:00 InDesignerの悪あがき様にテキストフレーム結合スクリプトがありました。 古い記事ですが、CS6でもCCでも動作します。 かなり前のことになりますが、「テキストフレームを選択順に結合したいんだ」と言ってがんばってて、結局断念したことがあったのに。 まさかこんなに簡単にできるなんて(苦笑) ですが今となっては実務で使用する場面が思い浮かびません……。 いずれまた、必要なときが来るかも知れないということで、とりあえずメモ。 <p>InDesignerの悪あがき様に<a href="http://indesigner.blog101.fc2.com/blog-entry-2.html">&#x30C6;&#x30AD;&#x30B9;&#x30C8;&#x30D5;&#x30EC;&#x30FC;&#x30E0;&#x7D50;&#x5408;&#x30B9;&#x30AF;&#x30EA;&#x30D7;&#x30C8;</a>がありました。<br /> 古い記事ですが、CS6でもCCでも動作します。<br /> かなり前のことになりますが、「テキストフレームを選択順に結合したいんだ」と言ってがんばってて、結局断念したことがあったのに。<br /> まさかこんなに簡単にできるなんて(苦笑)<br /> ですが今となっては実務で使用する場面が思い浮かびません……。<br /> いずれまた、必要なときが来るかも知れないということで、とりあえずメモ。</p> k_iki 縦中横で変な挙動 hatenablog://entry/11696248318756249607 2013-07-30T08:40:32+09:00 2013-08-01T17:52:28+09:00 うーん。 縦中横で、今までお目にかかったことのない状態を確認。 これはバグと呼ぶべきかどうか。 再現性ははっきりとわかったけど、WEBあさっても情報がない。 回避策まではっきりしたら、このエントリを編集して書き直す(予定)。 ある程度判明したので追記します。 Mac OSX 10.6.8/InDesign CS4・CS5.5 Mac OSX 10.7.5/InDesign CS6・CC にて同様の現象を確認済み。 縦組みの文章物を作成中に現象に気づきました。 まず、等幅全角・等幅半角・等幅三分の各文字スタイルを用意しておきます。 等幅三分はあってもなくても現象を確認できますが、まあとりあえず。… <p>うーん。<br /> 縦中横で、今までお目にかかったことのない状態を確認。<br /> これはバグと呼ぶべきかどうか。<br /> 再現性ははっきりとわかったけど、WEBあさっても情報がない。<br /> 回避策まではっきりしたら、このエントリを編集して書き直す(予定)。<br /> <HR><br /> <b>ある程度判明したので追記します。</b><br /> Mac OSX 10.6.8/<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a> CS4・CS5.5<br /> Mac OSX 10.7.5/<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a> CS6・CC にて同様の現象を確認済み。<br />  <br /> 縦組みの文章物を作成中に現象に気づきました。<br /> まず、等幅全角・等幅半角・等幅三分の各文字スタイルを用意しておきます。<br /> 等幅三分はあってもなくても現象を確認できますが、まあとりあえず。<br /> 次に段落スタイルを作成します。下記手順にて。<br />  <br /> 自動縦中横は3桁まで。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130730/20130730183911.png" alt="f:id:k_iki:20130730183911p:plain" title="f:id:k_iki:20130730183911p:plain" class="hatena-fotolife" itemprop="image"></span><br />  <br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>スタイルはこんな感じ。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130730/20130730183920.png" alt="f:id:k_iki:20130730183920p:plain" title="f:id:k_iki:20130730183920p:plain" class="hatena-fotolife" itemprop="image"></span><br />  <br /> 縦組み中の欧文回転をONに。<br /> (あくまで、現象に気づいた際のスタイルを忠実に再現しただけです。<s>これがOFFでも現象を確認できます</s><span style="color: #cc0000">2013/07/31訂正:ONの場合にこの現象が再現します</span>)<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130730/20130730183926.png" alt="f:id:k_iki:20130730183926p:plain" title="f:id:k_iki:20130730183926p:plain" class="hatena-fotolife" itemprop="image"></span><br />  <br /> こうなります。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130730/20130730183931.png" alt="f:id:k_iki:20130730183931p:plain" title="f:id:k_iki:20130730183931p:plain" class="hatena-fotolife" itemprop="image"></span><br />  <br /> おわかりでしょうか。<br /> 2行目の途中にある二桁数字に、次の文字が重なってしまっています。<br />  <br /> 原因は単純にして<b>意味不明</b>なのですが、段落最終行末尾のキャラクタが、<b>自動縦中横のかからない数字だった場合</b>にこうなります。<br /> 従って回避方法も単純で、末尾のキャラクタが句点やスペース・改行など、数字以外のキャラクタであれば正常な状態になります。<br />  <br /> 全くもってすっきりしませんが、やはりバグじゃないかな、と。</p> k_iki 【BUG】テキストアンカーがずれる 続き hatenablog://entry/11696248318755872094 2013-07-18T11:11:13+09:00 2013-07-18T11:11:13+09:00 昨日のエントリの件です。 検証の結果、もう少しわかったので補足します。 一行目:11Q・上揃え 二行目:11Q・中揃え 三行目:11Q・下揃え 親段落は13Qなので、いずれも文字スタイルを作成して適用してあります。 これを別フレームにコピペすると…… ↑こうなります。 ここで改行マークに注目。 二行目は中揃えなのでどちらでもよろしいが、一行目と三行目の改行マークについて、文字スタイルを「なし」にしてみます。 この状態で別フレームにコピペすると…… ずれません。 なお、フレームのドラッグ移動でもずれませんでした。 ただ、フレームの最終行であっても改行を入力し、その改行コードのベースラインがシフト… <p>昨日のエントリの件です。<br /> 検証の結果、もう少しわかったので補足します。<br />  <br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130718/20130718104307.png" alt="f:id:k_iki:20130718104307p:plain" title="f:id:k_iki:20130718104307p:plain" class="hatena-fotolife" itemprop="image"></span><br /> 一行目:11Q・上揃え<br /> 二行目:11Q・中揃え<br /> 三行目:11Q・下揃え<br /> 親段落は13Qなので、いずれも文字スタイルを作成して適用してあります。<br /> これを別フレームにコピペすると……<br />  <br />  <br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130718/20130718104312.png" alt="f:id:k_iki:20130718104312p:plain" title="f:id:k_iki:20130718104312p:plain" class="hatena-fotolife" itemprop="image"></span><br /> ↑こうなります。<br />  <br />  <br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130718/20130718104326.png" alt="f:id:k_iki:20130718104326p:plain" title="f:id:k_iki:20130718104326p:plain" class="hatena-fotolife" itemprop="image"></span><br /> ここで改行マークに注目。<br /> 二行目は中揃えなのでどちらでもよろしいが、一行目と三行目の<b>改行マークについて、文字スタイルを「なし」に</b>してみます。<br /> この状態で別フレームにコピペすると……<br />  <br />  <br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130718/20130718104334.png" alt="f:id:k_iki:20130718104334p:plain" title="f:id:k_iki:20130718104334p:plain" class="hatena-fotolife" itemprop="image"></span><br /> ずれません。<br /> なお、フレームのドラッグ移動でもずれませんでした。<br />  <br />  <br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130718/20130718104343.png" alt="f:id:k_iki:20130718104343p:plain" title="f:id:k_iki:20130718104343p:plain" class="hatena-fotolife" itemprop="image"></span><br /> ただ、フレームの最終行であっても改行を入力し、その改行コードのベースラインがシフトされていない状態でないと、やはりずれます。<br /> いずれにせよ、<b>アンカーマーカーの位置ではなく、改行コードの位置に左右される</b>わけであって、明らかなバグですよね。</p> k_iki 【BUG】テキストアンカーがずれる hatenablog://entry/11696248318755854684 2013-07-17T18:20:46+09:00 2013-07-18T11:48:16+09:00 MacOSX10.6.8 / InDesign CS4 MacOSX10.7.5 / InDesign CS6・CC にて確認。 まず、このようなアンカーオブジェクトを用意します。 あらかじめオブジェクトスタイルに登録しておくことをお勧めします。 丸付き数字、スペースに続けてアンカーを挿入。 右インデントタブを入力後、ベースラインを下げた文字列を挿入。 これを別のフレームにコピー&ペーストしてみると…… あらら。どゆこと。 どうやら、ベースラインを下げた文字列のセンターに揃ってしまった模様。 試しに、アンカーより前の文字列をベースラインシフトさせた上でコピペしてみたが、そちらは影響なし。 しか… <p>MacOSX10.6.8 / <a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a> CS4<br /> MacOSX10.7.5 / <a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a> CS6・CC にて確認。<br />  <br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130717/20130717180200.png" alt="f:id:k_iki:20130717180200p:plain" title="f:id:k_iki:20130717180200p:plain" class="hatena-fotolife" itemprop="image"></span><br /> まず、このようなアンカーオブジェクトを用意します。<br /> あらかじめオブジェクトスタイルに登録しておくことをお勧めします。<br />  <br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130717/20130717180208.png" alt="f:id:k_iki:20130717180208p:plain" title="f:id:k_iki:20130717180208p:plain" class="hatena-fotolife" itemprop="image"></span><br /> 丸付き数字、スペースに続けてアンカーを挿入。<br /> 右インデントタブを入力後、ベースラインを下げた文字列を挿入。<br /> これを別のフレームにコピー&ペーストしてみると……<br />  <br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130717/20130717180216.png" alt="f:id:k_iki:20130717180216p:plain" title="f:id:k_iki:20130717180216p:plain" class="hatena-fotolife" itemprop="image"></span><br /> あらら。どゆこと。<br />  <br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130717/20130717180222.png" alt="f:id:k_iki:20130717180222p:plain" title="f:id:k_iki:20130717180222p:plain" class="hatena-fotolife" itemprop="image"></span><br /> どうやら、<b>ベースラインを下げた文字列のセンターに揃ってしまった</b>模様。<br /> 試しに、アンカーより前の文字列をベースラインシフトさせた上でコピペしてみたが、そちらは影響なし。<br /> しかも、コピペでなく、フレームをただ単にマウスドラッグで移動しただけでもずれてくれやがります。お試しあれ。<br /> なお、ベースラインシフトではなく、<b>異<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B5%E9%BF%F4">級数</a>の文字列を欧文ベースライン等で揃えている場合も、コピペやマウスドラッグによって影響を受ける</b>ことを確認しました。<br />  <br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130717/20130717180228.png" alt="f:id:k_iki:20130717180228p:plain" title="f:id:k_iki:20130717180228p:plain" class="hatena-fotolife" itemprop="image"></span><br /> ここからは対症療法の提案ですが、あんまり気持ち良くないです。<br /> まず、ベースラインが下がっている文字列以降を、改行して次行に送っておきます。<br />  <br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130717/20130717180233.png" alt="f:id:k_iki:20130717180233p:plain" title="f:id:k_iki:20130717180233p:plain" class="hatena-fotolife" itemprop="image"></span><br /> 次に、最初に作っておいたオブジェクトスタイルをOption+クリックして強制適用します。<br /> スタイルパネルを見る限り、<b>オーバーライド警告はありません。それでも強制適用</b>するのです!<br /> 多分、アンカーオブジェクトは正しい位置に来るでしょう。そうしたらさきほどの改行を削除します。ああめんど。<br />  <br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/Adobe">Adobe</a>さん、正式に報告しますんで、修正してくださいね!</p> k_iki 日本語文書における句読点 補足 hatenablog://entry/11696248318755842411 2013-07-17T13:01:40+09:00 2013-07-18T11:29:20+09:00 前回のエントリ、ブックマークいただきましてありがとうございます。 コメント等いただいておりますので、少し補足を。 「実務の友」様 テンでばらばらな句読点 に詳しいのですが、さらりと簡潔にまとめられている印象です。 上記記事の下部に示されたリンク先のひとつ、 「DDT's Room」様 横書き文の句読点について の記事が読みやすくて参考になるかと。 いただいたご意見 「和欧混植の際の句読点を統一するため、日本語文書であってもカンマとピリオド」…こんな話は聞いたことがないけど…組版的にはアカンと思う…英文のピリオド、コンマと和文の句読点としてのピリオド、コンマは別… そういやこういう話で誰が決めた… <p>前回のエントリ、ブックマークいただきましてありがとうございます。<br /> コメント等いただいておりますので、少し補足を。<br />  <br /> 「実務の友」様 <a href="http://www5d.biglobe.ne.jp/Jusl/Bunsyo/BunTouten.html">&#x30C6;&#x30F3;&#x3067;&#x3070;&#x3089;&#x3070;&#x3089;&#x306A;&#x53E5;&#x8AAD;&#x70B9;</a><br /> に詳しいのですが、さらりと簡潔にまとめられている印象です。<br /> 上記記事の下部に示されたリンク先のひとつ、<br /> 「DDT's Room」様 <a href="http://www.remus.dti.ne.jp/~ddt-miz/think/comma.html">&#x6A2A;&#x66F8;&#x304D;&#x6587;&#x306E;&#x53E5;&#x8AAD;&#x70B9;&#x306B;&#x3064;&#x3044;&#x3066;</a><br /> の記事が読みやすくて参考になるかと。<br />  <br /> いただいたご意見</p> <ul> <li>「和欧混植の際の句読点を統一するため、日本語文書であってもカンマとピリオド」…こんな話は聞いたことがないけど…<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C8%C8%C7">組版</a>的にはアカンと思う…英文のピリオド、コンマと和文の句読点としてのピリオド、コンマは別…</li> </ul> <ul> <li>そういやこういう話で誰が決めたのかわからないけど「、,」「。.」が全く同じ意味で等価変換できることになっているけど本当にそうなのだろうか?</li> </ul><p> <br /> 読点はともかく、日本語文書の句点としては現在、圧倒的にマルを使ったものが多いです。<br /> ただし、大学、それも理系学部で論文を書く際には、教授からカンマとピリオドで書くように指導されているのは事実であり、そういった原稿を印刷所に発注する際もカンマとピリオドで統一するように依頼するのが通例となっているようです。<br /> ただし、印刷物全般から見ればレアなケースと言えるかも知れません。<br />  <br /> こういった話、誰が決めたか本当にわかりません。決めようとした団体があったけれども、相互に連携がとれていないまま現在に至った感じですし。<br /> 「、,」「。.」が全く同じ意味で等価変換できるかどうかに関しても、ケースバイケースと言わざるを得ないでしょう。</p> k_iki 日本語文書における句読点 hatenablog://entry/11696248318755649825 2013-07-12T18:52:31+09:00 2013-07-18T16:23:03+09:00 公式な文書ではどう表記するのが正しいのか。 学術論文では? 小説では? 同じ日本語なのに、印刷物の性格によってルールの縛りに温度差があるように感じられる。 曰く、横書き文書であれば和欧混植の際の句読点を統一するため、日本語文書であってもカンマとピリオドを使うべし。 曰く、横書きにおける読点はカンマを使うべきだが、句点はあくまでも「。」を使うべし。 曰く、日本語文書である以上、「、」と「。」を使うべし。欧米かぶれ許すまじ。 句読点とは違うけれども、感嘆符「!」や疑問符「?」には本来の意味と同時に、文章の終わりという意味を含んでいる。 これらはもともと日本語になかったので、日本語文書に使うべきでな… <p>公式な文書ではどう表記するのが正しいのか。<br /> 学術論文では? 小説では?<br /> 同じ日本語なのに、印刷物の性格によってルールの縛りに温度差があるように感じられる。<br />  </p> <ul> <li>曰く、横書き文書であれば和欧混植の際の句読点を統一するため、日本語文書であってもカンマとピリオドを使うべし。</li> <li>曰く、横書きにおける読点はカンマを使うべきだが、句点はあくまでも「。」を使うべし。</li> <li>曰く、日本語文書である以上、「、」と「。」を使うべし。欧米かぶれ許すまじ。</li> </ul><p> <br /> 句読点とは違うけれども、感嘆符「!」や疑問符「?」には本来の意味と同時に、文章の終わりという意味を含んでいる。<br /> これらはもともと日本語になかったので、日本語文書に使うべきでないとの議論も、過去には存在した。欧米かぶれ許すまじ、という議論である。<br />  <br /> ここで、日本語表記における句読点の由来を少し考えてみたい。<br /> 日本語文書の場合、中世以前の正式文書は漢文だった。<br /> 中世以降、仮名書きや漢字仮名交じりが普及したが、現代のような一文字ずつに区切られる以前の仮名文字は草書体からの発展途上であり、文章の区切りごとに繋がって綴られることが多かった。また、漢字と仮名を交ぜ書きすることにより、読み手が区切りを読み間違えることが少なく、句読点はあまり必要とされていなかった。<br /> 文部省が「文法上許容スベキ事項」1905(明治38)年 16条を告示したことにより、それまでの文語文が日常から遠のき、口語文が増え始める。<br /> 折しも、日本での活字の使用が増え始めた時期であり、この頃から徐々に句読点が印刷物に現れるようになる。<br /> ところで、句読点とはそもそも、純粋な日本語というより外国語の解読のためのものという性格が強かったように思われる。<br />  </p> <ul> <li>漢文あるいはその訓読において文章の区切りを明確にするために用いられたもの</li> <li>欧米の文章に用いられたもの</li> </ul><p> <br /> 文部省はこの後、1906年に「句読点法」の指針を示そうとしたが、今日に至ってもなお確立していない。<br />  <br /> さて、日本語の文章では、縦組と横組とで句読点を変えることがある。縦組では「、。」だけであるが、横組では「、。」「,。」「,.」の組合せがある。これは明治時代に日本語の改革が起きたとき以来続いている。<br />  <br /> <span style="font-size: 110%"><b>テンとマルが使われている日本語文書</b></span></p> <ul> <li>マスコミ関係</li> <li>書籍や雑誌</li> </ul><p> (規定はないがテンマルが非常に多い。例外もあるが、それぞれの出版物の中では統一されている)<br />  <br /> <span style="font-size: 110%"><b>カンマとピリオドが使われている日本語文書</b></span></p> <ul> <li>理系出版物や論文など</li> </ul><p> (大学の担当教授もそのように指導)<br /> <span style="font-size: 90%">※カンマとピリオドなら半角「,」「.」を使うべきだという人も<s>多い</s><span style="color: #cc0000">いる</span></span><br />  <br /> <span style="font-size: 110%"><b>カンマとマルが使われている日本語文書</b></span></p> <ul> <li>教科書・教育機関</li> <li>公文書</li> </ul><p>内閣が各省庁の次官宛に発出した通達(下記「参考:」の「公用文作成の要領」を参照)で、現在も有効とされているが、「不便である」との職員の声に応え、自治体によっては規定を緩める条例を採用しているところもある。<br />   <br /> <b>参考:</b><br /> 「くぎり符号の使い方は、縦書きの場合と同じである。ただし、横書きの場合は『、』を用いず、『,』を用いる。」<br /> (「文部省刊行物表記の基準」1950(昭和25)年 より、後に「国語の書き表し方」と改題)<br /> ※国語表記に関する取り組みは、現在は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CA%B8%B2%BD%C4%A3">文化庁</a>の担当となっている。<br />  <br /> 「句読点は、横書きでは『,』および『。』を用いる。」<br />  (「公用文作成の要領」(1952(昭和27)年4月4日内閣甲第16号依命通知)より)<br />  <br /> 「句読点は,『。』(まる)及び『、』(てん)を用いる。」<br />  (「左横書き文書の作成要領」1959(昭和34)年 自治庁(後の自治省→<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%ED%CC%B3%BE%CA">総務省</a>)より)<br />  <br />  <br /> そんなわけで、読点はどこに打つんだ?<br /> とか、日本語文書に疑問符や感嘆符なんか使ったらおかしいんじゃない?<br /> とか、横書きでテンを使うのって変じゃない?<br /> といった議論が今でもあるのだが、明確な縛りが存在しない状態なのだ。<br /> 読み手が混乱するような曖昧さを避けるための記号であり、ひとつの書籍・出版物の中では統一されていること。<br /> というのが、いまの段階でのルールだと言えよう。</p> k_iki ターミナルにおける日本語表示のズレ hatenablog://entry/11696248318755350938 2013-07-05T11:13:48+09:00 2013-07-08T08:40:11+09:00 Mac OSX Mauntain Lionのターミナルにおいては環境設定に「Unicode 東アジア A (曖昧) の文字幅を W (広) にする」オプションが追加されたが、Lion以前のMacにはそれがない。 したがってOSX10.7以前のターミナルにおいて、日本語フォントで表示されている部分にカーソルを合わせても微妙にずれていて気持ちが悪い状態に。 下記サイトに回避策が提示されている。 TerminalEastAsianAmbiguousClearer さて、ここからが本題。 ものかのさんのサイトでいろいろ勉強させていただいているにもかかわらず、忘れていた。 Unicodeの特殊な文字 “… <p>Mac OSX Mauntain Lionのターミナルにおいては環境設定に「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Unicode">Unicode</a> 東アジア A (曖昧) の文字幅を W (広) にする」オプションが追加されたが、Lion以前のMacにはそれがない。<br /> したがってOSX10.7以前のターミナルにおいて、日本語フォントで表示されている部分にカーソルを合わせても微妙にずれていて気持ちが悪い状態に。<br /> 下記サイトに回避策が提示されている。<br /> <a href="http://kita.dyndns.org/wiki/?TerminalEastAsianAmbiguousClearer">TerminalEastAsianAmbiguousClearer</a><br />  <br /> さて、ここからが本題。<br /> <a href="http://tama-san.com">&#x3082;&#x306E;&#x304B;&#x306E;&#x3055;&#x3093;&#x306E;&#x30B5;&#x30A4;&#x30C8;</a>でいろいろ勉強させていただいているにもかかわらず、忘れていた。<br /> <a href="http://tama-san.com/?p=54">Unicode&#x306E;&#x7279;&#x6B8A;&#x306A;&#x6587;&#x5B57; &ldquo;&#x7D50;&#x5408;&#x6587;&#x5B57;&#x5217;&rdquo;</a><br /> <a href="http://tama-san.com/?p=3512">Unicode&#x6B63;&#x898F;&#x5316; &#x7528;&#x8A9E;&#x306E;&#x6DF7;&#x4E71;&#x306B;&#x3064;&#x3044;&#x3066;</a><br />  <br /> 結合文字列を含む日本語ファイル名は、Macでのファイル操作の様々な場面で障害となる可能性があるのだ。<br />  <br /> きのうのターミナルの件で、ファイル名が「サンプル.txt」となっているテキストを用意して実験したのだが、ターミナルでの表示は下図のようになる。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130705/20130705102421.png" alt="f:id:k_iki:20130705102421p:plain" title="f:id:k_iki:20130705102421p:plain" class="hatena-fotolife" itemprop="image"></span><br /> ちょっとわかりにくいが、ターミナル画面の3行目が4行目に折り返さず、同じ3行目の行頭から上書きするようにして続いているのだ。<br /> きのうの件においてはファイル名を変更する必要があった。<br /> 一応、3行目に表示されているファイル名を変更してやれば意図通りの操作が可能だ。<br /> 実際、きのうの置換結果ファイルはそのようにして得た。<br />  <br /> では、この置換元ファイルのファイル名を「サンフル.txt」として半濁点を抜いたらどうなるだろう。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130705/20130705103049.png" alt="f:id:k_iki:20130705103049p:plain" title="f:id:k_iki:20130705103049p:plain" class="hatena-fotolife" itemprop="image"></span><br /> 上図の通り、きちんと4行に表示され、ファイル名変更の際にも迷わずに済む。<br />  <br /> 諸事情があるとは思うが、可能な限り日本語ファイル名を使わないほうが何かと安心……だと思う。</p> k_iki 半角数字を全角に hatenablog://entry/11696248318755313588 2013-07-04T12:15:18+09:00 2013-07-04T12:34:28+09:00 rubyによるテキスト処理は久々。 リハビリがてら、過去にせうぞーさんから教わったものを。 今回は、Mac OSX10.6.8に標準でインストールされているruby1.8.7を利用。 目的は、テキスト中の半角数字をすべて全角数字に置換したい。 その際、メルアドやURLに含まれる数字は半角のままにしたい。 過去に教えていただいたときは、一桁は全角・二桁以上は半角に置換していたが、今回はすべて全角に。 #!usr/bin/ruby -Ku =begin ・半角数字を全角数字に ・URLやメールアドレス中の数字はすべて半角に =end require "jcode" def zen2han(num)… <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/ruby">ruby</a>によるテキスト処理は久々。<br /> リハビリがてら、過去にせうぞーさんから教わったものを。<br /> 今回は、Mac OSX10.6.8に標準でインストールされている<a class="keyword" href="http://d.hatena.ne.jp/keyword/ruby1.8.7">ruby1.8.7</a>を利用。<br />  <br /> 目的は、テキスト中の<b>半角数字をすべて全角数字に置換</b>したい。<br /> その際、<b>メルアドやURLに含まれる数字は半角のまま</b>にしたい。<br /> <a href="http://kstation2.blog10.fc2.com/blog-entry-37.html">&#x904E;&#x53BB;&#x306B;&#x6559;&#x3048;&#x3066;&#x3044;&#x305F;&#x3060;&#x3044;&#x305F;&#x3068;&#x304D;</a>は、一桁は全角・二桁以上は半角に置換していたが、今回はすべて全角に。<br />  </p> <pre class="code lang-ruby" data-lang="ruby" data-unlink><span class="synPreProc">#!usr/bin/ruby -Ku</span> <span class="synComment">=begin</span> <span class="synComment">・半角数字を全角数字に</span> <span class="synComment">・URLやメールアドレス中の数字はすべて半角に</span> <span class="synComment">=end</span> <span class="synPreProc">require</span> <span class="synSpecial">&quot;</span><span class="synConstant">jcode</span><span class="synSpecial">&quot;</span> <span class="synPreProc">def</span> <span class="synIdentifier">zen2han</span>(num) num.tr!(<span class="synSpecial">&quot;</span><span class="synConstant">0-9</span><span class="synSpecial">&quot;</span>, <span class="synSpecial">&quot;</span><span class="synConstant">0-9</span><span class="synSpecial">&quot;</span>) <span class="synStatement">return</span> num <span class="synPreProc">end</span> <span class="synStatement">while</span> line = <span class="synIdentifier">ARGF</span>.gets <span class="synComment">#いったん、数字をすべて全角に</span> line.tr!(<span class="synSpecial">&quot;</span><span class="synConstant">0-9</span><span class="synSpecial">&quot;</span>, <span class="synSpecial">&quot;</span><span class="synConstant">0-9</span><span class="synSpecial">&quot;</span>) <span class="synComment">#メルアドとURLに含まれる数字を半角へ戻し置換</span> line.gsub!(<span class="synSpecial">/([</span><span class="synConstant">0-90-9a-zA-Z_\#!$%&amp;`'*+\-{|}~^</span><span class="synSpecial">\/</span><span class="synConstant">=?</span><span class="synSpecial">\.]+</span><span class="synConstant">@</span><span class="synSpecial">[</span><span class="synConstant">0-90-9a-zA-Z_\#!$%&amp;`'*+\-{|}~^</span><span class="synSpecial">\/</span><span class="synConstant">=?</span><span class="synSpecial">\.]+)/</span>) {zen2han(<span class="synIdentifier">$1</span>)} line.gsub!(<span class="synSpecial">/(</span><span class="synConstant">https</span><span class="synSpecial">?</span><span class="synConstant">:</span><span class="synSpecial">\/\/[\(\)</span><span class="synConstant">%#!</span><span class="synSpecial">\/</span><span class="synConstant">0-90-9a-zA-Z_$@.&amp;+-,'&quot;*=;?:~-</span><span class="synSpecial">]+)/</span>) {zen2han(<span class="synIdentifier">$1</span>)} print line <span class="synStatement">end</span> </pre><p> <br /> 使っている<a class="keyword" href="http://d.hatena.ne.jp/keyword/ruby">ruby</a>のバージョンが1.9以上ならjcodeの行は不要。<br /> まず、上記<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BD%A1%BC%A5%B9%A5%B3%A1%BC%A5%C9">ソースコード</a>を "han2zen.rb" などわかりやすい名前で保存しておく。<br /> スクリプトファイルさえ出来れば、<a class="keyword" href="http://d.hatena.ne.jp/keyword/ruby">ruby</a>でのテキスト変換は一瞬だ。<br /> ターミナルを起動して、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%DE%A5%F3%A5%C9%A5%D7%A5%ED%A5%F3%A5%D7%A5%C8">コマンドプロンプト</a>に <b><a class="keyword" href="http://d.hatena.ne.jp/keyword/ruby">ruby</a></b> と入力してスペースを入れる。<br /> 次に、上記のスクリプトファイルを<b>ドラッグ&ドロップ</b>。<br /> 続けて、変換元のテキストファイルを<b>ドラッグ&ドロップ</b>。<br />  <br /> 例としては、こんなの。</p> <pre><a href="http://www.kstation2.blog10.fc2.com/">http://www.kstation2.blog10.fc2.com/</a> 2.次の1〜10の中から問題文の内容に合うものを全て選び、記号で答えよ。  1.○○○○  2.●●●●  3.△△△△  4.□□□□  5.■■■■  6.☆☆☆☆  7.★★★★  8.◇◇◇◇  9.◆◆◆◆  10.▲▲▲ </pre><p>変換元と同じ階層に、変換後のファイルをリネームした状態で保存したければ、ファイルをリダイレクトしてやればいい。<br /> 具体的には、さきほどターミナルにドラッグ&ドロップしたファイル名に続けて<b>半角不等号 > を入力</b>してスペース。<br /> 最後に、<b>もう一度</b>変換元のテキストファイルをドラッグ&ドロップし、ファイル名末尾に "_new" などの文字列を追加してやれば、変換後の結果が新しいファイルにリダイレクトされる。<br />  <br /> 文章だけだと誤解を生みそうなので、絵的にはこんなイメージ。<br /> マシン名とか消してるんで、不自然にスペース開いてるけど気にしないでください。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130704/20130704121016.png" alt="f:id:k_iki:20130704121016p:plain" title="f:id:k_iki:20130704121016p:plain" class="hatena-fotolife" itemprop="image"></span><br /> 上で説明したように、</p> <ol> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/ruby">ruby</a>と半角スペースを入力した後にスクリプトファイルをD&D</li> <li>続けて変換元ファイルをD&Dして半角不等号+半角スペース</li> <li>最後にもう一回変換元ファイルをD&Dしてファイル名だけ変更</li> </ol><p>こうすることで、置換結果が同じ階層のフォルダに新しいファイルとして保存される。<br />   <br /> で、置換後のファイルの中身がこうなっていれば変換成功。</p> <pre><a href="http://www.kstation2.blog10.fc2.com/">http://www.kstation2.blog10.fc2.com/</a> 2.次の1〜10の中から問題文の内容に合うものを全て選び、記号で答えよ。  1.○○○○  2.●●●●  3.△△△△  4.□□□□  5.■■■■  6.☆☆☆☆  7.★★★★  8.◇◇◇◇  9.◆◆◆◆  10.▲▲▲ </pre> k_iki Illustratorの裁ち落とし hatenablog://entry/11696248318755290903 2013-07-03T18:15:41+09:00 2013-07-03T18:15:41+09:00 先日来少しずつ調べてみたものの、どうやらIllustratorではInDesignのようにJavascriptで裁ち落としを変更することができないようだ。 同様に、透明の分割・統合プリセットの変更も。 アプリ上においては「ドキュメント設定」のダイアログからアクセスできるのだが(下図) CS6用のIllustrator-Scripting-Reference-JavaScriptを検索した限り、裁ち落としの変更、透明のプリセットなどを変更するためのクラスが見当たらない。 Twitter等でいつもお世話になっているDTPerからご意見をいただいたものの、ArtboardごとにbleedBoxプロパ… <p>先日来少しずつ調べてみたものの、どうやら<a class="keyword" href="http://d.hatena.ne.jp/keyword/Illustrator">Illustrator</a>では<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>のように<a class="keyword" href="http://d.hatena.ne.jp/keyword/Javascript">Javascript</a>で裁ち落としを変更することができないようだ。<br /> 同様に、透明の分割・統合プリセットの変更も。<br />  <br /> アプリ上においては「ドキュメント設定」のダイアログからアクセスできるのだが(下図)<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130703/20130703161741.png" alt="f:id:k_iki:20130703161741p:plain" title="f:id:k_iki:20130703161741p:plain" class="hatena-fotolife" itemprop="image"></span><br /> CS6用の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Illustrator">Illustrator</a>-Scripting-Reference-<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>を検索した限り、裁ち落としの変更、透明のプリセットなどを変更するためのクラスが見当たらない。<br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>等でいつもお世話になっているDTPerからご意見をいただいたものの、ArtboardごとにbleedBoxプロパティを持っているわけでもなかった。<br />  <br /> 毎回同じ設定にしたければ、ファイルを作成するたびにドキュメント設定ダイアログを開くなり、テンプレートを作っておくなりして、作成段階で気をつけて作業に入れ、ということだろうか。<br /> 保存の際にスクリプトで変更してしまおうとした目論見は、今のところ失敗と言わざるを得ない。</p> k_iki Illustratorのドキュメント設定 hatenablog://entry/11696248318755205577 2013-07-01T12:11:14+09:00 2013-07-01T12:11:15+09:00 未解決。 Illustratorのドキュメントサイズは、 documentのcropBoxプロパティで変更可能だ。 だが、bleedOffsetRectというプロパティは、 PDFSaveOptionsやPrintPageMarksOptionsには含まれているものの、 documentにもIllustratorSaveOptionsにも含まれていない。 方法が無い、とはちょっと思えないので、もう少し調べてみる。 <p>未解決。<br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/Illustrator">Illustrator</a>のドキュメントサイズは、<br /> documentのcropBoxプロパティで変更可能だ。<br /> だが、bleedOffsetRectというプロパティは、<br /> PDFSaveOptionsやPrintPageMarksOptionsには含まれているものの、<br /> documentにもIllustratorSaveOptionsにも含まれていない。<br /> 方法が無い、とはちょっと思えないので、もう少し調べてみる。</p> k_iki 配置フレームの最小単位 hatenablog://entry/11696248318755153573 2013-06-29T15:54:56+09:00 2013-06-29T16:33:47+09:00 表題の件、 MacOSX10.7.5 / InDesign・Illustrator CS6 MacOSX10.6.8 / InDesign・Illustrator CS4 にて確認。 以前から、表セルの最小単位が3pt(約1.058mm)であることは知られており、その制限はスクリプトで回避できる。 しかし、実は画像フレームを配置する際にも最小単位が存在したのだ。 まず、Illustratorで横幅の小さなアートボードサイズのイラストを作成。 具体的には、横幅0.65mm。 次に、InDesignに貼り込む。 左:メディアサイズで貼り込み。 右:アートサイズで貼り込み。 同じ画像だけど大きさが違… <p>表題の件、<br /> MacOSX10.7.5 / <a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>・<a class="keyword" href="http://d.hatena.ne.jp/keyword/Illustrator">Illustrator</a> CS6<br /> MacOSX10.6.8 / <a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>・<a class="keyword" href="http://d.hatena.ne.jp/keyword/Illustrator">Illustrator</a> CS4<br /> にて確認。<br />  <br /> 以前から、表セルの最小単位が3pt(約1.058mm)であることは知られており、その制限はスクリプトで回避できる。<br /> しかし、実は画像フレームを配置する際にも最小単位が存在したのだ。<br />  <br /> まず、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Illustrator">Illustrator</a>で横幅の小さなアートボードサイズのイラストを作成。<br /> 具体的には、横幅0.65mm。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130629/20130629144407.png" alt="f:id:k_iki:20130629144407p:plain" title="f:id:k_iki:20130629144407p:plain" class="hatena-fotolife" itemprop="image"></span></p><p>次に、<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>に貼り込む。<br /> 左:メディアサイズで貼り込み。<br /> 右:アートサイズで貼り込み。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130629/20130629144431.png" alt="f:id:k_iki:20130629144431p:plain" title="f:id:k_iki:20130629144431p:plain" class="hatena-fotolife" itemprop="image"></span></p> <ul> <li>同じ画像だけど大きさが違って見えるのは単に表示上の問題。高精細モードにするか、オーバープリントプレビューで表示すれば同じ大きさに見える。</li> </ul><p> <br /> メディアサイズで貼った方のフレームを確認すると……。<br /> <span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130629/20130629150444.png" alt="f:id:k_iki:20130629150444p:plain" title="f:id:k_iki:20130629150444p:plain" class="hatena-fotolife" itemprop="image"></span><br /> 横幅0.65mmに設定して保存したはずなのに、W:1.058mmとなっている。<br /> なお、アートサイズで貼り込んだ方は、オブジェクトのサイズとフレームサイズが一致している。<br /> よって、メディアサイズで貼り込む際の最小単位は3ptである。<br />  <br /> 作成したイラストのサイズと一致したスペースをドキュメント上に確保し、そのセンターに画像を配置したい場面は多々あると思われる。<br /> しかし、あまり小さい画像の場合は、確保したスペースよりも大きなフレームを<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>上に用意するか、アートサイズで貼り込むなどの手段を講じる必要がある。<br />  <br />  <br /> ところで。<br /> 昨日のエントリ「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Illustrator">Illustrator</a> CS6 保存スクリプト」の件、本日も未解決のまま。</p> k_iki Illustrator CS6 保存スクリプト hatenablog://entry/11696248318755137492 2013-06-28T18:33:00+09:00 2013-06-28T18:33:00+09:00 Illustratorをai形式で保存しようとすると、上記のオプションが表示される。これを、毎回同じオプションで保存したい。具体的には、「圧縮を使用」のみチェックを外したい。 var docObj = app.activeDocument; var saveObj = Folder.selectDialog("保存先のフォルダを選択してください") ; var saveObj = saveObj + "/" ; //区切りの記号を追加しておく //AI保存時のオプション設定 var aiOptions = new IllustratorSaveOptions; with (aiOptions)… <p><span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130628/20130628180806.png" alt="f:id:k_iki:20130628180806p:plain" title="f:id:k_iki:20130628180806p:plain" class="hatena-fotolife" itemprop="image"></span><br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/Illustrator">Illustrator</a>をai形式で保存しようとすると、上記のオプションが表示される。</p><p>これを、毎回同じオプションで保存したい。</p><p>具体的には、「圧縮を使用」のみチェックを外したい。</p> <pre class="code lang-javascript" data-lang="javascript" data-unlink> <span class="synIdentifier">var</span> docObj = app.activeDocument; <span class="synIdentifier">var</span> saveObj = Folder.selectDialog(<span class="synConstant">&quot;保存先のフォルダを選択してください&quot;</span>) ; <span class="synIdentifier">var</span> saveObj = saveObj + <span class="synConstant">&quot;/&quot;</span> ; <span class="synComment">//区切りの記号を追加しておく</span> <span class="synComment">//AI保存時のオプション設定</span> <span class="synIdentifier">var</span> aiOptions = <span class="synStatement">new</span> IllustratorSaveOptions; <span class="synStatement">with</span> (aiOptions) <span class="synIdentifier">{</span> pdfCompatible = <span class="synConstant">true</span> ; <span class="synComment">//PDF互換ファイル:作成</span> embedLinkedFiles = <span class="synConstant">false</span> ; <span class="synComment">//配置した画像:埋め込まない</span> embedICCProfile = <span class="synConstant">true</span> ; <span class="synComment">//ICCプロファイル:埋め込む</span> compressed = <span class="synConstant">false</span> ; <span class="synComment">//圧縮を使用:しない</span> <span class="synIdentifier">}</span> <span class="synIdentifier">var</span> aiName = <span class="synStatement">prompt</span> (<span class="synConstant">&quot;ファイル名を入力(拡張子不要)&quot;</span>, <span class="synConstant">&quot;filename&quot;</span>); <span class="synIdentifier">var</span> saveFile = <span class="synStatement">new</span> File(saveObj + aiName + <span class="synConstant">&quot;.ai&quot;</span>); docObj.saveAs(saveFile, aiOptions); app.activeDocument.close() ; </pre><p>これで良さそうな気がするのだが、保存されたファイルを確認すると、PDF互換ファイルを作成のチェックがON、圧縮を使用がOFF。</p><p>それは思惑通りなのだが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/ICC">ICC</a>プロファイルがOFFになってしまっている。</p><p>調査中。</p><p> </p><p>なお、同時にドキュメント設定のオプションも操作したいと思っている。</p><p><span itemscope itemtype="http://schema.org/Photograph"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130628/20130628181356.png" alt="f:id:k_iki:20130628181356p:plain" title="f:id:k_iki:20130628181356p:plain" class="hatena-fotolife" itemprop="image"></span></p><p>具体的には、裁ち落としを0mmに、透明の分割・統合プリセットは自分で作成したプリセットに。</p><p>PDFSaveOptionsプロパティにはflattenerPresetがあるのに、IllustratorSaveOptionsにはそれがない。</p><p>裁ち落としと同じように、ドキュメント設定のプロパティがあって、そこからアクセスするのか?</p><p>ちょろっと調べた程度ではよくわからなかった。</p><p>後日に続く……予定。</p> k_iki インキ hatenablog://entry/11696248318755065755 2013-06-26T11:48:48+09:00 2013-06-26T11:48:48+09:00 インキって、陰気だなぁ。 いくら印刷が斜陽産業だからって。 自虐ネタはさておき。 従来、筆記用の彩色剤をインク、印刷用の彩色剤をインキ、と呼び分けてきた。 近年におけるインクジェットプリンターの台頭で、この分類が曖昧になりつつあるけれども、無理に分類するならば筆記用と印刷用の中間がインクジェットと言えるのかも。 現状におけるインクジェットプリンターの役割は校正用、もしくはTシャツやCDラベルなどの特殊印刷用であることが多い。コストがかかりすぎるので、インクジェットで大部数のものを刷ることはあまりない。 なんとなく棲み分けができているためか、印刷業界においてもインクジェットプリンターの彩色剤をイ… <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">インキって、陰気だなぁ。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">いくら印刷が斜陽産業だからって。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">自虐ネタはさておき。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: Helvetica; min-height: 14px;"> </p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">従来、筆記用の彩色剤をインク、印刷用の彩色剤をインキ、と呼び分けてきた。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">近年における<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%AF%A5%B8%A5%A7%A5%C3%A5%C8%A5%D7%A5%EA%A5%F3%A5%BF%A1%BC">インクジェットプリンター</a>の台頭で、この分類が曖昧になりつつあるけれども、無理に分類するならば筆記用と印刷用の中間がインクジェットと言えるのかも。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">現状における<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%AF%A5%B8%A5%A7%A5%C3%A5%C8%A5%D7%A5%EA%A5%F3%A5%BF%A1%BC">インクジェットプリンター</a>の役割は校正用、もしくはTシャツやCDラベルなどの特殊印刷用であることが多い。コストがかかりすぎるので、インクジェットで大部数のものを刷ることはあまりない。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">なんとなく棲み分けができているためか、印刷業界においても<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%AF%A5%B8%A5%A7%A5%C3%A5%C8%A5%D7%A5%EA%A5%F3%A5%BF%A1%BC">インクジェットプリンター</a>の彩色剤をインクと呼ぶ。それに対し、オフセット印刷機(輪転機含む)用の彩色剤のことは今でもインキと呼ぶことが多い。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN'; min-height: 18px;"> </p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">インクジェットとオフセット、それぞれインクとインキと呼び分けるのはいいとして、その違いはどこにあるのか。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';"> </p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">インクジェットのインクは紙に浸透して定着する。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">最近のインクジェットは最小単位が何ピコリットルだとか、インクを粒子状にして紙に噴き付けることができる。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">しかし、液体であるインクが紙に浸透する仕組みである以上、必ず滲む。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">従って、インクジェットのカタログスペックである「解像度○○○○dpi」というのがそのまま仕上がりのきれいさと直結しているとは言い切れないのだ。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">特に、インクの発色性・速乾性を考慮したコート紙ではなく、インクジェット非対応の普通紙の場合、せっかくの○ピコリットルもかなり滲んでしまう。もちろん、もともと細かいので滲んでも最終的には満足できる品質で刷り上がる、と言えるのだろうけれども。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">また、表現したい色によっては大きく沈む。色によっては転ぶ。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">(「沈む」というのは言葉のイメージ通り、暗く濁った感じになること。「転ぶ」というのは色合いが変わってしまうこと)</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">そうは言っても、技術の進化を続けているインクジェットにおける発色の鮮やかさは侮れないものがある。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN'; min-height: 18px;"> </p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">それに対し、オフセット印刷のインキは、版からブランケット、ブランケットから紙へと転写し、圧力をかけて紙の表面に盛りつけるのだ。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">しかし、やはりオフセットにおいても色が沈む。その原因は単純ではないが、先日のエントリ「ドットゲイン」も大きな理由の一つである。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">オフセットの真骨頂は部数の多い印刷物を刷ることにある。何部以上の印刷物を多ロットと呼ぶべきかは場合によるので曖昧な言い方になるが、たくさん刷るほど1部あたりのコストを抑えられる。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">逆に、小ロット印刷には不向きだ。一日に何種類もの印刷物を刷るためには、版を替え、紙を替え、場合によっては特色インキを使うためにローラーを洗うなどのメンテナンスも必要だ。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">そのため印刷予定を組むのが大変で、飛び込みに対応しづらいという側面も否定できない。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">刷るためには版が必要なので、小ロットであるほど割高になってしまう。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">欠点ばかり論ってしまったが、オフセットの表現力が今でも高品質なのは変わらない。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN'; min-height: 18px;"> </p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">ところで、少部数印刷であればオンデマンド印刷機(現状、トナー式のものが多い)を使うという選択肢もある。実際、印刷会社以外の一般企業にも普及しつつある。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">オンデマンド機の主流であるトナー式は乾かす必要がないので、すぐ欲しいという需要に対応しやすい。難点は、グラデーションやベタ塗りの表現がインキ(インク)と比べて苦手なので、表現力はどうしてもインクジェットやオフセットに劣る。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN'; min-height: 18px;"> </p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">新しい動きとしては、近年、あるメーカーから「オフセットを超えるインクジェット」が販売された。少部数に特化した上、オンデマンドの表現力どころかオフセットさえ上回るプリンタ。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">しかし、あまり売れているという噂を聞かない。まあ当然かも、オフセット機が二台ほど買えそうな値段だし。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN'; min-height: 18px;"> </p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">印刷会社が印刷で利益を上げる時代は終焉を迎えつつある。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">すでに終焉を迎えたと断言する人もいることだろう。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">それは事実だと言わざるを得ない。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">しかし、紙メディアへの印刷は今後もそう簡単には無くならない。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">プロとして、最後までインキの表現力を最大限に生かす仕事を続けたいものだ。</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN'; min-height: 18px;"> </p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN'; min-height: 18px;"> </p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">と、半ば本気、半ば建前の締めくくりをしておいて……</p> <p style="margin-top: 0px; margin-bottom: 0px; font-size: 12px; line-height: normal; font-family: 'Hiragino Kaku Gothic ProN';">……さーて、WEBや電子出版の勉強しようっと(すでに出遅れ感パネェ)</p> k_iki 検索・置換系のスクリプト hatenablog://entry/11696248318755041458 2013-06-25T15:11:18+09:00 2013-06-25T16:40:39+09:00 バージョンごとにInDesign用Javascriptの仕様が変わっていくのは周知の事実。 特に、CS2以前とCS3以降とで検索・置換関係のスクリプトの仕様が大きく変わっている。 CS3以降から正規表現検索・置換が実装されたことがその理由だ。 CS2までは、 findPreferencesプロパティにて検索文字列を設定し、 changePreferencesプロパティにて置換文字列を設定。 その上でsearchメソッドにて検索・置換を実行すればテキスト置換することができた。 ところが、CS3以降においては正規表現検索・置換が増えたことによりプロパティの名称変更と追加が行われた。 具体的には、 … <p>バージョンごとに<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>用<a class="keyword" href="http://d.hatena.ne.jp/keyword/Javascript">Javascript</a>の仕様が変わっていくのは周知の事実。</p> <p>特に、CS2以前とCS3以降とで検索・置換関係のスクリプトの仕様が大きく変わっている。</p> <p>CS3以降から<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>検索・置換が実装されたことがその理由だ。</p> <p>CS2までは、</p> <p>findPreferencesプロパティにて検索文字列を設定し、</p> <p>changePreferencesプロパティにて置換文字列を設定。</p> <p>その上でsearchメソッドにて検索・置換を実行すればテキスト置換することができた。</p> <p> </p> <p>ところが、CS3以降においては<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>検索・置換が増えたことによりプロパティの名称変更と追加が行われた。</p> <p>具体的には、 </p> <p><strong>テキスト検索はfindTextPreferences、置換はchangeTextPreferences</strong>。</p> <p><strong><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>検索はfindGrepPreferences、置換はchangeGrepPreferences</strong>など。</p> <p>他にも字形、文字種、オブジェクトの検索・置換それぞれプロパティが追加された。</p> <p> </p> <p>これらに対応し、<strong>テキスト検索実行のメソッドはfindText、置換実行のメソッドはchangeText</strong>。</p> <p><strong><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>検索実行のメソッドはfindGrep、置換実行のメソッドはchangeGrep</strong>という変更がなされている。</p> <p>※流星さんのご指摘を受け、検索実行と置換実行メソッドが別々であることを明記いたしました。</p> <p> </p> <p>これだけわかれば、<a href="http://kstation2.hatenablog.com/entry/20130131/1359638683">以前のエントリ</a>で紹介したバイカモさんのスクリプト、</p> <p><a href="http://www4.tokai.or.jp/high-sea-fleet/">ルビ分割修正</a>について、CS3以降用に編集し直すことが可能だ。</p> <p>そんなわけで、晴れて同スクリプトをVersion 4.0 Scriptsから一階層上に移動し、現在(CS6)も便利に使わせていただいている。</p> <p>バイカモさん、いつもありがとうございます。</p> k_iki ドットゲイン hatenablog://entry/11696248318755037801 2013-06-25T11:10:27+09:00 2013-06-25T12:31:22+09:00 ドットゲインとは中間調において色の差が発生する現象を指す。オフセット印刷においては不可避の現象。 データ上50%であるはずの網点をオフセット印刷機にかけると、仕上がり印刷物はそれより濃い色で発色される。 従って、オフセット印刷が前提の場合、これを見越したデータの作り方をすることが望ましい。 原因1:物理的ドットゲイン インキを紙に転写する際、ブランケット胴と圧胴に挟まれた紙に圧力をかけるのだが、この時点で網点が若干潰れ、実際の大きさより大きめの網点となってしまう。 ただし、これについてはあまり目くじらを立てるほどではないらしい。 原因2:光学的ドットゲイン 一般にドットゲインと言えばこちらを指… <p>ドットゲインとは中間調において色の差が発生する現象を指す。オフセット印刷においては不可避の現象。</p> <p>データ上50%であるはずの網点をオフセット印刷機にかけると、仕上がり印刷物はそれより濃い色で発色される。</p> <p>従って、オフセット印刷が前提の場合、これを見越したデータの作り方をすることが望ましい。</p> <p> </p> <p><strong>原因1:物理的ドットゲイン</strong></p> <p>インキを紙に転写する際、ブランケット胴と圧胴に挟まれた紙に圧力をかけるのだが、この時点で網点が若干潰れ、実際の大きさより大きめの網点となってしまう。</p> <p>ただし、これについてはあまり目くじらを立てるほどではないらしい。</p> <p> </p> <p><strong>原因2:光学的ドットゲイン</strong></p> <p>一般にドットゲインと言えばこちらを指すことが多い。</p> <p>紙の質により光の反射率が違う。</p> <p>コート紙のように発色がよくなるよう塗膜をコーティングされた紙は反射率がよく、ドットゲインが抑えられる。</p> <p>新聞紙のように粗い紙は反射率が悪く、ドットゲインが大きくなる。</p> <p>また、網点が小さく密集している場合もドットゲインが大きくなり、新聞印刷における線数が100線程度と低めなのはこれが理由である。</p> <p> </p> <p> </p> <p>参考:</p> <ul> <li>株式会社インフォルム様「<a href="http://www.informe.co.jp/useful/print/print6.html">ベタ濃度とドットゲイン</a>」</li> <li>社団法人日本印刷技術協会様「<a href="http://www.jagat.or.jp/story_memo_view.asp?StoryID=1237">印刷品質のために数値管理</a>」</li> </ul> k_iki 漱石が芥川・久米に宛てた手紙 hatenablog://entry/11696248318755018154 2013-06-24T12:43:11+09:00 2013-06-25T12:29:30+09:00 明治の文豪・夏目漱石は、芥川が自殺する直前まで、彼宛に何度か手紙を書いている。 そのうち、芥川龍之介・久米正雄両名に宛てた手紙の全文が掲載されたサイトを見つけたので、改めて読んでみた。 http://www.geocities.jp/sybrma/202sousekinotegami.html 無闇に褒めるのではない、徒に批判するのでもない。 文章の端々に見られる漱石一流の気遣いとユーモアに溢れた手紙。 この文を頂けるだけでどれほど嬉しい事だっただろうか。 苦悩に満ちた芥川の人生と共に、想像に頼る外ない当時の状況に想いを馳せる。 <p>明治の文豪・<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B2%C6%CC%DC%DE%FB%C0%D0">夏目漱石</a>は、芥川が自殺する直前まで、彼宛に何度か手紙を書いている。</p> <p>そのうち、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%A9%C0%EE%CE%B6%C7%B7%B2%F0">芥川龍之介</a>・<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B5%D7%CA%C6%C0%B5%CD%BA">久米正雄</a>両名に宛てた手紙の全文が掲載されたサイトを見つけたので、改めて読んでみた。</p> <p><a href="http://www.geocities.jp/sybrma/202sousekinotegami.html">http://www.geocities.jp/sybrma/202sousekinotegami.html</a></p> <p>無闇に褒めるのではない、徒に批判するのでもない。</p> <p>文章の端々に見られる漱石一流の気遣いとユーモアに溢れた手紙。</p> <p>この文を頂けるだけでどれほど嬉しい事だっただろうか。</p> <p> </p> <p>苦悩に満ちた芥川の人生と共に、想像に頼る外ない当時の状況に想いを馳せる。</p> k_iki 罫線の太さ hatenablog://entry/11696248318755015788 2013-06-24T10:05:27+09:00 2013-06-25T12:29:01+09:00 罫線の太さは、データ上でどのように設定していても、プリンターによってある程度補正されてしまう可能性がある。 線が細ければ細いほど、プリンターの解像度に影響されてしまう。 たとえば、0.1mmをかなり下回る、いわゆるヘアラインを印刷した場合。 600dpiのレーザープリンターだと、どんなに細い線を再現しようとしても、解像度の限界のせいで0.1mmより細い線はうまく再現できない。 同じ600dpiといえどもプリンターの機種や状態により差があるが、どんなに状態が良くても0.06mm程度までの再現が限界だろう。つまり、そこに線があれば、たとえその線幅がデータ上で0.06mmより細く設定されていても、0… <p>罫線の太さは、データ上でどのように設定していても、プリンターによってある程度補正されてしまう可能性がある。</p> <p>線が細ければ細いほど、プリンターの解像度に影響されてしまう。</p> <p>たとえば、0.1mmをかなり下回る、いわゆるヘアラインを印刷した場合。</p> <p> </p> <p>600dpiの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EC%A1%BC%A5%B6%A1%BC%A5%D7%A5%EA%A5%F3%A5%BF%A1%BC">レーザープリンター</a>だと、どんなに細い線を再現しようとしても、解像度の限界のせいで0.1mmより細い線はうまく再現できない。</p> <p>同じ600dpiといえどもプリンターの機種や状態により差があるが、どんなに状態が良くても0.06mm程度までの再現が限界だろう。つまり、そこに線があれば、たとえその線幅がデータ上で0.06mmより細く設定されていても、0.06mmに近い太さで印字してしまうのだ。</p> <p>また、0.07mmから0.1mmまでの罫線を0.01mm刻みで太さを変えて並べてみても、人間の目で違いがわかりづらいだけでなくプリンタの再現力のせいもあって、差異がほとんどわからないはずだ。</p> <p> </p> <p>それに対し、2400dpiの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EC%A1%BC%A5%B6%A1%BC%A5%D7%A5%EA%A5%F3%A5%BF%A1%BC">レーザープリンター</a>やイメージセッターだと、単純計算で最小の印字単位が600dpiのプリンターの1/4となる。</p> <p>人間の目で、そこに罫線があると認識できないほど細い線でも印字できてしまう可能性があるのだ。</p> <p> </p> <p>個人用に家庭用インクジェットや<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EC%A1%BC%A5%B6%A1%BC%A5%D7%A5%EA%A5%F3%A5%BF%A1%BC">レーザープリンター</a>で少部数を刷るだけなら、この問題は表面化しづらいだろう。なにせ、罫線自体は目に見える形で出力されてしまうのだから。では何が問題なのか。</p> <p>大量に刷るため、業務用高解像度プリンターで印刷した場合に印刷事故がおきてしまう。</p> <p> </p> <ul> <li>校正用に安価な<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EC%A1%BC%A5%B6%A1%BC%A5%D7%A5%EA%A5%F3%A5%BF%A1%BC">レーザープリンター</a>から出力した。細い罫線がきちんと印字されている。</li> <li>校了となり、印刷に回した。刷り上がりを見ると、罫線が抜けてしまっている。(データ上、罫線は存在するが人間の目で見えないほど細い)</li> </ul> <p>→印刷代と大量の紙が無駄になる。</p> <p> </p> <p>これを防ぐため、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Acrobat">Acrobat</a>にはプリフライト機能が搭載されている。これにより、ある線幅よりも細い「ヘアライン」を警告するよう設定することができる。</p> <p> </p> <p>なお、表組などで、表全体を囲む外側の罫は太い線・内側の線は細い線という使い分けをすることがよくある。</p> <p>このとき、外罫を0.2mm、内罫を0.15mmと設定しても、見た目でほとんど差がわからないだろう。外罫を0.2mmにしたいなら内罫を0.1mmに。何らかの事情で内罫の太さとして0.15mmを確保したいなら外罫を0.3mmにするなど、太さのミリ数が小数点以下の罫線同士で強弱をつけたい場合、太いものが細いものの倍程度になるように設定するのが望ましいのではないかと思っている。</p> k_iki iPhoneから初投稿 hatenablog://entry/11696248318754861265 2013-06-18T18:34:55+09:00 2013-06-25T12:28:23+09:00 試しにiPhoneから初投稿。 うまくいけばいいけど。 <p>試しに<a class="keyword" href="http://d.hatena.ne.jp/keyword/iPhone">iPhone</a>から初投稿。</p> <div>うまくいけばいいけど。</div> k_iki ルビ親文字差し替え hatenablog://entry/11696248318755038960 2013-03-21T09:08:15+09:00 2013-06-25T12:21:44+09:00 随分と昔、それこそAdobe CSシリーズの最初のバージョン向け(いや、もしかしたら2.0向けの時点で既に、かも)に流星さんがVBで作ってくださったスクリプトに、表題のようなものがありました。 振られているルビに影響を与えず、その親文字だけ文字を差し替えるためのスクリプトです。 そこで、書いてみましたがうまくいきません。 var my_sel = app.selection; if (my_sel[0].rubyFlag == false){ alert("ルビが設定された文字を選択してください"); exit(); } var my_str = prompt("新しい親文字を入力してください… <p>随分と昔、それこそ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adobe">Adobe</a> CSシリーズの最初のバージョン向け(いや、もしかしたら2.0向けの時点で既に、かも)に流星さんが<a class="keyword" href="http://d.hatena.ne.jp/keyword/VB">VB</a>で作ってくださったスクリプトに、表題のようなものがありました。<br /> 振られているルビに影響を与えず、その親文字だけ文字を差し替えるためのスクリプトです。<br /> そこで、書いてみましたがうまくいきません。</p> <pre class="code lang-javascript" data-lang="javascript" data-unlink><span class="synIdentifier">var</span> my_sel = app.selection; <span class="synStatement">if</span> (my_sel<span class="synIdentifier">[</span>0<span class="synIdentifier">]</span>.rubyFlag == <span class="synConstant">false</span>)<span class="synIdentifier">{</span> <span class="synStatement">alert</span>(<span class="synConstant">&quot;ルビが設定された文字を選択してください&quot;</span>); exit(); <span class="synIdentifier">}</span> <span class="synIdentifier">var</span> my_str = <span class="synStatement">prompt</span>(<span class="synConstant">&quot;新しい親文字を入力してください。&quot;</span>, my_sel<span class="synIdentifier">[</span>0<span class="synIdentifier">]</span>.contents); <span class="synIdentifier">var</span> my_ruby = my_sel<span class="synIdentifier">[</span>0<span class="synIdentifier">]</span>.rubyString; my_sel<span class="synIdentifier">[</span>0<span class="synIdentifier">]</span>.contents = my_str; my_sel<span class="synIdentifier">[</span>0<span class="synIdentifier">]</span>.rubyFlag = <span class="synConstant">true</span>; my_sel<span class="synIdentifier">[</span>0<span class="synIdentifier">]</span>.rubyString = my_ruby; </pre><p>説明のため、一旦話題を変えて標準機能のルビダイアログについて。<br /> 標準機能だと、複数の親文字にスペース区切りでモノルビが設定されている場合、親文字のどちらか一方を選んでルビダイアログを開くと……<br /> <span itemscope itemtype="http://schema.org/Photograph"><a href="http://f.hatena.ne.jp/k_iki/20130319165327" class="hatena-fotolife" itemprop="url"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130319/20130319165327.png" alt="f:id:k_iki:20130319165327p:image" title="f:id:k_iki:20130319165327p:image" class="hatena-fotolife" itemprop="image"></a></span><br /> こんな風に、ルビが設定された親文字全てを選んでくれます。<br /> <span itemscope itemtype="http://schema.org/Photograph"><a href="http://f.hatena.ne.jp/k_iki/20130319165328" class="hatena-fotolife" itemprop="url"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130319/20130319165328.png" alt="f:id:k_iki:20130319165328p:image" title="f:id:k_iki:20130319165328p:image" class="hatena-fotolife" itemprop="image"></a></span><br /> では、スクリプトの話に戻します。<br /> 上記のスクリプトだと、選択した文字しか拾ってくれません。例えば、図示したテキスト最初の文字「山」を選択した場合は「山」だけを。なんだか当然の事を言っているようですが、標準機能のルビダイアログとは動作が違うよ、ということです。<br /> そのまま強引に文字を差し替えてみましょう。例えば、「山」を「川」に。<br /> <span itemscope itemtype="http://schema.org/Photograph"><a href="http://f.hatena.ne.jp/k_iki/20130319165329" class="hatena-fotolife" itemprop="url"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/k/k_iki/20130319/20130319165329.png" alt="f:id:k_iki:20130319165329p:image" title="f:id:k_iki:20130319165329p:image" class="hatena-fotolife" itemprop="image"></a></span><br /> 「路」のルビが見た目には消えてしまいました。ですが、情報としてはルビが残ったままの状態です。<br /> 一旦こうなると、ルビを一旦クリアして打ち直してやらないと直りません。<br /> あるいは、上記スクリプトで親文字を両方とも選んで打ち直す(または打ち直さずそのままOKを押す)ことでも直ることは直ります。<br />  <br /> このスクリプトの改善点としては、複数文字列にルビが設定されている場合、一文字だけ選んだ時の動作が標準機能によるルビダイアログと同様の選択結果になるのが理想ですが、そこで詰まってます。<br /> なんか、すっごく単純なことのような気がするのですが、実際にはそうではありませんでした(^^;<br />  <br /> 今回もまた流星さんのお力をお借りし、上記の私のソースを改変していただきました。<br /> 複数文字列にルビが設定されている際、例えば先頭の一文字だけを選んでやれば対象の親文字を全て拾ってくれます。</p> <pre class="code lang-javascript" data-lang="javascript" data-unlink>#target indesign <span class="synComment">// つか、メンドイんすけど、コレwww</span> <span class="synStatement">if</span> (app.selection!=0)<span class="synIdentifier">{</span> <span class="synIdentifier">var</span> sel=app.selection<span class="synIdentifier">[</span>0<span class="synIdentifier">]</span>; <span class="synStatement">if</span> (sel.constructor.name.match(<span class="synConstant">/^Character|Text|Paragraph|Line|TextStyleRange|Word|TextColumn$/</span>))<span class="synIdentifier">{</span> <span class="synComment">// ルビ文字判定</span> <span class="synStatement">if</span> ( ! sel.rubyFlag ) <span class="synIdentifier">{</span> <span class="synComment">// ルビじゃない文字入ってるぜ</span> <span class="synStatement">alert</span>(<span class="synConstant">&quot;ルビが設定された文字を選択してください&quot;</span>); exit(); <span class="synIdentifier">}</span> <span class="synComment">// 選択範囲の前方確認</span> <span class="synIdentifier">var</span> fc=sel.characters<span class="synIdentifier">[</span>0<span class="synIdentifier">]</span>; <span class="synComment">// 最初の文字</span> <span class="synStatement">if</span> (fc.rubyFlag)<span class="synIdentifier">{</span> <span class="synComment">/* 最初の文字がルビの親文字だったら、その前の文字も同じルビ文字を持つか? */</span> rs=fc.rubyString; <span class="synStatement">if</span> (fc.index&gt;1)<span class="synIdentifier">{</span> ge=fc.parentStory.characters<span class="synIdentifier">[</span>fc.index-1<span class="synIdentifier">]</span>; <span class="synIdentifier">var</span> aa=<span class="synIdentifier">[]</span>; <span class="synStatement">for</span> (;;)<span class="synIdentifier">{</span> <span class="synStatement">if</span> (ge.rubyFlag==<span class="synConstant">true</span> &amp;&amp; fc.rubyString==rs &amp;&amp; ge.contents!=<span class="synConstant">&quot;</span><span class="synSpecial">\r</span><span class="synConstant">&quot;</span>) <span class="synIdentifier">{</span> <span class="synComment">// 同じルビ文字だ</span> aa.push(ge.index); <span class="synStatement">if</span> (ge.index-1==fc.parentStory.characters.length-2)<span class="synIdentifier">{</span> <span class="synStatement">break</span> <span class="synIdentifier">}</span> ge.select(SelectionOptions.addTo); <span class="synComment">// 選択範囲に含むぜ</span> ge=fc.parentStory.characters<span class="synIdentifier">[</span>ge.index-1<span class="synIdentifier">]</span>; <span class="synComment">// 対象を変更</span> <span class="synIdentifier">}</span><span class="synStatement">else</span><span class="synIdentifier">{</span> <span class="synStatement">break</span> <span class="synIdentifier">}</span> <span class="synIdentifier">}</span> <span class="synIdentifier">}</span> <span class="synIdentifier">}</span> <span class="synComment">// 前方確認完了</span> <span class="synComment">// 選択範囲の後方確認</span> <span class="synIdentifier">var</span> lc=sel.characters<span class="synIdentifier">[</span>sel.characters.length-1<span class="synIdentifier">]</span>; <span class="synComment">// 最後の文字</span> <span class="synStatement">if</span> (lc.rubyFlag)<span class="synIdentifier">{</span> <span class="synComment">/* 最後の文字がルビの親文字だったら、その次の文字も同じルビ文字を持つか? */</span> rs=lc.rubyString; <span class="synComment">//~ alert(lc.index+1);</span> <span class="synComment">//~ alert(lc.parentStory.characters.length-1);</span> <span class="synStatement">if</span> (lc.index+1&lt;lc.parentStory.characters.length)<span class="synIdentifier">{</span> ge=lc.parentStory.characters<span class="synIdentifier">[</span>lc.index+1<span class="synIdentifier">]</span>; <span class="synStatement">for</span> (;;)<span class="synIdentifier">{</span> <span class="synStatement">if</span> (ge.rubyFlag==<span class="synConstant">true</span> &amp;&amp; lc.rubyString==rs &amp;&amp; ge.contents!=<span class="synConstant">&quot;</span><span class="synSpecial">\r</span><span class="synConstant">&quot;</span>) <span class="synIdentifier">{</span> <span class="synComment">// 同じルビ文字だ</span> ge.select(SelectionOptions.addTo); <span class="synComment">// 選択範囲に含むぜ</span> <span class="synStatement">if</span> (ge.index+1&lt;lc.parentStory.characters.length)<span class="synIdentifier">{</span> ge=lc.parentStory.characters<span class="synIdentifier">[</span>ge.index+1<span class="synIdentifier">]</span>; <span class="synComment">// 対象を変更</span> <span class="synIdentifier">}</span><span class="synStatement">else</span> <span class="synStatement">if</span>(ge.index+1==lc.parentStory.characters.length)<span class="synIdentifier">{</span> <span class="synStatement">break</span>; <span class="synIdentifier">}</span> <span class="synIdentifier">}</span><span class="synStatement">else</span><span class="synIdentifier">{</span> <span class="synStatement">break</span> <span class="synIdentifier">}}</span> <span class="synIdentifier">}</span> <span class="synIdentifier">}</span> <span class="synComment">// 後方確認完了</span> <span class="synComment">// 親文字入力プロンプトを表示する</span> <span class="synIdentifier">var</span> my_sel=app.selection<span class="synIdentifier">[</span>0<span class="synIdentifier">]</span>; <span class="synIdentifier">var</span> my_str=<span class="synStatement">prompt</span>(<span class="synConstant">&quot;新しい親文字を入力してください。&quot;</span>, my_sel.contents); <span class="synStatement">if</span> (my_str==<span class="synStatement">null</span>)<span class="synIdentifier">{</span> <span class="synComment">// キャンセルされたとき</span> <span class="synComment">// 元の選択範囲を掴み直す</span> sel.select(); exit(); <span class="synIdentifier">}</span> <span class="synStatement">if</span> (my_str !=<span class="synConstant">&quot;&quot;</span>) <span class="synIdentifier">{</span> <span class="synIdentifier">var</span> my_ruby=my_sel.rubyString; my_sel.contents=my_str; my_sel.rubyFlag=<span class="synConstant">true</span>; my_sel.rubyString=my_ruby; <span class="synIdentifier">}</span> <span class="synIdentifier">}</span> exit(); <span class="synIdentifier">}</span> </pre> k_iki ルビの文字数に応じた変形の続き:モノルビを分割 hatenablog://entry/11696248318755038963 2013-03-15T17:24:15+09:00 2013-06-25T12:21:45+09:00 今回は以前の日記ルビの文字数に応じた変形で書いた件について。 pictrix師匠から、もう解決済みではないかとのお返事をいただいているのですが、実はまだです(^^; ではどうしているかというと、上記リンク先でも書いたとおり、バイカモさんの「ルビ分割修正」スクリプトを利用させていただいております。 相変わらず、何回かに一回はスクリプトのダイアログこそ出るものの動作しなくなるので、InDesignの再起動をしなければならない場面が出てきます。 さて、pictrix師匠のソースを改造するにあたり、ルビの親文字の先頭に何らかの文字を追加し、処理の最後に削除すればどうかと思って検討してみました。 しかし… <p>今回は以前の日記<a href="http://d.hatena.ne.jp/k_iki/20130131">&#x30EB;&#x30D3;&#x306E;&#x6587;&#x5B57;&#x6570;&#x306B;&#x5FDC;&#x3058;&#x305F;&#x5909;&#x5F62;</a>で書いた件について。<br /> pictrix師匠から、もう解決済みではないかとのお返事をいただいているのですが、実はまだです(^^;<br /> ではどうしているかというと、上記リンク先でも書いたとおり、バイカモさんの「ルビ分割修正」スクリプトを利用させていただいております。<br /> 相変わらず、何回かに一回はスクリプトのダイアログこそ出るものの動作しなくなるので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>の再起動をしなければならない場面が出てきます。<br />  <br /> さて、pictrix師匠のソースを改造するにあたり、ルビの親文字の先頭に何らかの文字を追加し、処理の最後に削除すればどうかと思って検討してみました。<br /> しかし、私のアホな頭脳では、ルビの親文字の先頭をどう判別すればいいのかわからず、モノルビが設定されたすべての文字の直前に文字を追加するという間抜けな事態を招くのみでした……<br /> 竹取(たけ とり)物語(もの がたり) → ★竹★取★物★語  という感じに。<br />  <br /> そんなこんなで悪戦苦闘が続いておりますが、今後はテキストの状態で整形して流し込む方法に統一して進めようという流れになりつつあります(^^;<br /> 時間が許す限り検討を続けていきたいと思います。</p> k_iki ドキュメント中で使っているスタイルを書き出す hatenablog://entry/11696248318755038966 2013-02-27T12:28:11+09:00 2013-06-25T12:21:46+09:00 表題の目的を満たすスクリプト、既に何人かの方がWEBにアップなさってますね。 このブログ記事を書くにあたって何度もお世話になっているmgさんも書かれています。 そのmgさんの記事をもとに、出版ネッツ関西さんもWindows対応+フォルダ&ファイル名指定可能版として記事を書かれています。 特にグループ化したスタイルを書き出せるところが便利で、ちょうど今ほしかったスクリプトだったのでとても助かりました。フォルダ&ファイル名指定への対応版(ver.3)はWindows対応版だけのようなので、Macで動くように少し書き換えてみました。 変更部分のソースのみ以下に示します。 //ここからファイル出力 v… <p>表題の目的を満たすスクリプト、既に何人かの方がWEBにアップなさってますね。<br /> このブログ記事を書くにあたって何度もお世話になっているmgさんも書かれています。<br /> そのmgさんの記事をもとに、<a href="http://netswest.org/modules/popnupblog/index.php?param=3-20110305">&#x51FA;&#x7248;&#x30CD;&#x30C3;&#x30C4;&#x95A2;&#x897F;</a>さんもWindows対応+フォルダ&ファイル名指定可能版として記事を書かれています。<br /> 特にグループ化したスタイルを書き出せるところが便利で、ちょうど今ほしかったスクリプトだったのでとても助かりました。</p><p>フォルダ&ファイル名指定への対応版(ver.3)はWindows対応版だけのようなので、Macで動くように少し書き換えてみました。<br /> 変更部分のソースのみ以下に示します。</p> <pre class="code lang-javascript" data-lang="javascript" data-unlink> <span class="synComment">//ここからファイル出力</span> <span class="synIdentifier">var</span> fileObj = File.saveDialog(<span class="synConstant">&quot;保存先とファイル名を指定して下さい&quot;</span>); <span class="synIdentifier">var</span> fileObj = <span class="synStatement">new</span> File(fileObj.fsName); <span class="synIdentifier">var</span> flag = fileObj.open(<span class="synConstant">&quot;w&quot;</span>); <span class="synStatement">if</span>(flag == <span class="synConstant">true</span>)<span class="synIdentifier">{</span> fileObj.writeln(<span class="synConstant">&quot;段落スタイル&quot;</span> + <span class="synConstant">&quot;</span><span class="synSpecial">\r</span><span class="synConstant">&quot;</span> + pstList + <span class="synConstant">&quot;</span><span class="synSpecial">\r</span><span class="synConstant">&quot;</span> + <span class="synConstant">&quot;文字スタイル&quot;</span> + <span class="synConstant">&quot;</span><span class="synSpecial">\r</span><span class="synConstant">&quot;</span> + cstList); fileObj.close(); <span class="synStatement">alert</span>(<span class="synConstant">&quot;書き出しました&quot;</span>); <span class="synIdentifier">}</span> </pre><p>そうそう、スクリプトを走らせても見た目何の変化もなく書き出しが終了しますので、一応スクリプトの動作が完了したことをアラートダイアログで表示するようにしました。</p> k_iki メタ文字のエスケープ hatenablog://entry/11696248318755038969 2013-02-22T17:07:55+09:00 2013-06-25T12:21:48+09:00 InDesignの正規表現検索・置換をJavascript中に記述することができるわけですが、なぜか、InDesign上での正規表現検索・置換に成功したパターンをJavascript中にそのまま記述しても置換が成功しないことがあります。 今回、InDesignドキュメント中の半角括弧を全角に置換するスクリプトを書いていて気付きました。 どうやら、メタ文字のエスケープが効いていないようです。 そこで、バックスラッシュ自体もエスケープしてみました。 Macだとバックスラッシュがふたつ、Winだと円マークがふたつ連続している状態です。 そうすると、置換に成功しました。 ※下記の検索パターンは、半角括… <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>検索・置換を<a class="keyword" href="http://d.hatena.ne.jp/keyword/Javascript">Javascript</a>中に記述することができるわけですが、なぜか、<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>上での<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>検索・置換に成功したパターンを<a class="keyword" href="http://d.hatena.ne.jp/keyword/Javascript">Javascript</a>中にそのまま記述しても置換が成功しないことがあります。<br /> 今回、<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>ドキュメント中の半角括弧を全角に置換するスクリプトを書いていて気付きました。<br /> どうやら、メタ文字のエスケープが効いていないようです。<br /> そこで、<span class="deco" style="font-weight:bold;">バックスラッシュ自体もエスケープ</span>してみました。<br /> Macだとバックスラッシュがふたつ、Winだと円マークがふたつ連続している状態です。<br /> そうすると、置換に成功しました。<br /> ※下記の検索パターンは、半角括弧で起こした後、改行することなく必ず半角括弧で閉じている文字列を最小一致にて検索対象としています。念のため。<br /> (Mac OSX 10.7.5 / <a class="keyword" href="http://d.hatena.ne.jp/keyword/Windows7">Windows7</a> pro SP1、いずれも<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a> CS6にて検証)</p> <pre class="code lang-javascript" data-lang="javascript" data-unlink><span class="synIdentifier">var</span> mySel = app.selection<span class="synIdentifier">[</span>0<span class="synIdentifier">]</span>; <span class="synIdentifier">var</span> myObj = mySel.parentStory; app.changeGrepPreferences = NothingEnum.nothing; app.findGrepPreferences = NothingEnum.nothing; app.findGrepPreferences.findWhat = <span class="synConstant">&quot;</span><span class="synSpecial">\\</span><span class="synConstant">((.*?)</span><span class="synSpecial">\\</span><span class="synConstant">)&quot;</span>; app.changeGrepPreferences.changeTo = <span class="synConstant">&quot;($1)&quot;</span>; myObj.changeGrep(); </pre><p>これ、たけうちとおるさんが発表なさってる<a href="http://www.adg7.com/takenote_b/2009/03/120.html">&#x691C;&#x7D22;&#x7F6E;&#x63DB;&#xFF08;&#xFF11;&#xFF09;&#x5909;&#x63DB;.jsx</a>に検索文字列と置換文字列を入れてやれば、検索範囲のコントロールができるので便利ですね。<br /> ところで今リンク先のたけうちさんの記事に寄せられている、私のそれより新しいコメントに気付いたのですが、数字を表すメタ文字 \d が反応しないというのも同じ理由です。<br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/Javascript">Javascript</a>中では \\d と記述してやらないと<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>側へバックスラッシュ文字を渡してやることができず、数字にマッチしないどころか d そのものにマッチしてしまうのです。<br />  <br />  <br /> <span class="deco" style="font-weight:bold;">追記</span><br /> スタイルグループに対応しないという記述を見落とした(^^;<br /> たけうちさんのスクリプト中、たとえば置換用段落スタイルならスクリプト冒頭付近でスタイル名を入力しておき、検索置換関数内で</p> <pre class="code lang-javascript" data-lang="javascript" data-unlink>app.activeDocument.paragraphStyles.item(myChangeP_style); </pre><p>としてスタイル名を受け取るところがあるわけですが、グループ名を指定する記述がありません。<br /> グループ名が必要ならグループ名も指定してやらないといけないのです。</p> <pre class="code lang-javascript" data-lang="javascript" data-unlink>app.activeDocument.paragraphStyleGroups.itemByName(<span class="synConstant">&quot;グループ名&quot;</span>).paragraphStyles.itemByName(<span class="synConstant">&quot;スタイル名&quot;</span>); </pre><p>というふうに。<br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>タグテキストであれば <span class="deco" style="color:#FF0000;"><pstyle:グループ名\:スタイル名></span> という記述でよい <span class="deco" style="font-size:small;">(<a href="http://kstation2.blog10.fc2.com/blog-entry-142.html">&#x30BF;&#x30B0;&#x30C6;&#x30AD;&#x30B9;&#x30C8;&#x306B;&#x304A;&#x3051;&#x308B;&#x30B0;&#x30EB;&#x30FC;&#x30D4;&#x30F3;&#x30B0;&#x3057;&#x305F;&#x30B9;&#x30BF;&#x30A4;&#x30EB;</a>参照)</span> ですし、グループ内のスタイルを当てた文字列をスタイルパネルで確認すると <span class="deco" style="color:#FF0000;">スタイル名 (グループ名)</span> と表示されているので、スクリプト内でもそのように記述すればよいのではないかと思ってしまうかもしれない(私はそうでした……)のですが、そうではないのですね。</p> k_iki 旧バージョン用スクリプト hatenablog://entry/11696248318755038972 2013-02-08T17:14:31+09:00 2013-06-25T12:21:49+09:00 InDesignというかCreativeCloud(じゃなくてCreativeSuiteと言うべき?)の現バージョンはCS6(通算バージョンは8.0)であり、CS7の情報もAdobe公式サイト等を通じてちらほらと聞こえ始めてきております。 バージョンアップにあたってはいろいろと仕様が変更されるため、旧バージョンの時に書いたスクリプトが動かなくなることがよくあります。 しかしながら、Scriptsフォルダ内にたとえばVersion 6.0 Scriptsという名前のフォルダを作り、そこにCS4の時に書いたスクリプトを入れれば動作します。 とは言っても、バージョンアップに伴い廃止されたメソッドやプ… <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>というかCreativeCloud(じゃなくてCreativeSuiteと言うべき?)の現バージョンはCS6(通算バージョンは8.0)であり、CS7の情報も<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adobe">Adobe</a>公式サイト等を通じてちらほらと聞こえ始めてきております。<br /> バージョンアップにあたってはいろいろと仕様が変更されるため、旧バージョンの時に書いたスクリプトが動かなくなることがよくあります。<br /> しかしながら、Scriptsフォルダ内にたとえばVersion 6.0 Scriptsという名前のフォルダを作り、そこにCS4の時に書いたスクリプトを入れれば動作します。<br /> とは言っても、バージョンアップに伴い廃止されたメソッドやプロパティをスクリプト中に記述していた場合、必ずしも動くとは限らないのです。<br /> 全てを確認なんてとてもじゃないけどしていませんが、バージョンアップに伴い少し名前が変わったものの、廃止されたわけではなく新バージョンにも同じ意味のプロパティが存在する場合は問題なく動作する、という程度に過ぎないようなのです。<br /> まあ、それでも旧バージョン用スクリプトのいくつかは一切書き換えずに使える可能性があるわけで、それだけでもかなり便利なのは事実です。<br /> しかし、世の中甘くないというか。<br /> どうやら、何らかの条件によって、旧バージョン用スクリプトが動いたり動かなかったりするようなのです。<br /> 条件の特定はできませんが、「あ、動かない!」と思ったらさくっと<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>を再起動してやることで動くようになる、という事態を何度も経験しております。<br /> だからって旧バージョン用スクリプトを一切使わない、という選択肢は私の中にはないのですが、できれば旧バージョン用スクリプトを多用せず、新バージョン用に書き直して使いたいな、と。<br /> それはそれとして、今日の日記はなんとも消極的な結論ではありますが。<br /> 旧バージョン用スクリプトが動かない場合、<a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>の再起動で動く場合もあるよ、ということで。</p> k_iki ルビの文字数に応じた変形 hatenablog://entry/11696248318755038975 2013-01-31T22:24:43+09:00 2013-06-25T12:21:51+09:00 InDesignのルビ機能は、親文字よりルビ文字の方が長くなった場合に自動的に何%まで長体(縦組みでは平体)をかけるか設定できます。 ですが、稀なケースではありますが、「親文字1文字に対してルビ文字3文字のとき、70%にしたい」とか、「4文字のときは55%にしたい。50%にしても良いのは5文字以上」といったこだわりのお仕事もある、かもしれません。 そこで、書いてみました。 先に言っておくと、問題があります。 処理の中で、ルビフラグがtrueかどうかで分岐させてはいますが、それがモノルビかグループルビか判別させるのを忘れてました。 なお、複数の親文字に対し、スペース区切りでモノルビを設定していた… <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/InDesign">InDesign</a>のルビ機能は、親文字よりルビ文字の方が長くなった場合に自動的に何%まで長体(縦組みでは平体)をかけるか設定できます。<br /> ですが、稀なケースではありますが、「親文字1文字に対してルビ文字3文字のとき、70%にしたい」とか、「4文字のときは55%にしたい。50%にしても良いのは5文字以上」といったこだわりのお仕事もある、かもしれません。<br /> そこで、書いてみました。<br />  <br /> 先に言っておくと、問題があります。<br /> 処理の中で、ルビフラグがtrueかどうかで分岐させてはいますが、それがモノルビかグループルビか判別させるのを忘れてました。<br /> なお、複数の親文字に対し、スペース区切りでモノルビを設定していた際の処理も想定していません。<br />  <br /> そこで、ミシマバイカモさんの<a href="http://www4.tokai.or.jp/high-sea-fleet/">InDesign&#x30B9;&#x30AF;&#x30EA;&#x30D7;&#x30C8;&#x914D;&#x7D66;&#x6240;</a>にある、ルビ分割修正というスクリプトで前処理する必要が出てきます。これ、Version 4.0 Scriptsフォルダに入れてやらないとCS6(というかCS3以降)では使えません。<br />  <br /> <span class="deco" style="color:#FF0000;"><span class="deco" style="font-weight:bold;">2013/02/01追記:</span>と、思ったら、以前<a href="http://www.pictrix.jp/?p=3151">PICTRIX&#x5E2B;&#x5320;</a>がCS4で動くものを作っておられました!(確認したところCS6でも動作しました)</span><br />  <br /> なんとか、前述のモノ/グループ判別と、この分割処理も含めて一括処理してやりたいな、と。<br /> <span class="deco" style="color:#FF0000;"><span class="deco" style="font-weight:bold;">2013/02/01追記:</span>モノルビ判別するように直しました。</span><br />  <br /> rubyStringを" "でsplitし、検索置換機能で順番に親文字に対して設定してやればいい、とやるべきことがわかっててもそれなりに手間がかかるわけで(^^;<br /> そんなわけで不完全ではありますが、ひとまず今回書いた分を。<br />  </p> <pre class="code lang-javascript" data-lang="javascript" data-unlink><span class="synComment">//ルビ文字数に応じて変形</span> <span class="synIdentifier">var</span> selObj = app.selection; <span class="synStatement">for</span> (i=0; i&lt;selObj.length; i++) <span class="synIdentifier">{</span> <span class="synStatement">if</span> (selObj<span class="synIdentifier">[</span>i<span class="synIdentifier">]</span>.constructor.name === <span class="synConstant">&quot;TextFrame&quot;</span>) <span class="synIdentifier">{</span> <span class="synIdentifier">var</span> myPara = selObj<span class="synIdentifier">[</span>i<span class="synIdentifier">]</span>.parentStory.paragraphs; <span class="synComment">//parentStory追加(2013.02.06)</span> <span class="synStatement">for</span> (j=0; j&lt;myPara.length; j++) <span class="synIdentifier">{</span> <span class="synIdentifier">var</span> myCha = myPara<span class="synIdentifier">[</span>j<span class="synIdentifier">]</span>.characters; <span class="synStatement">for</span> (k=0; k&lt;myCha.length; k++) <span class="synIdentifier">{</span> <span class="synComment">//if (myCha[k].rubyFlag === true) { //修正前(2013.01.31)</span> <span class="synStatement">if</span> (myCha<span class="synIdentifier">[</span>k<span class="synIdentifier">]</span>.rubyType === RubyTypes.PER_CHARACTER_RUBY) <span class="synIdentifier">{</span> <span class="synComment">//修正後(2013.02.01)</span> <span class="synStatement">if</span> (myCha<span class="synIdentifier">[</span>k<span class="synIdentifier">]</span>.rubyString.length &gt; 4) <span class="synIdentifier">{</span> myCha<span class="synIdentifier">[</span>k<span class="synIdentifier">]</span>.rubyXScale = 50; <span class="synIdentifier">}</span> <span class="synStatement">else</span> <span class="synStatement">if</span> (myCha<span class="synIdentifier">[</span>k<span class="synIdentifier">]</span>.rubyString.length === 4) <span class="synIdentifier">{</span> myCha<span class="synIdentifier">[</span>k<span class="synIdentifier">]</span>.rubyXScale = 55; <span class="synIdentifier">}</span> <span class="synStatement">else</span> <span class="synStatement">if</span> (myCha<span class="synIdentifier">[</span>k<span class="synIdentifier">]</span>.rubyString.length === 3) <span class="synIdentifier">{</span> myCha<span class="synIdentifier">[</span>k<span class="synIdentifier">]</span>.rubyXScale = 70; <span class="synIdentifier">}</span> <span class="synStatement">else</span> <span class="synIdentifier">{</span> myCha<span class="synIdentifier">[</span>k<span class="synIdentifier">]</span>.rubyXScale = 100; <span class="synIdentifier">}</span> <span class="synIdentifier">}</span> <span class="synIdentifier">}</span> <span class="synIdentifier">}</span> <span class="synIdentifier">}</span> <span class="synStatement">else</span> <span class="synIdentifier">{</span> <span class="synStatement">alert</span> (<span class="synConstant">&quot;選択ツールでテキストフレームを選択してください&quot;</span>); exit(); <span class="synIdentifier">}</span> <span class="synIdentifier">}</span> </pre> k_iki