Code Monkey home page Code Monkey logo

sysu-thesis's Introduction

中山大学 $\LaTeX$ 毕业论文模板

本项目现已得到中山大学计算机学院支持。我们正在努力增加 feature ,满足本院毕业设计的要求,并争取进一步完善,成为中大官方 $\LaTeX$ 毕设模板。Demo 与源码可在 releases 页面下载。

如何使用

overleaf 编辑(在线)

本模板可以使用 overleaf 在线编辑,需要在 releases 页面提前下载 Source code (zip)

步骤如下:

  1. 进入 overleaf 并登录账号
  2. 左侧 New Project 选择 Upload Project
  3. 上传 .zip 压缩包,建立新项目
  4. 点击 menu,滑动到下方 SettingsCompiler 选择 XeLaTeX
  5. 打开 main.tex 文件,点击中间右侧上方的 Recompile 进行编译
  6. 如果顺利可以看到 pdf 的预览
  7. 如果无法加载图片只有路径信息,点击 Recompile 旁边的倒三角,其中的 Compile Mode 选择 Normal 模式

此时可以得到完整的 main.pdf 文件。

GitHub Actions 自动构建(在线)

点击 Use this template 创建自己的论文仓库(推荐创建为私有仓库),随后直接在自己的仓库进行修改,随后 GitHub Actions 会自动进行构建,可在 Actions 中下载对应 artifact。此处给出一个示例

还可以使用 git tag,其会像本仓库一样将构建好的 artifact 永久发布到 releases 中。

Devcontainer 编辑(本地 & 在线)

Important

无论是本地还是在线编辑,都需要首先创建自己的论文仓库,在自己的仓库进行修改,并建议及时 commit & push 到远程仓库进行备份。

本模板提供了 VS Code Remote - Containers 相关配置文件,包含了 texlive 2022 和 VS Code 中文和 LaTeX Workshop 插件,可用于本地或在线容器化编辑。

  • 对于在线编辑,可以使用 GitHub Codespaces 通过浏览器版本的 VS Code 进行编辑。(请注意,GitHub Codespaces 每月免费额度有限,请注意用量)。
  • 而对于本地编辑,需要安装 DockerVS Code,并在 VSCode 中安装 Remote - Containers 插件。随后打开本仓库,键入 F1,选择 Remote-Containers: Reopen in Container 即可构建进入容器环境。

在容器环境中,可以使用 make pdf 进行编译并生成 main.pdf 文件,或者使用 LaTeX Workshop 插件进行编译与预览。

texlive 编辑(本地)

本模板需要使用 texlive(>=2020) 进行编译,编译命令如下:

make pdf

即可生成 main.pdf 文件。如有环境问题,推荐对照 GitHub Actions 中的环境进行配置。

TODO List

  • 增加 overleaf 等模板库的自动发布,可一键在 overleaf 中打开项目。
  • 进一步优化代码,可支持多种需求

希望大家踊跃提出自己的想法,提交 pr,一起完善该 $\LaTeX$ 模板, Make SYSU Great Again!

需要注意的问题

  1. 字体问题,见 #29

相关规范

  1. 本科生
  2. 研究生

关于展示

答辩展示的样式涉及到不同人的需求,且学校未对格式做要求,因此目前本仓库在 presentation 目录下提供了一个最简单的模板供大家学习和上手调整,在 overleaf 中使用时需要点击 menu,滑动到下方 SettingsMain document 选择 presentation/pre.tex。此处给出 overleaf 的 Beamer 教程

我们欢迎大家自己定制一些符合自己要求的模板,并向我们提交 PR,在下方增加一个指向你的模板的链接作为推荐,参见 #65

一些说明

  1. 已征得原作者,17 届中大数据院软件工程校友黄俊杰(@huangjj27)的同意,我们团队未来将长期维护该项目。
  2. 原项目 repo 可见 gitlab,原项目 wiki 可见 wiki,原 repo 中的信息将会在之后更新到本 repo 中。

这里是分割线,以下是原始 repo 的 README


本维护项目由 17 届中大数据院软件工程校友黄俊杰(@huangjj27)发起, 发起理由如下:

  1. 中山大学在 github 上LaTeX 官方模板项目已经有 2 年多的时间没有维护
  2. @chunkwong师兄在 github 上放出了中大的第一个非官方的本科论文 LaTeX 模板, 并由@guanyingc师兄接力改进
  3. 上述两位师兄毕业后均无法抽空维护项目

