LaTeX redux...
Nov. 21st, 2016 10:01 pmI remember using LaTeX at a job I had back in 1987. The “LaTeX User’s Guide and Reference Manual” by Leslie Lamport was first published in 1985, but the version I have was published in 1986 and describes LaTeX version 2.09. What amazes me is I’m still using LaTeX in my professional and personal work. I prefer it to most WYSIWYG packages for technical work, and by its fundamental paradigm of operation allows me to focus on my writing (i.e. content) rather than fighting with formatting the document as I go (it is document mark-up where the meaning of the content of the document is specified rather than the formatting to use for it... and the formatting is taken care of at the end by computers, which are pretty good at doing it right). What amazes me even more is I continue to discover new extremely professional packages available for it that I never knew existed before I needed a feature and went looking for it.
Right now, I was getting tired of drawing digital logic timing diagrams by hand (this is in the early design phase, so doing circuits in a proper design tool and using their simulation output isn’t really an option... and besides, the output usually looks like shit in a document). I went and found a package called “tikz-timing” that does a very nice job of rendering timing diagrams and it has already helped me to wrap my brain around the quite tricky design I am attempting. The tikz-timing package is built on top of something called “TikZ”, which itself is built on the “PGF” package (the two are bundled together to install). I had to install TikZ/PGF... it was pretty huge, and I decided to look at the documentation that came with it to find out what it did. Consider my mind officially blown! The user’s manual for the package is 1200 pages of condensed and to-the-point (although adequate) descriptions of its capabilities and use! Ultimately, it’s kind of an expert drawing system, and I am sure I recognize the style of some of what it can do in many of the professionally published books and articles I have read. Just scrolling through the documentation is breathtaking (if you love beautifully typeset figures, which I do). Rather than describing what it can do, it might be better to say that I’m not sure if there isn’t anything it can’t do, and do beautifully with minimal guidance by the author (that it does a good job on its own of drawing node/edge type graphs is a feat in and of itself). This is definitely a package I need to learn (although it’s going to be piecemeal for the foreseeable future). The last package I just downloaded (I hope that’s it) is called “circuitikz” and is, as one might guess, a TikZ-based package for typesetting circuit diagrams. It’s non-intuitive to me as to how to specify the drawings, but once I figure it out, it will come quick I’m sure. The examples in the documentation are wondrous to look at, and again I am sure I recognize the style in professional texts I have read.
Two things, however, prompted me to post. Firstly, I decided that I need a break from Twitter... I still have my account (@PassionateFriar), but I stopped following anyone because I really need to focus on my school work and getting my life back as I approach the completion of my undergraduate degrees. Secondly, and back to LaTeX... argh! This highlights one of my gripes with open source software efforts: sometimes they are borked in subtle and not-so-subtle ways because of ideological currents. One particularly egregious example is the fact that there is no way to draw an arrow in the otherwise excellent GNU Image Manipulation Package (a package somewhat like Photoshop, but free) because of the developers’ preference for ideological purity over wasting hours upon hours for the tens of thousand of people who will inevitably have to draw arrows (you have to download expansion packages and install them to draw arrows, and it’s a non-intuitive process to do the installation and then figure out how to draw a freakin’ arrow). Well, with LaTeX, they went from the original (LaTeX 2.09 anyway, that is as far as I go back) command \documenttype (in which you could load the packages you needed), to a new command \documentstyle. Packages are now loaded with a new command called \usepackage. I certainly don’t mind the change per se, but if you use one type, LaTeX imposes a strict “flavour” selection on your document and you cannot mix the styles. Again, fair enough, but it took me ages to figure out what the heck was going on and why. It was trivial to fix (I’m using the new style going forward), and am able to take advantage of features of the new style for the work I am doing, but the error messages were obtuse. Even when I found a page that told me what was going on, it was a reference mention rather than an explanation and I had to figure out on my own what it meant. Ultimately, I had to try out the different options to figure out how to move forward. Anyway, ugh.
I will finish off with the awe that I feel that LaTeX is a piece of software that is over 30 years old and it still an essential tool for the communication of scientific, mathematical, and engineering (at least theoretical) information. I happen to think that it enhances creativity by allowing one to focus on writing rather than formatting, and that word-processor type software (M$ Werd, Libre-Office, etc.) detract and distract from the process (although they’re great for writing quick letters and stuff, but are a pain for serious work). What is even more awe-inspiring is that LaTeX is built on top of TeX, which was a typesetting program written by Donald Knuth in 1978, almost 40 years ago! Software doesn’t last that long, it just doesn’t... and that this code withstood the tests of time attest to it’s exceptional nature. And if that wasn’t enough (quote is from here)... "Donald Knuth, rewards the first finder of each typo or computer program bug with a check based on the source and the age of the bug. Since his books go into numerous editions, he does have a chance to correct errors. Typos and other errors in books typically yield $2.56 each once a book is in print (pre-publication bounty-hunter photocopy editions are priced at $0.25 per), and program bugs rise by powers of 2 each year from $1.28 to a maximum of $327.68. Knuth’s name is so valued that very few of his checks – even the largest ones – are actually cashed, but are instead framed.” Cash bounties for bugs? That would bankrupt most multinational companies in a matter of weeks (if not minutes). It is also known that in 40 years, Knuth has spent very little money... TeX is just that good. Well, back to work!
Right now, I was getting tired of drawing digital logic timing diagrams by hand (this is in the early design phase, so doing circuits in a proper design tool and using their simulation output isn’t really an option... and besides, the output usually looks like shit in a document). I went and found a package called “tikz-timing” that does a very nice job of rendering timing diagrams and it has already helped me to wrap my brain around the quite tricky design I am attempting. The tikz-timing package is built on top of something called “TikZ”, which itself is built on the “PGF” package (the two are bundled together to install). I had to install TikZ/PGF... it was pretty huge, and I decided to look at the documentation that came with it to find out what it did. Consider my mind officially blown! The user’s manual for the package is 1200 pages of condensed and to-the-point (although adequate) descriptions of its capabilities and use! Ultimately, it’s kind of an expert drawing system, and I am sure I recognize the style of some of what it can do in many of the professionally published books and articles I have read. Just scrolling through the documentation is breathtaking (if you love beautifully typeset figures, which I do). Rather than describing what it can do, it might be better to say that I’m not sure if there isn’t anything it can’t do, and do beautifully with minimal guidance by the author (that it does a good job on its own of drawing node/edge type graphs is a feat in and of itself). This is definitely a package I need to learn (although it’s going to be piecemeal for the foreseeable future). The last package I just downloaded (I hope that’s it) is called “circuitikz” and is, as one might guess, a TikZ-based package for typesetting circuit diagrams. It’s non-intuitive to me as to how to specify the drawings, but once I figure it out, it will come quick I’m sure. The examples in the documentation are wondrous to look at, and again I am sure I recognize the style in professional texts I have read.
Two things, however, prompted me to post. Firstly, I decided that I need a break from Twitter... I still have my account (@PassionateFriar), but I stopped following anyone because I really need to focus on my school work and getting my life back as I approach the completion of my undergraduate degrees. Secondly, and back to LaTeX... argh! This highlights one of my gripes with open source software efforts: sometimes they are borked in subtle and not-so-subtle ways because of ideological currents. One particularly egregious example is the fact that there is no way to draw an arrow in the otherwise excellent GNU Image Manipulation Package (a package somewhat like Photoshop, but free) because of the developers’ preference for ideological purity over wasting hours upon hours for the tens of thousand of people who will inevitably have to draw arrows (you have to download expansion packages and install them to draw arrows, and it’s a non-intuitive process to do the installation and then figure out how to draw a freakin’ arrow). Well, with LaTeX, they went from the original (LaTeX 2.09 anyway, that is as far as I go back) command \documenttype (in which you could load the packages you needed), to a new command \documentstyle. Packages are now loaded with a new command called \usepackage. I certainly don’t mind the change per se, but if you use one type, LaTeX imposes a strict “flavour” selection on your document and you cannot mix the styles. Again, fair enough, but it took me ages to figure out what the heck was going on and why. It was trivial to fix (I’m using the new style going forward), and am able to take advantage of features of the new style for the work I am doing, but the error messages were obtuse. Even when I found a page that told me what was going on, it was a reference mention rather than an explanation and I had to figure out on my own what it meant. Ultimately, I had to try out the different options to figure out how to move forward. Anyway, ugh.
I will finish off with the awe that I feel that LaTeX is a piece of software that is over 30 years old and it still an essential tool for the communication of scientific, mathematical, and engineering (at least theoretical) information. I happen to think that it enhances creativity by allowing one to focus on writing rather than formatting, and that word-processor type software (M$ Werd, Libre-Office, etc.) detract and distract from the process (although they’re great for writing quick letters and stuff, but are a pain for serious work). What is even more awe-inspiring is that LaTeX is built on top of TeX, which was a typesetting program written by Donald Knuth in 1978, almost 40 years ago! Software doesn’t last that long, it just doesn’t... and that this code withstood the tests of time attest to it’s exceptional nature. And if that wasn’t enough (quote is from here)... "Donald Knuth, rewards the first finder of each typo or computer program bug with a check based on the source and the age of the bug. Since his books go into numerous editions, he does have a chance to correct errors. Typos and other errors in books typically yield $2.56 each once a book is in print (pre-publication bounty-hunter photocopy editions are priced at $0.25 per), and program bugs rise by powers of 2 each year from $1.28 to a maximum of $327.68. Knuth’s name is so valued that very few of his checks – even the largest ones – are actually cashed, but are instead framed.” Cash bounties for bugs? That would bankrupt most multinational companies in a matter of weeks (if not minutes). It is also known that in 40 years, Knuth has spent very little money... TeX is just that good. Well, back to work!