使用多頁程式碼時的字體問題(minted)

使用多頁程式碼時的字體問題(minted)

要新增多頁列表,code需要使用該環境。第一頁碼樣式使用單色字型。第二種頁碼樣式使用襯線字體。我需要所有頁面的襯線字體。我的錯誤在哪裡?

微量元素:

% !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}

相關內容