Tutorial on positioning

You mention that you're a newcomer to LaTeX. Welcome! It sounds to me that, in order to develop some basic familiarity with LaTeX-based versions of the document building blocks you express interest in, it may be a good idea to start with a solid introductory tutorial into many LaTeX-related matters. Perhaps the best-known such tutorial is Tobi Oetiker et al.'s The Not So Short Introduction to LATEX2ε, most recently updated in 2011. [Update Nov. 2020: The document was most recently updated in March 2018.] This document is so well known and so highly regarded that it's been translated into about two dozen languages!

Among the other LaTeX tutorials for beginners that are available online, I can also recommend Nicola Talbot's LaTeX for Complete Novices and Andrew Roberts's Getting to Grips with LaTeX.

The recent books by Marc van Dongen, LaTeX and Friends, Springer, 2012, and Peter Flynn, Formatting Information: An Introduction to Typesetting with LaTeX, Silmaril Consultants, 2011, may also be of interest to you, particularly because they both stress matters of document organization and how to implement them using LaTeX.

Happy LaTeXing!


latex, outside of drawing environments, positions things things with a sort of "rubber band" model:

-- suppose you have a set of objects {a, b, ..., z} attached to a rubber band, which is itself stretched between two immovable anchor points.

-- now suppose you want to have object "q" at a position 1cm to the right of where it is: other things being equal, everything to the left of "q" {a, ..., p} will move a little further apart from each other, while everything to the right of "q" {r, ..., z} will move a little closer to each other.

so moving "q" isn't easily achievable without impact on other things.

this is the basis of why "simple" positioning is hard.

an obvious way to address the problem is to "do your positioning first", and then typeset. there are packages (such as textpos) which are designed for placing things at a precise position on the page; they work very well -- for example, they're a good basic way of generating posters, with bits and pieces dotted around a sheet. however, you can't run text around such things: you can't have a page of text with a series of objects fitted in to gaps in the text.

tex, of course, works round these problems, by placing constraints on how typesetting may proceed: these are regularly discussed here and in other forums, but all they are doing is adjust the rules about how the rubber bands are allowed to stretch, and where they are allowed to break and attach themselves to something new.

so "positioning in general", which seems to be what you are asking about, is a rather tricky concept in tex. advice on positioning a particular thing at a particular place, in a particular context, may be available; all these things derive from the rules in the tex book, or in the luatex manual. but a general collection of such derived rules, for placing general sorts of objects on a page, is bound to be a large document, and as far as i know, no-one has worked on creating such a thing.


There are the commands \moveleft<dimen><box>, \moveright<dimen><box> in vertical mode, and \raise<dimen><box>, and \lower<dimen><box> in horizontal mode. For example (plain):

\moveleft1in\vbox to0pt{\hsize3in\input story \vss}
Foo bar \raise2ex\hbox{baz}
\bye