|  |  |  | @ -458,14 +458,30 @@ object ChapterProvider { | 
			
		
	
		
			
				
					|  |  |  |  |             addCharsToLineNatural(book, absStartX, textLine, words, textPaint, startX, srcList) | 
			
		
	
		
			
				
					|  |  |  |  |             return | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         val gapCount: Int = words.lastIndex | 
			
		
	
		
			
				
					|  |  |  |  |         val d = (visibleWidth - desiredWidth) / gapCount | 
			
		
	
		
			
				
					|  |  |  |  |         var x = startX | 
			
		
	
		
			
				
					|  |  |  |  |         words.forEachIndexed { index, char -> | 
			
		
	
		
			
				
					|  |  |  |  |             val cw = StaticLayout.getDesiredWidth(char, textPaint) | 
			
		
	
		
			
				
					|  |  |  |  |             val x1 = if (index != words.lastIndex) (x + cw + d) else (x + cw) | 
			
		
	
		
			
				
					|  |  |  |  |             addCharToLine(book, absStartX, textLine, char, x, x1, index + 1 == words.size, srcList) | 
			
		
	
		
			
				
					|  |  |  |  |             x = x1 | 
			
		
	
		
			
				
					|  |  |  |  |         val spaceSize = words.filter { it == " " }.size | 
			
		
	
		
			
				
					|  |  |  |  |         if (spaceSize > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |             val d = (visibleWidth - desiredWidth) / spaceSize | 
			
		
	
		
			
				
					|  |  |  |  |             var x = startX | 
			
		
	
		
			
				
					|  |  |  |  |             words.forEachIndexed { index, char -> | 
			
		
	
		
			
				
					|  |  |  |  |                 val cw = StaticLayout.getDesiredWidth(char, textPaint) | 
			
		
	
		
			
				
					|  |  |  |  |                 val x1 = if (char == " ") { | 
			
		
	
		
			
				
					|  |  |  |  |                     if (index != words.lastIndex) (x + cw + d) else (x + cw) | 
			
		
	
		
			
				
					|  |  |  |  |                 } else { | 
			
		
	
		
			
				
					|  |  |  |  |                     (x + cw) | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 addCharToLine(book, absStartX, textLine, char, x, x1, index + 1 == words.size, srcList) | 
			
		
	
		
			
				
					|  |  |  |  |                 x = x1 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } else { | 
			
		
	
		
			
				
					|  |  |  |  |             val gapCount: Int = words.lastIndex | 
			
		
	
		
			
				
					|  |  |  |  |             val d = (visibleWidth - desiredWidth) / gapCount | 
			
		
	
		
			
				
					|  |  |  |  |             var x = startX | 
			
		
	
		
			
				
					|  |  |  |  |             words.forEachIndexed { index, char -> | 
			
		
	
		
			
				
					|  |  |  |  |                 val cw = StaticLayout.getDesiredWidth(char, textPaint) | 
			
		
	
		
			
				
					|  |  |  |  |                 val x1 = if (index != words.lastIndex) (x + cw + d) else (x + cw) | 
			
		
	
		
			
				
					|  |  |  |  |                 addCharToLine(book, absStartX, textLine, char, x, x1, index + 1 == words.size, srcList) | 
			
		
	
		
			
				
					|  |  |  |  |                 x = x1 | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         exceed(absStartX, textLine, words) | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |