[Tex/LaTex] What does \p@ mean in some code

latex-basemacros

I have found the source code within octavo.dtx (from the octavo package) and it has some parts called \p@. I have searched throughout the document, but cannot understand what this is defined as or what it does and it is too short a term to do a Web search. Is this specific to the document or common to TeX? Here is a portion of the code:

\if@titlepage

    \newcommand\maketitle{\begin{titlepage}%

    \let\footnotesize\small

    \let\footnoterule\relax

    \let\footnote\thanks

%    \end{macrocode}

%    The title itself is centered vertically, with a little offset brought by

%    a |\vskip|.

%    \begin{macrocode}

    \null\vfil

    \vskip 60\p@

%    \end{macrocode}
  • What does the \p@ do?

Best Answer

This is abbreviated notation for a 1pt dimension, as included in latex.ltx (originally in plain.tex) and therefore common to all LaTeX documents:

\newdimen\p@ \p@=1pt % this saves macro space and time
\newdimen\z@ \z@=0pt % can be used both for 0pt and 0

As such, you can use it in calculation with dimensions, such that 60\p@ translates to 60 times 1pt, or 60pt. In a similar fashion, \z@ provides a 0pt dimension.

Using

\makeatletter
\show\p@
\makeatother

yields

\p@=\dimen11

indicating that it is a TeX dimension (number 11). Consequently, issuing \showthe\p@ yields 1.0pt in your .log.

Related Question