Estoy intentando componer mi documento con Times con XeLaTeX. Debido a que Times no incluye versalitas, quiero usar TeX Gyre Termes solo para versalitas. Lo intentéeste método, pero no funcionó. Se emite una advertencia y el resultado no es versalitas.
La pregunta:
- ¿Lo que está mal?
- ¿Cómo puedo hacer esto?
Aquí hay un MWE:
\documentclass{article}
\usepackage{fontspec}
\setmainfont[
SmallCapsFont={TeX Gyre Termes},
SmallCapsFeatures={Letters=SmallCaps},
]{Times}
\begin{document}
Hello!
\textsc{Hello!}
\end{document}
y la advertencia:
*************************************************
* fontspec warning: "aat-feature-not-exist-in-font"
*
* AAT feature 'Letters=SmallCaps' (3,3) not available in font 'TeX Gyre
* Termes'.
*************************************************
Lo que he probado:
- Intenté componer con LuaLaTeX y el resultado fue bueno sin advertencias.
- Lo reemplacé
Times
porTimes New Roman
y no hubo problema. - Agregué
Renderer=ICU
y la advertencia cambió aicu-feature-not-exist-in-font
. ¿Parece que fontspec se puede usar.dfont
con ICU? - La reemplacé
Times
con otra.dfont
fuenteHelvetica Neue
y el problema desapareció. Por lo tanto, no todas.dfont
las fuentes causan el problema...
Estoy usando MacTeX 2013 en OS X Mountain Lion.
Actualizar
Siguiendo una sugerencia de @KhaledHosny, intenté agregar \the\XeTeXfonttype\font
antes y después \textsc{
, y ambos regresaron 1
(fuente AAT). Con Render=ICU
ellos regresaron 2
(fuente OpenType), pero no obtuve versalitas. Parece que XeTeX puede tratar Times como OpenType, pero aun así SmallCapsFeatures
no funciona.
Respuesta1
Descubrí que esto se puede lograr con NFSS.
Primero, Times y TeX Gyre Termes se cargan por separado. Luego, la definición de versalitas de Times en NFSS se sobrescribe para que redirija a versalitas de TeX Gyre Termes.
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Times}
\newfontfamily\tgtermes{TeX Gyre Termes}
\makeatletter
\begingroup
\tgtermes
\DeclareFontShape{\f@encoding}{\rmdefault}{m}{sc}{%
<-> ssub * \f@family/m/sc}{}
\DeclareFontShape{\f@encoding}{\rmdefault}{bx}{sc}{%
<-> ssub * \f@family/bx/sc}{}
\endgroup
\makeatother
\begin{document}
Hello!
\textsc{Hello!}
\end{document}
Respuesta2
Quizás la forma más sencilla sea la siguiente:
En el ejemplo,Texto carmesíno tiene versalitas, perocarmesíhace. (La escala utilizada aquí sólo tiene que ver con una mejor apariencia en este caso).
\documentclass{article}
\usepackage{fontspec}
\setmainfont{Crimson Text}
\newfontinstance\scshape[Letters=SmallCaps,Scale=1.15]{Crimson}
\begin{document}
Text \textsc{Text}
\end{document}
ACTUALIZAR como se indicaaquí, \newfontinstance
ya no funciona, se reemplazó con \newfontfamily
.