加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
style.cls 10.84 KB
一键复制 编辑 原始数据 按行查看 历史
ylxdxx 提交于 2022-07-17 10:49 . 修复罗马数字
\NeedsTeXFormat{LaTeX2e}
\ProvidesClass{style}[shui 自定义文档模板]
%基本设置
\LoadClass[UTF8,
oneside,
%openright,
zihao=-4,]{ctexbook}
%其中winfonts解决某些不常用字无法正确显示的问题,其中openright与twoside的效果一样
%Linux下默认使用的字体有些生僻字无法正常显示
%\usepackage[paperwidth=14.54cm,paperheight=23.26cm,top=12mm,bottom=9mm,right=3mm,left=3mm]{geometry}%页面大小,华为M6平板专用
%纸张规格
%开本:787mm×1092mm 1/16
%成品尺寸:184mm×260mm
\usepackage[
paperwidth=185mm,paperheight=260mm,
textheight=218mm,
textwidth=144mm,
%top=2cm,bottom=2.8cm,right=1.8cm,left=1.8cm
]{geometry}%页面设置
\usepackage{ulem}%下划线
\normalem %紧接 ulem 宏包, ulem 重定义\emph 命令,复原
\usepackage{svg}%下划线
\usepackage{bbding}%五角星图形
\usepackage{tikz}
\usepackage{graphicx}
%\usepackage{subfigure}该宏包过期,不推荐使用
\usepackage{caption} %caption 和 subcaption设置标题,提供图片表格并排
\usepackage{subcaption} %caption 和 subcaption设置标题,提供图片表格并排
\usepackage{xeCJKfntef}%添加下划线,利用此可以可以实现空白下划线跨行
\usepackage{xcolor}%颜色相关
%罗马数字大小写
\newcommand{\lmx}[1]{\expandafter{\romannumeral #1\relax}}%罗马数字小写
\newcommand{\lmd}[1]{\uppercase\expandafter{\romannumeral #1\relax}}%罗马数字大写
%断词断字设置
\hyphenpenalty=1000 %最大值1,0000,完全阻止断词(hyphenation)
\exhyphenpenalty=1000 %最大值1,0000,完全阻止断词(hyphenation)
\tolerance=550 %最大值1,0000,调整换行比例,间接影响断词,越大换行多断词少,太大影响整体换行效果,不美观
%\hyphenation{data-bases Windows}%设置断词方式,若没有断字符号,则不断,Windows就会永远连在一起打印
%可以使用命令 \- 在单词中间,指示系统这里是一个可以断词的位置。设置后如果不需要断词则不会产生连字符。
%题干正文间距
\newcommand{\TiGanSpace}{ \vspace{1em} } %题干,与正文的间距
% 英文字体配置部分
\setmainfont{Times New Roman}
%\setCJKmainfont[BoldFont=boldFontName, ItalicFont=italicFontName]{mainFontName}
%\setsansfont{}
%\setmonofont{}
% 中文字体配置部分
%\setCJKmainfont{宋体}%正文字体
%\setCJKmainfont[BoldFont={方正小标宋_GBK}, ItalicFont={方正楷体_GBK}, BoldItalicFont={方正仿宋_GBK}]{宋体}%正文字体
%\setCJKsansfont{黑体}%无衬线字体
%\setCJKmonofont{楷体}%等宽字体
%\setCJKfamilyfont{boldsong}{Source Han Serif SC Heavy}
%超链接
\RequirePackage[draft=false,colorlinks=true,CJKbookmarks=true,linkcolor=blue,citecolor=green,urlcolor=red,hyperindex]{hyperref}
%选择题列表
\usepackage{enumitem}
\setlist[enumerate]{
%label=\bfseries\arabic*.,
itemsep=0em,
}
%句子选择
\newlist{listmatch}{enumerate}{3}
\setlist[listmatch]{
label=\Alph*.,
itemsep=0em,
}
%作文
\newlist{listwrite}{enumerate}{3}
\setlist[listwrite]{
label=\arabic*)~,
itemsep=0em,
leftmargin=3.5em,
}
%页眉
\RequirePackage{fancyhdr} %页眉排版相关
\fancyhf{}
%\fancyhead[OR]{\textnormal{\kaishu\leftmark}}
%\fancyhead[OL]{--\ \thepage\ --}
%\fancyhead[EL]{\textnormal{\kaishu\leftmark}}
%\fancyhead[ER]{--\ \thepage\ --}
\renewcommand{\headrulewidth}{0pt}% Header rule of .4pt
\fancyfoot[C]{\small\leftmark--\thepage}%页码位置:偶数页居左,奇数页居右
\pagestyle{fancy}
\fancypagestyle{mychapter}{%
\fancyhf{}% Clear header/footer
\fancyhead[L]{{\zihao{4}\heiti 绝密 \raisebox{-.3em}{\FiveStar} 启用前}}% Author on Odd page, Centred
%\fancyhead[E]{\protect\Headereven}% Title on Even page, Centred
%\fancyfoot[C]{\thepage}%
\renewcommand{\headrulewidth}{0pt}% Header rule of .4pt
}
%标题样式
\usepackage{titlesec}
\titleformat{\chapter}[hang]{\bfseries\vspace{-2cm}\centering}{\filcenter}{1pt}{%
\bfseries\Large}[]
%标题格式格式
\ctexset{
chapter ={
%format = \centering \heiti \LARGE,
pagestyle = mychapter,
name = {,},
number = {},
aftername = {},
}
}
\ctexset{
section ={
%format = \centering \heiti \LARGE,
% pagestyle = empty,
name = {Section \ , \quad },
number = {\Roman{section}},
aftername = {},
}
}
\ctexset{
subsection ={
format = \centering \large \bfseries,
% pagestyle = empty,
name = {,},
number = {},
aftername = {},
}
}
%答案关键词
%\usepackage{keyval}
%\define@key{mylineread}{answer}{#1}
%\define@key{mylineread}{test}{#1}
%\newcommand{\keytest}[1][]{\setkeys{mylineread}{#1}}
%\keytest[answer=B]
%注意下面的\hspace 和 \hbox 其中\hspace在行首失效,\hbox 行首有效
%两者交叉运用,恰好抵消若填空出现在行首产生的0.3em缩进,完美!
%另外,后面的%号不能少,不让其后产生额外空格,不然有时会有标点符号单独在行的开始的尴尬局面
\newcommand{\lineread}[1][]{
\hspace{-0.3em}\uline{\hbox to 15mm{\hfill\setkeys{mylineread}{#1}\hfill}}%
}
\newcommand{\linefill}{%
\refstepcounter{enumi}(\theenumi)\CJKunderline*[hidden=true]{瞻彼阕者\mbox{虚室}}%使用\mbox保证换行后最少两个字符的间距
}
%
%
%完型填空
%
\newcounter{counterwanxin}[enumi]
\newcommand{\cloze}{%
\refstepcounter{counterwanxin}\uline{\phantom{a~~}\arabic{counterwanxin}\phantom{~~a}}~}%使用\phantom 防止在行首时出现空白消失
%翻译顺序
\newcounter{countertrans}[enumi]
\newcommand{\transnum}{%
\refstepcounter{enumi}(\theenumi)~
}
%新行间距
\newcommand{\newlinespread}[2]
{
{\linespread{#1}\selectfont %1.5倍行距
#2
\par}
}
%将页面计数器与章节计数器关联起来
%\makeatletter
%\@addtoreset{page}{chapter}
%\makeatother
%选择题
%四个选项的处理
\usepackage{xstring,xifthen}
\newlength{\choicelengtha}
\newlength{\choicelengthb}
\newlength{\choicelengthc}
\newlength{\choicelengthd}
\newlength{\choicelengthe}
\newlength{\maxlength}
\newcommand{\fourchoices}[4]
{
\settowidth{\choicelengtha}{A.~#1~}
\settowidth{\choicelengthb}{B.~#2~}
\settowidth{\choicelengthc}{C.~#3~}
\settowidth{\choicelengthd}{D.~#4~}
\ifthenelse{\lengthtest{\choicelengtha>\choicelengthb}}{\setlength{\maxlength}{\choicelengtha}}{\setlength{\maxlength}{\choicelengthb}}
\ifthenelse{\lengthtest{\choicelengthc>\maxlength}}{\setlength{\maxlength}{\choicelengthc}}{}
\ifthenelse{\lengthtest{\choicelengthd>\maxlength}}{\setlength{\maxlength}{\choicelengthd}}{}
\ifthenelse{\lengthtest{\maxlength>0.49\linewidth}}%万事留一线(防止意外)
{
\par
\noindent
\parbox[t]%
{1.5em}{\hfill A.}\hskip0.2em%
\parbox[t]{\linewidth-1.7em}{\strut%\raggedright%使用\raggedright会导致超长公式不能自动换行
#1\strut}%
\\
\parbox[t]%
{1.5em}{\hfill B.}\hskip0.2em%
\parbox[t]{\linewidth-1.7em}{\strut%\raggedright%使用\raggedright会导致超长公式不能自动换行
#2\strut}%
\\
\parbox[t]%
{1.5em}{\hfill C.}\hskip0.2em%
\parbox[t]{\linewidth-1.7em}{\strut%\raggedright%使用\raggedright会导致超长公式不能自动换行
#3\strut}%
\\
\parbox[t]%
{1.5em}{\hfill D.}\hskip0.2em%
\parbox[t]{\linewidth-1.7em}{\strut%\raggedright%使用\raggedright会导致超长公式不能自动换行
#4\strut}%
%\vspace{\parskip}
\par
}
{
\ifthenelse{\lengthtest{\maxlength>0.24\linewidth}}%万事留一线(防止意外)
{
\par
\noindent
\parbox[t]%
{1.5em}{\hfill A.}\hskip0.2em%
\parbox[t]{0.5\linewidth-1.7em}{\raggedright%
#1}\hfill%
\parbox[t]%
{1.5em}{\hfill B.}\hskip0.2em%
\parbox[t]{0.5\linewidth-1.7em}{\raggedright%
#2}
\\
\parbox[t]%
{1.5em}{\hfill C.}\hskip0.2em%
\parbox[t]{0.5\linewidth-1.7em}{\raggedright%
#3}\hfill%
\parbox[t]%
{1.5em}{\hfill D.}\hskip0.2em%
\parbox[t]{0.5\linewidth-1.7em}{\strut\raggedright%
#4\strut}
%\vspace{\parskip} %这里,当有四个的时候自动会有parskip空行,原因未知
\par
}
{
\par
\noindent
\parbox[t]%
{1.5em}{\hfill A.}\hskip0.2em%
\parbox[t]{0.25\linewidth-1.7em}{\raggedright%
#1}\hfill%
\parbox[t]%
{1.5em}{\hfill B.}\hskip0.2em%
\parbox[t]{0.25\linewidth-1.7em}{\raggedright%
#2}\hfill%
\parbox[t]%
{1.5em}{\hfill C.}\hskip0.2em%
\parbox[t]{0.25\linewidth-1.7em}{\raggedright%
#3}\hfill%
\parbox[t]%
{1.5em}{\hfill D.}\hskip0.2em%
\parbox[t]{0.25\linewidth-1.7em}{\strut\raggedright%
#4\strut}
%\vspace{\parskip} %这里,当有四个的时候自动会有parskip空行,原因未知
\par
}
}
}
\newcommand{\bta}[1]{
\setcounter{page}{1}%设置页面计数器
\chapter{#1年全国硕士研究生招生考试}
%\markboth{#1年考研英语}{#1年考研英语}
\markboth{#1}{#1}
\vspace{-1em}
\section*{英语}
\noindent
\begin{center}
\zihao{4} (科目代码:201)
\end{center}
%
\begin{center}
\begin{tikzpicture}[shift={(-2.5cm ,0.3cm)},
remember picture,overlay]
\node at (0,0) {试~卷~条~形~码};
\draw [draw=black,dashed] (-1.7,-0.8) rectangle (1.7,0.8);
\end{tikzpicture}
\zihao{4}\heiti \raisebox{-.3em}{\FiveStarOpen} 考生注意事项 \raisebox{-.3em}{\FiveStarOpen}
\end{center}
%
\vspace{1.3cm}
\begin{minipage}[h!]{0.94\linewidth}
\begin{enumerate}[leftmargin=4em]
%\renewcommand{\labelenumi}{\arabic{enumi}.}
% A(\Alph) a(\alph) I(\Roman) i(\roman) 1(\arabic)
%设定全局标号series=example %引用全局变量resume=example
%[topsep=-0.3em,parsep=-0.3em,itemsep=-0.3em,partopsep=-0.3em]
%可使用leftmargin调整列表环境左边的空白长度 [leftmargin=0em]
\item
答题前,考生须在试题册指定位置上填写考生编号和考生姓名;在答题卡指
定位置上填写报考单位、考生姓名和考生编号,并涂写考生编号信息点。
\item
考生须把试题册上的“试卷条形码”粘贴条取下,粘贴在答题卡的“试卷条
形码粘贴位置”框中。不按规定粘贴条形码而影响评卷结果的,责任由考生
自负。
\item
选择题的答案必须涂写在答题卡相应题号的选项上,非选择题的答案必须书
写在答题卡指定位置的边框区域内。超出答题区域书写的答案无效;在草稿
纸、试题册上答题无效。
\item
填(书)写部分必须使用黑色字迹签字笔书写,字迹工整、笔迹清楚;涂写
部分必须使用2B铅笔填涂。
\item
考试结束,将答题卡和试题册按规定交回。
\end{enumerate}
\end{minipage}
\\
\vspace{1.2cm}
\begin{center}
(以下信息考生必须认真填写)
\begin{table}[h!]
\zihao{5}
\centering
\begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline
考生编号 & \hspace{0.5em} & \hspace{0.5em} & \hspace{0.5em} & \hspace{0.5em} & \hspace{0.5em} & \hspace{0.5em} & \hspace{0.5em} & \hspace{0.5em} & \hspace{0.5em} & \hspace{0.5em} & \hspace{0.5em} & \hspace{0.5em} & \hspace{0.5em} & \hspace{0.5em} &\hspace{0.5em} \\
\hline
考生姓名&\multicolumn{15}{c|}{}\\
\hline
\end{tabular}
\end{table}
\end{center}
\newpage
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化