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.
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.
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é.
That’s assuming they are competent enough to even use a PDF.
deleted by creator
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.
: 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.
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.
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.
I mean yes you can use beamer to make slides, but it is a lot less flexible than ppt/LibreOffice Present.
git checkout -b final_version_revised2_REALLYFINALTHISTIME git commit -am “holy fuck I hope this really is the last edit” git push
git tag "FINAL FINAL FINAL DRAFT - v20"
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.
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.
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 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
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.
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) &
Thank you!!! I’ll see if I manage to make it work for me.
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) $<"
I wrote my thesis in Google Docs on my university account.
Google Docs is perfect for stuff like this. Great history management, better (though not great) at formatting and stuff, has features like revisions from editors and notes. Way better than Word IMO.
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.
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
I have an AutoHotkey script that drops the current date in ISO8601. I don’t need timestamps often, so date is sufficient. I like to have manual control of file names since I very frequently do not want files renamed.
Cute related story: I taught my 6 y.o. son this macro so he can save his Krita art with the date (and then some keyboard spam ending in “poop”, usually). The macro shortcut I set is `T so he now calls the date “ticky tee”. Any set of numbers with dashes is a “ticky tee” to him, and if AutoHotkey is closed he runs to get me because “ticky tee isn’t working, Daddy!”
Dammit, why have I never thought to use AHK for this? I already use the custom context menu script someone developed about 15 years ago (Favorite Folders? It’s on the AHK/AutoIT forum) , I can just add it to that.
AHK/AutoIT are game changers. I feel naked on a machine without it, I’m so used to Ctrl-Middle -click to get to all sorts of things… Folders, scripts, tools, automations (like your date idea), etc.
Ticky-tee! Hahahaha, love it!
What’s a good way to learn about Latex and Git. I’ve tried learning on my own but it’s very overwhelming.
It is a pity that Markdown does not have the possibilities of Latex.
Typst is Markdown-ish with the possibilities of LaTeX.
Don’t forget to push.
Several times I’ve lost large chunks of work because I usually copy files from the main folder to backup folders, but occasionally I copy files from a folder that was an old backup, reverting all files everywhere by mistake.
I should write my resume in LaTeX.
I wrote mine in LaTeX, highly recommend.
I mean, I spent years writing LaTeX for school so it was real simple and mindless. YMMV
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).
Wait there are other ways to write a resume?
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…
“Delete this repository” ate my homework.
Git is like shit for Word documents
.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.
That’s why we wrote our thesis in LaTeX: https://github.com/jonte/GGS-report/blob/a9d9d20bcc22a524629e371ce5984f131490b743/report.lyx#L362
#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.
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.
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
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.
Check out Typst (a newer TeX-like layout engine) if you have time, I’m interested in your opinion. I find it a bit simpler to use than TeX.
Un(?)fortunately I don’t have much cause these days for either TeX or some equivalent to it. Anything I’m writing today is simple enough that it doesn’t need anything more sophisticated than markdown for formatting.
Okay, I have a question. I would love to write my papers in latex, but none of my colleges use it. Is there a way to reasonably collaborate with coauthors who only use Word and for whom Latex would be confusing and difficult?
You don’t. You could try overleaf or some wysiwyg editor for LaTeX, but both need some getting used to and at least a minute amount of effort. Overleaf probably has the lowest barrier of entry (0 set up required), but is a paid service.
It depends on what sort of collaboration. For things on which I was the sole author, like my dissertation, I leveraged the miracle that is pandoc. Every email my advisor got from me was a perfectly formatted Word doc with a flawless bibliography and he never had to learn what the hell LaTeX is.
But if you have multiple contributors going back and forth, or need to keep long-lived discussions in the track changes panel, you’re better off not trying to teach others a new tool. Unless they have a genuine interest in it, in which case the WYSIWYG editors can be fun.
IMO LyX is way simpler than LaTeX for basic stuff, but because it is literally not Microsoft Word I couldn’t really use it to collaborate with people this semester, let alone convince them to work on a full LaTeX document. LyX would be the way to go if my colleagues were even remotely interested in learning about literally anything. You can lead a horse to water, but you can’t make it drink…
Markdown and pandoc are like match made in heaven for this. If you didn’t know, Markdown is plain text file, has a simple syntax for formatting (that gets carried over when you use pandoc), supports LaTeX equations and can attach metadata as yaml part on top of the file (gives custom usability when pandoc works on it) and supports citations w/ a bibliography file. And pandoc is document converter between multiple formats and can produce word files, PowerPoints, html file, latex pdfs (book, report, Beamer presentations) etc. You can also provide a template for pandoc to work with and it produces in that format. Not to mention since it’s plain text, you can apply git version control and also use make files to iteratively compile new outputs.
There is also RMarkdown (or it’s newer successor Quartro), which is same markdown pipeline but also can compute codes inside a section and attaches the result to the markdown file and does the whole pandoc thing afterwards. Think of it as like Jupyter Notebook style of literate programming with Markdown. Here’s a demonstration of its capabilities. https://youtu.be/_D-ux3MqGug
Assuming your colleagues can work with git but not LaTeX, you can set up a git repo with just markdown files and collaborate on that and have a makefile or docker container to get the final word or pdf generated. Here’s a good example of an pandoc makefile https://gist.github.com/kristopherjohnson/7466917
In Worst case scenario that they only work with word files, you can generate one from your markdown files and share with them and pull down the changes they sent you on the word document.
P.S. I assume Org-Mode can also substitute Markdown here in the pipeline. But I haven’t committed to it, so I’m not fully sure.
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.
Me with Jupyter Notebooks