Giter Club home page Giter Club logo

njuthesis's Introduction

NJU Thesis: 南京大学学位论文 LaTeX 模板

build status CTAN GitHub release overleaf nju-git

njuthesis 是制作南京大学本科生毕业论文、研究生学位论文、博士后出站报告的 LaTeX 文档类。本模板基于本科生院的论文撰写规范制作,同时参考研究生院提供的硕士、博士学位材料包,用于生成符合南京大学排版要求和相应的国家标准的学位论文,力求通过 LaTeX3 语法实现清晰的实现逻辑、较高的可定制性以及友好的用户接口。

快速开始

请首先阅读用户手册,其中详尽阐述了模板的特性和使用方法。

对于普通用户,首要推荐使用下述的南大 TeX 编译方法

南大 TeX 编译

南大 TeXeScience 中心为南大在校师生提供的在线 LaTeX 写作平台,已安装有本模板的最新版。注册登录后,只需在创建新项目菜单中选择论文模板即可开始写作。

使用本平台时,请积极备份自己的文稿。

本地编译

推荐使用包管理器安装 njuthesisnjuvisual 的最新版。

新手同学不妨直接使用以下流程:

  1. 从南大镜像站下载并安装最新的 TeX 发行版,并更新所有宏包
  2. 下载包含模板全部文件的压缩包 njuthesis-user-v*.zip
  3. 根据需要更改 njuthesis-sample.tex 文件中的内容
  4. 在模板根目录下运行 latexmk -xelatex 运行编译,得到对应的 PDF 文件

典型结构

\documentclass{njuthesis}
\njusetup{}
\begin{document}
\maketitle
\tableofcontents
\mainmatter
\chapter{欢迎}
使用 \LaTeX{}!
\printbibliography
\end{document}

反馈

在你遇到模板问题时,请遵守以下步骤:

  1. 在《修订记录》查看该问题是否已经修复但未发布;
    • 若是,则可以使用仓库中的开发版本解决问题
  2. GitHub IssuesDiscussions 中搜索该问题的关键词;
  3. 浏览本项目 Wiki用户手册
  4. 在你确定这是一个新问题时
    • 对于模板 bug、请求新功能、文档笔误等提出新 issue
    • 对于用法的疑惑、格式上的斟酌等提出新 discussion
    • 两个划分不绝对,区别在于 issue 是解决即关闭的
    • 如果确实重复了,会打上 duplicate 标签并将你引导至本问题首条提问

如果导师或院系有额外要求,请一同附上要求原文或格式截图。

贡献

欢迎提交 PR

许可

本模板的发布遵守 LaTeX Project Public License(版本 1.3c 或更高)

njuthesis's People

Contributors

atxy-blip avatar fengchendian avatar glatavento avatar hermitsun avatar linyinfeng avatar muzimuzhi avatar myandeg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

njuthesis's Issues

博士论文模板开启国家图书馆封面后,原先的封面页(带校名和校徽)不显示

先决条件

期望的现象

开启国家图书馆封面后,国家图书馆封面和原先的封面页都显示

发生了什么

博士论文模板开启国家图书馆封面后,原先的封面页(带校名和校徽)不显示

最小工作示例

degree = phd,
nlcover = true,

操作系统

No response

TeX 发行版

No response

编译引擎

No response

njuthesis 模板版本

0.14.0

模板获取途径

No response

额外信息

No response

[Bug]: 数学字体加粗问题

Discussed in #89

