Cargue fuentes adicionales con lualatex

Cargue fuentes adicionales con lualatex

Estoy preparando un documento que facilita el paquete fontspecpara definir la fuente principal y la sans. En ese documento, me gustaría comparar esa fuente principal con Computer Modern o, para ser precisos, su sucesora Latin Modern.

Estaba convencido de que escribir

\newfontfamily\lmfont{Latin Modern Roman}

habilitaría la familia completa con sus más de 70 archivos de fuentes. Pero eso no es correcto.

Por ejemplo, cuando digo

{\lmfont\scshape{}abcd} {\scshape{}abcd}

Entiendo esto:

Comparación de pequeñas capitales

En el lado izquierdo, la fuente latina moderna, pero sin las versalitas :-(, en el lado derecho, la fuente predeterminada ("fuente principal") del documento como debería verse.

Para mi comparación, me gustaría presentar una gran selección/combinación de fuentes de esta familia, es decir, las fuentes romanas, sans y mono agregadas con formas y caras como -cursiva, -cursiva-negrita, -slanted, -slanted-negrita. , -negrita, -versalitas.

Desafortunadamente, mi solución solo carga las fuentes LMRoman10-Regulary LMSans10-Regular, pero no LMRomanCaps10-Regular. Por eso \lmfont\scshape(o \lmfont\ttfamily) no funcionó.

Entonces, ¿existe la posibilidad de definir \newfamilyque contenga las fuentes latinas modernas completas?

Cualquier solución que me permita tener una macro simple para comparar las dos familias de fuentes una al lado de la otra estaría bien.

Aquí hay un MWE:

\documentclass{scrbook}
\usepackage{fontspec}

\setmainfont{Times New Roman} % and other definitions
\newfontfamily\lmfont{Latin Modern Roman} % this is not complete!!

%% New command to compare.  
%% #1 defines the family/shape/series
\newcommand{\compare}[1]{%
  {#1%
    ABCD \dots{} XYZ, abcd \dots{} xyz\\
    \lmfont{}ABCD \dots{} XYZ, abcd \dots{} xyz\par
  }
}

\begin{document}
\compare{\upshape}
\compare{\itshape}
\compare{\itshape\bfseries}
\compare{\scshape}
\end{document}

Respuesta1

No, no funciona así y realmente no puede.

No existe ninguna convención de nomenclatura de fuentes y varias fuentes hacen cosas muy diferentes. Algunas fuentes tienen una smcpfunción, otras no y hay que especificar la fuente que se utilizará para versalitas.

Latin Modern Roman se encuentra en una situación muy diferente: hay alrededor de 70 archivos de fuentes y está fuera del alcance de fontspecanalizarlos para realizar todas las tareas necesarias.

Sin embargo, para el caso particular, .fdhay archivos disponibles para que pueda utilizarlos.

\documentclass{article}
\usepackage{fontspec}

\setmainfont{EB Garamond}

\newfontfamily\lmodern{Latin Modern Roman}[
  NFSSFamily=lmr
]

\begin{document}

Abc\textsc{Abc}

\lmodern

Abc\textsc{Abc}

\end{document}

ingrese la descripción de la imagen aquí

Respuesta2

Como complemento a la excelente respuesta de egreg: para una fuente personalizada que almacena versalitas en un archivo separado, por ejemplo, con nombre SomeFont-RegularSC.otfy SomeFont-BoldSC.otf, las cargaría con

\newfontfamily\somefont{SomeFont}[
   UprightFont = *-Regular ,
   SmallCapsFont = *-RegularSC ,
   BoldFont = *-Bold ,
   BoldFeatures = { SmallCapsFont = *-BoldSC },
   % Etc.
   Extension = .otf ]

También puedes poner este comando en un archivo llamado SomeFont.fontspecpara que puedas escribir \newfontfamily\somefont{SomeFont}en tus documentos. Esto evita dejar dependencias de una versión particular de la fuente en todos sus documentos.

información relacionada