[Tex/LaTex] Minipage, columns, tabular: differences in applicability

beamercolumnsminipagetables

This \parbox vs. \minipage post helped me to understand the main reasons to use either \parbox or {minipage} for placing material side-by-side ({minipage} is usually the winner). I have a similar question but for the {minipage}, {columns}, and {tabular} environments. In particular, what are the differences in applicability and when do you want to use one over the other when placing material side-by-side?

The rule-of-thumb I'm using now: {columns} for beamer documents, {minipage} for all other documents, and {tabular} when there's special focus vertical rules. (Having some rule-of-thumb is very helpful for me because I'm still a beginner with this stuff and am a little overwhelmed by the available options)

Best Answer

In short: this three environments are in the general case completely different.

minipage creates a mini-page, i.e. you can place several paragraphs in a box and even have footnotes in it which are shown at the bottom. It is very often used to change the text width for some material and to avoid that it is broken over a page. It is also the way to draw a frame around paragraphs etc. It can be used to place two paragraphs or other things like images and tables side by side, but this is just one of its applications.

columns is a beamer environment and good for creating, aeh, columns! Like having bullet points on the left and a graphic on the right. For normal documents use the multicols environment from the multicol package instead.

tabular is an environment to create tables, usually with multiple columns and rows. It can also be used to place other material like images or other whole tables in an tabular form. You can put vertical lines in it, but this is actually not recommend because it is considered bad style (see the manual of the recommended booktabs package).

I can see one common application, which is to place things side by side. In this case you could use all three (only in beamer), but normally minipage is used when you need vertical mode to add a caption (example) or tabular if you need are more complex design but don't need vertical mode (example). Anyway, in theory almost any combination of them is possible.