How to use fontspec to set normalsize to 11pt?

I'm writing a document where it is important that the font specification is times new roman and the font is 11pt.

This question Where and why does (LuaLa)TeX scale down the requested base font size? provides a discusseion regarding why this is so (geometric progression) and states that it's easy to change using fontspec but does not provide an example.

This answer https://tex.stackexchange.com/a/46089/89786 shows how it can be done with snippets of text. But I want to redefine \normalsize to be precisely 11.pt globally, but not the other fonts.

How do i do it? The following code shows that the \normalsize font is 10.95pt.

\documentclass[english,11pt]{article}
\usepackage[T1]{fontenc}
\usepackage{babel}

\makeatletter
\usepackage{mathptmx}% http://ctan.org/pkg/mathptmx
\usepackage{fontspec}
\newcommand\thefontsize[2]{{#1 The current font size is: #2 \f@size pt\par}}

\makeatother

\fontsize{11pt}{12pt}\selectfont

\begin{document}
\thefontsize\tiny{tiny}
\thefontsize\scriptsize{scriptsize}
\thefontsize\footnotesize{footnotesize}
\thefontsize\small{small}
\thefontsize\normalsize{normalsize}
\thefontsize\large{large}
\thefontsize\Large{Large}
\thefontsize\LARGE{LARGE}
\thefontsize\huge{huge}
\thefontsize\Huge{Huge}
\end{document}


• For historical reasons, LaTeX considers 11pt to be 10.95pt. Now, 10.95pt is 717619sp, 11pt is 720896sp and 11bp (PostScript points) is 723599sp. The 0.5% difference between 11pt and 10.95pt is negligible (0.5pt is 0.18mm, or 0.007in); similarly negligible is the 0.8% difference between 11bp and 10.95pt. – egreg Sep 12 '17 at 16:20
• I agree that the difference is negligible. But that does not mean that i don't want to have precisely 11 pt. – Mikael Fremling Sep 12 '17 at 16:24
• @MikaelFremling but do you want precisely 11pt in TeX units or precisely 11pt in the units used by most other software (PostScript, Word, etc) which is 11bp in TeX. – David Carlisle Sep 12 '17 at 16:38
• @DavidCarlisle: I would guess that i want 11bp. It that case one has 1bp = 0.99628bp so 11bp = 10.959pt, correct?(tex.stackexchange.com/questions/8260/…) – Mikael Fremling Sep 13 '17 at 8:07
• @MikaelFremling no you converted in wrong direction, a bp is a big point so 11bp is more than 11pt it's 11*72.27/72 =11.04125 (or actually 11.04124 as shown by tex) although .04pt really isn't very much to worry about..., egreg's accepted answer will give you 11pt not 11bp. – David Carlisle Sep 13 '17 at 8:40

Change the LaTeX default to be 11 instead of 10.95. You may also want to do other roundings.

\makeatletter
\renewcommand\@xipt{11}
\renewcommand\@xviipt{17}
\renewcommand\@xxpt{20}
\renewcommand\@xxvpt{25}
\makeatother

\documentclass[11pt]{article}

\usepackage{mathptmx}% http://ctan.org/pkg/mathptmx
\usepackage{fontspec}

\makeatletter
\newcommand\thefontsize[2]{{#1 The current font size is: #2 \f@size pt\par}}
\makeatother

\begin{document}
\thefontsize\tiny{tiny}
\thefontsize\scriptsize{scriptsize}
\thefontsize\footnotesize{footnotesize}
\thefontsize\small{small}
\thefontsize\normalsize{normalsize}
\thefontsize\large{large}
\thefontsize\Large{Large}
\thefontsize\LARGE{LARGE}
\thefontsize\huge{huge}
\thefontsize\Huge{Huge}
\end{document}


For math, I recommend \usepackage{newtxmath} rather than mathptmx.