Existe uma maneira de tornar o fancyhdr com o pagestyle sofisticado compatível com o idioma chinês?

Existe uma maneira de tornar o fancyhdr com o pagestyle sofisticado compatível com o idioma chinês?

Consigo compilar com sucesso caracteres chineses em meus documentos usando CJKutf8. No entanto, faz com que todos os meus arquivos, que são usados fancyhdr​​com o estilo de página fanc, gerem erros relacionados à codificação durante a compilação.

Exemplo mínimo para reproduzir (assumindo que o suporte cjk esteja instalado no sistema e em execução):

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

Exemplo foi tirado deaquie estendido.

Remover o comentário \pagestyle{fancy}produz o seguinte erro:

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

Agora não quero usar xetex ou luatax como soluções alternativas e também criei alguns cabeçalhos bastante complexos em meus documentos, que gostaria de manter.

Então minha dúvida é, se existe uma maneira de resolver esse erro por exemplo adicionando um pacote específico ou configurando fancyhdrcorretamente.

Responder1

Hoje em dia, provavelmente é recomendado usar luatex ou xelatex para scripts não latinos, mas você pode reafirmar o processamento CJK para que esteja no escopo do título. É mais simples ocultá-lo em uma macro para evitar problemas de expansão e letras maiúsculas.

insira a descrição da imagem aqui

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

Responder2

Se você estiver livre para usar LuaLaTeX ou XeLaTeX e tiver uma fonte de sistema adequada, ou seja, uma que tenha os caracteres chineses necessários, você pode dispensar a alternância entre CJK*ambientes "comuns".

O exemplo a seguir compila igualmente bem em LuaLaTeX e XeLaTeX em meu sistema MacOS, MacTeX2018, o fontspecpacote e a fonte do sistema SimSun.

insira a descrição da imagem aqui

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

informação relacionada