国科大论文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监控服务。它…...
目标检测损失函数进化史:从IoU到EIoU/SIoU/WIoU,YOLOv8性能提升完全指南
引言在目标检测领域,损失函数的设计直接影响着模型的收敛速度和检测精度。作为YOLOv8等先进检测器的核心组件,边界框回归损失函数经历了从简单到复杂的演进过程。传统的IoU(Intersection over Union)损失虽然直观有效,…...
每日一题 力扣 3548. 等和矩阵分割 II 前缀和 哈希表 C++ 题解
文章目录题目描述思路简述代码实现复杂度分析踩坑记录题目描述 力扣 3548. 等和矩阵分割 II 示例 1: 输入: grid [[1,4],[2,3]] 输出: true 解释: 在第 0 行和第 1 行之间进行水平分割,结果两部分的元素和为 1 4 5…...
节能模式:OpenClaw+nanobot的间歇性任务调度技巧
节能模式:OpenClawnanobot的间歇性任务调度技巧 1. 为什么需要节能模式 去年夏天,我的电费账单突然飙升。排查后发现,那台24小时运行OpenClaw的工作站竟然是耗电大户——它持续调用着本地部署的Qwen大模型,GPU风扇昼夜不停地呼啸…...
第4章 编码规范-4.1 命名规范
在Python中,变量、常量、模块、包、函数、类、对象、属性、方法和异常类都具有一定的命名规范。但是,这些命名规范都是通用性规范,而不是强制性规范,所以具体的命名规范还需要以开发项目的要求为主。(1)变量…...
s2-pro效果展示:多说话人语音合成(同一模型切换不同音色)
s2-pro效果展示:多说话人语音合成(同一模型切换不同音色) 1. 专业级语音合成效果展示 s2-pro作为Fish Audio开源的专业级语音合成模型,其最惊艳的能力在于同一模型支持多种音色切换。通过上传不同的参考音频,模型可以…...
DroidRun:用自然语言指令重塑Android自动化体验
1. 当Android遇上自然语言:DroidRun如何重新定义自动化 还记得第一次用语音助手控制手机时的惊艳吗?说句话就能定闹钟、发消息,感觉像在演科幻片。但很快你就会发现,这些功能就像快餐店的固定套餐——只能点菜单上有的,…...
PyTorch 2.8镜像多场景落地:智慧农业病虫害识别模型田间部署方案
PyTorch 2.8镜像多场景落地:智慧农业病虫害识别模型田间部署方案 1. 田间AI的迫切需求 现代农业正面临病虫害防治的严峻挑战。传统人工巡查方式效率低下,一个熟练的技术员每天最多能检查3-5亩作物,而大型农场往往需要数十人同时作业。更棘手…...
Vivado中OSD核报错全攻略:从IP_flow 19-167到BD 41-1030的解决方案
Vivado中OSD核报错全攻略:从IP_flow 19-167到BD 41-1030的解决方案 在FPGA开发过程中,Xilinx Vivado工具链的OSD(On-Screen Display)核是一个常用的视频处理IP,但开发者常会遇到各种报错问题。本文将深入解析从IP_flo…...
MD_DS3231库:工业级DS3231 RTC全功能驱动设计与实践
1. MD_DS3231库深度解析:面向工业级RTC应用的DS3231全功能驱动设计与工程实践DS3231是Maxim(现属Analog Devices)推出的高精度IC实时时钟芯片,其2ppm温漂特性、内置温度补偿晶振(TCXO)、独立电池供电备份、…...
AI 开发实战:给团队定一套能落地的 AI 使用规范
AI 开发实战:给团队定一套能落地的 AI 使用规范 一、为什么团队用了 AI 反而容易更乱? 因为每个人都在各自试: 有人用来写代码有人用来写文档有人用来查错有人输出直接复制上线 如果没有基本规范,效率可能提升了,但风险…...
