Beamer を使用するとヒンディー語のテキストが表示されない

Beamer を使用するとヒンディー語のテキストが表示されない

Latex Beamer で Unicode フォントを使用する例を記述しようとしています。 結果の PDF にはヒンディー語の文字が表示されず、その場所に空白が表示されます。 ただし、documentclass[article] で同じコードを使用すると、正しい結果が生成されます。 問題がどこにあるか、どなたか教えていただけませんか?

\documentclass[xetex]{beamer}

\usetheme{Warsaw} 


\usepackage{verbatim}
\usepackage{verbatimbox}
\usepackage{subfigure}
\usepackage{framed,color}
\definecolor{shadecolor}{rgb}{0.93,0.91,0.91}
\usepackage{graphicx} 
\usepackage{hyperref}

\usepackage{polyglossia}
\usepackage{fontspec}
\usepackage{xunicode} %Unicode extras!
\usepackage{xltxtra}  %Fixes

%\setmainfont{Bitstream Charter}
\setdefaultlanguage{english}
\setotherlanguage{hindi}
\newfontfamily\hindifont[Script=Devanagari]{Lohit Hindi}

\begin{document}
\begin{frame}[fragile]
\frametitle{Writing unicode text: use of \textit{.ttf} files}

\begin{shaded}
\begin{verbatim}
\documentclass{article}
\usepackage{fontspec}

\begin{document}
\setmainfont{Lohit Hindi}
\texthindi{देवनागरी में लिखना बहुत आसान है |}

\end{document}
\end{verbatim}
\end{shaded}

This produces


\texthindi{देवनागरी में लिखना बहुत आसान है |}

\end{frame}
\end{document}

答え1

Beamer はデフォルトで sans serif フォントを使用します。つまり、article クラスで機能する\hindifontsfの代わりにを定義する必要があります。\hindifont

あるいは、 を使用して、beamer にセリフ フォントを使用するように指示することもできます\usefonttheme{serif}

% !TeX TS-program = xelatex
\documentclass[xetex]{beamer}

\usetheme{Warsaw} 

%\usefonttheme{serif}

\usepackage{polyglossia}
\usepackage{fontspec}

\setdefaultlanguage{english}
\setotherlanguage{hindi}
\newfontfamily\hindifontsf[Script=Devanagari]{Lohit Hindi}

\begin{document}
\begin{frame}

\texthindi{देवनागरी में लिखना बहुत आसान है |}

\end{frame}
\end{document}

ここに画像の説明を入力してください

関連情報