LaTeX woes - Sympathy for the Blakeyrat
-
I am at the point where I'm screaming F**K OFF OPEN SOURCE DEVELOPERS WHY CAN'T YOU GET YOUR SH*T TOGETHER
I'm using Windows 8.1 and 10 on my machines. (8.1 because of this). My username on one machine is 'Márton', my given name.
I love LaTeX and have been using the MiKTeX distribution. But recently MiKTeX has been surprising me with new (and often breaking) bugs every week.
At the core of the issues are two things:
-
MiKTeX's package manager. It has the ability to download packages on the fly, so if you're compiling a document and it has
\usepackage{foobar}
in it,
foobar.sty
(and all related documentation etc.) is automatically downloaded during compilation. There is also an updater tool that can update all installed packages and binaries.What the package manager doesn't really provide is dependency on a certain version. So if, right now, I freshly install MiKTeX, and start compiling a certain document, it will crash and give me errors about 'undefined control sequence' or 'attempt to index a nil value' because the on-the-fly downloaded latest packages use primitives that are only available with a newer version of the binary I'm running.
Also it's getting more and more frequent that the package manager or updater leaves the system in an inconsistent state. For example it installs a new version of some package in some folder under AppData, but continues using a six years old outdated version in some other location. Once a package gets renamed, the updater doesn't find it, and you have to launch a different app, the Package Manager GUI, perform an operation called 'synchronize package database', then find and manually uninstall and reinstall the problematic package. This week the updater cr*pped out completely when trying to update some cache. Some weeks earlier, my latest and fully updated distribution didn't work because the latest stable versions of two interdependent packages were not compatible.
- Some of the binaries and tools don't correctly handle Windows paths so they try to access C:\Users\Márton, C:/Users/M├írton/ and other such nonexisting folders. Or they actually create them and put stuff there, then throw an error when trying to find it later. One of the offending components for some time was the logger, which is included in all tools so whatever it is I was doing, the first thing I would see was an error message from the logger.
So I went to a tex.stackexchange chatroom to express my frustration (and those are some very helpful and kind folks over there, believe me), and they recommended I try TeX Live, the other distribution. I went and installed it. Here's how the installer looks like:
Talk about UX. WTF is the "PATH setting in registry"? Also the window allows resizing, but the content does not resize, and only the vertical scrollbar appears. Now the first thing I notice during installation is that it takes several seconds for this window to minimize after I press the minimize button, even on this relatively powerful machine. Turns out it's written in Perl/Tk.
The first thing I do after installation is check out the supposedly neat GUI tools that came with it. No luck:
I installed it in D:\Program Files. It did not even give me a F*CKING WARNING that it will F*CKING fail if I dare install it to a path with spaces. Even though C:\Program Files is the F*CKING DEFAULT LOCATION for programs on windows.
-
-
@marczellm said in LaTeX woes - Sympathy for the Blakeyrat:
I installed it in D:\Program Files.
-
Serves you right for not pretending the system is MSDOS 3.0 without compatibility for Long File Names?
-
Yeah, that's an irritating thing about TeXLive.
Still, it's no reason to go around agreeing with blakeyrat.
-
@marczellm TIL LaTeX runs on Windows.
-
-
@marczellm said in LaTeX woes - Sympathy for the Blakeyrat:
I love LaTeX
#1.
I used TeX and LaTeX back in college and it got the job done, but love it? I dunno.
-
@marczellm said in LaTeX woes - Sympathy for the Blakeyrat:
a path with spaces.
It slays me how much Unix-world software can't handle that. I remember using spaces in file names in Unix systems in 1988. Get your shit together, people!
-
@marczellm said in LaTeX woes - Sympathy for the Blakeyrat:
Talk about UX. WTF is the "PATH setting in registry"? Also the window allows resizing, but the content does not resize, and only the vertical scrollbar appears. Now the first thing I notice during installation is that it takes several seconds for this window to minimize after I press the minimize button, even on this relatively powerful machine. Turns out it's written in Perl/Tk.
But at least their graphic designers are on-the-ball. Look at that happy running jaguar(?) guy. He's got sneakers!
I went to the website looking for a larger version of that logo and... holy shit: https://www.tug.org/texlive/ there's a whole 'nother DailyWTF post in the website.
Sadly I could not find that icon, but I did find this:
So, uh, that's pretty good.
@marczellm said in LaTeX woes - Sympathy for the Blakeyrat:
installed it in \Program Files. It did not even give me a FCKING WARNING that it will FCKING fail if I dare install it to a path with spaces. Even though C:\Program Files is the F*CKING DEFAULT LOCATION for programs on windows.
I hope you reported back to that support group and called them all morons for suggesting a fix to your "fails if path contains unicode characters" problem by offering another product that fails if the path contains spaces. Which is worse.
BTW that error is a real shame because I have never wanted more to know what "the beamer class" is. (Like... BMWs?)
-
TRWTF is unicode characters in directory names.
inb4 pedantic dickweeds point out
[a-zA-Z0-9\-\._ ]
are all unicode characters
-
@JazzyJosh said in LaTeX woes - Sympathy for the Blakeyrat:
TRWTF is unicode characters in directory names.
TRWTF is "directory names"
-
@blakeyrat Beamer is a TeX system for doing slideshows/presentations. Check out http://web.mit.edu/rsi/www/pdfs/beamer-tutorial.pdf in a "real" PDF viewer program, like Acrobat or Preview.app. Use the spacebar or arrow keys to navigate.
It's actually pretty neat. Plus it separates content from style, so the same presentation would work with any Beamer theme.
-
@Captain said in LaTeX woes - Sympathy for the Blakeyrat:
Beamer is a TeX system for doing slideshows/presentations.
Yeah I didn't really care.
@Captain said in LaTeX woes - Sympathy for the Blakeyrat:
Plus it separates content from style, so the same presentation would work with any Beamer theme.
You realize PowerPoint does that too, right?
-
@blakeyrat said in LaTeX woes - Sympathy for the Blakeyrat:
Yeah I didn't really care.
@Captain said in LaTeX woes - Sympathy for the Blakeyrat:Plus it separates content from style, so the same presentation would work with any Beamer theme.
You realize PowerPoint does that too, right?
Speaking of not caring...
-
@blakeyrat But does PowerPoint easily let you enter complex mathematical formulae?
-
@JazzyJosh said in LaTeX woes - Sympathy for the Blakeyrat:
But does PowerPoint easily let you enter complex mathematical formulae?
Yes, it's called "copy and paste".
Creating the complex mathematical formula in the first place is a different story.
-
-
@blakeyrat said in LaTeX woes - Sympathy for the Blakeyrat:
Creating the complex mathematical formula in the first place is a different story.
Yes, and it's easier in LaTeX than in Word. The link between complex formulæ and programs is really quite close.
-
This post is deleted!
-
@dkf You may have mastered the art of double posting, but I opened two of the same chat window at once! Ha!
-
@dkf And for the 6 people on Earth who need to put complex formula into PowerPoints, I'm sure they're very happy with that.
Unless they have unicode characters in their names.
Or like to put programs in the folder specifically intended to contain programs.
-
@Magus said in LaTeX woes - Sympathy for the Blakeyrat:
You may have mastered the art of double posting
B•••••ming
DiscourseNodeBB… :(
-
@blakeyrat said in LaTeX woes - Sympathy for the Blakeyrat:
And for the 6 people on Earth who need to put complex formula into PowerPoints
There's more mathematicians than that. Maybe not so many working in healthcare computing, but in other areas definitely…
-
@blakeyrat's posts give me diarrhea and a desire to aim towards Washington.
-
@blakeyrat said in LaTeX woes - Sympathy for the Blakeyrat:
Creating the complex mathematical formula in the first place is a different story.
I always found the Office equation editor to be pretty easy to work with.
-
@FrostCat it's easy enough, but it looks like shit and is still missing a lot of notation. Math is more than equations. For example, people typically talk about variables as though they were proper nouns with names, like x. But they want special typesetting for them so they don't get lost in the text, and so it matches the displayed stuff (i.e., the centered formulas or equations).
Also, it can be slow/repetitive to write, since you can't factor out common quantities and save them to macros.
-
@FrostCat said in LaTeX woes - Sympathy for the Blakeyrat:
@marczellm said in LaTeX woes - Sympathy for the Blakeyrat:
a path with spaces.
It slays me how much Unix-world software can't handle that. I remember using spaces in file names in Unix systems in 1988. Get your shit together, people!
Well, as far as I know the basic principles of Unix file names have been for almost forever:
- A valid file name can contain anything except
/
or the null terminator - Wildcard expansion and parameter splitting are done by the shell. So if you write a program
tex
and someone calls it astex *.tex
in a folder with three.tex
files, you will find the file names in $1, $2 and $3 and you should not mess around any further with those parameters.
And I think herein lies the answer for the problem as well. The second point is not performed by Windows. If I understand it correctly, on Windows a program just receives one single string with all parameters and each program must make sense of that by splitting it into pieces, performing wildcard expansion and so on. Probably the MiKTeX/TexLive developers used a not-so-good library for that.
- A valid file name can contain anything except
-
@Grunnen said in LaTeX woes - Sympathy for the Blakeyrat:
Probably the MiKTeX/TexLive developers used a not-so-good library for that.
Then they should probably get a better library.
Or I guess they could tell Windows people "too bad", like so many OSS devs do.
-
@FrostCat said in LaTeX woes - Sympathy for the Blakeyrat:
Then they should probably get a better library.
There's several libraries (it's part of the C/C++ basic runtime), each of which works fine, but those runtimes are all different when you get into the edge cases.
-
@FrostCat Yes, they should.
Apparently (https://msdn.microsoft.com/en-us/library/17w5ykft.aspx) the MS C++ compiler contains some 'magic' to automatically split command line arguments and perform wildcard expansion correctly to provide
argc
andargv
as expected like on Unix. But that's only one half of the problem. TeX also calls helper utilities like bibtex and metafont. With the way Windows works, you'd also need a library to properly encode the command line parameters.I think this is a silly design, because apparently there is no real standard on Windows of how to encode / escape a parameter string, and if the calling program and the called program use libraries with different conventions, things go wrong.
Still, a TeX distribution could and should at least make sure that its own programs use the same conventions and can talk properly with each other.
-
@dkf said in LaTeX woes - Sympathy for the Blakeyrat:
but those runtimes are all different when you get into the edge cases.
A space in a filename is an "edge case"?
-
@blakeyrat Well, given that Windows provides no uniform, official way of distinguishing spaces in file names and spaces separating two file names...
-
@Grunnen said in LaTeX woes - Sympathy for the Blakeyrat:
Well, given that Windows provides no uniform, official way of distinguishing spaces in file names and spaces separating two file names...
Right, whatever.
I'm sure you'd expect me to say "the quote character, moron" but then you have it all prepared and you'd shoot back with "the quote character is uniform BUT NOT OFFICIAL! OH SHAZAM I GOTCHA BLAKEYRAT!" and I'm not going to play that stupid game.
-
@blakeyrat It's not so simple. How about file names containing the quote character? Oh, I know: just escape them with a backslash! But then, I assume that you can also escape a space character with a backslash. But no, that is not supported by the MS VC++ magic.
Anyways, I find it quite funny that you, of all people, are now insisting that some kludge which breaks in edge cases is good enough and that a proper and official API is overrated.
-
@Captain said in LaTeX woes - Sympathy for the Blakeyrat:
Check out http://web.mit.edu/rsi/www/pdfs/beamer-tutorial.pdf in a "real" PDF viewer program, like Acrobat or Preview.app. Use the spacebar or arrow keys to navigate.
This document looks butt ugly, and it seems I must be in cursor-navigation mode because the arrow keys don't do much except move a cursor around (seriously, how did they do that? I've never had that fun little vertical bar appear in a PDF before...).
I would also like to point out that printing out this (apparently "20-ish" page) "slideshow" is actually 58 individual pages.
(Adobe Reader X on Windows 7x64, because version wasn't specified. Apparently this one was last updated in 2011 zomg so unsecure!)
-
@Grunnen said in LaTeX woes - Sympathy for the Blakeyrat:
It's not so simple. How about file names containing the quote character?
Not allowed in Windows.
Windows isn't Linux, where file names are just sequences of bytes and you can make a file name consisting of ASCII 0x07 (Bell) if you want.
@Grunnen said in LaTeX woes - Sympathy for the Blakeyrat:
Anyways, I find it quite funny that you, of all people, are now insisting that some kludge which breaks in edge cases is good enough
When did I do that? Windows disallows quotes, I remind you.
Sure, Windows doesn't work the way I'd have designed it (I think it disallows far too many characters, frankly), but they seem to have this particular case closed.
ONCE MORE I POST THIS LINK: http://www.dwheeler.com/essays/fixing-unix-linux-filenames.html
-
@Tsaukpaetra said in LaTeX woes - Sympathy for the Blakeyrat:
This document looks butt ugly
Font choice. Some fonts really do look ugly. (Computer Modern is one of them, IMO.) Also, the rest of the theme isn't great. But neither are most of the default Powerpoint themes so whatever.
-
@Captain said in LaTeX woes - Sympathy for the Blakeyrat:
Plus it separates content from style
um, not really. Only superficially. For example, should I ever attempt putting stuff F*CKING NEXT TO EACH OTHER, and you're into half an hour of tweaking the column width values because 1) they're required and 2) it cannot determine them by itself.
Anyway, thanks people for cracking me up as always.
-
@Tsaukpaetra said in LaTeX woes - Sympathy for the Blakeyrat:
This document looks butt ugly
yep, that's why I started creating <plug> my own beamer themes </plug>
-
@marczellm said in LaTeX woes - Sympathy for the Blakeyrat:
it cannot determine them by itself
0.5\textwidth
not work for you?
-
@dkf said in LaTeX woes - Sympathy for the Blakeyrat:
0.5\textwidth
not work for you?not always. for example I want the image on the right to be bigger, but then it puts too much empty space between it and the text, so I end up doing something like putting a 60% and an 50% column next to each other, which, surprisingly, looks good. Except for the cases when text bleeds through, so...
-
-
@marczellm I recommend not screwing around with the size of anything until after you've written the content. It's ever so easy to get side-tracked into formatting stuff too early with a wordprocessor, and it's a mistake. The readers of your document will be mainly interested in the content, not the way in which you tweaked the kerning of the fonts you're using.
Unless you're writing for Designers. Which is about 0.01% of anything anyone writes.
The good thing about using LaTeX is that using it pretty much forces you to focus on the content. You can use Word that way (and I do; the best thing about the Ribbon is that it exposes styles better) but for anyone writing a lot, having to actually get the content done is by far the best way to be productive. We still encourage all our students to use LaTeX for their theses precisely because it gets them to do the stuff that matters; they procrastinate enough anyway, so the software shouldn't egg them on with their bad habits.
Also, BibTeX is better than Word's citation handling (which is fucking painful).
-
@dkf said in LaTeX woes - Sympathy for the Blakeyrat:
We still encourage all our students to use LaTeX for their theses precisely because
you're assholes who want to demonstrate to them exactly how difficult and frustrating computers can be?
-
@marczellm said in LaTeX woes - Sympathy for the Blakeyrat:
OPEN SOURCE DEVELOPERS WHY CAN'T YOU GET YOUR SH*T TOGETHER
I think it's not that oss devs suck. Free stuff can survive the market being bad, but paid bad stuff just go bankrupt.
-
@Grunnen said in LaTeX woes - Sympathy for the Blakeyrat:
Well, given that Windows provides no uniform, official way of distinguishing spaces in file names and spaces separating two file names...
You mean, like quoting the filenames?
-
@blakeyrat Yet the MS VC++ runtime does contain code to understand escaped quote characters. But not escaped space characters. And besides, I think it would be pretty normal if someone wants to use a quote character in a file name. So to me, it still looks like random limitations to cover up for other random limitations in unofficial 'magic' functionality.
-
@blakeyrat said in LaTeX woes - Sympathy for the Blakeyrat:
@dkf said in LaTeX woes - Sympathy for the Blakeyrat:
We still encourage all our students to use LaTeX for their theses precisely because
you're assholes who want to demonstrate to them exactly how difficult and frustrating computers can be?
Damn right.
Though the word you're looking for is "teachers".
-
@Grunnen The biggest problem is not that there's magical weird quoting required, but rather that the required magical weird quoting depends on which program you're going to send the string to. That is the truly awful part, because it means that it's basically impossible to hide the shit from users.
The other annoying thing about the command line with Windows is that the space available is fairly short and many fully-qualified filenames are pretty long. That's usually less of a critical problem in practice though, or where it is you can usually persuade someone to make a workaround for the program you're going to (such as taking a file with configuration or commands in it).
-
When I had to do something using Latex some time back, I gave up setting up my notebook to run the interpreter as setting the environment variables was such a pain. Then a quick googling got me this: https://cloudlatex.io/en/home. for being a lazy ass.