
Preciso alterar o tamanho da fonte no meio do documento. O problema é que os caracteres na matemática embutida ficam esticados (ficam mais largos) em comparação com o modo de texto, não importa o método que eu tentei e isso parece ruim (e desperdiça espaço na página). Como posso consertar isso?
Aqui está um MWE:
\documentclass{scrbook}
\usepackage{unicode-math}
\begin{document}
Same character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 $\par
\KOMAoptions{fontsize=10}
% or other change in size like \footnotesize \LARGE etc
Different character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 $\par
\end{document}
Responder1
Você poderia forçar o unicode-math a usar a fonte de texto latina moderna normal para os números:
\documentclass{scrbook}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\setmathfont[range={"0030-"0039}]{Latin Modern Roman}
\setmathfont[range=\int]{Latin Modern Math} %last font should be a math font
\begin{document}
Same character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 $\par
\KOMAoptions{fontsize=10}
Different character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 x^3$\par
\end{document}
Editar
Na verdade, o comando range não é necessário. Simplesmente definir a fonte matemática como egreg faz em sua resposta resolve o problema para mim em um sistema tex moderno:
\documentclass{scrbook}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\begin{document}
Same character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 $\par
\KOMAoptions{fontsize=10}
Different character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 x^3$\par
\end{document}
Editar 2
Depois de olhar um pouco mais de perto (e testar outros tamanhos de fonte), descobri a origem do problema: unicode-math está configurando a matemática com diferentes "estilos matemáticos". Tamanhos de fonte menores são usados, por exemplo, +ssty=0;
e isso leva a números mais largos (isso é um recurso, não um bug. Caracteres mais largos são mais legíveis em tamanhos pequenos).
Portanto, se alguém alterar o tamanho geral da fonte, será necessário configurar as fontes matemáticas novamente:
\documentclass[fontsize=11pt]{scrbook}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\begin{document}
Same character width:\\
123456789012345678901234567890 abc\\
$ 123456789012345678901234567890 abc$
\KOMAoptions{fontsize=9}
\setmathfont{Latin Modern Math}
Different character width:\\
123456789012345678901234567890 abc\\
$ 123456789012345678901234567890 abc$
\end{document}
No caso das Latin Modern Fonts onde as fontes do texto possuem tamanhos ópticos ainda há uma diferença.
Responder2
Você simplesmente precisa especificar a fonte matemática. O motivo pelo qual isso acontece pode ser um bug unicode-math
(ou uma consequência de como fontsize=10
funciona).
\documentclass{scrbook}
\usepackage{unicode-math}
\setmathfont{Latin Modern Math}
\begin{document}
Same character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 $\par
\KOMAoptions{fontsize=10}
% or other change in size like \footnotesize \LARGE etc
Different character width:\\
123456789012345678901234567890\\
$ 123456789012345678901234567890 $\par
\end{document}
A pequena mudança nas exibições se deve ao que parece ser um bug na fonte Latin Modern Math; se eu fizer
\sbox0{78}\showbox0
\sbox0{$78$}\showbox0
com a scrbook
configuração normal (11pt), então recebo
\hbox(7.40219+0.24089)x10.95
.\EU1/lmr/m/n/10.95 78
para a primeira caixa, enquanto eu consigo
\hbox(7.40219+0.2409)x11.09236
.\mathon
.\EU1/LatinModernMath(0)/m/n/10.95 glyph#24
.\kern0.14235
.\EU1/LatinModernMath(0)/m/n/10.95 glyph#25
.\mathoff
A diferença de tamanho é 11.09236 - 10.95 = 0.14236
(a diferença é 1sp devido à aritmética binária, não relevante). O kern é adicionado entre 7 equalquerdígito. Nenhum outro kerning é inserido entre os dígitos.