
Redactar una gramática aproximada en XeLaTeX y usar fontspec para cambiar la fuente predeterminada a Bitstream Charter en lugar de CM. Todo funciona bien para la primera página de salida, pero en la segunda página la fuente vuelve abruptamente a Computer Modern. No encuentro ningún motivo para ello. Mi preámbulo está configurado así:
\usepackage[left=0.5in,right=0.5in,top=1in,bottom=1in]{geometry}
\renewcommand{\rmdefault}{bch}
\usepackage{fontspec}
\newfontfamily\la{Brill Roman}
\usepackage{xunicode}
\usepackage{xltxtra}
\usepackage{array}
\usepackage{multirow}
\renewcommand{\p}{\textipa}
El resultado de la segunda página se ve así:
Y el código LaTeX real para esa región funciona así.
\item \la{V} $\to$ any of the vowels or diphthongs.
\item \la{C2} $\to$ optional; restricted to nasals, fricatives, and \la{/l/}.
\end{enumerate}
\item \la{N} -- syllabic nasal. May be any of the nasals.
\end{enumerate}
\large{\textbf{Stress}}
Stress is always on the penultimate syllable.
Respuesta1
Una distribución TeX actualizada tiene la fuente XCharter OpenType, por lo que puede usarla en lugar de \renewcommand{\rmdefault}{bch}
la cual no le dará nada excepto caracteres ASCII.
Además, \la
como usted definió, es solo un interruptor que le dice a XeLaTeX que use Brill a partir de ese momento.
Un documento correcto sería
\documentclass{article}
\usepackage[left=0.5in,right=0.5in,top=1in,bottom=1in]{geometry}
\usepackage{fontspec}
\setmainfont{XCharter}
\newfontfamily\lafont{Brill Roman}[Color=FF0000]
\DeclareTextFontCommand{\la}{\lafont}
\usepackage{array}
\usepackage{multirow}
\newcommand{\p}{\textipa}
\begin{document}
\begin{enumerate}
\item \la{V} $\to$ any of the vowels or diphthongs.
\item \la{C2} $\to$ optional; restricted to nasals, fricatives, and \la{/l/}.
\item \la{N} -- syllabic nasal. May be any of the nasals.
\end{enumerate}
{\large\textbf{Stress}\par}
Stress is always on the penultimate syllable.
\end{document}
Tenga en cuenta que \la
ahorahaceacepta un argumento, pero \large
no lo hace. El texto está en la fuente Charter, mientras que el texto en el argumento de \la
estará en Brill (los coloreé en rojo solo para darle mayor énfasis en el ejemplo, elimine la Color=FF0000
opción).
Si no las tiene XCharter
entre las fuentes de su sistema, puede utilizar una configuración más compleja:
\setmainfont{XCharter}[%
Extension=.otf,
UprightFont=*-Roman,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
]
Tenga en cuenta también que xunicode
y xltxtra
generalmente no debe cargarse.
Dependiendo de la versión que fontspec
tenga disponible, es posible que deba cambiar el orden de los argumentos obligatorios y opcionales a \setmainfont
y \newfontfamily
:
\newfontfamily\lafont[Color=FF0000]{Brill Roman}
\setmainfont[%
Extension=.otf,
UprightFont=*-Roman,
ItalicFont=*-Italic,
BoldFont=*-Bold,
BoldItalicFont=*-BoldItalic,
]{XCharter}
En este caso es mejor si actualizas tu distribución TeX.
Respuesta2
en
\la{N}
No están {}
haciendo nada, \la
no aceptan argumentos, cambian la fuente para el resto del grupo actual. En este caso, ese es el \end{enumerate}
Entonces, en ese punto la fuente (y cualquier otra declaración local) vuelve a los valores que tenían en \begin{enumerate}
.
No está claro si \la
solo tenía la intención de cambiar la fuente N
o si quería cambiar la fuente del documento while, en cuyo caso podría usar
\setmainfont{Brill Roman}