 
             self.goToNextLinePosition()
             var offset = self.getOffset()
-            let (currentLineCount, burasagari) = self.getSuggestedLineCount(offset)
+            let (currentLineCount, burasagari, oikomi) = self.getSuggestedLineCount(offset)
             var range = self.getCurrentLineRange(currentLineCount)
 
             let overflow = self.isOverflow(currentLineCount)

        - on: 描画する context
     - returns: 描画した行の実質的な幅(長さ)
     */
    private func getCTLine(range: NSRange, offset: CGFloat, burasagari: Bool = false) -> (CGFloat, CGFloat, CGFloat, CTLine) {

        // 描画開始位置を設定。offsetで行頭約物の位置を修正
        let offsetX = self.startPosition.x + self.currentPosition.x + self.padding.left - offset
        let offsetY = self.startPosition.y + self.currentPosition.y + self.padding.top

        // 行を生成
        let ctline = CTTypesetterCreateLine(
            self.typesetter, CFRangeMake(range.location, range.length))

        // 実質の文字の幅を取得
        let typographicWidth = CTLineGetTypographicBounds(ctline, nil, nil, nil)

        // 均等揃えする
        /*
        let characterRightSpace = burasagari ? Double(self.fontSize/* + kCharacterHaveRightSpaceRatio*/) : 0
        let lineWidth = Double(self.width) + characterRightSpace
        if (lineWidth - Double(self.fontSize)) < typographicWidth {
            if let justifiedCtline = CTLineCreateJustifiedLine(ctline, 1, lineWidth) {
                ctline = justifiedCtline
            }
        }
        */

        return (CGFloat(typographicWidth), offsetX, offsetY, ctline)
    }

]
private let kCharactersCanBurasagari = [
    "、", "。", "，", "．"
]
private let kCharactersCanOikomi = [
    "」", "』", "】", "》", "〉", "〕", "｝", "）", "］",
]
private let kCharacterHaveRightSpaceRatio: CGFloat = 0.25  // 右半分が空白な文字の、fontSize における実質的な幅の割合
let kCGFloatHuge: CGFloat = pow(2, 12)
