/* カーニングペアの定義 単位はem。 -0.5(em) でボックス0.5個分詰まる。 "*く" と定義した場合、"あく"、"いく"、"うく"、というように、全ての"○く"の組み合わせにカーニングが設定される。 "あく" と定義をした場合、 "あく"という文字のペアのみにカーニングが設定される。 ワイルドカードペアと直接指定のペアが衝突する場合、直接指定のペアが優先される。 */ var p = {}; //前後の文字をワイルドカード指定した汎用のカーニングペア p["*「"] = -0.40; p["「*"] = 0.20; p["」*"] = -0.35; p["*」"] = 0.10; p["*("] = -0.40; p[")*"] = -0.45; p["、*"] = -0.375; p["*、"] = 0.015; p["。*"] = -0.45; p["*。"] = 0.05; p["*『"] = -0.25; p["『*"] = 0.15; p["』*"] = -0.25; p["*』"] = -0.15; p["*【"] = -0.15; p["【*"] = 0.15; p["】*"] = -0.45; p["*】"] = 0.10; p["*["] = -0.15; p["]*"] = -0.15; p["-*"] = -0.15; p["*-"] = -0.15; p["*?"] = -0.05; p["*・"] = -0.15; p["・*"] = -0.15; //かな追加 p["*あ"] = 0.02; p["あ*"] = 0.02; p["*ア"] = 0.125; p["ア*"] = -0.05; p["*い"] = 0.02; p["い*"] = 0.02; p["*イ"] = 0.125; p["イ*"] = -0.05; p["*う"] = 0.02; p["う*"] = 0.02; p["*ウ"] = 0.125; p["ウ*"] = -0.05; p["*え"] = 0.02; p["え*"] = 0.02; p["*エ"] = 0.125; p["エ*"] = -0.05; p["*お"] = 0.02; p["お*"] = 0.02; p["*オ"] = 0.125; p["オ*"] = -0.05; p["*か"] = 0.02; p["か*"] = 0.02; p["*カ"] = 0.125; p["カ*"] = -0.05; p["*き"] = 0.02; p["き*"] = 0.02; p["*キ"] = 0.125; p["キ*"] = -0.05; p["*く"] = 0.02; p["く*"] = 0.02; p["*ク"] = 0.125; p["ク*"] = -0.05; p["*け"] = 0.02; p["け*"] = 0.02; p["*ケ"] = 0.125; p["ケ*"] = -0.05; p["*こ"] = 0.02; p["こ*"] = 0.02; p["*コ"] = 0.125; p["コ*"] = -0.05; p["*さ"] = 0.02; p["さ*"] = 0.02; p["*サ"] = 0.125; p["サ*"] = -0.05; p["*し"] = 0.02; p["し*"] = 0.02; p["*シ"] = 0.125; p["シ*"] = -0.05; p["*す"] = 0.02; p["す*"] = 0.02; p["*ス"] = 0.125; p["ス*"] = -0.05; p["*せ"] = 0.02; p["せ*"] = 0.02; p["*セ"] = 0.125; p["セ*"] = -0.05; p["*そ"] = 0.02; p["そ*"] = 0.02; p["*ソ"] = 0.125; p["ソ*"] = -0.05; p["*た"] = 0.02; p["た*"] = 0.02; p["*タ"] = 0.125; p["タ*"] = -0.05; p["*ち"] = 0.02; p["ち*"] = 0.02; p["*チ"] = 0.125; p["チ*"] = -0.05; p["*つ"] = 0.02; p["つ*"] = 0.02; p["*ツ"] = 0.125; p["ツ*"] = -0.05; p["*て"] = 0.02; p["て*"] = 0.02; p["*テ"] = 0.125; p["テ*"] = -0.05; p["*と"] = 0.02; p["と*"] = 0.02; p["*ト"] = 0.125; p["ト*"] = -0.05; p["*な"] = 0.02; p["な*"] = 0.02; p["*ナ"] = 0.125; p["ナ*"] = -0.05; p["*に"] = 0.02; p["に*"] = 0.02; p["*ニ"] = 0.125; p["ニ*"] = -0.05; p["*ぬ"] = 0.02; p["ぬ*"] = 0.02; p["*ヌ"] = 0.125; p["ヌ*"] = -0.05; p["*ね"] = 0.02; p["ね*"] = 0.02; p["*ネ"] = 0.125; p["ネ*"] = -0.05; p["*の"] = 0.02; p["の*"] = 0.02; p["*ノ"] = 0.125; p["ノ*"] = -0.05; p["*は"] = 0.02; p["は*"] = 0.02; p["*ハ"] = 0.125; p["ハ*"] = -0.05; p["*ひ"] = 0.02; p["ひ*"] = 0.02; p["*ヒ"] = 0.125; p["ヒ*"] = -0.05; p["*ふ"] = 0.02; p["ふ*"] = 0.02; p["*フ"] = 0.125; p["フ*"] = -0.05; p["*へ"] = 0.02; p["へ*"] = 0.02; p["*ヘ"] = 0.125; p["ヘ*"] = -0.05; p["*ほ"] = 0.02; p["ほ*"] = 0.02; p["*ホ"] = 0.125; p["ホ*"] = -0.05; p["*ま"] = 0.02; p["ま*"] = 0.02; p["*マ"] = 0.125; p["マ*"] = -0.05; p["*み"] = 0.02; p["み*"] = 0.02; p["*ミ"] = 0.125; p["ミ*"] = -0.05; p["*む"] = 0.02; p["む*"] = 0.02; p["*ム"] = 0.125; p["ム*"] = -0.05; p["*め"] = 0.02; p["め*"] = 0.02; p["*メ"] = 0.125; p["メ*"] = -0.05; p["*も"] = 0.02; p["も*"] = 0.02; p["*モ"] = 0.125; p["モ*"] = -0.05; p["*や"] = 0.02; p["や*"] = 0.02; p["*ヤ"] = 0.125; p["ヤ*"] = -0.05; p["*ゆ"] = 0.02; p["ゆ*"] = 0.02; p["*ユ"] = 0.125; p["ユ*"] = -0.05; p["*よ"] = 0.02; p["よ*"] = 0.02; p["*ヨ"] = 0.125; p["ヨ*"] = -0.05; p["*ら"] = 0.02; p["ら*"] = 0.02; p["*ラ"] = 0.125; p["ラ*"] = -0.05; p["*り"] = 0.02; p["り*"] = 0.02; p["*リ"] = 0.125; p["リ*"] = -0.05; p["*る"] = 0.02; p["る*"] = 0.02; p["*ル"] = 0.125; p["ル*"] = -0.05; p["*れ"] = 0.02; p["れ*"] = 0.02; p["*レ"] = 0.125; p["レ*"] = -0.05; p["*ろ"] = 0.02; p["ろ*"] = 0.02; p["*ロ"] = 0.125; p["ロ*"] = -0.05; p["*わ"] = 0.02; p["わ*"] = 0.02; p["*ワ"] = 0.125; p["ワ*"] = -0.05; p["*を"] = 0.02; p["を*"] = 0.02; p["*ヲ"] = 0.125; p["ヲ*"] = -0.05; p["*ん"] = 0.02; p["ん*"] = 0.02; p["*ン"] = 0.125; p["ン*"] = -0.05; p["*0"] = 0.15; p["0*"] = 0.15; p["*1"] = 0.15; p["1*"] = 0.15; p["*2"] = 0.15; p["2*"] = 0.15; p["*3"] = 0.15; p["3*"] = 0.15; p["*4"] = 0.15; p["4*"] = 0.15; p["*5"] = 0.15; p["5*"] = 0.15; p["*6"] = 0.15; p["6*"] = 0.15; p["*7"] = 0.15; p["7*"] = 0.15; p["*8"] = 0.15; p["8*"] = 0.15; p["*9"] = 0.15; p["9*"] = 0.15; p["が*"] = 0.15; p["*が"] = 0.10; p["ぎ*"] = 0.05; p["*ぎ"] = 0.10; p["ぐ*"] = 0.10; p["*ぐ"] = 0.10; p["げ*"] = 0.05; p["ご*"] = 0.05; p["ざ*"] = -0.05; p["*ざ"] = 0.10; p["じ*"] = 0.05; p["ず*"] = 0.05; p["ぜ*"] = 0.05; p["ぞ*"] = 0.05; p["だ*"] = 0.05; p["ぢ*"] = 0.05; p["づ*"] = 0.05; p["で*"] = 0.10; p["ど*"] = 0.05; p["ば*"] = 0.15; p["び*"] = 0.05; p["ぶ*"] = 0.05; p["べ*"] = 0.05; p["ぼ*"] = 0.05; p["ガ*"] = -0.05; p["ギ*"] = 0.05; p["*ギ"] = 0.15; p["グ*"] = 0.20; p["ゲ*"] = 0.10; p["ゴ*"] = 0.05; p["ザ*"] = 0.10; p["ジ*"] = -0.05; p["ズ*"] = 0.05; p["ゼ*"] = 0.05; p["ゾ*"] = 0.05; p["ダ*"] = 0.05; p["ヂ*"] = 0.05; p["ヅ*"] = 0.05; p["デ*"] = 0.20; p["*デ"] = 0.05; p["ド*"] = 0.05; p["バ*"] = 0.15; p["ビ*"] = 0.05; p["ブ*"] = 0.05; p["ベ*"] = 0.05; p["ボ*"] = 0.05; p["ー*"] = -0.05; p["*ー"] = 0.05; p["ぱ*"] = 0.05; p["ぴ*"] = 0.05; p["ぷ*"] = 0.05; p["ぺ*"] = 0.05; p["ぽ*"] = 0.05; p["ぴゃ*"] = 0.05; p["ぴゅ*"] = 0.05; p["ぴぇ*"] = 0.05; p["ぴょ*"] = 0.05; p["ぁ*"] = 0.05; p["*ぁ"] = -0.05; p["ぃ*"] = 0.05; p["*ぃ"] = -0.05; p["ぅ*"] = 0.05; p["*ぅ"] = -0.05; p["ぇ*"] = 0.05; p["*ぇ"] = -0.05; p["ぉ*"] = 0.05; p["*ぉ"] = -0.05; p["っ*"] = -0.05; p["*っ"] = 0.10; p["ゃ*"] = 0.05; p["*ゃ"] = -0.05; p["ゅ*"] = 0.05; p["*ゅ"] = -0.05; p["ょ*"] = -0.025; p["*ょ"] = -0.025; p["ゎ*"] = 0.05; p["*ゎ"] = -0.05; p["ァ*"] = 0.05; p["*ァ"] = -0.05; p["ィ*"] = -0.05; p["*ィ"] = -0.15; p["ゥ*"] = 0.05; p["*ゥ"] = -0.05; p["ェ*"] = 0.05; p["*ェ"] = -0.05; p["ォ*"] = -0.30; p["*ォ"] = -0.025; p["ヵ*"] = 0.05; p["*ヵ"] = -0.05; p["ヶ*"] = 0.05; p["*ヶ"] = -0.05; p["ッ*"] = 0.05; p["*ッ"] = -0.05; p["ャ*"] = -0.05; p["*ャ"] = -0.05; p["ュ*"] = 0.05; p["*ュ"] = -0.05; p["ョ*"] = 0.05; p["*ョ"] = -0.05; p["ヮ*"] = 0.05; p["*ヮ"] = -0.05; //直接指定のカーニングペア p["ター"] = -0.10; p["レベ"] = 0.10; p["ケー"] = -0.05; p["ラリ"] = -0.05; p["たの"] = 0.05; p["*の"] = 0.10; p["*い"] = 0.05; p["いが"] = 0.05; p["てい"] = 0.10; p["メー"] = -0.05; p["ート"] = -0.05; p["トル"] = -0.05; p["リー"] = -0.05; p["れ*"] = 0.10; p["たて"] = 0.15; p["・リ"] = -0.25; p["ギャ"] = 0.15; p["金は"] = 0.15; //1文字は行頭専用のカーニングペア p["「"] = -0.5; p["『"] = -0.5; p["("] = -0.5; p["【"] = -0.5; p["“"] = -0.5; /* * @class FLAutoKerning * @version 0.0.3 (2011/02/28) * * テキストに文字詰めを適用するUtilityクラス。 * インスタンス化せずに、スタティック関数として使用する。 * * @author Takayuki Fukatsu, artandmobile.com, fladdict.net * @requires jQuery */ var FLAutoKerning = {}; /* * ディフォルトのカーニング情報を格納した定数。 * ユーザーが任意のカーニング情報を適用しない場合は、この情報を基準にカーニングが設定される。 */ FLAutoKerning.DEFAULT_KERNING_INFO = p; /* * 渡された jQuery オブジェクト内のテキストに、字詰めを適用する。 * 字詰めはスタイルシートのletter-spacingによって実現される。 * 第2引数を指定することで、ユーザー独自のカーニング情報を適用することも可能。 * * @param {jQuery} elements テキストを内包したhtml要素の jQuery オブジェクト。 * @param {Array} kerningInfo カーニングペア情報を格納した配列。省略した場合は、FLAutoKerning.DEFAULT_KERNING_INFO が適用される。 */ FLAutoKerning.process = function( elements, kerningInfo ) { if(kerningInfo==undefined) kerningInfo = FLAutoKerning.DEFAULT_KERNING_INFO; elements.each( function(index, element){ var html = $(element).html(); var newHtml = ""; var n = html.length; for(var i=0; i" + char + ""; //行頭約物の処理 if(i == 0 && kerningInfo[char]) char2 = "" + char2; newHtml += char2; } $(element).html(newHtml); }); } //tenpの変数を削除 delete p;