%% %% This is file `iidef.sty', %% generated with the docstrip utility. %% %% The original source files were: %% %% thucoursework.dtx (with options: `sty') %% %% This is a generated file. %% %% Copyright (C) 2020 by zhaofeng-shu33 <616545598@qq.com> %% %% This work may be distributed and/or modified under the %% conditions of the LaTeX Project Public License, either version 1.3 %% of this license or (at your option) any later version. %% The latest version of this license is in %% http://www.latex-project.org/lppl.txt %% and version 1.3 or later is part of all distributions of LaTeX %% version 2005/12/01 or later. %% %% To produce the documentation run the original source files ending with `.dtx' %% through LaTeX. %% \NeedsTeXFormat{LaTeX2e}[1999/12/01] \ProvidesClass{iidef} [2020/09/09 2.6 Tsinghua University Coursework Template] %% configuration of nested enumerate env \RequirePackage{enumitem} %% set hwcount key-value option \RequirePackage{kvoptions} %% required by macro DeclareMathOperator \RequirePackage{amsmath} %% Set up page headers using with fancyhdr \@ifundefined{lhead}{\RequirePackage{fancyhdr}} {\def\@thulhead{thulhead}} \RequirePackage{amsthm} %% semester \def\@term{term} \newcommand{\theterm}[1]{\renewcommand\@term{#1}} %% institute \newcommand{\@courseinstitute}[1]{institute} \newcommand{\thecourseinstitute}[1]{\renewcommand\@courseinstitute{#1}} %% coursename \newcommand{\@coursename}[1]{coursename} \newcommand{\thecoursename}[1]{\renewcommand\@coursename{\textsc{#1}}} %% user can rewrite homework name \def\@hwname{Homework} \def\hwname#1{\renewcommand\@hwname{#1}} %% \iidef@thehwcnt = 1 \DeclareStringOption[1]{thehwcnt} \ProcessKeyvalOptions* \def\thehwcnt{\iidef@thehwcnt} %% page header setup, distinguish between first page(plain style) %% and second page on (runningpage style) %%*************************************************************************** \newcommand{\courseheader}{ \thispagestyle{plain}%first page use native plain style to suppress header \vspace*{-1in} \begin{center} \@courseinstitute\\ \@coursename\\ \@term \vspace*{0.1in} \hrule \end{center} \begin{center} \underline{\bf \@hwname\;\thehwcnt} \\ \end{center} } \@ifundefined{@thulhead}{ \fancypagestyle{runningpage} { \fancyhead[L]{\small\@coursename} \fancyhead[R]{\small\@courseinstitute} } %% use runningpage style from second page on \pagestyle{runningpage} }{} %% ********************************************************************************************* %%name command macro %%************************* \newcommand{\name}[1]{ \begin{flushleft} #1\hfill \today \end{flushleft} \hrule \vspace{2em} \flushleft } %%************************* %% enumitem related configuration \setlist[enumerate,1]{label=\thehwcnt.\arabic*.} \setlist[enumerate,2]{label=(\alph*)} \setlist[enumerate,3]{label=\roman*.} \setlist[enumerate,4]{label=\greek*} %%****************************** \def\@slname{Solution} \def\slname#1{\renewcommand\@slname{#1}} \@ifundefined{solution}{ \newenvironment{solution} { \proof[\@slname] } { %% no qed symbol in solution env \renewcommand{\qedsymbol}{} \endproof } }{} %%****************************** %%common math symbols go here %%************************************************* \def\v#1{\underline{#1}} \newcommand{\uc}{\underline{c}} % c, vec \newcommand{\uv}{\underline{v}} % x, vec \newcommand{\uw}{\underline{w}} % w, vec \newcommand{\ux}{\underline{x}} % x, vec \newcommand{\uy}{\underline{y}} % y, vec \newcommand{\uz}{\underline{z}} % z, vec \newcommand{\um}{\underline{m}} % m, vec \newcommand{\rvx}{\mathsf{x}} % x, r.v. \newcommand{\rvy}{\mathsf{y}} % y, r.v. \newcommand{\rvz}{\mathsf{z}} % z, r.v. \newcommand{\rvw}{\mathsf{w}} % w, r.v. \newcommand{\rvH}{\mathsf{H}} % H, r.v. \newcommand{\urvx}{\underline{\mathsf{x}}} % x, r.v. vec \newcommand{\urvy}{\underline{\mathsf{y}}} % y, r.v. vec \newcommand{\urvz}{\underline{\mathsf{z}}} % z, r.v. vec \newcommand{\urvw}{\underline{\mathsf{w}}} % w, r.v. vec \newcommand{\defas}{\triangleq} %\coloneqq \newcommand{\reals}{\mathbb{R}} \newcommand{\TT}{\mathrm{T}} % transpose \DeclareMathOperator*{\argmax}{arg\,max} \DeclareMathOperator*{\argmin}{arg\,min} \DeclareMathOperator*{\argsup}{arg\,sup} \DeclareMathOperator*{\arginf}{arg\,inf} \DeclareMathOperator{\diag}{diag} \DeclareMathOperator{\Var}{Var} \DeclareMathOperator{\Cov}{Cov} \DeclareMathOperator{\MSE}{MSE} \DeclareMathOperator{\1}{\mathds{1}} \DeclareMathOperator{\In}{\mathbb{I}} \DeclareMathOperator{\E}{\mathbb{E}} \DeclareMathOperator{\Prob}{\mathbb{P}} \newcommand\independent{\protect\mathpalette{\protect\independenT}{\perp}} \def\independenT#1#2{\mathrel{\rlap{$#1#2$}\mkern2mu{#1#2}}} %%************************************************************************************