国科大论文latex模板中可能的注意事项
背景
国科大2022年9月发布了毕业论文的LaTeX模板,它是在ucasthesis上修改而来的,但近日使用国科大发布版本时发现有几点不同以及需要注意的地方。本人只会简单使用latex,但并不熟悉latex样式编辑,因此以下介绍与方法仅供参考。仅在overleaf上测试可行,不保证其它环境,注意备份!
一 不同与注意事项
- 默认行距不同,根据需求在"Style/artratex.sty"文件内修改。参考ucasthesis 知识小站-行距设置
\linespread{1.25}
- 默认引用格式不同,ucasthesis默认是用括号显示作者信息,国科大修改的是右上标数字。参考ucasthesis 知识小站-文献样式
%修改第一个参数,super 为上标顺序引用
\usepackage[super,list,table,math]{Style/artratex}
- 图表目录的样式不同。ucasthesis中是分开单独成章节的“图形列表”和“表格列表”,国科大修改的版本是图表合做一个章节"图表目录”连续显示,但里面有”图目录“和“表目录”。国科大修改的版本当内容增多时会出现第一个奇数页不显示为“图表目录”的问题,后续页面显示正常
- 图表、公式的序号格式不同。ucasthesis是“图1.1",中间是点号,国科大版本中间是横杠。这是因为国科大的图表文件”figuretable.tex"中添加了下面三行语句,更新了相关命令,中间设置的横杠。
\renewcommand{\thefigure}{\thechapter-\arabic{figure}}
\renewcommand{\thetable}{\thechapter-\arabic{table}}
\renewcommand{\theequation}{\thechapter-\arabic{equation}}
- 附录与参考文献的顺序不同。ucasthesis是附录在前,国科大修改版本相反。在国科大修改版本的"Appendix.tex"中添加小节section,会出现序号错误,没有章节序号。然后附录的页眉信息可能显示的是章节标题。
- 添加代码。可以使用listings包,在artracom.sty文件添加包
\RequirePackage{listings}
- 图表标题太长不居中,参考ucasthesis 知识小站-图表标题太长不居中
- 编译器要选择XeLaTex
二 国科大版本修改方法
针对图表目录与附录的问题可以按照下面方法修改
2.1 附录修改
Thesis文件中关于附录的设置如下,可以看到在参考文献之后。
%-
%-> Backmatter: bibliography, glossary, index
%-
\backmatter% initialize the environment
\intotoc*{\cleardoublepage}{\bibname}% add link to toc
\artxifstreq{\artxbib}{bibtex}{% enable bibtex\bibliography{Biblio/ref}% bibliography
}{%\printbibliography% bibliography
}
\cleardoublepage%
\appendix% initialize the environment
\input{Tex/Appendix}% appendix content
\fancypagestyle{appendixheader}{\fancyhf{}\fancyhead[C]{\footnotesize 附录}%此处填写中文标题\fancyfoot[C]{\footnotesize \thepage}% page number\renewcommand{\headrulewidth}{0.8pt}% header rule\renewcommand{\footrulewidth}{0pt}% footer rule
}
\thispagestyle{appendixheader}
如果想在附录中添加代码并分小节展示,可以看到页眉是正常的,但多加些内容就显示成标题。
可以在\chapter 设置下面用\chaptermark 设置页眉的显示。这时候appendixheader的样式应该没用了。
\chapter{附录 \quad 代码}
\chaptermark{附\quad 录}
没有章节序号应该和appendix环境有关,如果将\appendix注释,就变成从第3.4节开始,前面3章都是模板说明与格式要求。
这应该是和\chapter设置有关,那直接设置chapter计数器从1开始就行了,相应的section计数器从0开始,然后就正常了。
\setcounter{chapter}{1}
\chapter{附录 \quad 代码}
\chaptermark{附\quad 录}
\setcounter{section}{0}
这个时候附录已经调整好了,就可以使用\appendix环境了,ucasthesis.cls设置了序号的格式,里面是用大写字母表示章节,可以按照需求更改设置。
%- appendix
\ctexset {appendix = {numbering = false,number = \rmfamily\Alph{chapter},}
}
2.2 图表目录修改
当只有一页图表目录时,显示正常。但是图表多了后第一页的页眉就变成图目录了。
图表目录的设置在Thesis文件以下位置,fancypagestyle定义了一个页眉的样式想让页眉显示为“图表目录”,然后在导入图表文件figuretable后由\thispagestyle引用该样式。问题在于第一页没有用上这个样式,所以在input之前先设置一下。
\fancypagestyle{figureheader}{\fancyhf{}\fancyhead[C]{\footnotesize 图表目录}%此处填写中文标题\fancyfoot[C]{\footnotesize \thepage}% page number\renewcommand{\headrulewidth}{0.8pt}% header rule\renewcommand{\footrulewidth}{0pt}% footer rule
}
{% content list region 这里是设置目录,\intobmk命令是加入到目录项中,于图表设置无关
\linespread{1.2}% local line space
\intobmk*{\cleardoublepage}{\contentsname}% add link to bookmark
\tableofcontents% content catalog%\pagestyle设置页眉,添加以下两行
\cleardoublepage
\pagestyle{figureheader}\input{Tex/figuretable}
\thispagestyle{figureheader}
}
另外还要再设置下使得偶数页面显示文章标题,figureheader的样式是一直显示“图表目录”,不分奇偶。所以只有一页时显示正常,多页时就可能与模板设置的奇偶页眉样式冲突,需要修改样式,将页眉设置\fancyhead[C]修改如下,\gettitle是我增加的获取文章标题的命令。
%\ifnumodd是个判断,如果第一个参数为奇数
\fancyhead[C]{\footnotesize \ifnumodd{\value{page}}{图表目录}{\gettitle}}%如果是奇数页显示图表目录,如果是偶数页显示为标题
在ucasthesis.cls文件中中文项设置那增加以下定义,这样图表目录也就修改好了。
%\@title是文章标题值,使用\gettitle就会直接用文章标题值替代。
\newcommand\gettitle{\@title}
2.3 设置盲审格式
将包含个人信息的封面页Frontinfo.tex与作者成果页Backmatter.tex复制一份review版本,里面相应信息隐去,然后再新建一个主文件Thesis的review版本,在Thesis_review中将要导入的封面页与作者页换成相应的review版本,编译时选择主文件为Thesis_review。另外,原创声明页需要注释掉,在Frontmatter中,
%Frontmatter文件中注释该行
%\makedeclaration% 生成声明页%Thesis_review 文件中替换要导入的文件
%\input{Tex/Frontinfo}%
\input{Tex/Frontinfo_review}%%\input{Tex/Backmatter}
\input{Tex/Backmatter_review}% other information
如果不想每次手动注释原创声明页,可以增加一个文档参数review,然后根据该参数修改\makedeclaration命令。首先在新建的Thesis_review文档设置增加参数,原Thesis不用增加,使用默认的设置生成声明页。
%Thesis_review文档参数
\usepackage[super,list,table,math,review]{Style/artratex}%review
在artratex.sty文件中设置if命令和变量,
% 设置review 判断,默认为true
\newif\ifartx@review \artx@reviewtrue
\DeclareOption{review}{\artx@reviewfalse%如果有review选项,则设置为false
}
然后在ucasthesis.cls中修改\makedeclaration命令如下,就是增加了一个if命令,根据review 的状态增加原创声明页。
\newcommand{\makedeclaration}{%\cleardoublepage\thispagestyle{empty}\ifartx@review % 这里增加if判断,因为Thesis_review中设置了review选项,所以review被设置成了false,if下面的语句就不执行了{\linespread{1.6}%这里面是生成声明页的语句,不用动\zihao{-4}....}\fi% 必需有if 结束标志,下面的也是原语句,不用动\clearpage\if@twoside\thispagestyle{empty}\cleardoublepage[empty]\fi
}
以上修改后编译不同的主文件就可以生成不同版本,而tex文件就不用修改了。
相关文章:

