Lay out text and graphics at arbitrary positions on the LaTeX page.

This page is https://purl.org/nxg/dist/textpos; please quote this URL rather than the URL it resolves to.

Version 1.10.1, 2022 July 23.

This package facilitates placing boxes at absolute positions on the LaTeX page. There are several reasons why this might be useful, but the main one (or at least my motivating one) is to help produce a large-format conference poster. Other applications include placing material within, say, figures. Textpos is also discussed in the TeX FAQ entry on absolute positioning.

This package provides a single environment, which contains the text (or graphics, or table, or whatever) which is to be placed on the page, and which specifies where it is to be placed. The environment is accompanied by various configuration commands. See the manual (pdf).

An article describing Textpos appeared in TUGboat in 2002: Norman Gray, Absolute Positioning with Textpos, TUGboat 23 (3/4), pp341–4, 2002.

I have a collection of general advice about creating conference posters with LaTeX.

Rolf Niepraschk provided me with a wonderful demo (tex, pdf) of using Textpos along with his eso-pic package, and the calc package, to produce a grid which can help lay out material on the page.

The source is held online, where you can find an issues list

Download and installation

  1. Download the file textpos-1.10.1.tar.gz or textpos-1.10.1.zip and unpack it.
  2. Run LaTeX on the file textpos.ins – this will unpack the style file textpos.sty amongst other files. Place this somewhere where TeX can find it.
  3. Run LaTeX on the file textpos.dtx to obtain the documentation.

Textpos is also available on CTAN: macros/latex/contrib/textpos/

To guard against the continual possibility of fixed versions breaking old documents, here are some selected older versions:

1.3a Immediately prior to change in skip handling
1.1e Immediately prior to compatibility with calc, and introduction of {textblock*}


Release 1.10.1, 2022 July 23
1.10, 2020 September 26
1.10b1, 2020 January 26
1.9.1, 2019 April 15
1.8, 2016 June 5
1.7j, 2014 January 3
Re-released under the LPPL.
1.7i, 2012 November 10
Bugfix: further change to the way the {color} package is loaded (fixes issue 2); now finally fixed?
1.7h, 2012 June 1
Bugfix: further change to the way the {color} package is loaded. Some documentation tweaks. Pointers to bitbucket repository.
1.7g, 2010 September 30
Bugfix: change the way we handle the {color} package not being loaded – replacement \color command is now robust. Thanks to Joseph Wright for the bugreport. Also adjusted documentation of reference points.
1.7f, 2009 May 28
The change in behaviour introduced in v1.7e is now documented (it was unspecified before, and 1.7e didn't commit itself one way or the other).
1.7e, 2009 March 29
Daniel Richard G noted that the order in which textblock contents was laid down on the page was counter-intuitive, since one would expect that later environments go 'on top of' earlier ones. This order was unspecified before this version, but I've changed this, satisfying a principle of least surprise (later ones now go 'on top').
1.7d, 2007 March 30
Axel Sommerfeldt suggested a further alternative approach, even more lightweight, and I incorporated a version of that.
1.7c, 2007 March 29
Giovanni Radilla reported a problem with captions, which meant that the captions weren't appearing properly in the list of figures. Dan Luecking and Axel Sommerfeldt analysed the problem precisely, and the latter provided code which I've incorporated in this fix.
1.7b, 2007 March 21
Robert Whittaker reported a problem with \TPmargin, which meant that lists and quotations (and other things which manipulated \leftskip and \rightskip) were not decreasing in size when you set \TPmargin non-zero. Fixed.
1.7a, 2006 September 2
Version 1.7 created an inadvertant dependency on the {color} package. Now, if you do not load that package, \textblockrulecolour will have no effect, rather than failing. Textpos will give you a warning in this case, reminding you to load the {color} package.
1.7, 2006 August 24
Added the \textblockrulecolour and \TPshowboxes{true,false} commands, to further control the display of the rules around the text blocks.
1.6b, 2006 August 10
Minor documentation fixes
1.6a, 2005 October 13
The overriding of the figure and table environments now also works when there is no previous environment to override.
1.6, 2005 August 30
Made {calc}-style dimensions to the {textblock*} argument work again (so that's what regression tests are for...). Override the figure and table environments within textblock environments, to avoid their surprising and undesirable interaction with textblock.
1.5b, 2005 June 13
The 1.5 release broke the textblock environment's optional argument, controlling the position of the reference point within the block. Fixed.
1.5a, 2005 March 26
Documentation fixes: added a section on the interaction between absolute mode and LaTeX's \newpage command.
1.5, 2005 March 23
Implement \TPMargin command, which causes a margin to appear round the blocks of text within textblock environments. This makes it easy to use blocks of colour which are larger than the block of text by a decent margin, or to put a border round textblocks by setting a suitably-sized margin and using the showboxes package option.
1.4, 2003 September 7
Changes in the handling of vertical spacing; inconsistent in some circumstances before. Slight (consequent) change to the algorithm which ensures that material is output in absolute mode even when the page is otherwise empty. See README for details. Version 1.3a will remain available for some time in case these fixes break things.
1.3a, 2003 June 24
Added the \textblockcolour command, to set the background colour of text blocks
1.3, 2003 June 24
(there was a release 1.3, but it was broken, and immediately replaced by 1.3a)
1.2b, 2002 July 1
Works around a bug present in at least one package, which leaves box255 holding an hbox at the wrong moment
1.2a, 2002 April 28
Version 1.2 had an error, which caused a confusing error if you gave any fractional part in the arguments to the {textblock} environment. This was fixed in version 1.2a, which adds a {textblock*} environment (fully compatible with calc), and does not attempt to support calc-style expressions in the parameters to the unstarred {textblock} environment.
1.2, 2002 April 21
Rolf Niepraschk niepraschk@ptb.de provided code to make textpos compatible with the calc package
Version 1.1
Released in 1999
Norman Gray