Counterpoint: advisor said no.
“Just use Word, everyone else does. I have never heard of this latex thing, so must be just some trendy useless overengineered software that does Word’s job but worse. Word can track changes just fine, and you can leave comments.” proceeds to strikethrough, highlight, and inline comment everything instead of using either of those features “I want to read what you wrote, not fight technology” proceeds to email you three separate times after forgetting to attach v28 about how a graphic looks wrong because Word ate it
While correct in the sense of word and versioning via mail being a nightmare, I really don’t think you can expect anyone to learn latex just so they can comment in your document. I would have offered to send a pdf. Shoot me.
I would have offered to send a pdf
I would have never considered doing anything but sending a PDF. Even if they do know LaTeX. Unless they’re offering to help edit the code for me, what good is it? It’s objectively harder to read than the formatted PDF.
That said, marking up a PDF is much more difficult and does require more specialised software and know-how than editing plain text or even editing a Word document. So there are some advantages to it.
This is exactly it. My advisor wanted a word doc to edit, not a PDF. I wasn’t quite snooty enough to think that he should learn latex. Though, if he ever took the time to learn (what time?), I’m sure the writing process would be unbearable for other reasons not entirely related.
With the Todo package you can easily make online comments what needs to change.
Adding comments to PDFs is actually very easy, is it not? Even that Adobe PDF crapware can do it, you don’t even need a good pdf reader (like Okular from KDE).
: don’t even talk to your advisors, just hand in a finished PDF
you can still use word with git. it’s versioning first, diffing and merging only where possible. since you probably won’t branch you won’t need the latter, though.
Preaching to the choir. “But Box already supports ‘versioning’, why use a confusing hacker tool instead?”
oh I see, you have a shared drive. i assumed you send it around as emails.
A fine assumption given what I wrote. Unfortunately, we did both depending on what he felt like at the time. Yes, for the same doc.
Missing diffs is a problem, though.
I don’t get how Microsoft owns GitHub yet hasn’t figured out any way to actually create a spec that would be git compatible for Excel, Word, and PowerPoint files yet.
Easy, they want you to buy a onedrive subscription.
wait, your advisor looks at your work?
Dude was shall we say, hands on about certain things. My dissertation is still embargoed because he is paranoid about being scooped. Joke’s on him, everything that hasn’t been published is not exciting enough to meet his own metric for publishability.
I’m going to send you a pdf, you van email me back with the notes or comments in the PDF itself, whatever souts your fancy, and I’ll keep those notes and send you a new PDF with them.
I did this and I had no issues with any of the thesises I have submitted in my bachelors or masters.
First year calculus teacher, thank you SO much for forcing us to write submissions in latex.
Also, overleaf is a thing, this is not like my 1st year of uni, this 11 years later or so. If your fucking professor never heard of latex they are just bad at academia and shouldn’t be teaching honestly. It’s not just about the field knowledge.
That’s assuming they are competent enough to even use a PDF.
I’m going to send you a pdf, you van email me back with the notes or comments in the PDF itself, whatever souts your fancy, and I’ll keep those notes and send you a new PDF with them.
I do this, but from Word.
I learned Latex for my master thesis. Never used it again afterwards, except for my resumé.
The weird part is that most modern office software has version control built right in.
And I still do this with all my files anyway.
I’ve had the built in version control do unexpected things, so I play it safe and create named backup files. I usually end up using that one file, but I’ve been saved on occasion
Its just not trustworthy
Use date/time in your file name,using GMT:
Metrics of Sales 2024-05-22_14-29.docx
Very unlikely to have 2 docs with the same down-to-the-minute time stamp in the name.
If you think this process involves enough mindpower to check the time, let alone figure out where the dashes are in whatever language keyboard setup I’m using at the time, you are wildly overestimating how much care goes into doing this.
Eh. I think he reffers to auto naming on save with date, not manually
Well, if you can’t be bothered to ensure file names mean something, then you get to enjoy the results.
In the Real World®, sometimes files get shared and traded around, and conversations happen about them, and you need to be able to quickly verify you’re looking at the same doc.
We can’t all be connected to the same version control system.
Well, if you can’t be bothered to ensure file names mean something, then you get to enjoy the results.
Now you’re getting it.
I generally do this on my NAS, combined with nightly and bi-weekly backups, plus a 6-mo safety backup, to a backup drive. Also, basic off-site nightly backups for important stuff. If I worked on really important stuff that required lots of versioning, though, I’d probably go with a versioning system instead of inserting the date.
Who handles the live replication and offsite storage rotations for your quantum encrypted multi site redundant back up system?
I kid (because your excellent practices put mine to absolute shame). Thanks for the reminder to get serious about backups!
I should write my resume in LaTeX.
Done it and highly recommend it
Do you have a good LaTeX template for it. I did make a data driven based LaTeX pdf for my resume but it’s a nightmare when applying for jobs these days, since they have that ATS parser nonsense, which will throw the entire resume down if it isn’t as very plain and boring word document without much formatting.
It depends heavily on region. I personally don’t think I ever had issues with parsers. I used the awesome CV template as a base. It’s fairly simple while still not being completely boring. You can find it on GitHub or overleaf iirc (it’s been a while).
Overleaf probably has a template.
Overleaf have hundreds of them. The problem is not the availability or using them. The problem is before your resume reaches a human, it is filtered via a ATS parser and generally it doesn’t like any fancy formatting. So unless your resume is machine readable, it automatically trashes your resume out.
I was vehemently sitting on my Data driven LaTeX typeset resume for months but didn’t have much success until I took a plain old word template and ported everything there. It is what it is.
Ever see StirlingPDF? You can just get it into a PDF then make sure it is compatible with that tool. It’s a Swiss Army Knife.
Wait there are other ways to write a resume?
I know it’s a long video but you have no idea what’s possible.
HTML. Some it people have their CV on their personal website.
(And CSS and JS, I guess)
I do too, by embedding a pdf :p.
Oh, maybe I should try mathjax…
Haha my first thought seeing this meme is “do you want to start writing LaTeX by hand? Because this is how you start…”
I have it is so worth it. I then use GitHub / GitLab releases to “release” a built PDF for my reference.
I do this using overleaf. It’s been much easier to maintain and update since switching.
I wrote mine in LaTeX, highly recommend.
I mean, I spent years writing LaTeX for school so it was real simple and mindless. YMMV
I have enjoyed switching mine to HTML format which I then generate a PDF from. The only downside is that different browsers can render stuff slightly different, but that’s normally fixable with one line css change. And it’s not like I need to update my resume constantly on different machines.
I was on Word, then LibreOffice Writer.
Now thinking of making it a markdown source, with CSS styling to get an HTML based PDF. This way, the same source can be used on a webpage with different generation code.This seems to me, to be simpler than LATEX, but still good enough for a resume.
There is a standard called json-resume with a lot of generators for html and pdf or react-resume which is more like a CMS (not entirely sure about spelling, to lazy to search for it now)
But I need to add that I never made it work for me because they are not really good for scientific CVs
Interesting, but not appealing to me.
I have already been enchanted bydiscount
and mesmerised bykramdown
.
I like this idea. What tool do you use for converting the markdown to html?
kramdown
anddiscount
are 2 fun little tools.kramdown
is more fully featured and is a Ruby Gem.discount
is made in C and is more suitable if you are using it in an on-the-fly render process (∵ lesser CPU cycles), but it has lesserfunctionalityfeatures.
deleted by creator
git tag "FINAL FINAL FINAL DRAFT - v20"
Git is like shit for Word documents
But better for LaTeX
and then there are fucking PIs insisting on word files who never heard of tracked charges let alone of file naming conventions.
I dunno what a PI is, but my honours thesis supervisor was the person who first introduced me to TeX. And gods, I wish I had known about it earlier in uni, or even back in high school. It is so useful when writing any sort of papers with sections and diagrams and bibliography.
Principal Investigator. It’s the lead scientist in charge of the project.
Then start writing in Markdown. Markdown is easier in syntax, supports LaTeX equations, has metadata and is in plain text so you can use git. And the killer feature is you can use pandoc to convert the markdown file into word, pptx, LaTeX pdfs, html etc. you can also setup a make file that runs pandoc when you ask like this
yeah this is what i used for some projects, i.e. rmarkdown which also integrates the statistics part
That’s why we wrote our thesis in LaTeX: https://github.com/jonte/GGS-report/blob/a9d9d20bcc22a524629e371ce5984f131490b743/report.lyx#L362
I also have my reports in latex inside a git repo, complete with a makefile to generate graphs from csv containing simulation results. However I am too ashamed to publish the entire version control to a public repo
#LyX 2.0 created this file. For more info see http://www.lyx.org/
Wait, I thought you guys did it manually…
Anyway, I should still learn it.
It’s a editor helping you writing it, you cat still go inside and change things manually if you need/want to do that.
Unzip the docx with a pre-commit hook
(This is not a serious suggestion)
.gitattributes can invoke Word on windows to diff versions, and there are plenty of open source scripts that can do it if you don’t have a copy of Word (or Windows) lying around.
But Word is like shit for papers. Use LaTeX instead.
Just like word documents are shit for papers and theses/dissertations it turns out. The formatting alone is a nightmare.
Still better than using file names.
I learned LaTeX just so I could effectively use git in it.
I kinda want to learn LaTeX but I rarely write anything and I hate doing it so won’t have much use for it. It’s pretty neat though.
I also saw that there was a way to use LaTex to generate PowerPoint which seems extremely useful because PowerPoint is extremely annoying to use.
Yes, I also mde my. Thesis slides in LaTeX which was nice as I coukd reuse the figures.
Had to write a paper in college with 100 citations.
We used zotero for citation management, and it would dump a bibtex file on demand.
The paper was written in markdown, stored in git, and rendered through pandoc. We would cite a paper with parentheses and something resembling an id, like (lewis).
We gave pandoc a “citation style definition”, and it took care of everything. Every citation was perfectly formatted. The bibliography was perfectly formatted. Inline references were perfect. Numbering was perfect. All the metadata was ripped from pdfs automatically. It was downright magical.
yep, markdown is a great alternative to LaTeX if you don’t need fancy layouts or anything special
Markdown + pandoc means it goes through an intermediary latex template on the way to pdf land - which means your markdown can be a bastardized mix of markdown, html, latex commands, and sometimes more ;)
This is what I (a non coder who only knows git “download the Yuzu repo before they nuke it” and git “give me all the updates”) want to do when I get to write a paper. How much git did you have to learn to do this?
This is just basic make changes to file, git add and commit workflow. Other features of git like branching can be leveraged for greater control but are optional. What makes it magical is 3 seperate systems working together with such symphony namely git, Zotero and pandoc. Zotero is citation manager that you can use store scientific articles, papers, thesis etc. and it can produce a bibliography file and pandoc can reference those along with the citations in the make file to create a clean typesetted Word or LaTeX pdf with precise numbering, table of contents, citations and bibliography with correct format without you needing to edit anything.
Exactly my workflow, but I used R Markdown!
I absolutely love R markdown! Being able to iterate on your analysis and report at the same time is fantastic
I also added a Makefile for mine (LaTeX), and it would add the commit hash to the front page (with an asterisk if the repository had uncommitted changes).
So, if I gave a draft to someone and got feedback, I’d know exactly which revision it was.
This is brilliant
Hey, amazing idea, can you share the code?
Makefile in other comments. You’ll need something like this on the title page (this assumes you use my Makefile which puts the version in
VERSION.tex
[that’s the literal name of the file, not a placeholder]):{\bf{\color{red}DOCUMENT REVISION:}} {\color{blue}\input{VERSION}}
Sure thing. This also includes the beamer bit which I used for my defense. It’s all pretty hacky but hope it’s useful!
# # Errors aren't handled gracefully (tex doesn't write to stderr, it seems) # If you encounter errors, use "make verbose" # # For small changes (probably those without references), use "make quick" # # Thanks to https://gist.github.com/Miliox/4035649 for dependency outline TEX = pdflatex BTEX = biber MAKE = make -s TEXFLAGS = -halt-on-error # $(MAIN).log is dumb if we have multiple targets! SILENT = > /dev/null || cat $(MAIN).log SILENT_NOER = 2>/dev/null 1>/dev/null EDITOR = vim -p PDFVIEW = evince MAIN = main PRES = presentation ALL = $(MAIN).pdf RECURS = media/ manuscripts/ VERSION := $(shell git rev-parse --short HEAD | cut -c 1-4)$(shell git diff-index --quiet HEAD && (echo -n ' ';git log -1 --format=[%cd]) || (echo -n '* '; date -u '+[%c]')) all: recurs $(ALL) pres: $(PRES).pdf scratch: scratch.pdf scratch.pdf: scratch.tex @echo "TEX (final) $<" @$(TEX) $(TEXFLAGS) $< $(SILENT) verbose: SILENT = '' verbose: $(ALL) recurs: $(RECURS) @$(foreach DIR, $(RECURS), \ echo "MAKE (CD) $(CURDIR)/$(DIR)"; \ $(MAKE) -C $(DIR) $(MAKECMDGOALS);) @echo "MAKE (CD) ./" clean: @echo "SH (RM) Not recursing; 'make allclean' to clear generated files." @rm -f *.aux *.log *.out *.pdf *.bbl *.blg *.toc *.lof *.lot *.bcf *.run.xml allclean: recurs @echo "SH (RM) A clean directory is a happy directory" @rm -f *.aux *.log *.out *.pdf *.bbl *.blg *.toc *.lof *.lot *.bcf *.run.xml version: @echo "SH (ver) $(VERSION)" @echo $(VERSION) > VERSION.tex nixpages: main.pdf @echo "PDF (pdftk)" @pdftk main.pdf cat 1 4-end output final.pdf quick: $(MAIN).tex version @echo "TEX (final) $<" @$(TEX) $(TEXFLAGS) $< $(SILENT) $(MAIN).pdf: $(MAIN).tex $(MAIN).bbl all.tex tex/abstract.tex tex/intro.tex tex/appendix.tex tex/some_section.tex tex/some_other_section.tex @echo "TEX (draft) $<" @$(TEX) $(TEXFLAGS) --draftmode $< $(SILENT) @echo "TEX (final) $<" @$(TEX) $(TEXFLAGS) $< $(SILENT) $(MAIN).bbl: $(MAIN).aux @echo "BIB (bib) $(MAIN)" @$(BTEX) $(MAIN) > /dev/null $(MAIN).aux: $(MAIN).tex $(MAIN).bib version @echo "TEX (draft) $<" @$(TEX) $(TEXFLAGS) --draftmode $< $(SILENT) $(PRES).pdf: $(PRES).tex $(PRES).bbl tex/beamer*.tex tex/slides/*.tex @echo "TEX (draft) $<" @$(TEX) $(TEXFLAGS) --draftmode $< $(SILENT) @echo "TEX (final) $<" @$(TEX) $(TEXFLAGS) $< $(SILENT) $(PRES).bbl: $(PRES).aux @echo "BIB (bib) $(PRES)" @$(BTEX) $(PRES) > /dev/null $(PRES).aux: $(PRES).tex $(MAIN).bib @echo "TEX (draft) $<" @$(TEX) $(TEXFLAGS) --draftmode $< $(SILENT) edit: @echo "EDIT (fork) $(EDITOR)" @$(EDITOR) ./tex/*.tex *.tex view: @echo "VIEW (fork) $(PDFVIEW)" @$(PDFVIEW) $(ALL) $(SILENT_NOER) &
I also had some Makefiles in other directories, e.g., for my
media/
I had:MAKE = make -s RECURS = svgs/ recurs: $(RECURS) @$(foreach DIR, $(RECURS), \ echo "MAKE (CD) $(CURDIR)/$(DIR)"; \ $(MAKE) -C $(DIR) $(MAKECMDGOALS);) @echo "MAKE (CD) $(CURDIR)/" all: recurs clean: allclean: recurs clean
and for
media/svgs/
:SVG_FILES := $(wildcard *.svg) PDFDIR := ./ PDF_FILES := $(patsubst %.svg,$(PDFDIR)/%.pdf,$(SVG_FILES)) all: $(PDF_FILES) clean: @rm -f $(PDF_FILES) @echo "SH (RM) Tidying up derived PDFs" allclean: clean $(PDFDIR)/%.pdf: %.svg @inkscape -T --export-pdf=$@ $< @echo "INK (PDF) $<"
Thank you!!! I’ll see if I manage to make it work for me.
docx files are actually zip archives with xml in them
Let me tell you something. I cannot tell you what company, but I have been tasked with putting Excel files in git “because they are just zip archives with xml” and it is just a disaster. Everytime you save the document it will save certain parts of the xml code in arbitrary ways (like each image is in a list and the order of that list is random everytime), some metadata is re-written everytime like time of last modified and finally all the xml files are one single line. The git diffs are complete useless and noisy and just looking at the Excel file will cause git to consider it updated. So sure, you can use git to snapshot you Office documents… But just don’t.
If you are, like I once was, the poor fool who has to maintain a bunch of VBA macros… Extract them into files and source control those. Make a script to extract them and to put them back, and use git-lfs for the actual workbook if you need a template workbook.
Now pardon me, I need to add this to the agenda for my next therapy.
I will join that therapy session. This is pretty much what we did, except LFS, since it was “a requirement” to also track what they layouting of the Excel file was like.
And even extracting and inserting the code was not stable. Excel will arbitrarily change the casing of “.path” to “.Path” for no reason and add and remove whitespace between functions as it see fit. It was such a pain. We also had a hard time handling unicode strings for instance containing a degree sign. And the list goes on.
Perhaps M$ does that specifically to make it hard to work with their formats? That way, tools like libre office stay not 100% compatible, preserving their market share.
I hear ya. But to be honest, what they are doing here is fine, and doesn’t seem malicious. There is an Open Document specification and they stick to it, but the spec doesn’t enforce everything. For instance for the ordering of certain elements on the page, I bet you they store store those elements in memory in an efficient data structure where ordering doesn’t matter, so when writing out the memory to disk, the easiest for them to do is just write it out in what order it appears in their data structure.
But there are probably other cases where they are not so innocent.
Just fork git to handle zipping, formatting and ignoring metadata! Or just put your office document in the cloud and use the basic versioning it provides.
Doesn’t matter, to git they are still binary files, which means it’ll check in each revision as an entirely new copy.
Yes, you might only see the most recent one in your working directory, but under the hood, all the other ones are still there in the repo.
Someone could probably build a tool which sits in between you and Git, which unzips the file before committing and after pulling, so Git sees the raw xml file, but you always see the zipped docx.
edit: never mind. Just read @[email protected]’s comment explaining why this is a bad idea.
Yeah, I made such a tool - and kept polishing edge cases until I gave up. So just wanted to warn everyone.
I’m sure you could, but yes, it’s likely not worth the trouble.
a pre hook filter that beautifies and sanitizes the xml should fix that
Which isn’t any different than keeping them as separate files space wise so what’s the problem?
(Other than Word having built-in versioning.)
what’s the problem?
It’s basically just keeping a bunch of separate files but with extra steps.
I would genuinely rather use git in such a scenario than not because there are plenty of other useful features over a bunch of files in a folder. Sure, obviously if the file is massive it is inconvenient, but that’s not a fair comparison because we’re comparing multiple copies “FINAL FINAL FOR REAL” in a folder anyways. There isn’t suddenly less size that way. It seems incredibly silly to describe it as “keeping files with extra steps” because people aren’t using git for space saving, they’re using it for version tracking. Everything git does is “keeping files with extra steps.”
Everything git does is “keeping files with extra steps.”
Not quite, because text files are stored as incremental diffs, which not only saves massive amounts of space but allows for effective comparisons of what exactly has changed between versions. While the former is more of a nice bonus these days with storage being extremely cheap, the latter is in fact the main reason one would use git to begin with.
Binary files too can be stored as incremental diffs
Yes but without the ability to quickly see what’s changed between different versions (on a semantic level), all it will do for you is safe you some storage.
With a bunch of separate files, you can at least open two of them quickly and do a manual scan, but with git you can only ever have one version checked out at the same time, so now you’ll be checking out an older version, making a temporary copy of that, and then checking out the version you want to compare it to and STILL end up doing just that.
From a workflow perspective, it’s really just extra overhead, with little to no practical benefit.
I don’t want to engage in this conversation if you’re going to ignore everything else I said about how binary files since that what were talking about.
Sorry, I just woke up and clearly didn’t parse your entire comment correctly. Should have had my coffee first.
I think you can write clean/smudge filter that will turn docx into tree(folder)
You probably can but here’s why that’s still not gonna be all that effective.
Still better than having 30 copies of same document and forgetting which was the last one.
Sort by -> Date modified
What’s a good way to learn about Latex and Git. I’ve tried learning on my own but it’s very overwhelming.
Overleaf is easy to use and has tutorials for LaTeX
Never heard of latex but I can help you with Git.
What you want to know?
deleted by creator
\documentclass{article} \usepackage{soul} \begin{document} I'm 19 and I know how to use \LaTeX, \LaTeX is more used in academia, they taught me \LaTeX in Uni, but a lot of other people just won't ever heard of it because is rare to find in other places, most technical degrees and even a lot of uni ones won't use it \st{even if it's vastly superior to word}. \huge \LaTeX rules \end{document}
}
I think you dropped this.
You have to excuse me, texstudio adds automatically the closing one.
Same except that I taught myself. Written two essays for uni already with it and knew from the start that I wouldn’t touch word if I didn’t absolutely need it.
Latex is confusing, the errors are often even less clear than Python or Java tracebacks, some packages have weird API or don’t work together, and I had to make a build script to work with it, but besides that, I have a good language and environment now to create pretty good PDFs with, including VCS with git and not having to use an editor that is not neovim.
If you want to look deeper, there are a few more typesetting languages, some with more modern syntax. Markdown is surely the easiest, but not quite as powerful.
Btw, is
soul
a real package?Yes, the \LaTeX code I wrote is 100% compilable.
I also learned most \LaTeX myself, school just taught me the basic sintaxis, but is widely used amongst students and academics.
I’m 40 if that helps.
deleted by creator
I become a software developer later in life and never had the privilege to go to university, so sometimes I’m out of the loop on older tech.
How did Latex compare to modern Git?
Latex is no versioning tool but a textsetting language. It outputs perfectly formatted Documents after building and takes care of aranging images, quotes and all the tedious stuff so after setting up your template you only have to care about content. It works well with git.
Not like word where adding an image fucks the whole formatting.
Interesting.
Yeah word sucks. I’m a software developer now and have to deal with Word and Excel more than I ever thought I would.
Everyone still uses LaTeX for CS/Math at my school. It’s not an age thing. Just different circles. I don’t think anything similar even comes close to LaTeX yet.
Typst is pretty functional
Ooh, that looks cool. Thanks for the recommendation.
Fuck, I’m
oldprivileged.
Well in this thread people were saying you can set up your own local git repository? What’s a newbie friendly way of doing that. I’ve watched videos and understand that git version control system but I can’t quite seem to grasp more than that.
I will answer this, I am sick right now but will return.
You can just create a local repo with
git init
, and then never push to a (non existent) remote repository. Git is decentralized, meaning that you always have a functional and complete repo when you’re working with it.Depending on your tooling, you probably have a GUI for git if you’re a noob, which can usually “initialize a git repo” for you. I use the cli/lagygit tui, so I can’t help with that.
Thank you, this clears some things up for none the less.
It is a pity that Markdown does not have the possibilities of Latex.
Typst is Markdown-ish with the possibilities of LaTeX.
I learned latex by doing my engineering homework in it. I quit using latex because I kept doing my engineering homework in it and it turns out it sucks to do
I’m doing my math homework with latex this semester, I’m probably slower but it looks good and is more maintainable.
The issue I had was if it was big enough to need maintainability it was a group project and that meant Google docs or it was math and that meant scrawled on paper. Or technical writing which is the prof that told us to try latex in the first place but I was too busy that semester to learn it
You can do maths in LaTeX and I have used Overleaf for group projects before.
Fair, but this was 10 years ago, we were engineers, and it was hard enough explaining the work I did and the work I needed other people to do to them in a way these people understood.
Also I can’t do math on computers. Like arithmetic sure, but real math, that requires actually writing it down. Idk that’s probably my old lady trait these days
Presumably you do the work on paper and then type it up. I doubt professors would accept paper work nowadays.
I wrote about half of my thesis in R Markdown using Git to backup my work. It’s fantastic because you can have your plots and statistics integrated directly into your paper and formatting in Markdown is much easier than straight up latex.
R markdown is awesome. I’d always use it for my biostatistics tests and assignments.
I recently read a tutorial titled: “how to annoy your collaborators: a git CI pipeline for LaTeX” ;)
I encountered an engineering firm that did this. I wanted to do it too.
The company I worked for at the time (said engineering firm was doing subcontracting for us) was full of older business people who could never in a million years have wrapped their heads around the idea.
I also met this at a contracting job. Drove me bonkers.
Latex and git ❤️
“Delete this repository” ate my homework.