国科大论文latex模板中可能的注意事项
背景 国科大2022年9月发布了毕业论文的LaTeX模板,它是在ucasthesis上修改而来的,但近日使用国科大发布版本时发现有几点不同以及需要注意的地方。本人只会简单使用latex,但并不熟悉latex样式编辑,因此以下介绍与方法仅供参考。仅…...

ABAP 怎样将XML和JSON格式转换为HTML格式显示
ABAP 怎样将XML和JSON格式转换为HTML格式显示 一、将JSON格式转换为HTML格式 BAP接口程序开发中时常会用到JSON格式来传输数据,在监控传输的JSON串内容时,把JSON转换为HTML格式来显示会很便利。下面提供一个简单例子来实现JSON转化为HTML并显示的功能。…...
基础课DP
DP 背包问题01背包问题完全背包问题多重背包问题多重背包问题II分组背包问题线性DP数字三角形最长上升子序列最长上升子序列II最长公共子序列编组距离区间DP石子合并计数类DP整数划分数位统计DP计数问题状态压缩DP蒙德里安的梦想最短Ha路径树形DP没有上司的舞会...

基于支持向量机SVM的风电场NWP数据预测,SVM的详细原理
目录 支持向量机SVM的详细原理 SVM的定义 SVM理论 Libsvm工具箱详解 简介 参数说明 易错及常见问题 SVM应用实例,基于SVM的风电场NWP预测 结果分析 展望 支持向量机SVM的详细原理 SVM的定义 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定…...

