62

With many programming languages, you have the opportunity of practicing the language by doing problems or developing programs that will do certain things. With LaTeX, however, you can't exactly do that because it is a typesetting language and therefore, requires some sort of material to be practiced with. I understand there is the lipsum package but what are somethings that a person can do to practice their LaTeX skills without having the need for material? For example, practice for building various tables, practice for doing tricky math equations etc.

8
  • 23
    simple short answer: Post questions and answers at TeX.SX which leads to working on .tex and .sty files more and more and thereby .dtx. Temporarily forget existing green before answering alternative & wild approaches.Good Luck Apr 22, 2013 at 3:27
  • 4
    Even better perhaps (for learning): Read and understand questions and especially answers that the gurus here post.
    – doncherry
    Apr 22, 2013 at 3:50
  • 21
    Best way to learn is to find something that requires you to use LaTeX. Only when you encounter actual problems that you must solve, will you really learn it. If it is something that is optional then it is more difficult to learn the details. Apr 22, 2013 at 4:55
  • 2
    Not an answer but one small advice. Avoid copy-pasting from other documents. I've probably used LaTeX for 50+ documents and I can't write anything from scratch right now because I always copy-pasted my other templates :) Apr 22, 2013 at 9:39
  • 1
    There are few good online latex editors, where one can type in Latex code and see the result right away. They make it easy to quickly learn Latex this way since no download and installation and any setup is needed. Just google "online latex" and you will some. No setup is needed. You just type something and see the result below that. This is what I do something to check something quickly. Btw, for me, when I write something with lots of math in it, I use Scientific word (it is a GUI interface which generates Latex, like Lyx). If the document have little math, then I using text editor.
    – Nasser
    Apr 22, 2013 at 23:32

13 Answers 13

63

As several people have said, the only way is to write and typeset documents in LaTeX. Calculating the first 30 primes might make you a better programmer, but it is doubtful if it will make you a better LaTeX user, since it is of dubious utility to solve a problem for which LaTeX is not the right solution. If you're not sure what to write:

  • Do your homework, if you have any, in LaTeX.
  • Make notes and do scratch work in LaTeX rather than on paper. You will get quick at this fast, and will start to think of macros that are useful for you in particular.
  • An extension of this is to write a guide to whatever you're studying in LaTeX. This is a good learning discipline, as you will be checking the depth of your understanding if you have to explain to an imagined reader. Post it online and you might get feedback too.
  • Rather than recreate coursework assignments as one answer suggested, do something more useful. Find papers from the pre-LaTeX era and transcribe them. This makes them more accessible than dead-tree or bitmap scan formats (easier to access and share, easier to annotate/fix typos). Anything pre-1900 and quite a lot of early 20th century should be out of copyright (but check if you want to share your work and care about the legality) and can be shared online. There is a lot of golden-age mathematics that could be interesting to read included in this.
  • If you know (especially) French, German or Russian, you could also translate old papers into English. If not you could translate classics into your own language. Post them somewhere searchable and it will inevitably be useful to someone.
  • Write a book or an article on any subject in LaTeX or TeX. Even without math formulae there are hundreds of typeseting concerns that you might have to figure out.
  • Write a tool to generate LaTeX documents automatically from various forms of data. Eg 'turn your WordPress blog into a book', 'add an Excel table to your LaTeX document'. If useful and polished, you can make it into a package. Even if not, you will learn loads about document structure and edge cases.
  • Less hardcore: take your blog (or someone else's blog, or your fifty favorite StackExchange questions and answers, or a Project Gutenberg book, or whatever source documents) and turn it into a book manually, by copy-pasting and converting all the entries and creating the ToC, intro, appendix yourself.
  • Learn literate programming and combine that algorithm to calculate the first 30 primes in your favorite language with an explanation of why it works in LaTeX. Or make literate whatever programming project you're working on already. It's a good way of writing programming tutorials.
6
  • 4
    Welcome to TeX.sx!
    – mafp
    Apr 22, 2013 at 9:34
  • Thanks for the tips, I will be sure to follow some of the suggestions that you have provided. I was not aware you could calculate the first 30 primes in LaTeX. I am a Java programmer so I might not have lots of trouble with that but it will be really interesting to try!
    – Jeel Shah
    Apr 22, 2013 at 14:58
  • 2
    I like the idea of transribing public domain books. Is there a common platform to find and share such documents? Apr 22, 2013 at 17:43
  • 2
    @gekkostate: Oh, you'll have lots of trouble! TeX is very powerful, but it's not meant for general-purpose programming. As jwg writes, find something else to learn for now.
    – alexis
    Apr 22, 2013 at 19:05
  • 5
    @Tonio, check out Project Gutenberg at www.gutenberg.org.
    – alexis
    Apr 22, 2013 at 19:06
41

I personally found that after I knew the basics, just using LaTeX for writing assignments and papers, then using it to create presentations, then my CV, ...

My natural curiosity as a programmer (as well as my tendency to procrastinate) led me to try and create shortcuts for the things I used most. This led to reading package documentation. Others already created packages to do the things I wanted. CTAN contains loads of interesting stuff, usually with good documentation.

Eventually I had a feeling for what was possible. And when a package I needed didn't exist, I wrote my own. All of this happened rather naturally over the course of a few years.

Of course, at all times there was this website, with its great community, to answer my questions. Also, I eventually read the TeXbook by Knuth. He's an excellent author.

In short: Learn by doing. It's not original, but there you have it.

1
  • 1
    I'd have to agree with this. So much so that I went out of my way to find documents/presentations/whatever that I could created in LaTeX. At least, ones that would be created in "more traditional tools" Apr 22, 2013 at 10:37
35
+50

I tried to restrain myself from posting an answer, but here it is.

When I read the title of the question, "How to practice LaTeX?", something came to my mind: Pokémon. I know it might sound strange, but I'll try to explain this reasoning.

I played Pokémon as a kid. It was not amongst my favourite games at all, but the mechanics were quite interesting. And there was one particular trainer phrase that triggered my memory, something along these lines:

You are a trainer too, aren't you? Let's practice!

Wait a minute, now. You don't practice a battle. That's the basic foundation of the game. I think the same applies to LaTeX:

You don't practice LaTeX. You for realsies LaTeX.

Using LaTeX is much like playing Pokémon - we need to gain experience from "battles", that is, problems we can solve by using our skills. :)

