Up to Main Index Up to Journal for February, 2025 JOURNAL FOR SATURDAY 1ST FEBRUARY, 2025 ______________________________________________________________________________ SUBJECT: Writing documents and CVs (Résumé) DATE: Sat 1 Feb 18:51:31 GMT 2025 I do a lot of writing. When writing and producing documents I have three main workflows. None of my workflows involve a word processor — which I hate. The first method is the humble text file. This can be plain ASCII upto 0x7E ‘~’ for simple documents. For more complex documents I use Unicode. I use Vim as my editor and entering digraphs such as “Ctrl-k O O” for ‘•’ is simple and I remember quite a few common characters I use. I also have some custom digraphs such as "`, "', `` and '' for double and single curly quotes “” ‘’. This method is used to write the journal, with Unicode and curly quotes. The second method I use, when I want the document to look presentable, is troff. I actually use groff as the processor, but I handwrite everything using Vim and my style is archaic troff :) It’s nice to typeset text instead of fighting with a word processor, wasting time trying to get the formatting just right. Usually I’ll write a plain text version, and then add the troff markup. The final output can be text, with Unicode, a PostScript file or a PDF. An example of processing the .roff file might be as simple as: groff -Tpdf cv.roff > cv.pdf The third method I’ve started using recently is Markdown. I write a .md file using Vim, and then use lowdown to process it. To make it look pretty I have some standard CSS style sheets I’ve written. The output is an HTML file, which I open in a browser and print to a PDF file. An example of processing the Markdown might be: lowdown -s -M "css=./doc.css" \ --html-no-escapehtml --html-no-skiphtml < doc.md > doc.html All three of the above methods start with a plain text file. This is important so that I can use the wealth of tools available to me. This includes things like a syntax highlighting, dictionary word lookup, spellcheckers and recently I’ve integrated some AI into Vim. I can also store revisions of my work in Git. The first and third methods I use when collaborating with other people. Writing troff is not for the faint of heart, and I wouldn’t force other people to use it. Here is a simple .troff document: .nh .ce \fBA Simple troff example\fR .sp 1 Zaeta jactus proident aliqua, blanditum laborum werra laboris zythum wadiarius fugiat. Placeat ea magna repellenda sunt xandici cum nobis mollit zythum beatae est dolore in werra xandici id. .sp 1 .in 2 \(bu Zaeta jactus proident .br \(bu Anim disti cillum .in -2 .sp 1 Anim disti cillum, anim ex yata cupidatat iure zio kalo culpa jecur magna enim sed warra nulla zonarius reprehenderit werra. Yatum sunt liber xvir laboris duis qui liber voluptate cillum elit placeat commodo zonarius occaecat maxim warra. Processing it for Unicode UTF-8 output, “groff -Tutf8 sample.roff”, produces: A Simple troff example Zaeta jactus proident aliqua, blanditum laborum werra laboris zythum wadiarius fugiat. Placeat ea magna repellenda sunt xandici cum nobis mollit zythum beatae est dolore in werra xandici id. • Zaeta jactus proident • Anim disti cillum Anim disti cillum, anim ex yata cupidatat iure zio kalo culpa jecur magna enim sed warra nulla zonarius reprehenderit werra. Yatum sunt liber xvir laboris duis qui liber voluptate cillum elit placeat commodo zonarius occaecat maxim warra. Here is the same content in Markdown: # A Simple troff example Zaeta jactus proident aliqua, blanditum laborum werra laboris zythum wadiarius fugiat. Placeat ea magna repellenda sunt xandici cum nobis mollit zythum beatae est dolore in werra xandici id. * Zaeta jactus proident * Anim disti cillum Anim disti cillum, anim ex yata cupidatat iure zio kalo culpa jecur magna enim sed warra nulla zonarius reprehenderit werra. Yatum sunt liber xvir laboris duis qui liber voluptate cillum elit placeat commodo zonarius occaecat maxim warra. Processing it for Unicode UTF-8 output, “lowdown -Tterm sample.md”, produces: A Simple troff example Zaeta jactus proident aliqua, blanditum laborum werra laboris zythum wadiarius fugiat. Placeat ea magna repellenda sunt xandici cum nobis mollit zythum beatae est dolore in werra xandici id. · Zaeta jactus proident · Anim disti cillum Anim disti cillum, anim ex yata cupidatat iure zio kalo culpa jecur magna enim sed warra nulla zonarius reprehenderit werra. Yatum sunt liber xvir laboris duis qui liber voluptate cillum elit placeat commodo zonarius occaecat maxim warra. Markdown does not have a simple way of centring text. If I was generating HTML my stylesheet would take care of that. Note also, if the journal showed ANSI attributes the title would be bold in both of the above examples. I have some additional tooling around Vim as well. For example, I usually have documents monitored for changes, triggering the generation of a PostScript or PDF file which I view in gv or mupdf which automatically refreshes. This gives me a live preview when I save the current document. Now why do I mention all of this? Well I’m still job hunting and need a CV. Some people call it a résumé, in the UK CV or curriculum vitæ is more common. I have an old CV written in troff. I thought I’d update it to Markdown so it’s easier to tailor for each application. I spent a few hours on the rewrite and had a nice looking CV. I then found out my CV should be Applicant Tracking System (ATS) friendly. Basically this means that a submitted CV is going to be fed to a automated system that will try to extract all of the information from the CV and store it into a database. If the automated system cannot understand the CV there is a good chance it will never make it to a human, resulting in automatic, and usually silent, rejection :( Now for the most egregious part. The most common document format understood by an AST is Microsoft Word. It is highly suggested to avoid PDF as “ATS systems may struggle with their formatting”. A common font should also be used: Ariel, Calibri, Garamond, Helvetica or Times New Roman. Luckily, depending on your view, I found this resource for ATS friendly CV templates: https://create.microsoft.com/en-us/templates/ats-resumes For anyone wanting more information on troff and other text tools, I recommend “Unix Text Processing” by Dale Dougherty and Tim O’Reilly. The book is now out of print, but scanned PDFs are available[1]. There is a community effort to recreate the troff source of the book[2] and produce it as a nice PDF with hyperlinks :) Now I guess it’s back to job hunting… -- Diddymus [1] Unix Text Processing; Dale Dougherty and Tim O’Reilly: https://www.oreilly.com/openbook/utp/ [2] Community UTP revival project: https://github.com/larrykollar/Unix-Text-Processing Up to Main Index Up to Journal for February, 2025