
Estoy preparando un documento que facilita el paquete fontspec
para 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:
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-Regular
y LMSans10-Regular
, pero no LMRomanCaps10-Regular
. Por eso \lmfont\scshape
(o \lmfont\ttfamily
) no funcionó.
Entonces, ¿existe la posibilidad de definir \newfamily
que 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 smcp
funció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 fontspec
analizarlos para realizar todas las tareas necesarias.
Sin embargo, para el caso particular, .fd
hay 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}
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.otf
y 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.fontspec
para 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.