数字の4分アキについて

[8778]数字の4分アキについて 投稿者:mi 投稿日:2006/04/14(Fri) 16:55
久しぶりに書き込みます。
お知恵を拝借願いたいと思ってます。

こちらは
Mac OS10.3.9  InDesign 3.0.1J です。

横打ちの文章で、 フォントは OTFを使う設定でなのですが、
数字は全部半角を使う事になっていまして
1桁と3桁と、あと数値(10,000円とか)だけ前後が4分アキとなります。
(2桁と4桁はあきがなくていいみたいです)
1桁は全角数字を使いたいところなんですが、微妙に書体が違うのが気になるのか
どうしても半角じゃないと駄目みたいで;;

そこで、文字組のアキ設定や段落設定ですと段落の全ての数字が4分アキになってしまうので
文字設定で前後4分アキにしてフォントやサイズごとに文字スタイルに登録していて、
ショートカットを設定して一つずつ指示して変更していますが
なにせページ数がありますし、時間がかかっています。

どなたか他に何かいいアイデア&アドバイスなどございましたら、よろしくお願いします!
» 1
[8778へのレス]Re: 数字の4分アキについて 投稿者:(-_-メ) 投稿日:2006/04/14(Fri) 17:16
OTFなら、1桁は全角、それ以外は2分幅の数字を使えば、ある程度はまとめてできそうですが……。
3桁の前後4分アキは、さすがに手作業でやらないと無理じゃないでしょうか。
もしくはタグテキストを利用すれば、かなりの部分はいっきに処理できそうです。
ただ、タグを使うなら最初からそれ前提の作り方(レイアウト設計)をしていないと、受ける恩恵は少ないです。
» 2
[8778へのレス]Re: 数字の4分アキについて 投稿者:mi 投稿日:2006/04/14(Fri) 17:31
> (-_-メ)さん
レスありがとうございます!

全角は絶対に駄目なんでそうです(泣)
こちらも今いろいろと調べているところですが、
タグ付きテキストである程度なんとかなってほしいですね。
あとでやってみます。

今、「細いスペース」っていうのをみつけたので
それを2個入れるっていうのもありかなと思ってます。
が、これをやるにしてもテキストの時点で数字の前後に★とかがあれば置換もできますけど
今度はテキスト編集が必要になるって事ですよね~・・・
どちらにせよ手作業かなぁ・・・
» 3
[8778へのレス]Re: 数字の4分アキについて 投稿者:(-_-メ) 投稿日:2006/04/14(Fri) 18:30
正規表現使えるエディタがあれば、わりと簡単にできますけどね>数字へのタグ付け。
» 4
[8778へのレス]Re: 数字の4分アキについて 投稿者:k 投稿日:2006/04/15(Sat) 10:09
方法はあると思いますが、そもそもそのような指定がおかしいと思います。手動写植の字切りじゃあるまいし、自分は組版ルールを知っていると思っていながら、正しい横組みの組版ルールを知らない人の要求だと思います。
» 5
[8778へのレス]Re: 数字の4分アキについて 投稿者:mi 投稿日:2006/04/17(Mon) 13:23
>(-_-メ)さん
タグ付きテキストでの作業はやったことがないので
ちょっと分からないかもしれないです;;
でもまだ日にちがあるのでなんとかやってみようとは思ってますが諦めるかもしれません……。

>k さん
レスありがとうございます。
元々は他社でやっていたようなのですが
そちらでも手こずっているみたいで、うちに回ってきた仕事なんです。
お客さんから直接頂いてる訳ではないのですが
担当者に、せめて1桁は全角使いたいと言っても
絶対にダメだそうです。
そのくせ、文字は揃っていないとダメだとか。
何にうるさいのかわからないですが
頭の固い人だとわりきってやるしかないですね。
» 6
[8778へのレス]Re: 数字の4分アキについて 投稿者:k 投稿日:2006/04/17(Mon) 13:39
私も手動写植のときはそのように組みました。でも電算写植、DTPではそんな組み方はしません、組み上がりが逆に汚くなります。これ以上は中傷になるのでやめます。
» 7
[8778へのレス]Re: 数字の4分アキについて 投稿者:いき 投稿日:2006/04/17(Mon) 14:48
今回のmiさんのお仕事に関しては、お客様の要求通りに組むことが条件となっているので、それについてとやかく言ってもしょうがないと思います。
お客様に提案するチャンスがあったとすれば、他社から引き継いだ時点のみでしょう。


さて、文字スタイルについて。

> 文字設定で前後4分アキにしてフォントやサイズごとに文字スタイルに登録していて、

との事ですが、一度、テキストを何も選択していない状態で文字スタイルを新規作成してみてください。
設定するのは「詳細文字形式」のみ。
前後四分空き、異体字=等幅半角に設定する以外は、全て空欄で。

こうすれば、どの段落スタイルに対しても、ひとつの文字スタイルをあてるだけで等幅半角、前後四分空きを実現できます。

あとは、3桁や「10,000円」などの数字の処理。
ここは強引な手段として、ENスペースを長体50%にした文字を挿入していく手法を提案します。
それをタグで表現し、配置前のテキストに対して正規表現を使って置換しておくと、割と楽ができると思います。

