Ayuda de Fontspec, combinación de fuentes

Ayuda de Fontspec, combinación de fuentes

Tengo problemas con la selección de fuentes. Parece que no puedo entender esto.

Tengo una clase de documento que estoy desarrollando y que utiliza Latin Modern Roman, Trajan Pro y Trajan Pro Bold. Mis necesidades son definir las fuentes Trajan en versalitas y versalitas en negrita mientras uso LRM para todo lo demás.

No puedo entender por qué lo siguiente [options]causa un error o cómo solucionarlo.

\documentclass[11pt]{article}

\usepackage{geometry}           %for page layout
\geometry{hmargin={1in,1in},vmargin={0.75in,0.75in},marginparwidth={0.8in},marginparsep={0in}}

\usepackage{fontspec}   %for xelatex unicode
    \setmainfont{Latin Modern Roman}[
        UprightFeatures = {SmallCapsFont=TrajanPro-Regular.otf},
        BoldFeatures = {SmallCapsFont=TrajanPro-Bold.otf},
    ]

\begin{document}

Here is some {\bfseries\scshape Boldface SmallCaps} text

Here is some {\bfseries\uppercase{Boldface Uppercase}} text

Here is some {\bfseries Boldface} text

Here is some {\scshape SmallCaps} text

Here is some \uppercase{Uppercase} text

Here is some {Regular} text

\end{document}

Como edición, agregué el siguiente código alternativo que he estado usando durante casi 5 años. Esto funciona bien. En todos los lugares donde me gustaría escribir, \scshapesimplemente escribí \sffamily. Sé que está mal hacerlo, pero en más de 5 años de intentar encontrar una manera mejor, nunca lo he logrado.

\RequirePackage{fontspec}           %for xelatex unicode
    \setmainfont{Latin Modern Roman}
%        BoldFont = ⟨font name⟩ 
%        ItalicFont = ⟨font name⟩ 
%        BoldItalicFont = ⟨font name⟩ 
%        SlantedFont = ⟨font name⟩ 
%        BoldSlantedFont = ⟨font name⟩ 
%        SmallCapsFont = ⟨font name⟩


    \setsansfont{TrajanPro-Regular.otf}[
        BoldFont=TrajanPro-Bold.otf
%        ItalicFont = ⟨font name⟩ 
%        BoldItalicFont = ⟨font name⟩ 
%        SlantedFont = ⟨font name⟩ 
%        BoldSlantedFont = ⟨font name⟩ 
%        SmallCapsFont = ⟨font name⟩
    ]

Como edición más, LRM es una fuente instalada en el sistema, las fuentes Trajan son dos archivos que guardo con mis proyectos en el directorio raíz. Me gustaría poder colocarlos en una carpeta de fuentes dentro de la raíz, pero paso a paso.

Respuesta1

No tengo Trajan-Pro, así que lo sustituí por otro que será obviamente diferente a LMR (TexGyreHeros).

\documentclass[11pt]{article}

\usepackage{geometry}           %for page layout
\geometry{hmargin={1in,1in},vmargin={0.75in,0.75in},marginparwidth={0.8in},marginparsep={0in}}

\usepackage{fontspec}  %% running under LuaLaTeX

\setmainfont{Latin Modern Roman}[
        SmallCapsFeatures={Letters=SmallCaps}, % <=== See Section 4.1 of Fontspec documentation.  
        UprightFeatures = {SmallCapsFont=texgyreheros-regular.otf},
        BoldFeatures = {SmallCapsFont=texgyreheros-bold.otf},
    ]


\begin{document}
Here is some {\bfseries\scshape Boldface SmallCaps} text

Here is some {\bfseries\uppercase{Boldface Uppercase}} text

Here is some {\bfseries Boldface} text

Here is some {\scshape SmallCaps} text

Here is some \uppercase{Uppercase} text

Here is some {Regular} text
\end{document}

ingrese la descripción de la imagen aquí

El único cambio realizado es agregar la línea SmallCapsFeatures={Letters=SmallCaps},por los motivos discutidos en la documentación de Fontspec en la Sección 4.1.

Este código funciona en mi sistema con LuaLaTeX, pero no con XeLaTeX, tal vez porque no tengo LMR instalado como fuente del sistema; para LuaLaTeX, LMR es la fuente predeterminada. Para probar esa idea, el siguiente código sustituye una de las fuentes de mi sistema por LMR (TeX Gyre Termes):

%% using the free Tex Gyre fonts, which I have installed as system fonts
\setmainfont{TeXGyreTermesX}[
     SmallCapsFeatures={Letters=SmallCaps}, % <=== See Section 4.1 of Fontspec documentation.  
     UprightFeatures = {SmallCapsFont=texgyreheros-regular.otf}, 
     BoldFeatures = {SmallCapsFont=texgyreheros-bold.otf},
    ]

Con este cambio, obtengo el mismo resultado para LuaLaTeX o XeLaTeX:

ingrese la descripción de la imagen aquí

Dos notas adicionales pueden resultar útiles. En primer lugar, Will Robertson recomendó recientemente utilizar nombres de archivos explícitos, en lugar de nombres de sistema "legibles por humanos".Remolcador39(2018). En segundo lugar, se SmallCapsFeaturespuede integrar en las otras funciones, para que tengas control adicional para vertical o negrita:

\setmainfont{texgyretermes}[
Extension = {.otf},
UprightFont = {*-regular}, 
ItalicFont = {*-italic},
BoldFont = {*-bold}, 
BoldItalicFont = {*-bolditalic},
UprightFeatures = {SmallCapsFont=texgyreheros-regular.otf, SmallCapsFeatures={Letters=SmallCaps, Color=992211}},
BoldFeatures    = {SmallCapsFont=/Users/John/Library/Fonts/FiraGO-Heavy.otf,   SmallCapsFeatures={Letters=SmallCaps, Color=112299}, Color = FF4422},
]

Puede proporcionar la ruta completa a sus archivos de fuentes Trajan-Pro, por ejemplo, como lo hice aquí para FiraGO-Heavy. ingrese la descripción de la imagen aquí

información relacionada