2

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.

Yorgos
  • 2,694
  • 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
  • @George What do you want your (La)TeX knowledge for? If you only want to author documents you don't need to know how (La)TeX works: it is enough to know how to use it. Following Lamport's analogy, LaTeX is a family car: you may only need to know how to use it to take you from one place to another, know how to check the basics, and leave the details to the mechanic. – jarnosc Jun 02 '15 at 02:01
  • Thank you everyone for your comments!!!! My purpose is to produce documents, rather than latex extension packages, so I will focus on latex :) – Yorgos Jun 02 '15 at 08:03
  • @George, if that's the case, you may also want to look the answer to this other question. – jarnosc Jun 02 '15 at 18:04

1 Answers1

2

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.

dgoodmaniii
  • 4,270
  • 1
  • 19
  • 36