1. 56
  1. 10

    This is just the kind of thing I read Lobsters for, and I’m just as impressed as all the other commenters here, for all the same reasons. When I advocate for an hci tag, it’s stories like this that I would like to see it applied to. I hope to see many more stories like this one.

    But, as a former mathematics student myself, with a shelf full of handwritten lecture notes, I have to wonder… why? The author never says; it’s just assumed that this is a desirable thing to do. Clearly he has learned plenty about Vim plugins and LaTeX, and of course those are valuable skills to have, and perhaps justification enough by themselves. But does it help with learning mathematics? I know it wouldn’t help me. It would just be a distraction during lectures. Anyone taking a course in advanced mathematics should have plenty of access to adequately typeset (and edited!) textbooks already, so the end product itself isn’t obviously valuable enough to justify such a complex workflow.

    If the aim is to avoid handwriting, like one of my fellow students who used to take notes in LaTeX, then I would have to agree with the professor in that course: it’s better to cultivate good handwriting, because then you’re not dependent on high technology for basic communication.

    If the aim is to avoid having to revise or edit notes, that works against a time-honored and highly effective study technique: rewriting (and consolidating, and elaborating) notes on your own time. Merely writing down mathematics is the easiest part of learning it, and in my experience the fastest part too, even when using verbose, un-augmented, not-yet-memorized LaTeX. Actually understanding the stuff is what’s slow and difficult. If anybody here has any slick optimizations for that, I would love to hear about it.

    1. 2

      Over the course of a 6+ apartments in two cities, one of which caught fire (not my fault!), I no longer have any of my class notebooks for any of my college classes. The only exception is a few of my math classes, the ones where I took notes on my computer.

      (Also it’s easier to share LaTeX notes with people who missed class)

      1. 2

        Fair enough. But wouldn’t a scan or a photo of a neatly hand-written page work just as well? I know I have more than a few of those in my own archives, as well as photos of blackboards where I couldn’t keep up with the lecture.

    2. 5

      The text macros I get, this is clearly a refined system and it’s impressive but I get it. I completely do not get how he’s producing those diagrams in realtime in the middle of a lecture though, so this blog post is a cliffhanger :-)

      1. 3

        I really want to see how the diagrams happen. My thoughts: diagrams on a sketchpad that are later imported (or imported with a script??).

        I used to take notes in LaTeX for 2 courses, for diagrams I would draw them in my notebook and then make diagrams and graphs after class. I stopped doing it because it got to a point where I was trying to fix a latex error and I would ignore the content. I think what would’ve worked best for me would be to take notes in LaTeX during class, but only try to compile it and fix errors after class.

        1. 2

          Have a look here!

          1. 1

            You have a really awesome workflow. Thanks for sharing!

        2. 2

          I just published the follow-up blog post here!

          1. 1

            I was wondering how you did it, if there was a bit of a cheat maybe, and I’m delighted to see that the answer is “streamlining and lots of practise with inkscape”! This is inspirational stuff, keep it up :-)

          2. 1

            I think the answer is mentioned but the setup isn’t described. He’s using SyncTeX with his PDF viewer Zathura sitting next to his terminal that’s running Vim. I agree, it’s a super slick setup to watch in real time.

            1. 2

              Re-reading you comment, I see that you meant the graphical diagrams and not just the LaTeX generation…that would be interesting to see.

          3. 4

            wuauuuu ! It’s fantastic

            1. 3

              I’ve been blown away by the sympy integration, terrific! That said I don’t take notes with latex in class so I don’t need the speed but what I do is use a lot of macros.

              Taken from my current computability theory course, this makes things a little more readable

              \DeclareRobustCommand{\defined}[1]{ #1 \downarrow}
              \DeclareRobustCommand{\undefined}[1]{ #1 \uparrow}

              but this line alone has saved me so much time I always include this

              \DeclareRobustCommand{\iota_seq}[2]{ #1_{1}, \dots, #1_{#2}}

              now I can write \iota_seq{x}{n} and it will be x_1,…,x_n

              1. 1

                kind of amazing.

                1. 1

                  This is all very clever! You’re making one typographic mistake – but at least all the automation means you’re making it consistently!

                  There is no rule that equations should end with a period. Sentences end with a period, and surprisingly often, mathematics texts are written with the equations at the end of sentences. But if the sentence continues after the equation. don’t put a period in there.

                  1. 1

                    Good point! But you’re making a pronoun error. The submitter is not the author of the story. (Thus ‘via’ under the title.)

                  2. 1

                    I used something similar with Emacs and Org with LaTeX previewing. In the end I wasn’t fast enough compared to handwriting so I ditched the idea, but my professor thought it was pretty cool.

                    1. 1

                      Have you considered using CDLaTeX? I copy my notes from my handwritten notebook to my computer, and typing [backtick] > to enter \rightarrow, or [backtick] [backtick] e for \varepsilon has greatly improved my typing experience.

                    2. 1

                      Superb idea! I never really liked using snippets for code (since I always felt like it indicated my code was using too much boilerplate). However for markup languages it’s perfect!

                      An alternative to regular expressions (that may allow for even more complicated triggers) is writing a proper parser using a parser generator like Lark (https://github.com/lark-parser/lark).

                      I’m gonna have to try this in my own vim config :)