Of course, we always begin our journey with a starter Pokémon:

  • The grass Pokémon Using LaTeX for documents: The reference here is the grass-type Pokémon known as Bulbasaur. This "starter" is perfect for beginners. When we learn the basics of LaTeX, we can create beautiful documents in a blink of an eye! No trickery is needed at this stage, things "just work". We will be able to tackle most of our tasks by simply using our LaTeX knowledge. We have great resources, like Frank's The LaTeX Companion, Stefan's LaTeX Beginner's Guide, and Marc's LaTeX and Friends. Let's see an example:

    \documentclass{article}
    
    \begin{document}
    Hello world!
    \end{document}
    

    We have our first document, yay! What else can we do with it? Let's add more packages and have more fun! When in doubt, let's browse the documentation, it's our PokéDeX.

  • The water Pokémon Using LaTeX for automating tasks: Now, we might opt for a more challenging partner, in a reference to the water-type Pokémon known as Squirtle. In this stage, we can use LaTeX for more than just a beautiful document, how about automating some tasks? Print a sentence 10 times, check if we are in an odd page, or even plotting our own data!

    \documentclass{article}
    
    \usepackage{ifthen,changepage}
    \usepackage{pgfplots}
    
    \begin{document}
    
     \foreach \i in {1,...,10} { 
        I like ducks (\i)\par
    }
    
    \bigskip
    
    \checkoddpage
    We are in an \ifthenelse{\boolean{oddpage}}{odd}{even} page!
    
    \bigskip
    
    \begin{tikzpicture}
    \begin{axis}[
    xlabel=$x$,
    ylabel={$f(x) = x^2 - x +4$}
    ]
    \addplot {x^2 - x +4};
    \end{axis}
    \end{tikzpicture}
    \end{document}
    

    And we have our result:

    Output

    Cool, isn't it? :)

  • The fire Pokémon Using LaTeX as a programming language: The last starter, as its counterpart Charmander, is the most difficult Pokémon for beginners to use. Not because it's difficult per se, but it might require some skills we are not familiar with just yet. Patience is a virtue here, and we can see the benefits of this choice later on, when we will be able to solve complex problems. Thanks to the great effort of the LaTeX3 team, we now have the amazing expl3 which helps us to unleash the power of our inner lions. Just to quote Bruno's message in the chatroom today:

    Just implemented an interpreter for a subset of Forth using LaTeX3 this weekend :-). Eventually, I'm hoping to implement PostScript too.

    It's worth the effort to learn it. :)


I'd say it would be great for all of us to have these three starter Pokémons in our team. Of course, it's a matter of personal taste, it depends on how everyone sees LaTeX. :) In the game, our Pokémons evolve with time, battle after battle. In LaTeX, we only will write better code with time, attempt after attempt.

