As per the discussion, one way of achieving this goal is to redefine the "shorthand" length dimension used throughout the standard document classes. Here's an extract of the relevant code snippets from ltxplain.dtx
containing the abbreviated definition:
\newdimen\p@ \p@=1pt % this saves macro space and time
As such, issuing
\makeatletter\p@=1bp\makeatother% or \setlength{\p@}{1bp}
modifies the default 1pt
reference to 1bp
. Looking at article.cls
(although other document classes are similar), many related lengths are set using \p@
. Here's an excerpt:
\setlength\lineskip{1\p@}
\setlength\normallineskip{1\p@}
...
\setlength\parskip{0\p@ \@plus \p@}
...
\setlength\arraycolsep{5\p@}
\setlength\tabcolsep{6\p@}
\setlength\arrayrulewidth{.4\p@}
\setlength\doublerulesep{2\p@}
...
\setlength\fboxsep{3\p@}
\setlength\fboxrule{.4\p@}
...
\setlength\abovecaptionskip{10\p@}
\setlength\belowcaptionskip{0\p@}
...
\renewcommand\footnoterule{%
\kern-3\p@
\hrule\@width.4\columnwidth
\kern2.6\p@}
...
\setlength\columnsep{10\p@}
\setlength\columnseprule{0\p@}
including some macros like \maketitle
and things associated with indexing. So, issue the size change before \documentclass
in order to let the effect filter through. You would still "miss" some \p@
-related definitions though, as may be seen by viewing latex.ltx
.
As a quick way to check the difference in the default pt
and modified bp
measurements (in lmodern
) is using printlen
. Here's a brief example with focus on the character X
:

\documentclass[12pt]{article}
\usepackage{lmodern}% http://ctan.org/pkg/lmodern
\usepackage{printlen}% http://ctan.org/pkg/printlen
\begin{document}
\uselengthunit{pt} \renewcommand{\arraystretch}{1.5}%
\setbox0=\hbox{\fontsize{12pt}{14pt}\selectfont X}% pt measurement
\setbox1=\hbox{\fontsize{12bp}{14pt}\selectfont X}% bp measurement
\begin{tabular}{ccc}
X & width & height \\ \hline
\verb!pt! & \printlength{\wd0} & \printlength{\ht0} \\
\verb!bp! & \printlength{\wd1} & \printlength{\ht1} \\ \hline
\end{tabular}
\end{document}
The difference in width is around 0.04pt
and 0.03pt
in height, which translates to about 0.01mm
- a roughly 0.3% increase (~ 72.27/72-1). This is virtually negligible to the naked eye at regular font sizes.
Paragraph construction is altered using 12bp
rather than 12pt
, and therefore also hyphenation. Here's an example showing the effect:

\documentclass[12pt]{article}
\usepackage[margin=0.5in]{geometry}% http://ctan.org/pkg/geometry
\usepackage{lmodern}% http://ctan.org/pkg/lmodern
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\begin{document}
\renewcommand{\arraystretch}{1.5}%
\begin{tabular}{p{0.4\linewidth}p{0.4\linewidth}}
\verb!12pt! font & \verb!12bp! font \\ \hline
%\fontsize{12pt}{14pt}\selectfont% pt measurement
\lipsum[1] &
\fontsize{12bp}{14pt}\selectfont% bp measurement
\lipsum[1]
\end{tabular}
\end{document}
Best Answer
Do not worry about these things. 99.9 % of people who ask for "Times New Roman 12pt" don't know what they mean by "Times New Roman", and they definitely don't know the first thing about point sizes. What they mean is that they want something that looks like what they get in their MS Word documents with Times New Roman 12pt.
Just use this and you're good to go:
You can't give
12bp
as an option to thearticle
class, as it only knows10pt
,11pt
, and12pt
. If you try to specify12bp
it'll just give you the warningUnused global option(s): [12bp]
and fall back on the default setting10pt
.