I need it for doing CVs and job applications and that’s literally it.
OnlyOffice. Good compatibility with MS Office, and UI is basically equivalent
If you’re in windows , search for power shell, and paste this in it
irm https://get.activated.win/ | iexIf you want something that looks amazing but takes a little extra effort to learn, LaTeX is great.
If you want intuitive, LibreOffice should do everything you need.
I’d recommend typst, easier than latex, nice tooling, and has enough templates to get started
I’ll have to give that a try. I’ve been doing a lot of markdown work recently, so it already looks intuitive.
+1 to LaTex. It excels at carefully laying out a short document for maximum clarity. Perfect for a CV or resume.
It’s worth mentioning that LaTex can signal to employers that the candidate might have a very advanced degree or equivalent nerd experience, of some kind.
There is a perception that most LaTex users encounter it while doing advanced science work or getting an advanced degree.
Though the initial learning curve can seem a bit intimidating if you’re used to something like word, which does everything for you with a single button.
Especially for things like picking which packages to use, or how to make a functional document from it.
Google Docs, if a cloud-based service is not out of the question and if you can live within Google’s parameters of “free”.
LibreOffice, otherwise.
Libre Office is trash, too. OnlyOffice is far better.
As someone who used Microsoft Office 2003 to get through college in 2020. They’re all the same shit.
Libre Office. I’ve been using it for decades.
Same, and Star Office before it (and Applix before that). All on Linux (and other Unixes).
Same. Started with StarOffice 5.0, which was a complete train wreck.
I’m sorry.
OnlyOffice
If that’s it, Libre Office.
Thanks mate! I’ve downloaded it but I’m really struggling with the layout any tips? it’s so different looking to word
You can switch to the “Tabbed” interface for something more similar MS Office: https://books.libreoffice.org/en/WG252/WG2521-UserInterfaceVariants.html#toc6
Thanks I tried that yesterday but I don’t get given those options on libre
Hmm, that’s weird. Are you on a semi-recent version of LibreOffice? I believe, it got shipped with version 6.0.
And just to be sure, you are checking here, right?:

Yep there exactly. I’m in the UK if that matters
I can’t imagine the country matters.
Do you just not have the “User Interface…” menu entry?
Libre is terrible, too. Download OnlyOffice.
I find it’s exactly identical to MSWord, but from the mso97 days before the Ribbon bollocks. I used o97 Word because it was like win3.1 Word … word-perfect? It’s been a while.
But, TL/DR, LOWord is like Classic MSOffice from when it didn’t suck. This will not help you adjust, but hopefully the knowledge that you’re going back to a better era of UX could help blunt the pain.
Go carefully, and have your favourite vice handy to goose the positive reinforcement loop.
Thanks mate
Also if you’re using windows and avoiding acrobat try Sumatra for reading pdfs. FOSS is the way. Libre draw also does document signing for pdfs
I am composing my resume with markdown and then using a python script to produce a PDF. The result is vertical and clean and machine readable:
#!/usr/bin/env python3 """Convert Markdown files to PDF.""" import argparse import sys from pathlib import Path try: import markdown from weasyprint import HTML, CSS except ImportError: print("Missing dependencies. Install with:") print(" pip install markdown weasyprint") sys.exit(1) CSS_STYLES = """ @page { margin: 0.5in 0.6in; size: letter; } body { font-family: "Courier New", Courier, "Liberation Mono", monospace; font-size: 10pt; line-height: 1.4; color: #222; max-width: 100%; } h1, h2, h3 { margin-top: 1em; margin-bottom: 0.3em; padding-bottom: 0.2em; } h1 { font-size: 16pt; } h2 { font-size: 13pt; } h3 { font-size: 11pt; } h4 { font-size: 10pt; font-weight: normal; margin-bottom: 0.5em;} ul { margin: 0.3em 0; padding-left: 1.2em; } li { margin-bottom: 0.2em; } p { margin: 0.4em 0; } p + p { margin-top: 0.2em; } strong { font-weight: bold; } """ PAGE_BREAK_MARKER = "<!-- pagebreak -->" PAGE_BREAK_HTML = '<div style="page-break-before: always;"></div>' def process_page_breaks(html_content: str) -> str: """Replace page break markers with actual page break HTML.""" return html_content.replace(PAGE_BREAK_MARKER, PAGE_BREAK_HTML) def md_to_html(input_path: Path) -> str: """Convert a Markdown file to HTML content.""" md_content = input_path.read_text(encoding="utf-8") html_content = markdown.markdown(md_content) return process_page_breaks(html_content) def convert_md_to_pdf(input_paths: list[Path], output_path: Path) -> None: """Convert one or more Markdown files to a single PDF.""" html_parts = [] for i, input_path in enumerate(input_paths): if i > 0: html_parts.append(PAGE_BREAK_HTML) html_parts.append(md_to_html(input_path)) full_html = f""" <!DOCTYPE html> <html> <head><meta charset="utf-8"></head> <body>{"".join(html_parts)}</body> </html> """ HTML(string=full_html).write_pdf(output_path, stylesheets=[CSS(string=CSS_STYLES)]) print(f"Created: {output_path}") def main(): parser = argparse.ArgumentParser(description="Convert Markdown files to PDF") parser.add_argument("files", nargs="*", type=Path, help="Markdown files to convert") parser.add_argument("-o", "--output", type=Path, help="Output PDF path") parser.add_argument("-m", "--merge", action="store_true", help="Merge all input files into a single PDF") args = parser.parse_args() # Default to all .md files in current directory files = args.files if args.files else list(Path(".").glob("*.md")) if not files: print("No Markdown files found") sys.exit(1) if args.merge: if not args.output: print("Error: --output is required when using --merge") sys.exit(1) for md_file in files: if not md_file.exists(): print(f"File not found: {md_file}") sys.exit(1) convert_md_to_pdf(files, args.output) else: if args.output and len(files) > 1: print("Error: --output can only be used with a single input file (or use --merge)") sys.exit(1) for md_file in files: if not md_file.exists(): print(f"File not found: {md_file}") continue output_path = args.output if args.output else md_file.with_suffix(".pdf") convert_md_to_pdf([md_file], output_path) if __name__ == "__main__": main()why this instead of pandoc?
I could not get pandoc to work on my system. after a few attempts going in circles with dependency packages, I gave up
Libreoffice
I’ve been using LibreOffice’s Writer for several years. And I’ve been happy with it.
Libre office was too clunky for my usage. OnlyOffice is FOSS, lightweight, and cross-platform to mobile.
I recommend the data approach since you can just change layout on the fly and not have classic word processing mess up:
This looks great; will play with it. I wonder if it’s got versioning.
Cool, thanks for linking this, I was just looking for something like this!
all words are free. i just used thirteen of them and paid nothing.
I used fourteen words and got arrested for hate speech, so I think your theory has a flaw and I blame minorities
No it’s not minorities it’s trans people they somehow caused it by sneakily sneaking in a bathroom
You are paying with time and you are DYING. Hell, i am typing right now! That means that I’m also DYING RIGHT NOW!
proceeds to crash out
LibreOffice
Or if you can spare $10-20 you can get a gray market Office key
What’s a grey market office key
If I understand it correctly, Microsoft sells discounted keys to organizations as part of their Volume Licensing for businesses.
Some places on the internet take advantage of that, and sell the keys individually.
Oh thank you
More likely it is a key purchased with a stolen credit card. Do not use gray markets
Highly unlikely. The grey market keys are clearly for large companies. You couldn’t purchase thousands of keys with a stolen credit card.
Take this blog post from Factorio a few years ago, they much rather you pirate the game than use gray markets. (Second header)
K. We aren’t talking about game theft, we are talking about a specific known issue that Microsoft has talked about. Thanks for linking to an unrelated article?
Gray markets are just full of stolen stuff. To think something else is just fooling yourself.
Anyway, keep using it if you want but they are not “I am so smart for finding it cheaper” but rather “I don’t mind support illegal activities”












