10 ms·
Just don't try anything that isn't in your typical math paper. There are thousands of LaTeX packages, because they are all broken if you use them in a slightly
by 1wd 10y ago
Just don't try anything that isn't in your typical math paper. There are thousands of LaTeX packages, because they are all broken if you use them in a slightly unexpected way, so (reminiscent of JavaScript) a new package is created to "fix" it.
Tables? Here you go. Oh, you wanted nested tables? For that you need to switch to an entirely different package. Oh, and that one doesn't support splitting up tables over multiple pages. Maybe this new one can do it. But it doesn't support that other package you use. Maybe try that one instead. Oh, in that one you can't have ...
Or is that just me?
- zzleeper 10y agoNot just you. Tables are a huge mess, and for every package I add to my .tex file to fix a problem, two new problems pop up.. (oh you added package a at the end? It will fail, because package b loaded package C which defined the same macro names, and of course every macro is global...
- pvaldes 10y agoIn 15 years using latex I thing that I had problems with the order of packages in one or two cases (and they were documented, so it was my fault in fact). The situation that you claim is not common at all. All that you need basically for tables is booktabs and, in very specific cases, longtable.
- zzleeper 10y agoNot really... \usepackage{tabulary} gives me the X column type \usepackage{multirow} does what the name says \usepackage{longtable} is the most useful one \usepackage{booktabs} adds -toprule-, -midrule-, -bottomrule- \usepackage{threeparttable} adds titles and notes to tables \usepackage{threeparttablex} extends -threeparttable- to work with -longtable \usepackage{siunitx} allows decimal alignment \usepackage{array} some table column types require arraybackslash \usepackage{varwidth} helps in setting a max column type \usepackage{ragged2e} because \raggedright used in table footnotes would otherwise break hyphenation \usepackage{afterpage} defers typesetting of the longtable environment to the top of the next page \usepackage{etoolbox} helps to write monospace numbers in tables And then I add all the newcommands, and end up with pretty tables but very fragile wrt changes in the latex environment
- pvaldes 10y agoI agree that multirow is a must. You can add it to my former list. Otherwise you can easily avoid most of the other packages (if not all) in the 99% of the cases with some common sense, good style practices, and basic latex. If you think that you need monospace numbers, X type columns, special decimal alignments and hyper-complex big tables with a lot of footnotes placed inside the floating environment, you are probably overthinking. Tex will allow you to have it in any case, even if is not really necessary, but it comes at a prize.
- pvaldes 10y agos/ I thing that / I think that /
- deleted 10y ago[deleted]
- shp0ngle 10y agoYep. It's exactly like that for me. And the packages interact with each other in surprising and unexpected ways, and you will almost always end up researching some strange 80s-era TeX commands that are still in there. And nothing is well documented and you will spend way more time on it than you should. But it's still better than writing it in *Office, I guess.
- zuzun 10y agoMost people don't want to learn about the LaTeX (resp. TeX) internals or typesetting in general, they just want to produce documents. Including a package and using its functionality is the easiest way to get started, but sooner or later you'll hit a wall. Writing LaTeX documents becomes easier once you understand the basics: plain boxes, positioning, macros, lengths, counters. Granted, you need to have a fair share of Donald Knuth's enthusiasm for typesetting, but it will be worth it. Tables will always be a mess, though.
- akytt 10y agoThere are cool things happening around compiling markdown to LaTex. Especially funky things happen when you mix in R as well. Taking the strong sides of all three would be lovely.
- yellowapple 10y agoGot any good examples? I'm looking for pretty much the same thing (not necessarily involving R, but definitely something that'll let me convert Markdown to LaTeX with relative ease).
- tnecniv 10y agoTypora was posted on here a few weeks ago. It has a LaTeX export option, but I haven't tried it yet since it also just exports directly to PDF/HTML.
- phreeza 10y agoI can recommended pandoc
- Davidbrcz 10y agoHave a look at pandoc. pandoc is a swiss-army knife for converting a markup format to another. It does for sure MD -> latex
- supergarfield 10y agoThis is also very true in my experience, and seems to be in large part caused by the absence of proper namespacing, scoping, and general rules about how packages should be implemented to minimize bad interactions. I feel like this is a significant shortcoming of Latex, and it really is a mystery to me why no one has seriously tried to write an alternative typesetting system. I know Latex is good enough for lots of applications, and would require a lot of work to rewrite, but I can think of freely available projects with less glaring shortcomings for which people have started successful competitors (Firefox -> Chrome, KDE and GNOME, gcc -> llvm, etc.).
- daurnimator 10y agoWhat about SILE? http://sile-typesetter.org/ http://sile-typesetter.org/
- scooke 10y agoWhat about it? If you use it could you say a bit more before I click the link please?
- massysett 10y agoThere are plenty of alternatives. LaTeX is merely a TeX macro package. There are others, such as ConTeXt. Also, if you hate the pick-a-package mentality, there are LaTeX packages that attempt to do it all in one package--Memoir is one. You can elect to opt out of fancy layers on top of TeX and go with Extended Plain TeX or even just writing in plain TeX, which apparently Knuth did. Don't like TeX at all? Try roff (or, more realistically these days, groff.) There is a package of roff macros called Mom, which now comes with groff. In my experience roff is a better UNIX citizen than Tex & Co. I can put roff in a pipeline and it will do what I expect. TeX programs generally do not like to be run in this fashion. Perhaps as a consequence, it seems roff is hard to find outside of UNIX (roff is sort of a UNIX artifact) while TeX and friends run on Windows. I have slapped together a few utilities (I call one "latexstream") so that I can use LaTeX from a shell prompt without dealing with a bunch of temporary files scattered everywhere. My needs are somewhat simple: I have a system that prints recipes and grocery lists. Nothing beats paper for a task like this. (I see some people using iPads in the kitchen. Forget that. I'm not taking greasy fingers to an expensive tablet.) Generally I am not happy using LaTeX for this. I actually do not want to separate content and presentation. I don't like having to muck around with packages to get what I want. And I don't like dealing with huge TeX distributions when I just need a few things. But every time I look into all the alternatives I outlined above, I wind up sighing and sticking with LaTeX. None of these alternatives have the community that LaTeX has. I can do relatively simple things in LaTeX (like columns done in particular ways) that would require me to write a lot of code in plain TeX or in roff. Yes, TeX distributions are large, but I am now figuring out how to pare them down to just what I need. (Even though TeX Live suggests you install the whole thing. That's gigabytes. I'm on a smallish SSD. No thanks.) So folks definitely have come up with alternatives to LaTeX. But if most folks are like me, I imagine they look at these alternatives and conclude that LaTeX with a gazillion packages works well enough. [edit] forgot yet another alternative: Apache FOP, which uses XML. Some Docbook tool chains use it. IMO the output from those never look as good as the tool chains that ultimately use TeX.
- chestervonwinch 10y agoNo it's not just you. It's especially frustrating for those with some html background where an easy (but frowned upon?) hack is to just put everything in nested tables.
- 1337biz 10y agoSame here. I really tried using it for a few weeks. But it is just a waste of time unless your writing consists of 90% math formulas and you are only collaborating with similar minded people.
- akytt 10y agoIt's not that bad. I've been using LaTex for everything for the past five years and never really bump into things I can't do any more. I've learnt that when people really want to do stuff, they fix the packages. Thus, when things do not work, most of people do not really need it. If so, do I? That's not to say the learning curve is not similar to the cliffs of Dover. Because it is. And stackoverflow is your friend. Yes, you can't do everything but you can do most of things you are meant to do.
- godelski 10y agoSame. Definitely not trivial to use, but generally I can get anything I want to get done with a quick google. I'm surprised at the hate on this website. I do a lot more googling for coding. I get if you're doing something exotic in LaTex, but for writing a paper, a presentation, or resume, it is fairly straightforward. The key to easily writing LaTex is making a few skeletons and then just reusing them.
- tnecniv 10y agoThe real problem with LaTeX is that it doesn't try to make itself friendly. It gives horrible errors that are big headaches for newcomers, and setting up your environment can be a pain. Early today, someone set me a document and I spent 15 minutes finding and updating the right packages until it built.
- godelski 10y agoThat is probably my biggest qualm with it, and really only problem I face. That there are a lot of libraries that do the same thing, but are incompatible. If there were standards it would solve a lot of problems.
- akytt 10y agoIt's not that bad. I've been using LaTex for everything for the past five years and never really bump into things I can't do any more. I've learnt that when people really want to do stuff, they fix the packages. Thus, when things do not work, most of people do not really need it. If so, do I? That's not to say the learning curve is not similar to the cliffs of Dover. Because it is. And stackoverflow is your friend. Yes, you can't do everything but you can do most of things you are meant to do.
- dreamcompiler 10y agoIt's definitely not just you. There's no such thing as LaTeX. There are 2^1000 different things called LaTeX, all subtly incompatible with each other. I suppose LaTeX can be made to work as an authoring tool where you're the only author and you're producing PDF from it. But for sharing documentation it's hopeless. I've never been able to compile somebody else's LaTeX source. There's always some weird library dependency I don't have. Whenever I find a github repo whose documentation is only available as LaTeX source, I abandon it and look for another repo that'll get the job done.
- ozborn 10y agoThere are at least a couple of different online LaTeX editors out there that make collaboration pretty easy and take compile worries out of the equation. I've used both ShareLaTeX and Overleaf with success, but there are other ones out there too.
- ajarmst 10y agoIn my experience there's two ways to do it: (1) use the house style (and standard auxiliary packages) of whatever publication you are writing for and/or (2) develop your own style files that use the subset of the 'thousands' of available packages that suit your needs and uses. I've got a small set of .sty files that I've been developing for decades to suit my own needs. When I needed a pseudocode notation for some papers on algorithms, I played with a half-dozen or so of the top contenders before settling on one, integrating it into my other macros, and writing a few of my own to make it easier to work with. No-one should learn LaTeX for a single paper, or only a few. That's like learning C for a single program:- sure, you can do it, but it seems a lot of work for small result. I treat LaTeX as the environment in which I develop my own ideosyncratic publishing style (that can now be shared with others), not as a giant garden that everyone is supposed to be simultaneously using all of.