複数ページのコード使用時のフォントの問題 (minted)

複数ページのコード使用時のフォントの問題 (minted)

複数ページのリストを追加するには、code環境を使用します。最初のページ番号スタイルではモノラル フォントを使用します。2 番目のページ番号スタイルではセリフ フォントを使用します。すべてのページにセリフ フォントが必要です。どこが間違っているのでしょうか?

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}

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

よろしくお願いします。

答え1

ページ ヘッダーは、逐語環境の\inputminted準備中にタイプセットされるため、ヘッダーは等幅フォントになります。

宣言は\normalfont\thepage機能するはずですが、 が原因で複雑な問題が発生するためpolyglossia、この場合は\cyrillicfontが必要です。

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

私は を使用しますbabel。とにかく、パッケージを最初にして設定を後に置くようにあなたの序文を作り直しました。統一性のためだけでなく、それだけではなく、小さな変更も確認してください。

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

babel問題はありません。

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

関連情報