From f53dd329bdfa3a20947143b0ab7fc79dd58127dd Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Fri, 10 Jan 2020 21:41:08 +0000 Subject: hithesis (10jan20) git-svn-id: svn://tug.org/texlive/trunk@53362 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/hithesis/README.md | 115 ++++++++++++--------- .../doc/latex/hithesis/body/introduction.tex | 7 +- Master/texmf-dist/doc/latex/hithesis/dtx-style.sty | 2 +- Master/texmf-dist/doc/latex/hithesis/hithesis.pdf | Bin 603014 -> 610073 bytes Master/texmf-dist/doc/latex/hithesis/latexmkrc | 26 ++++- Master/texmf-dist/doc/latex/hithesis/main.pdf | Bin 339214 -> 337720 bytes Master/texmf-dist/doc/latex/hithesis/main.tex | 49 +++++---- Master/texmf-dist/doc/latex/hithesis/reference.bib | 8 +- Master/texmf-dist/makeindex/hithesis/hithesis.ist | 2 +- .../texmf-dist/source/latex/hithesis/hithesis.dtx | 71 +++++++++---- Master/texmf-dist/tex/latex/hithesis/hithesis.cfg | 6 +- Master/texmf-dist/tex/latex/hithesis/hithesis.cls | 26 +++-- Master/texmf-dist/tex/latex/hithesis/hithesis.sty | 19 ++-- 13 files changed, 211 insertions(+), 120 deletions(-) diff --git a/Master/texmf-dist/doc/latex/hithesis/README.md b/Master/texmf-dist/doc/latex/hithesis/README.md index 18117fdfcbe..32241b8f4d5 100644 --- a/Master/texmf-dist/doc/latex/hithesis/README.md +++ b/Master/texmf-dist/doc/latex/hithesis/README.md @@ -20,14 +20,13 @@ http://www.latex-project.org/lppl.txt and version 1.3a or later is part of all distributions of LaTeX version 2004/10/01 or later. - ## hithesis是什么? hithesis 旨在建立一个简单易用的哈尔滨工业大学学位论文LaTeX模板,包括本科论文、硕士论文、博士论文 。现 在支持本科、硕士、博士论文,对其它格式的支持会陆续加入。 hithesis 已收录在[CTAN](https://ctan.org/pkg/hithesis -"CTAN")中,用户安装TeXLive将自带我工模板(版本日期>2017.08.28)。 +"CTAN**)中,用户安装TeXLive将自带我工模板(版本日期>2017.08.28)。 ## 我工规范有歧义之处 @@ -42,14 +41,13 @@ hithesis 已收录在[CTAN](https://ctan.org/pkg/hithesis ### 呆萌的操作,傲娇的效果 - 极限程度实现了[《哈尔滨工业大学研究生学位论文撰写规范》](http://hitgs.hit.edu.cn/aa/fd/c3425a109309/page.htm)、[《哈尔滨工业大学本科生毕业论文撰写规范》](http://jwc.hit.edu.cn/2566/list.htm) -- 这是[PlutoThesis](https://github.com/dustincys/PlutoThesis "PlutoThesis")的终极进化,PlutoThesis废弃不再维护。 +- 这是[PlutoThesis](https://github.com/dustincys/PlutoThesis "PlutoThesis**)的终极进化,PlutoThesis废弃不再维护。 - 更傻更简单的选项,例如论文主文件,只需要在文档类的括号中填写本硕博选项,字体选项(设置弹性间距或者刚性间距),文科生选项(目录可以设成四级目录),非全日制类型等,轻松设定目标格式。 - 自适应格式,例如图题和标题,标题字号在字数超过两行时自动由五号变小五号,实现自适应(硕博规范规定,字数多时用五号) - 自动化中英文索引(博士规范要求,有需要时候添加) - - 图书馆提交论文级的书签设置 + - 图书馆提交论文级的电子版 - …… - ### 矫正PlutoThesis的不足 - 纠正PlutoThesis页面向下溢出 @@ -75,7 +73,7 @@ hithesis 已收录在[CTAN](https://ctan.org/pkg/hithesis - 行间距、段前后距离设置精确到小数后四位, 例如 1bp = 1.00374pt,1mm = 2.84526pt, 按照我工之要求, 行距在3mm~4mm之间,换算之后为20.50398~23.33863bp,严格符合规范要求,哪怕是显微镜级别 - 规范明确规定,数字间空格要求为汉字宽度的四分之一(形式类似与 12 2345 和 0.123 456 这样多于3位以上的整数或小数)。默认情况下在LaTeX中任何人工输入的空格均不正确(“\:”为4/18汉字宽度,“\;”为5/18汉字宽度,所以PlutoThesis中的数字间宽度错误)。hithesis模板中定义了精准的数字间宽度。 - - 重写了一堆重要函数,例如章节标题由原来的`BiChapter{}{}`方式进化为`chapter{}[]`,极大简化,后面方括号中为可选括号,硕本可以不用,用了自动忽略 + - 重写了一堆重要函数,例如章节标题由原来的`BiChapter{}{}`方式进化为`chapter{}[**`,极大简化,后面方括号中为可选括号,硕本可以不用,用了自动忽略 - 严格符合(满足)两个规范要求,由于规范中有矛盾之处,例如本科生的标题段前距离有两处不一样的规定,刚性行距尽量满足行数(要求约33行)要求。 - 规范中给出了行距区间,为了规格严格,设置了弹性行距 - …… @@ -103,9 +101,22 @@ CTAN的版本一般会比较落后,但在每年年底会同步为最新版本 ### 关于hithesis的线上讨论区 -由于维护者(就是本书呆)已经是高龄不毕业刀客,课题繁忙,常常无法及时回答疑问。 -为了解决使用中遇到的问题,请各位刀客和大侠加入QQ群:259959600。 -群里有很多热心的LaTeX隐士高人如@poofee等,很乐于解答。 +~~由于维护者(就是本书呆)已经是高龄不毕业刀客,课题繁忙,常常无法及时回答疑问。~~ +为了解决使用中遇到的问题,请各位刀客和大侠加入QQ群hithesis讨论区:259959600。 + +hithesis 高级群:476262502 (高级群为作者散布高级排版、制图、Linux管理、编码等 +知识和技术之所在,其要旨引用自《西游记》第八回,如来自言“叵耐不识我法门之要旨, +怠慢了瑜伽之正宗”,以及“曹溪路险、鹫岭云深,故人不音杳!”。散布知识之后,作者将 +直播回答高级群中众生问题。(**由于工作关系直播暂停,开播时间待定**))。 + +21 Oct 2019 添加:由于工作繁忙,改为西瓜小视频形式传播正能量(**包括Linux实用技术、 +排版、制图等等平时积累的经验和知识**)。 + +西瓜视频ID:**石见石页** + +网址:https://www.ixigua.com/home/105143356290/ + +hithesis群里有很多热心的LaTeX隐士高人如@poofee等,很乐于解答。 ### 关于查重 @@ -115,14 +126,20 @@ CTAN的版本一般会比较落后,但在每年年底会同步为最新版本 会出现无法正常复制的情况(可能是系统的字体映射出现了误差)。一般需要在主文件的 选项中明确声明使用哪一种fontset。 -### 模板的编译方法、打印版、电子版及其他说明 +### 模板版本要求 -- 生成论文格式文件(第一步要生成 *.cls,*.cfg,*.ist,然后再生成论文) +LaTeX 中的ctex package版本要求: + + ctex >= v2.4.3 (2016年9月份发布) 注意,如果下载最新版本(>= 2018)的texlive或Miktex或Mactex,如果使用自带的模板,可能会出现一些错误,因为自带的版本老。 查看自带版本的命令是 - texdoc hithesis + texdoc hithesis + +### 模板的编译方法 + +1. 生成论文格式文件(第一步要生成 *.cls,*.cfg,*.ist,然后再生成论文) - 如果是Linux/Mac执行 (此处作者没测试过Mac,如遇到问题到谈论区可以问一下热心刀客大侠们,比如陈登泰教授、郭大侠等) @@ -132,60 +149,66 @@ CTAN的版本一般会比较落后,但在每年年底会同步为最新版本 lualatex hithesis.ins + - 如果喜欢玩 make -- 生成论文 - - xelatex main.tex - bibtex main - xelatex main.tex - xelatex main.tex - splitindex main -- -s hithesis.ist # 自动生成索引 - xelatex main.tex +    make cls -- 生成文档 +2. 生成论文的方式 - xelatex hithesis.dtx - makeindex -s gind.ist -o hithesis.ind hithesis.idx - makeindex -s gglo.ist -o hithesis.gls hithesis.glo - xelatex hithesis.dtx - xelatex hithesis.dtx + - 手动狙击(源文件更改后每次编译逐行命令输入一轮) -如果喜欢Makefile的是另一画风: + xelatex -shell-escape main.tex + bibtex main + xelatex -shell-escape main.tex + xelatex -shell-escape main.tex + splitindex main -- -s hithesis.ist # 自动生成索引 + xelatex -shell-escape main.tex + + - 半自动精确射击(源文件更改后每次编译敲一次) -- 生成文档类 + make thesis - make cls + - 全自动火力覆盖(只需要输入一次命令,源文件更改后自动识别更改自动编译) -- 生成论文 + latexmk - make thesis +3. 生成文档(没什么用,因为有文档也基本没人看) -- 生成文档 + - 手动狙击(逐行命令输入一轮) - make doc - -LaTeX 中的ctex package版本要求: + xelatex hithesis.dtx + makeindex -s gind.ist -o hithesis.ind hithesis.idx + makeindex -s gglo.ist -o hithesis.gls hithesis.glo + xelatex hithesis.dtx + xelatex hithesis.dtx - ctex >= v2.4.3 (2016年9月份发布) + - 半自动精确射击(编译敲一次) -注意,一般情况下,博士论文的打印版要求右翻页,最后向图书管提交的电子版不是右翻 -页,注意选项中的选项。 + make doc -由于维护者(就是本书呆)已经是高龄不毕业博士,课题繁忙,实在无空余时间再写详细文档以及 无偿解决一些用户要求(例如前面文档中[已经解决的算法格式各实验室要求不一致](https://github.com/dustincys/PlutoThesis#%E6%B2%A1%E6%9C%89%E6%98%8E%E7%A1%AE%E8%A6%81%E6%B1%82%E7%9A%84%E6%A0%BC%E5%BC%8F)问题)。 +### 打印版、电子版 -各位刀客和大侠如用的嗨,要解囊相助,请微信扫码~~ +注意,一般情况下,博士论文的打印版要求双面打印,本硕单面。 +博士论文在双面打印成册时,规范中没有明确规定是否要右翻页(右翻页是每一章的起始位 +置位于书的右侧页面),所以会出现DIY(或身不由己DIY)哪一处右翻页。 +`openright`选项设置为真时,会将所有章(即所有部分,包括前文和后文)起始设置成右翻页。 +如果想DIY(或身不由己DIY)在什么地方右翻页,将这个选项设置为false,然后在目标位 +置添加`\cleardoublepage`命令即可。 -![5](http://wx4.sinaimg.cn/large/61dccbaaly1fge32sbb32j20my0uz3zt.jpg "谢谢") +最后向图书管提交的电子版不是右翻页且要求没有任何空白页,这时只需要设置选项`library=true` +即可,这时候会强制`openright=false`。然后什么都不用做,就会出现如同`Sirius`同学 +的这种“书签还没整明白,论文居然已经通过了”的情况。 -如果用的非常嗨, +### 幻灯片 -![10](http://wx4.sinaimg.cn/large/61dccbaaly1fge32tuvvsj20my0uzabc.jpg "谢谢") +有些强迫症刀客喜欢用Beamer,推荐[progressbar主题](https://github.com/dustincys/progressbar), +能够使用[pympress](https://github.com/Cimbali/pympress)播放双屏提示。 -那个,看在苦X高龄不毕业博士,还熬夜写代码的份上…… 唉…… +### 其他说明 -![1](http://wx4.sinaimg.cn/large/61dccbaaly1fge32qrvgij20my0uzjso.jpg "谢谢") +由于维护者(就是本书呆)已经是高龄不毕业博士,课题繁忙,实在无空余时间再写详细文档以及 无偿解决一些用户要求(例如前面文档中[已经解决的算法格式各实验室要求不一致](https://github.com/dustincys/PlutoThesis#%E6%B2%A1%E6%9C%89%E6%98%8E%E7%A1%AE%E8%A6%81%E6%B1%82%E7%9A%84%E6%A0%BC%E5%BC%8F)问题)。 -或者随便吧…… +各位刀客和大侠如用的嗨,要解囊相助,请微信扫码~~ ![wechat](http://wx2.sinaimg.cn/large/61dccbaaly1fqwvz6sd4ej20yi1au797.jpg "谢谢") diff --git a/Master/texmf-dist/doc/latex/hithesis/body/introduction.tex b/Master/texmf-dist/doc/latex/hithesis/body/introduction.tex index ee9d8c3c995..9fe6b4ed1e6 100644 --- a/Master/texmf-dist/doc/latex/hithesis/body/introduction.tex +++ b/Master/texmf-dist/doc/latex/hithesis/body/introduction.tex @@ -553,7 +553,7 @@ tikz适合用来画不需要大量实验数据支撑示意图。但R语言等专 推荐使用glossaries包管理术语、缩略语,可以自动生成首次全写,非首次缩写。 \subsection{\TeX\ 源码编辑器}[\TeX editor] -推荐:(1)付费软件Winedt;(2)免费软件kile;(3)vim或emacs或spacemacs等神级编 +推荐:(1)付费软件Winedt;(2)免费软件kile;(3)vim或emaces或sublime等神级编 译器(需要配置)。 \subsection{\LaTeX\ 排版重要原则}[\LaTeX\ typesetting rules] @@ -586,3 +586,8 @@ word那样处处修改。总而言之,使用自定义命令和环境才是正 only} \end{figure} + +% Local Variables: +% TeX-master: "../main" +% TeX-engine: xetex +% End: diff --git a/Master/texmf-dist/doc/latex/hithesis/dtx-style.sty b/Master/texmf-dist/doc/latex/hithesis/dtx-style.sty index b9f52afc586..eff17d61495 100644 --- a/Master/texmf-dist/doc/latex/hithesis/dtx-style.sty +++ b/Master/texmf-dist/doc/latex/hithesis/dtx-style.sty @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% Copyright (C) 2017-2019 by Chu Yanshuo +%% Copyright (C) 2017-2020 by Chu Yanshuo %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3a diff --git a/Master/texmf-dist/doc/latex/hithesis/hithesis.pdf b/Master/texmf-dist/doc/latex/hithesis/hithesis.pdf index ce315baaa3a..f9e8ebc4dcf 100644 Binary files a/Master/texmf-dist/doc/latex/hithesis/hithesis.pdf and b/Master/texmf-dist/doc/latex/hithesis/hithesis.pdf differ diff --git a/Master/texmf-dist/doc/latex/hithesis/latexmkrc b/Master/texmf-dist/doc/latex/hithesis/latexmkrc index 8f73cb3286e..e8cd866595a 100644 --- a/Master/texmf-dist/doc/latex/hithesis/latexmkrc +++ b/Master/texmf-dist/doc/latex/hithesis/latexmkrc @@ -8,7 +8,31 @@ $preview_continuous_mode = 1; $clean_ext = "synctex.gz acn acr alg aux bbl bcf blg brf fdb_latexmk glg glo gls idx ilg ind lof log lot out run.xml toc pdf thm toe ist idx"; $pdflatex = "xelatex -file-line-error --shell-escape -src-specials -synctex=1 -interaction=nonstopmode %O %S;cp %D %R.pdf"; $pdf_update_method = 0; - +$makeindex = 'internal splitindex'; +sub splitindex { + # Use splitindex instead of makeindex. + # The splitindex programe starts from an .idx file, makes a set of + # other .idx files for separate indexes, and then runs makeindex to + # make corresponding .ind files. + # However, it is possible that the document uses the splitindex + # package, but in a way compatible with the standard methods + # compatible with makeindex, i.e., with a single index and with the + # use of the \printindex command. + # Then we need to invoke makeindex. + # In addition, latexmk assumes that makeindex or its replacement makes + # an .ind file from an .idx file, and latexmk gives an error if it + # doesn't exist, we need to make an .ind file. + # Both problems are solved by running makeindex and then splitindex. + # Note: errors are returned by makeindex and splitindex for things + # like a missing input file. No error is returned for lines in an + # input file that are in an incorrect format; they are simply + # ignored. So no problem is caused by lines in the .idx file + # that are generated by splitindex in a format incompatible with + # makeindex. + my $ret1 = system( "makeindex", $$Psource ); + my $ret2 = system( "splitindex", $$Psource ); + return $ret1 || $ret2; +} @cus_dep_list = (@cus_dep_list, "idx ind 0 makenomenclature"); sub makenomenclature { system("splitindex $_[0] -- -s $_[0].ist"); } diff --git a/Master/texmf-dist/doc/latex/hithesis/main.pdf b/Master/texmf-dist/doc/latex/hithesis/main.pdf index 515665ee409..1f0c0de474e 100644 Binary files a/Master/texmf-dist/doc/latex/hithesis/main.pdf and b/Master/texmf-dist/doc/latex/hithesis/main.pdf differ diff --git a/Master/texmf-dist/doc/latex/hithesis/main.tex b/Master/texmf-dist/doc/latex/hithesis/main.tex index 5c632115a8a..69549e2c366 100644 --- a/Master/texmf-dist/doc/latex/hithesis/main.tex +++ b/Master/texmf-dist/doc/latex/hithesis/main.tex @@ -1,5 +1,5 @@ % !Mode:: "TeX:UTF-8" -\documentclass[newtxmath=true,newgeometry=two,capcenterlast=true,subcapcenterlast=true,openright=true,absupper=true,fontset=windowsnew,type=doctor]{hithesis} +\documentclass[newtxmath=true,newgeometry=two,capcenterlast=true,subcapcenterlast=true,openright=false,library=false,absupper=true,fontset=windowsnew,type=doctor]{hithesis} % 此处选项中不要有空格 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % 必填选项 @@ -20,7 +20,7 @@ % 后出现无法复制的问题以及想要解决排版如 biang biang 面的 biang 这类中易 % 宋体无法识别的汉字的问题。没有特殊的需要不推荐使用这个选项。 % -% 如果是安装了 windowns 字体的 linux 系统,可以填写windowsnew(win vista +% 如果是安装了 windows 字体的 linux 系统,可以填写windowsnew(win vista % 以后 的字体)或 windowsold(vista 以前)或者想用思源宋体并且是已经安装 % 了思源宋体的任何系统,填写siyuan选项。缺省值为空,自动识别系统并匹配字体 % 。模板版中给出的思源字体定义文件定义的思源字体的版本是Adobe版,其他字体 @@ -49,6 +49,9 @@ % ,电子版要求非右翻页且无空白页。如果想DIY(或身不由己DIY)在什么地方右 % 翻页,将这个选项设置为false,然后在目标位置添加`\cleardoublepage`命令即 % 可。 +% library=true|false +% 含义:是否为提交到图书馆的电子版。默认否。注意:如果设置成true,那么 +% openright选项将被强制转换为false。 % capcenterlast=true|false % 含义:图题、表题最后一行是否居中对齐(我工规范要求居中,但不要求居中对 % 齐),此选项不在规范要求中,按个人喜好自行决定。默认否。 @@ -56,21 +59,21 @@ % 含义:子图图题最后一行是否居中对齐(我工规范要求居中,但不要求居中对齐 % ),此选项不在规范要求中,按个人喜好自行决定。默认否。 % absupper=true|false -% 含义:中文目录中的英文索引在中文目录中的大小写样式歧义,在规范中要求首 -% 字母大写,在work样例中是全大写。该选项控制是否全大写。默认否。 +% 含义:中文目录中的英文摘要在中文目录中的大小写样式歧义,在规范中要求首 +% 字母大写,在work样例中是全大写。该选项控制是否全大写。默认否。 % bsmainpagenumberline=true|false -% 含义:由于本科生论文官方模板的页码和页眉格式混乱,提供这个选项自定义设 -% 置是否在正文中显示页码横线,默认否。 +% 含义:由于本科生论文官方模板的页码和页眉格式混乱,提供这个选项自定义设 +% 置是否在正文中显示页码横线,默认否。 % bsfrontpagenumberline=true|false -% 含义:由于本科生论文官方模板的页码和页眉格式混乱,提供这个选项自定义设 -% 置是否在前文中显示页码横线,默认否。 +% 含义:由于本科生论文官方模板的页码和页眉格式混乱,提供这个选项自定义设 +% 置是否在前文中显示页码横线,默认否。 % bsheadrule=true|false -% 含义:由于本科生论文官方模板的页码和页眉格式混乱,提供这个选项自定义设 -% 置是否显示页眉横线,默认显示。 +% 含义:由于本科生论文官方模板的页码和页眉格式混乱,提供这个选项自定义设 +% 置是否显示页眉横线,默认显示。 % splitbibitem=true|false -% 含义:参考文献每一个条目内能不能断页,应广大刀客要求添加。默认否。 +% 含义:参考文献每一个条目内能不能断页,应广大刀客要求添加。默认否。 % newtxmath=true|false -% 含义:数学字体是否使用新罗马。默认是。 +% 含义:数学字体是否使用新罗马。默认是。 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \usepackage{hithesis} @@ -118,14 +121,18 @@ \include{back/resume} % 博士学位论文有个人简介 %本科书序为: -%\include{body/conclusion} % 结论 -%\bibliographystyle{hithesis} -%\bibliography{reference} -%\authorization %授权 -%%\authorization[saomiao.pdf] %添加扫描页的命令,与上互斥 -%\include{body/acknowledgements} %致谢 -%\begin{appendix}%附录 -%\input{body/appendix01}%本科生翻译论文 -%\end{appendix} +% \include{body/conclusion} % 结论 +% \bibliographystyle{hithesis} +% \bibliography{reference} +% \authorization %授权 +% % \authorization[saomiao.pdf] %添加扫描页的命令,与上互斥 +% \include{body/acknowledgements} %致谢 +% \begin{appendix}%附录 +% % \input{body/appendix01}%本科生翻译论文 +% \end{appendix} \end{document} + +% Local Variables: +% TeX-engine: xetex +% End: diff --git a/Master/texmf-dist/doc/latex/hithesis/reference.bib b/Master/texmf-dist/doc/latex/hithesis/reference.bib index 49e0405fb15..5b4b2604872 100644 --- a/Master/texmf-dist/doc/latex/hithesis/reference.bib +++ b/Master/texmf-dist/doc/latex/hithesis/reference.bib @@ -1,11 +1,5 @@ % !Mode:: "TeX:UTF-8" -@ONLINE{DoeOnline, -author = {Doe, Ringo}, -title = {This is a test entry of type {@ONLINE}}, -month = jun, -year = {2009}, -url = {http://www.test.org/doe/} -} + @INPROCEEDINGS{cnproceed, author = {王重阳 and 黄药师 and 欧阳峰 and 洪七公 and 段皇帝}, title = {武林高手从入门到精通}, diff --git a/Master/texmf-dist/makeindex/hithesis/hithesis.ist b/Master/texmf-dist/makeindex/hithesis/hithesis.ist index 061be8b7ef9..b5acd7d7992 100644 --- a/Master/texmf-dist/makeindex/hithesis/hithesis.ist +++ b/Master/texmf-dist/makeindex/hithesis/hithesis.ist @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% Copyright (C) 2017-2019 by Chu Yanshuo +%% Copyright (C) 2017-2020 by Chu Yanshuo %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3a diff --git a/Master/texmf-dist/source/latex/hithesis/hithesis.dtx b/Master/texmf-dist/source/latex/hithesis/hithesis.dtx index 5cddf61a13c..25454eb6f57 100644 --- a/Master/texmf-dist/source/latex/hithesis/hithesis.dtx +++ b/Master/texmf-dist/source/latex/hithesis/hithesis.dtx @@ -16,7 +16,7 @@ % % \iffalse %<*driver> -\ProvidesFile{hithesis.dtx}[2018/12/05 2.0.6 Harbin Institute of Technology Thesis Template] +\ProvidesFile{hithesis.dtx}[2019/06/27 2.0.11 Harbin Institute of Technology Thesis Template] \documentclass{ltxdoc} \usepackage{dtx-style} @@ -750,7 +750,7 @@ % 的 \cs{cite}\marg{key},而 \cs{inlinecite}\marg{key} 则用来生成正文模式。 % % 关于参考文献模板推荐使用 \BibTeX,关于中文参考文献需要额外增加一个 Entry: -% \texttt{lang},将其设置为 \texttt{zh} 用来指示此参考文献为中文,以 +% \texttt{language},将其设置为 \texttt{zh} 用来指示此参考文献为中文,以 % 便 \file{hithesis.bst} 处理。如: % \begin{latex} % @INPROCEEDINGS{cnproceed, @@ -760,7 +760,7 @@ % year = 2006, % address = {西安, 中国}, % month = sep, -% lang = "zh", +% language = "zh", % } % % @ARTICLE{cnarticle, @@ -770,7 +770,7 @@ % PAGES = "260--266", % VOLUME = "224", % YEAR = "1800", -% LANG = "zh", +% LANGUAGE = "zh", % } % \end{latex} % @@ -941,7 +941,7 @@ %\NeedsTeXFormat{LaTeX2e}[1999/12/01] %\ProvidesClass{hithesis} %\ProvidesFile{hithesis.cfg} -%[2018/12/05 2.0.6 Harbin Institute of Technology Thesis Template] +%[2019/06/27 2.0.11 Harbin Institute of Technology Thesis Template] % \end{macrocode} % % \subsection{定义选项} @@ -1024,6 +1024,11 @@ % \begin{macrocode} \DeclareBoolOption[false]{openright} % \end{macrocode} +% \changes{v2.0.10}{2019/6/25}{此处添加是否为提交图书馆电子版} +% 是否为提交图书馆电子版。 +% \begin{macrocode} +\DeclareBoolOption[false]{library} +% \end{macrocode} % 图题和标题最后一行是否居中对其(默认是,非规范要求)。 % \changes{v1.0.6}{2017/10/25}{此处更改了选项的名称} % \begin{macrocode} @@ -1343,8 +1348,11 @@ delim_1 "\\hspace*{\\fill}" % \begin{macro}{\cleardoublepage} % 对于 \textsl{openright} 选项,必须保证章首页右开,且如果前章末页无内容须 % 清空其页眉页脚。 +% 如果\textsl{library}为真,则强制设置\textsl{openright}为真。 +% \changes{v2.0.10}{2019/6/25}{添加\textsl{openright}和\textsl{library}逻辑} % \begin{macrocode} %<*cls> +\ifhit@library\hit@openrightfalse\else\relax\fi \let\hit@cleardoublepage\cleardoublepage \newcommand{\hit@clearemptydoublepage}{% \clearpage{\pagestyle{hit@empty}\hit@cleardoublepage} @@ -1353,8 +1361,6 @@ delim_1 "\\hspace*{\\fill}" % \end{macrocode} % \end{macro} % \begin{macro}{\frontmatter} -% \begin{macro}{\mainmatter} -% \begin{macro}{\backmatter} % 我们的单面和双面模式与常规的不太一样。 % \begin{macrocode} \renewcommand\frontmatter{% @@ -1363,26 +1369,37 @@ delim_1 "\\hspace*{\\fill}" \pagenumbering{Roman} \pagestyle{hit@empty} } - +% \end{macrocode} +% \end{macro} +% \begin{macro}{\mainmatter} +% 根据打印店(伪官方)的猛虎式操作,\cs{mainmatter}命令的逻辑是,双面打印时第一章必须在奇数页 +% (不看文档别怪我)。 +% \changes{v2.0.11}{2018/06/27}{设置第一章必须在奇数页} +% \begin{macrocode} \renewcommand\mainmatter{% \ifhit@tocblank% \addtocontents{toc}{\vspace{\baselineskip}} %规范中并没有这一要求,此处不应该加 \addtocontents{toe}{\vspace{\baselineskip}} \fi% - \ifhit@openright\cleardoublepage\else\clearpage\fi + \ifhit@doctor% + \ifhit@library\clearpage\else\cleardoublepage\fi + \else% + \clearpage + \fi% \@mainmattertrue \pagenumbering{arabic} \pagestyle{hit@headings} } - +% \end{macrocode} +% \end{macro} +% \begin{macro}{\backmatter} +% \begin{macrocode} \renewcommand\backmatter{% \ifhit@openright\cleardoublepage\else\clearpage\fi \@mainmattertrue} % % \end{macrocode} % \end{macro} -% \end{macro} -% \end{macro} % % \subsubsection{字体} % \label{sec:font} @@ -1432,6 +1449,7 @@ delim_1 "\\hspace*{\\fill}" % \end{macrocode} % \end{macro} % +% \begin{macro}{\dachu} % \begin{macro}{\chuhao} % \begin{macro}{\xiaochu} % \begin{macro}{\yihao} @@ -1452,6 +1470,7 @@ delim_1 "\\hspace*{\\fill}" % \begin{macro}{\bahao} % 一组字号定义。 % \begin{macrocode} +\hit@def@fontsize{dachu}{58bp} \hit@def@fontsize{chuhao}{42bp} \hit@def@fontsize{xiaochu}{36bp} \hit@def@fontsize{yihao}{26bp} @@ -1490,6 +1509,7 @@ delim_1 "\\hspace*{\\fill}" % \end{macro} % \end{macro} % \end{macro} +% \end{macro} % \subsubsection{页眉页脚} % \label{sec:headerfooter} % \begin{macro}{\hit@empty} @@ -1682,13 +1702,15 @@ delim_1 "\\hspace*{\\fill}" % \end{macrocode} % \subsubsection{浮动对象以及表格} % \label{sec:float} -% 设置浮动对象和文字之间的距离 +% 设置浮动对象和文字之间的距离,由于规范中没有明确规定,根据经验,设置成正文汉字 +% 高度。 % \changes{v1.0.9}{2018/01/07}{修正float垂直间距bug} +% \changes{v2.0.9}{2019/06/24}{修正float垂直间距bug} % \begin{macrocode} %<*cls> \setlength{\intextsep}{\ifhit@glue 8.50398bp \@plus 2.83465bp \@minus 0bp\else 8.50398bp\fi} \setlength{\textfloatsep}{\ifhit@glue 8.50398bp \@plus 2.83465bp \@minus 0bp\else 8.50398bp\fi} -\setlength{\floatsep}{\ifhit@glue 20.50398bp \@plus 2.83465bp \@minus 0bp\else 20.50398bp\fi} +\setlength{\floatsep}{\ifhit@glue 12bp \@plus 2.83465bp \@minus 0bp\else 12bp\fi} % \end{macrocode} % 此处设置float在p选项时间隔,此处不设置\cs{@fptop}和\cs{@fpbot}以确保居中。 % \changes{v1.0.12}{2018/04/03}{修正float为p状态时默认不居中bug} @@ -2258,7 +2280,7 @@ delim_1 "\\hspace*{\\fill}" 本人郑重声明:此处所提交的学位论文《\hit@ctitle》,是本人在导师指导下,在哈尔滨工业大学攻读学位期间独立进行研究工作所取得的成果,且学位论文中除已标注引用文献的部分外不包含他人完成或已发表的研究成果。对本学位论文的研究工作做出重要贡献的个人和集体,均已在文中以明确方式注明。} \newcommand{\hit@datefill}{\hspace{2.5em}年\hspace{1.5em}月\hspace{1.5em}日} \newcommand{\hit@publication@ctitle}{攻读\hit@cxuewei 学位期间发表的论文及其他成果} -\newcommand{\hit@publication@etitle}{Papers published in the period of PH.D. education} +\newcommand{\hit@publication@etitle}{Papers published in the period of Ph.D. education} \def\hit@index@etitle{Index} \def\hit@hi{嗨!thesis} \def\hit@cbraceleft{(} @@ -2454,18 +2476,21 @@ delim_1 "\\hspace*{\\fill}" \phantomsection \pdfbookmark[0]{\hit@ctitle}{ctitle} \xiaosi[1]% +% \end{macrocode} +% \changes{v2.0.10}{2019/6/25}{此处添加提交图书馆电子版的逻辑} +% \begin{macrocode} \begin{titlepage} \hit@first@titlepage - \cleardoublepage + \ifhit@library\clearpage\else\cleardoublepage\fi \hit@second@titlepage - \cleardoublepage + \ifhit@library\clearpage\else\cleardoublepage\fi \ifhit@bachelor \relax \else \phantomsection \pdfbookmark[0]{\hit@etitle}{etitle} \hit@engcover - \cleardoublepage + \ifhit@library\clearpage\else\cleardoublepage\fi \fi \end{titlepage} \normalsize @@ -2571,7 +2596,11 @@ delim_1 "\\hspace*{\\fill}" \advance\leftskip\@tempdima \hskip -\leftskip % numberline is called here, and it uses \@tempdima - {\ifhit@bachelor\sffamily\else\csname hit@toc@font\endcsname\fi\heiti #1} +% \end{macrocode} +% 修改本科生论文目录格式 +% \changes{v2.0.8}{2017/06/15}{修改本科生论文目录格式(感谢QQ:嬴政 同学)} +% \begin{macrocode} + {\ifhit@bachelor\rmfamily\else\csname hit@toc@font\endcsname\fi\heiti #1} \leaders\hbox{$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill \nobreak{\normalfont\normalcolor #2}\par \penalty\@highpenalty @@ -2749,6 +2778,10 @@ delim_1 "\\hspace*{\\fill}" \renewcommand\theenumiv{\@arabic\c@enumiv}}% \sloppy\frenchspacing % \end{macrocode} +% \changes{v2.0.7}{2019/03/02}{添加flushbottom到thebibliography环境中} +% \begin{macrocode} + \flushbottom +% \end{macrocode} % \changes{v2.0.3}{2018/10/08}{添加参考文献分割开关} % \begin{macrocode} \ifhit@splitbibitem diff --git a/Master/texmf-dist/tex/latex/hithesis/hithesis.cfg b/Master/texmf-dist/tex/latex/hithesis/hithesis.cfg index 5b7e59d5d0c..7647cc363e5 100644 --- a/Master/texmf-dist/tex/latex/hithesis/hithesis.cfg +++ b/Master/texmf-dist/tex/latex/hithesis/hithesis.cfg @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% Copyright (C) 2017-2019 by Chu Yanshuo +%% Copyright (C) 2017-2020 by Chu Yanshuo %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3a @@ -23,7 +23,7 @@ %% This is the configuration file of the hithesis package with LaTeX2e. %% \ProvidesFile{hithesis.cfg} -[2018/12/05 2.0.6 Harbin Institute of Technology Thesis Template] +[2019/06/27 2.0.11 Harbin Institute of Technology Thesis Template] \theorembodyfont{\normalfont} \theoremheaderfont{\normalfont\heiti} \theoremsymbol{\ensuremath{\square}} @@ -171,7 +171,7 @@ 本人郑重声明:此处所提交的学位论文《\hit@ctitle》,是本人在导师指导下,在哈尔滨工业大学攻读学位期间独立进行研究工作所取得的成果,且学位论文中除已标注引用文献的部分外不包含他人完成或已发表的研究成果。对本学位论文的研究工作做出重要贡献的个人和集体,均已在文中以明确方式注明。} \newcommand{\hit@datefill}{\hspace{2.5em}年\hspace{1.5em}月\hspace{1.5em}日} \newcommand{\hit@publication@ctitle}{攻读\hit@cxuewei 学位期间发表的论文及其他成果} -\newcommand{\hit@publication@etitle}{Papers published in the period of PH.D. education} +\newcommand{\hit@publication@etitle}{Papers published in the period of Ph.D. education} \def\hit@index@etitle{Index} \def\hit@hi{嗨!thesis} \def\hit@cbraceleft{(} diff --git a/Master/texmf-dist/tex/latex/hithesis/hithesis.cls b/Master/texmf-dist/tex/latex/hithesis/hithesis.cls index e9dc36c4c86..03b9b1d3059 100644 --- a/Master/texmf-dist/tex/latex/hithesis/hithesis.cls +++ b/Master/texmf-dist/tex/latex/hithesis/hithesis.cls @@ -8,7 +8,7 @@ %% %% This is a generated file. %% -%% Copyright (C) 2017-2019 by Chu Yanshuo +%% Copyright (C) 2017-2020 by Chu Yanshuo %% %% This file may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3a @@ -25,7 +25,7 @@ %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesClass{hithesis} -[2018/12/05 2.0.6 Harbin Institute of Technology Thesis Template] +[2019/06/27 2.0.11 Harbin Institute of Technology Thesis Template] \RequirePackage{ifthen} \RequirePackage{kvoptions} \SetupKeyvalOptions{ @@ -58,6 +58,7 @@ \DeclareBoolOption[false]{subtitle} \DeclareBoolOption[false]{debug} \DeclareBoolOption[false]{openright} +\DeclareBoolOption[false]{library} \DeclareBoolOption[false]{capcenterlast} \DeclareBoolOption[false]{subcapcenterlast} \DeclareBoolOption[false]{absupper} @@ -211,6 +212,7 @@ foot=8.5true mm \newindex[]{china} \newindex[]{english} \RequirePackage{xltxtra} +\ifhit@library\hit@openrightfalse\else\relax\fi \let\hit@cleardoublepage\cleardoublepage \newcommand{\hit@clearemptydoublepage}{% \clearpage{\pagestyle{hit@empty}\hit@cleardoublepage} @@ -222,18 +224,20 @@ foot=8.5true mm \pagenumbering{Roman} \pagestyle{hit@empty} } - \renewcommand\mainmatter{% \ifhit@tocblank% \addtocontents{toc}{\vspace{\baselineskip}} %规范中并没有这一要求,此处不应该加 \addtocontents{toe}{\vspace{\baselineskip}} \fi% - \ifhit@openright\cleardoublepage\else\clearpage\fi + \ifhit@doctor% + \ifhit@library\clearpage\else\cleardoublepage\fi + \else% + \clearpage + \fi% \@mainmattertrue \pagenumbering{arabic} \pagestyle{hit@headings} } - \renewcommand\backmatter{% \ifhit@openright\cleardoublepage\else\clearpage\fi \@mainmattertrue} @@ -246,6 +250,7 @@ foot=8.5true mm \def\hit@def@fontsize#1#2{% \expandafter\newcommand\csname #1\endcsname[1][1.3]{% \fontsize{#2}{##1\dimexpr #2}\selectfont}} +\hit@def@fontsize{dachu}{58bp} \hit@def@fontsize{chuhao}{42bp} \hit@def@fontsize{xiaochu}{36bp} \hit@def@fontsize{yihao}{26bp} @@ -356,7 +361,7 @@ foot=8.5true mm \renewcommand{\eqref}[1]{\textup{(\ref{#1})}} \setlength{\intextsep}{\ifhit@glue 8.50398bp \@plus 2.83465bp \@minus 0bp\else 8.50398bp\fi} \setlength{\textfloatsep}{\ifhit@glue 8.50398bp \@plus 2.83465bp \@minus 0bp\else 8.50398bp\fi} -\setlength{\floatsep}{\ifhit@glue 20.50398bp \@plus 2.83465bp \@minus 0bp\else 20.50398bp\fi} +\setlength{\floatsep}{\ifhit@glue 12bp \@plus 2.83465bp \@minus 0bp\else 12bp\fi} \g@addto@macro\appendix{\renewcommand*{\thefigure}{\thechapter-\arabic{figure}}} \g@addto@macro\appendix{\renewcommand*{\thetable}{\thechapter-\arabic{table}}} \g@addto@macro\appendix{\renewcommand*{\theequation}{\thechapter-\arabic{equation}}} @@ -834,16 +839,16 @@ foot=8.5true mm \xiaosi[1]% \begin{titlepage} \hit@first@titlepage - \cleardoublepage + \ifhit@library\clearpage\else\cleardoublepage\fi \hit@second@titlepage - \cleardoublepage + \ifhit@library\clearpage\else\cleardoublepage\fi \ifhit@bachelor \relax \else \phantomsection \pdfbookmark[0]{\hit@etitle}{etitle} \hit@engcover - \cleardoublepage + \ifhit@library\clearpage\else\cleardoublepage\fi \fi \end{titlepage} \normalsize @@ -924,7 +929,7 @@ foot=8.5true mm \advance\leftskip\@tempdima \hskip -\leftskip % numberline is called here, and it uses \@tempdima - {\ifhit@bachelor\sffamily\else\csname hit@toc@font\endcsname\fi\heiti #1} + {\ifhit@bachelor\rmfamily\else\csname hit@toc@font\endcsname\fi\heiti #1} \leaders\hbox{$\m@th\mkern \@dotsep mu\hbox{.}\mkern \@dotsep mu$}\hfill \nobreak{\normalfont\normalcolor #2}\par \penalty\@highpenalty @@ -1068,6 +1073,7 @@ foot=8.5true mm \let\p@enumiv\@empty \renewcommand\theenumiv{\@arabic\c@enumiv}}% \sloppy\frenchspacing + \flushbottom \ifhit@splitbibitem \clubpenalty0 \@clubpenalty \clubpenalty diff --git a/Master/texmf-dist/tex/latex/hithesis/hithesis.sty b/Master/texmf-dist/tex/latex/hithesis/hithesis.sty index b1508de9c77..d92ef07e6c7 100644 --- a/Master/texmf-dist/tex/latex/hithesis/hithesis.sty +++ b/Master/texmf-dist/tex/latex/hithesis/hithesis.sty @@ -3,17 +3,12 @@ Thesis Template Extension] % 此文件声明不在规范中要求的格式所使用的宏包。 % (所以,格式基本上是自由发挥的。) - -\setCJKfamilyfont{siyuan}[]{SourceHanSerifCN-Regular} -\newcommand{\highlight}[1]{{\CJKfamily{siyuan}\textbf{#1}}} - - - % 根据窝工规范中对数字书写规范的规定(6): % 凡4位或4位以上的数都从个位起每3位数空半个数码(1/4汉字)。 % 注意此处,除此任何空格都是错误的(包括\:\;\ 等) \RequirePackage{siunitx} \sisetup{group-minimum-digits=4, group-separator= \hspace{0.25em}} +\sisetup{detect-weight,detect-mode,detect-family} % 处理数学公式中的黑斜体的宏包 \RequirePackage{bm} @@ -38,17 +33,21 @@ Thesis Template Extension] % 算法的宏包,注意宏包兼容性,先后顺序为float、hyperref、algorithm(2e),否则无法 % 生成算法列表。我工算法混乱问题详见hithesis文档。各个实验室设置具体方法详见 % hithesis文档或者示例中给出的地址。 -\RequirePackage[boxed,linesnumbered,algochapter]{algorithm2e} +\RequirePackage[algoruled,linesnumbered,algochapter]{algorithm2e} +\SetAlCapSty{} +\newcommand{\foocaption}[1]{ \def\@algocf@pre@plainruled{\hrule height1.5pt depth0pt\kern\interspacetitleruled #1 \kern\interspacealgoruled\hrule height1pt depth0pt\kern\interspacetitleruled} } +\def\@algocf@post@ruled{\kern\interspacealgoruled\hrule height1.5pt\relax}% + \newcommand{\algoenname}{Algo.} %算法英文标题 \newfloatlist[chapter]{algoen}{aen}{\listalgoenname}{\algoenname} \newfixedcaption{\algoencaption}{algoen} \renewcommand{\thealgoen}{\thechapter-\arabic{algocf}} -\renewcommand{\@cftmakeaentitle}{\chapter*{\listalgoenname\@mkboth{\bfseries\listalgoenname}{\bfseries\listalgoenname}} +\renewcommand{\@cftmakeaentitle}{\chapter*{\listalgoenname\@mkboth{\listalgoenname}{\listalgoenname}} } \renewcommand{\algorithmcfname}{算法} \setlength\AlCapSkip{1.2ex} \SetAlgoSkip{1pt} -\renewcommand{\algocf@captiontext}[2]{\wuhao#1\algocf@typo ~ \AlCapFnt{}#2} % text of caption +\renewcommand{\algocf@captiontext}[2]{\wuhao#1\algocf@typo~\AlCapFnt{}#2} % text of caption \expandafter\ifx\csname algocf@within\endcsname\relax% if \algocf@within doesn't exist \renewcommand\thealgocf{\@arabic\c@algocf} % and the way it is printed \else% else @@ -62,7 +61,7 @@ Thesis Template Extension] \addtolength{\hsize}{-\algomargin}% } \newcommand{\AlgoBiCaption}[2]{%直接取出自定义的中英文标题条目加入到真正的\caption 中 - \caption[#1]{\protect\setlength{\baselineskip}{1.5em}#1 \protect \\ Algo. \thealgocf~~ #2} % \algoencaption{#2} + \caption[#1]{\protect\setlength{\baselineskip}{1.5em}#1 \protect \\ Algo.\thealgocf~#2} % \algoencaption{#2} \addcontentsline{aen}{algoen}{\protect\numberline{\thealgoen}{#2}} } -- cgit v1.2.3