nudtpaper is a XeLaTeX thesis template for the National University of Defense Technology
A LaTeX template for Master/PhD Thesis of NUDT
At a glance
- What is it?
- nudtpaper is a LaTeX class and style set for writing master and doctoral theses at NUDT, with separate options for degree type, two-sided printing, spine output, font choice and bibliography engine, plus a proposal template, cover pages and a set of batch files for building the output. The template is Chinese-first and its licence is not recorded in the repository.
- Who is it for?
- nudtpaper suits a NUDT student writing a thesis or a 开题报告, since it ships the class file, the cover and spine generation chain, the anonymity options the school requires and the AI disclosure footnote the latest template asks for, all in one tree that compiles with XeLaTeX.
- Can I use it commercially?
- Not without permission. GitHub finds no licence file in the repository, and without a licence all rights are reserved by default: you may read the code but not reuse it. Check the README, or ask the authors, before using it.
- Is it still maintained?
- Yes. The repository last received commits 10 days ago.
- What is it written in?
- Mainly TeX, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The shape of the template
nudtpaper is a latex template for writing NUDT master/doctorial thesis, and the first section of the README tells you how to use it.
Use nudtpaper.cls directly and modify your thesis.tex. The contents in makefile may help you with the compiling procedure. Any third party packages or macros can be added in mynudt.sty.
That division is the important part. The class file is the institution's formatting, your own file is the content, and mynudt.sty is the place to put anything extra you need. It is the arrangement a LaTeX template should have, because it means a student can add a package without editing the class file and then lose that work on the next update.
The repository root shows the rest of the structure. There is nudtpaper.cls itself, plus nudtpaper.cfg, mynudt.sty, nudtx.sty, bookzh.sty, slashbox.sty and svgreek.sty, and a nomencl.ist. There is nudtpaper.dtx and nudtpaper.ins, the standard docstrip pair, which is how the class is distributed so that it can be unpacked rather than used directly. There is a data/ directory, a ref/ directory, a figures/ directory, a proposal/ directory and an a3cover/ directory.
The build tooling is a set of Windows batch files: makepdf.bat, makepdfbib.bat, maketest.bat, makeclear.bat, makeothers.bat and makecover.bat, alongside a makefile. The topics name latex, phd-thesis-template and xelatex, and the primary language of the repository is TeX.
The licence is recorded as unknown and there is no LICENSE file at the root, which matters for anyone who wants to base a template of their own on it. The last push was on 2026-10-13 and the single release listed is v20240119, tagged with the name nudt-thesis-template-20240919 in September 2024.
The options that change your output
The options are grouped in the README, and the grouping tells you which ones matter most.
Degree type comes first. master is for a master's thesis and is the default for a degree thesis. doctor is for a doctoral thesis. prof is for a professional master's, to be added when that applies. And graduate is for a graduation thesis, used when the paper is for graduation rather than for applying for a degree, in which case the corresponding originality statement also needs adjusting.
Page options come next. twoside gives double-sided printing with chapters starting on odd pages, which is the default requirement for a doctoral thesis. Without it the chapters run continuously with no blank pages. spline outputs the spine for the plagiarism-check version, where the printed copy needs a framed spine on the back of the cover; using the option inserts spineinthesis.pdf from the a3cover directory, which is generated from the matching spineinthesis.tex file and requires the thesis title information.
Fonts are the third group, and the options are ttf for the Windows fonts, otf for the Adobe fonts, fz for the Founder fonts, which have to be installed yourself, and fandol for the Fandol fonts. The README notes that if the default font is reported missing you should try switching the option or install the missing font. It also explains that FZ fonts are best for printing, your final version.
There is an escape hatch for fonts you already have. You can set the fonts yourself by adding code to the preamble, with the font names being ones present on your system, which you can list with the fc-list command:
%英文字体
\setmainfont{Times New Roman} %times.ttf
\setsansfont{Arial} %arial.ttf
\setmonofont{Courier New} %cour.ttf
%中文字体
\setCJKmainfont[BoldFont={STZhongsong}]{SimSun} STZHONGS.TTF,simsun.ttc
\setCJKsansfont{SimHei} % simhei.ttf
\setCJKmonofont{FangSong} % simfang.ttf
%要用的命令
\setCJKfamilyfont{song}{SimSun}
\setCJKfamilyfont{hei}{SimHei}
\setCJKfamilyfont{fs}{FangSong}
\setCJKfamilyfont{kai}{KaiTi} That block is worth reading as the template's own recommendation. The English fonts are the Windows defaults and the Chinese ones are SimSun, SimHei, FangSong and KaiTi, which is a set that maps onto the four Chinese typefaces a thesis is expected to use for body, headings, captions and code comments respectively.
Anonymity, the originality statement and the AI disclosure page
The version options are the part of the template that reflects the school's review process, and there are more of them than a newcomer expects.
anon produces the blind review version for review, with all the results information hidden. blind is the version submitted to the system, and adding it after the anon option lists the author's own published work as 第一作者,XXX in the author list. With neither anon nor blind, you get the open review version where all information is provided, including the originality statement. Before generating the open review version you need originalitystatement.pdf generated or scanned in the a3cover directory, and before generating the plagiarism-check version you need spineinthesis.pdf.
The originality statement has a subtlety worth reading twice. It only needs the signed confidential review version, meaning the signature time should match the confidentiality review time, and that scanned version can be reused for the later review and printing. The open review version inserts the originalitystatement.pdf from the a3cover directory by default, while the final version replaces the TeX-generated PDF with the signed scanned one.
The newest addition is the AI tools statement, and it is the part of the template that has moved recently. It is inserted immediately after the originality statement, you edit a3cover/aitoolstatement.tex directly and no separate compilation is needed. The page keeps the attachment template's example lines, the unchecked options and the blank title, signature and date fields, for you to fill in with the actual situation. When anon is enabled it is omitted along with the originality statement.
That is a specific and unusual thing for a thesis template to carry. It means the template treats the disclosure of AI tool use as a required page of the thesis rather than an afterthought, and the footnote machinery in the next section extends the same idea into the body of the text.
The AI tool footnote inside the text
Beyond the standalone statement page, the template has a mechanism for annotating individual pieces of content with the AI tools used, and it is the most demanding part of the README.
The mynudt.sty file already loads circledtext, tablefootnote and needspace, the footer footnotes use hollow circle numbering such as ①, ② and ③ and are numbered continuously through the document. The data/chap01.tex file demonstrates the annotations for chapter titles, section titles, body text and table titles, and the biblatex branch of thesis.tex demonstrates the annotation for the bibliography heading. The example text comes from the attachment the school provides, and you should fill in the actual tools and versions, the purposes, the dates and times, the prompts or inputs, and the author's review or modification.
In body text you use the footnote command directly:
\section[选题背景]{选题背景\texorpdfstring{\protect\footnotemark}{}}
\footnotetext{本节使用了……}The section form separates the marker from the footnote body so that the short title carries no footnote, which avoids pulling the marker into the table of contents, the running head or the PDF bookmarks. For a chapter title you replace section with chapter.
Table titles work differently because they need the note attached to the caption rather than to the paragraph. The example reserves twelve lines, and the README says to adjust that if you add table rows or lengthen the note:
\Needspace{12\baselineskip}
\begin{table}[H]
\centering
\captionsetup{singlelinecheck=false,justification=centering}
\caption[实验数据对比分析]{%
实验数据对比分析\protect\tablefootnote{本内容使用了……}}
% 表格内容
\end{table}The Needspace reservation is the detail that makes this work in practice. It prevents the table and its footnote from being split across a page boundary, and turning off local trial typesetting avoids the footnote being generated twice.
For the bibliography, the example uses the aiannotated heading so that the note text appears immediately after the heading, on the first page of the references. If you do not want the annotation, you change heading=aiannotated back to heading=bibliography.
Bibliography, cover files and the build order
The bibliography engine is a class option, and the README's recommendation is worth taking.
The biber option makes the references use biblatex. Without it the references default to bibtex. The resumebib option, used together with biber, makes the list of published results also generated by biblatex, so one bib file maintains that information and the template sets the format.
Without biber and resumebib, the results list has to be entered by hand in data/resume.tex. Because the results list has the same formatting requirements as the references, the README recommends generating it with biblatex. The bib file holding the results information is ref/resume.bib, and it uses the author plus an data annotation approach to highlight the paper's author.
That annotation mechanism is worth a second look. The bold author marking is a biblatex feature rather than something the template implements, so the highlight comes from the data rather than from the styling, and the template only has to provide the style.
The print materials are laid out in a specific order. The main directory holds thesis.pdf, the generated thesis in its various versions for printing. The a3cover directory holds a3cover.pdf, the A3 cover PDF, though it may not be needed since the printing shop usually makes it; it is generated from a3cover.tex, which only includes the spine and thesis content and does not need changing, so the order is to edit spine.tex, run makeothers.bat to produce spine.pdf, generate the main thesis.pdf, and then run makecover.bat to produce a3cover.pdf.
The same directory holds spinenoframe.pdf, the spine page without a frame, which may be useful for printing, and originalitystatement.pdf, the originality statement file, which is an empty form when no information is given and can be printed and signed. The README notes that this file has been compared precisely against the latest Word version of the template with no obvious differences left.
The proposal directory holds the 开题报告 template, and the README points out that its format and content are fully separated, so you write it as a normal LaTeX document, and asks for feedback if the format differs substantially from what is required.
Where nudtpaper fits, and where it stops
The comparison worth making is with a general purpose thesis template and with the school's own Word template.
Against a general LaTeX template, the difference is that this one encodes a specific institution's requirements. The two-sided printing rule with chapters starting on odd pages, the framed spine for the plagiarism check, the originality statement with a signature version that has to be reused across review and printing, the anonymity options, and the AI disclosure page are all things a general template knows nothing about. If you are at NUDT, this saves weeks of formatting work and a supervisor's comments about it. If you are not, none of it applies and the class file is just a layout.
Against the Word template, the difference is the one every LaTeX user accepts: reproducible output, a bibliography managed in a text file, and figures and tables that do not move when you edit the text. The README also claims the originality statement PDF has been compared precisely against the latest Word version, which suggests the two are kept in step rather than the LaTeX one drifting.
The limits are honest ones. The build tooling is Windows batch files, so the compilation chain is oriented at a Windows machine, and the makefile is there for the other platforms. The font options depend on fonts that are not always installed, and the FZ option requires you to install them yourself. The licence is not recorded, so there is no explicit grant for reusing the template in a modified form, which is worth raising with the maintainer if that is your plan.
And the AI disclosure mechanism is demanding. It asks you to record, for each annotated piece of content, the tools and versions, the purposes, the dates and times, the prompts or inputs and your own review. That is a documentation burden per annotation rather than once per thesis, and it is the price of a template that treats the requirement as a first-class part of the document.
The last push was on 2026-10-13, so the AI disclosure work is recent, and the repository has a single release tag from 2024, which means most users are tracking the branch rather than a version.
Editorial conclusion
nudtpaper suits a NUDT student writing a thesis or a 开题报告, since it ships the class file, the cover and spine generation chain, the anonymity options the school requires and the AI disclosure footnote the latest template asks for, all in one tree that compiles with XeLaTeX. It is the wrong tool if you need a general thesis template, because the layout and the cover files are specific to one institution, and it is the wrong tool if your thesis needs a bibliography engine other than bibtex or biblatex. Before you start, read the options section of the README carefully, because the degree type, the two-sided option and the font choice all change the output, and edit thesis.tex rather than the class file itself.
Frequently asked questions
What is nudtpaper?
It is a latex template for writing NUDT master/doctorial thesis, built around nudtpaper.cls with a thesis.tex for your content and mynudt.sty for extra packages and macros. The repository also includes a proposal template in the proposal directory, cover and spine files under a3cover, and a set of Windows batch files for building the output.
Which XeLaTeX font options does nudtpaper support?
Four: ttf for the Windows fonts, otf for the Adobe fonts, fz for the Founder fonts which have to be installed separately, and fandol for the Fandol fonts. The README notes that FZ fonts are best for printing the final version, and you can also set fonts yourself in the preamble with font names listed by the fc-list command.
What do the anon and blind options do?
The anon option produces the blind review version for review, with all results information hidden. The blind option is the version submitted to the system, and adding it after anon lists the author's own work as 第一作者,XXX in the author list. With neither option you get the open review version with all information and the originality statement included.
How does the AI tool use statement work in nudtpaper?
There is a standalone statement page inserted immediately after the originality statement, edited directly in a3cover/aitoolstatement.tex with no separate compilation, and it keeps the template's example lines and blank fields for you to fill in. It is omitted when the anon option is enabled. There is also an in-text footnote mechanism using circledtext, tablefootnote and needspace, with hollow circle numbering that runs continuously through the document.
Should the references use bibtex or biblatex?
The biber option makes the references use biblatex, and without it they default to bibtex. The resumebib option, used with biber, also generates the list of published results with biblatex from one bib file, ref/resume.bib, which the README recommends because the results list has the same formatting requirements as the references.
What is the build order for the cover and spine files?
Edit spine.tex and run makeothers.bat to produce spine.pdf, then generate the main thesis.pdf, then run makecover.bat to produce a3cover.pdf from a3cover.tex. The same directory holds spinenoframe.pdf, the spine page without a frame, and originalitystatement.pdf, an empty form that can be printed and signed.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/liubenyuan-nudtpaper)Was this useful?