Originally posted by Linkzhuu March 6, 2022
使用$\boldsymbol{m}$有如下报错
Missing character: There is no 𝑚 ("1D45A) in font cmr12!

我私下也有收到反馈,说 bm 包没有用。这可能是 unicode-math 配置数学字体时出了问题。

Package array Error: Illegal pream-token (|): `c' used. ^^I^^I^^I\begin{tabular}{|c|c|c|c|c|c|c|}

描述
编译表格出错

最小工作示例

\begin{table}[htbp]
	\setlength{\belowcaptionskip}{7pt}
	\centering
	\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|}
		\hline
		&   & 国 & 内 & 企 & 业 & 包 & 括 & 许 & 多 \\
		\hline
		& 0 & 1  & 2  & 3  & 4  & 5  & 6  & 7  & 8  \\
		\hline
		国 & 1 & 0  & 1  & 2  & 3  & 4  & 5  & 6  & 7  \\
		\hline
		著 & 2 & 1  & 1  & 2  & 2  & 3  & 4  & 5  & 6  \\
		\hline
	\end{tabular}
	\vspace{0.2cm}
	\caption{编辑距离(乐文斯汀距离计算过程示例表格。字符串``国内企业包括许多''与``国著名括许多''乐文斯汀距离是3。}\label{table:ld}
\end{table}

截图
image

平台信息
在发生编译问题时提供。

  • 操作系统:Windows 10
  • TeX 发行版:TeX Live 2021
  • 编译命令:xelatex

[Bug]: 部分汉字无法显示出来

先决条件

期望的现象

能显示 珺 这个字

发生了什么

我的名字中含有 珺 这个字,但是在编译后无法显示出来,将编译后的PDF下载下来,珺字的位置显示为F。
使用的是南大在线编译网站,两种编译器都试过了,但都不行。

最小工作示例

author = {xx珺}

njuthesis 模板版本

0.15.0

模板获取途径

https://tex.nju.edu.cn

操作系统

macOS

TeX 发行版

TeX Live 2021

编译引擎

XeLaTeX

额外信息

No response

[FEATURE] 合并导师姓名职称设置选项

目前模板的导师设置选项最开始是为构建本科封面编写的。本科生封面上将导师的姓名职称分开,很自然地产生了两个选项。然而,研究生需要英文封面,前面说的两个选项就变成了四个;再加上可能有的双导师配置,就变成了八个,显然太多了。另一方面,仅仅是本科生封面要求分开填写,其余所有的包括摘要、研究生封面都是将导师的姓名职称合并呈现的。

目前想法是采取 ! 作为姓名职称的分隔符,在本科模板中使用正则表达式分割,在研究生模板中直接替换成空格。


顺手发现了一个 bug:目前本科生封面第二导师的职称内容会输出为第一导师的。

使用xtemplate模板重新定制页面格式

目前的封面页绘制命令实际上使用的是 LaTeX2e 语法,定制命令较为繁琐。而通过 xtemplate 可以较为方便地创建页面对象。

  • 对标题进行自动换行,或者使用 ! 作为标题的手动换行控制符
  • 重新编写绘制封面信息栏的命令
  • 使用 xtemplate 创建封面页对象
  • 将固定文本分离为单独的 .def 文件

改进成果列表环境

今天改动参考文献设置的时候觉得应该顺手把成果列表环境也修整一下,于是找到了下面这个回答对作者名加粗的实现方法,大概原理是在匹配到特定姓名时对其套用格式。然而下午尝试使用 l3 语法进行改写时并没能实现效果。

https://tex.stackexchange.com/a/327046

不知有没有人会用这个预置的成果环境,留待寒假慢慢整。

在每章后附上参考文献表

Discussed in #75

Originally posted by zhoujian9410 February 13, 2022
参考文献较多,因此想分章节进行参考文献引用,想请教一下现在的模板能否实现这个目标呢?能的话应该如何设置?多谢各位大佬

现有的模板可以实现,但是要在每章套上一个 refsection 环境,显然不够简洁,需要纵深满足用户需求,开创新打法,扩展产品路线。

第一想法当然是包装一下 input,很简单就能实现:

\NewDocumentCommand \inputchapwithbib { s m }
  {
    \begin{refsection}
      \input {#2}
      \bool_if:nTF {#1}
        {
          \printbibliography
            [ title = \bibname, heading = subbibliography ]
        }
        {
          \printbibliography
            [ title = \bibname, heading = subbibintoc     ]
        }
    \end{refsection}
  }

如果再想想的话,参考文献表在哪里其实是一个全局的设置,加个 style/bibafterchapter 这样的开关也许就好?具体实现方面大概是在 chapter 开始和结束的钩子上挂载第一想法的代码就好。这个的困难在于本人还没搞清楚 LaTeX 的钩子机制 Orz

关于引用参考文献的问题

1.使用\parencite{eckstein1989splitting,eckstein1992douglas,glowinski2008numerical,bertsekas2014parallel}后生成的引用格式为[3-6],请问该怎么引用才能编译出[3,4,5,6]这样的格式
2.使用手册中有写引用可以使用短横线,请问意思是使用短横线连接第一篇和最后一篇引用文献的标题,例如1中写成:
\parencite{eckstein1989splitting-bertsekas2014parallel}
就可以输出[3-6]的格式吗?
尝试这样使用会报错
image

求助!参考文献无法对齐

如下图例子所示,两个参考文献是一致的,第二能对齐是因为题目中的“graphene”多加了一个“p”

image

编译器TeXShop 版本4.62
mac系统 Monterey 12.1
模版版本 V0.13.1

bib文件如下:
@Article{PhysRevLett.103.246804,
author = {Riedl, C. and Coletti, C. and Iwasaki, T. and Zakharov, A. A. and Starke, U.},
date-added = {2021-12-28 18:44:52 +0800},
date-modified = {2021-12-28 19:33:41 +0800},
journal = {Physical review letters},
number = {24},
pages = {246804},
title = {Quasi-free-standing epitaxial grapphene on SiC obtained by hydrogen intercalation},
volume = {103},
year = {2009}}

@Article{riedl2009quasi,
author = {Riedl, Ch and Coletti, C and Iwasaki, T and Zakharov, AA and Starke, U},
date-modified = {2021-12-28 19:15:06 +0800},
journal = {Physical review letters},
number = {24},
pages = {246804},
publisher = {APS},
title = {Quasi-free-standing eeepitaxial graphene on SiC obtained by hydrogen intercalation},
volume = {103},
year = {2009}}

通过指定参数选择字体

目前字体默认根据操作系统指定,如需更改需要手动修改profile/font.sty,能否像ctex包那样通过指定fontset这一可选参数选择相应字体?

算法伪代码环境异常

您好,我在使用算法环境algorithm时出现异常,提示algorithm已被定义,在移除cls文件里面的algorithm定义后能正常编译,但是伪代码前后都有额外的空白,猜测是cls文件里某些设置影响到了algorithm包,自己尝试了一些方法都没解决,希望能在这里得到帮助,谢谢!

latex代码:
\begin{algorithm}[tbp]
\caption{Temp}
\begin{algorithmic}[1]
\STATE Temp
\end{algorithmic}
\end{algorithm}

PDF:
image

定制研究生模板声明页

#95 带来了一个新的问题:声明页可能有不同的样式,而且位置也不固定,有可能在封面后,也有可能在文档结尾(研究生院啊研究生院)。

目前模板是通过 decl-page 选项在 \maketitle 后自动生成一个声明。如果需要额外选择不同样式,或许删掉这个选项,然后用 \makedecl 命令替代比较好?这样用户就能手动选择哪个声明放在哪里了,也可以加上扫描件。可能的用法如:

\makedecl 
\makedecl[orig]
\makedecl[scanned={foo.pdf}]

如果这个选项改了,那干脆生成国家图书馆封面的 nlcover 选项也删了,只用 \maketitle* 的可选星号来实现?

研究生模板格式审查问题汇总

出于一些历史包袱,研究生院实际上没有提供统一的格式规定,而是交给各个院系出台规定。这个做法显然给模板制作者带来了挺大问题。

这个帖子用来征集格式研究生模板在审查方面相关的经历经验,包括:

  1. 院系详细规定
  2. 审查受阻原因
  3. 成功通过经历

请在回复中提供模板版本号和院系名称。

您好,有硕博的模板嘛?

您好,看了一下你们做的这个本科生的模板框架,感觉很优秀啊,给你们点赞,太强了。
想问一下有硕博论文的模板嘛?

[Bug]: LuaLaTeX未能检测到某些字型

在macOS找不到KaitiSC。

Font shape `LTJY3/SimHei(0)/b/n' undefined
(Font)	using `LTJY3/SimHei(0)/m/n' instead.
Font shape `LTJY3/SimSun(0)/m/sc' undefined
(Font)	using `LTJY3/SimSun(0)/m/n' instead.
Font shape `LTJY3/FangSong(0)/b/n' undefined
(Font)	using `LTJY3/FangSong(0)/m/n' instead.

[FEATURE] 增加选项以方便更改mathcal和mathbb字体为计算机论文中的常用样式

现有模板的不便之处
现有模板基于Unicode-math引入的数学字体中,mathcal字体与常用的版本(也是latex默认的版本)不符,mathbb字体也与很多英文论文模板(如ICML,AAAI)里的字体不同。

提出可能的解决方案
增加选项重置mathcal字体为latex默认的版本,更改mathbb为New Computer Modern Math字体

提出考虑过的方案
\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}
\setmathfont{NewCMMath-Regular.otf}[range={bb}]

额外信息
参见UCL/ucl-latex-thesis-templates#19

[Bug]: 英文摘要首页 THESIS 分行不正确

先决条件

期望的现象

image

发生了什么

image

长标题和长单词在换行时会导致摘要页标题的第二行为空。

最小工作示例

\njusetup {
    info = {
        title* = { This is My LongLongLong LongLongLong LongLongLong LongLongLong LongLongLong LongLongLong LongLongLong English Title },
    }
}

njuthesis 模板版本

0.15.0

模板获取途径

https://tex.nju.edu.cn

操作系统

No response

TeX 发行版

No response

编译引擎

XeLaTeX

额外信息

tex.nju.edu.cn 当前默认的模板版本。

将njuvisual拆分为单独宏包

为了方便扩充njuvisual包的功能以及增强可维护性,目前计划将这个包从njuthesis中拆出,作为一个单独宏包上传至CTAN。

这个拆分工作包括:

  • 建立njuvisual的仓库,转移已有代码
  • 完成文档并上传至CTAN
  • 删除njuthesis中的相关说明和代码,并将原有说明文字引导至新的宏包
  • 修改打包脚本,在线编译包仍保留njuvisual.sty

[FEATURE] 术语表页&表格的格式问题

现有模板的不便之处

希望能在正文前添加一页术语表,形式如同前言页。且该页中的表格不被表目录页统计,也不需要给这个表编号

表格好像不会自动换行,若一行内容过多会超出右页边距。

请问如何修改参考文献的样式

在mathscinet上下载bibtex后将其复制到njuthesis-sample.bib中:
@ CMI~}P)95(6Q~V%F78M94
编译后得到参考文献样式为:
image
请问改如何修改,可以将参考文献样式更改为以下形式:
image
主要修改有:
1.作者姓名缩写的顺序变化
2.作者姓名只有首字母大写

修正页眉格式

过长的章节标题会在页眉中重叠。

需要将页眉修改为单双页分别显示的样式。

最新版本引用出错

添加自己的引用之后报错,请问该如何处理?

另外,添加\usepackage{subfigure} 也报错

[Bug]: 表格中单元格底色着色 xcolor 包引入错误

先决条件

期望的现象

\usepackage[table,xcdraw]{xcolor}后
在正文中添加表格中使用\cellcolor[HTML]{ECF4FF}3
应当正确为单元格着色
(在小论文中是能正常使用的)

发生了什么

无法识别,并且报错
Latex Error:Option clash for package xcolor

最小工作示例

\documentclass[]{njuthesis}
\usepackage[table,xcdraw]{xcolor}
\begin{document}

\begin{table}[]
\begin{tabular}{lll}
1 & 2 & 3 \\
1 & \cellcolor[HTML]{FE0000}3 & 5 \\
1 & 4 & 7
\end{tabular}
\end{table}

\end{document}

操作系统

No response

TeX 发行版

TeX Live 2021

编译引擎

XeLaTeX

njuthesis 模板版本

快更新吧

模板获取途径

通过 GitHub Releases 或镜像站下载

额外信息

overleaf编译 v0.15.0

重构定理环境

现有的定理环境定义过于臃肿,可以用 ntheorem 包进行重构。

LuaLaTeX编译不能生成正确的pdf书签

下载 Github Actions 用 LuaLaTeX编译的pdf发现,目录、中英文摘要,以及目录中的章节名称均不能正确跳转,而 XeLaTeX 生成的pdf结果正确。

documentclass degree 适配问题

修改 \documentclass degree 为 mf, ug, mg 均会出现下图所示类似情况, 150pt , 14em 之类

我在南大 overleaf 编译的

image

Loop for reviewer list

Use a loop to print committee list instead of enumerating mannually in case of a committee more that 4 people, like the following codes:

\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}l}
  Thesis~Examination~Committee & \\
  \int_do_while:nNnn {\l_@@_reviewer_index_int} < {\l_@@_reviewer_clist_len_int}
  {
    \int_eval:n \l_@@_reviewer_index_int .~ 
    \clist_item:Nn \l_@@_info_reviewer_clist {\l_@@_reviewer_index_int} &
    \clist_item:Nn \l_@@_info_reviewer_dept_clist {\l_@@_reviewer_index_int} \\
    \int_gincr:N \l_@@_reviewer_index_int
  }
  \makecell[l]{\int_eval:n \l_@@_reviewer_clist_len_int .~ \clist_item:Nn \l_@@_info_reviewer_clist {\l_@@_reviewer_clist_len_int} \\ \phantom{placeholder}} & \makecell[l]{\clist_item:Nn \l_@@_info_reviewer_dept_clist {\l_@@_reviewer_clist_len_int}}
\end{tabular*}

https://github.com/HKFoggyU/hkust-thesis/blob/9d6254d72764ba0f7e65b2a8d529cd586bad329f/hkustthesis.dtx#L1355-L1365

博士论文模板,页眉内容完善

先决条件

期望的现象

查阅了多篇博士毕业论文,大多数页眉
左侧:“南京大学博士毕业论文”
右侧:章节内容如“第一章 绪论”

且不分奇偶页,与项目文档修订记录中描述的研究生模板页眉样式不同

发生了什么

当前页眉显示在中间

最小工作示例

degree = phd,

操作系统

No response

TeX 发行版

No response

编译引擎

No response

njuthesis 模板版本

0.14.0

模板获取途径

No response

额外信息

No response

[Bug]: v0.14.0版本取消第二导师的注释之后没有显示

先决条件

期望的现象

学硕毕业论文模板degree=mg,使用是nju tex,编译器版本选择的是texlive-full:2020.1,编译选项尝试过XeLaTexLuaLaTex. 但是在生成的pdf文件中都没有出现第二导师的信息.

发生了什么

image
image
image
image

最小工作示例

\documentclass[degree=mg]{njuthesis}

\njusetup {
    info = {
        title = {第一行标题\\第二行标题\\第三行标题},
        title* = {My Title in English},
        author = {姓名},
        author* = {Ming Xing},
        keywords = {我,就是,充数的,关键词},
        keywords* = {Dummy,Keywords,Here,{It Is}},
        grade = {2017},
        student-id = {123456},
        department = {计算机科学与技术},
        department* = {Department of Computer Science},
        major = {计算机科学},
        major* = {Computer Science},
        supervisor = {第一导师,教授},
        supervisor*= {Professor Supervisor},
        supervisor-ii = {第二导师,副教授},
        supervisor-ii* = {Associate professor Second Supervisor},
        submit-date = {2021-08-10},
        field = {物理化学},
        field* = {Physical Chemistry},
        defend-date = {2021-09-19},
        chairman = {某某某~教授},
        reviewer = {
            某某某~教授,
            某某某~教授
        },
        clc = {0175.2},
        secret-level = {限制},
        udc = {004.72},
        supervisor-contact = {
            南京大学~
            江苏省南京市栖霞区仙林大道163号
        }
        % 导师联系方式
    },
    bib = {
        resource = {njuthesis-sample.bib}
    },
    style = {
        emblem-img = {nju-emblem},
        name-img = {nju-name}
    }
}

\begin{document}


\maketitle

\begin{abstract}
    中文摘要
\end{abstract}

\begin{abstract*}
    English abstract
\end{abstract*}

\tableofcontents
\listoffigures
\listoftables
\mainmatter


\chapter{引言}

\section{tDMRG}

矩阵乘积态也被用于含时薛定谔方程的求解,形成了含时密度矩阵重整化群方法\cite{schollwock2011}。

\printbibliography

\begin{acknowledgement}
    感谢 \href{https://git.nju.edu.cn/nju-lug/lug-introduction}{LUG@NJU}。
\end{acknowledgement}
\appendix

\end{document}

操作系统

Windows

TeX 发行版

No response

编译引擎

XeLaTeX

njuthesis 模板版本

0.14.0

模板获取途径

使用包管理器从 CTAN 安装

额外信息

No response

宏包内置校徽图片的打包问题

目前是在 njuthesis-logos.dtx 文件中内嵌了eps矢量图的代码,在本地编译效果完美,然而 Github Actions 生成的文档中图片边缘模糊。

考虑效仿 fduthesis,使用 tikz 进行绘制。

学位类型错误

njuthesis.dtx 的 1173 行左右,硕士学位缺少了 mf ,并且 mg 重复,导致 degree=mf 时无法运行

% \begin{macro}{degree}
% 学位类型。
%    \begin{macrocode}
  degree            .choices:nn   =
  { ug, mg, mg, phd }
  { \tl_set_eq:NN \l_@@_info_degree_tl \l_keys_choice_tl },  
  degree            .initial:n    =   ug,
%    \end{macrocode}
% \end{macro}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.