From 61dec42d7d3c2ec0c416057603947f1d8fc0a1f5 Mon Sep 17 00:00:00 2001 From: Connor Johnstone Date: Mon, 10 Feb 2020 10:21:15 -0700 Subject: [PATCH] Updates --- README.md | 20 +- details.yml | 6 +- main.tex | 717 ------------------------------ makefile | 7 +- template.tex | 6 +- template_contract.tex | 221 +++++++++ tikzlibrarynode-families.code.tex | 159 ------- 7 files changed, 246 insertions(+), 890 deletions(-) delete mode 100644 main.tex create mode 100644 template_contract.tex delete mode 100644 tikzlibrarynode-families.code.tex diff --git a/README.md b/README.md index 58787fa..9260613 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,14 @@ -This is just my personal resume, written in LaTeX, based very heavily on LimeCV -by Olivier Pieters. +# Resume -## Next Steps -- Choose a best color scheme -- Get the profile picture correct/make a logo -- Make a version that is more full -- Make other versions for other types of jobs +This is my resume, now written almost entirely by myself, not using a template. + +This is written in what I think is a pretty interesting style, using a yaml file to generate all of the actual details and settings. This approach makes things very easily customizable, since the latex file doesn't even need to be modified, simply change the yaml. + +## Build Instructions +Also, this document includes a makefile so building is very easy. Simply run: + +```bash +make +``` + +With pandoc and LaTeX installed to generate a file `output.pdf`. diff --git a/details.yml b/details.yml index ecfdf46..c436f8a 100644 --- a/details.yml +++ b/details.yml @@ -19,9 +19,7 @@ links: - link: http://www.linkedin.com/rconnorjohnstone display: rconnorjohnstone icon: "\\faLinkedinSquare" - -# Sections - +# Sections profile: Currently employed as an Aerospace Systems Engineer at Palski and Associates while earning a Master's in Aerospace Engineering, with a focus in Astrodynamics from the University of Colorado -- Boulder. skills: @@ -126,7 +124,7 @@ mainfont: Roboto fontsize: 10pt geometry: letterpaper, left=0in, right=0in, top=0in, bottom=0in, hmargin=0in, vmargin=0in par_separation: 1em -contact_col: "0.32\\textwidth" #these three add to 0.94? +contact_col: "0.32\\textwidth" #these add to 0.94? profile_col: "0.62\\textwidth" edu_col: "0.49\\textwidth" lang_col: "0.49\\textwidth" diff --git a/main.tex b/main.tex deleted file mode 100644 index c42620f..0000000 --- a/main.tex +++ /dev/null @@ -1,717 +0,0 @@ -% !TEX TS-program = xelatex -% !TEX encoding = UTF-8 Unicode - -\documentclass[9pt]{article} - -% force US English hyphenation -\usepackage[USenglish]{babel} - -% more advanced expressions in \setlength -\usepackage{calc} - -% more advanced command declaration -\usepackage{xparse} - -% provides some extra warnings regarding deprecated practices -\usepackage[l2tabu,orthodox]{nag} - -% define margin -\newlength\cvMargin -\setlength\cvMargin{0.2in} - -% set defined margin as paper margin -\usepackage[margin=\cvMargin,noheadfoot]{geometry} - -% set the other lengths based on the margin -\newlength\cvSideWidth -\setlength\cvSideWidth{0.3\paperwidth-\cvMargin} -\newlength\cvMainWidth -\setlength\cvMainWidth{\paperwidth-4\cvMargin-\cvSideWidth} - -\newlength\cvPictureWidth -\setlength\cvPictureWidth{1.5in} - -% defining some lengths for the language bar -\newlength\cvLanguageBarWidth -\setlength\cvLanguageBarWidth{3em} - -\newlength\cvLanguageBarHeight -\setlength\cvLanguageBarHeight{0.75em} - -% defines spacing between a section and its icon -\newlength\cvTimeDotSep -\setlength\cvTimeDotSep{0.1in} - -% spacing between two items in a section -\newlength{\cvSectionSep} -\setlength{\cvSectionSep}{0.1in} - -% we will define this length later, based on the widest icon -\newlength\cvHeaderIconWidth - -% Determines font styles -\newcommand{\cvSection}[1]{\Large\textbf{#1}} -\newcommand{\cvEducation}[3]{{\firaMedium #1}\\ #2\\ \emph{#3}} -\newcommand{\cvExperience}[5]{{\firaMedium #1}\\ \textsc{\selectfont #2}, #3. #4\\ \emph{#5}} - -% allow for links -\usepackage{hyperref} - -% advanced drawing -\usepackage{tikz} -\usetikzlibrary{calc,positioning,backgrounds,matrix,node-families} %requires node-families file - -% pictures -\usepackage{graphicx} - -% define four main colours -\definecolor{cvColor}{HTML}{5F9CA8} -\definecolor{cvColorLight}{HTML}{99D0DA} -\definecolor{cvDark}{HTML}{2F3142} -\definecolor{cvAccent}{HTML}{474A65} - -% load external fonts -\usepackage{fontspec} - -% icon font -\usepackage{fontawesome} - -% load external fonts -\setmainfont[Numbers={OldStyle,Monospaced}]{Open Sans} -\setsansfont{Open Sans} -\setmonofont{Open Sans} -\newfontfamily\firaMedium{Open Sans} - -\pagestyle{empty} - -% update default paragraph indent, and header space -\setlength{\topskip}{0pt} % between header and text (0 needed for vertical centring) -\usepackage{parskip} % remove paragraph indents - -% setting variable from before based on widest icon -\setlength{\cvHeaderIconWidth}{\maxof{\widthof{\faBriefcase}}{\widthof{\faGraduationCap}}} - -% set TikZ styles -\tikzset{% - contactIcon/.style={% - minimum height=\baselineskip, - }, - contactText/.style={% - minimum height=\baselineskip, - text depth=0pt, - }, - headerIcon/.style={% - minimum width=\cvHeaderIconWidth, - anchor=center, - }, - languageText/.style={% - font=\footnotesize, - minimum width=4em, - }, - languageText2/.style={% - font=\footnotesize, - minimum width=5em, - }, - progressArea/.style={% - draw, - rectangle, - minimum width=\cvLanguageBarWidth, - minimum height=\cvLanguageBarHeight, - cvColor}, - progressBar/.style={% - minimum height=\cvLanguageBarHeight, - rectangle, - draw, - fill, - cvColor, - anchor=west}, - sectionTitle/.style={% - anchor=north west, - align=left}, - eventdottext/.style = {% - text width=\cvMainWidth-\cvTimeDotSep, - black, - %text depth=0pt, - anchor=north west, - }, - sectionedutext/.style={% - eventdottext, - anchor=north west - }, - invisibletimedot/.style = {% - circle, - minimum width=3pt, - anchor=center - }, - timedot/.style = {% - invisibletimedot, - draw, - minimum width=3pt, - fill, - black, - }, - } - -% based on https://tex.stackexchange.com/questions/65731 -\makeatletter -\def\cv@hrulefill{{\color{cvColor}\leavevmode\leaders\hrule height 1pt\hfill\kern\z@}} - -% line before and after text (some tweaking is required here) -% based on https://tex.stackexchange.com/questions/15119 -\NewDocumentCommand{\ruleline}{m}{\par\noindent\raisebox{\baselineskip/4}{\makebox[\linewidth]{\cv@hrulefill\hspace{1ex}\raisebox{-\baselineskip/4}{#1}\hspace{1ex}\cv@hrulefill}}} -\makeatother - -% update global colour -\makeatletter -\NewDocumentCommand{\globalcolor}{m}{% - \color{#1}\global\let\default@color\current@color -} -\makeatother -\AtBeginDocument{\globalcolor{cvDark}} - -\NewDocumentCommand{\cvLanguage}{mm}{% - {\globaldefs=1\relax\pgfkeys{/cv/languages/lang\the\value{languages} = #2}} - - \stepcounter{languages} -} - -\makeatletter -\newcount\my@repeat@count -\newcommand{\cvSkill}[1]{% - \begingroup - \my@repeat@count=\z@ - \@whilenum\my@repeat@count<#1\do{\faCircle\advance\my@repeat@count\@ne}% - \my@repeat@count=\numexpr5-\z@\relax - \@whilenum\my@repeat@count>#1\do{\faCircleO\advance\my@repeat@count\m@ne}% - \endgroup -} -\makeatother - -\begin{document} - - \vspace*{\fill} - % fill in sidebar - \begin{tikzpicture}[remember picture,overlay] - \fill[cvColorLight] (current page.north west) rectangle ++(\cvSideWidth+2\cvMargin,-\paperheight); - \end{tikzpicture} - - % sidebar formatted as a minipage - \begin{minipage}{\cvSideWidth} - \begin{center} - - % profile photo - \begin{tikzpicture} - \node[ - rectangle, - minimum size=\cvPictureWidth, - path picture={% - \node at (path picture bounding box.center){% - \includegraphics[width=\cvPictureWidth]{img/profile_picture} - }; - }]{}; - \end{tikzpicture} - - {\LARGE - Richard Connor - - \vspace{10pt} - - Johnstone} - - \vspace{0.1in} - - {\color{cvAccent} Aerospace Engineer} - - \vspace{0.1in} - - \ruleline{Profile} - - \small - Currently pursuing employment as an Aerospace Software Engineer while - earning a Masters in Aerospace Engineering (focus in Astrodynamics) at the - University of Colorado -- Boulder. - - \vspace{4pt} - - \ruleline{Contact} - - \vspace{8pt} - - \begin{tikzpicture}[every node/.style={inner sep=0pt, outer sep=0pt}] - \matrix [ - column 1/.style={anchor=center,contactIcon}, - column 2/.style={anchor=west,align=left,contactIcon}, - column sep=5pt, - row sep=5pt] (contact) {% - \node{\faEnvelope}; - & \node{\href{mailto:connor@richardconnorjohnstone.com}{% - {\small connor@richardconnorjohnstone.com}}};\\ - \node{\faMapMarker}; - & \node{690 Inca Parkway\\Boulder, CO 80303};\\ - \node{\faPhone}; - & \node{+1 (502) 414-1242};\\ - \node{\faGlobe}; - & - \node{\href{https://richardconnorjohnstone.com}{% - richardconnorjohnstone.com}};\\ - \node{\faGithub}; - & \node{\href{https://github.com/rconnorjohnstone}{rconnorjohnstone}};\\ - \node{\faLinkedinSquare}; - & \node{\href{https://www.linkedin.com/rconnorjohnstone}{% - rconnorjohnstone}};\\ - }; - \end{tikzpicture} - - \vspace{4pt} - - \ruleline{Languages} - - \vspace{4pt} - - \begin{tikzpicture}[every node/.style={text depth=0pt,inner sep=0pt,outer sep=0pt}] - \matrix [column sep=5pt,row sep=3pt] (contact) {% - \node[languageText]{Python}; & - \node[progressArea](language 1) {}; & - \node[languageText2]{Julia}; & - \node[progressArea] (language 2) {}; \\ - - \node[languageText]{C++}; & - \node[progressArea] (language 3) {}; & - \node[languageText2]{MATLAB}; & - \node[progressArea] (language 4) {}; \\ - - \node[languageText]{\LaTeX}; & - \node[progressArea] (language 5) {}; & - \node[languageText2]{Mathematica}; & - \node[progressArea] (language 6) {}; \\ - - \node[languageText]{Rust}; & - \node[progressArea] (language 7) {}; \\ - }; - \draw (language 1.west) - node[progressBar,minimum width=5/5*\cvLanguageBarWidth] {}; - \draw (language 2.west) - node[progressBar,minimum width=5/5*\cvLanguageBarWidth] {}; - \draw (language 3.west) - node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {}; - \draw (language 4.west) - node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {}; - \draw (language 5.west) - node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {}; - \draw (language 6.west) - node[progressBar,minimum width=3/5*\cvLanguageBarWidth] {}; - \draw (language 7.west) - node[progressBar,minimum width=1/5*\cvLanguageBarWidth] {}; - \end{tikzpicture} - - \vspace{4pt} - - \ruleline{Guidance Software} - - \vspace{4pt} - - \begin{tikzpicture}[every node/.style={text depth=0pt,inner sep=0pt,outer sep=0pt}] - \matrix [column sep=5pt,row sep=3pt] (contact) {% - \node[languageText]{GMAT}; & - \node[progressArea](guidance 1) {}; & - \node[languageText2]{STK}; & - \node[progressArea] (guidance 2) {}; \\ - }; - \draw (guidance 1.west) - node[progressBar,minimum width=5/5*\cvLanguageBarWidth] {}; - \draw (guidance 2.west) - node[progressBar,minimum width=3/5*\cvLanguageBarWidth] {}; - \end{tikzpicture} - - \vspace{4pt} - - \ruleline{CAD Software} - - \vspace{4pt} - - \begin{tikzpicture}[every node/.style={text depth=0pt,inner sep=0pt,outer sep=0pt}] - \matrix [column sep=5pt,row sep=3pt] (contact) {% - \node[languageText]{PTC Creo}; & - \node[progressArea](cad 1) {}; & - \node[languageText2]{AutoCAD}; & - \node[progressArea] (cad 2) {}; \\ - - \node[languageText]{Solidworks}; & - \node[progressArea](cad 3) {}; & - \node[languageText2]{CATIA v5}; & - \node[progressArea] (cad 4) {}; \\ - }; - \draw (cad 1.west) - node[progressBar,minimum width=5/5*\cvLanguageBarWidth] {}; - \draw (cad 2.west) - node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {}; - \draw (cad 3.west) - node[progressBar,minimum width=3/5*\cvLanguageBarWidth] {}; - \draw (cad 4.west) - node[progressBar,minimum width=3/5*\cvLanguageBarWidth] {}; - \end{tikzpicture} - - \vspace{4pt} - - \ruleline{Operating Systems} - - \vspace{4pt} - - \begin{tikzpicture}[every node/.style={text depth=0pt,inner sep=0pt,outer sep=0pt}] - \matrix [column sep=5pt,row sep=3pt] (contact) {% - \node[languageText]{Linux}; & - \node[progressArea](os 1) {}; & - \node[languageText2]{Windows}; & - \node[progressArea] (os 2) {}; \\ - }; - \draw (os 1.west) - node[progressBar,minimum width=5/5*\cvLanguageBarWidth] {}; - \draw (os 2.west) - node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {}; - \end{tikzpicture} - - \vspace{4pt} - - \ruleline{Other} - - \vspace{4pt} - - \begin{tikzpicture}[every node/.style={text depth=0pt,inner sep=0pt,outer sep=0pt}] - \matrix [column sep=5pt,row sep=3pt] (contact) {% - \node[languageText]{Git}; & - \node[progressArea](other 1) {}; & - \node[languageText2]{Office}; & - \node[progressArea] (other 2) {}; \\ - - \node[languageText]{Vim}; & - \node[progressArea](other 3) {}; & - \node[languageText2]{LabVIEW}; & - \node[progressArea] (other 4) {}; \\ - }; - \draw (other 1.west) - node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {}; - \draw (other 2.west) - node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {}; - \draw (other 3.west) - node[progressBar,minimum width=4/5*\cvLanguageBarWidth] {}; - \draw (other 4.west) - node[progressBar,minimum width=1/5*\cvLanguageBarWidth] {}; - \end{tikzpicture} - - \vspace{4pt} - - \ruleline{Skills} - - \vspace{4pt} - - \end{center} - \footnotesize - Experience in programming in both low and high level languages for a wide - variety of aerospace engineering applications: Kalman Filtering, - trajectory design of Earth-based and interplanetary missions, - control theory for low-thrust mission design, control of attitude systems - using quaternions and Modified Rodriguez Parameters, and orbit - determination and proximity/rendesvous operations leveraging computer - vision. Some experience in containerizing platforms (Docker) for web-based - server deployment. Also some experience in Linux bash scripting. - - \end{minipage} - \vspace*{\fill} - -\begin{tikzpicture}[ - every node/.style={ - inner sep=0pt, - outer sep=0pt - }, - remember picture, - overlay, - shift={($(current page.north west)% - +(\cvSideWidth+3\cvMargin+\cvTimeDotSep,-\cvMargin)$)}] - % main content - - \node[sectionTitle] at (0,0) (title 1) {\cvSection{Education}}; - \node[left=\cvTimeDotSep of title 1,headerIcon] {\faGraduationCap}; - \begin{scope}[on background layer] - \draw[line width=2pt,cvColor] - let \p1=(title 1.south west), - \p2=(current page.east) in - (\x1,\y1-0.1cm) to (\x2,\y1-0.1cm); - \end{scope} - - % University of Colorado -- Boulder - \node[ - below=\cvSectionSep of title 1.south west, - eventdottext] - (item 1 header) - {\phantom{Evening}}; - \node[ - below=\cvSectionSep of title 1.south west, - sectionedutext] - (item 1) - {\cvEducation{ - Masters of Aerospace Engineering}% - {University of Colorado -- Boulder, Boulder, CO, August 2018 -- Current}% - {Currently pursuing a Masters degree with a focus in astrodynamics. - GPA: 3.5/4.0}}; - \node[ - left=\cvTimeDotSep of item 1 header, - timedot] - (start) - {}; - - % University of Kentucky - \node[ - below=\cvSectionSep of item 1.south west, - eventdottext] - (item 2 header) - {\phantom{Evening}}; - \node[ - below=\cvSectionSep of item 1.south west, - sectionedutext] - (item 2) - {\cvEducation{Bachelor of Science in Mechanical Engineering}% - {University of Kentucky, Lexington, KY. August 2011 -- May 2016}% - {General training in Mechanical Engineering practices including - product design, with an emphasis on orbital mechanics. GPA: 3.6/4.0}}; - \node[ - left=\cvTimeDotSep of item 2 header, - timedot] - {}; - - % University of Kentucky 2 - \node[ - below=\cvSectionSep of item 2.south west, - eventdottext] - (item 3 header) - {\phantom{Evening}}; - \node[ - below=\cvSectionSep of item 2.south west, - sectionedutext] - (item 3) - {\cvEducation{Bachelor of Science in Physics}% - {University of Kentucky, Lexington. August 2011 -- May 2016}% - {General training in all types of physical sciences, including - general and special relativity, electromagnetism, and quantum - mechanics. GPA: 3.6/4.0}}; - \node[ - left=\cvTimeDotSep of item 3 header, - timedot] - {}; - \node[ - left=\cvTimeDotSep of item 3.south west, - invisibletimedot] - (end) - {}; - \draw (start) to (end.center); - - %%%%%%%%%%%%%% - % Experience % - %%%%%%%%%%%%%% - - \node[below=0.2cm of item 3.south west,sectionTitle] (title 2) - {\cvSection{Recent Experience}}; - \node[left=\cvTimeDotSep of title 2,headerIcon] {\faBriefcase}; - \node[below=0.2cm of item 3.south west,sectionTitle] (title 2 dummy) {\phantom{\cvSection{Education}}}; - \begin{scope}[on background layer] - \draw[line width=2pt,cvColor] - let \p1=(title 2 dummy.south west), - \p2=(current page.east) in - (\x1,\y1-0.1cm) to (\x2,\y1-0.1cm); - \end{scope} - -\node[ - below=\cvSectionSep of title 2.south west, - eventdottext] - (item 1 header) - {\phantom{Evening}}; - \node[ - below=\cvSectionSep of title 2.south west, - sectionedutext] - (item 1) - {\cvExperience% - {Internship}% - {Palski And Associates}% - {Colorado Springs, CO}% - {Summer 2019}% - {Organized an effort to develop and build a package to automate telescope - observations to perform satellite orbit state determination using purely - visual information in C++ utilizing many common libraries and frameworks - (Eigen, OpenCV, Boost,etc.). \\ - Developed a program to determine range, azimuth, and elevation information - from the observations and solve for state elements using Gooding's - approach to Lambert's problem, applying that software to a batch estimator - to accumulate and improve results.\\ - Also developed flight-ready software in C++ for a variety of - proximity/rendesvous operations for a secondary observational cubesat - during critical missions,leveraging feature detection and recognition in - point cloud, LIDAR, and RGB image data, as well as a handful of - convenience scripts written in Python. Learned about common development - workflows involving Agile methodology, git, Amazon Web Services, etc.}}; - \node[ - left=\cvTimeDotSep of item 1 header, - timedot] - (start) - {}; - - % item 2 - \node[ - below=\cvSectionSep of item 1.south west, - eventdottext] - (item 2 header) - {\phantom{Evening}}; - \node[ - below=\cvSectionSep of item 1.south west, - sectionedutext] - (item 2) - {\cvExperience% - {Mechanical Design Engineer 2}% - {Lockheed Martin Missile and Fire Control}% - {Lexington, KY}% - {February 2018 -- August 2018}% - {Performed product design and redesign for several important armoring - subsystems of the GMV 1.1 military vehicle, including cost reduction, - weight reduction, and armor performance improvements on the vehicle - chassis and outer shell. Typically performed rapid brainstorming and - turn-around time to provide support for Special Operations in the US - Army.}}; - \node[ - left=\cvTimeDotSep of item 2 header, - timedot] - {}; - - % item 3 - \node[ - below=\cvSectionSep of item 2.south west, - eventdottext] - (item 3 header) - {\phantom{Evening}}; - \node[ - below=\cvSectionSep of item 2.south west, - sectionedutext] - (item 3) - {\cvExperience% - {Lead Design Engineer}% - {Rhodes Systems International}% - {Louisville, KY}% - {August 2016 -- February 2018}% - {Completely redesigned the kickout/crossover box subsystems for - industrial tow-line conveyor systems in heavy equipment finishing and - manufacturing. Responsible for system-level design of several projects - with sale prices over \$1 Million. Also responsible for oversight of - machining and project fabrication shop operations.}}; - \node[ - left=\cvTimeDotSep of item 3 header, - timedot] - {}; - \node[ - left=\cvTimeDotSep of item 3.south west, - invisibletimedot] - (end) - {}; - \draw (start) to (end.center); - - %%%%%%%%%%%%%% - % Research % - %%%%%%%%%%%%%% - - \node[below=0.2cm of item 3.south west,sectionTitle] (title 3) - {\cvSection{Research}}; - \node[left=\cvTimeDotSep of title 3,headerIcon] {\faFlask}; - \node[below=0.2cm of item 3.south west,sectionTitle] (title 3 dummy) - {\phantom{\cvSection{Research}}}; - \begin{scope}[on background layer] - \draw[line width=2pt,cvColor] - let \p1=(title 3 dummy.south west), - \p2=(current page.east) in - (\x1,\y1-0.1cm) to (\x2,\y1-0.1cm); - \end{scope} - -\node[ - below=\cvSectionSep of title 3.south west, - eventdottext] - (item 1 header) - {\phantom{Evening}}; - \node[ - below=\cvSectionSep of title 3.south west, - sectionedutext] - (item 1) - {\cvExperience% - {Research Experience}% - {University of Kentucky}% - {Lexington, KY}% - {Spring 2014 -- Spring 2016}% - {Spent two years working on a project that utilized the passive magnetic - field shielding capabilities of $\mu$-metal material and combined it with - an active shielding concept utilizing a Helmholtz coil design. The project - is currently under the process of exploring patent options.}}; - \node[ - left=\cvTimeDotSep of item 1 header, - timedot] - (start) - {}; - - % item 2 - \node[ - below=\cvSectionSep of item 1.south west, - eventdottext] - (item 2 header) - {\phantom{Evening}}; - \node[ - below=\cvSectionSep of item 1.south west, - sectionedutext] - (item 2) - {\cvExperience% - {Inertial Electrostatic Confinement Plasma Generation}% - {University of Kentucky}% - {Lexington, KY}% - {Fall 2015 -- Spring 2016}% - {As a Senior Capstone design project I led a team of Mechanical - Engineering students to create an electrostatically confined plasma - generated in a vaccuum environment using a Paaschen discharge event. - Demonstrated applications in high voltage cicuitry design and - spectrographic analysis of plasma in a space-craft propulsion capacity.}}; - \node[ - left=\cvTimeDotSep of item 2 header, - timedot] - {}; - \node[ - left=\cvTimeDotSep of item 2.south west, - invisibletimedot] - (end) - {}; - \draw (start) to (end.center); - - %%%%%%%%%% - % Skills % - %%%%%%%%%% - - \node[below=0.2cm of item 2.south west,sectionTitle] (title 4) - {\cvSection{Honors, Certifications, Licenses}}; - \node[left=\cvTimeDotSep of title 4,headerIcon] {\faStar}; - \node[below=0.2cm of item 2.south west,sectionTitle] (title 4 dummy) - {\phantom{\cvSection{Research}}}; - \begin{scope}[on background layer] - \draw[line width=2pt,cvColor] - let \p1=(title 4 dummy.south west), - \p2=(current page.east) in - (\x1,\y1-0.1cm) to (\x2,\y1-0.1cm); - \end{scope} - -\matrix[matrix of nodes, - below=0.2cm of title 4.south west, - anchor=north west, - column sep=6pt, - row sep=6pt, - every node/.style={Text Depth=tdSkills, font=\small, align=center}] {% - US Secret Clearance & - Private Pilot PPL (42 Hours) & - ACT 35/36 \\ - NAUI Certified Scuba (Open Water) & - National Merit Finalist & - GRE: V167, Q167, W5.5 \\ - Magna Cum Laude & - Patterson Scholar \\}; - -\end{tikzpicture} - -\end{document} diff --git a/makefile b/makefile index f5ed9b4..3f583b2 100644 --- a/makefile +++ b/makefile @@ -1,10 +1,15 @@ TEX = pandoc src = template.tex details.yml +src_contract = template_contract.tex details.yml FLAGS = --pdf-engine=xelatex output.pdf : $(src) $(TEX) $(filter-out $<,$^ ) -o $@ --template=$< $(FLAGS) +.PHONY: contract +contract : $(src_contract) + $(TEX) $(filter-out $<,$^ ) -o output_contract.pdf --template=$< $(FLAGS) + .PHONY: clean clean : - rm output.pdf + rm output.pdf output_contract.pdf diff --git a/template.tex b/template.tex index 455ae57..e8f956a 100644 --- a/template.tex +++ b/template.tex @@ -40,6 +40,7 @@ $endif$ % TYPOGRAPHY %-------------------------------- +\usepackage{fontawesome} \usepackage{fontspec} \usepackage{xunicode} \usepackage{xltxtra} @@ -49,7 +50,6 @@ $endif$ % Cool ampersand \newcommand{\amper}{{\fontspec[Scale=.95]{$mainfont$}\selectfont\itshape\&}} % Font Awesome -\usepackage{fontawesome} % HEADINGS %-------------------------------- @@ -95,9 +95,10 @@ $endif$ % ---------------------------------------------------------------------------- \noindent\fcolorbox{black}{sidebar}{% \begin{minipage}[t][\dimexpr\textheight-2\fboxsep-2\fboxrule\relax]{\dimexpr$sidebar.width$\textwidth-2\fboxrule-2\fboxsep\relax} - \centering + \centering \textbf{\textcolor{text}{{\LARGE $for(name)$$name$ $endfor$}}}\\ + \vspace{0.5em} \hrule \vspace{0.5em} @@ -140,6 +141,7 @@ $endif$ \vspace{-3.5em} $endfor$ } + \end{minipage}} \hspace{-5pt} % MAIN CONTENT diff --git a/template_contract.tex b/template_contract.tex new file mode 100644 index 0000000..6509142 --- /dev/null +++ b/template_contract.tex @@ -0,0 +1,221 @@ +%!TEX TS-program = xelatex +%!TEX encoding = UTF-8 Unicode + +\documentclass[$fontsize$, letterpaper]{article} + +% LAYOUT +%-------------------------------- +% Margins +\usepackage{geometry} +\geometry{$geometry$} + +% Do not indent paragraphs +\setlength\parindent{0in} + +% Enable multicolumns +\usepackage{vwcol} +\usepackage{multicol} + +% Colors +\usepackage{xcolor} +\definecolor{sidebar}{HTML}{$sidebar.color$} +\definecolor{content}{HTML}{$content.color$} +\definecolor{text}{HTML}{$text_color$} +\definecolor{accent}{HTML}{$accent_color$} +\color{text} + +% Uncomment to suppress page numbers +\pagenumbering{gobble} + +% LANGUAGE +%-------------------------------- +% Set the main language +$if(lang)$ +\usepackage{polyglossia} +\setmainlanguage{$lang$} +$endif$ + +% List Indents +\usepackage{enumitem} + +% TYPOGRAPHY +%-------------------------------- +\usepackage{fontawesome} +\usepackage{fontspec} +\usepackage{xunicode} +\usepackage{xltxtra} +% converts LaTeX specials (quotes, dashes etc.) to Unicode +\defaultfontfeatures{Mapping=tex-text} +\setromanfont [Ligatures={Common}, Numbers={OldStyle}]{$mainfont$} +% Cool ampersand +\newcommand{\amper}{{\fontspec[Scale=.95]{$mainfont$}\selectfont\itshape\&}} +% Font Awesome + +% HEADINGS +%-------------------------------- +\usepackage{sectsty} +\usepackage[normalem]{ulem} +\sectionfont{\rmfamily\mdseries} +\subsectionfont{\rmfamily\mdseries\scshape\normalsize} +\subsubsectionfont{\rmfamily\bfseries\upshape\normalsize} + +% SHAMELESSLY STOLEN STUFF +% ---------------------------------------------------------------------------- +% based on https://tex.stackexchange.com/questions/65731 +\makeatletter +\def\cv@hrulefill{{\color{accent}\leavevmode\leaders\hrule height 1pt\hfill\kern\z@}} + +% line before and after text (some tweaking is required here) +% based on https://tex.stackexchange.com/questions/15119 +\NewDocumentCommand{\ruleline}{m}{\par\noindent\raisebox{\baselineskip/4}{\makebox[\linewidth]{\cv@hrulefill\hspace{1ex}\raisebox{-\baselineskip/4}{#1}\hspace{1ex}\cv@hrulefill}}} +\makeatother + +% PDF SETUP +%-------------------------------- +\usepackage{hyperref} +\hypersetup +{ + pdfauthor={$name$}, + pdfsubject={$name$'s CV}, + pdftitle={$name$'s CV}, + colorlinks, breaklinks, xetex, bookmarks, + filecolor=black, + urlcolor=[HTML]{$link_color$}, + linkcolor=[HTML]{$link_color$}, + citecolor=[HTML]{$link_color$} +} + +%============================================================================= +\begin{document} + +\setlength\fboxsep{0.2in} +\setlength\fboxrule{0pt} + +% LEFT SIDEBAR +% ---------------------------------------------------------------------------- +\noindent\fcolorbox{black}{sidebar}{% +\begin{minipage}[t][\dimexpr\textheight-2\fboxsep-2\fboxrule\relax]{\dimexpr$sidebar.width$\textwidth-2\fboxrule-2\fboxsep\relax} + + \centering + \textbf{\textcolor{text}{{\LARGE $for(name)$$name$ $endfor$}}}\\ + + \vspace{0.5em} + %\hrule + \vspace{0.5em} + + \small{ + + \ruleline{\normalsize{Profile}} + $if(profile)$ + $profile$ + $endif$ + \vspace{1em} + + $for(proficiencies)$ + \ruleline{\normalsize{$proficiencies.name$}} + \vspace{-2.5em} + \begin{multicols}{2} + $for(proficiencies.list)$ + $proficiencies.list$\\ + $endfor$ + \end{multicols} + \vspace{-0.5em} + $endfor$ + + \ruleline{Skills} + \vspace {-5em} + $for(skills)$ + \subsection*{\center{\textbf{$skills.skill$}}} + \vspace{-0.5em} + \flushleft{ + \emph{$skills.info$}\\ + } + \vspace{-3.5em} + $endfor$ + } + + \vspace{4em} + \includegraphics[width=15em]{img/palski.png} + +\end{minipage}} +\hspace{-5pt} +% MAIN CONTENT +% ---------------------------------------------------------------------------- +\noindent\fcolorbox{black}{content}{% +\begin{minipage}[t][\dimexpr\textheight-2\fboxsep-2\fboxrule\relax]{\dimexpr$content.width$\textwidth-2\fboxrule-2\fboxsep\relax} + \section*{Education} + \vspace {-9pt} + \hrule + \vspace {2pt} + \noindent + $for(education)$ + $education.degree$ in \textbf{$education.major$}\\ + \emph{$education.university$} + $if(education.completed)$ + \\[4pt] + $else$ + -- Currently attending\\[4pt] + $endif$ + $endfor$ + \vspace{-10pt} + + $if(languages)$ + \section*{Languages and Frameworks} + \vspace {-11pt} + \hrule + \vspace {8pt} + \begin{vwcol}[widths={1in, 1in, 1in}, justify=center] + $for(languages)$ + \emph{$languages$}\\ + $endfor$ + \emph{\LaTeX}\\ + \end{vwcol} + \vspace{10pt} + \begin{vwcol}[widths={1in, 1in, 1in}, justify=center] + $for(frameworks)$ + \emph{$frameworks$}\\ + $endfor$ \end{vwcol} $endif$ + + \vspace{-1em} + \section*{Experience} + \vspace {-10pt} + \hrule + \vspace{2pt} + \noindent + $for(experience)$ + \textbf{\textsc{$experience.employer$}} -- + \emph{$experience.title$} -- + $experience.city$\\ + $experience.description$\\[$par_separation$] + $endfor$ + + \vspace{-2em} + \section*{Research} + \vspace {-10pt} + \hrule + \vspace{2pt} + \noindent + $for(research)$ + \textbf{\textsc{$research.university$}} -- + \emph{$research.title$} -- + $research.city$\\ + $research.description$\\[$par_separation$] + $endfor$ + + \vspace{-1em} + \section*{Honors, Certifications, Licenses} + \vspace {-10pt} + \hrule + \vspace{2pt} + \noindent + \begin{multicols}{3} + \small{ + \begin{itemize} + $for(honors)$ + \item $honors$\\ + $endfor$ + \end{itemize} + } + \end{multicols} +\end{minipage}} +\end{document} diff --git a/tikzlibrarynode-families.code.tex b/tikzlibrarynode-families.code.tex deleted file mode 100644 index 312292f..0000000 --- a/tikzlibrarynode-families.code.tex +++ /dev/null @@ -1,159 +0,0 @@ -\let\tikz@lib@nf@textheight\relax -\let\tikz@lib@nf@textdepth\relax -\let\tikz@lib@nf@textwidth\relax -\tikzset{ - Minimum Width/.code={% - \pgfutil@ifundefined{\pgfpictureid @#1@width}{}{% - \tikzset{/tikz/minimum width/.expand twice=+\csname\pgfpictureid @#1@width\endcsname}% - }% - \tikz@addmode{\pgfmathsetlengthmacro\tikz@lib@nf@outerxsep{\pgfkeysvalueof{/pgf/outer xsep}}\global\let\tikz@lib@nf@outerxsep\tikz@lib@nf@outerxsep}% - \tikzset{ - prefix after command={% - \pgfextra - \pgfinterruptpath - \pgfsettransform{\csname pgf@sh@nt@\tikzlastnode\endcsname}% - \pgfpointanchor{\tikzlastnode}{east}% - \pgf@xa=\pgf@x \pgf@ya=\pgf@y - \pgfpointanchor{\tikzlastnode}{west}% - \advance\pgf@xa-\pgf@x - \advance\pgf@ya-\pgf@y - \pgfmathveclen@{\pgf@sys@tonumber\pgf@xa}{\pgf@sys@tonumber\pgf@ya}% - \pgf@x\pgfmathresult pt\relax - \advance\pgf@x-\tikz@lib@nf@outerxsep - \advance\pgf@x-\tikz@lib@nf@outerxsep - \pgfutil@ifundefined{\pgfpictureid @#1@width}{% - \expandafter\xdef\csname\pgfpictureid @#1@width\endcsname{\the\pgf@x}% - }{% - \expandafter\ifdim\csname\pgfpictureid @#1@width\endcsname<\pgf@x - \expandafter\xdef\csname\pgfpictureid @#1@width\endcsname{\the\pgf@x}% - \fi - }% - \expandafter\expandafter\expandafter\gdef\expandafter\expandafter\expandafter - \tikz@atend@picture\expandafter\expandafter\expandafter{\expandafter\tikz@atend@picture\expandafter\tikz@lib@nf@save\expandafter{\pgfpictureid}{#1}{width}{width}} - \endpgfinterruptpath - \endpgfextra - }% - }% - }, - Minimum Height/.code={% - \pgfutil@ifundefined{\pgfpictureid @#1@height}{}{% - \tikzset{/tikz/minimum height/.expand twice=+\csname\pgfpictureid @#1@height\endcsname}% - }% - \tikz@addmode{\pgfmathsetlengthmacro\tikz@lib@nf@outerysep{\pgfkeysvalueof{/pgf/outer ysep}}\global\let\tikz@lib@nf@outerysep\tikz@lib@nf@outerysep}% - \tikzset{ - prefix after command={% - \pgfextra - \pgfinterruptpath - \pgfsettransform{\csname pgf@sh@nt@\tikzlastnode\endcsname}% - \pgfpointanchor{\tikzlastnode}{north}% - \pgf@xa=\pgf@x \pgf@ya=\pgf@y - \pgfpointanchor{\tikzlastnode}{south}% - \advance\pgf@xa-\pgf@x - \advance\pgf@ya-\pgf@y - \pgfmathveclen@{\pgf@sys@tonumber\pgf@xa}{\pgf@sys@tonumber\pgf@ya}% - \pgf@x\pgfmathresult pt\relax - \advance\pgf@x-\tikz@lib@nf@outerysep - \advance\pgf@x-\tikz@lib@nf@outerysep - \pgfutil@ifundefined{\pgfpictureid @#1@height}{% - \expandafter\xdef\csname\pgfpictureid @#1@height\endcsname{\the\pgf@x}% - }{% - \expandafter\ifdim\csname\pgfpictureid @#1@height\endcsname<\pgf@x - \expandafter\xdef\csname\pgfpictureid @#1@height\endcsname{\the\pgf@x}% - \fi - }% - \expandafter\expandafter\expandafter\gdef\expandafter\expandafter\expandafter - \tikz@atend@picture\expandafter\expandafter\expandafter{\expandafter\tikz@atend@picture\expandafter\tikz@lib@nf@save\expandafter{\pgfpictureid}{#1}{height}{height}} - \endpgfinterruptpath - \endpgfextra - }% - }% - }, - Minimum Size/.style={ - Minimum Height={#1}, - Minimum Width={#1}}, - Text Height/.code=\edef\tikz@lib@nf@textheight{#1}, - Text Depth/.code= \edef\tikz@lib@nf@textdepth{#1}, - Text Width/.code=% - \edef\tikz@lib@nf@textwidth{#1}% - \pgfutil@ifundefined{\pgfpictureid @#1@textwidth}{}{% - \tikzset{text width/.expand twice=+\csname\pgfpictureid @#1@textwidth\endcsname}% - }% -} - -\def\tikz@lib@nf@text@#1#2#3{% - \expandafter\ifx\csname tikz@lib@nf@#3\endcsname\relax\else - \ifx#1\wd\def\tikz@temp{@}\else\let\tikz@temp\pgfutil@empty\fi - \expandafter\ifx\csname tikz@lib@nf@#3\tikz@temp\endcsname\pgfutil@empty\else - \pgfutil@ifundefined{\pgfpictureid @\csname tikz@lib@nf@#3\endcsname @#3\tikz@temp}{% - \expandafter\xdef\csname\pgfpictureid @\csname tikz@lib@nf@#3\endcsname @#3\tikz@temp\endcsname{\the#1#2}% - }{% - \ifdim\csname\pgfpictureid @\csname tikz@lib@nf@#3\endcsname @#3\tikz@temp\endcsname<#1#2 - \expandafter\xdef\csname\pgfpictureid @\csname tikz@lib@nf@#3\endcsname @#3\tikz@temp\endcsname{\the#1#2}% - \else - \ifx#1\wd\else - #1#2=\csname\pgfpictureid @\csname tikz@lib@nf@#3\endcsname @#3\endcsname\relax - \fi - \fi - }% - \edef\tikz@temp{\noexpand\tikz@lib@nf@save{\pgfpictureid}{\csname tikz@lib@nf@#3\endcsname}{#3}{#3\tikz@temp}}% - \expandafter\expandafter\expandafter\gdef\expandafter\expandafter\expandafter - \tikz@atend@picture\expandafter\expandafter\expandafter{\expandafter\tikz@atend@picture\tikz@temp}% - \fi - \fi -} -%%% Redefinition -\def\tikz@fig@continue{% - \ifx\tikz@text@width\pgfutil@empty% - \else% - \pgfmathsetlength{\pgf@x}{\tikz@text@width}% - \wd\pgfnodeparttextbox=\pgf@x% - \fi% - \ifx\tikz@text@height\pgfutil@empty% - \else% - \pgfmathsetlength{\pgf@x}{\tikz@text@height}% - \ht\pgfnodeparttextbox=\pgf@x% - \fi% - \ifx\tikz@text@depth\pgfutil@empty% - \else% - \pgfmathsetlength{\pgf@x}{\tikz@text@depth}% - \dp\pgfnodeparttextbox=\pgf@x% - \fi% - % - % - % - \tikz@lib@nf@text@\ht\pgfnodeparttextbox{textheight}% - \tikz@lib@nf@text@\dp\pgfnodeparttextbox{textdepth}% - \tikz@lib@nf@text@\wd\pgfnodeparttextbox{textwidth}% - % - % Node transformation - % - \tikz@node@transformations - % - \setbox\tikz@figbox=\hbox{% - \setbox\pgfutil@tempboxa=\copy\tikz@figbox% - \unhbox\pgfutil@tempboxa% - \hbox{{% - \pgfinterruptpath% - \pgfscope% - \tikz@options% - \setbox\tikz@figbox=\box\pgfutil@voidb@x% - \pgfmultipartnode{\tikz@shape}{\tikz@anchor}{\tikz@fig@name}{% - \pgfutil@tempdima=\pgflinewidth% - {\begingroup\tikz@finish}% - \global\pgflinewidth=\pgfutil@tempdima% - }% - \endpgfscope - \endpgfinterruptpath% - }}% - }% - % - \tikz@alias% - \tikz@node@finish% -} -\def\tikz@lib@nf@save#1#2#3#4{% - \pgfutil@ifundefined{#1@#2@#3@done}{% - \expandafter\let\csname#1@#2@#3@done\endcsname\pgfutil@empty% - \immediate\write\pgfutil@auxout{\noexpand\expandafter\noexpand\gdef\noexpand\csname#1@#2@#3\endcsname{\csname#1@#2@#4\endcsname}} - }{}% -} -\endinput