# How to practice LaTeX?

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.

-
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 –  texenthusiast Apr 22 '13 at 3:27
Even better perhaps (for learning): Read and understand questions and especially answers that the gurus here post. –  doncherry Apr 22 '13 at 3:50
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. –  Peter Grill Apr 22 '13 at 4:55
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 :) –  Eren Güven Apr 22 '13 at 9:39
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 '13 at 23:32

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.
-
Welcome to TeX.sx! –  mafp Apr 22 '13 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 '13 at 14:58
I like the idea of transribing public domain books. Is there a common platform to find and share such documents? –  TonioElGringo Apr 22 '13 at 17:43
@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 '13 at 19:05
@Tonio, check out Project Gutenberg at www.gutenberg.org. –  alexis Apr 22 '13 at 19:06

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.

-
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" –  Jamie Taylor Apr 22 '13 at 10:37

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:

• 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.

• 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$}
]
\end{axis}
\end{tikzpicture}
\end{document}


And we have our result:

Cool, isn't it? :)

• 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. :)

-

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.)

-

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.

-
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). –  Michael Kjörling Apr 22 '13 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. –  Sean Allred Apr 22 '13 at 9:58
@SeanAllred Not the whole book. As it is written: "some chosen pages". –  Przemysław Scherwentke Apr 22 '13 at 17:09

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! :)

-
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 '13 at 18:16
@vonbrand: I wish(ed) I had been in that set! :D –  Count Zero Apr 22 '13 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 '13 at 18:35

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?

-
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 '13 at 16:57
@gekkostate Considering aperiodical.com/2012/04/…, I would think so, but I cannot say for certain. –  Torbjørn T. Apr 22 '13 at 17:46
@gekkostate, you'd have to ask them. –  vonbrand Apr 22 '13 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 '13 at 18:19
@gekkostate: In my experience, Project Gutenberg is somewhere between reluctant and strongly disinclined to accept LaTeX files for books that don't contain a fair amount of mathematics or other material that can't be rendered well in HTML. To my knowledge, PG is also unwilling to archive and maintain multiple files for a single book, e.g., books typeset in a variety of text block sizes to accommodate different ebook readers and previewers. (Neither claim is a statement of PG policy, just my experience as a "contributor" to PG.) Andy –  user86418 Jul 8 '13 at 16:06

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.

-

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.

-

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.

-

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.

-
Welcome to TeX.sx! –  Peter Jansson Apr 22 '13 at 22:14

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.

-
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 '13 at 10:33
I should of course stress that I did not return them to Gutenberg, but distributed them personally! –  mjjzf May 31 '13 at 9:44