Skip to content

Commit

Permalink
新增支持Overleaf和TeXPage
Browse files Browse the repository at this point in the history
  • Loading branch information
note286 committed Jan 1, 2022
1 parent 5cae625 commit d4b2196
Show file tree
Hide file tree
Showing 2 changed files with 231 additions and 13 deletions.
192 changes: 192 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,64 @@ xdupgtp-Xidian University Postgraduate Thesis Proposal

本节介绍了一些使用本项目模板的方法,建议用户根据自身情况阅读。

## 字体安装

考虑到可能存在版权问题,故不提供字体文件或字体下载链接。

对于编译得到pdf文件,可以通过运行

```shell
pdffonts xdupgtp.pdf
```

来查看字体信息,包括字体名称和字体嵌入等情况。

### Windows

Windows平台无需手动配置字体,所需字体Windows操作系统已内置。

### GNU/Linux

由于默认情况下中易宋体的意大利形状对应的是中易楷体,因此中文字体除中易宋体和中易黑体外,还需要中易楷体。

用户可以从Windows操作系统字体库中拷贝出`simhei.ttf``simkai.ttf``simsun.ttc``times.ttf``timesbd.ttf``timesbi.ttf``timesi.ttf`共7个字体文件至GNU/Linux,其中三个中文字体文件位于`C:\Windows\Fonts`处,Times New Roman字体的四个字体文件位于`C:\Windows\Fonts\Times New Roman`处。用户在查找字体时,可以根据Windows中英文系统内字体名称来查找,找到后复制该字体,粘贴至某个空白文件夹即可得到对应的字体文件,然后将这7个字体文件传输至GNU/Linux。

| 字体名称 | 字体文件名 | Windows英文系统内字体名称 | Windows中文系统内字体名称 |
| :-------------: | :---------: | :-------------------------: | :-----------------------: |
| 中易黑体 | simhei.ttf | SimHei Regular | 黑体 常规 |
| 中易楷体 | simkai.ttf | KaiTi Regular | 楷体 常规 |
| 中易宋体 | simsun.ttc | SimSun Regular | 宋体 常规 |
| Times New Roman | times.ttf | Times New Roman Regular | Times New Roman 常规 |
| Times New Roman | timesbd.ttf | Times New Roman Bold | Times New Roman 粗体 |
| Times New Roman | timesbi.ttf | Times New Roman Bold Italic | Times New Roman 粗斜体 |
| Times New Roman | timesi.ttf | Times New Roman Italic | Times New Roman 斜体 |

使用如下命令在GNU/Linux安装字体:

```shell
sudo cp simhei.ttf simkai.ttf simsun.ttc times.ttf timesbd.ttf timesbi.ttf timesi.ttf /usr/share/fonts
```