webRtc概念
webRtc概念 以下的文档整理来自此链接 文档整理了一系列实现web通用接口的ECMAScript APIs ,这些接口是为了支持浏览器或者一些其他实现了实时交换协议的设备进行媒体信息和程序数据交换。 1、实现点对点通信的规范: NAT穿透实现与远端节点链接比如&a…...

数据结构与算法基础(王卓)(16):KMP算法详解(代码实现)
实现代码的过程中 具体细节、问题: (1):关于写Get_next函数的标题: 现象: PPT上写的是: void get_next(SString T, int &next[]) 然而并不能运行,而当我们去掉了引用符号&…...

九龙证券|盘前直接腰斩,银行巨头紧急“拔网线”!美股银行股又崩了?
见证历史了,又有一家银行巨子倒下? 美股银行股团体暴降 上一交易日暴降超60%的硅谷银行持续面对腥风血雨。盘前,硅谷银行跌幅超50%,随后,公司宣布盘前暂停交易,等待刊发消息。 而最新消息显现,…...
接口优化常用思路
空间换时间 计算机程序中最大的矛盾是空间和时间的矛盾,那么,从这个角度出发逆向思维来考虑程序的效率问题,我们就有了解决问题的第1招–以空间换时间 合理使用缓存就是一个很好的例子,针对一些频繁使用且不频繁变更的数据&#…...
【SpringCloud】SpringCloud面试题整理
文章目录1、什么是Spring Cloud?2、Spring Cloud和Dubbo的区别3、REST和RPC的区别4、SpringCloud如何实现服务的注册和发现5、什么是服务熔断和服务降级?6、项目中zuul常用的功能7、服务网关的作用8、ribbon和feign区别9、ribbon的负载均衡策略10、简述什…...
一些数据库知识点总结
DB2数据库:从数据库表中第I条记录开始检索J条记录SELECT * FROM (SELECT A.*, ROW_NUMBER() OVER() AS NFROM (SELECT * FROM table_name) AS A)WHERE N > I AND N < J;Oracle数据库:从数据库表中第M条记录开始检索N条记录SELECT * FROM (SELECT R…...
Python unittest 模块
一、Unittest 的几个基本概念 TestCase :要写的具体的测试用例TestSuite: 多个测试用例集合(或测试套件/测试集)TestLoader:用来加载 TestCase 到 TestSuite中的(更通俗一点,就是用来把符合我们…...

Spring - Spring IoC 容器相关面试题总结
文章目录01. Spring IoC 和依赖注入是什么?02. Spring IoC 的优点和缺点分别是什么?03. Spring IoC 有什么作用和功能?04. Spring 依赖注入的方式?05. Spring 构造器注入和 setter 方法注入的区别?06. Spring 依赖注入…...

顺序表来喏!!!
前言:还记得前面的文章:《通讯录的实现》吗?通讯录的完成就借助了顺序表这种数据结构!!!那么今天我们就来介绍我们的顺序表介绍顺序表前,我们来了解一下线性表的概念线性表:线性表&a…...

【H2实践】之 SpringBoot 与 H2 数据交互
一、目标 本文是【H2实践】之认识 H2,【H2实践】之 SpringBoot 整合的后续。前文分别介绍了 H2 及其简单使用,并完成了 H2 与 SpringBoot 的整合。本文将紧接 【H2实践】之 SpringBoot 整合 探索实用 SpringBoot 结合 JPA 通过 web 接口操作 H2 数据库的…...
LeetCode 424. Longest Repeating Character Replacement
LeetCode 424. Longest Repeating Character Replacement https://leetcode.com/problems/longest-repeating-character-replacement/ 题目描述 You are given a string s and an integer k. You can choose any character of the string and change it to any other upperc…...

建立自己的博客(记录-不推荐)
环境安装: w10系统安装 第一步:安装git Git 官网: https://git-scm.com/ 第二步:安装Node.js Node.js官网:https://nodejs.org/zh-cn/ 使用cmd检测: node -v 第三步:安装Hexo Hexo官网:htt…...

hashmap存储方式 hash碰撞及其解决方式
1.Map的存储特点 在Map这个结构中,数据是以键值对(key-value)的形式进行存储的,每一个存储进map的数据都是一一对应的。 创建一个Map结构可以使用new HashMap()以及new TreeMap()两种方式,两者之间的区别是:…...

Amazon GuardDuty 的新增功能 – Amazon EBS 卷的恶意软件检测
亚马逊云科技开发者社区为开发者们提供全球的开发技术资源。这里有技术文档、开发案例、技术专栏、培训视频、活动与竞赛等。帮助中国开发者对接世界最前沿技术,观点,和项目,并将中国优秀开发者或技术推荐给全球云社区。如果你还没有关注/收藏…...
YOLOv7 pytorch
yolov7主干部分结构图:yolov7主干 yolov7数据集处理代码:yolov7数据集处理代码 yolov7训练参数解释:yolov7训练参数【与本文代码有区别】 yolov7训练代码详解:yolov7训练代码详解 目录 训练自己的训练集 训练自己的训练集 此…...

JDK自带JVM分析工具
一、JDK自带工具盘点: jstat:性能分析-查看gc情况; jmap:内存分析-堆信息; jstack:线程分析-栈信息; jinfo:参数查看及配置; jstatd:启动jvm监控服务。它…...

简易版抽奖活动的设计技术方案
1.前言 本技术方案旨在设计一套完整且可靠的抽奖活动逻辑,确保抽奖活动能够公平、公正、公开地进行,同时满足高并发访问、数据安全存储与高效处理等需求,为用户提供流畅的抽奖体验,助力业务顺利开展。本方案将涵盖抽奖活动的整体架构设计、核心流程逻辑、关键功能实现以及…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
Python爬虫实战:研究feedparser库相关技术
1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...
在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module
1、为什么要修改 CONNECT 报文? 多租户隔离:自动为接入设备追加租户前缀,后端按 ClientID 拆分队列。零代码鉴权:将入站用户名替换为 OAuth Access-Token,后端 Broker 统一校验。灰度发布:根据 IP/地理位写…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...

GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...

【笔记】WSL 中 Rust 安装与测试完整记录
#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统:Ubuntu 24.04 LTS (WSL2)架构:x86_64 (GNU/Linux)Rust 版本:rustc 1.87.0 (2025-05-09)Cargo 版本:cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...