Of course, we hope someday to reach the status of TeXperts and own our Mewtwo's, like egreg and David. :)

Mewtwo

26

I learned LaTeX while writing my dissertation. Things which helped me a lot:

  • Knowing a programming language. This is not because I did fancy programming with my LaTeX code, but rather to understand error messages and for trouble shooting. Friends of mine who don't know how to program had much more trouble with error messages.

  • Knowing about typography. It might seem odd because LaTeX is supposed to take that out of your hands, but even with LaTeX you can create really ugly documents if you don't know subtilities of typographic style. This holds true especially for equations. There are a lot of good general books on typography, so if you want to practice, start by making your documents look great. Personally, I really like old (early 20th century) scientific papers and I tried to recreate the style for my thesis.

  • Asking stupid questions on TeX.SE.

(Version control can help you with this. Just search for git.)

18

It is a good question. There are at least two paths.

  1. LaTeX, and especially TeX, as a programming language. Then you can e.g. try to find the first 30 primes (and then compare your solution with Knuth's version), try to make a calendar, in which Easter is computed, and so on.

  2. LaTeX as a typografic tool. In this case you need a good source, e.g. well-written mathematical book. An attempt to notice and to code all subtleties from some chosen pages is a good challenge. In this case you need a specialist, who can verify your work. A loop ends, when your work has the same structure as your source.

3
  • 1
    The suggestion to take some source material you already have and work to copy it is a good one. Practice really does not have to be original in any way. Just don't distribute your creation to anyone who does not already have the source material, and be careful even about those who do (potential copyright issues).
    – user
    Apr 22, 2013 at 7:28
  • I would be careful about transcribing books. While it may be very good practice, you could get into a lot of trouble if your source falls into the wrong hands. Apr 22, 2013 at 9:58
  • 1
    @SeanAllred Not the whole book. As it is written: "some chosen pages". Apr 22, 2013 at 17:09
18

I don't know what your background is, but there are at least a couple of things you could do. It also depends on what exactly you intend to specialize yourself in. You could be a typesetting guru, for whom no mathematical formula is difficult, then you could be a presentation expert, if you focus on beamer and then again you could be a graphics wizard, making amazing 3D images (there again you have several tools to choose from). And of course there are lots and lots of other possibilities... I'm barely scratching the surface here.

If you are a student, you could try to create 'clean'copies of your handwritten notes taken in class. I f you have enough time on your hands and are that committed, you can offer your teacher to typeset the notes for him/her. (Lucky teacher!)

If you are in the industry, you could typeset application notes, manuals, guidelines that are not changed too frequently and have rather wide circulation in- or outside the company. You could also build a framework for taking minutes with (La)TeX and friends! You could also redo the corporate presentations introducing the company for instance. You could redraw the company logo in TikZ.

If you are just a hobbyist, just pick a book from the shelf with fancy things in it, like text flowing around images, alternating one- and two-column layout, fancy drop caps or chapter headings or... or... or... A suggestion would be a geometry book. That can be challenging to recreate, so as to actually have code only.

And of course, as many others suggested, visit TeX.SX, read and post questions and answer them (even your own ones, if you find an interesting solution). That's how I learned a lot of things, too.

I hope these are sufficient ideas to get started! Good luck! :)

3
  • I am in the set of "lucky teachers" alluded to above. i completed the notes by the student, fixing errors and such. The result grew into a set of detailed notes (much more than the class allows)...
    – vonbrand
    Apr 22, 2013 at 18:16
  • 1
    @vonbrand: I wish(ed) I had been in that set! :D
    – Count Zero
    Apr 22, 2013 at 18:30
  • Simple: Give extra points for a clean/the cleanest transcription of each class, starting with a template (for example, "it will be \included from here")... don't worry about "grade distortion", if they worked through the material of the class for transcribing, they did learn it ;-). A lot of cleanup/uniformizing/"my own LaTeX source style" work remains, though.
    – vonbrand
    Apr 22, 2013 at 18:35
15

One of the reasons LaTeX is so highly regarded is the beautiful typesetting of books. If you want to practice I think Project Gutenberg is a good source for beautiful literature where the typesetting is often in a pretty sad state. Here you can not only practice but produce something worthwhile.

Just hacking LaTeX for the sake of it sounds not so useful. There are many small tricks that you might need in one situation or the other but what is the benefit of learning details that you might never use?

