Fonte mudando de volta sem motivo aparente

Fonte mudando de volta sem motivo aparente

Escrevendo uma gramática aproximada em XeLaTeX e usando fontspec para alterar a fonte padrão para Bitstream Charter em vez de CM. Tudo funciona bem para a primeira página de saída, mas na segunda página a fonte muda abruptamente para Computer Modern. Não consigo encontrar nenhuma razão para isso. Meu preâmbulo está configurado assim:

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

A saída na segunda página é assim: Visual de saída

E o código LaTeX real para essa região funciona assim.

\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.

Responder1

Uma distribuição TeX atualizada possui a fonte XCharter OpenType, então você pode usá-la em vez da \renewcommand{\rmdefault}{bch}qual não fornecerá nada, exceto caracteres ASCII.

Além disso, \lacomo você definiu, é apenas uma opção que diz ao XeLaTeX para usar o Brill daquele ponto em diante.

Um documento correto seria

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

Observe que \laagorafazaceita uma discussão, mas \largenão o faz. O texto está na fonte Charter, enquanto o texto do argumento de \lawill estará em Brill (colori de vermelho só para dar maior ênfase no exemplo, retire a Color=FF0000opção).

insira a descrição da imagem aqui

Se você não tiver XCharterfontes do sistema, poderá usar uma configuração mais complexa:

\setmainfont{XCharter}[%
  Extension=.otf,
  UprightFont=*-Roman,
  ItalicFont=*-Italic,
  BoldFont=*-Bold,
  BoldItalicFont=*-BoldItalic,
]

Observe também que xunicodee xltxtrageralmente não deve ser carregado.

Dependendo da versão fontspecdisponível, pode ser necessário mudar a ordem dos argumentos obrigatórios e opcionais para \setmainfonte \newfontfamily:

\newfontfamily\lafont[Color=FF0000]{Brill Roman}
\setmainfont[%
  Extension=.otf,
  UprightFont=*-Roman,
  ItalicFont=*-Italic,
  BoldFont=*-Bold,
  BoldItalicFont=*-BoldItalic,
]{XCharter}

Neste caso é melhor atualizar sua distribuição TeX.

Responder2

em

\la{N}

eles {}não estão fazendo nada, \lanão aceitam argumentos, trocam a fonte para o restante do grupo atual. Nesse caso, é \end{enumerate}assim que a fonte (e quaisquer outras declarações locais) revertem para os valores que tinham em \begin{enumerate}.

Não está claro se você pretendia \laapenas alterar a fonte Nou se deseja alterar a fonte do documento while, caso em que você poderia usar

 \setmainfont{Brill Roman}

informação relacionada