Problem mit Fancyhead / Rhead mit Devanagari

Oct 14 2020

Es scheint ein Problem mit Fancyhead / Rhead zu geben, wenn ich eine Devanagari-Schriftart verwende. Mein Code lautet wie folgt:

\documentclass[letterpaper,12pt]{article}
\usepackage{fancyhdr}
\usepackage{footnpag}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage[total={6.5in,8.75in},top=1.2in,left=1.1in]{geometry}
\pagestyle{fancy}

\newcommand{\san}{
\catcode`\^=12
\catcode`\~=12
\fontspec[Script=Devanagari,Mapping=velthuis-sanskrit]{Shobhika Bold}}

\begin{document}
\rhead{\san pa~nca}
{\san pa~nca}
\end{document}

Die Ausgabe ist unten. Die Pa ~ nca im Kopf ist falsch und der Körper ist richtig.

Antworten

Davislor Oct 14 2020 at 01:01

Was ich zur Arbeit bringen konnte, war die Eingabe des UTF-8-Textes ohne Zuordnung. Das Ändern der Catcodes scheint schwierig zu sein. Aber das hat bei mir in XeLaTeX funktioniert:

\documentclass[letterpaper,12pt]{article}
\tracinglostchars=2
\usepackage{fancyhdr}
\usepackage{footnpag}
\usepackage{fontspec}
\usepackage{polyglossia}

\setdefaultlanguage{english}
\setotherlanguage[script=Devanagari]{sanskrit}

\newfontfamily\devanagarifont{Shobhika}[
  Script=Devanagari,
  Scale=MatchLowercase ]

\newfontface\translitfont{Shobhika Bold}[
  Script=Devanagari,
  Mapping=velthuis-sanskrit,
  Scale=MatchLowercase ]

\usepackage[total={6.5in,8.75in},top=1.2in,left=1.1in]{geometry}
\pagestyle{fancy}
\fancyhead{}

\newcommand{\san}{\catcode`\^=12\catcode`\~=12\translitfont}

\begin{document}
\fancyhead[R]{\textbf{\textsanskrit{पञ्च}}}
{\san pa~nca}
\end{document}
Sundar Oct 14 2020 at 03:57

Eine Problemumgehung für dieses Problem ist

\documentclass[letterpaper,12pt]{article}
\usepackage{fancyhdr}
\usepackage{footnpag}
\usepackage{fontspec}
\usepackage{polyglossia}
\usepackage{skt}
\usepackage[total={6.5in,8.75in},top=1.2in,left=1.1in]{geometry}
\pagestyle{fancy}

\newcommand{\sj}{\char"091E}

\newcommand{\san}{
\catcode`\^=12
\catcode`\~=12
\fontspec[Script=Devanagari,Mapping=velthuis-sanskrit]{Shobhika Bold}}
\begin{document}
\rhead{\san pa{\sj}ca}
{\san pa~nca}
\end{document}

Aber ich suche eine robustere Lösung.