table-layout-0.8.0.0: Layout text as grid or table.

Text.Layout.Table.Justify

Contents

Description

Produce justified text, which is spread over multiple rows. For a simple cut, chunksOf from the split package is best suited.

Synopsis

Text justification

justify :: Int -> [String] -> [String] Source #

Fits as many words on a line, depending on the given width. Every line, but the last one, gets equally filled with spaces between the words, as far as possible.

justifyText :: Int -> String -> [String] Source #

Uses words to split the text into words and justifies it with justify.

>>> justifyText 10 "This text will not fit on one line."
["This  text","will   not","fit on one","line."]


Helpers

dimorphicSummands :: Int -> Int -> [Int] Source #

Splits a given number into summands of 2 different values, where the first one is exactly one bigger than the second one. Splitting 40 spaces into 9 almost equal parts would result in:

>>> dimorphicSummands 40 9
[5,5,5,5,4,4,4,4,4]


dimorphicSummandsBy :: (Int -> a) -> Int -> Int -> [a] Source #

mixedDimorphicSummandsBy :: (Int -> a) -> Int -> Int -> [a] Source #

Spread out summands evenly mixed as far as possible.