Ajuda do Fontspec, combinando fontes

Ajuda do Fontspec, combinando fontes

Estou lutando com a seleção de fontes. Eu simplesmente não consigo entender isso.

Tenho uma classe de documento que estou desenvolvendo que usa Latin Modern Roman, Trajan Pro e Trajan Pro Bold. Minhas necessidades são definir as fontes Trajano para versalete e versalete em negrito enquanto uso o LRM para todo o resto.

Não consigo descobrir por que o seguinte [options]causa um erro ou como contorná-lo.

\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 edição, adicionei o seguinte código alternativo que uso há quase 5 anos. Isso funciona muito bem. em todos os lugares que eu gostaria de digitar, \scshapeacabei de digitar \sffamily. Eu sei que é errado fazer isso, mas em mais de 5 anos tentando descobrir uma maneira melhor, nunca consegui.

\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 mais uma edição, LRM é uma fonte instalada pelo sistema, as fontes Trajan são dois arquivos que mantenho com meus projetos no diretório raiz. Eu gostaria de poder colocá-los em uma pasta de fontes dentro da raiz, mas um passo de cada vez.

Responder1

Não tenho o Trajan-Pro, então substituí por algo que será obviamente diferente do 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}

insira a descrição da imagem aqui

A única alteração feita é adicionar a linha SmallCapsFeatures={Letters=SmallCaps},pelos motivos discutidos na documentação do Fontspec na Seção 4.1.

Este código funciona no meu sistema no LuaLaTeX, mas não no XeLaTeX - talvez porque eu não tenha o LMR instalado como fonte do sistema; para LuaLaTeX, LMR é a fonte padrão. Para testar essa ideia, o código a seguir substitui uma das fontes do meu 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},
    ]

Com esta mudança, obtenho o mesmo resultado para LuaLaTeX ou XeLaTeX:

insira a descrição da imagem aqui

Duas notas adicionais podem ser úteis. Primeiro, Will Robertson recomendou recentemente o uso de nomes de arquivos explícitos, em vez de nomes de sistema "legíveis por humanos".Rebocador39(2018). Em segundo lugar, SmallCapsFeaturespode ser incorporado a outros recursos, para que você tenha controle adicional para vertical ou negrito:

\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},
]

Você pode fornecer o caminho completo para seus arquivos de fonte Trajan-Pro, por exemplo, como fiz aqui para FiraGO-Heavy. insira a descrição da imagem aqui

informação relacionada