• 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

    • 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.

    •  Otter   ( @otter@lemmy.ca ) 
      link
      fedilink
      English
      224 months ago

      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

      • 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.

          • 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!”

            •  BearOfaTime   ( @BearOfaTime@lemm.ee ) 
              link
              fedilink
              English
              4
              edit-2
              4 months ago

              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!

        • 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.

      •  mortrek   ( @mortrek@lemmy.ml ) 
        link
        fedilink
        English
        14 months ago

        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.

  • 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.

      • 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)   $<"
          
          
  •  Waterdoc   ( @Waterdoc@lemmy.ca ) 
    link
    fedilink
    English
    164 months ago

    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.

      •  ryannathans   ( @ryannathans@aussie.zone ) 
        link
        fedilink
        English
        2
        edit-2
        4 months ago

        They are generally large, uncompressable and replaced instead of updated like text files. All files stay in the repo history forever, they make repos big and slow compared to text files with no advantages provided (e.g. as you said, diffing etc is useless).

        If a binary file needs to be stored in git, it’s usually more appropriate to use git LFS for that file. Git LFS stores the binary outside of the repo in the same way that database engines store binary outside of the respective table.

        In this case, it would be much smarter to use version control on the text in the document, not tte binary file, which is a feature of essentially every document writer program.