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, \scshape
acabei 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}
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:
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, SmallCapsFeatures
pode 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.