基于以上理由,本项目维护小组成立,并诚邀各届校友参与开发维护, 为中大莘莘学子编写毕业论文提供方便

使用指南

请移步到项目 wiki

注意: 最新代码在 dev 分支上, 获取代码前请先确认分支.

致谢

  1. 感谢@chunkwong师兄在 Github 上放出了中大第一个非官方的本科论文 LaTex 模板
  2. 感谢@guanyingc师兄在模板结构化分解上作出了极大的贡献
  3. 感谢@huangjj27 师兄在模板样式规范化做出极大的贡献
  4. 感谢@a20185 @Kinpzz @yttty @perqin @noeagles 等人对 v4.6.0 作出极大的贡献
  5. PPT 的模板源自http://far.tooold.cn/post/latex/beamertsinghua
  6. 最后, 感谢 Donald Ervin Knuth 教授发明了tex这么好(zhe)用(teng)的工具。 Finally, thanks Prof. Donald Ervin Knuth for inventing such useful tool as tex.

错误反馈以及改进

  1. 同学们如果在编译或者使用过程中遇到了一些问题,请参照这里的步骤尝试解决问题。如果还是没法解决,请email汇报错误。
  2. 如果您想参与项目的维护,我们强烈建议您发起访问请求(Access request)到本项目,即可成为本项目的开发人员! 我们非常欢迎校友的加入。 或者,克隆本仓库到您的 gitlab 仓库中,修改完成后给本项目提交Merge Request

声明

  1. 您可以任意地使用和修改这个模板,但该模板可能无法满足最新的《中山大学本科生毕业论文(设计)写作与印制规范》。
  2. 目前项目组人手紧缺,强烈欢迎校友们的加入
  3. 目前基于 GitLab CI 的构建工具使用的字体与规范要求有轻微的区别,请在使用时注意风险。

sysu-thesis's People

Contributors

1fcendoge avatar a20185 avatar ddddavid-he avatar frostant avatar future-xy avatar gmhdbjd avatar guanyingc avatar huangjj27 avatar huangxt57 avatar imyujie avatar jungor avatar kinpzz avatar lan-jing avatar lovely-xpp avatar lzzmm avatar northsecond avatar penglb3 avatar perqin avatar williamking avatar wwyf avatar yanb25 avatar zcxsythenew avatar zhao-shihan 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

sysu-thesis's Issues

中文斜体失效

中文斜体 \textit{斜体} 输出仍为宋体,应为楷体。

一种 quick fix 是使用 \kaishu{斜体} 进行斜体的输出。

文档里面普朗克常数\hbar显示不正常。

操作系统:MacOS Big Sur 11.2.3

编译系统:This is XeTeX, Version 3.14159265-2.6-0.999992 (TeX Live 2020)

主要问题:pdf中数学环境里面\hbar显示不正常。

image

