├── Resume.pdf
├── preview.jpg
├── profile.png
├── preview_2.jpg
├── .github
└── FUNDING.yml
├── fonts
├── FontAwesome.ttf
├── Roboto-Bold.ttf
├── Roboto-Light.ttf
├── Roboto-Thin.ttf
├── Roboto-Italic.ttf
├── Roboto-Medium.ttf
├── Roboto-Regular.ttf
├── Roboto-BoldItalic.ttf
├── Roboto-ThinItalic.ttf
├── Roboto-LightItalic.ttf
└── Roboto-MediumItalic.ttf
├── .gitignore
├── cv
├── languages.tex
├── summary.tex
├── publications.tex
├── skills.tex
├── achievements.tex
├── experience.tex
├── interests.tex
├── education.tex
├── references.bib
└── projects.tex
├── README.md
├── resume.tex
├── LICENSE
└── russell.cls
/Resume.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/Resume.pdf
--------------------------------------------------------------------------------
/preview.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/preview.jpg
--------------------------------------------------------------------------------
/profile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/profile.png
--------------------------------------------------------------------------------
/preview_2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/preview_2.jpg
--------------------------------------------------------------------------------
/.github/FUNDING.yml:
--------------------------------------------------------------------------------
1 | ko_fi: themagicalmammal
2 | custom: [ 'buymeacoffee.com/dipannanda', ]
3 |
--------------------------------------------------------------------------------
/fonts/FontAwesome.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/FontAwesome.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-Bold.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-Light.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-Thin.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-Italic.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-Medium.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-Regular.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-BoldItalic.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-ThinItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-ThinItalic.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-LightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-LightItalic.ttf
--------------------------------------------------------------------------------
/fonts/Roboto-MediumItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/themagicalmammal/Resume/HEAD/fonts/Roboto-MediumItalic.ttf
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ### TeX ###
2 | ## Core latex/pdflatex auxiliary files:
3 | *.aux
4 | *.lof
5 | *.log
6 | *.lot
7 | *.fls
8 | *.out
9 | *.toc
10 |
11 | ## BibLaTeX auxiliary files:
12 | *.bbl
13 | *.bcf
14 | *.blg
15 |
16 | ## Intermediate documents:
17 | *.dvi
18 | *-converted-to.*
19 | <<<<<<< HEAD
20 |
21 | ### Editor ###
22 | ## Vim & Emacs temp files:
23 | .*sw[op]
24 | *~
25 |
26 | ### Mac OS X ###
27 | ## Mac OS X metadata files:
28 | *.DS_Store
29 |
--------------------------------------------------------------------------------
/cv/languages.tex:
--------------------------------------------------------------------------------
1 | %-------------------------------------------------------------------------------
2 | % SECTION TITLE
3 | %-------------------------------------------------------------------------------
4 | \cvsection{Languages}
5 |
6 | %-------------------------------------------------------------------------------
7 | % CONTENT
8 | %-------------------------------------------------------------------------------
9 | \begin{cvskills}
10 |
11 | %---------------------------------------------------------
12 | \cvskill
13 | {English} % Language
14 | {Professional proficiency} % Type
15 |
16 | %---------------------------------------------------------
17 | \cvskill
18 | {Hindi} % Language
19 | {Native proficiency} % Type
20 |
21 | \end{cvskills}
22 |
--------------------------------------------------------------------------------
/cv/summary.tex:
--------------------------------------------------------------------------------
1 | %-------------------------------------------------------------------------------
2 | % SECTION TITLE
3 | %-------------------------------------------------------------------------------
4 | \cvsection{Personal Profile}
5 |
6 |
7 | %-------------------------------------------------------------------------------
8 | % CONTENT
9 | %-------------------------------------------------------------------------------
10 | \begin{cvparagraph}
11 |
12 | %---------------------------------------------------------
13 | A University of Leeds graduate student who is enrolled in the Data Science and Analysis programme. Dedicated to software engineering, having two or more years of expertise, and specialising in full-stack web development, algorithms, and machine learning. Searching mostly for Machine Learning, Data Engineer, and Python Development positions.
14 | \end{cvparagraph}
--------------------------------------------------------------------------------
/cv/publications.tex:
--------------------------------------------------------------------------------
1 | %-------------------------------------------------------------------------------
2 | % SECTION TITLE
3 | %-------------------------------------------------------------------------------
4 | \cvsection{Publications}
5 |
6 | %-------------------------------------------------------------------------------
7 | % SUBSECTION TITLE
8 | %-------------------------------------------------------------------------------
9 | \cvsubsection{Journal Articles}
10 |
11 | \begin{refsection}
12 | \nocite{Khan2014Incentive}
13 | \nocite{Selimi2015Cloud}
14 |
15 | \newrefcontext[sorting=ydnt]
16 | \printbibliography[
17 | heading=none
18 | ]
19 | \end{refsection}
20 |
21 | %-------------------------------------------------------------------------------
22 | % SUBSECTION TITLE
23 | %-------------------------------------------------------------------------------
24 | \cvsubsection{Conference Proceedings}
25 |
26 | \begin{refsection}
27 | \nocite{Khan2014Prototyping}
28 |
29 | \newrefcontext[sorting=ydnt]
30 | \printbibliography[
31 | heading=none
32 | ]
33 | \end{refsection}
--------------------------------------------------------------------------------
/cv/skills.tex:
--------------------------------------------------------------------------------
1 | %-------------------------------------------------------------------------------
2 | % SECTION TITLE
3 | %-------------------------------------------------------------------------------
4 | \cvsection{Skills}
5 |
6 |
7 | %-------------------------------------------------------------------------------
8 | % CONTENT
9 | %-------------------------------------------------------------------------------
10 | \begin{cvskills}
11 |
12 | %---------------------------------------------------------
13 | \cvskill
14 | {Programming} % Category
15 | {Python (Pandas, PyTorch, NumPy, Scikit‑learn. etc.), R(ggplot2), PHP, C/C++, HTML/CSS, JavaScript, SQL.} % Skills
16 |
17 | %---------------------------------------------------------
18 | \cvskill
19 | {Miscellaneous} % Category
20 | {Linux, Shell (Bash/Zsh), \LaTeX (Overleaf/R Markdown), Tableau, Microsoft Office, Firebase, Git.} % Skills
21 | %---------------------------------------------------------
22 | \cvskill
23 | {Soft Skills} % Category
24 | {Time Management, Teamwork, Problem-solving, Documentation, Engaging Presentation.} % Skills
25 |
26 | \end{cvskills}
27 |
--------------------------------------------------------------------------------
/cv/achievements.tex:
--------------------------------------------------------------------------------
1 | %-------------------------------------------------------------------------------
2 | % SECTION TITLE
3 | %-------------------------------------------------------------------------------
4 | \cvsection{Achievements}
5 |
6 |
7 |
8 | %-------------------------------------------------------------------------------
9 | % CONTENT
10 | %-------------------------------------------------------------------------------
11 | \begin{cvhonors}
12 |
13 | %---------------------------------------------------------
14 | \cvhonor
15 | {319/340} % Award
16 | {Graduate Record Examinations (GRE)} % Event
17 | {India} % Location
18 | {2019} % Date(s)
19 | \cvhonor
20 | {Elite} % Award
21 | {DBMS NPTEL Exam} % Event
22 | {India} % Location
23 | {2018} % Date(s)
24 | \cvhonor
25 | {Elite} % Award
26 | {C NPTEL Exam} % Event
27 | {India} % Location
28 | {2018} % Date(s)
29 | \cvhonor
30 | {Winner} % Award
31 | {Smart India Hackathon (SIH)} % Event
32 | {India} % Location
33 | {2019} % Date(s)
34 | \cvhonor
35 | {Level 3} % Award
36 | {TablaNiketan Exam} % Event
37 | {India} % Location
38 | {2014} % Date(s)
39 | \cvhonor
40 | {Level 1} % Award
41 | {National Talent Search Exam (NTSE)} % Event
42 | {India} % Location
43 | {2014} % Date(s)
44 | \end{cvhonors}
--------------------------------------------------------------------------------
/cv/experience.tex:
--------------------------------------------------------------------------------
1 | %-------------------------------------------------------------------------------
2 | % SECTION TITLE
3 | %-------------------------------------------------------------------------------
4 | \cvsection{Work Experience}
5 |
6 |
7 | %-------------------------------------------------------------------------------
8 | % CONTENT
9 | %-------------------------------------------------------------------------------
10 | \begin{cventries}
11 |
12 | %---------------------------------------------------------
13 | \cventry
14 | {Software Engineer} % Job title
15 | {Indian Institute of Technology} % Organisation
16 | {Indore, India} % Location
17 | {Sept 2020 - Aug 2021} % Date(s)
18 | {
19 | \begin{cvitems} % Description(s) of tasks/responsibilities
20 | \item {Collaborated with a four-person team to develop a CNN model that utilised YOLO as a foundation to improve the accuracy of ambient lighting conditions in the Mobile net architecture.}
21 | \item {Automated and optimised the data handling process for traffic signs, working with Ubuntu 20.04 did shell scripting, and employed other Linux tools.}
22 | \item {Significantly boosted the model's accuracy by 60\%, which was yielding an accuracy of 70-78\% under Indian street light. The older models, had an accuracy of 10-15\%.}
23 | \item {\textbf{Technical Skills:} Python with PyTorch, NumPy, Matplotlib, Pandas, Scikit-learn, C++, Ubuntu Linux, Linux tools, Apt, Scripting, Git.}
24 | \item {\textbf{Soft Skills:} Teamwork, Time Management, Communication, Presentation skills.}
25 | \end{cvitems}
26 | }
27 |
28 | \end{cventries}
29 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # $\color[RGB]{250,100,122} Information$
4 |
5 | This resume template has been developed with the guidance of coaches at the University of Leeds, ensuring it aligns with the standards set forth by the Russell Group in the United Kingdom.
6 |
7 | # $\color[RGB]{250,100,122} Preview$
8 |
9 | |
|
|
10 | |:-------------------------:|:-------------------------:|
11 |
12 | # $\color[RGB]{250,100,122} Contribute$
13 | This project is open to contributions of all kinds. Fork the repo, make your changes, and submit a pull request. Every contribution counts!
14 |
15 | Thanks for considering contributing to this project. Let's make it awesome together!
16 |
17 | # $\color[RGB]{0,200,0} Óverleaf$
18 | You can edit this [here](https://www.overleaf.com/latex/templates/russelresume/zqnypvvjsfvq).
19 |
20 | # $\color[RGB]{250,100,122} References$
21 |
22 |
23 | # $\color[RGB]{250,100,122} Credits$
24 | 
25 | 
26 | 
27 |
28 |
29 |
--------------------------------------------------------------------------------
/cv/interests.tex:
--------------------------------------------------------------------------------
1 | %-------------------------------------------------------------------------------
2 | % SECTION TITLE
3 | %-------------------------------------------------------------------------------
4 |
5 |
6 | \cvsection{Interests}
7 |
8 |
9 | %-------------------------------------------------------------------------------
10 | % CONTENT
11 | %-------------------------------------------------------------------------------
12 | \begin{cvskills}
13 | %---------------------------------------------------------
14 | \cvskill
15 | {Cooking} % Interest
16 | {I love cooking. I am an expert in most Indian-style cooking, enjoy baking and making my own pizza.} % Description
17 |
18 | %---------------------------------------------------------
19 | \cvskill
20 | {Linux} % Interest
21 | {Since 2017, I have been in love with Linux. I recently switched to Mac OS, which feels like a premium of Linux.} % Description
22 | %---------------------------------------------------------
23 | \cvskill
24 | {Technical Writing} % Interest
25 | {I write descriptive blogs about Linux some of them are on my \href{https://github.com/themagicalmammal/howtodebuntu}{GitHub} and \href{https://medium.com/@d19cyber}{Medium}.} % Description
26 | %---------------------------------------------------------
27 | \cvskill
28 | {Art} % Interest
29 | {I have always enjoyed drawing since I was a child. Recently, I have shifted to digital art mostly on \href{https://www.deviantart.com/themagicalmammal}{Deviantart}.} % Description
30 | %---------------------------------------------------------
31 | \cvskill
32 | {Video Games} % Interest
33 | {I always had the gaming gene. I mostly play on my phone and occasionally on my switch.} % Description
34 | %---------------------------------------------------------
35 | \cvskill
36 | {Swimming} % Interest
37 | {I started swimming when I was 12. Going through submerged things while holding my breath was the most exciting part.} % Description
38 |
39 | \end{cvskills}
--------------------------------------------------------------------------------
/cv/education.tex:
--------------------------------------------------------------------------------
1 | %-------------------------------------------------------------------------------
2 | % SECTION TITLE
3 | %-------------------------------------------------------------------------------
4 | \cvsection{Education}
5 |
6 |
7 | %-------------------------------------------------------------------------------
8 | % CONTENT
9 | %-------------------------------------------------------------------------------
10 | \begin{cventries}
11 |
12 | %---------------------------------------------------------
13 | \cventry
14 | {MSc in Data Science and Analysis} % Degree
15 | {University of Leeds} % Institution
16 | {Leeds, UK} % Location
17 | {Sept 2021 - Current} % Date(s)
18 | {
19 | \begin{cvitems} % Description(s) bullet points
20 | \item {Head of School International Excellence Scholar}
21 | \item {Working as a PAL Mentor}
22 | \item {\textbf{Courses:} Data Science, Programming for Data Science, Knowledge Representation and Reasoning, Statistical Theory and Methods, Learning Skills through Case Studies, Artificial Intelligence, Machine Learning, Statistical Learning}
23 | \end{cvitems}
24 | }
25 |
26 | \cventry
27 | {BTech in Information Technology} % Degree
28 | {Madhav Institute of Technology and Science} % Institution
29 | {Gwalior, India} % Location
30 | {May 2016 - May 2020} % Date(s)
31 | {
32 | \begin{cvitems} % Description(s) bullet points
33 | \item {Graduated with Distinction}
34 | \item {Selected for Industrial Visit among the top of the class}
35 | \end{cvitems}
36 | }
37 |
38 | \cventry
39 | {High School} % Degree
40 | {Atomic Energy Central School} % Institution
41 | {Indore, India} % Location
42 | {Apr 2014 - Apr 2016} % Date(s)
43 | {
44 | \begin{cvitems} % Description(s) bullet points
45 | \item {Passed with Distinction}
46 | \item {Specialised in Physics, Chemistry, and Maths with Computer Science}
47 | \end{cvitems}
48 | }
49 | %---------------------------------------------------------
50 | \end{cventries}
51 |
--------------------------------------------------------------------------------
/cv/references.bib:
--------------------------------------------------------------------------------
1 | %-------------------------------------------------------------------------------
2 | % REPLACE WITH YOUR PUBLICATIONS
3 | %-------------------------------------------------------------------------------
4 | @Article{Khan2014Incentive,
5 | author = {Khan, Amin M and B{\"{u}}y{\"{u}}ksahin, {\"{U}}mit C. and Freitag, Felix},
6 | title = {{Incentive-based resource assignment and regulation for collaborative cloud services in community networks}},
7 | journal = {Journal of Computer and System Sciences},
8 | year = {2015},
9 | volume = {81},
10 | number = {8},
11 | pages = {1479--1495},
12 | month = dec,
13 | doi = {10.1016/j.jcss.2014.12.023},
14 | issn = {00220000},
15 | url = {http://www.sciencedirect.com/science/article/pii/S0022000014001871 http://linkinghub.elsevier.com/retrieve/pii/S0022000014001871}
16 | }
17 |
18 | @Article{Selimi2015Cloud,
19 | author = {Selimi, Mennan and Khan, Amin M and Dimogerontakis, Emmanouil and Freitag, Felix and Centelles, Roger Pueyo},
20 | title = {{Cloud services in the Guifi.net community network}},
21 | journal = {Computer Networks},
22 | year = {2015},
23 | volume = {93},
24 | number = {P2},
25 | pages = {373--388},
26 | month = dec,
27 | doi = {10.1016/j.comnet.2015.09.007},
28 | issn = {13891286},
29 | url = {http://linkinghub.elsevier.com/retrieve/pii/S1389128615003175}
30 | }
31 |
32 | @InProceedings{Khan2014Prototyping,
33 | author = {Khan, Amin M and Buyuksahin, Umit Cavus and Freitag, Felix},
34 | title = {{Prototyping Incentive-Based Resource Assignment for Clouds in Community Networks}},
35 | booktitle = {28th IEEE International Conference on Advanced Information Networking and Applications (AINA 2014)},
36 | year = {2014},
37 | pages = {719--726},
38 | address = {Victoria, Canada},
39 | month = may,
40 | publisher = {IEEE},
41 | doi = {10.1109/AINA.2014.88},
42 | isbn = {978-1-4799-3630-4},
43 | url = {http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm?arnumber=6838735}
44 | }
--------------------------------------------------------------------------------
/cv/projects.tex:
--------------------------------------------------------------------------------
1 | %-------------------------------------------------------------------------------
2 | % SECTION TITLE
3 | %-------------------------------------------------------------------------------
4 | \cvsection{University Projects}
5 |
6 |
7 | %-------------------------------------------------------------------------------
8 | % CONTENT
9 | %-------------------------------------------------------------------------------
10 | \begin{cventries}
11 |
12 | %---------------------------------------------------------
13 | \cventry
14 | {University of Leeds} % Organisation
15 | {The Relation between GDP and IMR} % Project
16 | {Leeds, UK} % Location
17 | {Feb 2022 - Apr 2022} % Date(s)
18 | {
19 | \begin{cvitems} % Description(s) of project
20 | \item {Analysing data from 1960 to 2020 and discover patterns in the data that show trends between Gross domestic product per capita, Infant Mortality rate, Literacy Rate, and Industrial Development.}
21 | \item {Study cross‑sectional, longitudinal, and among various countries to find variations in trends and get the historical data to back up the change in the trend of our data.}
22 | \item {Specific case studies were traced back to trends seen in the UK and how they affected the GDP and IMR.}
23 | \item {\textbf{Technical Skills:} Tableau, Overleaf, LaTeX.}
24 | \item {\textbf{Soft Skills:} Time Management, Teamwork, Presentation skills, Report writing.}
25 | \end{cvitems}
26 | }
27 |
28 |
29 | %---------------------------------------------------------
30 | \cventry
31 | {University of Leeds} % Organisation
32 | {IPL Analysis} % Project
33 | {Leeds, UK} % Location
34 | {Nov 2021 - Dec 2021} % Date(s)
35 | {
36 | \begin{cvitems} % Description(s) of project
37 | \item {Analysing data from 2008 to 2015 to discover patterns such as trends, correlations, and probabilities.}
38 | \item {Finding the differences between the best teams and players in various fields, as well as their performance on the field and the opponents.}
39 | \item {\textbf{Technical Skills:} Python with Pandas, matplotlib, Seaborn.}
40 | \item {\textbf{Soft Skills:} Presentation skills, Leadership, Teamwork, Logical Thinking.}
41 | \end{cvitems}
42 | }
43 |
44 | %---------------------------------------------------------
45 | \cventry
46 | {University of Leeds} % Organisation
47 | {Study of the behavior of Serial Killers} % Project
48 | {Leeds, UK} % Location
49 | {Oct 2021 - Dec 2021} % Date(s)
50 | {
51 | \begin{cvitems} % Description(s) of project
52 | \item {Study of serial killers behavior with various motives such as convenience (did not want children or spouse), enjoyment, power, escape, or avoiding arrest.}
53 | \item {Finding patterns in their starting and ending ages (when they are caught) and other factors of killing, as well as how it varies with different motives.}
54 | \item {\textbf{Technical Skills:} R with ggplot2, tidyr, R Markdown.}
55 | \item {\textbf{Soft Skills:} Report writing, Logical Thinking, Critical Thinking.}
56 | \end{cvitems}
57 | }
58 |
59 | %---------------------------------------------------------
60 | \end{cventries}
61 |
--------------------------------------------------------------------------------
/resume.tex:
--------------------------------------------------------------------------------
1 | %-------------------------------------------------------------------------------
2 | % CONFIGURATIONS
3 | %-------------------------------------------------------------------------------
4 | % A4 paper size by default, use 'letterpaper' for US letter
5 | \documentclass[11pt, a4paper]{russell}
6 |
7 | % Configure page margins with geometry
8 | \geometry{left=1.4cm, top=.8cm, right=1.4cm, bottom=1.8cm, footskip=.5cm}
9 |
10 | % Specify the location of the included fonts
11 | \fontdir[fonts/]
12 |
13 | % Color for highlights
14 | % russell Colors: russell-emerald, russell-skyblue, russell-red, russell-pink, russell-orange
15 | % russell-nephritis, russell-concrete, russell-darknight, russell-purple
16 | \colorlet{russell}{russell-black}
17 | % Uncomment if you would like to specify your own color
18 | % \definecolor{russell}{HTML}{CA63A8}
19 |
20 | % Colors for text
21 | % Uncomment if you would like to specify your own color
22 | % \definecolor{darktext}{HTML}{414141}
23 | % \definecolor{text}{HTML}{333333}
24 | % \definecolor{graytext}{HTML}{5D5D5D}
25 | % \definecolor{lighttext}{HTML}{999999}
26 |
27 | % Set false if you don't want to highlight section with russell color
28 | \setbool{acvSectionColorHighlight}{true}
29 |
30 | % If you would like to change the social information separator from a pipe (|) to something else
31 | \renewcommand{\acvHeaderSocialSep}{\quad\textbar\quad}
32 |
33 |
34 | %-------------------------------------------------------------------------------
35 | % PERSONAL INFORMATION
36 | % Comment any of the lines below if they are not required
37 | %-------------------------------------------------------------------------------
38 | % Available options: circle|rectangle,edge/noedge,left/right
39 | % \photo[rectangle,edge,right]{./examples/profile}
40 | \name{Doe}{John}
41 | % \position{Software Architect{\enskip\cdotp\enskip}Security Expert}
42 | \address{YOUR ADDRESS}
43 |
44 | \mobile{000000000000}
45 | \email{thisis@fakeemail.com}
46 | %\dateofbirth{January 1st, 1970}
47 | \homepage{themagicalmammal.vercel.app}
48 | \github{themagicalmammal}
49 | \linkedin{themagicalmammal}
50 | % \gitlab{gitlab-id}
51 | % \stackoverflow{SO-id}{SO-name}
52 | % \twitter{@twit}
53 | % \skype{skype-id}
54 | % \reddit{reddit-id}
55 | % \medium{madium-id}
56 | % \kaggle{kaggle-id}
57 | % \googlescholar{googlescholar-id}{name-to-display}
58 | %% \firstname and \lastname will be used
59 | % \googlescholar{googlescholar-id}{}
60 | % \extrainfo{extra information}
61 |
62 | % \quote{``Simplicity is deceptively complicated."}
63 |
64 |
65 | %-------------------------------------------------------------------------------
66 | % BIBLIOGRAPHY
67 | %-------------------------------------------------------------------------------
68 | \addbibresource{cv/references.bib}
69 |
70 | %-------------------------------------------------------------------------------
71 | \begin{document}
72 |
73 | % Print the header with above personal informations
74 | % Give optional argument to change alignment(C: center, L: left, R: right)
75 | \makecvheader
76 |
77 | % Print the footer with 3 arguments(, , )
78 | % Leave any of these blank if they are not needed
79 | \makecvfooter
80 | {\today}
81 | {}
82 | {\thepage}
83 |
84 | %-------------------------------------------------------------------------------
85 | % CV/RESUME CONTENT
86 | % Each section is imported separately, open each file in turn to modify content
87 | %-------------------------------------------------------------------------------
88 | \input{cv/summary.tex}
89 | \input{cv/education.tex}
90 | \input{cv/experience.tex}
91 | \input{cv/projects.tex}
92 | \input{cv/skills.tex}
93 | \input{cv/achievements.tex}
94 | \input{cv/publications.tex}
95 | \input{cv/interests.tex}
96 | \input{cv/languages.tex}
97 |
98 | \vspace*{\fill}
99 | \centering{\textbf{References available upon request.}}
100 | %-------------------------------------------------------------------------------
101 | \end{document}
102 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The LaTeX Project Public License
2 | =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
3 |
4 | LPPL Version 1.3c 2022-08-13
5 |
6 | Copyright 1999 2002-2022 LaTeX3 Project
7 | Everyone is allowed to distribute verbatim copies of this
8 | license document, but modification of it is not allowed.
9 |
10 |
11 | PREAMBLE
12 | ========
13 |
14 | The LaTeX Project Public License (LPPL) is the primary license under
15 | which the LaTeX kernel and the base LaTeX packages are distributed.
16 |
17 | You may use this license for any work of which you hold the copyright
18 | and which you wish to distribute. This license may be particularly
19 | suitable if your work is TeX-related (such as a LaTeX package), but
20 | it is written in such a way that you can use it even if your work is
21 | unrelated to TeX.
22 |
23 | The section `WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE',
24 | below, gives instructions, examples, and recommendations for authors
25 | who are considering distributing their works under this license.
26 |
27 | This license gives conditions under which a work may be distributed
28 | and modified, as well as conditions under which modified versions of
29 | that work may be distributed.
30 |
31 | We, the LaTeX3 Project, believe that the conditions below give you
32 | the freedom to make and distribute modified versions of your work
33 | that conform with whatever technical specifications you wish while
34 | maintaining the availability, integrity, and reliability of
35 | that work. If you do not see how to achieve your goal while
36 | meeting these conditions, then read the document `cfgguide.tex'
37 | and `modguide.tex' in the base LaTeX distribution for suggestions.
38 |
39 |
40 | DEFINITIONS
41 | ===========
42 |
43 | In this license document the following terms are used:
44 |
45 | `Work'
46 | Any work being distributed under this License.
47 |
48 | `Derived Work'
49 | Any work that under any applicable law is derived from the Work.
50 |
51 | `Modification'
52 | Any procedure that produces a Derived Work under any applicable
53 | law -- for example, the production of a file containing an
54 | original file associated with the Work or a significant portion of
55 | such a file, either verbatim or with modifications and/or
56 | translated into another language.
57 |
58 | `Modify'
59 | To apply any procedure that produces a Derived Work under any
60 | applicable law.
61 |
62 | `Distribution'
63 | Making copies of the Work available from one person to another, in
64 | whole or in part. Distribution includes (but is not limited to)
65 | making any electronic components of the Work accessible by
66 | file transfer protocols such as FTP or HTTP or by shared file
67 | systems such as Sun's Network File System (NFS).
68 |
69 | `Compiled Work'
70 | A version of the Work that has been processed into a form where it
71 | is directly usable on a computer system. This processing may
72 | include using installation facilities provided by the Work,
73 | transformations of the Work, copying of components of the Work, or
74 | other activities. Note that modification of any installation
75 | facilities provided by the Work constitutes modification of the Work.
76 |
77 | `Current Maintainer'
78 | A person or persons nominated as such within the Work. If there is
79 | no such explicit nomination then it is the `Copyright Holder' under
80 | any applicable law.
81 |
82 | `Base Interpreter'
83 | A program or process that is normally needed for running or
84 | interpreting a part or the whole of the Work.
85 |
86 | A Base Interpreter may depend on external components but these
87 | are not considered part of the Base Interpreter provided that each
88 | external component clearly identifies itself whenever it is used
89 | interactively. Unless explicitly specified when applying the
90 | license to the Work, the only applicable Base Interpreter is a
91 | `LaTeX-Format' or in the case of files belonging to the
92 | `LaTeX-format' a program implementing the `TeX language'.
93 |
94 |
95 |
96 | CONDITIONS ON DISTRIBUTION AND MODIFICATION
97 | ===========================================
98 |
99 | 1. Activities other than distribution and/or modification of the Work
100 | are not covered by this license; they are outside its scope. In
101 | particular, the act of running the Work is not restricted and no
102 | requirements are made concerning any offers of support for the Work.
103 |
104 | 2. You may distribute a complete, unmodified copy of the Work as you
105 | received it. Distribution of only part of the Work is considered
106 | modification of the Work, and no right to distribute such a Derived
107 | Work may be assumed under the terms of this clause.
108 |
109 | 3. You may distribute a Compiled Work that has been generated from a
110 | complete, unmodified copy of the Work as distributed under Clause 2
111 | above, as long as that Compiled Work is distributed in such a way that
112 | the recipients may install the Compiled Work on their system exactly
113 | as it would have been installed if they generated a Compiled Work
114 | directly from the Work.
115 |
116 | 4. If you are the Current Maintainer of the Work, you may, without
117 | restriction, modify the Work, thus creating a Derived Work. You may
118 | also distribute the Derived Work without restriction, including
119 | Compiled Works generated from the Derived Work. Derived Works
120 | distributed in this manner by the Current Maintainer are considered to
121 | be updated versions of the Work.
122 |
123 | 5. If you are not the Current Maintainer of the Work, you may modify
124 | your copy of the Work, thus creating a Derived Work based on the Work,
125 | and compile this Derived Work, thus creating a Compiled Work based on
126 | the Derived Work.
127 |
128 | 6. If you are not the Current Maintainer of the Work, you may
129 | distribute a Derived Work provided the following conditions are met
130 | for every component of the Work unless that component clearly states
131 | in the copyright notice that it is exempt from that condition. Only
132 | the Current Maintainer is allowed to add such statements of exemption
133 | to a component of the Work.
134 |
135 | a. If a component of this Derived Work can be a direct replacement
136 | for a component of the Work when that component is used with the
137 | Base Interpreter, then, wherever this component of the Work
138 | identifies itself to the user when used interactively with that
139 | Base Interpreter, the replacement component of this Derived Work
140 | clearly and unambiguously identifies itself as a modified version
141 | of this component to the user when used interactively with that
142 | Base Interpreter.
143 |
144 | b. Every component of the Derived Work contains prominent notices
145 | detailing the nature of the changes to that component, or a
146 | prominent reference to another file that is distributed as part
147 | of the Derived Work and that contains a complete and accurate log
148 | of the changes.
149 |
150 | c. No information in the Derived Work implies that any persons,
151 | including (but not limited to) the authors of the original version
152 | of the Work, provide any support, including (but not limited to)
153 | the reporting and handling of errors, to recipients of the
154 | Derived Work unless those persons have stated explicitly that
155 | they do provide such support for the Derived Work.
156 |
157 | d. You distribute at least one of the following with the Derived Work:
158 |
159 | 1. A complete, unmodified copy of the Work;
160 | if your distribution of a modified component is made by
161 | offering access to copy the modified component from a
162 | designated place, then offering equivalent access to copy
163 | the Work from the same or some similar place meets this
164 | condition, even though third parties are not compelled to
165 | copy the Work along with the modified component;
166 |
167 | 2. Information that is sufficient to obtain a complete,
168 | unmodified copy of the Work.
169 |
170 | 7. If you are not the Current Maintainer of the Work, you may
171 | distribute a Compiled Work generated from a Derived Work, as long as
172 | the Derived Work is distributed to all recipients of the Compiled
173 | Work, and as long as the conditions of Clause 6, above, are met with
174 | regard to the Derived Work.
175 |
176 | 8. The conditions above are not intended to prohibit, and hence do not
177 | apply to, the modification, by any method, of any component so that it
178 | becomes identical to an updated version of that component of the Work as
179 | it is distributed by the Current Maintainer under Clause 4, above.
180 |
181 | 9. Distribution of the Work or any Derived Work in an alternative
182 | format, where the Work or that Derived Work (in whole or in part) is
183 | then produced by applying some process to that format, does not relax or
184 | nullify any sections of this license as they pertain to the results of
185 | applying that process.
186 |
187 | 10. a. A Derived Work may be distributed under a different license
188 | provided that license itself honors the conditions listed in
189 | Clause 6 above, in regard to the Work, though it does not have
190 | to honor the rest of the conditions in this license.
191 |
192 | b. If a Derived Work is distributed under a different license, that
193 | Derived Work must provide sufficient documentation as part of
194 | itself to allow each recipient of that Derived Work to honor the
195 | restrictions in Clause 6 above, concerning changes from the Work.
196 |
197 | 11. This license places no restrictions on works that are unrelated to
198 | the Work, nor does this license place any restrictions on aggregating
199 | such works with the Work by any means.
200 |
201 | 12. Nothing in this license is intended to, or may be used to, prevent
202 | complete compliance by all parties with all applicable laws.
203 |
204 |
205 | NO WARRANTY
206 | ===========
207 |
208 | There is no warranty for the Work. Except when otherwise stated in
209 | writing, the Copyright Holder provides the Work `as is', without
210 | warranty of any kind, either expressed or implied, including, but not
211 | limited to, the implied warranties of merchantability and fitness for a
212 | particular purpose. The entire risk as to the quality and performance
213 | of the Work is with you. Should the Work prove defective, you assume
214 | the cost of all necessary servicing, repair, or correction.
215 |
216 | In no event unless required by applicable law or agreed to in writing
217 | will The Copyright Holder, or any author named in the components of the
218 | Work, or any other party who may distribute and/or modify the Work as
219 | permitted above, be liable to you for damages, including any general,
220 | special, incidental or consequential damages arising out of any use of
221 | the Work or out of inability to use the Work (including, but not limited
222 | to, loss of data, data being rendered inaccurate, or losses sustained by
223 | anyone as a result of any failure of the Work to operate with any other
224 | programs), even if the Copyright Holder or said author or said other
225 | party has been advised of the possibility of such damages.
226 |
227 |
228 | MAINTENANCE OF THE WORK
229 | =======================
230 |
231 | The Work has the status `author-maintained' if the Copyright Holder
232 | explicitly and prominently states near the primary copyright notice in
233 | the Work that the Work can only be maintained by the Copyright Holder
234 | or simply that it is `author-maintained'.
235 |
236 | The Work has the status `maintained' if there is a Current Maintainer
237 | who has indicated in the Work that they are willing to receive error
238 | reports for the Work (for example, by supplying a valid e-mail
239 | address). It is not required for the Current Maintainer to acknowledge
240 | or act upon these error reports.
241 |
242 | The Work changes from status `maintained' to `unmaintained' if there
243 | is no Current Maintainer, or the person stated to be Current
244 | Maintainer of the work cannot be reached through the indicated means
245 | of communication for a period of six months, and there are no other
246 | significant signs of active maintenance.
247 |
248 | You can become the Current Maintainer of the Work by agreement with
249 | any existing Current Maintainer to take over this role.
250 |
251 | If the Work is unmaintained, you can become the Current Maintainer of
252 | the Work through the following steps:
253 |
254 | 1. Make a reasonable attempt to trace the Current Maintainer (and
255 | the Copyright Holder, if the two differ) through the means of
256 | an Internet or similar search.
257 |
258 | 2. If this search is successful, then enquire whether the Work
259 | is still maintained.
260 |
261 | a. If it is being maintained, then ask the Current Maintainer
262 | to update their communication data within one month.
263 |
264 | b. If the search is unsuccessful or no action to resume active
265 | maintenance is taken by the Current Maintainer, then announce
266 | within the pertinent community your intention to take over
267 | maintenance. (If the Work is a LaTeX work, this could be
268 | done, for example, by posting to comp.text.tex.)
269 |
270 | 3a. If the Current Maintainer is reachable and agrees to pass
271 | maintenance of the Work to you, then this takes effect
272 | immediately upon announcement.
273 |
274 | b. If the Current Maintainer is not reachable and the Copyright
275 | Holder agrees that maintenance of the Work be passed to you,
276 | then this takes effect immediately upon announcement.
277 |
278 | 4. If you make an `intention announcement' as described in 2b. above
279 | and after three months your intention is challenged neither by
280 | the Current Maintainer nor by the Copyright Holder nor by other
281 | people, then you may arrange for the Work to be changed so as
282 | to name you as the (new) Current Maintainer.
283 |
284 | 5. If the previously unreachable Current Maintainer becomes
285 | reachable once more within three months of a change completed
286 | under the terms of 3b) or 4), then that Current Maintainer must
287 | become or remain the Current Maintainer upon request provided
288 | they then update their communication data within one month.
289 |
290 | A change in the Current Maintainer does not, of itself, alter the fact
291 | that the Work is distributed under the LPPL license.
292 |
293 | If you become the Current Maintainer of the Work, you should
294 | immediately provide, within the Work, a prominent and unambiguous
295 | statement of your status as Current Maintainer. You should also
296 | announce your new status to the same pertinent community as
297 | in 2b) above.
298 |
299 |
300 | WHETHER AND HOW TO DISTRIBUTE WORKS UNDER THIS LICENSE
301 | ======================================================
302 |
303 | This section contains important instructions, examples, and
304 | recommendations for authors who are considering distributing their
305 | works under this license. These authors are addressed as `you' in
306 | this section.
307 |
308 | Choosing This License or Another License
309 | ----------------------------------------
310 |
311 | If for any part of your work you want or need to use *distribution*
312 | conditions that differ significantly from those in this license, then
313 | do not refer to this license anywhere in your work but, instead,
314 | distribute your work under a different license. You may use the text
315 | of this license as a model for your own license, but your license
316 | should not refer to the LPPL or otherwise give the impression that
317 | your work is distributed under the LPPL.
318 |
319 | The document `modguide.tex' in the base LaTeX distribution explains
320 | the motivation behind the conditions of this license. It explains,
321 | for example, why distributing LaTeX under the GNU General Public
322 | License (GPL) was considered inappropriate. Even if your work is
323 | unrelated to LaTeX, the discussion in `modguide.tex' may still be
324 | relevant, and authors intending to distribute their works under any
325 | license are encouraged to read it.
326 |
327 | A Recommendation on Modification Without Distribution
328 | -----------------------------------------------------
329 |
330 | It is wise never to modify a component of the Work, even for your own
331 | personal use, without also meeting the above conditions for
332 | distributing the modified component. While you might intend that such
333 | modifications will never be distributed, often this will happen by
334 | accident -- you may forget that you have modified that component; or
335 | it may not occur to you when allowing others to access the modified
336 | version that you are thus distributing it and violating the conditions
337 | of this license in ways that could have legal implications and, worse,
338 | cause problems for the community. It is therefore usually in your
339 | best interest to keep your copy of the Work identical with the public
340 | one. Many works provide ways to control the behavior of that work
341 | without altering any of its licensed components.
342 |
343 | How to Use This License
344 | -----------------------
345 |
346 | To use this license, place in each of the components of your work both
347 | an explicit copyright notice including your name and the year the work
348 | was authored and/or last substantially modified. Include also a
349 | statement that the distribution and/or modification of that
350 | component is constrained by the conditions in this license.
351 |
352 | Here is an example of such a notice and statement:
353 |
354 | %% pig.dtx
355 | %% Copyright 2005 M. Y. Name
356 | %
357 | % This work may be distributed and/or modified under the
358 | % conditions of the LaTeX Project Public License, either version 1.3
359 | % of this license or (at your option) any later version.
360 | % The latest version of this license is in
361 | % http://www.latex-project.org/lppl.txt
362 | % and version 1.3 or later is part of all distributions of LaTeX
363 | % version 2005/12/01 or later.
364 | %
365 | % This work has the LPPL maintenance status `maintained'.
366 | %
367 | % The Current Maintainer of this work is M. Y. Name.
368 | %
369 | % This work consists of the files pig.dtx and pig.ins
370 | % and the derived file pig.sty.
371 |
372 | Given such a notice and statement in a file, the conditions
373 | given in this license document would apply, with the `Work' referring
374 | to the three files `pig.dtx', `pig.ins', and `pig.sty' (the last being
375 | generated from `pig.dtx' using `pig.ins'), the `Base Interpreter'
376 | referring to any `LaTeX-Format', and both `Copyright Holder' and
377 | `Current Maintainer' referring to the person `M. Y. Name'.
378 |
379 | If you do not want the Maintenance section of LPPL to apply to your
380 | Work, change `maintained' above into `author-maintained'.
381 | However, we recommend that you use `maintained', as the Maintenance
382 | section was added in order to ensure that your Work remains useful to
383 | the community even when you can no longer maintain and support it
384 | yourself.
385 |
386 | Derived Works That Are Not Replacements
387 | ---------------------------------------
388 |
389 | Several clauses of the LPPL specify means to provide reliability and
390 | stability for the user community. They therefore concern themselves
391 | with the case that a Derived Work is intended to be used as a
392 | (compatible or incompatible) replacement of the original Work. If
393 | this is not the case (e.g., if a few lines of code are reused for a
394 | completely different task), then clauses 6b and 6d shall not apply.
395 |
396 |
397 | Important Recommendations
398 | -------------------------
399 |
400 | Defining What Constitutes the Work
401 |
402 | The LPPL requires that distributions of the Work contain all the
403 | files of the Work. It is therefore important that you provide a
404 | way for the licensee to determine which files constitute the Work.
405 | This could, for example, be achieved by explicitly listing all the
406 | files of the Work near the copyright notice of each file or by
407 | using a line such as:
408 |
409 | % This work consists of all files listed in manifest.txt.
410 |
411 | in that place. In the absence of an unequivocal list it might be
412 | impossible for the licensee to determine what is considered by you
413 | to comprise the Work and, in such a case, the licensee would be
414 | entitled to make reasonable conjectures as to which files comprise
415 | the Work.
416 |
--------------------------------------------------------------------------------
/russell.cls:
--------------------------------------------------------------------------------
1 | %-------------------------------------------------------------------------------
2 | % Identification
3 | %-------------------------------------------------------------------------------
4 | \ProvidesClass{russell}[2017/02/05 v1.6.1 russell Curriculum Vitae Class]
5 | \NeedsTeXFormat{LaTeX2e}
6 |
7 |
8 | %-------------------------------------------------------------------------------
9 | % Class options
10 | %
11 | % (need to be done before the external package loading, for example because
12 | % we need \paperwidth, \paperheight and \@ptsize to be defined before loading
13 | % geometry and fancyhdr)
14 | %-------------------------------------------------------------------------------
15 | % Options for draft or final
16 | \DeclareOption{draft}{\setlength\overfullrule{5pt}}
17 | \DeclareOption{final}{\setlength\overfullrule{0pt}}
18 | % Inherit options of article
19 | \DeclareOption*{%
20 | \PassOptionsToClass{\CurrentOption}{article}
21 | }
22 | \ProcessOptions\relax
23 | \LoadClass{article}
24 |
25 |
26 | %-------------------------------------------------------------------------------
27 | % 3rd party packages
28 | %-------------------------------------------------------------------------------
29 | % make fixed length table
30 | \RequirePackage{array}
31 | % handle list environment
32 | \RequirePackage{enumitem}
33 | % handle text alignment
34 | \RequirePackage{ragged2e}
35 | % configure page layout
36 | \RequirePackage{geometry}
37 | % make header & footer effeciently
38 | \RequirePackage{fancyhdr}
39 | % manage colors
40 | \RequirePackage{xcolor}
41 | % use \ifxetex-\else-\fi statement
42 | \RequirePackage{ifxetex}
43 | % use \if-\then-\else statement
44 | \RequirePackage{xifthen}
45 | % use a toolbox of programming tools
46 | \RequirePackage{etoolbox}
47 | % change line spacing in specific environment
48 | \RequirePackage{setspace}
49 | % manage fonts
50 | \RequirePackage[quiet]{fontspec}
51 | % To support LaTeX quoting style
52 | \defaultfontfeatures{Ligatures=TeX}
53 | % manage math fonts
54 | \RequirePackage{unicode-math}
55 | % use icons from font-awesome
56 | \RequirePackage{fontawesome5}
57 | \RequirePackage{roboto}
58 | \RequirePackage[default,opentype]{sourcesanspro}
59 | % Needed for the photo ID
60 | \RequirePackage[skins]{tcolorbox}
61 | % deal a paragraphs
62 | \RequirePackage{parskip}
63 | % deal hyperlink
64 | \RequirePackage[hidelinks,unicode,pdfpagelabels=false]{hyperref}
65 | \hypersetup{%
66 | pdftitle={},
67 | pdfauthor={},
68 | pdfsubject={},
69 | pdfkeywords={}
70 | }
71 | % Solves issues Warning: File `cv.out' has changed
72 | \RequirePackage{bookmark}
73 |
74 | %-------------------------------------------------------------------------------
75 | % Configuration for directory locations
76 | %-------------------------------------------------------------------------------
77 | % Configure an optional directory location for fonts(default: 'fonts/')
78 | % Not required anymore but left in place for backward compatability.
79 | \newcommand*{\fontdir}[1][fonts/]{\def\@fontdir{#1}}
80 |
81 | %-------------------------------------------------------------------------------
82 | % Configuration for layout
83 | %-------------------------------------------------------------------------------
84 | %% Page Layout
85 | % Configure page margins with geometry
86 | \geometry{left=2.0cm, top=1.5cm, right=2.0cm, bottom=2.0cm, footskip=.5cm}
87 |
88 | %% Header & Footer
89 | % Set offset to each header and footer
90 | \fancyhfoffset{0em}
91 | % Remove head rule
92 | \renewcommand{\headrulewidth}{0pt}
93 | % Clear all header & footer fields
94 | \fancyhf{}
95 | % Enable if you want to make header or footer using fancyhdr
96 | \pagestyle{fancy}
97 |
98 |
99 | %-------------------------------------------------------------------------------
100 | % Configuration for colors
101 | %-------------------------------------------------------------------------------
102 | % Gray-scale colors
103 | \definecolor{white}{HTML}{FFFFFF}
104 | \definecolor{black}{HTML}{000000}
105 | \definecolor{darkgray}{HTML}{333333}
106 | \definecolor{gray}{HTML}{5D5D5D}
107 | \definecolor{lightgray}{HTML}{999999}
108 | % Basic colors
109 | \definecolor{green}{HTML}{C2E15F}
110 | \definecolor{orange}{HTML}{FDA333}
111 | \definecolor{purple}{HTML}{D3A4F9}
112 | \definecolor{red}{HTML}{FB4485}
113 | \definecolor{blue}{HTML}{6CE0F1}
114 | % Text colors
115 | \definecolor{darktext}{HTML}{414141}
116 | \colorlet{text}{darkgray}
117 | \colorlet{graytext}{gray}
118 | \colorlet{lighttext}{lightgray}
119 | \colorlet{sectiondivider}{gray}
120 | % russell colors
121 | \definecolor{russell-emerald}{HTML}{00A388}
122 | \definecolor{russell-skyblue}{HTML}{0395DE}
123 | \definecolor{russell-red}{HTML}{DC3522}
124 | \definecolor{russell-purple}{HTML}{A32CC4}
125 | \definecolor{russell-pink}{HTML}{EF4089}
126 | \definecolor{russell-orange}{HTML}{FF6138}
127 | \definecolor{russell-nephritis}{HTML}{27AE60}
128 | \definecolor{russell-concrete}{HTML}{95A5A6}
129 | \definecolor{russell-darknight}{HTML}{131A28}
130 | \definecolor{russell-black}{HTML}{000000}
131 | \colorlet{russell}{russell-red}
132 |
133 | % Boolean value to switch section color highlighting
134 | \newbool{acvSectionColorHighlight}
135 | \setbool{acvSectionColorHighlight}{true}
136 |
137 | % russell section color
138 | \def\@sectioncolor#1#2#3{%
139 | \ifbool{acvSectionColorHighlight}{{\color{russell}#1#2#3}}{#1#2#3}%
140 | }
141 |
142 |
143 | %-------------------------------------------------------------------------------
144 | % Configuration for fonts
145 | %-------------------------------------------------------------------------------
146 | \newcommand*{\headerfont}{\roboto}
147 | \newcommand*{\headerfontlight}{\robotolight}
148 | \newcommand*{\footerfont}{\sourcesanspro}
149 | \newcommand*{\bodyfont}{\sourcesanspro}
150 | \newcommand*{\bodyfontlight}{\sourcesansprolight}
151 |
152 | %-------------------------------------------------------------------------------
153 | % Configuration for styles
154 | %-------------------------------------------------------------------------------
155 | % Configure styles for each CV elements
156 | % For fundamental structures
157 | \newcommand*{\headerfirstnamestyle}[1]{{\fontsize{20pt}{1em}\headerfont\color{text} #1}}
158 | \newcommand*{\headerlastnamestyle}[1]{{\fontsize{20pt}{1em}\headerfont\color{text} #1}}
159 | \newcommand*{\headerpositionstyle}[1]{{\fontsize{7.6pt}{1em}\bodyfont\scshape\color{russell} #1}}
160 | \newcommand*{\headeraddressstyle}[1]{{\fontsize{8pt}{1em}\headerfont\itshape\color{lighttext} #1}}
161 | \newcommand*{\headersocialstyle}[1]{{\fontsize{6.8pt}{1em}\headerfont\color{text} #1}}
162 | \newcommand*{\headerquotestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\itshape\color{darktext} #1}}
163 | \newcommand*{\footerstyle}[1]{{\fontsize{8pt}{1em}\footerfont\scshape\color{lighttext} #1}}
164 | \newcommand*{\sectionstyle}[1]{{\fontsize{16pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}}
165 | \newcommand*{\subsectionstyle}[1]{{\fontsize{12pt}{1em}\bodyfont\scshape\textcolor{text}{#1}}}
166 | \newcommand*{\paragraphstyle}{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text}}
167 |
168 | % For elements of entry
169 | \newcommand*{\entrytitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
170 | \newcommand*{\entrypositionstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}}
171 | \newcommand*{\entrydatestyle}[1]{{\fontsize{8pt}{1em}\bodyfontlight\slshape\color{graytext} #1}}
172 | \newcommand*{\entrylocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{russell} #1}}
173 | \newcommand*{\descriptionstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\upshape\color{text} #1}}
174 |
175 | % For elements of subentry
176 | \newcommand*{\subentrytitlestyle}[1]{{\fontsize{8pt}{1em}\bodyfont\mdseries\color{graytext} #1}}
177 | \newcommand*{\subentrypositionstyle}[1]{{\fontsize{7pt}{1em}\bodyfont\scshape\color{graytext} #1}}
178 | \newcommand*{\subentrydatestyle}[1]{{\fontsize{7pt}{1em}\bodyfontlight\slshape\color{graytext} #1}}
179 | \newcommand*{\subentrylocationstyle}[1]{{\fontsize{7pt}{1em}\bodyfontlight\slshape\color{russell} #1}}
180 | \newcommand*{\subdescriptionstyle}[1]{{\fontsize{8pt}{1em}\bodyfontlight\upshape\color{text} #1}}
181 |
182 | % For elements of honor
183 | \newcommand*{\honortitlestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}}
184 | \newcommand*{\honorpositionstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
185 | \newcommand*{\honordatestyle}[1]{{\fontsize{9pt}{1em}\bodyfont\color{graytext} #1}}
186 | \newcommand*{\honorlocationstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{russell} #1}}
187 |
188 | % For elements of skill
189 | \newcommand*{\skilltypestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
190 | \newcommand*{\skillsetstyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\color{text} #1}}
191 |
192 | % For elements of the cover letter
193 | \newcommand*{\lettersectionstyle}[1]{{\fontsize{14pt}{1em}\bodyfont\bfseries\color{text}\@sectioncolor #1}}
194 | \newcommand*{\recipientaddressstyle}[1]{{\fontsize{9pt}{1em}\bodyfont\scshape\color{graytext} #1}}
195 | \newcommand*{\recipienttitlestyle}[1]{{\fontsize{11pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
196 | \newcommand*{\lettertitlestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\bfseries\color{darktext} \underline{#1}}}
197 | \newcommand*{\letterdatestyle}[1]{{\fontsize{9pt}{1em}\bodyfontlight\slshape\color{graytext} #1}}
198 | \newcommand*{\lettertextstyle}{\fontsize{10pt}{1.4em}\bodyfontlight\upshape\color{graytext}}
199 | \newcommand*{\letternamestyle}[1]{{\fontsize{10pt}{1em}\bodyfont\bfseries\color{darktext} #1}}
200 | \newcommand*{\letterenclosurestyle}[1]{{\fontsize{10pt}{1em}\bodyfontlight\slshape\color{lighttext} #1}}
201 |
202 |
203 | %-------------------------------------------------------------------------------
204 | % Commands for personal information
205 | %-------------------------------------------------------------------------------
206 | % Define photo ID
207 | % Usage: \photo[circle|rectangle,edge|noedge,left|right]{}
208 | \newcommand{\photo}[2][circle,edge,left]{%
209 | \def\@photo{#2}
210 | \@for\tmp:=#1\do{%
211 | \ifthenelse{\equal{\tmp}{circle} \or \equal{\tmp}{rectangle}}%
212 | {\let\@photoshape\tmp}{}%
213 | \ifthenelse{\equal{\tmp}{edge} \or \equal{\tmp}{noedge}}%
214 | {\let\@photoedge\tmp}{}%
215 | \ifthenelse{\equal{\tmp}{left} \or \equal{\tmp}{right}}%
216 | {\let\@photoalign\tmp}{}%
217 | }%
218 | }
219 | \def\@photoshape{circle}
220 | \def\@photoedge{edge}
221 | \def\@photoalign{left}
222 |
223 | % Define writer's name
224 | % Usage: \name{}{}
225 | % Usage: \firstname{}
226 | % Usage: \lastname{}
227 | % Usage: \familyname{}
228 | \newcommand*{\name}[2]{\def\@firstname{#1}\def\@lastname{#2}}
229 | \newcommand*{\firstname}[1]{\def\@firstname{#1}}
230 | \newcommand*{\lastname}[1]{\def\@lastname{#1}}
231 | \newcommand*{\familyname}[1]{\def\@lastname{#1}}
232 | \def\@familyname{\@lastname}
233 |
234 | % Define writer's address
235 | % Usage: \address{}
236 | \newcommand*{\address}[1]{\def\@address{#1}}
237 |
238 | % Define writer's position
239 | % Usage: \position{}
240 | \newcommand*{\position}[1]{\def\@position{#1}}
241 |
242 | % Defines writer's mobile (optional)
243 | % Usage: \mobile{}
244 | \newcommand*{\mobile}[1]{\def\@mobile{#1}}
245 |
246 | % Defines writer's email (optional)
247 | % Usage: \email{}
248 | \newcommand*{\email}[1]{\def\@email{#1}}
249 |
250 | % Defines writer's date of birth (optional)
251 | % Usage: \dateofbirth{}
252 | \newcommand*{\dateofbirth}[1]{\def\@dateofbirth{#1}}
253 |
254 | % Defines writer's homepage (optional)
255 | % Usage: \homepage{}
256 | \newcommand*{\homepage}[1]{\def\@homepage{#1}}
257 |
258 | % Defines writer's github (optional)
259 | % Usage: \github{}
260 | \newcommand*{\github}[1]{\def\@github{#1}}
261 |
262 | % Defines writer's gitlab (optional)
263 | % Usage: \gitlab{}
264 | \newcommand*{\gitlab}[1]{\def\@gitlab{#1}}
265 |
266 | % Defines writer's bitbucket (optional)
267 | % Usage: \bitbucket{}
268 | \newcommand*{\bitbucket}[1]{\def\@bitbucket{#1}}
269 |
270 | % Defines writer's stackoverflow profile (optional)
271 | % Usage: \stackoverflow{}{}
272 | % e.g.https://stackoverflow.com/users/123456/sam-smith
273 | % would be \stackoverflow{123456}{sam-smith}
274 | \newcommand*{\stackoverflow}[2]{\def\@stackoverflowid{#1}\def\@stackoverflowname{#2}}
275 |
276 | % Defines writer's linked-in (optional)
277 | % Usage: \linkedin{}
278 | \newcommand*{\linkedin}[1]{\def\@linkedin{#1}}
279 |
280 | % Defines writer's orcid (optional)
281 | % Usage: \orcid{}
282 | \newcommand*{\orcid}[1]{\def\@orcid{#1}}
283 |
284 | % Defines writer's twitter (optional)
285 | % Usage: \twitter{}
286 | \newcommand*{\twitter}[1]{\def\@twitter{#1}}
287 |
288 | % Defines writer's Mastodon (optional)
289 | % Usage: \mastodon{}{}
290 | \newcommand*{\mastodon}[2]{\def\@mastodoninstance{#1}\def\@mastodonname{#2}}
291 |
292 | % Defines writer's resarchgate (optional)
293 | % Usage: \researchgate{}
294 | \newcommand*{\researchgate}[1]{\def\@researchgate{#1}}
295 |
296 | % Defines writer's skype (optional)
297 | % Usage: \skype{}
298 | \newcommand*{\skype}[1]{\def\@skype{#1}}
299 |
300 | % Defines writer's reddit (optional)
301 | % Usage: \reddit{}
302 | \newcommand*{\reddit}[1]{\def\@reddit{#1}}
303 |
304 | % Defines writer's xing (optional)
305 | % Usage: \xing{}
306 | \newcommand*{\xing}[1]{\def\@xing{#1}}
307 |
308 | % Defines writer's medium profile (optional)
309 | % Usage: \medium{}
310 | \newcommand*{\medium}[1]{\def\@medium{#1}}
311 |
312 | % Defines writer's kaggle (optional)
313 | % Usage: \kaggle{}
314 | \newcommand*{\kaggle}[1]{\def\@kaggle{#1}}
315 |
316 | % Defines writer's google scholar profile (optional)
317 | % Usage: \googlescholar{}{}
318 | % e.g.https://scholar.google.co.uk/citations?user=wpZDx1cAAAAJ
319 | % would be \googlescholar{wpZDx1cAAAAJ}{Name-to-display-next-icon}
320 | % If 'googlescholar-name' is not provided than it defaults to
321 | % '\firstname \lastname'
322 | \newcommand*{\googlescholar}[2]{%
323 | \def\@googlescholarid{#1}%
324 | \ifthenelse{\equal{#2}{}}{%
325 | \def\@googlescholarname{\@firstname~\@lastname}%
326 | }{%
327 | \def\@googlescholarname{#2}%
328 | }%
329 | }
330 |
331 | % Defines writer's extra information (optional)
332 | % Usage: \extrainfo{}
333 | \newcommand*{\extrainfo}[1]{\def\@extrainfo{#1}}
334 |
335 | % Defines writer's quote (optional)
336 | % Usage: \quote{}
337 | \renewcommand*{\quote}[1]{\def\@quote{#1}}
338 |
339 | % Defines recipient's information (cover letter only)
340 | % Usage: \recipient{}{}
341 | % Usage: \recipientname{}
342 | % Usage: \recipientaddress{}
343 | \newcommand*{\recipient}[2]{\def\@recipientname{#1}\def\@recipientaddress{#2}}
344 | \newcommand*{\recipientname}[1]{\def\@recipientname{#1}}
345 | \newcommand*{\recipientaddress}[1]{\def\@recipientaddress{#1}}
346 |
347 | % Defines the title for letter (cover letter only, optional)
348 | % Usage: \lettertitle{}
349 | \newcommand*{\lettertitle}[1]{\def\@lettertitle{#1}}
350 |
351 | % Defines the date for letter (cover letter only)
352 | % Usage: \letterdate{}
353 | \newcommand*{\letterdate}[1]{\def\@letterdate{#1}}
354 |
355 | % Defines a message of opening for letter (cover letter only)
356 | % Usage: \letteropening{}
357 | \newcommand*{\letteropening}[1]{\def\@letteropening{#1}}
358 |
359 | % Defines a message of closing for letter (cover letter only)
360 | % Usage: \letterclosing{}
361 | \newcommand*{\letterclosing}[1]{\def\@letterclosing{#1}}
362 |
363 | % Defines an enclosure for letter (cover letter only, optional)
364 | % Usage: \letterenclosure[]{}
365 | \newcommand*{\letterenclname}[1][Enclosure]{\def\@letterenclname{#1}}
366 | \newcommand*{\letterenclosure}[2][]{%
367 | % if an optional argument is provided, use it to redefine \enclname
368 | \ifthenelse{\equal{#1}{}}{}{\def\@letterenclname{#1}}
369 | \def\@letterenclosure{#2}
370 | }
371 |
372 |
373 | %-------------------------------------------------------------------------------
374 | % Commands for extra
375 | %-------------------------------------------------------------------------------
376 | %% Define helper macros a user can change easily
377 | % Header
378 | \newcommand{\acvHeaderNameDelim}{\space}
379 | \newcommand{\acvHeaderAfterNameSkip}{.4mm}
380 | \newcommand{\acvHeaderAfterPositionSkip}{.4mm}
381 | \newcommand{\acvHeaderAfterAddressSkip}{-.5mm}
382 | \newcommand{\acvHeaderIconSep}{\space}
383 | \newcommand{\acvHeaderSocialSep}{\quad\textbar\quad}
384 | \newcommand{\acvHeaderAfterSocialSkip}{6mm}
385 | \newcommand{\acvHeaderAfterQuoteSkip}{5mm}
386 |
387 | % Others
388 | \newcommand{\acvSectionTopSkip}{3mm}
389 | \newcommand{\acvSectionContentTopSkip}{2.5mm}
390 |
391 |
392 | %-------------------------------------------------------------------------------
393 | % Commands for utilities
394 | %-------------------------------------------------------------------------------
395 | % Use to align an element of tabular table
396 | \newcolumntype{L}[1]{>{\raggedright\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
397 | \newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
398 | \newcolumntype{R}[1]{>{\raggedleft\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
399 |
400 | % Use to draw horizontal line with specific thickness
401 | \def\vhrulefill#1{\leavevmode\leaders\hrule\@height#1\hfill \kern\z@}
402 |
403 | % Use to execute conditional statements by checking empty string
404 | \newcommand*{\ifempty}[3]{\ifthenelse{\isempty{#1}}{#2}{#3}}
405 |
406 |
407 | %-------------------------------------------------------------------------------
408 | % Commands for elements of CV structure
409 | %-------------------------------------------------------------------------------
410 | % Define a header for CV
411 | % Usage: \makecvheader
412 | \newcommand*{\makecvheader}[1][C]{%
413 | \newcommand*{\drawphoto}{%
414 | \ifthenelse{\isundefined{\@photo}}{}{%
415 | \newlength{\photodim}
416 | \ifthenelse{\equal{\@photoshape}{circle}}%
417 | {\setlength{\photodim}{1.3cm}}%
418 | {\setlength{\photodim}{1.8cm}}%
419 | \ifthenelse{\equal{\@photoedge}{edge}}%
420 | {\def\@photoborder{darkgray}}%
421 | {\def\@photoborder{none}}%
422 | \begin{tikzpicture}%
423 | \node[\@photoshape, draw=\@photoborder, line width=0.3mm, inner sep=\photodim, fill overzoom image=\@photo] () {};
424 | \end{tikzpicture}
425 | }%
426 | }
427 | \newlength{\headertextwidth}
428 | \newlength{\headerphotowidth}
429 | \ifthenelse{\isundefined{\@photo}}{
430 | \setlength{\headertextwidth}{\textwidth}
431 | \setlength{\headerphotowidth}{0cm}
432 | }{%
433 | \setlength{\headertextwidth}{0.76\textwidth}
434 | \setlength{\headerphotowidth}{0.24\textwidth}
435 | }%
436 | \begin{minipage}[c]{\headerphotowidth}%
437 | \ifthenelse{\equal{\@photoalign}{left}}{\raggedright\drawphoto}{}
438 | \end{minipage}
439 | \begin{minipage}[c]{\headertextwidth}
440 | \ifthenelse{\equal{#1}{L}}{\raggedright}{\ifthenelse{\equal{#1}{R}}{\raggedleft}{\centering}}
441 | \headerfirstnamestyle{\@firstname}\headerlastnamestyle{{}\acvHeaderNameDelim\@lastname}%
442 | \\[\acvHeaderAfterNameSkip]%
443 | \ifthenelse{\isundefined{\@position}}{}{\headerpositionstyle{\@position\\[\acvHeaderAfterPositionSkip]}}%
444 | \ifthenelse{\isundefined{\@address}}{}{\headeraddressstyle{\@address\\[\acvHeaderAfterAddressSkip]}}%
445 | \headersocialstyle{%
446 | \newbool{isstart}%
447 | \setbool{isstart}{true}%
448 | \ifthenelse{\isundefined{\@mobile}}%
449 | {}%
450 | {%
451 | \href{tel:\@mobile}{\faMobile\acvHeaderIconSep\@mobile}%
452 | \setbool{isstart}{false}%
453 | }%
454 | \ifthenelse{\isundefined{\@email}}%
455 | {}%
456 | {%
457 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
458 | \href{mailto:\@email}{\faEnvelope\acvHeaderIconSep\@email}%
459 | }%
460 | \ifthenelse{\isundefined{\@dateofbirth}}%
461 | {}%
462 | {%
463 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
464 | % \mbox prevents wrapping of elements%
465 | \mbox{\faBirthdayCake\acvHeaderIconSep\@dateofbirth}%
466 | }%
467 | \ifthenelse{\isundefined{\@homepage}}%
468 | {}%
469 | {%
470 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
471 | \href{http://\@homepage}{\faHome\acvHeaderIconSep\@homepage}%
472 | }%
473 | \ifthenelse{\isundefined{\@github}}%
474 | {}%
475 | {%
476 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
477 | \href{https://github.com/\@github}{\faGithubSquare\acvHeaderIconSep\@github}%
478 | }%
479 | \ifthenelse{\isundefined{\@gitlab}}%
480 | {}%
481 | {%
482 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
483 | \href{https://gitlab.com/\@gitlab}{\faGitlab\acvHeaderIconSep\@gitlab}%
484 | }%
485 | \ifthenelse{\isundefined{\@bitbucket}}%
486 | {}%
487 | {%
488 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
489 | \href{https://bitbucket.com/\@bitbucket}{\faBitbucket\acvHeaderIconSep\@bitbucket}%
490 | }%
491 | \ifthenelse{\isundefined{\@stackoverflowid}}%
492 | {}%
493 | {%
494 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
495 | \href{https://stackoverflow.com/users/\@stackoverflowid}{\faStackOverflow\acvHeaderIconSep\@stackoverflowname}%
496 | }%
497 | \ifthenelse{\isundefined{\@linkedin}}%
498 | {}%
499 | {%
500 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
501 | \href{https://www.linkedin.com/in/\@linkedin}{\faLinkedin\acvHeaderIconSep\@linkedin}%
502 | }%
503 | \ifthenelse{\isundefined{\@orcid}}%
504 | {}%
505 | {%
506 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
507 | \href{https://orcid.org/\@orcid}{\faOrcid\acvHeaderIconSep\@orcid}%
508 | }%
509 | \ifthenelse{\isundefined{\@twitter}}%
510 | {}%
511 | {%
512 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
513 | \href{https://twitter.com/\@twitter}{\faTwitter\acvHeaderIconSep\@twitter}%
514 | }%
515 | \ifthenelse{\isundefined{\@mastodonname}}%
516 | {}%
517 | {%
518 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
519 | \href{https://\@mastodoninstance/@\@mastodonname}{\faMastodon\acvHeaderIconSep\@mastodonname}%
520 | }%
521 | \ifthenelse{\isundefined{\@skype}}%
522 | {}%
523 | {%
524 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
525 | \faSkype\acvHeaderIconSep\@skype%
526 | }%
527 | \ifthenelse{\isundefined{\@reddit}}%
528 | {}%
529 | {%
530 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
531 | \href{https://www.reddit.com/user/\@reddit}{\faReddit\acvHeaderIconSep\@reddit}%
532 | }%
533 | \ifthenelse{\isundefined{\@researchgate}}%
534 | {}%
535 | {%
536 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
537 | \href{https://www.researchgate.net/profile/\@researchgate}{\faResearchgate\acvHeaderIconSep\@researchgate}%
538 | }%
539 | \ifthenelse{\isundefined{\@xing}}%
540 | {}%
541 | {%
542 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
543 | \href{https://www.xing.com/profile/\@xing}{\faXingSquare\acvHeaderIconSep\@xing}
544 | }%
545 | \ifthenelse{\isundefined{\@medium}}%
546 | {}%
547 | {%
548 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
549 | \href{https://medium.com/@\@medium}{\faMedium\acvHeaderIconSep\@medium}%
550 | }%
551 | \ifthenelse{\isundefined{\@kaggle}}%
552 | {}%
553 | {%
554 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
555 | \href{https://kaggle.com/\@kaggle}{\faKaggle\acvHeaderIconSep\@kaggle}%
556 | }%
557 | \ifthenelse{\isundefined{\@googlescholarid}}%
558 | {}%
559 | {%
560 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
561 | \href{https://scholar.google.com/citations?user=\@googlescholarid}{\faGraduationCap\acvHeaderIconSep\@googlescholarname}%
562 | }%
563 | \ifthenelse{\isundefined{\@extrainfo}}%
564 | {}%
565 | {%
566 | \ifbool{isstart}{\setbool{isstart}{false}}{\acvHeaderSocialSep}%
567 | \@extrainfo%
568 | }%
569 | } \\[\acvHeaderAfterSocialSkip]%
570 | \ifthenelse{\isundefined{\@quote}}%
571 | {}%
572 | {\headerquotestyle{\@quote\\}\vspace{\acvHeaderAfterQuoteSkip}}%
573 | \end{minipage}%
574 | \begin{minipage}[c]{\headerphotowidth}%
575 | \ifthenelse{\equal{\@photoalign}{right}}{\raggedleft\drawphoto}{}
576 | \end{minipage}
577 | }
578 |
579 | % Define a footer for CV
580 | % Usage: \makecvfooter{}{}{}
581 | \newcommand*{\makecvfooter}[3]{%
582 | \fancyfoot{}
583 | \fancyfoot[L]{\footerstyle{#1}}
584 | \fancyfoot[C]{\footerstyle{#2}}
585 | \fancyfoot[R]{\footerstyle{#3}}
586 | }
587 |
588 | % Define a section for CV
589 | % Usage: \cvsection{}
590 | \newcommand{\cvsection}[1]{%
591 | \vspace{\acvSectionTopSkip}
592 | \sectionstyle{#1}
593 | \phantomsection
594 | \color{sectiondivider}\vhrulefill{0.9pt}
595 | }
596 |
597 | % Define a subsection for CV
598 | % Usage: \cvsubsection{}
599 | \newcommand{\cvsubsection}[1]{%
600 | \vspace{\acvSectionContentTopSkip}
601 | \vspace{-3mm}
602 | \subsectionstyle{#1}
603 | \phantomsection
604 | }
605 |
606 | % Define a paragraph for CV
607 | \newenvironment{cvparagraph}{%
608 | \vspace{\acvSectionContentTopSkip}
609 | \vspace{-3mm}
610 | \paragraphstyle
611 | }{%
612 | \par
613 | \vspace{2mm}
614 | }
615 |
616 | % Define an environment for cventry
617 | \newenvironment{cventries}{%
618 | \vspace{\acvSectionContentTopSkip}
619 | \begin{center}
620 | }{%
621 | \end{center}
622 | }
623 | % Define an entry of cv information
624 | % Usage: \cventry{}{}{}{}{}
625 | \newcommand*{\cventry}[5]{%
626 | \vspace{-2.0mm}
627 | \setlength\tabcolsep{0pt}
628 | \setlength{\extrarowheight}{0pt}
629 | \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}}
630 | \ifempty{#2#3}
631 | {\entrypositionstyle{#1} & \entrydatestyle{#4} \\}
632 | {\entrytitlestyle{#2} & \entrylocationstyle{#3} \\
633 | \entrypositionstyle{#1} & \entrydatestyle{#4} \\}
634 | \multicolumn{2}{L{\textwidth}}{\descriptionstyle{#5}}
635 | \end{tabular*}%
636 | }
637 |
638 | % Define an environment for cvsubentry
639 | \newenvironment{cvsubentries}{%
640 | \begin{center}
641 | }{%
642 | \end{center}
643 | }
644 | % Define a subentry of cv information
645 | % Usage: \cvsubentry{}{}{}{}
646 | \newcommand*{\cvsubentry}[4]{%
647 | \setlength\tabcolsep{0pt}
648 | \setlength{\extrarowheight}{0pt}
649 | \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}}
650 | \setlength\leftskip{0.2cm}
651 | \subentrytitlestyle{#2} & \ifthenelse{\equal{#1}{}}
652 | {\subentrydatestyle{#3}}{}
653 | \ifthenelse{\equal{#1}{}}
654 | {}
655 | {\subentrypositionstyle{#1} & \subentrydatestyle{#3} \\}
656 | \ifthenelse{\equal{#4}{}}
657 | {}
658 | {\multicolumn{2}{L{17.0cm}}{\subdescriptionstyle{#4}} \\}
659 | \end{tabular*}
660 | }
661 |
662 | % Define an environment for cvhonor
663 | \newenvironment{cvhonors}{%
664 | \vspace{\acvSectionContentTopSkip}
665 | \vspace{-2mm}
666 | \begin{center}
667 | \setlength\tabcolsep{0pt}
668 | \setlength{\extrarowheight}{0pt}
669 | \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} C{1.5cm} L{\textwidth - 4.0cm} R{2.5cm}}
670 | }{%
671 | \end{tabular*}
672 | \end{center}
673 | }
674 | % Define a line of cv information(honor, award or something else)
675 | % Usage: \cvhonor{}{}{}{}
676 | \newcommand*{\cvhonor}[4]{%
677 | \honordatestyle{#4} & \honorpositionstyle{#1}, \honortitlestyle{#2} & \honorlocationstyle{#3} \\
678 | }
679 |
680 | % Define an environment for cvskill
681 | \newenvironment{cvskills}{%
682 | \vspace{\acvSectionContentTopSkip}
683 | \vspace{-2.0mm}
684 | \begin{center}
685 | \setlength\tabcolsep{1ex}
686 | \setlength{\extrarowheight}{0pt}
687 | \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} r L{\textwidth * \real{0.9}}}
688 | }{%
689 | \end{tabular*}
690 | \end{center}
691 | }
692 | % Define a line of cv information(skill)
693 | % Usage: \cvskill{}{}
694 | \newcommand*{\cvskill}[2]{%
695 | \skilltypestyle{#1} & \skillsetstyle{#2} \\
696 | }
697 |
698 | \newcommand*{\cvskilltop}[2]{%
699 | \begin{minipage}[t]{\linewidth}
700 | \textbf{#1} \\ #2
701 | \end{minipage}
702 | \\
703 | }
704 |
705 | % Define an environment for cvitems(for cventry)
706 | \newenvironment{cvitems}{%
707 | \vspace{-4.0mm}
708 | \begin{justify}
709 | \begin{itemize}[leftmargin=2ex, nosep, noitemsep]
710 | \setlength{\parskip}{0pt}
711 | \renewcommand{\labelitemi}{\bullet}
712 | }{%
713 | \end{itemize}
714 | \end{justify}
715 | \vspace{-4.0mm}
716 | }
717 |
718 |
719 | %-------------------------------------------------------------------------------
720 | % Commands for elements of Cover Letter
721 | %-------------------------------------------------------------------------------
722 | % Define an environment for cvletter
723 | \newenvironment{cvletter}{%
724 | \lettertextstyle
725 | }{%
726 | }
727 |
728 | % Define a section for the cover letter
729 | % Usage: \lettersection{}
730 | \newcommand{\lettersection}[1]{%
731 | \par\addvspace{2.5ex}
732 | \phantomsection{}
733 | \lettersectionstyle{#1}
734 | \color{sectiondivider}\vhrulefill{0.9pt}
735 | \par\nobreak\addvspace{0.4ex}
736 | \lettertextstyle
737 | }
738 |
739 | % Define a title of the cover letter
740 | % Usage: \makelettertitle
741 | \newcommand*{\makelettertitle}{%
742 | \vspace{8.4mm}
743 | \setlength\tabcolsep{0pt}
744 | \setlength{\extrarowheight}{0pt}
745 | \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}} L{\textwidth - 4.5cm} R{4.5cm}}
746 | \recipienttitlestyle{\@recipientname} & \letterdatestyle{\@letterdate}
747 | \end{tabular*}
748 | \begin{singlespace}
749 | \recipientaddressstyle{\@recipientaddress} \\\\
750 | \end{singlespace}
751 | \ifthenelse{\isundefined{\@lettertitle}}
752 | {}
753 | {\lettertitlestyle{\@lettertitle} \\}
754 | \lettertextstyle{\@letteropening}
755 | }
756 |
757 | % Define a closing of the cover letter
758 | % Usage: \makeletterclosing
759 | \newcommand*{\makeletterclosing}{%
760 | \vspace{3.4mm}
761 | \lettertextstyle{\@letterclosing} \\\\
762 | \letternamestyle{\@firstname\ \@lastname}
763 | \ifthenelse{\isundefined{\@letterenclosure}}
764 | {\\}
765 | {%
766 | \\\\\\
767 | \letterenclosurestyle{\@letterenclname: \@letterenclosure} \\
768 | }
769 | }
770 |
771 |
772 | %-------------------------------------------------------------------------------
773 | % Bibliography
774 | %-------------------------------------------------------------------------------
775 | %\RequirePackage[style=verbose, maxnames=99, sorting=ydnt]{biblatex}
776 | \RequirePackage[ % BibLaTeX
777 | sorting=ydnt, % Sorts entries by year (descending order), name, title
778 | style=verbose,
779 | doi=false,
780 | isbn=true,
781 | url=false,
782 | eprint=false,
783 | backref = false, % include back references in bibliography
784 | maxcitenames=3, % affects only the citations in the document body
785 | maxbibnames=99, % affects only the bibliography, pass 99 to print all
786 | hyperref=true,
787 | block=none,
788 | backend=biber % {Options: bibtex, biber}
789 | ]{biblatex}
790 |
791 | % Avoid splitting entries across page break (only for 3 or fewer lines)
792 | % Tip: http://tex.stackexchange.com/a/51261
793 | \AtBeginEnvironment{thebibliography}{%
794 | \clubpenalty10000
795 | \@clubpenalty \clubpenalty
796 | \widowpenalty10000
797 | \interlinepenalty5000}
798 |
799 | % Customized format, based on Fancy CV template created by Adrien Friggeri
800 | \DeclareFieldFormat[article]{title}{#1\par}
801 | \DeclareFieldFormat[inproceedings]{title}{#1\par}
802 | \DeclareFieldFormat[misc]{title}{#1\par}
803 | \DeclareFieldFormat[report]{title}{#1\par}
804 | \DeclareFieldFormat[incollection]{title}{#1\par}
805 |
806 | \DeclareBibliographyDriver{article}{%
807 | \fontsize{9pt}{1em}\bodyfont%
808 | \printfield{title}%
809 | \newblock%
810 | \printnames{author}%
811 | \par%
812 | \newblock%
813 | {%
814 | \fontsize{8pt}{1em}\bodyfontlight\color{graytext}%
815 | \usebibmacro{journal}%
816 | \setunit{\space}%
817 | \printfield{pages}%
818 | \newunit%
819 | \printlist{publisher}%
820 | \setunit*{\addcomma\space}%
821 | \printfield{year}%
822 | \newunit%
823 | }
824 | \par\vspace{0.3\baselineskip}
825 | }
826 |
827 | \DeclareBibliographyDriver{inproceedings}{%
828 | \fontsize{9pt}{1em}\bodyfont%
829 | \printfield{title}%
830 | \newblock%
831 | \printnames{author}%
832 | \par%
833 | \newblock%
834 | {%
835 | \fontsize{8pt}{1em}\bodyfontlight\color{graytext}%
836 | \printfield{booktitle}%
837 | \setunit{\addcomma\space}%
838 | \printfield{year}%
839 | \setunit{\addcomma\space}%
840 | \printlist{location}%
841 | \newunit%
842 | }
843 | \par\vspace{0.3\baselineskip}
844 | }
845 |
846 | \DeclareBibliographyDriver{incollection}{%
847 | \fontsize{9pt}{1em}\bodyfont%
848 | \printfield{title}%
849 | \newblock%
850 | \printnames{author}%
851 | \par%
852 | \newblock%
853 | {%
854 | \fontsize{8pt}{1em}\bodyfontlight\color{graytext}%
855 | \printfield{booktitle}%
856 | \setunit{\addcomma\space}%
857 | \printfield{year}%
858 | \setunit{\addcomma\space}%
859 | \printlist{location}%
860 | \newunit%
861 | }
862 | \par\vspace{0.3\baselineskip}
863 | }
864 |
865 | \DeclareBibliographyDriver{misc}{%
866 | \fontsize{9pt}{1em}\bodyfont%
867 | \printfield{title}%
868 | \newblock%
869 | \printnames{author}%
870 | \par%
871 | \newblock%
872 | {%
873 | \fontsize{8pt}{1em}\bodyfontlight\color{graytext}%
874 | \printfield{booktitle}%
875 | \setunit*{\addcomma\space}%
876 | \printfield{note}%
877 | \setunit*{\addcomma\space}%
878 | \printfield{year}%
879 | \setunit{\addcomma\space}%
880 | \printlist{location}%
881 | \newunit%
882 | }
883 | \par\vspace{0.3\baselineskip}
884 | }
885 |
886 | \DeclareBibliographyDriver{report}{%
887 | \fontsize{9pt}{1em}\bodyfont%
888 | \printfield{title}%
889 | \newblock%
890 | \printnames{author}%
891 | \par%
892 | \newblock%
893 | {%
894 | \fontsize{8pt}{1em}\bodyfontlight\color{graytext}%
895 | \printfield{type}%
896 | \setunit{\space}%
897 | \printfield{number}%
898 | \setunit{\addcomma\space}%
899 | \printfield{year}%
900 | \newunit%
901 | }
902 | \par\vspace{0.3\baselineskip}
903 | }
904 |
905 | % New syntax for flexible backend (BibLaTeX > v3.3)
906 | \DeclareNameFormat{author}{%
907 | \fontsize{9pt}{1em}\bodyfont%
908 | \renewcommand*{\multinamedelim}{\addcomma\addspace}%
909 | \nameparts{#1}%
910 | \ifthenelse{\value{listcount}=1}
911 | {\ifblank{\namepartgiven}{}{\namepartgiven\space}%
912 | \namepartfamily}%
913 | {\ifblank{\namepartgiven}{}{\namepartgiven\space}%
914 | \namepartfamily}%
915 | \ifthenelse{\value{listcount}<\value{liststop}}
916 | {\addcomma\space}
917 | {}
918 | }
919 |
--------------------------------------------------------------------------------