6
  • If I take a book from Gutenberg and convert it into LaTeX, will Project Gutenberg accept it or at least consider it?
    – Jeel Shah
    Apr 22, 2013 at 16:57
  • @gekkostate Considering aperiodical.com/2012/04/…, I would think so, but I cannot say for certain. Apr 22, 2013 at 17:46
  • @gekkostate, you'd have to ask them.
    – vonbrand
    Apr 22, 2013 at 18:17
  • "Just hacking for the sake of it" leads nowhere. Set a goal, and learn what you need to get it done. Easy, useful goals: Typeset your notes for current classes, write homework in LaTeX (even if not asked to), take some text that interests you and rewrite it in LaTeX (if you grab something typewritten, you'll find that you do lots of things very differently than the original).
    – vonbrand
    Apr 22, 2013 at 18:19
  • 1
    @AndrewD.Hwang: That is really unfortunate. Who really enjoys reading the HTML version? I understand that a PDF without reflow is not the solution for every case but to actually disapprove of it seems silly. You can still put it on your personal homepage though.
    – Alexander
    Jul 9, 2013 at 13:28
13

What I usually do is the following: I check out new packages or packages with interesting names and just look what they do. I also create small minimal examples and put them in my Subversion repository.

If I then ever encounter a situation where I need a certain functionality, I have an example at hand.

10

I actually went back through a good number of my Masters classes-in which I knew the professors were using LaTeX to create handouts and course lectures-and tried to recreate the same documentation/layouts that they did. I found that to be very productive as there were so many different courses in my Operations Research program containing all sorts of interesting problems. Took a bit and allowed for a good amount of experimentation.

7

I practiced my LaTeX math skills by editing questions and answers on the Mathematics Stack Exchange. As a bonus, I managed to rake up over 400 reputation while only answering a single question.

1
7

I figure I will add in my two cents. As others have suggested and also practice, I do all my homework in LaTeX. Where I gain the most practice and knowledge though is turning my notes into LaTeX documents. As a graduate student, I don't know what classes I will be the TA for or hold recitations for so having them typeset is really useful. There is one caveat. I never work on my notes during the semester. I have found that working on my notes while taking classes will

  1. hinder my performance in class or
  2. hinder my quality of notes.

Therefore, I only work on my notes during the breaks. By doing this, I can make the most out of typesetting them in LaTeX while I also gain much needed LaTeX practice. I can take the time to work on fancy TikZ pictures and formatting techniques that would be too time consuming during the semester. Additionally, I end up learning more about the subject. This happens because I add in detail that wasn't present in the notes and example problems.

For instance, I am working on some notes now. Since I have no academic responsibilities, I have the time to ask numerous question here and hone my skills.

And the final way I practice is ever I attempt to answer questions when I think I am capable of doing so.


Here is a link to the notes I just finished (just missing a couple of figures I am still working on):

http://ubuntuone.com/1WzNHPjKm1hvMsfjlpghXR

So this is how I find ways to practice LaTeX.

3

For basic practice, I encourage getting texts from gutenberg.org and typesetting them! There are many texts available in my native language (Danish), but they are obviously pure text - since this is the point - and I have LaTeX'ed some of them and made them available. I did this as part of writing an article and doing in instruction video on LaTeX.

2
  • I have tried to find this out but once you convert them into LaTeX how do you show them to the gutenberg people? Like, is there a group that is responsible for accepting the converted text? If you are aware of these steps then please provide them.
    – Jeel Shah
    Apr 24, 2013 at 10:33
  • 2
    I should of course stress that I did not return them to Gutenberg, but distributed them personally!
    – mjjzf
    May 31, 2013 at 9:44
1

Here's a good website I managed to find. Just scroll down and you'll see an input bar to put your syntax.

5
  • 2
    Welcome to TeX.SE. As it stands, your posting isn't all that useful to readers, since it doesn't provide much in terms of guidance as to what may be found in the website you're providing a link to. It would be helpful if you provided a short write-up of what readers may expect to find if they click on the link you're providing. That way, you're not wasting their time.
    – Mico
    Mar 13, 2016 at 7:54
  • The link you've provided appears to be broken. Can you fix it?
    – Mico
    Mar 27, 2017 at 16:28
  • Still works for me. But here's another link from the Math Meta Stackexchange on LaTeX.
    – user100557
    Mar 27, 2017 at 19:42
  • And here's another website where you can "practice" LaTeX.
    – user100557
    Mar 27, 2017 at 19:44
  • Well, I continue to get the following message: "Error 403. (1) You have exceeded your access quota to forkosh.com. (2) Further access has been forbidden. (3) To be reinstated, email request to [email protected]". Not the most pleasant error message, is it?! By the way, I assume you know that MathJax and LaTeX are rather different programs, right?
    – Mico
    Mar 27, 2017 at 19:49

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .