noxz-sites

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

noxz.tech/articles/writing_a_resume_in_groff/index.www
1Writing a resume in groff can seem difficult, but rest assured it can easily be
2accomplished, and in this guide I will show how a simple resume can be created.
3In this guide I will use the macro set 
4.I ms ,
5so remember to compile the document using
6.I \[u2011]ms .
7This guide will also use the
8.I tbl
9program to create tables, so remember to first compile the document in
10.I tbl .
11
12.PIMG example.png
13
14.HnS 1
15Settings
16.HnE
17
18To begin with, let's add some settings in the head of the document.
19
20.CDS
21.COS
22\&.fam T
23\&.nr PS 10p
24\&.nr VS 15p
25\&.ds CH
26.COE
27.CDE
28
29In the section above, we have specified the font family
30.ICD T
31(Times), a point size of
32.ICD 10p ,
33a line spacing of
34.ICD 15p
35and also disabled the page numbering (by letting the center of the header be
36blank).
37
38.HnS 1
39Coloring
40.HnE
41
42Next, let's define some of the colors that we are going to use later.
43
44.CDS
45.COS
46\&.defcolor headingcolor rgb 0.5f 0.5f 0.5f
47\&.defcolor linecolor rgb 0.6f 0.6f 0.6f
48.COE
49.CDE
50
51Above the
52.I headingcolor
53will be used for a horizontal ruler under each heading. The
54.I linecolor
55will be used for a vertical line in each section (more on that later).
56
57.HnS 1
58Macros
59.HnE
60
61To avoid a lot of typing for each heading, we will create a macro instead.
62
63.CDS
64.COS
65\&.de heading
66\&.   nf
67\&.   ps 14
68\&.   B "\\\\$1"
69\\h'0n'\\v'-1.2n'\\
70\\m[headingcolor]\\
71\\l'\\\\n(.lu\\(ul'\\
72\\m[default]
73\&.   ps 10
74\&.   sp -.2
75\&.   fi
76\&..
77.COE
78.CDE
79
80In the macro
81.ICD heading
82above, we start by telling groff not to fill output lines. We set the point
83size to
84.ICD 14 ,
85print the input parameters in bold, and then continue by drawing. When drawing,
86we first move horizontally to the position
87.ICD 0n ,
88then move vertically up
89.ICD 1.2n
90and change the pen color to the previously defined
91.ICD headingcolor .
92After that, we just draw an underline
93.ICD \[u005C](ul
94from where we are to the most right of the document's writing area. Finally, we
95change the color back to
96.ICD default ,
97revert the point size back to
98.ICD 10 ,
99decrease the vertical spacing by
100.ICD 0.2
101and tell groff to once again fill output lines.
102
103.HnS 1
104Header
105.HnE
106
107Every resume needs a detailed header with name and contact information.
108
109.CDS
110.COS
111\&.ce 2
112\&.ps 18
113\&.B "John F. Smith"
114\&.ps 10
115john.fictional.smith@mail.com
116\&.TS
117tab(;) nospaces;
118l rx.
119Main Road 66;
120Awesometown, 66788;T{
121\&.I "+12 42 99 666"
122T}
123Wonderland;T{
124\&.I "https://my-little-page.com"
125T}
126\&.TE
127.COE
128.CDE
129
130In the example above, we tell groff to center the following two lines where we 
131print the name
132.ICD "John F. Smith"
133(with a point size of
134.ICD 18 )
135and his email address (with a point size of
136.ICD 10 ).
137Then we create a table using
138.ICD .TS
139(table start) and ending with
140.ICD .TE
141(table ending). We specify the tab separation that will be used to separate
142each cell as
143.ICD ;
144and instruct
145.ICD tbl
146to ignore spaces. The format of the table is
147.ICD "l rx."
148which means that the first cell is left aligned, the second cell is right
149aligned and extended (to fill the writing area), and the dot tells
150.ICD tbl
151to end the format there.
152
153The contents are then specified with each row on one line (with some caveats) 
154and cells separated using
155.ICD ; .
156As we tell groff to use italics
157.ICD .I
158on the phone number and the URL, we must tell
159.ICD tbl
160to treat the content as text blocks using 
161.ICD T{
162and
163.ICD T} .
164.ICD T{
165must come after the 
166.ICD ;
167and
168.ICD T}
169must be on its own line.
170
171.HnS 1
172A short summary
173.HnE
174
175We will, of course, need a short summary in our resume. You can, of course,
176write whatever you want here, and not necessarily
177.I "lorem ipsum dolor sit amet..."
178
179.CDS
180.COS
181\&.heading "Summary"
182\&.LP
183Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod 
184tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim 
185veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea 
186commodo consequat. Duis aute irure dolor in reprehenderit in voluptate 
187velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat 
188cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id 
189est laborum.
190.COE
191.CDE
192
193In the example above, we have taken advantage of our macro named
194.ICD heading
195to format the heading
196.ICD Summary .
197As a placeholder for our paragraph
198.ICD .LP
199we have just added the standard
200.I "Lorem Ipsum passage" ,
201used since the 1500s.
202
203.HnS 1
204Sections
205.HnE
206
207Finally, we create some sections for our various topics in the resume. These
208can, of course, vary depending on the person or position in mind. I will just
209create some examples.
210
211.CDS
212.COS
213\&.heading "Professional Experience"
214\&.TS
215tab(;) nospaces;
216rW15|lx.
217\\m[default]2019 - today\\m[linecolor];T{
218\&.B "Development Engineer at Creative Pros"
219\\(en Awesometown, Wonderland
220\&.br
221Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium 
222doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore 
223veritatis et quasi architecto beatae vitae dicta sunt explicabo.
224\&.sp .5
225T}
226\\m[default]2010 - 2019\\m[linecolor];T{
227\&.B "Professional Expert at Dreamworx"
228\\(en Somefareaway, Neverland
229\&.br
230Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed 
231quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt.
232\&.sp .5
233T}
234\&.TE
235\\m[default]
236.COE
237.CDE
238
239In the example above, we are once again using the macro
240.ICD heading
241to create a new heading for our experiences. The content is rendered inside a
242table, but this time the table formatting is a bit different. In this case,
243.ICD rW15|lx.
244means that the first cell is right aligned with a fixed width of
245.ICD 15
246(you might have to change this to work for your resume). The two cells will be
247divided by a line, specified using the
248.ICD | ,
249and the second cell will be left aligned and extended (to fill the writing
250area).
251
252Here we use the previously defined color
253.ICD linecolor
254for printing the separation line. First we make sure the default color is
255selected, then we define the first cell (here containing a date) and then set
256the new color
257.ICD linecolor .
258For our content, we once again use a text block to enable us to use formatting
259and longer texts.
260
261In our text block, we first define the position, employer, and location,
262separated with an
263.I "en"
264dash. We break the line using
265.ICD .br
266and add some descriptive text for the position. Finally, we add some vertical
267spacing with a value of
268.ICD 0.5 .
269After the table is ended, we make sure the default color is set.
270
271.HnS 1
272Conclusion
273.HnE
274
275Together with all the information above, we can now create a final document to
276compile into our resume. I've created a template
277.URL template.ms here
278based on this guide. Feel free to use it and change it in whatever way you
279want.