質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.76%

  • Java

    13158questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Adobe scriptで 約物2分変換する際に、)。の時は)をベタにするという条件の時、)。ではない離れている)までベタになってしまう

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 99

sin777

score 3

 前提・実現したいこと

ここに質問の内容を詳しく書いてください。

Indesignで約物2分変換自動化する時、条件として)。の時は)をベタにする様にしたのですが、
離れている)までベタになってしまいます。
例えば、「この(商品)は(素晴らしい)。」という文章があるとします。全てを選択して、変換をすると「(商品)」の「)」までベタになってしまい困っています。
どのようにすればいいのか解らないので、教えていただきたいと思います。
宜しくお願いします。

 発生している問題・エラーメッセージ

エラーメッセージ

 該当のソースコード

Main()
function Main(){
app.doScript("doMain()", ScriptLanguage.JAVASCRIPT, [], UndoModes.fastEntireScript);
}

function doMain(){

////////////////////////////////////////////エラー処理 
function myerror(mess) { 
if (arguments.length > 0) { alert(mess); }
exit();
}

////////////////////////////////////////////正規表現検
//正規表現で検索して、ヒットオブジェクトを返すだけ
function my_regex(my_range_obj, my_find_str, my_change_str) {
//検索の初期化
app.findGrepPreferences = NothingEnum.nothing;
app.changeGrepPreferences = NothingEnum.nothing;
//検索オプション
app.findChangeGrepOptions.includeLockedLayersForFind = false;//ロックされたレイヤーをふくめるかどうか
app.findChangeGrepOptions.includeLockedStoriesForFind = false;//ロックされたストーリーを含めるかどうか
app.findChangeGrepOptions.includeHiddenLayers = false;//非表示レイヤーを含めるかどうか
app.findChangeGrepOptions.includeMasterPages = false;//マスターページを含めるかどうか
app.findChangeGrepOptions.includeFootnotes = false;//脚注を含めるかどうか
app.findChangeGrepOptions.kanaSensitive = true;//カナを区別するかどうか
app.findChangeGrepOptions.widthSensitive = true;//全角半角を区別するかどうか

app.findGrepPreferences.findWhat = my_find_str;//検索文字の設定
//app.changeGrepPreferences.changeTo = my_change_str;//置換文字の設定
return my_range_obj.findGrep();//検索の実行
}

/////字形変換 実行
////////////////まずは選択しているもののチェック
if (app.documents.length == 0) {myerror("ドキュメントが開かれていません")}
var mydocument = app.activeDocument;
if (mydocument.selection.length == 0) {myerror("テキストを選択してください")}
var myselection = mydocument.selection[0];
var myclass =myselection.reflect.name;
myclass = "Text, TextColumn, Story, Paragraph, Line, Word, Character, TextStyleRange".match(myclass);
if (myclass == null) {myerror("テキストを選択してください")}

////////////////検索の実行
/*
0;アキなし
0.125;八分
0.25;四分
0.5;二分
0.75;二分四分
1;全角
2とか5も指定できる。でもリストには「自動」と表示される
*/
var hit_obj = my_regex(myselection, "[・,‐,?,!,。,、:,;,(,),「,」,【,】,〈,〉,{,},『,』,《,》,“,”,,,,,,,,,,,,]", "");

var umg;
var myarry = new Array();

for (var i = 0; i < hit_obj.length; i++ ) { 
myarry[i] = hit_obj[i].contents       
}

for (var i = 0; i < hit_obj.length; i++ ) {
umg = i; 

switch (hit_obj[i].contents) {

case "・":
hit_obj[i].leadingAki=0.25;
hit_obj[i].trailingAki=0.25;
break;

case "‐":
hit_obj[i].leadingAki=0.25;
hit_obj[i].trailingAki=0.25;
break;

case "?":
hit_obj[i].leadingAki=0;
hit_obj[i].trailingAki=0.5;
break;

case "!":
hit_obj[i].leadingAki=0.25;
hit_obj[i].trailingAki=0.25;            
break;

case "。":
umg = i - 1;    
if (myarry[umg] == ")" || myarry[umg] == "」" || myarry[umg] == "』") {
hit_obj[umg].leadingAki=0;
hit_obj[umg].trailingAki=0; 
hit_obj[i].leadingAki=0;
hit_obj[i].trailingAki=0.5; 
} else { 
hit_obj[i].leadingAki=0;
hit_obj[i].trailingAki=0.5;
}
break;

case "、":
hit_obj[i].leadingAki=0;
hit_obj[i].trailingAki=0.5;            
break;

case ":":
hit_obj[i].leadingAki=0.25;
hit_obj[i].trailingAki=0.25;
break;

case ";":
hit_obj[i].leadingAki=0.25;
hit_obj[i].trailingAki=0.25;
break;

case "(": 
hit_obj[i].leadingAki=0.5;
hit_obj[i].trailingAki=0;
break;

case ")":
hit_obj[i].leadingAki=0;
hit_obj[i].trailingAki=0.5;
break;

case "「":
hit_obj[i].leadingAki=0.5;
hit_obj[i].trailingAki=0;
break;

case "」":
hit_obj[i].leadingAki=0;
hit_obj[i].trailingAki=0.5;            
break;

case "【":
hit_obj[i].leadingAki=0.5;
hit_obj[i].trailingAki=0;
break;

case "】":
hit_obj[i].leadingAki=0;
hit_obj[i].trailingAki=0.5;            
break;

case "〈":
hit_obj[i].leadingAki=0.5;
hit_obj[i].trailingAki=0;
break;

case "〉":
hit_obj[i].leadingAki=0;
hit_obj[i].trailingAki=0.5;
break;

case "{":
hit_obj[i].leadingAki=0.5;
hit_obj[i].trailingAki=0;
break;

case "}":
hit_obj[i].leadingAki=0;
hit_obj[i].trailingAki=0.5;            
break;

case "『":
hit_obj[i].leadingAki=0.5;
hit_obj[i].trailingAki=0;
break;

case "』":
hit_obj[i].leadingAki=0;
hit_obj[i].trailingAki=0.5;
break;

case "《":
hit_obj[i].leadingAki=0.5;
hit_obj[i].trailingAki=0;
break;

case "》":
hit_obj[i].leadingAki=0;
hit_obj[i].trailingAki=0.5;
break;

case "“":
hit_obj[i].leadingAki=0.5;
hit_obj[i].trailingAki=0;
break;

case "”":
hit_obj[i].leadingAki=0;
hit_obj[i].trailingAki=0.5;
break;

default:    
hit_obj[i].leadingAki=0.5;
hit_obj[i].trailingAki=0.5; 
break;        
} // switch文のカッコ閉じ
} // for文のカッコ閉じ
} // doMainのカッコ閉じ 

 試したこと

ここに問題に対して試したことを記載してください。

 補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。
Indesign CS6.0使用

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • y_waiwai

    2018/05/31 12:09

    ベタにする、とはどういうことでしょう。やりたいことが見えません

    キャンセル

  • KSwordOfHaste

    2018/05/31 12:16

    InDesignのスクリプトはJavaではなくJavaScriptだと思います。この2つは名前は似てますが全然別のものです。タグをJavaScriptに変更した方がよいと思います。

    キャンセル

回答 1

check解決した方法

0

自己解決しました。
選択範囲しているを2つ(hit_obj と hit_obj2)用意して1つは「)」を、もう1つは、
その後ろの「。」を調べるようにしたら、別々に長体率を変える事が出来ました。

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.76%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • Java

    13158questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

  • トップ
  • Javaに関する質問
  • Adobe scriptで 約物2分変換する際に、)。の時は)をベタにするという条件の時、)。ではない離れている)までベタになってしまう