232
embeddedcv.cls
Normal file
232
embeddedcv.cls
Normal file
@@ -0,0 +1,232 @@
|
||||
%% ---------------------------------------------------------------------------------------------
|
||||
%% LaTeX ModernCV stripped down version for embedding in proposals
|
||||
%% ---------------------------------------------------------------------------------------------
|
||||
%% Initial version by Joe Foley <foley AT RU dot IS>
|
||||
%% Questions, comments, complaints: latex@LIST.RU.IS
|
||||
%% Created on 2015-02-27
|
||||
%% This code is distributed under the Perl Artistic License
|
||||
%% http://language.per.com/misc/Artistic.html
|
||||
%% This template is heavily derived from the RUCSMSc.sty developed by Bjorn Thor Jonsson, bjorn@ru.is
|
||||
%%
|
||||
%% Reference for class/package writers
|
||||
%% http://ctan.uib.no/macros/latex/doc/clsguide.pdf
|
||||
%%
|
||||
|
||||
\newcommand{\fileversion@embeddedcv}{Rev 1}
|
||||
\newcommand{\filedate@embeddedcv}{2016/03/05}% must be YYYY/MM/DD!
|
||||
\newcommand{\fileauthor@embeddedcv}{Joseph Timothy Foley, foley at R U dot I S}
|
||||
|
||||
\ProvidesClass{embeddedcv}[\filedate@embeddedcv by \fileauthor@embeddedcv]
|
||||
\NeedsTeXFormat{LaTeX2e}
|
||||
\typeout{Embedded CV Class \fileversion@embeddedcv <\filedate@embeddedcv>, by \fileauthor@embeddedcv}
|
||||
|
||||
%% ---------------- Critical packages -----------------------------
|
||||
% This package allows you to create conditionals on booleans
|
||||
\RequirePackage{ifthen}
|
||||
|
||||
% detect pdflatex vs latex
|
||||
\RequirePackage{ifpdf}
|
||||
|
||||
%% XeTeX can allow for nicer fonts, but we really don't need it
|
||||
%% Because we use standard fonts to be consistent
|
||||
%% Doing the XeTeX tests causes AUCTex to keep asking if you want XeTeX, which is annoying
|
||||
%\RequirePackage{ifxetex}
|
||||
|
||||
%% Morewrites packages allows more programs to generate external files
|
||||
%% because there is an internal limit
|
||||
%% Needed if you get a "No room for a new \write" error
|
||||
%% Unfortunately, it appears to be incompatible with DropBox. Bug filed with developed 2016-2-17 --foley
|
||||
%\RequirePackage{morewrites}
|
||||
|
||||
%% Command to remove things if we are draft mode
|
||||
\RequirePackage{ifdraft}
|
||||
|
||||
% ignore warnings and errors temporarily
|
||||
%\RequirePackage{silence}
|
||||
|
||||
%% LaTeX3
|
||||
%% Some of this may already be included as a dependancy from another package
|
||||
% Better handling of arguments, particularly for defaults
|
||||
\RequirePackage{xargs}
|
||||
|
||||
% Specialized commands for constructing macros
|
||||
\RequirePackage{xparse}
|
||||
|
||||
%% ---------------- Execution of Options -----------------------------
|
||||
\ProcessOptions\relax% this stops searching for a * in
|
||||
% \ProcessOtions*
|
||||
|
||||
%% Alternative way to subclass. Disable the other option processing
|
||||
%% if you enable it. This will dump all options onto the parent class
|
||||
%\ProcessOptions\LoadClassWithOptions{article}
|
||||
%% Read page 20 of http://latex-project.org/guides/clsguide.pdf
|
||||
%% carefully before modifying any of the execution and previous section.
|
||||
%% ---------------- Package Loading -----------------------------
|
||||
\LoadClass{article} % our parent class.
|
||||
|
||||
%% ---------------- XeTeX setup -----------------------------
|
||||
%% Embedding is often needed in MS Word documents, so we need XeTeX
|
||||
%\ifxetex%
|
||||
\RequirePackage{fontspec} % font selecting commands
|
||||
\RequirePackage{xunicode} % unicode character macros
|
||||
\RequirePackage{xltxtra} % a few fixes and extras
|
||||
%\else % pdftex or latex
|
||||
% \RequirePackage[T1]{fontenc}
|
||||
% \RequirePackage[utf8]{inputenc} % allows UTF encoding, needed for Icelandic characters
|
||||
%\fi
|
||||
|
||||
%% ---------------- Internationalization -----------------------------
|
||||
%\RequirePackage[autostyle,strict]{csquotes}
|
||||
%% http://mirrors.concertpass.com/tex-archive/macros/latex/contrib/csquotes/csquotes.pdf
|
||||
%% You invoke with \enquote{} and \blockquote{}
|
||||
%% csquotes must be loaded before babel for AUCTeX
|
||||
%% autostyle: update style as language changes in document
|
||||
%% strict: any warnings become errors
|
||||
%\DeclareQuoteAlias{german}{icelandic}
|
||||
%% Unfortunately, csquotes does not understand Icelandic quotation marks
|
||||
%% so we must create an alias. German is close enough.
|
||||
|
||||
%\@nameuse{RequirePackage}[english,german,icelandic]{babel}
|
||||
%% Babel allows various automatic text to be in selected languages
|
||||
%% But to use the options, you have to always load it, even for english
|
||||
%% The languages must be specified in order.
|
||||
|
||||
%% We load german because it seems to be needed for the special Icelandic quotation marks.
|
||||
%% Smart quotation marks
|
||||
%% The \@nameuse magic is to prevent AUCTeX from using the semi-broken icelandic mode.
|
||||
%% If you don't have a keyboard to type the Icelandic characters, there are macros:
|
||||
%% "` or \glqq (startquote)
|
||||
%% "' or \grqq (endquote)
|
||||
%% \TH Þ
|
||||
%% \th þ
|
||||
%% \DH Ð
|
||||
%% \dh ð
|
||||
%%
|
||||
|
||||
% set language based upon the class setting
|
||||
% \newcommand{\resetlanguage}{%
|
||||
% \ifthenelse{\boolean{icelandic}}%
|
||||
% {\selectlanguage{icelandic}}%
|
||||
% {\selectlanguage{english}}}%
|
||||
% \resetlanguage{}
|
||||
|
||||
\RequirePackage{iflang}
|
||||
%% iflang allows us to put multiple translations together
|
||||
%% e.g. \IfLanguageName{icelandic}{Já}{Yes}
|
||||
|
||||
|
||||
\RequirePackage{etoolbox}
|
||||
\RequirePackage{ifthen}
|
||||
\RequirePackage{xcolor}
|
||||
\RequirePackage{url}
|
||||
\RequirePackage{graphicx}
|
||||
\RequirePackage{fancyhdr}
|
||||
%\RequirePackage{tweaklist}
|
||||
% Definition of "description" causes conflicts, weird.
|
||||
\RequirePackage{calc}
|
||||
|
||||
|
||||
%% XeLaTeX needed!!
|
||||
%\setmainfont[Mapping=tex-text]{Arial}
|
||||
\setmainfont[Mapping=tex-text]{Times New Roman}
|
||||
|
||||
|
||||
\usepackage[margin=10mm]{geometry}
|
||||
|
||||
|
||||
\definecolor{myblue}{rgb}{0,0,0.5}
|
||||
\newcommand{\bluerule}{\textcolor{myblue}{\hrule}\vspace{\baselineskip}}
|
||||
\newcommand*{\listitemsymbol}{{\fontencoding{U}\fontfamily{ding}\selectfont\tiny\symbol{'102}}}
|
||||
\newcommand*{\hintfont}{\small\sffamily}
|
||||
|
||||
% length used by the moderncv layout
|
||||
% quote length
|
||||
\newlength{\quotewidth}
|
||||
% section lengths
|
||||
\newlength{\hintscolumnwidth}
|
||||
\newlength{\separatorcolumnwidth}
|
||||
\setlength{\separatorcolumnwidth}{0.025\textwidth}
|
||||
\newlength{\maincolumnwidth}
|
||||
% doubleitem lengths
|
||||
\newlength{\doubleitemmaincolumnwidth}
|
||||
% listitem lengths
|
||||
\newlength{\listitemsymbolwidth}
|
||||
\settowidth{\listitemsymbolwidth}{\listitemsymbol{}~}
|
||||
\newlength{\listitemmaincolumnwidth}
|
||||
% listdoubleitem lengths
|
||||
\newlength{\listdoubleitemmaincolumnwidth}
|
||||
% recompute all the lengths that depends on the text width
|
||||
\newcommand*{\recomputethemelengths}{}
|
||||
\newcommand*{\recomputelengths}{%
|
||||
\setlength{\quotewidth}{0.65\textwidth}%
|
||||
% main lenghts
|
||||
\setlength{\maincolumnwidth}{\textwidth}%
|
||||
\addtolength{\maincolumnwidth}{-\separatorcolumnwidth}%
|
||||
\addtolength{\maincolumnwidth}{-\hintscolumnwidth}%
|
||||
% listitem lengths
|
||||
\setlength{\listitemmaincolumnwidth}{\maincolumnwidth}%
|
||||
\addtolength{\listitemmaincolumnwidth}{-\listitemsymbolwidth}%
|
||||
% doubleitem lengths
|
||||
\setlength{\doubleitemmaincolumnwidth}{\maincolumnwidth}%
|
||||
\addtolength{\doubleitemmaincolumnwidth}{-\hintscolumnwidth}%
|
||||
\addtolength{\doubleitemmaincolumnwidth}{-\separatorcolumnwidth}%
|
||||
\setlength{\doubleitemmaincolumnwidth}{0.5\doubleitemmaincolumnwidth}%
|
||||
% listdoubleitem lengths
|
||||
\setlength{\listdoubleitemmaincolumnwidth}{\maincolumnwidth}%
|
||||
\addtolength{\listdoubleitemmaincolumnwidth}{-\listitemsymbolwidth}%
|
||||
\setlength{\listdoubleitemmaincolumnwidth}{0.475\listdoubleitemmaincolumnwidth}%
|
||||
% fancyhdr lengths
|
||||
\renewcommand{\headwidth}{\textwidth}%
|
||||
\recomputethemelengths}
|
||||
\setlength{\hintscolumnwidth}{0.15\textwidth}
|
||||
\recomputelengths
|
||||
|
||||
|
||||
% usage: \cvline{margintext}{linetext}
|
||||
\newcommand*{\cvline}[3][.25em]{%
|
||||
\begin{tabular}{@{}p{\hintscolumnwidth}@{\hspace{\separatorcolumnwidth}}p{\maincolumnwidth}@{}}%
|
||||
\raggedleft\hintfont{#2} &{#3}%
|
||||
\end{tabular}\\[#1]}
|
||||
|
||||
% usage: \cvdoubleitem{subtitle}{text}{subtitle}{text}
|
||||
\newcommand*{\cvdoubleitem}[4]{%
|
||||
\cvline{#1}{\begin{minipage}[t]{\doubleitemmaincolumnwidth}#2\end{minipage}%
|
||||
\hfill%
|
||||
\begin{minipage}[t]{\hintscolumnwidth}\raggedleft\hintfont{#3}\end{minipage}\hspace*{\separatorcolumnwidth}\begin{minipage}[t]{\doubleitemmaincolumnwidth}#4\end{minipage}}}
|
||||
|
||||
% usage: \cventry{years}{degree/job title}{institution/employer}{localization}{optionnal: grade/...}{optional: comment/job description}
|
||||
\newcommand*{\cventry}[6]{%
|
||||
\cvline{#1}{%
|
||||
{\bfseries#2}%
|
||||
\ifthenelse{\equal{#3}{}}{}{, {\slshape#3}}%
|
||||
\ifthenelse{\equal{#4}{}}{}{, #4}%
|
||||
\ifthenelse{\equal{#5}{}}{}{, #5}%
|
||||
.%
|
||||
\ifx&%
|
||||
\else{\newline{}\begin{minipage}[t]{\linewidth}\small#6\end{minipage}}\fi%
|
||||
}}%
|
||||
\newcommand*{\cvitem}[2]{\cvline{#1}{#2}}
|
||||
|
||||
% usage (inside 'language' cvsection environment): \cvlanguage{name}{level}{comment}
|
||||
\newcommand*{\cvlanguage}[3]{%
|
||||
\cvline{#1}{\begin{minipage}[t]{.225\maincolumnwidth}\textbf{#2}\end{minipage}\hfill\begin{minipage}[t]{0.725\maincolumnwidth}\raggedleft\footnotesize\itshape #3\end{minipage}}}
|
||||
|
||||
% usage: \cvlistdoubleitem[symbol]{point1}{point2}
|
||||
\newcommand*{\cvlistdoubleitem}[3][\listitemsymbol{}]{%
|
||||
\cvline[0pt]{}{#1~\begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#2\end{minipage}%
|
||||
\hfill%
|
||||
\ifthenelse{\equal{#3}{}}%
|
||||
{}%
|
||||
{#1~\begin{minipage}[t]{\listdoubleitemmaincolumnwidth}#3\end{minipage}}}}
|
||||
|
||||
% usage (inside 'computer skills' cvsection environment): \cvcomputer{category}{programs}{category}{programs}
|
||||
\newcommand*{\cvcomputer}[4]{%
|
||||
\cvdoubleitem{#1}{\small#2}{#3}{\small#4}}
|
||||
|
||||
%% Some commands so that we can use the same .tex file as a full CV
|
||||
%% Disabled because they are before \begin{document}
|
||||
\newcommand{\firstname}[1]{}
|
||||
\newcommand{\familyname}[1]{}
|
||||
\newcommand{\address}[2]{}
|
||||
\newcommand{\phone}[1]{}
|
||||
\newcommand{\email}[1]{}
|
||||
Reference in New Issue
Block a user