Skip to content
Snippets Groups Projects
Commit 99dc6601 authored by Yu Xiong's avatar Yu Xiong :confounded:
Browse files

fix: 修复字号和页眉的问题

parent e0c70d12
No related branches found
No related tags found
No related merge requests found
......@@ -168,6 +168,11 @@
% 生成封面页
\maketitle
% 为了防止目录出现较多 underfull \vbox 警告
% 模板中使用了 \raggedbottom 选项
% 希望排版效果更好可以反注释以下命令
% \flushbottom
\begin{abstract}
中文摘要
\end{abstract}
......
This diff is collapsed.
\chapter{配置环境}
\textbf{特别提醒:本章文字仅供格式示例,内容已停止维护,请参考宏包手册进行设置}
\section{本地编译}
\subsection{安装\hologo{TeX}发行版}
首先需要下载\hologo{TeX}软件发行版,校园网环境中使用\href{https://mirror.nju.edu.cn/download/app/TeX%20%E6%8E%92%E7%89%88%E7%B3%BB%E7%BB%9F}{南大镜像站}可以获得最好的体验。\textbf{推荐使用最新的\hologo{TeX}\,Live 2021或者\hologo{MiKTeX} 21以避免潜在的兼容性问题。}
\begin{itemize}
\item 为了避免不必要的麻烦,请尽可能下载 full 版本,如 texlive-full。简而言之,下载大的那个。
\item 并且,尽可能使用最新版(截至目前是 2021)。2020 及之前版本使用 PDF 格式的图片可能会出现加粗问题。
\end{itemize}
下表是目前经过测试的环境。如果有其他可用不可用的环境,欢迎补充。
\begin{table}[ht]
\caption{经过测试的环境}
% \label{tab:1}
\begin{tabular}{ccc}
\toprule
OS & TeX & 测试情况 \\
\midrule
Windows 10 & \hologo{TeX}\,Live 2021 & 通过 \\
Windows 10 & \hologo{MiKTeX} & 通过 \\
Windows 10 & \hologo{TeX}\,Live 2020 & cref存在格式问题 \\
macOS 10.15 & \hologo{TeX}\,Live 2021 & 通过 \\
Ubuntu 20.04 & \hologo{TeX}\,Live 2021 & 通过 \\
\bottomrule
\end{tabular}
\end{table}
\subsection{选择编辑器}
配置完编译器后,还需要一个\textbf{文本编辑器}作为前端来完成\texttt{.tex}文件内容的写作。
至今仍有相当一部分人认为Windows自带的\textit{记事本}是最好的文本编辑器,但对于本项目而言,在此诚心诚意地推荐你使用\textbf{更现代更美观更多功能}的编辑器,譬如\emph{安装了 LaTeX Workshop 插件 的 \href{https://code.visualstudio.com/}{Visual Studio Code}},来完成论文编写。你也可以根据个人的喜好随便使用其他编辑器,如 TeXworks、TeX Studio 等,顺手就行。
若使用 LaTeX Workshop 插件,本项目在\lstinline|.vscode/|中提供一份简易配置,可以省略初始配置步骤直接使用。
\subsection{编译顺序}
应采用以下命令顺序进行编译,以生成正确的目录、编号和参考文献条目。
\begin{enumerate}
\item \lstinline|xelatex| / \lstinline|lualatex|
\item \lstinline|biber|
\item \lstinline|xelatex| / \lstinline|lualatex|
\item \lstinline|xelatex| / \lstinline|lualatex|
\end{enumerate}
编译产物\footnote{作为化学学生,俺认为用“产物”代替“编译生成的文件”是一个通俗易懂的说法}\lstinline|njuthesis.pdf|,位于主目录下。此外还会生成一系列中间文件,可以选择使用\lstinline|latexmk -c|进行清理。
\section{在线编译}
相信你在接触了本地编译以后,很快就会意识到一些十分显然的事实,譬如\hologo{TeX}编译器安装过程较为漫长,占用空间过大,而且在一部分处理器性能不佳的电脑上需要较长编译时间\footnote{其实这三点都是对广大的Windows用户说的,同一个模板在Linux编译可以节省一半耗时}。拒绝接受这些麻烦的同学不妨尝试本节介绍的在线编译方法。
\subsection{南大\hologo{TeX}平台简介}
\href{https://tex.nju.edu.cn}{南大\hologo{TeX}}基于开源的ShareLaTeX平台\footnote{理论上在\href{https://doc.nju.edu.cn/books/latex}{这个网站}能找到一段平台简介,实际上大家都有意无意地鸽了,下次一定补上。},于2021年3月4日正式上线,面向南京大学全体师生开放,首次使用需凭学校邮箱自助注册账号。
\subsection{操作步骤}
\begin{enumerate}
\item 下载\href{https://github.com/nju-lug/NJUThesisUndergraduate/archive/refs/heads/master.zip}{模板全部文件}
\item 访问\href{https://tex.nju.edu.cn}{南大\hologo{TeX}},点击界面右上方Register,使用\emph{南京大学邮箱}注册账号并登录
\item 点击New Project -> Upload Project上传刚刚得到的zip文件,上传后njuthesis.tex、njuthesis.cls等文件应在根目录,目录结构如\cref{{sec:directory}}所示
\item 在项目页面左上角的Menu中,将编译器更改为支持中文的\hologo{XeLaTeX}或者\hologo{LuaLaTeX}
\item 编写论文
\item 点击Compile按钮进行编译和预览
\item 点击编译按钮右侧第三个按钮下载产物
\end{enumerate}
\subsection{关于Overleaf平台}
由于\href{https://www.overleaf.com/}{Overleaf平台}\hologo{TeX}\,Live版本停留在2020,\texttt{cleveref}包在引用章节时会生成错误的标签,引发格式错误;而南大\hologo{TeX}通过及时更新规避了这一问题。因此\emph{请务必不要使用Overleaf官网进行编译}
\section{字体}
学校论文格式要求使用的字体一般已经预装在各个操作系统,本模板针对不同平台进行了自动检测适配,可以开箱即用。
各个系统的默认字体请参考\cref{tab:defaultfontset}。可以看到,不同系统上使用的字体有所差别,实际输出结果可能存在细微不同, 使用时请注意。例如,在Linux平台或者使用了Ubuntu后端的南大\hologo{TeX}上,宋体加粗效果更明显;另一方面,在Windows平台进行编译的效果更接近Word加粗\footnote{因为SimSun没有原生粗体,通过AutoFakeBold=2.17进行模仿}
% \begin{enumerate}
% \item Ubuntu 下遇到缺失字体 WenQuanYi Zen Hei Mono 或 Times New Roman的问题:
% 安装对应字体即可。使用以下指令下载:
% \begin{lstlisting}
% sudo apt install fonts-wqy-zenhei ttf-mscorefonts-installer
% \end{lstlisting}
% \item macOS 下提示 Package fontspec Warning: Font "STSong" does not contain requested Script "CJK"
% 忽略即可,不影响使用。该警告已被抑制。
% \end{enumerate}
指定字体的相关命令写于\texttt{profile/font.sty}
该文件中也预留有使用方正字体或者思源字体的命令,涉及的字体见\cref{tab:userfontset},可根据个人喜好进行修改选择。
\begin{table}[htbp]
\caption{操作系统预装字体清单}
\label{tab:defaultfontset}
\begin{tabular}{cccc}
\toprule
类型 & Windows & macOS & Linux \\
\midrule
西文衬线 & Times~New~Roman & Times~New~Roman & TeX~Gyre~Termes \\
西文无衬线 & Arial & Arial & TeX~Gyre~Heros \\
西文等宽 & Courier~New & Menlo & TeX~Gyre~Cursor \\
宋体 & SimSun & Songti~SC~Light &FandolSong-Regular \\
黑体 & SimHei & Heiti~SC~Light & FandolHei-Regular \\
仿宋 & FangSong & STFangsong & FandolFang-Regular \\
楷体 & KaiTi & Kaiti~SC & FandolKai-Regular \\
\bottomrule
\end{tabular}
\end{table}
如果 Ubuntu 下遇到缺失字体 Times New Roman 的问题,安装对应字体即可。使用以下指令下载:
\begin{lstlisting}
sudo apt install ttf-mscorefonts-installer
\end{lstlisting}
\begin{table}[htbp]
\caption{预留的自定义中文字体清单}
\label{tab:userfontset}
\begin{tabular}{ccc}
\toprule
类型 & 方正 & 思源 \\
\midrule
宋体 & FZSSK & Noto~Serif~CJK~SC \\
黑体 & FZHTK & Noto~Sans~CJK~SC \\
仿宋 & FZFSK & 方正仿宋简体 \\
楷体 & FZKTK & 方正楷体简体 \\
\bottomrule
\end{tabular}
\end{table}
\subsection{修改字体配置}
本模板提供了若干个字体相关的控制选项,已于\cref{sec:classoptions}初步进行介绍。如果希望覆盖检测系统字体的命令(譬如在Linux编译时使用Windows字体样式),请将
systemfont设置为false,并通过customlatinfont和customchinesefont进行选择。
全部字符集命令如下所示。
\begin{description}
\item[\texttt{\textbackslash set\textunderscore latin\textunderscore fontset\textunderscore windows}] Windows英文字符集
\item[\texttt{\textbackslash set\textunderscore chinese\textunderscore fontset\textunderscore windows}] Windows中文字符集
\item[\texttt{\textbackslash set\textunderscore latin\textunderscore fontset\textunderscore macos}] macOS英文字符集
\item[\texttt{\textbackslash set\textunderscore chinese\textunderscore fontset\textunderscore macos}] macOS中文字符集
\item[\texttt{\textbackslash set\textunderscore latin\textunderscore fontset\textunderscore gyre}] Linux英文字符集
\item[\texttt{\textbackslash set\textunderscore chinese\textunderscore fontset\textunderscore fandol}] Linux中文字符集
\item[\texttt{\textbackslash set\textunderscore chinese\textunderscore fontset\textunderscore founder}] 方正中文字符集
\item[\texttt{\textbackslash set\textunderscore chinese\textunderscore fontset\textunderscore noto}] 思源中文字符集
\end{description}
对于需要进一步自定义的同学,可以将CustomEnFont和CustomZhFont设置为null,自行在导言区设置字体。
\chapter{绪论}
\textbf{特别提醒:本章文字仅供格式示例,内容已停止维护,请参考宏包手册进行设置}
\section{简介}
南京大学学位论文\hologo{LaTeX}模板\cite{njuthesis}基于本科生院的论文撰写规范制作,同时参考研究生院提供的硕士、博士学位材料包,用于生成符合南京大学学位论文排版要求和相应的国家规范、行业标准的学位论文,旨在为同学提供毕业论文书写的方便。
此模板通过LPPL协议开源,目前已\href{https://ctan.org/pkg/njuthesis}{发布在CTAN}
如有模板问题或者版权问题,请于Github项目主页上\href{https://github.com/nju-lug/NJUThesis/issues}{提出issue}
\begin{quotation}
请注意,本示例文档内容\textbf{存在较多过时之处},请参考.dtx文件生成的使用手册以获得准确的参考。
\end{quotation}
\section{开发环境}
本模板的开发维护主要在\hologo{MiKTeX}\hologo{TeX}\,Live\,2021下进行,内部代码主要由\lstinline|expl3|宏包提供的\hologo{LaTeX3}语法实现。
\section{目录结构}
\label{sec:directory}
\begin{lstlisting}[language=bash]
│ njuthesis.bib
│ njuthesis.cls
│ njuthesis.tex
├─figure
│ njulogo.pdf
│ njuname.pdf
└─profile
abstract.sty
components.sty
cover.sty
font.sty
packages.sty
page.sty
reference.sty
\end{lstlisting}
\subsection{文件说明}
\begin{description}
\item [\texttt{abstract.sty}] 定义中英文摘要环境及相关格式
\item [\texttt{components.sty}] 定义图片、表格、代码、数学环境样式
\item [\texttt{cover.sty}] 定义论文封面内容
\item [\texttt{font.sty}] 重定义CTeX宏集的默认字体,因为CTeX字体加粗要求不满足论文规定
\item [\texttt{package.sty}] 存放所有被引用的包
\item [\texttt{page.sty}] 定义正文页面、标题以及目录条目格式
\item [\texttt{reference.sty}] 定义引文格式
\end{description}
\section{自定义选项}
\label{sec:classoptions}
njuthesis类提供了若干个可以自定义的选项,如下所示。
\begin{description}
\item[\texttt{titlelength}] 标题长度,用于控制封面标题的行数。可选值为1、2、3,缺省值为1。
\item[\texttt{secondmentor}] 是否有第二导师,用于在封面和摘要添加第二导师,缺省值为false。
\item[\texttt{nlcover}] 是否需要国家图书馆封面,缺省值为false。
\item[\texttt{degree}] 学位类型,本科学位为ug,即undergraduate的缩写;学术型硕士学位为mg;硕士专业学位为mf;博士学位为phd。
\item[\texttt{type}] 用于选择文档类型并将相关字段输出在封面和摘要页。可选值包括thesis(表示毕业论文)和design(表示毕业设计),缺省值为thesis。
\item[\texttt{systemfont}] 是否用系统字体,用于自动检测运行系统并使用预装字体,缺省值为true。
\item[\texttt{customlatinfont}] 用于选择自定义英文字符集。可选值包括windows, macos, gyre, null,缺省值为windows。
\item[\texttt{customchinesefont}] 用于选择自定义中文字符集。可选值包括windows, macos, fandol, founder, noto, null,缺省值为windows。
\end{description}
\chapter{页面布局}
\textbf{特别提醒:本章文字仅供格式示例,内容已停止维护,请参考宏包手册进行设置}
本模板格式依照《11-南京大学毕业论文(设计)的撰写规范和装订要求》进行调整,文件内容详见\cref{chap:standard}
\section{封面页}
\texttt{cover.sty}中定义了生成封面的相关命令
\subsection{第二导师}
secondmentor 用于指定是否在封面打印第二导师
\subsection{国家图书馆封面}
对于研究生,本模板提供了nlcover 用于生成国家图书馆封面
\subsection{文档类型}
如果编写的是毕业设计,请参考\cref{sec:classoptions},将Type选项改为design。
\subsection{多行标题}
为了使较长的论文题目也能美观地呈现在封面页上,njuthesis类提供了\texttt{TitleLength}这一选项,用于控制封面标题的行数。该命令已于\cref{sec:classoptions}进行介绍,可以在\texttt{njuthesis.tex}文件开头的类定义中找到,可选值为1、2、3,缺省值为单行标题。
\subsection{输入个人信息}
\texttt{njusetup}定义了用于文档封面的诸多属性参数,
写作时修改相应字符串即可。注意不要有空行,否则可能报错
\begin{lstlisting}
\njusetup {
info = {
<type> = <myinfo>;
}
}
\end{lstlisting}
\subsubsection{论文标题}
\begin{description}
\item[\texttt{TitleA}] 单行标题,或多行标题的第一行。关于是否应该折行,单行能容纳的最长标题为\emph{15个中文字符},请自行选择合适的截断处。
\item[\texttt{TitleB}] 多行标题的第二行
\item[\texttt{TitleC}] 多行标题的第三行
\item[\texttt{TitleEN}] 英文标题,注意空格要用波浪线(\textasciitilde)替代
\end{description}
\subsubsection{个人年级、学号、姓名}
\begin{description}
\item[\texttt{Grade}] 年级
\item[\texttt{StudentID}] 本科生为9位数字学号,研究生为两位英文字母标识加8位数字学号,两位字母自动大写
\item[\texttt{StudentName}] 姓名
\item[\texttt{StudentNameEN}] 姓名拼音
\end{description}
\subsubsection{就读院系专业}
本科生无需填写研究方向。
\begin{description}
\item[\texttt{Department}] 学院名称
\item[\texttt{DepartmentEN}] 学院英文名称
\item[\texttt{Major}] 专业名称
\item[\texttt{MajorEN}] 专业英文名称
\item[\texttt{Field}] 研究方向
\item[\texttt{FieldEN}] 研究方向英文名称
\end{description}
\subsubsection{导师信息}
注意标注A的为第一导师
\begin{description}
\item[\texttt{Mentor<A/B>}] 导师姓名
\item[\texttt{Mentor<A/B>EN}] 导师姓名的英文拼音
\item[\texttt{Mentor<A/B>Title}] 导师职称
\item[\texttt{Mentor<A/B>TitleEN}] 导师职称英文
\end{description}
\subsubsection{提交日期}
\begin{description}
\item[\texttt{SubmitDate}] 论文提交日期
\end{description}
\subsubsection{答辩信息}
除答辩日期以外,本部分内容仅用于国家图书馆封面。本科生忽略即可。
答辩委员会姓名与职称之间需使用波浪线连接。
\begin{description}
\item[\texttt{DefendDate}] 答辩日期
\item[\texttt{ReviewerChairman}] 答辩委员会主席的姓名及职称
\item[\texttt{Reviewer<A/B/C/D>}] 四位评阅人的姓名及职称
\end{description}
\subsubsection{国家图书馆封面相关信息}
本部分内容仅用于国家图书馆封面。本科生忽略即可。
\begin{description}
\item[\texttt{Classification}] 分类号
\item[\texttt{SecurityLevel}] 限制
\item[\texttt{UDC}] UDC
\item[\texttt{MentorInfo}] 指导教师职务、职称、学位、单位名称及地址
\end{description}
\section{摘要页}
\texttt{profile/abstract.sty}提供了摘要页格式的定义。
\begin{lstlisting}
\begin{abstract}
<text>
\keywords{<keywords>}
\end{abstract}
\begin{englishabstract}
<text>
\englishkeywords{<keywords>}
\end{englishabstract}
\end{lstlisting}
摘要页一般不插入目录,默认只添加pdf书签。如确实有插入目录的需求,请在\texttt{abstract.sty}文件中定位到如下语句
\begin{lstlisting}[language=TeX]
% \phantomsection\addcontentsline{toc}{chapter}{中文摘要}
\pdfbookmark[0]{中文摘要}{中文摘要}
\end{lstlisting}
将其修改为
\begin{lstlisting}[language=TeX]
\phantomsection\addcontentsline{toc}{chapter}{中文摘要}
% \pdfbookmark[0]{中文摘要}{中文摘要}
\end{lstlisting}
在使用\hologo{LuaLaTeX}编译时,研究生中文摘要页的标题会出现空格无下划线的问题,目前正在积极寻求解决方法。
\section{前言页}
使用preface环境定义
\begin{lstlisting}
\begin{preface}
<text>
\end{preface}
\end{lstlisting}
\section{目录页}
目录页格式定制于\texttt{profile/page.sty}
\section{正文}
正文格式定制于\texttt{profile/page.sty}
页边距在\texttt{profile/packages.sty}
本科生无页眉,页面编号居中位于页脚;研究生无页脚,页眉包括章节名和页面编号。
% 对中文加下划线请使用xeCJKfntef包的CJKunderline命令代替uline,以解决中文的换行问题
\section{参考文献页}
需要使用biber手动编译才会显示,具体内容参考\cref{chap:reference}
\section{致谢页}
同前言,使用acknowledgement环境
\begin{lstlisting}
\begin{acknowledgement}
<text>
\end{acknowledgement}
\end{lstlisting}
\section{附录页}
附录放在\lstinline|\appendix|命令后,以英文字母进行编号
......@@ -2,7 +2,10 @@
% 本文档用于测试 njuthesis 是否正常工作
% 其内容不具有任何参考意义
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\documentclass[degree=phd,nlcover]{njuthesis}
% \documentclass{njuthesis}
% \documentclass[degree=mg]{njuthesis}
\documentclass[degree=mf]{njuthesis}
% \documentclass[degree=phd,nlcover]{njuthesis}
\njusetup {
info = {
......@@ -46,6 +49,7 @@
\begin{document}
% \frontmatter
\maketitle
\input{chapters/Abstract}
......@@ -57,9 +61,14 @@
\mainmatter
\input{chapters/Introduction}
\input{chapters/Environments}
\input{chapters/Layout}
% \flushbottom
\chapter[非常长的标题不好看]{如果标题非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常长会怎样呢}
\section[还是用短点的吧]{如果标题非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常非常长会怎样呢}
答案是使用可选参数:\verb+\chapter[短描述]{完整的长标题}+
\zhlipsum[1-20][name=zhufu]
\input{chapters/FigTabCode}
\input{chapters/Mathematics}
\input{chapters/Reference}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment