Re: XeLaTeX, font XITS e SmallCaps

#57879
Up
0
Down
::

`
% !TEX TS-program = XeLaTeX
% !TEX encoding = UTF-8 Unicode

\documentclass{article}
\usepackage{fontspec}

\setmainfont[Ligatures=TeX,
SmallCapsFont={TeX Gyre Termes},
SmallCapsFeatures={Letters=SmallCaps}]{XITS}
\begin{document}
Questo testo è composto in XITS

{\scshape Questo testo è composto in maiuscoletto}

\end{document}
`

Questo esempio minimo rispecchia lla spiegazione della pagina 12 di introxelatex.pdf, ed è conforme a quanto spiegato nella pagina 11 del manuale fontspec.pdf.

Per lo meno non riesco a vedere differenze di nessun genere; ho anche usato il copia e incolla per essere sicuro di non commettere errori, che evidentemente ci sono lo stesso.

Il maiuscoletto del font Termes non viene fuori, nemmeno se invece della dichiarazione \scshape uso il comando \textsc.

PS Enrico: nella pagina 11 di introlatex c’è scritto “troviamo cpsp a pagina 29 e scopriamo che viene attivata con Letters=UppercaseSmallCaps”;
dovrebbe essere:
“troviamo c2sc a pagina 29 e scopriamo che viene attivata con Letters=UppercaseSmallCaps”.
Forse è già stato corretto, ma nella versione che io ho scaricato tempo fa era così, mi pare.

Quella è la sintassi corretta, secondo il manuale di fontspec. Ho scritto all’autore che la conferma, ma devo confessarti che non funziona nemmeno a me. 🙁 E infatti uso un bieco trucco per farla funzionare:
`\setmainfont[Ligatures=TeX]{XITS}
%%% per isolare il bug di fontspec
\usepackage{etoolbox}
\newfontfamily{\termes}[Ligatures=TeX]{TeX Gyre Termes}
\makeatletter
\preto{\scshape}{\ifnum\strcmp{\f@family}{\rmdefault}=\z@\termes\fi}
\makeatother`
Aggiungo cioè al codice di \scshape un test: se \f@family e \rmdefault hanno la stessa espansione, stiamo usando il font principale del documento e quindi faccio scegliere il font con nome simbolico \termes. La primitiva \strcmp (un’aggiunta di XeTeX) dà risultato 0 se il contenuto del primo argomento e del secondo sono stringhe di caratteri uguali, -1 se la prima viene prima in ordine “alfabetico” (cioè guardando i codici Unicode) della seconda, 1 altrimenti. Gli argomenti sono espansi come succede in \csname…\endcsname.

Attendo gli eventi con fiducia. Grazie per la correzione.

Ciao
Enrico

Go to top