From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- macros/latex/contrib/hithesis/hithesis.sty | 329 +++++++++++++++++++++++++++++ 1 file changed, 329 insertions(+) create mode 100644 macros/latex/contrib/hithesis/hithesis.sty (limited to 'macros/latex/contrib/hithesis/hithesis.sty') diff --git a/macros/latex/contrib/hithesis/hithesis.sty b/macros/latex/contrib/hithesis/hithesis.sty new file mode 100644 index 0000000000..b1508de9c7 --- /dev/null +++ b/macros/latex/contrib/hithesis/hithesis.sty @@ -0,0 +1,329 @@ +\ProvidesPackage{hithesis}[2018/02/19 1.0.10 Harbin Institute of Technology +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}} + +% 处理数学公式中的黑斜体的宏包 +\RequirePackage{bm} +% 不同于 \mathcal \mathfrak 之类的英文花体字体 +\RequirePackage{mathrsfs} +% 支持彩色 +\RequirePackage{xcolor} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% set global color theme of thesis % +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% + +\definecolor{colorzero}{rgb}{0, 0, 0} +\definecolor{colorone}{rgb}{1, 0, 0} +\definecolor{colortwo}{rgb}{0, 0, 1} +\definecolor{colorthree}{rgb}{0, 1, 0} +% 图形和表格的控制旋转 +\RequirePackage{rotating} + + + +% 算法的宏包,注意宏包兼容性,先后顺序为float、hyperref、algorithm(2e),否则无法 +% 生成算法列表。我工算法混乱问题详见hithesis文档。各个实验室设置具体方法详见 +% hithesis文档或者示例中给出的地址。 +\RequirePackage[boxed,linesnumbered,algochapter]{algorithm2e} +\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{\algorithmcfname}{算法} +\setlength\AlCapSkip{1.2ex} +\SetAlgoSkip{1pt} +\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 +\renewcommand\thealgocf{\csname the\algocf@within\endcsname-\@arabic\c@algocf} +\fi +\renewcommand{\algocf@makecaption}[2]{%中英文双标题一定多于一行,因此去掉单行时的判断,并将\parbox中标题设置为居中 + \addtolength{\hsize}{\algomargin}% + \sbox\@tempboxa{\algocf@captiontext{#1}{#2}}% + \hskip .5\algomargin% + \parbox[t]{\hsize}{\centering\algocf@captiontext{#1}{#2}}% + \addtolength{\hsize}{-\algomargin}% +} +\newcommand{\AlgoBiCaption}[2]{%直接取出自定义的中英文标题条目加入到真正的\caption 中 + \caption[#1]{\protect\setlength{\baselineskip}{1.5em}#1 \protect \\ Algo. \thealgocf~~ #2} % \algoencaption{#2} + \addcontentsline{aen}{algoen}{\protect\numberline{\thealgoen}{#2}} +} + +% 排版源码所使用的环境可以有两种。listings和minted +\RequirePackage{listings} +\lstset{ +% basicstyle=\small\ttfamily, +columns=flexible, +breaklines=true +} + +% 或者使用minted 包。如果使用该包,需要在编译时加-shell-escape选项,且需要安装 +% pygmentatize 工具对代码进行高亮。 +% \RequirePackage{minted} +% + +% 术语宏包,用来处理首次全写,之后缩写的问题 +\RequirePackage{glossaries} +\setacronymstyle{short-long} +\renewcommand*{\genacrfullformat}[2]{% + \glsentrylong{#1}% +} +\makeglossaries +% 添加术语举例 + +\newacronym{tssbp}{树结构折筷过程}{树结构折筷过程(Tree-structured Stick-breaking process)} +\def\gtssbp{\gls{tssbp}\sindex[china]{shu!树结构折筷过程}\sindex[english]{Tree-structured Stick-breaking process}} + +\newacronym[shortplural=SCNAs,longplural={体细胞拷贝数变异(Somatic copy number alternation,SCNA)}]{scna}{SCNA}{体细胞拷贝数变异(Somatic copy number alternation,SCNA)} +\def\gscna{\gls{scna}\sindex[china]{ti!体细胞拷贝数变异}\sindex[english]{Somatic copy number alternation}\ignorespaces} +\def\gscnas{\glspl{scna}\sindex[china]{ti!体细胞拷贝数变异}\sindex[english]{Somatic copy number alternation}\ignorespaces} + +% tikz做图宏宏包 +\usepackage{tikz} +% 此处可以定义一些tikz全局样式 +% \tikzstyle{nodestyle}= [circle, fill=gray!60] +% \tikzstyle{edgestyle}= [-latex] + +\tikzstyle{maternal}= [colorone] +\tikzstyle{paternal}= [colortwo] +\tikzstyle{variant}= [colorthree!80!colorzero] +\tikzstyle{reference}= [colorzero] + +\tikzstyle{aallele}= [colorzero,rotate=90] +\tikzstyle{ballele}= [colorthree!80!colorzero,rotate=90] + +\tikzstyle{refseg}= [colorzero,draw=colorzero, opacity=0.2] +\tikzstyle{mseg}= [colorone,draw=colorone, opacity=0.2] +\tikzstyle{pseg}= [colortwo,draw=colortwo, opacity=0.2] +\tikzstyle{vseg}= [colorthree!80!colorzero,draw=colorthree!80!colorzero, opacity=0.6] + +\tikzstyle{bncell}= [draw=colorzero,opacity=0.2,line width=2pt, rounded corners=1pt] +\tikzstyle{btcell}= [draw=colorone,opacity=0.6, line width=2pt, rounded corners=1pt] + +\tikzstyle{tncell}= [colorzero,opacity=0.9] +\tikzstyle{ttcell}= [colorone,opacity=0.6] +\tikzstyle{tscell}= [colorzero] +\tikzstyle{refcell}= [colorzero] + +\tikzstyle{evolve}= [->,draw=colortwo,opacity=0.3,line width=1.5pt] +\tikzstyle{fakeevolve}= [->,draw=colorzero,opacity=0.3,line width=1.5pt] + +\tikzstyle{refline}= [dashed,draw=colorzero,line width=1pt] +\tikzstyle{tnline}= [dashed,draw=colorzero,opacity=0.3,line width=1pt] + +\newcommand{\gseg}[9]{% + \pgfmathsetmacro{\sstartx}{#1} + \pgfmathsetmacro{\slengx}{#2} + \pgfmathsetmacro{\sy}{#3} + \pgfmathsetmacro{\sdy}{#4} + \pgfmathsetmacro{\sdx}{#5} + \pgfmathsetmacro{\sdxh}{#7} + \pgfmathsetmacro{\sdxt}{#8} + \fill[#6](\sstartx,\sy)--(\sstartx-\sdx,\sy+\sdy)-- + (\slengx+\sstartx+1.5-\sdx,\sy+\sdy)--(\slengx+\sstartx+1.5,\sy)-- + (\slengx+\sstartx+1.5-\sdx,\sy-\sdy)--(\sstartx-\sdx,\sy-\sdy)--cycle; + \draw[#9] (\sstartx-\sdxh,\sy) -- (\sstartx, \sy); + \draw[#9] (\slengx+\sstartx+1.5, \sy) -- (\slengx+\sstartx+1.5+\sdxt,\sy); +} +\newcommand{\gsegr}[9]{% + \pgfmathsetmacro{\sstartx}{#1} + \pgfmathsetmacro{\slengx}{#2} + \pgfmathsetmacro{\sy}{#3} + \pgfmathsetmacro{\sdy}{#4} + \pgfmathsetmacro{\sdx}{#5} + \pgfmathsetmacro{\sdxh}{#7} + \pgfmathsetmacro{\sdxt}{#8} + \fill[#6](\sstartx-0.5,\sy)--(\sstartx+\sdx-0.5,\sy+\sdy)-- + (\slengx+\sstartx+1.5+\sdx-0.5,\sy+\sdy)--(\slengx+\sstartx+1.5-0.5,\sy)-- + (\slengx+\sstartx+1.5+\sdx-0.5,\sy-\sdy)--(\sstartx+\sdx-0.5,\sy-\sdy)--cycle; + \draw[#9] (\sstartx-\sdxh-0.5,\sy) -- (\sstartx-0.5, \sy); + \draw[#9] (\slengx+\sstartx+1.5-0.5, \sy) -- (\slengx+\sstartx+1.5+\sdxt-0.5,\sy); +} + +\newcommand{\rcell}[2]{% + \pgfmathsetmacro{\x}{#1} + \pgfmathsetmacro{\y}{#2} + %\node at (\x+10, \y) {Reference}; + \draw (\x+1,\y) node[aallele]{A}; + \draw (\x+2,\y) node[aallele]{C}; + \draw (\x+3,\y) node[aallele]{T}; + \draw (\x+4,\y) node[aallele]{C}; + \gseg{\x}{4}{\y}{0.2}{0.5}{refseg}{1.5}{1}{reference}; +} + +\newcommand{\ncell}[2]{% + \pgfmathsetmacro{\x}{#1} + \pgfmathsetmacro{\y}{#2} + %\node [maternal] at (\x+8, \y) {M}; + %\node [paternal] at (\x+8, \y-0.5) {P}; + \draw[bncell](\x-2,\y+0.5)--(\x+7,\y+0.5)-- + (\x+7,\y-1)--(\x-2,\y-1)--cycle; + \draw (\x+1,\y) node[aallele]{A}; + \draw (\x+2,\y) node[ballele]{G}; + \draw (\x+3,\y) node[aallele]{T}; + \draw (\x+4,\y) node[aallele]{C}; + \gseg{\x}{4}{\y}{0.2}{0.5}{mseg}{1.5}{1}{maternal}; + \draw (\x+1,\y-0.5) node[ballele]{T}; + \draw (\x+2,\y-0.5) node[aallele]{C}; + \draw (\x+3,\y-0.5) node[aallele]{T}; + \draw (\x+4,\y-0.5) node[ballele]{A}; + \gseg{\x}{4}{\y-0.5}{0.2}{0.5}{pseg}{1.5}{1}{paternal}; +} + +\newcommand{\tcellone}[2]{% + \pgfmathsetmacro{\x}{#1} + \pgfmathsetmacro{\y}{#2} + %\node [maternal] at (\x+8, \y) {M}; + %\node [maternal] at (\x+8, \y-0.5) {M}; + %\node [paternal] at (\x+8, \y-1) {P}; + \draw[btcell](\x-2,\y+0.5)--(\x+7,\y+0.5)-- + (\x+7,\y-1.5)--(\x-2,\y-1.5)--cycle; + \draw (\x+1,\y) node[aallele]{A}; + \draw (\x+2,\y) node[ballele]{G}; + \draw (\x+3,\y) node[aallele]{T}; + \draw (\x+4,\y) node[aallele]{C}; + \gseg{\x}{4}{\y}{0.2}{0.5}{mseg}{1.5}{1}{maternal}; + \draw (\x+1,\y-0.5) node[aallele]{A}; + \draw (\x+2,\y-0.5) node[ballele]{G}; + \draw (\x+3,\y-0.5) node[aallele]{T}; + \draw (\x+4,\y-0.5) node[aallele]{C}; + \gseg{\x}{4}{\y-0.5}{0.2}{0.5}{mseg}{1.5}{1}{maternal}; + \draw (\x+1,\y-1) node[ballele]{T}; + \draw (\x+2,\y-1) node[aallele]{C}; + \draw (\x+3,\y-1) node[aallele]{T}; + \draw (\x+4,\y-1) node[ballele]{A}; + \gseg{\x}{4}{\y-1}{0.2}{0.5}{pseg}{1.5}{1}{paternal}; +} + +\newcommand{\tcellthree}[2]{% + \pgfmathsetmacro{\x}{#1} + \pgfmathsetmacro{\y}{#2} + %\node [maternal] at (\x+12, \y) {M}; + %\node [paternal] at (\x+12, \y-0.5) {P}; + \draw[btcell](\x-2,\y+0.5)--(\x+11,\y+0.5)-- + (\x+11,\y-1)--(\x-2,\y-1)--cycle; + \draw (\x+1,\y) node[aallele]{A}; + \draw (\x+2,\y) node[ballele]{G}; + \gseg{\x}{2}{\y}{0.2}{0.5}{mseg}{1.5}{0}{maternal}; + \gseg{\x+4}{0}{\y}{0.2}{0.5}{vseg}{0.5}{0.5}{variant}; + \draw (\x+7,\y) node[aallele]{T}; + \draw (\x+8,\y) node[aallele]{C}; + \gseg{\x+6}{2}{\y}{0.2}{0.5}{mseg}{0}{1}{maternal}; + \draw (\x+1,\y-0.5) node[ballele]{T}; + \draw (\x+2,\y-0.5) node[aallele]{C}; + \draw (\x+3,\y-0.5) node[aallele]{T}; + \draw (\x+4,\y-0.5) node[ballele]{A}; + \gseg{\x}{4}{\y-0.5}{0.2}{0.5}{pseg}{1.5}{1}{paternal}; +} + +\newcommand{\tcellfour}[2]{% + \pgfmathsetmacro{\x}{#1} + \pgfmathsetmacro{\y}{#2} + %\node [maternal] at (\x+18, \y) {M}; + %\node [paternal] at (\x+18, \y-0.5) {P}; + \draw[btcell](\x-2,\y+0.5)--(\x+15,\y+0.5)-- + (\x+15,\y-1)--(\x-2,\y-1)--cycle; + \draw (\x+1,\y) node[aallele]{A}; + \draw (\x+2,\y) node[ballele]{G}; + \gseg{\x}{2}{\y}{0.2}{0.5}{mseg}{1.5}{0}{maternal}; + \gseg{\x+4}{0}{\y}{0.2}{0.5}{vseg}{0.5}{0.5}{variant}; + \draw (\x+7,\y) node[aallele]{T}; + \gseg{\x+6}{1}{\y}{0.2}{0.5}{mseg}{0}{0}{maternal}; + \gseg{\x+9}{0}{\y}{0.2}{0.5}{vseg}{0.5}{0.5}{variant}; + \draw (\x+12,\y) node[aallele]{C}; + \gseg{\x+11}{1}{\y}{0.2}{0.5}{mseg}{0}{1}{maternal}; + \draw (\x+1,\y-0.5) node[ballele]{T}; + \draw (\x+2,\y-0.5) node[aallele]{C}; + \draw (\x+3,\y-0.5) node[aallele]{T}; + \draw (\x+4,\y-0.5) node[ballele]{A}; + \gseg{\x}{4}{\y-0.5}{0.2}{0.5}{pseg}{1.5}{1}{paternal}; +} + +\newcommand{\tcelltwo}[2]{% + \pgfmathsetmacro{\x}{#1} + \pgfmathsetmacro{\y}{#2} + %\node [maternal] at (\x+8, \y) {M}; + %\node [maternal] at (\x+8, \y-0.5) {M}; + %\node [paternal] at (\x+8, \y-1) {P}; + \draw[btcell](\x-2,\y+0.5)--(\x+7,\y+0.5)-- + (\x+7,\y-1.5)--(\x-2,\y-1.5)--cycle; + \draw (\x+1,\y) node[aallele]{A}; + \draw (\x+2,\y) node[ballele]{G}; + \draw (\x+3,\y) node[aallele]{T}; + \draw (\x+4,\y) node[aallele]{C}; + \gseg{\x}{4}{\y}{0.2}{0.5}{mseg}{1.5}{1}{maternal}; + \draw (\x+1,\y-0.5) node[aallele]{A}; + \draw (\x+2,\y-0.5) node[ballele]{G}; + \draw (\x+3,\y-0.5) node[aallele]{T}; + \draw (\x+4,\y-0.5) node[ballele]{G}; + \gseg{\x}{4}{\y-0.5}{0.2}{0.5}{mseg}{1.5}{1}{maternal}; + \draw (\x+1,\y-1) node[ballele]{T}; + \draw (\x+2,\y-1) node[aallele]{C}; + \draw (\x+3,\y-1) node[aallele]{T}; + \draw (\x+4,\y-1) node[ballele]{A}; + \gseg{\x}{4}{\y-1}{0.2}{0.5}{pseg}{1.5}{1}{paternal}; +} + + +\newcommand{\tcellfive}[2]{% + \pgfmathsetmacro{\x}{#1} + \pgfmathsetmacro{\y}{#2} + %\node [maternal] at (\x+8, \y) {M}; + %\node [maternal] at (\x+8, \y-0.5) {M}; + %\node [paternal] at (\x+8, \y-1) {P}; + \draw[btcell](\x-2,\y+0.5)--(\x+9.5,\y+0.5)-- + (\x+9.5,\y-1.5)--(\x-2,\y-1.5)--cycle; + \draw (\x+1,\y) node[aallele]{A}; + \draw (\x+2,\y) node[ballele]{G}; + \draw (\x+3,\y) node[aallele]{T}; + \draw (\x+4,\y) node[aallele]{C}; + \gseg{\x}{4}{\y}{0.2}{0.5}{mseg}{1.5}{1}{maternal}; + \draw (\x+1,\y-0.5) node[aallele]{A}; + \draw (\x+2,\y-0.5) node[ballele]{G}; + \draw (\x+3,\y-0.5) node[aallele]{T}; + \draw (\x+4,\y-0.5) node[aallele]{C}; + \gseg{\x}{4}{\y-0.5}{0.2}{0.5}{mseg}{1.5}{1}{maternal}; + \draw (\x+1,\y-1) node[ballele]{T}; + \gseg{\x}{1}{\y-1}{0.2}{0.5}{pseg}{1.5}{0}{paternal}; + \draw (\x+4.5,\y-1) node[ballele]{A}; + \draw (\x+5.5,\y-1) node[aallele]{T}; + \draw (\x+6.5,\y-1) node[aallele]{C}; + \gsegr{\x+3.5}{3}{\y-1}{0.2}{0.5}{pseg}{0.5}{1.5}{paternal}; +} + +% 最后定义一些常见的数学公式样式。格式和内容分离,是LaTeX的巨大优势 +% 例如如下定义: +\newcommand{\theVector}[1]{\bm{#1}} +\newcommand{\theMatrix}[1]{\mathbb{#1}} +\newcommand{\theSet}[1]{\mathcal{#1}} +\newcommand{\theDirected}[1]{{\overrightarrow{#1}}} +\newcommand{\theUndirected}[1]{{\overline{#1}}} +\newcommand{\theNetwork}[1]{\mathscr{#1}} +\newcommand{\theNode}[1]{{\text{#1}}} +\newcommand{\theDirectedEdge}[2]{{\overrightarrow{{#1}{#2}}}} +\newcommand{\theUndirectedEdge}[2]{{\overline{{#1}{#2}}}} +% 如果想要修改论文中所有的表示网络的数学符号的样式,不必在正文中处处修改,只需要 +% 在这里修改就可以了。 + +% 定义命令 +\def\cmd#1{\cs{\expandafter\cmd@to@cs\string#1}} +\def\cmd@to@cs#1#2{\char\number`#2\relax} +\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}} +\endinput -- cgit v1.2.3