読者です 読者をやめる 読者になる 読者になる

k_ikiの雑記帳

DTPのこと、創作のことなど、思いつくまま

縦中横で変な挙動

うーん。
縦中横で、今までお目にかかったことのない状態を確認。
これはバグと呼ぶべきかどうか。
再現性ははっきりとわかったけど、WEBあさっても情報がない。
回避策まではっきりしたら、このエントリを編集して書き直す(予定)。



ある程度判明したので追記します。
Mac OSX 10.6.8/InDesign CS4・CS5.5
Mac OSX 10.7.5/InDesign CS6・CC にて同様の現象を確認済み。
 
縦組みの文章物を作成中に現象に気づきました。
まず、等幅全角・等幅半角・等幅三分の各文字スタイルを用意しておきます。
等幅三分はあってもなくても現象を確認できますが、まあとりあえず。
次に段落スタイルを作成します。下記手順にて。
 
自動縦中横は3桁まで。
f:id:k_iki:20130730183911p:plain
 
正規表現スタイルはこんな感じ。
f:id:k_iki:20130730183920p:plain
 
縦組み中の欧文回転をONに。
(あくまで、現象に気づいた際のスタイルを忠実に再現しただけです。これがOFFでも現象を確認できます2013/07/31訂正:ONの場合にこの現象が再現します
f:id:k_iki:20130730183926p:plain
 
こうなります。
f:id:k_iki:20130730183931p:plain
 
おわかりでしょうか。
2行目の途中にある二桁数字に、次の文字が重なってしまっています。
 
原因は単純にして意味不明なのですが、段落最終行末尾のキャラクタが、自動縦中横のかからない数字だった場合にこうなります。
従って回避方法も単純で、末尾のキャラクタが句点やスペース・改行など、数字以外のキャラクタであれば正常な状態になります。
 
全くもってすっきりしませんが、やはりバグじゃないかな、と。

【BUG】テキストアンカーがずれる 続き

昨日のエントリの件です。
検証の結果、もう少しわかったので補足します。
 
f:id:k_iki:20130718104307p:plain
一行目:11Q・上揃え
二行目:11Q・中揃え
三行目:11Q・下揃え
親段落は13Qなので、いずれも文字スタイルを作成して適用してあります。
これを別フレームにコピペすると……
 
 
f:id:k_iki:20130718104312p:plain
↑こうなります。
 
 
f:id:k_iki:20130718104326p:plain
ここで改行マークに注目。
二行目は中揃えなのでどちらでもよろしいが、一行目と三行目の改行マークについて、文字スタイルを「なし」にしてみます。
この状態で別フレームにコピペすると……
 
 
f:id:k_iki:20130718104334p:plain
ずれません。
なお、フレームのドラッグ移動でもずれませんでした。
 
 
f:id:k_iki:20130718104343p:plain
ただ、フレームの最終行であっても改行を入力し、その改行コードのベースラインがシフトされていない状態でないと、やはりずれます。
いずれにせよ、アンカーマーカーの位置ではなく、改行コードの位置に左右されるわけであって、明らかなバグですよね。

【BUG】テキストアンカーがずれる

MacOSX10.6.8 / InDesign CS4
MacOSX10.7.5 / InDesign CS6・CC にて確認。
 
f:id:k_iki:20130717180200p:plain
まず、このようなアンカーオブジェクトを用意します。
あらかじめオブジェクトスタイルに登録しておくことをお勧めします。
 
f:id:k_iki:20130717180208p:plain
丸付き数字、スペースに続けてアンカーを挿入。
右インデントタブを入力後、ベースラインを下げた文字列を挿入。
これを別のフレームにコピー&ペーストしてみると……
 
f:id:k_iki:20130717180216p:plain
あらら。どゆこと。
 
f:id:k_iki:20130717180222p:plain
どうやら、ベースラインを下げた文字列のセンターに揃ってしまった模様。
試しに、アンカーより前の文字列をベースラインシフトさせた上でコピペしてみたが、そちらは影響なし。
しかも、コピペでなく、フレームをただ単にマウスドラッグで移動しただけでもずれてくれやがります。お試しあれ。
なお、ベースラインシフトではなく、級数の文字列を欧文ベースライン等で揃えている場合も、コピペやマウスドラッグによって影響を受けることを確認しました。
 
f:id:k_iki:20130717180228p:plain
ここからは対症療法の提案ですが、あんまり気持ち良くないです。
まず、ベースラインが下がっている文字列以降を、改行して次行に送っておきます。
 
f:id:k_iki:20130717180233p:plain
次に、最初に作っておいたオブジェクトスタイルをOption+クリックして強制適用します。
スタイルパネルを見る限り、オーバーライド警告はありません。それでも強制適用するのです!
多分、アンカーオブジェクトは正しい位置に来るでしょう。そうしたらさきほどの改行を削除します。ああめんど。
 
Adobeさん、正式に報告しますんで、修正してくださいね!

日本語文書における句読点 補足

前回のエントリ、ブックマークいただきましてありがとうございます。
コメント等いただいておりますので、少し補足を。
 
「実務の友」様 テンでばらばらな句読点
に詳しいのですが、さらりと簡潔にまとめられている印象です。
上記記事の下部に示されたリンク先のひとつ、
「DDT's Room」様 横書き文の句読点について
の記事が読みやすくて参考になるかと。
 
いただいたご意見

  • 「和欧混植の際の句読点を統一するため、日本語文書であってもカンマとピリオド」…こんな話は聞いたことがないけど…組版的にはアカンと思う…英文のピリオド、コンマと和文の句読点としてのピリオド、コンマは別…
  • そういやこういう話で誰が決めたのかわからないけど「、,」「。.」が全く同じ意味で等価変換できることになっているけど本当にそうなのだろうか?

 
読点はともかく、日本語文書の句点としては現在、圧倒的にマルを使ったものが多いです。
ただし、大学、それも理系学部で論文を書く際には、教授からカンマとピリオドで書くように指導されているのは事実であり、そういった原稿を印刷所に発注する際もカンマとピリオドで統一するように依頼するのが通例となっているようです。
ただし、印刷物全般から見ればレアなケースと言えるかも知れません。
 
こういった話、誰が決めたか本当にわかりません。決めようとした団体があったけれども、相互に連携がとれていないまま現在に至った感じですし。
「、,」「。.」が全く同じ意味で等価変換できるかどうかに関しても、ケースバイケースと言わざるを得ないでしょう。

日本語文書における句読点

公式な文書ではどう表記するのが正しいのか。
学術論文では? 小説では?
同じ日本語なのに、印刷物の性格によってルールの縛りに温度差があるように感じられる。
 

  • 曰く、横書き文書であれば和欧混植の際の句読点を統一するため、日本語文書であってもカンマとピリオドを使うべし。
  • 曰く、横書きにおける読点はカンマを使うべきだが、句点はあくまでも「。」を使うべし。
  • 曰く、日本語文書である以上、「、」と「。」を使うべし。欧米かぶれ許すまじ。

 
句読点とは違うけれども、感嘆符「!」や疑問符「?」には本来の意味と同時に、文章の終わりという意味を含んでいる。
これらはもともと日本語になかったので、日本語文書に使うべきでないとの議論も、過去には存在した。欧米かぶれ許すまじ、という議論である。
 
ここで、日本語表記における句読点の由来を少し考えてみたい。
日本語文書の場合、中世以前の正式文書は漢文だった。
中世以降、仮名書きや漢字仮名交じりが普及したが、現代のような一文字ずつに区切られる以前の仮名文字は草書体からの発展途上であり、文章の区切りごとに繋がって綴られることが多かった。また、漢字と仮名を交ぜ書きすることにより、読み手が区切りを読み間違えることが少なく、句読点はあまり必要とされていなかった。
文部省が「文法上許容スベキ事項」1905(明治38)年 16条を告示したことにより、それまでの文語文が日常から遠のき、口語文が増え始める。
折しも、日本での活字の使用が増え始めた時期であり、この頃から徐々に句読点が印刷物に現れるようになる。
ところで、句読点とはそもそも、純粋な日本語というより外国語の解読のためのものという性格が強かったように思われる。
 

  • 漢文あるいはその訓読において文章の区切りを明確にするために用いられたもの
  • 欧米の文章に用いられたもの

 
文部省はこの後、1906年に「句読点法」の指針を示そうとしたが、今日に至ってもなお確立していない。
 
さて、日本語の文章では、縦組と横組とで句読点を変えることがある。縦組では「、。」だけであるが、横組では「、。」「,。」「,.」の組合せがある。これは明治時代に日本語の改革が起きたとき以来続いている。
 
テンとマルが使われている日本語文書

  • マスコミ関係
  • 書籍や雑誌

 (規定はないがテンマルが非常に多い。例外もあるが、それぞれの出版物の中では統一されている)
 
カンマとピリオドが使われている日本語文書

  • 理系出版物や論文など

 (大学の担当教授もそのように指導)
※カンマとピリオドなら半角「,」「.」を使うべきだという人も多いいる
 
カンマとマルが使われている日本語文書

  • 教科書・教育機関
  • 公文書

内閣が各省庁の次官宛に発出した通達(下記「参考:」の「公用文作成の要領」を参照)で、現在も有効とされているが、「不便である」との職員の声に応え、自治体によっては規定を緩める条例を採用しているところもある。
  
参考:
「くぎり符号の使い方は、縦書きの場合と同じである。ただし、横書きの場合は『、』を用いず、『,』を用いる。」
(「文部省刊行物表記の基準」1950(昭和25)年 より、後に「国語の書き表し方」と改題)
※国語表記に関する取り組みは、現在は文化庁の担当となっている。
 
「句読点は、横書きでは『,』および『。』を用いる。」
 (「公用文作成の要領」(1952(昭和27)年4月4日内閣甲第16号依命通知)より)
 
「句読点は,『。』(まる)及び『、』(てん)を用いる。」
 (「左横書き文書の作成要領」1959(昭和34)年 自治庁(後の自治省→総務省)より)
 
 
そんなわけで、読点はどこに打つんだ?
とか、日本語文書に疑問符や感嘆符なんか使ったらおかしいんじゃない?
とか、横書きでテンを使うのって変じゃない?
といった議論が今でもあるのだが、明確な縛りが存在しない状態なのだ。
読み手が混乱するような曖昧さを避けるための記号であり、ひとつの書籍・出版物の中では統一されていること。
というのが、いまの段階でのルールだと言えよう。

ターミナルにおける日本語表示のズレ

Mac OSX Mauntain Lionのターミナルにおいては環境設定に「Unicode 東アジア A (曖昧) の文字幅を W (広) にする」オプションが追加されたが、Lion以前のMacにはそれがない。
したがってOSX10.7以前のターミナルにおいて、日本語フォントで表示されている部分にカーソルを合わせても微妙にずれていて気持ちが悪い状態に。
下記サイトに回避策が提示されている。
TerminalEastAsianAmbiguousClearer
 
さて、ここからが本題。
ものかのさんのサイトでいろいろ勉強させていただいているにもかかわらず、忘れていた。
Unicodeの特殊な文字 “結合文字列”
Unicode正規化 用語の混乱について
 
結合文字列を含む日本語ファイル名は、Macでのファイル操作の様々な場面で障害となる可能性があるのだ。
 
きのうのターミナルの件で、ファイル名が「サンプル.txt」となっているテキストを用意して実験したのだが、ターミナルでの表示は下図のようになる。
f:id:k_iki:20130705102421p:plain
ちょっとわかりにくいが、ターミナル画面の3行目が4行目に折り返さず、同じ3行目の行頭から上書きするようにして続いているのだ。
きのうの件においてはファイル名を変更する必要があった。
一応、3行目に表示されているファイル名を変更してやれば意図通りの操作が可能だ。
実際、きのうの置換結果ファイルはそのようにして得た。
 
では、この置換元ファイルのファイル名を「サンフル.txt」として半濁点を抜いたらどうなるだろう。
f:id:k_iki:20130705103049p:plain
上図の通り、きちんと4行に表示され、ファイル名変更の際にも迷わずに済む。
 
諸事情があるとは思うが、可能な限り日本語ファイル名を使わないほうが何かと安心……だと思う。

半角数字を全角に

rubyによるテキスト処理は久々。
リハビリがてら、過去にせうぞーさんから教わったものを。
今回は、Mac OSX10.6.8に標準でインストールされているruby1.8.7を利用。
 
目的は、テキスト中の半角数字をすべて全角数字に置換したい。
その際、メルアドやURLに含まれる数字は半角のままにしたい。
過去に教えていただいたときは、一桁は全角・二桁以上は半角に置換していたが、今回はすべて全角に。
 

#!usr/bin/ruby -Ku
=begin
・半角数字を全角数字に
・URLやメールアドレス中の数字はすべて半角に
=end

require "jcode"

def zen2han(num)
	num.tr!("0-9", "0-9")
	return num
end

while line = ARGF.gets 
	#いったん、数字をすべて全角に
	line.tr!("0-9", "0-9")
	#メルアドとURLに含まれる数字を半角へ戻し置換
	line.gsub!(/([0-90-9a-zA-Z_\#!$%&`'*+\-{|}~^\/=?\.]+@[0-90-9a-zA-Z_\#!$%&`'*+\-{|}~^\/=?\.]+)/) {zen2han($1)}
	line.gsub!(/(https?:\/\/[\(\)%#!\/0-90-9a-zA-Z_$@.&+-,'"*=;?:~-]+)/) {zen2han($1)}
	print line
end

 
使っているrubyのバージョンが1.9以上ならjcodeの行は不要。
まず、上記ソースコードを "han2zen.rb" などわかりやすい名前で保存しておく。
スクリプトファイルさえ出来れば、rubyでのテキスト変換は一瞬だ。
ターミナルを起動して、コマンドプロンプトruby と入力してスペースを入れる。
次に、上記のスクリプトファイルをドラッグ&ドロップ
続けて、変換元のテキストファイルをドラッグ&ドロップ
 
例としては、こんなの。

http://www.kstation2.blog10.fc2.com/

2.次の1〜10の中から問題文の内容に合うものを全て選び、記号で答えよ。
 1.○○○○
 2.●●●●
 3.△△△△
 4.□□□□
 5.■■■■
 6.☆☆☆☆
 7.★★★★
 8.◇◇◇◇
 9.◆◆◆◆
 10.▲▲▲

変換元と同じ階層に、変換後のファイルをリネームした状態で保存したければ、ファイルをリダイレクトしてやればいい。
具体的には、さきほどターミナルにドラッグ&ドロップしたファイル名に続けて半角不等号 > を入力してスペース。
最後に、もう一度変換元のテキストファイルをドラッグ&ドロップし、ファイル名末尾に "_new" などの文字列を追加してやれば、変換後の結果が新しいファイルにリダイレクトされる。
 
文章だけだと誤解を生みそうなので、絵的にはこんなイメージ。
マシン名とか消してるんで、不自然にスペース開いてるけど気にしないでください。
f:id:k_iki:20130704121016p:plain
上で説明したように、

  1. rubyと半角スペースを入力した後にスクリプトファイルをD&D
  2. 続けて変換元ファイルをD&Dして半角不等号+半角スペース
  3. 最後にもう一回変換元ファイルをD&Dしてファイル名だけ変更

こうすることで、置換結果が同じ階層のフォルダに新しいファイルとして保存される。
 
で、置換後のファイルの中身がこうなっていれば変換成功。

http://www.kstation2.blog10.fc2.com/

2.次の1〜10の中から問題文の内容に合うものを全て選び、記号で答えよ。
 1.○○○○
 2.●●●●
 3.△△△△
 4.□□□□
 5.■■■■
 6.☆☆☆☆
 7.★★★★
 8.◇◇◇◇
 9.◆◆◆◆
 10.▲▲▲