然后就可以根据[编译](#编译)里的方法去编译了。

### macOS

参考[GNU/Linux](#gnulinux)从Windows平台提取字体文件,然后在macOS上双击安装字体文件即可。注意,虽然macOS内置了Times New Roman字体,但是该内置字体版本过于老旧,有缺字的现象,建议将7个字体文件全部安装。

然后就可以根据[编译](#编译)里的方法去编译了。

### Overleaf

[Overleaf in Chinese](https://cn.overleaf.com/)平台使用时,由于Overleaf是安装在GNU/Linux上的最新版的TeX Live,用户无需考虑LaTeX套装版本问题,仅需要安装字体即可,用户首先将本仓库[下载](https://github.com/note286/xdupgtp/archive/refs/heads/main.zip),再根据[GNU/Linux](#gnulinux)中的方法得到字体文件。

在Overleaf左上角点击创建新项目,选择上传项目,将压缩包上传至Overleaf,会自动进入该论文模板项目。点击左上角新建目录按钮,新建一个名为`fonts`的文件夹,选中`fonts`文件夹,点击左上角上传按钮将所有的字体文件上传。最后根据[Overleaf编译](#overleaf编译)配置如何在线编译。

### TeXPage

[TeXPage](https://www.texpage.com/)平台使用时,由于TeXPage是安装在GNU/Linux上的最新版的TeX Live,用户无需考虑LaTeX套装版本问题,仅需要安装字体即可,用户首先将本仓库[下载](https://github.com/note286/xdupgtp/archive/refs/heads/main.zip),再根据[GNU/Linux](#gnulinux)中的方法得到字体文件。

在TeXPage[个人主页](https://www.texpage.com/console)左上角点击创建,选择上传项目,将压缩包上传至TeXPage,进入该论文模板项目。点击左上角新建文件夹按钮,新建一个名为`fonts`的文件夹,选中`fonts`文件夹,点击左上角上传文件按钮将所有的字体文件上传。最后根据[TeXPage编译](#texpage编译)配置如何在线编译。

## 学位类型

本项目模板支持学术学位博士研究生、专业学位博士研究生、学术学位硕士研究生和专业学位硕士研究生共4种类型开题报告表,相应的文档类可选参数如下:
Expand All @@ -33,6 +91,139 @@ xdupgtp-Xidian University Postgraduate Thesis Proposal

此外,在`examples`中已内置对应学位类型的`.tex`文件,用户可以将`xdupgtp.tex`中所有文件内容替换为相应的`xdupgtp-*.tex`文件内容,避免手动配置的麻烦。

## 编译

本项目目前仅在Windows和GNU/Linux平台上的TeX Live 2021和macOS平台上的MacTeX 2021进行了测试,均更新所有包至最新版,并参考[字体安装](#字体安装)安装了缺失字体。命令编译时切换到`xdupgtp.tex`所在目录执行命令即可。IDE编译选择对应IDE中的`XeLaTeX`的编译方式,参考文献使用`BibTeX`编译。关于PDF查看器,Windows平台上推荐使用[Sumatra PDF Viewer](https://www.sumatrapdfreader.org/free-pdf-reader),macOS平台上推荐[Skim](https://skim-app.sourceforge.io/),适当配置可支持正向同步和反向同步。

### 命令编译

介绍如何使用命令编译,可选择使用`latexmk`来快速编译或者常规的四次编译。

#### latexmk编译

编译

```shell
latexmk
```

清理辅助文件

```shell
latexmk -c
```

#### 四次编译

编译

```shell
xelatex -synctex=1 xdupgtp
bibtex xdupgtp
xelatex -synctex=1 xdupgtp
xelatex -synctex=1 xdupgtp
```

清理辅助文件

```shell
latexmk -c
```

### 文本编辑器编译

任何一款[文本编辑器](https://zh.wikipedia.org/wiki/%E6%96%87%E6%9C%AC%E7%BC%96%E8%BE%91%E5%99%A8)均可以编辑`.tex`文件,包括[Sublime Text](https://www.sublimetext.com/)[Visual Studio Code](https://code.visualstudio.com/)等,大部分文本编辑器均提供自定义编译功能,例如Sublime Text的[Build Systems](https://www.sublimetext.com/docs/build_systems.html),可以参考[命令编译](#命令编译)自行创建相应的编译配置,利用编译快捷键进行编译。此外,一些文本编辑器支持安装扩展,例如Sublime Text可以安装[LaTeXTools](https://packagecontrol.io/packages/LaTeXTools)来辅助进行`.tex`文件的编辑,还提供了一些常用的编译配置。可以搭配Sumatra PDF Viewer或Skim实现反向同步,正向同步一般需要文本编辑器或其扩展支持。

一些文本编辑器不支持自定义编译功能或者安装扩展,依然可以使用文本编辑器来编辑`.tex`文件,使用命令来进行编译。

### WinEdt编译

下载[WinEdt](https://www.winedt.com/download.html)安装包并安装,支持Windows平台。安装后可以查看[Quick Guide](http://www.winedt.com/download.html#Quick_Guide)获取更多关于WinEdt的使用帮助。

打开WinEdt后,点击File->Open打开`xdupgtp.tex`文件。点击Option->Execution Modes,在弹出的面板左侧选择TeXify,在面板左下角点击Browse for executable,依次找到`C:\texlive\2021\bin\win32\latexmk.exe`文件并点击打开,如果安装TeX Live至非默认目录,依情况修改;将左下角的Switches中对应值清空,最后点击面板上的OK。

在Toolbar中PDF Preview左侧的按钮下拉菜单中可以切换编译引擎。完全编译选择TeXify,可以自动处理交叉引用和参考文献引用,编译时间较长;不考虑交叉引用和参考文献引用时,快速编译选择XeLaTeX,编译时间较短,需要参考文献引用时再点击TeX->BibTeX编译参考文献,接着执行两次XeLaTeX编译可以生成参考文献列表和参考文献引用。

点击Tools->Erase Output Files或者Toolbar中的Erase Output Files按钮,在弹出的面板中再点击Delete Now可以清理辅助文件,常用于某次报错后清理错误的辅助文件,避免二次报错。

可以参考[QuickGuide.pdf](http://www.winedt.com/doc/QuickGuide.pdf)中第2.3节配置WinEdt默认PDF查看器为Sumatra PDF Viewer,即点击Option->Execution Modes,在弹出的面板选择PDF Viewer标签,将PDF Viewer Executable改为SumatraPDF.exe,Sumatra PDF Viewer默认安装在`%LOCALAPPDATA%\SumatraPDF\`处,这样就可以使用Sumatra PDF Viewer来查看PDF文件。Sumatra PDF Viewer的反向同步一般WinEdt会自动配置,如果需要手动配置,在Sumatra PDF Viewer左上角点击三道杠->设置->选项,在最后设置反向搜索命令行中填写

```
"C:\Program Files\WinEdt Team\WinEdt 10\WinEdt.exe" "[Open(|%f|);SelPar(%l,8);]"
```

并点击确定即可。

注意,由于WinEdt添加新的编译配置较为复杂,本方法将TeXify内的编译引擎由LaTeX改为latexmk,并使用了主目录下的`latexmkrc`编译配置。

### TeXworks编译

下载[TeXworks](https://tug.org/texworks/)安装包并安装,支持Windows,GNU/Linux和macOS平台。安装后可以查看[A short manual for TeXworks](https://github.com/TeXworks/manual/releases)获取更多关于TeXworks的使用帮助。

打开TeXworks后,点击编辑->首选项->排版->处理工具,点击右下角蓝色加号,在弹出的面板中名称处填写latexmk,程序处点击右侧浏览选择`C:\texlive\2021\bin\win32\latexmk.exe`文件并点击打开,如果安装TeX Live至非默认目录,依情况修改,最后点击面板上的OK。选择新建的latexmk,点击右侧的蓝色上箭头移动至顶部,再将内置的XeLaTeX和BibTeX移动至顶部,使得latexmk、XeLaTeX和BibTeX位于处理工具的顶部,方便后续切换引擎。再选择下方的默认,可以将latexmk或者XeLaTeX设置为默认,最后点击OK。

点击文件->打开,选择`xdupgtp.tex`文件,Toolbars左上角可以切换编译引擎。完全编译选择latexmk,可以自动处理交叉引用和参考文献引用,编译时间较长;不考虑交叉引用和参考文献引用时,快速编译选择XeLaTeX,编译时间较短,需要参考文献引用时切换至BibTeX编译参考文献,接着执行两次XeLaTeX编译可以生成参考文献列表和参考文献引用。

点击文件->删除辅助文件,在弹出的面板中再点击删除可以清理辅助文件,常用于某次报错后清理错误的辅助文件,避免二次报错。

TeXworks内置了PDF查看器,支持正向同步和反向同步功能,具体请查看[A short manual for TeXworks](https://github.com/TeXworks/manual/releases)中5.1节。

### TeXstudio编译

下载[TeXstudio](https://www.texstudio.org/#download)安装包并安装,支持Windows,GNU/Linux和macOS平台。安装后可以查看[TeXstudio : User manual](https://htmlpreview.github.io/?https://github.com/texstudio-org/texstudio/master/utilities/manual/usermanual_en.html)获取更多关于TeXstudio的使用帮助。

打开TeXstudio后,点击文件->打开,选择`xdupgtp.tex`文件。点击选项->设置TeXstudio->命令,将Latexmk处值改为`latexmk.exe`,切换至构建标签,将默认编译器改为Latexmk或者XeLaTeX。

TeXstudio无法快速切换编译引擎,只能在选项->设置TeXstudio->构建里修改默认编译器,或者点击工具->命令里临时运行指定的编译引擎。完全编译选择latexmk,可以自动处理交叉引用和参考文献引用,编译时间较长;不考虑交叉引用和参考文献引用时,快速编译选择XeLaTeX,编译时间较短,需要参考文献引用时切换至BibTeX编译参考文献,接着执行两次XeLaTeX编译可以生成参考文献列表和参考文献引用。

点击工具->清理辅助文件,在弹出的面板中选择合适的范围再点击OK便可以清理辅助文件,常用于某次报错后清理错误的辅助文件,避免二次报错。

TeXstudio内置了PDF查看器,支持正向同步和反向同步功能,具体请查看[TeXstudio : User manual](https://htmlpreview.github.io/?https://github.com/texstudio-org/texstudio/master/utilities/manual/usermanual_en.html)中4.10节。

### Texmaker编译

下载[Texmaker](https://www.xm1math.net/texmaker/)安装包并安装,支持Windows,GNU/Linux和macOS平台。安装后可以查看[Texmaker : User manual](https://www.xm1math.net/texmaker/doc.html)获取更多关于Texmaker的使用帮助。

打开Texmaker后,点击文件->打开,选择`xdupgtp.tex`文件。点击选项->配置Texmaker->命令,将LaTeX-Mk中对应值改为`latexmk`,点击OK。

工具栏中可以切换编译引擎。完全编译选择latexmk,可以自动处理交叉引用和参考文献引用,编译时间较长;不考虑交叉引用和参考文献引用时,快速编译选择XeLaTeX,编译时间较短,需要参考文献引用时切换至BibTeX编译参考文献,接着执行两次XeLaTeX编译可以生成参考文献列表和参考文献引用。

点击工具->清除历史记录,在弹出的面板中再点击删除文件可以清理辅助文件,常用于某次报错后清理错误的辅助文件,避免二次报错。

Texmaker内置了PDF查看器,支持正向同步和反向同步功能,具体请查看[Texmaker : User manual](https://www.xm1math.net/texmaker/doc.html)中3.3节。

### Overleaf编译

用户首先根据[Overleaf](#overleaf)中关于字体安装的介绍安装好字体,再点击左上角的菜单按钮修改编译器为`XeLaTeX`,最后为`xdupgtp`文档类传入`overleaf`参数,即将`xdupgtp.tex`

```latex
\documentclass{xdupgtp}
```

改为

```latex
\documentclass[overleaf]{xdupgtp}
```

后即可正常编译。

### TeXPage编译

用户首先根据[TeXPage](#texpage)中关于字体安装的介绍安装好字体,再点击右上角的设置按钮修改LaTeX编译器为`XeLaTeX`,最后为`xdupgtp`文档类传入`texpage`参数,即将`xdupgtp.tex`

```latex
\documentclass{xdupgtp}
```

改为

```latex
\documentclass[texpage]{xdupgtp}
```

后即可正常编译。

## 参考文献引用

在开题报告表中,一般仅国内外研究现状处会出现参考文献引用,因此用户在撰写国内外研究现状时可以直接引用参考文献,对应的参考文献列表会自动出现在国内外研究现状后,无需用户干预,例如:
Expand Down Expand Up @@ -77,6 +268,7 @@ xdupgtp-Xidian University Postgraduate Thesis Proposal

# 版本记录

- `2022-01-02` [`v0.6.0`](https://github.com/note286/xdupgtp/releases/tag/v0.6.0) 新增支持Overleaf和TeXPage。
- `2022-01-01` [`v0.5.1`](https://github.com/note286/xdupgtp/releases/tag/v0.5.1) 修复开题报告评语及结论中脚注不显示的bug。
- `2022-01-01` [`v0.5.0`](https://github.com/note286/xdupgtp/releases/tag/v0.5.0) 支持自动添加PDF元数据。
- `2022-01-01` [`v0.4.1`](https://github.com/note286/xdupgtp/releases/tag/v0.4.1) 配置\subsubsection{}样式。
Expand Down
52 changes: 39 additions & 13 deletions xdupgtp.cls
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{xdupgtp}[2022/01/01 Xidian University Postgraduate Thesis Proposal class, v0.5.1, created by @note286, published in https://note286.github.io/xdupgtp/]
\ProvidesClass{xdupgtp}[2022/01/02 Xidian University Postgraduate Thesis Proposal class, v0.6.0, created by @note286, published in https://note286.github.io/xdupgtp/]

% 学术学位博士研究生 Doctor of Academic
\newif\ifda\datrue
Expand All @@ -17,6 +17,13 @@
\newif\ifmp\mpfalse
\DeclareOption{mp}{\mptrue\dafalse}

% overleaf
\newif\ifoverleaf\overleaffalse
\DeclareOption{overleaf}{\overleaftrue}

% texpage
\DeclareOption{texpage}{\overleaftrue}

\ProcessOptions\relax

% 博士学位标志位
Expand Down Expand Up @@ -91,18 +98,37 @@
% 自定义加粗加斜程度
\newcommand\FakeBoldValue{3}
\newcommand\FakeSlantValue{0.2}
% 配置默认英文字体
\setmainfont{Times New Roman}
% 配置默认中文字体
\setCJKmainfont{SimSun}[
BoldFont={SimSun},BoldFeatures={FakeBold=\FakeBoldValue},
SlantedFont={SimSun},SlantedFeatures={FakeSlant=\FakeSlantValue},
BoldSlantedFont={SimSun},BoldSlantedFeatures={FakeBold=\FakeBoldValue,FakeSlant=\FakeSlantValue},
ItalicFont={KaiTi},
BoldItalicFont={KaiTi},BoldItalicFeatures={FakeBold=\FakeBoldValue}
]
% 定义黑体字体
\newCJKfontfamily\heiti{SimHei}[BoldFont={SimHei},BoldFeatures={FakeBold=\FakeBoldValue}]
\ifoverleaf
% 配置默认英文字体
\setmainfont{times.ttf}
[Path=fonts/,
BoldFont=timesbd.ttf,
ItalicFont=timesi.ttf,
BoldItalicFont=timesbi.ttf]
% 配置默认中文字体
\setCJKmainfont{simsun.ttc}
[Path=fonts/,
BoldFont={simsun.ttc},BoldFeatures={FakeBold=\FakeBoldValue},
SlantedFont={simsun.ttc},SlantedFeatures={FakeSlant=\FakeSlantValue},
BoldSlantedFont={simsun.ttc},BoldSlantedFeatures={FakeBold=\FakeBoldValue,FakeSlant=\FakeSlantValue},
ItalicFont={simkai.ttf},
BoldItalicFont={simkai.ttf},BoldItalicFeatures={FakeBold=\FakeBoldValue}]
% 定义黑体字体
\newCJKfontfamily\heiti{simhei.ttf}[Path=fonts/]
\else
% 配置默认英文字体
\setmainfont{Times New Roman}
% 配置默认中文字体
\setCJKmainfont{SimSun}[
BoldFont={SimSun},BoldFeatures={FakeBold=\FakeBoldValue},
SlantedFont={SimSun},SlantedFeatures={FakeSlant=\FakeSlantValue},
BoldSlantedFont={SimSun},BoldSlantedFeatures={FakeBold=\FakeBoldValue,FakeSlant=\FakeSlantValue},
ItalicFont={KaiTi},
BoldItalicFont={KaiTi},BoldItalicFeatures={FakeBold=\FakeBoldValue}
]
% 定义黑体字体
\newCJKfontfamily\heiti{SimHei}[BoldFont={SimHei},BoldFeatures={FakeBold=\FakeBoldValue}]
\fi

% 设置各级标题样式
\ctexset{
Expand Down

0 comments on commit d4b2196

Please sign in to comment.