views:

1081

answers:

4

I am using a LaTeX class file which sets various parameters such as margins, line spacing, ... according to the parameters passed to it. For some reason, the end result does not look right. Some margins are not properly set. I'd like to print out the values of various variables that LaTeX have computed along the way to see where the problem is. For instance, I'd like to know what the value of \oddsidemargin is in a certain line of code. Is there a way to ask LaTeX to print out such information?

+1  A: 

CTAN says: printlen which allows you to specify the output units.

dmckee
+5  A: 

You can insert the value of a variable with \the:

\the\oddsidemargin
Svante
+3  A: 

For debugging page layout, Peter Wilson's layouts package is the way to go. Here's an example for visualising the page design and seeing the dimensions used for it:

    \documentclass{article}
    \usepackage{layouts}
    \begin{document}
    \drawmarginparstrue
    \currentpage
    \pagedesign
    \end{document} 

There are many features to fine-tune the information returned by the package. It also provides the \prntlen command to print the size of a length in case you don't need so much information.

Will Robertson
And, usefully, I see that you are the maintainer. How does \printlen differ from the \printlength macro dmckee linked to?
Charles Stewart
If not identical, they're essentially the same. The layouts package does a whole lot more, however; printlen.sty is just the little bit of code to pretty print lengths.
Will Robertson
+1  A: 

Try also this:

\usepackage[verbose]{geometry}
lhf