Recently I finished my thesis in LyX and this was my first steps into latex (even indirect steps).

Even though LyX does a lot of thing automatically, when you want to do something yourself, then things turn to be more complex.

So, I was thinking to start learning TeX from scratch.

I know that this topic has highly discussed here and on other forums/groups/etc. However, my question is which of the above alternatives do you believe it's the most appropriate for a beginner who is not familiar with any programming language.

PS: I intended to start with LaTeX. However, I find too complicated to understand LaTeX macros.

closed as unclear what you're asking by Mico, Sean Allred, Paul Gessler, Werner, Malipivo Jun 2 '15 at 4:36

Please clarify your specific problem or add additional details to highlight exactly what you need. As it's currently written, it’s hard to tell exactly what you're asking. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • 2
    Do you just want to learn (La)TeX? Then read Knuth A or TeX by Topic (free). Try to write some simple macros using these books. I can't see what Perl or Python has to do in this respect. – topskip May 28 '15 at 12:43
  • I want to learn to produce documents (e.g. articles, books, reports, presentations, etc) by using tex code. However, latex macros seems to me complicated, so I wonder if writing in python/perl language is more "simple" – Yorgos May 28 '15 at 12:53
  • 6
    @George I think you need to be clear if you want to learn TeX (typesetting with minimal structural support) or LaTeX (a more structured approach built on top of TeX). I don't see that using another language is going to help you here: you'd still need to output the appropriate (La)TeX for typesetting, so still need to know the 'TeX part'! – Joseph Wright May 28 '15 at 13:01
  • 8
    Your question is not very clear, python my be simpler or more complicated than tex macros depending on your programming tastes but python doesn't typeset documents so it is not clear how it helps (there are bridges between python and tex but two-language programming is rarely simpler than programming either language separately). Most people typesetting documents with latex don't program tex macros at all, they just markup the text of their documents, so if your aim is to produce documents rather than produce latex extension packages your question seems misplaced. – David Carlisle May 28 '15 at 18:25
  • 1
    I suggest learning LaTeX for document markup, as you try to do more complex things you will start working on small macros, based on what other people (e.g. here) have done. And that's where many users stop, including many with programming skills. If you end up writing complex macros, great. If you end up writing python to which outputs LaTeX, great. But neither is a goal in its own right. (btw I learnt python and LaTeX independently and almost simultaneously). – Chris H May 29 '15 at 15:26

If you want to learn TeX, I'd suggest just learning TeX. Between the LaTeX macros and the power of plain TeX and TeX primitives, you can do pretty much anything you want.

You can use other languages to output a sort of "idiot's TeX," where you keep track of counters and do hard-coded formatting in your programming language of choice rather than allowing TeX to do what it's designed for, but as @David Carlisle already noted, you'll need to know some (La)TeX for that to work, anyway, and increasing the complexity of one language by adding another to it is generally a poor solution. In the vast majority of cases, there will be a package to do what you want; in the vast majority of the rest, TeX will be able to do what you want.

There's really no substitute for purchasing The TeXBook if you want to do this, and if you do the exercises you'll gain proficiency with doing lots of really interested things in TeX. TeX by Topic is also an excellent resource. Finally, because LaTeX has already automated many of the things that most people want in a typesetting system, and because there's such a huge body of packages to accomplish almost any conceivable task, you may want to invest in The LaTeX Companion, and of course you'll want to watch CTAN for interesting resources.

LuaTeX is apparently the Way of the Future (though LaTeX3 looks interesting, as well), so if you're going to invest in learning a programming language for the purpose of typesetting, I'd suggest Lua. Lua has the benefit of being pretty simple, as well. But for typesetting tasks, learn a typesetting language. That's (La)TeX.

Not the answer you're looking for? Browse other questions tagged or ask your own question.