[Tex/LaTex] Font Size Conversion

fontsizefontspecxetex

I am writing a document that is supposed to be typeset in Time New Roman or equivalent. The problem I have is that 12pt in font A is not the same as 12pt in font B. So is there a conversion table of some sort? Or can I calculate the ratio myself?? Specifically I would like to know the ratios for Adobe Caslon Pro and Warnock Pro.

PS: I am using XeLaTeX with fontspec.

Best Answer

Fontspec can do this for you. The Scale option allows you to match the new font to the lower- or uppercase of the default font. It also allows you to scale manually. Here is an example using Times New Roman and Latin Modern.

\documentclass[12pt,a4paper]{article}
\usepackage{fontspec,lipsum}
\usepackage[margin=1cm]{geometry}

\defaultfontfeatures{Ligatures = TeX}
\setmainfont{Times New Roman}
\newfontfamily\notscaled{Latin Modern Roman}
\newfontfamily\scaledup[Scale = MatchUppercase]{Latin Modern Roman}
\newfontfamily\scaledlow[Scale = MatchLowercase]{Latin Modern Roman}
\newfontfamily\scaledman[Scale = .935]{Latin Modern Roman}

\newcommand*\comp[1]{#1 & \notscaled#1 & \scaledlow#1 & \scaledup#1 & \scaledman#1\\}
\setlength{\tabcolsep}{0pt}
\pagestyle{empty}
\begin{document}
\begin{tabular}{c c c c c}
    \comp{A}
    \comp{Q}
    \comp{a}
    \comp{y}
\end{tabular}\\
\begin{minipage}[t]{.2\textwidth}
    \raggedright\lipsum[1]
\end{minipage}%
\begin{minipage}[t]{.2\textwidth}
    \raggedright\notscaled\lipsum[1]
\end{minipage}%
\begin{minipage}[t]{.2\textwidth}
    \raggedright\scaledlow\lipsum[1]
\end{minipage}%
\begin{minipage}[t]{.2\textwidth}
    \raggedright\scaledup\lipsum[1]
\end{minipage}
\begin{minipage}[t]{.2\textwidth}
    \raggedright\scaledman\lipsum[1]
\end{minipage}
\end{document}

Preview

To scale your main font, you can set it twice: (once for the font to be matched and once to actually set your font)

\setmainfont{Times New Roman}
\setmainfont[Scale = MatchUppercase]{Latin Modern Roman}
Related Question