ちなみに、長体50%の文字スタイルを作っておき、適当に名前をつけておき、
<cstyle:長体50%><2002><cstyle:>
というタグを3桁や10,000の前後に挿入しておけば良いです。
» 8
[8778へのレス]Re: 数字の4分アキについて 投稿者:いき 投稿日:2006/04/18(Tue) 20:12
自己レスです。

> 配置前のテキストに対して正規表現を使って置換しておくと、

ためしに正規表現置換用のスクリプト書いてみたら、まだ途中ですがとんでもない行数になってしまいました。
すみません、決して手軽ではないですね……。
» 9
[8778へのレス]Re: 数字の4分アキについて 投稿者:せうぞー 投稿日:2006/04/18(Tue) 21:20
>決して手軽ではないですね……。
えっと、2桁と4桁だけベタ(タグ不要)になればいいんですよね?
もっと他にいい方法もあるかもしれませんが、、、
rubyだとこんな感じかな。

line.gsub!(/([\d,]+)/) {"<<#{$1}>>"}
line.gsub!(/<<([\d]{2}|[\d]{4})>>/) {"#{$1}"}
line.gsub!(/<<([\d,]+)>>/) {"<cstyle:長体50%><2002><cstyle:>#{$1}<cstyle:長体50%><2002><cstyle:>"}
» 10
[8778へのレス]Re: 数字の4分アキについて 投稿者:せうぞー 投稿日:2006/04/18(Tue) 21:26
バックスラッシュが全角になってしまいましたが、これはhex005cですから。って断るまでもないか(^^;;;;;
「<<」「>>」は便宜的に使っているので、他のものに置き換えてもかまいません。
エディタでやっても基本的にこの3ステップでいいでしょう。
» 11
[8778へのレス]Re: 数字の4分アキについて 投稿者:いき 投稿日:2006/04/18(Tue) 21:57
せうぞーさん、フォローありがとうございます。
そろそろ、正規表現=sedという固定観念を捨てなければ<私。。。
» 12
[8778へのレス]Re: 数字の4分アキについて 投稿者:coffee float 投稿日:2006/04/19(Wed) 09:07
> そろそろ、正規表現=sedという固定観念を捨てなければ<私。。。

rubyは不案内ですが、1行目と2行目とをsedで書き換えてみました。ごく素直にこんな感じではないでしょうか。

s/\([0-9][0-9]*\)/<<\1>>/g
s/<<\([0-9][0-9]\)>>/\1/g
s/<<\([0-9][0-9][0-9][0-9]\)>>/\1/g

{2} とか {4} とか | とか使えないので、
(使えるsedもあるのかな?)
1行多くなってしまいますが。
» 13
[8778へのレス]Re: 数字の4分アキについて 投稿者:いき 投稿日:2006/04/19(Wed) 10:02
coffee floatさん、フォロー有り難うございます。
今朝、せうぞーさんに書いていただいたRubyスクリプトで変換してみて、気付いた点を。

●行頭および行末の<cstyle:長体50%><2002><cstyle:>を削除
 ただし、ひとけた数字が行頭または行末に来る場合、ひとけた数字の前後の<cstyle:長体50%><2002><cstyle:>を削除しない
●数字と半角アルファベットの間の<cstyle:長体50%><2002><cstyle:>を削除(miさんのお客さん次第だけど、多分削除すべきでしょう)
●10,000などの前後の<cstyle:長体50%><2002><cstyle:>を削除

……と書いてから最初の投稿を読み返しました。
10,000の前後は空いていて良いので、最後の条件は余分ですね(^^;)
とにかく、上記をいっぺんにやろうとして壷にはまっておりました。
» 14
[8778へのレス]Re: 数字の4分アキについて 投稿者:いき 投稿日:2006/04/19(Wed) 14:32
話題を引っ張って申し訳ありませんが、、、
せうぞーさんのスクリプトにさらに書き加えてみました。

line.gsub!(/([\d,\.]+)/) {"<<#{$1}>>"}
line.gsub!(/<<([\d]{2}|[\d]{4})>>/) {"#{$1}"}
line.gsub!(/^<<([\d,\.]{2,})>>/) {"#{$1}<<>>"}
line.gsub!(/<<([\d,\.]{2,})>>$/) {"<<>>#{$1}"}
line.gsub!(/<<>>/) {"<cstyle:長体50%><2002><cstyle:>"}
line.gsub!(/<<([\d,\.]+)>>/) {"<cstyle:長体50%><2002><cstyle:>#{$1}<cstyle:長体50%><2002><cstyle:>"}
line.gsub!(/([\d])<cstyle:長体50%><2002><cstyle:>([!-~])/) {"#{$1}#{$2}"}
line.gsub!(/([!-~])<cstyle:長体50%><2002><cstyle:>([\d])/) {"#{$1}#{$2}"}

Rubyで正規表現に挑戦するのは初めてなので回りくどい部分もあるかと思いますし、そもそもmiさんのお客様の要求について誤解があるかもしれませんが、こんな感じでいかがでしょうか。
この記事の書き込み元へのリンク (コメントや質問などはこちらへどうぞ)

このページをシェア