Skip to main content
added 3 characters in body
Source Link
Moriambar
  • 11.6k
  • 5
  • 35
  • 54
\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}
\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}
\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}
Added percentage increase.
Source Link
Werner
  • 607.4k
  • 140
  • 1.4k
  • 2.3k

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.

The difference in width is around 0.04pt and 0.03pt in height, which translates to about 0.01mm. This is virtually negligible to the naked eye at regular font sizes.

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.

Source Link
Werner
  • 607.4k
  • 140
  • 1.4k
  • 2.3k

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:

enter image description here

\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. 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:

enter image description here

\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}