diff --git a/rendercv/themes/engineeringresumes/BulletEntry.j2.tex b/rendercv/themes/engineeringresumes/BulletEntry.j2.tex index a142e02..5d382ab 100644 --- a/rendercv/themes/engineeringresumes/BulletEntry.j2.tex +++ b/rendercv/themes/engineeringresumes/BulletEntry.j2.tex @@ -1,11 +1,2 @@ -((* if not is_first_entry *)) -\vspace{<>} -((* endif *)) -\begingroup((* if design.text_alignment == "left-aligned" *))\raggedright((* endif *)) -\leftskip=<> -\advance\csname @rightskip\endcsname <> -\advance\rightskip <> - -\textbullet \hspace{3pt} <> -\par\endgroup +$\vcenter{\hbox{\small$\bullet$}}$ \hspace{3pt} <> diff --git a/rendercv/themes/engineeringresumes/EducationEntry.j2.tex b/rendercv/themes/engineeringresumes/EducationEntry.j2.tex index 3fbec78..b20316a 100644 --- a/rendercv/themes/engineeringresumes/EducationEntry.j2.tex +++ b/rendercv/themes/engineeringresumes/EducationEntry.j2.tex @@ -1 +1,15 @@ -\textbf{<>} -- \textit{((* if entry.degree *))<> in ((* endif *))<>((* if entry.location))} \hfill XXXX \ No newline at end of file +((* if not is_first_entry *)) +\vspace{8pt} +((* endif *)) + +\textbf{<>}, ((* if entry.degree *))<> in ((* endif *))<>((* if entry.location *)) -- <>((* endif *)) \hfill <> + +((* for item in entry.highlights *)) + ((* if loop.first *)) +\begin{highlights} + ((* endif *)) +\item <> + ((* if loop.last *)) +\end{highlights} + ((* endif *)) +((* endfor *)) \ No newline at end of file diff --git a/rendercv/themes/engineeringresumes/ExperienceEntry.j2.tex b/rendercv/themes/engineeringresumes/ExperienceEntry.j2.tex index 7a49fe6..9780bf1 100644 --- a/rendercv/themes/engineeringresumes/ExperienceEntry.j2.tex +++ b/rendercv/themes/engineeringresumes/ExperienceEntry.j2.tex @@ -1,10 +1,15 @@ -\cventry{ - ((*- if design.show_only_years *))<<-entry.date_string_only_years->>((* else *))<<-entry.date_string->>((* endif -*)) -}{\textbf{<>}}{ - <<-entry.position->> -}{ - <<-entry.location->> -}{}{} +((* if not is_first_entry *)) +\vspace{8pt} +((* endif *)) + +\textbf{<>}, <>((* if entry.location*)) -- <>((* endif *)) \hfill <> + ((* for item in entry.highlights *)) -\cvlistitem{<>} + ((* if loop.first *)) +\begin{highlights} + ((* endif *)) +\item <> + ((* if loop.last *)) +\end{highlights} + ((* endif *)) ((* endfor *)) \ No newline at end of file diff --git a/rendercv/themes/engineeringresumes/Header.j2.tex b/rendercv/themes/engineeringresumes/Header.j2.tex index 4d9b9b3..a0ab68d 100644 --- a/rendercv/themes/engineeringresumes/Header.j2.tex +++ b/rendercv/themes/engineeringresumes/Header.j2.tex @@ -1,11 +1,48 @@ -((* if cv.name is not none *)) -\maketitle +((* if design.show_last_updated_date *)) +\placelastupdatedtext ((* endif *)) +((* if cv.name is not none *)) +\begin{header} + \fontsize{<>}{<>} + \textbf{<>} + \vspace{<>} -% save the original href command in a new command: -\let\hrefWithoutArrow\href - % new command for external links: -\renewcommand{\href}[2]{\hrefWithoutArrow{#1}{\mbox{\color{color1} #2 \raisebox{.15ex}{\footnotesize \faExternalLink*}}}} + \normalsize +((* if cv.phone *)) + \mbox{\hrefWithoutArrow{<>}{\color{black}{\footnotesize\faPhone*}\hspace*{0.13cm}<>}} + \hspace*{<>} +((* endif *)) +((* if cv.email *)) + \mbox{\hrefWithoutArrow{mailto:<>}{\color{black}{\small\faEnvelope[regular]}\hspace*{0.13cm}<>}} + \hspace*{<>} +((* endif *)) +((* if cv.location *)) + \mbox{{\small\faMapMarker*}\hspace*{0.13cm}<>} + \hspace*{<>} +((* endif *)) +((* if cv.website *)) + \mbox{\hrefWithoutArrow{<>}{\color{black}{\small\faLink}\hspace*{0.13cm}<>}} + \hspace*{<>} +((* endif *)) +((* + set icon_dictionary = { + "LinkedIn": "\\faLinkedinIn", + "GitHub": "\\faGithub", + "Instagram": "\\faInstagram", + "Mastodon": "\\faMastodon", + "Orcid": "\\faOrcid", + } +*)) +((* if cv.social_networks *)) + ((* for network in cv.social_networks *)) + ((* if network.network in icon_dictionary *)) + \mbox{\hrefWithoutArrow{<>}{\color{black}{\small<>}\hspace*{0.13cm}<>}} + \hspace*{<>} + ((* endif *)) + ((* endfor *)) +((* endif *)) +\end{header} -\hypersetup{pdftitle={<>'s CV}} \ No newline at end of file +\vspace{<>} +((* endif *)) \ No newline at end of file diff --git a/rendercv/themes/engineeringresumes/NormalEntry.j2.tex b/rendercv/themes/engineeringresumes/NormalEntry.j2.tex index 4b2b18f..e976086 100644 --- a/rendercv/themes/engineeringresumes/NormalEntry.j2.tex +++ b/rendercv/themes/engineeringresumes/NormalEntry.j2.tex @@ -1,10 +1,15 @@ -\cventry{ - ((*- if design.show_only_years *))<<-entry.date_string_only_years->>((* else *))<<-entry.date_string->>((* endif -*)) -}{ - <<-entry.name->> -}{ - <<-entry.location->> -}{}{}{} +((* if not is_first_entry *)) +\vspace{8pt} +((* endif *)) + +\textbf{<>}((* if entry.location *)) -- <>((* endif *)) \hfill <> + ((* for item in entry.highlights *)) -\cvlistitem{<>} + ((* if loop.first *)) +\begin{highlights} + ((* endif *)) +\item <> + ((* if loop.last *)) +\end{highlights} + ((* endif *)) ((* endfor *)) \ No newline at end of file diff --git a/rendercv/themes/engineeringresumes/OneLineEntry.j2.tex b/rendercv/themes/engineeringresumes/OneLineEntry.j2.tex index 189bf4e..a14222e 100644 --- a/rendercv/themes/engineeringresumes/OneLineEntry.j2.tex +++ b/rendercv/themes/engineeringresumes/OneLineEntry.j2.tex @@ -1,2 +1,3 @@ + \textbf{<>:} <> diff --git a/rendercv/themes/engineeringresumes/Preamble.j2.tex b/rendercv/themes/engineeringresumes/Preamble.j2.tex index ed3545e..4c2ca21 100644 --- a/rendercv/themes/engineeringresumes/Preamble.j2.tex +++ b/rendercv/themes/engineeringresumes/Preamble.j2.tex @@ -26,7 +26,7 @@ \usepackage{calc} % for calculating lengths \usepackage{bookmark} % for bookmarks \usepackage{lastpage} % for getting the total number of pages -\usepackage{charter} % for using charter font +% \usepackage{charter} % for using charter font \usepackage{ifthen} % Some settings: @@ -68,18 +68,17 @@ \newenvironment{highlights}{ \begin{itemize}[ topsep=0pt, - parsep=<>, partopsep=0pt, itemsep=0pt, - after=\vspace{-1\baselineskip}, - leftmargin=<> + 3pt + % after=\vspace{-1\baselineskip}, + leftmargin=10pt ] }{ \end{itemize} } % new environment for highlights \newenvironment{header}{ - \setlength{\topsep}{0pt}\par\kern\topsep\centering\color{primaryColor}\linespread{1.5} + \setlength{\topsep}{0pt}\par\kern\topsep\centering\linespread{1.5} }{ \par\kern\topsep } % new environment for the header @@ -87,7 +86,7 @@ \newcommand{\placelastupdatedtext}{% \placetextbox{}{}{} \AddToShipoutPictureFG*{% Add to current page foreground \put( - \LenToUnit{\paperwidth-<>-<>+0.05cm}, + \LenToUnit{\paperwidth-<>+0.05cm}, \LenToUnit{\paperheight-<>} ){\vtop{{\null}\makebox[0pt][c]{ \small\color{gray}\textit{Last updated in <>}\hspace{\widthof{Last updated in <>}} diff --git a/rendercv/themes/engineeringresumes/PublicationEntry.j2.tex b/rendercv/themes/engineeringresumes/PublicationEntry.j2.tex index 90ba510..b27aea1 100644 --- a/rendercv/themes/engineeringresumes/PublicationEntry.j2.tex +++ b/rendercv/themes/engineeringresumes/PublicationEntry.j2.tex @@ -1,8 +1,17 @@ -\cventry{ - <<-entry.date_string->> -}{\textbf{<>}}{ - <<-entry.journal->> -}{ -((*- if entry.doi != "" -*))\href{<>}{<>}((*- endif -*)) -}{}{} -\cvline{}{\small <>} \ No newline at end of file +((* if not is_first_entry *)) +\vspace{8pt} +((* endif *)) + +\textbf{<>} -- <> +\begin{highlights} + \item <> + ((*- if entry.doi != "" and entry.journal != "" *)) \item ((* endif -*)) + ((*- if entry.doi != "" -*)) + \href{<>}{<>} + ((*- endif -*)) + ((*- if entry.doi != "" and entry.journal != "" *)) (((* endif -*)) + ((*- if entry.journal != "" -*)) + <> + ((*- endif -*)) + ((*- if entry.doi != "" and entry.journal != "" *)))((* endif -*)) +\end{highlights} diff --git a/rendercv/themes/engineeringresumes/TextEntry.j2.tex b/rendercv/themes/engineeringresumes/TextEntry.j2.tex index 5dd00e8..7651cc8 100644 --- a/rendercv/themes/engineeringresumes/TextEntry.j2.tex +++ b/rendercv/themes/engineeringresumes/TextEntry.j2.tex @@ -1 +1,6 @@ -\cvline{}{<>} +((* if not is_first_entry *)) +\vspace{8pt} +((* endif *)) + +<> + diff --git a/rendercv/themes/engineeringresumes/__init__.py b/rendercv/themes/engineeringresumes/__init__.py index f0fa8ec..ce0a704 100644 --- a/rendercv/themes/engineeringresumes/__init__.py +++ b/rendercv/themes/engineeringresumes/__init__.py @@ -1,80 +1,35 @@ from typing import Literal +from typing import ClassVar as NotUsedInput import pydantic -from .. import LaTeXDimension +from .. import ThemeOptions, LaTeXDimension +from .. import Margins as MarginsBase -class ModerncvThemeOptions(pydantic.BaseModel): - """This class is the data model of the theme options for the moderncv theme.""" +class Margins(MarginsBase): + """This class is a data model for the margins.""" - model_config = pydantic.ConfigDict(extra="forbid") + entry_area: NotUsedInput + highlights_area: NotUsedInput - theme: Literal["moderncv"] - font_size: Literal["10pt", "11pt", "12pt"] = pydantic.Field( - default="10pt", - title="Font Size", - description='The font size of the CV. The default value is "10pt".', - examples=["10pt", "11pt", "12pt"], - ) - page_size: Literal["a4paper", "letterpaper"] = pydantic.Field( - default="letterpaper", - title="Page Size", - description='The page size of the CV. The default value is "letterpaper".', - examples=["a4paper", "letterpaper"], - ) - color: ( - Literal["blue"] - | Literal["black"] - | Literal["burgundy"] - | Literal["green"] - | Literal["grey"] - | Literal["orange"] - | Literal["purple"] - | Literal["red"] - ) = pydantic.Field( - default="blue", - validate_default=True, - title="Primary Color", - description='The primary color of the CV. The default value is "blue".', - examples=[ - "blue", - "black", - "burgundy", - "green", - "grey", - "orange", - "purple", - "red", - ], - ) - date_width: LaTeXDimension = pydantic.Field( - default="3.8 cm", - validate_default=True, - title="Date and Location Column Width", - description='The width of the date column. The default value is "3.8 cm".', - ) - content_scale: float = pydantic.Field( - default=0.75, - title="Content Scale", + +class EngineeringresumesThemeOptions(ThemeOptions): + """This class is the data model of the theme options for the engineeringresumes + theme. + """ + + theme: Literal["engineeringresumes"] + header_font_size: LaTeXDimension = pydantic.Field( + default="25 pt", + title="Header Font Size", description=( - "The scale of the content with respect to the page size. The default value" - ' is "0.75".' + "The font size of the header (the name of the person). The default value is" + " 25 pt." ), ) - show_only_years: bool = pydantic.Field( - default=False, - title="Show Only Years", - description=( - 'If "True", only the years will be shown in the date column. The default' - ' value is "False".' - ), - ) - disable_page_numbers: bool = pydantic.Field( - default=False, - title="Disable Page Numbers", - description=( - 'If "True", the page numbers will be disabled. The default value is' - ' "False".' - ), + margins: Margins = pydantic.Field( + default=Margins(), + title="Margins", + description="Page, section title, entry field, and highlights field margins.", )