pagestyle fancy を使用した fancyhdr を中国語と互換性のあるものにする方法はありますか?

pagestyle fancy を使用した fancyhdr を中国語と互換性のあるものにする方法はありますか?

を使用すると、ドキュメント内の中国語の文字を正常にコンパイルできます。ただし、 pagestyleCJKutf8を使用するすべてのファイルで、コンパイル中にエンコーディング関連のエラーが発生します。fancyhdrfanc

再現するための最小限の例 (システムに cjk サポートがインストールされ、実行されていると想定):

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

例は以下から引用ここそして延長されました。

コメントを外すと\pagestyle{fancy}次のエラーが発生します。

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

今は、回避策として xetex や luatax を使用したくありません。また、ドキュメント内にかなり複雑なヘッダーをいくつか作成しましたが、それを保持したいと思っています。

私の質問は、たとえば特定のパッケージを追加したり、fancyhdr正しく構成したりすることで、このエラーを解決する方法があるかどうかです。

答え1

最近では、非ラテン文字には luatex または xelatex を使用することをお勧めしますが、見出しの範囲内になるように CJK 処理を再アサートすることもできます。マクロで非表示にすると、拡張や大文字化の問題から保護されるため、より簡単です。

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

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

答え2

CJK*LuaLaTeX または XeLaTeX を自由に使用でき、適切なシステム フォント (必要な中国語文字を含むフォント) がある場合は、環境と「通常の」環境を切り替える必要はありません。

次の例は、私の MacOS システム、MacTeX2018、パッケージfontspec、および SimSun システム フォント上の LuaLaTeX と XeLaTeX の両方で同様にコンパイルされます。

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

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

関連情報