Problema de fonte ao usar código de várias páginas (cunhado)

Problema de fonte ao usar código de várias páginas (cunhado)

Para adicionar listagens de várias páginas, o codeambiente é usado. O estilo de número da primeira página usa uma fonte mono. O estilo de número da segunda página usa uma fonte serifada. Preciso da fonte serifada para todas as páginas. Onde está o meu erro?

MWE:

% !TeX program = lualatex
% !TeX encoding = utf-8
%-----------------
\documentclass[oneside]{book}
\usepackage{polyglossia}
%-----------------
\setdefaultlanguage[spelling=modern]{russian}
\setotherlanguage{english}
\setmonofont{Courier New}
\newfontfamily\cyrillicfonttt[Script=Cyrillic]{Courier New}[Scale=0.976]
\defaultfontfeatures{Ligatures=TeX}
\setmainfont{Times New Roman}
\newfontfamily\cyrillicfont{Times New Roman}[Scale=0.976]
\linespread{1.464}
%-----------------
\usepackage{lipsum}
%-----------------
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhf{}
\fancyhead[C]{\thepage}
\renewcommand{\headrule}{}
\fancypagestyle{plain}{
    \fancyhead[C]{\thepage}
}
%-----------------
\usepackage[singlelinecheck=false]{caption}
%-----------------
\usepackage[newfloat]{minted}
\usemintedstyle{xcode}
\setminted{xleftmargin=0.5cm, linenos, numbersep=5pt, breaklines, breakanywhere, frame=single, framesep=1ex,  fontsize=\small}
%
\newenvironment{code}{\captionsetup{type=listing, belowskip=-14pt plus 2pt minus 2pt}}{}
\SetupFloatingEnvironment{listing}{name=сode}
\AtBeginEnvironment{code}{\vspace{28pt plus 2pt minus 2pt}}
%-----------------
\begin{document}
Listing usage example:
\begin{code}
    \caption{Listing foo (code) \thelisting}
    \inputminted{tex}{\jobname.tex}
\end{code}
\end{document}

insira a descrição da imagem aqui

Agradeço antecipadamente.

Responder1

O cabeçalho da página é composto enquanto o ambiente literal \inputmintedestá sendo preparado e, portanto, o cabeçalho passa a estar na fonte monoespaçada.

A declaração \normalfont\thepagedeveria funcionar, mas há complicações polyglossiae, neste caso, \cyrillicfonté necessária.

\documentclass[oneside]{book}
\usepackage{polyglossia}
\usepackage{fancyhdr}
\usepackage[singlelinecheck=false]{caption}
\usepackage[newfloat]{minted}

\usepackage{lipsum}

\setdefaultlanguage[spelling=modern]{russian}
\setotherlanguage{english}

\setmainfont{Times New Roman}
\setmonofont{Courier New}
\newfontfamily\cyrillicfont{Times New Roman}[
%  Scale=0.976
]
\newfontfamily\cyrillicfonttt{Courier New}[
  Script=Cyrillic,
  Scale=0.976
]

\fancyhf{}
\fancyhead[C]{\cyrillicfont\thepage}
\renewcommand{\headrulewidth}{0pt}% <--- not \headrule
\pagestyle{fancy}

\usemintedstyle{xcode}
\setminted{
  xleftmargin=0.5cm,
  linenos,
  numbersep=5pt,
  breaklines,
  breakanywhere,
  frame=single,
  framesep=1ex,
  fontsize=\small,
}

\newenvironment{code}
  {\captionsetup{type=listing, belowskip=-14pt plus 2pt minus 2pt}}
  {}
\SetupFloatingEnvironment{listing}{name=сode}
\AtBeginEnvironment{code}{\vspace{28pt plus 2pt minus 2pt}}

\linespread{1.464}

\begin{document}

Listing usage example:
\begin{code}
    \caption{Listing foo (code) \thelisting}
    \inputminted{tex}{\jobname.tex}
\end{code}

\end{document}

eu usaria babel. De qualquer forma, remodelei seu preâmbulo para ter os pacotes primeiro e as configurações depois. Verifique as pequenas alterações feitas para uniformidade, mas não só.

insira a descrição da imagem aqui

Com babelnão há problema.

\documentclass[oneside]{book}
\usepackage[main=russian,english]{babel}
\usepackage{fancyhdr}
\usepackage[singlelinecheck=false]{caption}
\usepackage[newfloat]{minted}

\usepackage{lipsum}

\babelfont{rm}{Times New Roman}
\babelfont{sf}[Scale=MatchLowercase]{Arial}
\babelfont{tt}[Scale=0.976]{Courier New}

\fancyhf{}
\fancyhead[C]{\thepage}
\renewcommand{\headrule}{}
\pagestyle{fancy}

\usemintedstyle{xcode}
\setminted{
  xleftmargin=0.5cm,
  linenos,
  numbersep=5pt,
  breaklines,
  breakanywhere,
  frame=single,
  framesep=1ex,
  fontsize=\small,
}

\newenvironment{code}
  {\captionsetup{type=listing, belowskip=-8pt plus 2pt minus 2pt}}
  {}
\SetupFloatingEnvironment{listing}{name=сode}
\AtBeginEnvironment{code}{\vspace{28pt plus 2pt minus 2pt}}

\linespread{1.464}

\begin{document}

Listing usage example:
\begin{code}
    \caption{Listing foo (code) \thelisting}
    \inputminted{tex}{\jobname.tex}
\end{code}

\end{document}

informação relacionada