为什么 LaTeX 不使用我的字体?

为什么 LaTeX 不使用我的字体?

在阅读了一些关于字体的内容后,我决定在我的文档中使用 schola 字体,但出于某种原因,尽管我使用了命令,但 LaTeX(如果相关的话,我正在使用 TeXstudio)并不使用此字体

\fontfamily{qcs} \selectfont

我不明白我做错了什么。你能帮帮我吗?下面你可以看到我的文档的序言,其中有一个示例文本,它复制了我电脑上的问题。

\documentclass[a4paper, 11pt]{book}

\fontfamily{qcs}
\selectfont


\usepackage[a4paper,left=3cm,right=3cm,top=3cm,bottom=3cm]{geometry}




\usepackage{amsfonts}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage[style=numeric,sorting=none]{biblatex}
\usepackage{clrscode}
\usepackage{enumitem}
\usepackage{etoolbox}
\usepackage{fancyhdr}
\usepackage[T1]{fontenc}
\usepackage{graphicx}
\usepackage[utf8]{inputenc}
\usepackage{latexsym}
\usepackage{lmodern}
\usepackage{mathtools}
\usepackage{mdframed}
\usepackage{pgf}
\usepackage{tcolorbox}
\usepackage{tikz}
\usepackage{tikzpeople}
\usepackage{titlesec}
\usepackage[absolute,overlay]{textpos}
\usepackage{xcolor}

%\usepackage[babel,german=guillements]{csquotes}
%\addbibresource{library.bib}
%\bibliographystyle{unsrt}
%\bibliography{library.bib}    


\titleformat{\chapter}{\bfseries \centering}{\huge \Roman{chapter}.}{10pt}{\huge}

\usetikzlibrary{arrows}
\usetikzlibrary{positioning} 
\usetikzlibrary{shapes.multipart}
\usetikzlibrary{shapes.geometric}

\tikzstyle{process} = [rectangle, minimum width=5cm, text width=5cm, minimum height=1cm, draw=black]
\tikzstyle{arrow} = [thick,->,>=stealth]

\DeclareGraphicsExtensions{.pdf,.png,.jpg, .tif}

\pagestyle{fancy}
\fancyhf{}
\renewcommand{\headrulewidth}{0pt}
\fancyfoot[LE,RO]{\thepage}
\renewcommand{\familydefault}{\sfdefault}



\DeclarePairedDelimiter{\abs}{\lvert}{\rvert}
\DeclarePairedDelimiter\ceil{\lceil}{\rceil}
\DeclarePairedDelimiter\floor{\lfloor}{\rfloor}
\definecolor{darkspringgreen}{rgb}{0.09, 0.45, 0.27}
\definecolor{egyptianblue}{rgb}{0.06, 0.2, 0.65}
\definecolor{amber}{rgb}{1.0, 0.49, 0.0}
\definecolor{byzantine}{rgb}{0.74, 0.2, 0.64}
\definecolor{royalazure}{rgb}{0.0, 0.22, 0.66}
\definecolor{darkpastelgreen}{rgb}{0.01, 0.75, 0.24}
\definecolor{ashgrey}{rgb}{0.7, 0.75, 0.71}

\tcbuselibrary{theorems}

\newtcbtheorem[number within=section]{definition}{Definition}
{colback=blue!25,colframe=blue!25!black,fonttitle=\bfseries}{th}  

\newtcbtheorem[number within=section]{lemma}{Lemma}
{colback=blue!25,colframe=blue!25!black,fonttitle=\bfseries}{th}  

\newtcbtheorem[number within=section]{theorem}{Theorem}
{colback=blue!25,colframe=blue!25!black,fonttitle=\bfseries}{th}

\newtcbtheorem[number within=section]{corollary}{Corollary}
{colback=blue!25,colframe=blue!25!black,fonttitle=\bfseries}{th}



\newtheorem{assumption}{Assumption}
\newtheorem*{example*}{Example}
\newtheorem{reminder}{Reminder}


\newcommand{\jacobi}[2]{\genfrac{(}{)}{}{}{#1}{#2}}
\newcommand{\JNM}{\mathcal{J}_n^{-1}}
\newcommand{\JNP}{\mathcal{J}_n^{+1}}
\newcommand{\legendre}[2]{\genfrac{(}{)}{}{}{#1}{#2}}
\newcommand{\norm}[1]{\| {#1} \|}
\newcommand{\QR}[1][n]{\mathcal{QR}_{#1}}
\newcommand{\QNR}[1][n]{\mathcal{QNR}_{#1}}
\newcommand{\PSQR}[1][n]{\mathcal{PSQR}_{#1}}
\newcommand{\SQRT}[2]{\mathcal{SQRT}_{#2} {(#1)}}
\newcommand{\ZNZ}[1][n]{\mathbb{Z}/{#1}\mathbb{Z}}
\newcommand{\ZNZX}[1][n]{(\mathbb{Z}/{#1}\mathbb{Z})^\times}


\begin{document}
    
This document is a sample document to 
test font families and font typefaces.

\end{document}

答案1

为了设置默认字体系列,仅仅说

\fontfamily{<family>}\selectfont

在文档的任何地方。你可以在序言中找到它,但 LaTeX 总是\normalfont在环境开始时执行document

“正确”的声明是\renewcommand{\familydefault}{<family>},但一般来说最好使用字体包。

在您的情况下,您可以tgschola将文本和fouriernc数学结合起来;后者提供与 New Century Schoolbook 兼容的数学字母,而 TeX Gyre Schola 是其克隆版。

声明的顺序应该是

\usepackage{fouriernc}
\usepackage{tgschola}

因为fouriernc选择了自己的《新世纪教科书》克隆版。

答案2

原因比其他答案更简单。你选择

\usepackage{lmodern}

更改后\fontfamily。这会用 Latin Modern 覆盖您选择的字体。将其更改为:

\usepackage{tgschola}

按照 egreg 的建议。或者,如果您仍然想要 Latin Modern Sans 和 Latin Modern Mono,则在加载之后加载fouriernctgschola如果您是从文档模板中复制软件包列表开始的,那么最好尝试注释掉每个您不确定是否需要的软件包,然后看看是否真的需要。

在现代工具链中,你可以用以下代码替换大部分序言:

\usepackage{mathtools, amsthm} % The order in which you load these matters.
\usepackage{unicode-math}
% Other packages you need, such as graphicx and xcolor.
% You can drop most of the packages, including latexsym,
% amssymb, fontenc, inputenc, amsfonts and lmodern.

\setmainfont{TeX Gyre Schola}
\setmathfont{TeX Gyre Schola Math}

这将使用现代 OpenType 版本的字体。

相关内容