blob: 32136a21e68c7a945e1f137ea1422314c952c71b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
% -------------------------------------------------------
% Copyright 2012 Ghersi Andrea (ghanhawk@gmail.com).
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License version
% 1.3c, available at 'http://www.latex-project.org/lppl'.
% -------------------------------------------------------
% ===============================================================================
% ------------------------------------------------------------------------- %
% Why a class file? (from document: LaTeX 2e for class and package writers) %
% ------------------------------------------------------------------------- %
% %
% The first thing to do when you want to put some new LaTEX commands in a file %
% is to decide whether it should be a document class or a package. The rule of %
% thumb is: %
% %
% If the commands could be used with any document class, then make them a %
% package; if not, then make them a class. %
% ===============================================================================
\NeedsTeXFormat{LaTeX2e}
\RequirePackage{svn-prov}
\def\@versionstr{1.5.4}
\ProvidesClassSVN
{$Id: mycv.cls 66 2012-04-28 14:38:41Z ghangenit $}
[v\@versionstr][My Curriculum Vitae class]
% ========
% Packages
% ========
\RequirePackage{kvoptions} % see the comment above
\RequirePackage{etextools} % for lists and other useful tools
\RequirePackage{ifthen} % for <\ifthenelse> command
\RequirePackage{xstring} % string utilities
% =============
% Class Options
% =============
\DeclareBoolOption{withDec}
\DeclareDefaultOption{%
\PassOptionsToClass{\CurrentOption}{article}}
\DeclareStringOption[english]{language}
\DeclareStringOption[Contents]{cntdir}
\DeclareStringOption[mycv_style]{style}
\DeclareStringOption[]{mdlname}
\ProcessKeyvalOptions*
% -----------------------------------------------------------
% The value of an option declared with <\DeclareStringOption>
% is stored in the macro \<class (or package) name>@<option>
% -----------------------------------------------------------
\PassOptionsToPackage{\mycv@language}{babel}
\RequirePackage{babel}
\LoadClass{article}
\def\cvcontentsdir{\mycv@cntdir}
% ===============
% File inclusions
% ===============
\input{mycv_base.def}
\input{mycv_misc.def}
% -------------------------------------
% use custom, default or any style file
% -------------------------------------
\ifthenelse{\equal{\mycv@style}{none}}%
{\relax}% file style is not wanted
{\RequirePackage{\mycv@style}}
% ----------------------
% use decorations or not
% ----------------------
\ifthenelse{\boolean{mycv@withDec}}%
{\RequirePackage{mycv_dec}}%
{\relax}
\DeclareRobustCommand{\ifmodel}[1]{%
\begingroup
\def\@mdlname{#1}
\ifx\mycv@mdlname\@mdlname
\endgroup
\expandafter\@firstoftwo
\else
\endgroup
\expandafter\@secondoftwo
\fi
}
% -----------------------------------------------
% <\ifoption{optionname}{then block}{else block}>
% -----------------------------------------------
\DeclareRobustCommand{\ifoption}[1]{%
\begingroup
\ifthenelse{\boolean{mycv@#1}}
{\endgroup\expandafter\@firstoftwo}
{\endgroup\expandafter\@secondoftwo}%
}
|