noxz-sites

A collection of a builder and various scripts creating the noxz.tech sites
git clone git://git.noxz.tech/noxz-sites
Log | Files | Refs | README | LICENSE

commit a45405bd697bdce079e76cd7e77ef98d949b84dc
parent 58a8278fe5d1aa21845c52a077203c8bd0e74527
Author: Chris Noxz <chris@noxz.tech>
Date:   Wed, 23 Oct 2019 18:04:40 +0200

Guide for writing a resume in groff

Diffstat:
MMakefile | 2+-
Anoxz.tech/guides/groff/writing_a_resume_in_groff/example.png | 0
Anoxz.tech/guides/groff/writing_a_resume_in_groff/index.md | 170+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Anoxz.tech/guides/groff/writing_a_resume_in_groff/template.ms | 125+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 296 insertions(+), 1 deletion(-)

diff --git a/Makefile b/Makefile @@ -19,7 +19,7 @@ all: clean builder @ @echo creating tar archive 'web.tar' @find ./ -type f -regex \ - ".*\.\(jpg\|png\|svg\|html\|css\|asc\|pub\|rss\|xml\|swps\|txt\|patch\|ggb\|pdf\)" \ + ".*\.\(jpg\|png\|svg\|html\|css\|asc\|pub\|rss\|xml\|swps\|txt\|patch\|ggb\|pdf\|ms\)" \ -exec tar -rf web.tar {} \; builder: config.h builder.c diff --git a/noxz.tech/guides/groff/writing_a_resume_in_groff/example.png b/noxz.tech/guides/groff/writing_a_resume_in_groff/example.png Binary files differ. diff --git a/noxz.tech/guides/groff/writing_a_resume_in_groff/index.md b/noxz.tech/guides/groff/writing_a_resume_in_groff/index.md @@ -0,0 +1,170 @@ +Writing a resume in groff +========================= +Writing a curriculum in groff can seem difficult, but rest assured it can +easily be accomplished and in this guide I will show how a simple resume can be +created. In this guide I will use the macro set *ms*, so remember to compile +the document using *-ms*. This guide will also use the *tbl* program to create +tables, so remember to first compile the document in *tbl*. + +{: class="center"} +![](example.png) + +Settings +-------- +To begin with let's add some settings in the head of the document. + + .fam T + .nr PS 10p + .nr VS 15p + .ds CH + +In the section above we have specified the font family *T*, a point size of +*10p*, a line spacing of *15p* and also disabled the page numbering (by letting +the center of the header to be blank). + +Coloring +-------- +Next let's define some of the coloring that we are going to use later. + + .defcolor headingcolor rgb 0.5f 0.5f 0.5f + .defcolor linecolor rgb 0.6f 0.6f 0.6f + +Above the *headingcolor* will be used for a horizontal ruler under each +heading. The *linecolor* will be used for a vertical line in each section (more +on that later). + +Macros +------ +To avoid a lot of typing for each heading we will create a macro instead. + + .de heading + . nf + . ps 14 + . B "\\$1" + \h'0n'\v'-1.2n'\ + \m[headingcolor]\ + \l'\\n(.lu\(ul'\ + \m[default] + . ps 10 + . sp -.2 + . fi + .. + +In the macro *heading* above we start by telling groff not to fill output +lines. We set the point size to *14*, print the input parameter in bold and the +continue by drawing. When drawing we first move horizontally to the position +*0n*, move vertically up *1.2n* and change the pen color to the previously +defined *headingcolor*. After that we just draw an underline *\\(ul* from where +we are to the most right of the documents writing area. Finally we change the +color back to *default*, revert the point size back to *10*, decrease the +vertical spacing by *0.2* and tell groff to once again fill output lines. + +Header +------ +Every resume needs a detailed header with name and contact information. + + .ce 2 + .ps 18 + .B "John F. Smith" + .ps 10 + john.fictional.smith@mail.com + .TS + tab(;) nospaces; + l rx. + Main Road 66; + Awesometown, 66788;T{ + .I "+12 42 99 666" + T} + Wonderland;T{ + .I "https://my-little-page.com" + T} + .TE + +In the example above we tell groff to center the following two lines where we +print the name *John F. Smith* (with the point size of *18*), and his email +address (with the point size of *10*). Then we create a table using *.TS* +(table start) ending with .TE (table ending). We define the tab separation, +that will separate each cell, as *';'* and tell *tbl* to ignore spaces. The +format of the table is *'l rx.'* which means that the first cell is left +aligned, the second cell is right aligned and extended (to fill the writing +area) and the dot tells *tbl* to end the format there. + +The content are then specified with each row on one line (with some caveats) +and cells separated using *';'*. As we tell groff to use italics *.I* on the +phone number and the URL, we must tell *tbl* to treat the content as text +blocks using *'T{'* and *'T}'*. The symbol *'T{'* must be after the *';'* and +*'T}'* must be on its own line. + +A short summary +--------------- +We will of course need a short summary in our resume. You can of course write +what ever you want here, and not necessarily *lorem ipsum dolor sit amet...* + + .heading "Summary" + .LP + 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. + +In the example above we have taken advantage of our macro named *heading* to +format the heading *Summary*. As a placeholder for our paragraph *.LP* we have +just added the standard *Lorem Ipsum passage*, used since the 1500s. + +Sections +-------- +At last we create some sections for our various topics in the resume. These can +of course vary depending on the person or position in mind. I will just create +some examples. + + .heading "Professional Experience" + .TS + tab(;) nospaces; + rW15|lx. + \m[default]2019 - today\m[linecolor];T{ + .B "Development Engineer at Creative Pros" + \(en Awesometown, Wonderland + .br + Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium + doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore + veritatis et quasi architecto beatae vitae dicta sunt explicabo. + .sp .5 + T} + \m[default]2010 - 2019\m[linecolor];T{ + .B "Professional Expert at Dreamworx" + \(en Somefareaway, Neverland + .br + Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed + quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. + .sp .5 + T} + .TE + \m[default] + +In the example above we are once again using the macro *heading* to create a +new heading for our experiences. The content is rendered inside a table, but +this time the table formatting is a bit different. In this case *'rW15|lx.'* +means that the first cell is right aligned with a fixed width of *15* (you +might have to change this to work for your resume). The two cells will be +divided by a line, specified using the *'|'*, and the second cell will be left +aligned and extended (to fill the writing area). + +Here we use the previously defined color *linecolor* for printing the +separation line. First we make sure the default color is selected, define the +first cell (here containing a date) and the set the new color *linecolor*. For +our content we once again use a text block to enable us to use formatting and +longer texts. + +In our text block we first define the position, employer and location separated +with an *en* line. We break the line using *.br* and add some descriptive text +for the position. Finally we add some vertical spacing with the value *0.5*. +After the table is ended we make sure the default color is set. + +Conclusion +---------- +Together with all information above we can now create a final document to +compile into our resume. I've created a template [here](template.ms) based on +this guide. Feel free to use it and change it in what ever way you want. diff --git a/noxz.tech/guides/groff/writing_a_resume_in_groff/template.ms b/noxz.tech/guides/groff/writing_a_resume_in_groff/template.ms @@ -0,0 +1,125 @@ +.fam T +.nr PS 10p +.nr VS 15p +.ds CH +. +. +.defcolor linecolor rgb 0.6f 0.6f 0.6f +.defcolor headingcolor rgb 0.5f 0.5f 0.5f +. +. +.de heading +. nf +. ps 14 +. B "\\$1" +\h'0n'\v'-1.2n'\ +\m[headingcolor]\ +\l'\\n(.lu\(ul'\ +\m[default] +. ps 10 +. sp -.2 +. fi +.. + +.ce 2 +.ps 18 +.B "John F. Smith" +.ps 10 +john.fictional.smith@mail.com +.TS +tab(;) nospaces; +l rx. +Main Road 66; +Awesometown, 66788;T{ +.I "+12 42 99 666" +T} +Wonderland;T{ +.I "https://my-little-page.com" +T} +.TE + +.heading "Summary" +.LP +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 + +.heading "Professional Experience" +.TS +tab(;) nospaces; +rW15|lx. +\m[default]2019 - today\m[linecolor];T{ +.B "Development Engineer at Creative Pros" +\(en Awesometown, Wonderland +.br +Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium +doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore +veritatis et quasi architecto beatae vitae dicta sunt explicabo. +.sp .5 +T} +\m[default]2010 - 2019\m[linecolor];T{ +.B "Professional Expert at Dreamworx" +\(en Somefareaway, Neverland +.br +Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed +quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. +.sp .5 +T} +.TE +\m[default] +.heading "Education" +.TS +tab(;) nospaces; +rW15|lx. +2000 - 2005\m[linecolor];T{ +.B "The Great University" +\(en West-town, Wonderland +.br +MSc in Computer Science +.sp .5 +T} +\m[default]1995 - 2000\m[linecolor];T{ +.B "The Fair University" +\(en East-Town, Wonderland +.br +BSc in Economics +.sp .5 +T} +.TE +\m[default] +.heading "Language" +.TS +tab(;) nospaces; +rW15|lx. +English\m[linecolor];T{ +\m[default]Professional working proficency +.br +.sp .2 +T} +T{ +\m[default] +.B "Spanish" +\m[linecolor] +T};T{ +.B +\m[default]Native proficency +.R +.br +.sp .2 +T} +.TE +\m[default] +.heading "Skills" +.TS +tab(;) nospaces; +rW15|lx. +Concepts\m[linecolor];T{ +Hacking, Programming, Web development +.br +Economics, Microeconomics, Behavioural economics +.br +.sp .5 +T} +\m[default]Prog. Languages\m[linecolor];T{ +x86 Assembly, C, Haskell, Python +.sp .5 +T}