尝试解决方法:

  1. 在cls模版里\RequirePackage{fontspec}语句加上[no-math]参数,即修改成\RequirePackage[no-math]{fontspec}。结果导致编译时出现\setmainfont{Times New Roman} undefine报错。
  2. 尝试自己重新定义\hbar命令,在main.tex文档开始前加入\renewcommand{\hbar}{\mathchar'26\mkern-9mu h}。结果:普朗克符号没有发生变化,似乎是定义没有被“读取”?在我个人的例子中,我还有其他定义\newcommand{\mean}[1]{\langle #1 \rangle}都是可以正常工作的。只是\hbar这一条定义无法产生效果。

封面版式问题

图片

模板中所用封面与学校给出的封面字体和排版略有差异,左侧为学校给出的封面pdf。可以通过把学校给出的封面include到文件中解决这个问题,但是无法实现自动填写论文题目、作者、日期等信息。

\hbar的渲染问题

在正文中输入公式符号$\hbar$,发现编译之后符号异常,bar的位置过于靠上,这通常在amsmath宏包中并不会出现

$E=\hbar \omega$

image

怀疑是模板中的某个地方(引用的某个宏包)将命令$\hbar$重新定义了。暂时的解决方式是在main.tex中正文开始处增加一行代码重新定义\hbar

...
\begin{document}
\renewcommand{\hbar}{h\hspace*{-0.35em}\bar{}\hspace*{0.35em}}
......

编译结果为:
image

注意这行重定义命令经过尝试,只能在正文区加入才能生效,如果像下面这样塞入导言区则不会生效,原因可能是导言区中的某个宏包将\hbar给又重新定义了

...
\renewcommand{\hbar}{h\hspace*{-0.35em}\bar{}\hspace*{0.35em}}
\begin{document}
...

ctex-fontset-adobe2.def 中的错误

根据模板说明,如需使用自行下载的adobe字体需要使用ctex-fontset-adobe2.def文件定义字体,经过尝试发现该文件字体设置有缺陷,说明如下:

文件中通过此定义了\songti对应的字体:

\setCJKfamilyfont { zhsong } { AdobeSongStd-Light.otf }[
    Path = ./fonts/,
]

并在论文封面标题、章节标题使用 \songti\textbf{<content>} 指定格式,但是\songti对应的 zhsong 并未指定Bold样式,会导致加粗失败。

建议修改 zhsong定义与\setCJKmainfont相同,使之能正常进行加粗。即:

\setCJKmainfont  { AdobeSongStd-Light.otf }[
    Path=./fonts/,
    BoldFont   = AdobeHeitiStd-Regular.otf,
    ItalicFont = AdobeKaitiStd-Regular.otf
]

用其做开题报告时无法跨页

意思就是注释掉了大部分东西,强行用该模板做开题报告。结果发现在proposal上打了一大串文字,最终显示时无法让文字实现跨页,只能手动 // 才有让它们跨页的可能(怕不是只有我一个人用它写开题报告哦)

online 文献怎样让 url 和正文同一行?

答辩时老师提的要求,目前如下代码

@online{kubefed,
      title        = {Kubernetes Cluster Federation},
      url = {https://github.com/kubernetes-sigs/kubefed},
      urldate = {2021-04-11},
      year         = 2021,
    }

渲染效果为

image

URL 位于文本下一行。
现在我想调整使得 URL 和文本同一行,网上查了很多配置都不行,有没有 LaTeX 大佬能指导下?

PPT运行出错

Overfull \vbox (78.43489pt too high) detected at line 45
[17] [18]
Overfull \vbox (31.06857pt too high) detected at line 115
[19] [20] [21]
! Undefined control sequence.
\cellcolor

l.258 }

?

使用ShareLaTeX部署开源版本的overleaf

针对模版在overleaf上编译过慢的问题,主要原因有两点:

  • 网络问题导致编译好的pdf文件在网页上渲染过慢
  • overleaf本身的编译服务器太弱,导致编译过慢

针对上述两点,可以使用这个仓库的overleaf开源版本。

具体部署可以参考这个页面,晚上在2C 4G的阿里云服务器上试了下,速度还是比overleaf快很多的。

考虑之后是否能向学院/学校申请服务器资源,直接在校园网内搭建编译服务器,既省去了本地配置环境的麻烦,也不用忍受捉急的网络过慢的问题。

If 语句在算法环境中报错

您好,
想请问一下如何解决if语句在算法环境中报错chap04.tex (line 240) Undefined control sequence. (^^I^^I\EndIf ...)
我在main.tex中添加了\usepackage{algorithmic}无法解决

image

citeauthor检索问题

image
image

citeauthor和citeyear出了点问题,bib里是有的但没检索到对应信息
据wukan大佬回复在sysuthesis.cls的文件末尾加上
\bibliographystyle{plainnat}
即可

引用规范问题

学校发布的论文规范要求为《信息与文献 参考文献著录规则》(GB/T 7714-2015),但项目中使用的是7714-2005?

引用格式问题

报错‘Illegal, another \bibstyle command’
查看.aux 文件,发现有两处定义 ‘\bibstyle{gbt7714-unsrt}’ 和 \bibstyle{gbt7714-numerical} 冲突,0.5版本更新中显示使用‘gbt7714-unsrt’但是下载的压缩包中没有该文件。

关于生僻字无法编译的解决方案

目前发现一些生僻字无法在该模板上编译。(如华为昇腾)

该问题是latex常见问题,解决方案如下:

  1. 在本机编译,使用本机自带字体库:(overleaf可使用ubuntu)
    image

  2. 无法使用本机字体库的情况,可使用下面方法

    1. 手动将字体下载到 ./fonts 目录中,该目录带有一个初始化脚本用户下载,也可用其中的链接手动下载并放于此目录
    2. 选用adobe2的fontset:
      image

方法2原理:使用ctex-fontset-adobe2.def手动指定字体和其存在的位置

mactex+texstudio 中文字符渲染全为空白

环境:mactex+texstudio

已自行通过字体册导入fandol和adobe字体到mac系统中

渲染字体报错:
Font "FandolHei-Regular" does not contain requested(fontspec) Script "CJK".
(其他fandol字体同理,adobe字体没有报错)

渲染成功但中文全空白(间隔正确),英文正确。

Overleaf 字数统计报错

image

报错代码:
!!! File docs/info not found in path [./]. !!!
!!! File docs/proposal not found in path [./]. !!!
!!! File docs/abstract not found in path [./]. !!!
!!! File docs/grading not found in path [./]. !!!
!!! File docs/progress not found in path [./]. !!!
!!! File docs/chap01.tex not found in path [./]. !!!
!!! File docs/chap02.tex not found in path [./]. !!!
!!! File docs/chap03.tex not found in path [./]. !!!
!!! File docs/chap04.tex not found in path [./]. !!!
!!! File docs/chap05.tex not found in path [./]. !!!
!!! File docs/appendix1.tex not found in path [./]. !!!
!!! File docs/ack.tex not found in path [./]. !!!

建议公式也统一采用新罗马字体

  1. 建议用宏包代替手动设置新罗马字体
\RequirePackage{fontspec}
\RequirePackage{newtxtext}
%\setmainfont{Times New Roman}
  1. 建议公式也采用新罗马字体
\RequirePackage{amsmath,amssymb,amsthm}
\RequirePackage{newtxmath,bm}

上传毕设管理系统后,系统的预览不显示中文

1651936263(1)
如图所示,编译好的pdf在上传系统之后用毕设管理系统的预览不能显示pdf中的中文,下载文件之后看没问题。

编译用的是xelatex->bib->xelatex^2,请问有谁遇到过这种情况吗?会不会影响到系统的查重,如果会的话应该怎么解决

符号说明页面设计

你好,因为我论文符号较多,想在目录后面单独设计一页作为符号说明页面,请问如何操作嘞

封面处指导老师不用加职称,而扉页需要职称

有同学反映说(可能是个例?)封面处指导老师不用加职称,而扉页需要职称,而在info.tex中找不到可以处理这种差异的命令,建议在sysuthesis.cls里多定义一个类似cmentor的命令以处理这个差异。

Logo miss which built in github action

What did you do

I push a commit to my local repo

What did you see

The main.pdf built by github action miss the sysu logo

What did you expect to see

The logo should exist

Same as this origin repo in master branch
image

目录显示与章节编号

有时我们希望某些章节(例如摘要或结语)不编号,但又显示在目录当中,可以在相关位置:
\chapter*{结语}
\addcontentsline{toc}{chapter}{结语}

其中第一行 * 的作用是不编号,第二行的作用是把这一章节添加进目录中,所以如果希望既不编号也不添加进目录,可以删去第二行

参考自:
https://zhuanlan.zhihu.com/p/24501131

Overleaf 中文生僻字问题

有时候写论文会遇到中文生僻字,Overleaf会报错,解决方法:
1.C:\Windows\Fonts
2.找到SimSun.ttc
3.将文件上传至和main.tex同一文件夹,即顶端文件夹
4.在需要输入生僻字的位置,如“喨”,输入“{\CJKfontspec{SimSun.ttc}喨}”,即可正常显示生僻字

参考自:
https://blog.csdn.net/m0_54352040/article/details/116113986
https://blog.csdn.net/qq_41860497/article/details/122005706
Mac系统视频教程:https://www.bilibili.com/video/av208015528/

近期TODO list

#30
#29
#23
以及相关问题:

  1. 写作规范没有要求页眉
  2. 二级及以下标题是宋体小四加粗左对齐空两格,二级标题没有左对齐空两格
  3. 标题模板有「、」,但是写作规范要求不能有标点符号

因为近期实在没空,大约将会在5月14号以及之后陆续fix掉

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.