Gibt es eine Möglichkeit, Fancyhdr mit Pagestyle Fancy mit der chinesischen Sprache kompatibel zu machen?

Gibt es eine Möglichkeit, Fancyhdr mit Pagestyle Fancy mit der chinesischen Sprache kompatibel zu machen?

Ich kann meine Dokumente erfolgreich mit chinesischen Schriftzeichen kompilieren, indem ich verwende CJKutf8. Allerdings führt dies dazu, dass alle meine Dateien, die fancyhdrmit pagestyle arbeiten fanc, während der Kompilierung Kodierungsfehler verursachen.

Minimales Beispiel zur Reproduktion (vorausgesetzt, dass CJK-Unterstützung auf dem System installiert und ausgeführt wird):

\documentclass{article}
\usepackage{CJKutf8}

\usepackage{fancyhdr}               
%\pagestyle{fancy} % <---- uncomment to throw error in compile

\begin{document}

\begin{CJK*}{UTF8}{gbsn}

\section{前言}

\section{关于数学部分}
数学、中英文皆可以混排。You can intersperse math, Chinese and English (Latin script) without adding extra environments.

\end{CJK*}

\bigskip  %% Just some white space

You can also insert Latin text in your document

\bigskip  %% Just some white space

\begin{CJK*}{UTF8}{bsmi}
這是繁體中文。
\end{CJK*}

\end{document}

Beispiel wurde entnommen ausHierund erweitert.

Das Aufheben der Kommentierung \pagestyle{fancy}führt zu folgendem Fehler:

! PACKAGE INPUTENC ERROR: UNICODE CHAR Ņ� (U+5173)
(INPUTENC)                NOT SET UP FOR USE WITH LATEX.

SEE THE INPUTENC PACKAGE DOCUMENTATION FOR EXPLANATION.
Type  H <return>  for immediate help.

Nun möchte ich weder Xetex noch Luatax als Workarounds verwenden und ich habe in meinen Dokumenten auch einige recht komplexe Header erstellt, die ich behalten möchte.

Meine Frage lautet daher, ob es eine Möglichkeit gibt, diesen Fehler zu beheben, beispielsweise durch Hinzufügen eines bestimmten Pakets oder durch eine fancyhdrkorrekte Konfiguration.

Antwort1

Heutzutage wird wahrscheinlich die Verwendung von luatex oder xelatex für nicht-lateinische Schriften empfohlen, aber Sie können die CJK-Verarbeitung erneut aktivieren, damit sie im Gültigkeitsbereich der Überschrift liegt. Einfacher ist es, sie in einem Makro zu verbergen, damit sie vor Erweiterungs- und Großschreibungsproblemen geschützt ist.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{CJKutf8}

\usepackage{fancyhdr}               
\pagestyle{fancy} % <---- uncomment to throw error in compile

\protected\def\zzzA{\begin{CJK*}{UTF8}{gbsn}前言\end{CJK*}}
\protected\def\zzzB{\begin{CJK*}{UTF8}{gbsn}关于数学部分\end{CJK*}}

\begin{document}

\begin{CJK*}{UTF8}{gbsn}

\section{\zzzA}

\section{\zzzB}
数学、中英文皆可以混排。You can intersperse math, Chinese and English (Latin script) without adding extra environments.

\end{CJK*}

\bigskip  %% Just some white space

You can also insert Latin text in your document

\bigskip  %% Just some white space

\begin{CJK*}{UTF8}{bsmi}
這是繁體中文。
\end{CJK*}

\end{document}

Antwort2

Wenn Sie LuaLaTeX oder XeLaTeX verwenden können und über eine geeignete Systemschriftart verfügen, die also die erforderlichen chinesischen Schriftzeichen enthält, können Sie auf das Wechseln zwischen CJK*„normalen“ Umgebungen verzichten.

Das folgende Beispiel wird auf meinem MacOS-System, MacTeX2018, dem fontspecPaket und der Systemschriftart SimSun sowohl unter LuaLaTeX als auch unter XeLaTeX gleich gut kompiliert.

Bildbeschreibung hier eingeben

\documentclass{article}
\usepackage{fontspec} % for "\setmainfont" macro
\setmainfont{SimSun}  % or some other suitable font
%\usepackage{CJKutf8}  % not needed

\usepackage{fancyhdr}               
\pagestyle{fancy} 

\setlength\parindent{0pt} % just for this example

\begin{document}

%\begin{CJK*}{UTF8}{gbsn} % not needed

\section{前言}

\section{关于数学部分}
数学、中英文皆可以混排。You can intersperse math, Chinese and English 
(Latin script) without adding extra environments.

%\end{CJK*} % not needed

\bigskip  %% Just some white space

You can also insert Latin text in your document

\bigskip  %% Just some white space

%\begin{CJK*}{UTF8}{bsmi} % not needed
這是繁體中文。
%\end{CJK*} % not needed

\end{document}

verwandte Informationen