Skip to content

Instantly share code, notes, and snippets.

@kanemu
Created June 5, 2010 01:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kanemu/426197 to your computer and use it in GitHub Desktop.
Save kanemu/426197 to your computer and use it in GitHub Desktop.
[indesign][extendscript]InDesignで文字合成をする。
/**
* @fileOverview 合成文字を作成するスクリプトです。<br>
* <b>使い方</b>:InDesignに打ち込んだ文字(「○株」等)を2文字選択し、スクリプトを実行して下さい。
*
* @author Kanemu
* @version 0.2
*/
#target "InDesign"
/**
* 文字を重ねて合成文字を作るfunction
*
* @example
* var texts=app.activeDocument.selection[0];
* gouseiMoji(texts,150,100);
*
* @param {Text} moji 文字のレンジを2文字分
* @param {Number} par1 1文字目の拡大率をパーセントで
* @param {Number} par2 2文字目の拡大率をパーセントで
*/
function mojiGousei(moji,par1,par2){
if(moji.contents.length < 2) return;
var moji1=moji.characters[0];
var moji2=moji.characters[1];
//「結合なし」文字を挿入
moji.insertionPoints[2].contents = 1397780074;
//文字の比率を変更。
moji1.verticalScale = moji1.verticalScale * par1 * 0.01;
moji1.horizontalScale = moji1.horizontalScale * par1 * 0.01;
moji2.verticalScale = moji2.verticalScale * par2 * 0.01;
moji2.horizontalScale = moji2.horizontalScale * par2 * 0.01;
//前の文字の後ろのアキ、後ろの文字の前のアキをベタに
moji1.trailingAki = moji2.leadingAki = 0;
//分離禁止に。
moji1.noBreak = moji2.noBreak = true;
//文字揃えを仮想ボディの中央に。
moji1.characterAlignment = moji2.characterAlignment = 1247896436;
//後ろの文字をカーニングOに。
moji2.kerningValue = 0;
//字送りを計算。
moji1.tracking = ((1-par2/par1) * 0.5 + par2 / par1) * -1000;
moji2.tracking = (par1/par2-1) * 0.5 * 1000;
};
var texts=app.activeDocument.selection[0];
//ここの1字目、2字目の比率を変えます。↓
mojiGousei(texts,100,75);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment