14.1 Problem

Word processing programs offer many text editing capacities. In a pre-digital era, those tasks had to be done manually. Anyway, let’s try to do some typesetting with Julia.

Choose an exemplary text, like text2beFormatted.txt from the code snippets or Lorem ipsum from this Wikipedia’s page. Next, write a program (a series of functions) that will allow you to:

  1. Left align,
------------------------------------------------------------------
|  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed  |
|  do eiusmod tempor incididunt ut labore et dolore magna        |
|  aliqua. Ut enim ad minim veniam, quis nostrud exercitation    |
|  ullamco laboris nisi ut aliquip ex ea commodo consequat.      |
|  Duis aute irure dolor in reprehenderit in voluptate velit     |
|  esse cillum dolore eu fugiat nulla pariatur. Excepteur sint   |
|  occaecat cupidatat non proident, sunt in culpa qui officia    |
|  deserunt mollit anim id est laborum.                          |
------------------------------------------------------------------ 
  1. Right align,
------------------------------------------------------------------
|  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed  |
|        do eiusmod tempor incididunt ut labore et dolore magna  |
|    aliqua. Ut enim ad minim veniam, quis nostrud exercitation  |
|      ullamco laboris nisi ut aliquip ex ea commodo consequat.  |
|     Duis aute irure dolor in reprehenderit in voluptate velit  |
|   esse cillum dolore eu fugiat nulla pariatur. Excepteur sint  |
|    occaecat cupidatat non proident, sunt in culpa qui officia  |
|                          deserunt mollit anim id est laborum.  |
------------------------------------------------------------------ 
  1. Center,
------------------------------------------------------------------
|  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed  |
|     do eiusmod tempor incididunt ut labore et dolore magna     |
|   aliqua. Ut enim ad minim veniam, quis nostrud exercitation   |
|    ullamco laboris nisi ut aliquip ex ea commodo consequat.    |
|   Duis aute irure dolor in reprehenderit in voluptate velit    |
|  esse cillum dolore eu fugiat nulla pariatur. Excepteur sint   |
|   occaecat cupidatat non proident, sunt in culpa qui officia   |
|              deserunt mollit anim id est laborum.              |
------------------------------------------------------------------ 
  1. Justify,
------------------------------------------------------------------
|  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed  |
|  do eiusmod  tempor  incididunt  ut labore  et  dolore  magna  |
|  aliqua. Ut  enim ad minim  veniam, quis nostrud exercitation  |
|  ullamco  laboris nisi  ut  aliquip ex ea  commodo consequat.  |
|  Duis aute irure  dolor  in  reprehenderit in voluptate velit  |
|  esse cillum dolore eu fugiat nulla pariatur. Excepteur  sint  |
|  occaecat cupidatat  non proident, sunt in culpa  qui officia  |
|  deserunt mollit anim id est laborum.                          |
------------------------------------------------------------------ 
  1. Justify in a double column layout
------------------------------------------------------------------
|  Lorem ipsum dolor sit  amet,    aute    irure    dolor    in  |
|  consectetur adipiscing elit,    reprehenderit  in  voluptate  |
|  sed   do    eiusmod   tempor    velit esse  cillum dolore eu  |
|  incididunt  ut   labore   et    fugiat    nulla    pariatur.  |
|  dolore magna aliqua. Ut enim    Excepteur   sint    occaecat  |
|  ad    minim   veniam,   quis    cupidatat non proident, sunt  |
|  nostrud exercitation ullamco    in    culpa    qui   officia  |
|  laboris  nisi  ut aliquip ex    deserunt  mollit anim id est  |
|  ea  commodo consequat.  Duis    laborum.                      |
------------------------------------------------------------------ 

the text (the borders are optional).

For simplicity, you may assume the text to be composed of ASCII encoded symbols with the words composed of, let’s say, up to 10-15 letters and separated by an unspecified number of whitespace characters. Feel free to adjust the task to your programming experience and do as many tasks as you deem suitable.



CC BY-NC-SA 4.0 Bartlomiej Lukaszuk