mirror of https://github.com/eyhc1/rendercv.git
engineeringresumes: improve templates and use charter font
This commit is contained in:
parent
150135cc83
commit
98280c05f3
|
@ -1,2 +1,7 @@
|
||||||
$\vcenter{\hbox{\small$\bullet$}}$ <<entry.bullet>>
|
((* if not is_first_entry *))
|
||||||
|
\vspace{<<design.margins.entry_area.vertical_between>>}
|
||||||
|
((* endif *))
|
||||||
|
|
||||||
|
\begin{onecolentry}
|
||||||
|
\textbullet \hspace{3pt} <<entry.bullet>>
|
||||||
|
\end{onecolentry}
|
||||||
|
|
|
@ -1,15 +1,26 @@
|
||||||
((* if not is_first_entry *))
|
((* if not is_first_entry *))
|
||||||
\vspace{8pt}
|
\vspace{<<design.margins.entry_area.vertical_between>>}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
|
|
||||||
\textbf{<<entry.institution>>}, ((* if entry.degree *))<<entry.degree>> in ((* endif *))<<entry.area>>((* if entry.location *)) -- <<entry.location>>((* endif *)) \hfill <<entry.date_string>>
|
((* if entry.date_string == "" *))
|
||||||
|
\begin{onecolentry}
|
||||||
|
((* else *))
|
||||||
|
\begin{twocolentry}{
|
||||||
|
<<entry.date_string>>
|
||||||
|
}
|
||||||
|
((* endif *))
|
||||||
|
\textbf{<<entry.institution>>}, ((* if entry.degree *))<<entry.degree>> in ((* endif *))<<entry.area>>((* if entry.location *)) -- <<entry.location>>((* endif *))
|
||||||
((* for item in entry.highlights *))
|
((* for item in entry.highlights *))
|
||||||
((* if loop.first *))
|
((* if loop.first *))
|
||||||
\begin{highlights}
|
\begin{highlights}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
\item <<item>>
|
\item <<item>>
|
||||||
((* if loop.last *))
|
((* if loop.last *))
|
||||||
\end{highlights}
|
\end{highlights}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
((* endfor *))
|
((* endfor *))
|
||||||
|
((* if entry.date_string == "" *))
|
||||||
|
\end{onecolentry}
|
||||||
|
((* else *))
|
||||||
|
\end{twocolentry}
|
||||||
|
((* endif *))
|
|
@ -1,15 +1,26 @@
|
||||||
((* if not is_first_entry *))
|
((* if not is_first_entry *))
|
||||||
\vspace{8pt}
|
\vspace{<<design.margins.entry_area.vertical_between>>}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
|
|
||||||
\textbf{<<entry.position>>}, <<entry.company>>((* if entry.location*)) -- <<entry.location>>((* endif *)) \hfill <<entry.date_string>>
|
((* if entry.date_string == "" *))
|
||||||
|
\begin{onecolentry}
|
||||||
|
((* else *))
|
||||||
|
\begin{twocolentry}{
|
||||||
|
<<entry.date_string>>
|
||||||
|
}
|
||||||
|
((* endif *))
|
||||||
|
\textbf{<<entry.position>>}, <<entry.company>>((* if entry.location *)) -- <<entry.location>>((* endif *))
|
||||||
((* for item in entry.highlights *))
|
((* for item in entry.highlights *))
|
||||||
((* if loop.first *))
|
((* if loop.first *))
|
||||||
\begin{highlights}
|
\begin{highlights}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
\item <<item>>
|
\item <<item>>
|
||||||
((* if loop.last *))
|
((* if loop.last *))
|
||||||
\end{highlights}
|
\end{highlights}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
((* endfor *))
|
((* endfor *))
|
||||||
|
((* if entry.date_string == "" *))
|
||||||
|
\end{onecolentry}
|
||||||
|
((* else *))
|
||||||
|
\end{twocolentry}
|
||||||
|
((* endif *))
|
|
@ -18,7 +18,7 @@
|
||||||
\hspace*{<<design.margins.header.horizontal_between_connections>>}
|
\hspace*{<<design.margins.header.horizontal_between_connections>>}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
((* if cv.location *))
|
((* if cv.location *))
|
||||||
\mbox{{\small\faMapMarker*}\hspace*{0.13cm}<<cv.location>>}
|
\mbox{\color{black}{\small\faMapMarker*}\hspace*{0.13cm}<<cv.location>>}
|
||||||
\hspace*{<<design.margins.header.horizontal_between_connections>>}
|
\hspace*{<<design.margins.header.horizontal_between_connections>>}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
((* if cv.website *))
|
((* if cv.website *))
|
||||||
|
|
|
@ -1,15 +1,26 @@
|
||||||
((* if not is_first_entry *))
|
((* if not is_first_entry *))
|
||||||
\vspace{8pt}
|
\vspace{<<design.margins.entry_area.vertical_between>>}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
|
|
||||||
\textbf{<<entry.name>>}((* if entry.location *)) -- <<entry.location>>((* endif *)) \hfill <<entry.date_string>>
|
((* if entry.date_string == "" *))
|
||||||
|
\begin{onecolentry}
|
||||||
|
((* else *))
|
||||||
|
\begin{twocolentry}{
|
||||||
|
<<entry.date_string>>
|
||||||
|
}
|
||||||
|
((* endif *))
|
||||||
|
\textbf{<<entry.name>>}((* if entry.location *)) -- <<entry.location>>((* endif *))
|
||||||
((* for item in entry.highlights *))
|
((* for item in entry.highlights *))
|
||||||
((* if loop.first *))
|
((* if loop.first *))
|
||||||
\begin{highlights}
|
\begin{highlights}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
\item <<item>>
|
\item <<item>>
|
||||||
((* if loop.last *))
|
((* if loop.last *))
|
||||||
\end{highlights}
|
\end{highlights}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
((* endfor *))
|
((* endfor *))
|
||||||
|
((* if entry.date_string == "" *))
|
||||||
|
\end{onecolentry}
|
||||||
|
((* else *))
|
||||||
|
\end{twocolentry}
|
||||||
|
((* endif *))
|
|
@ -1,3 +1,7 @@
|
||||||
|
((* if not is_first_entry *))
|
||||||
|
\vspace{<<design.margins.entry_area.vertical_between>>}
|
||||||
|
((* endif *))
|
||||||
|
|
||||||
\textbf{<<entry.label>>:} <<entry.details>>
|
\begin{onecolentry}
|
||||||
|
\textbf{<<entry.label>>:} <<entry.details>>
|
||||||
|
\end{onecolentry}
|
||||||
|
|
|
@ -2,15 +2,17 @@
|
||||||
|
|
||||||
% Packages:
|
% Packages:
|
||||||
\usepackage[
|
\usepackage[
|
||||||
ignoreheadfoot, % set margins without considering header and footer
|
ignoreheadfoot, % set margins without considering header and footer
|
||||||
top=<<design.margins.page.top>>, % seperation between body and page edge from the top
|
top=<<design.margins.page.top>>, % seperation between body and page edge from the top
|
||||||
bottom=<<design.margins.page.bottom>>, % seperation between body and page edge from the bottom
|
bottom=<<design.margins.page.bottom>>, % seperation between body and page edge from the bottom
|
||||||
left=<<design.margins.page.left>>, % seperation between body and page edge from the left
|
left=<<design.margins.page.left>>, % seperation between body and page edge from the left
|
||||||
right=<<design.margins.page.right>>, % seperation between body and page edge from the right
|
right=<<design.margins.page.right>>, % seperation between body and page edge from the right
|
||||||
footskip=<<design.margins.page.bottom|divide_length_by(2)>>, % seperation between body and footer
|
footskip=<<design.margins.page.bottom|divide_length_by(2)>>, % seperation between body and footer
|
||||||
% showframe % for debugging
|
% showframe % for debugging
|
||||||
]{geometry} % for adjusting page geometry
|
]{geometry} % for adjusting page geometry
|
||||||
\usepackage{titlesec} % for customizing section titles
|
\usepackage{titlesec} % for customizing section titles
|
||||||
|
\usepackage{tabularx} % for making tables with fixed width columns
|
||||||
|
\usepackage{array} % tabularx requires this
|
||||||
\usepackage[dvipsnames]{xcolor} % for coloring text
|
\usepackage[dvipsnames]{xcolor} % for coloring text
|
||||||
\definecolor{primaryColor}{RGB}{<<design.color.as_rgb_tuple()|join(", ")>>} % define primary color
|
\definecolor{primaryColor}{RGB}{<<design.color.as_rgb_tuple()|join(", ")>>} % define primary color
|
||||||
\usepackage{enumitem} % for customizing lists
|
\usepackage{enumitem} % for customizing lists
|
||||||
|
@ -26,8 +28,17 @@
|
||||||
\usepackage{calc} % for calculating lengths
|
\usepackage{calc} % for calculating lengths
|
||||||
\usepackage{bookmark} % for bookmarks
|
\usepackage{bookmark} % for bookmarks
|
||||||
\usepackage{lastpage} % for getting the total number of pages
|
\usepackage{lastpage} % for getting the total number of pages
|
||||||
% \usepackage{charter} % for using charter font
|
\usepackage{changepage} % for one column entries (adjustwidth environment)
|
||||||
\usepackage{ifthen}
|
\usepackage{paracol} % for two and three column entries
|
||||||
|
\usepackage{ifthen} % for conditional statements
|
||||||
|
\usepackage{needspace} % for avoiding page brake right after the section title
|
||||||
|
\usepackage{charter} % for using charter font
|
||||||
|
|
||||||
|
% Ensure that generate pdf is machine readable/ATS parsable:
|
||||||
|
\ifpdf
|
||||||
|
\input{glyphtounicode}
|
||||||
|
\pdfgentounicode=1
|
||||||
|
\fi
|
||||||
|
|
||||||
% Some settings:
|
% Some settings:
|
||||||
\pagestyle{empty} % no header or footer
|
\pagestyle{empty} % no header or footer
|
||||||
|
@ -42,6 +53,8 @@
|
||||||
"PAGE_NUMBER": "\\thepage{}",
|
"PAGE_NUMBER": "\\thepage{}",
|
||||||
"TOTAL_PAGES": "\pageref*{LastPage}"
|
"TOTAL_PAGES": "\pageref*{LastPage}"
|
||||||
} *))
|
} *))
|
||||||
|
\setlength{\columnsep}{0.15cm} % set column seperation
|
||||||
|
|
||||||
\makeatletter
|
\makeatletter
|
||||||
\let\ps@customFooterStyle\ps@plain % Copy the plain style to customFooterStyle
|
\let\ps@customFooterStyle\ps@plain % Copy the plain style to customFooterStyle
|
||||||
\patchcmd{\ps@customFooterStyle}{\thepage}{
|
\patchcmd{\ps@customFooterStyle}{\thepage}{
|
||||||
|
@ -51,42 +64,76 @@
|
||||||
\pagestyle{customFooterStyle}
|
\pagestyle{customFooterStyle}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
|
|
||||||
\titleformat{\section}{\bfseries\large}{}{0pt}{}[\vspace{1pt}\titlerule]
|
\titleformat{\section}{\needspace{4\baselineskip}\bfseries\large}{}{0pt}{}[\vspace{1pt}\titlerule]
|
||||||
|
|
||||||
\titlespacing{\section}{
|
\titlespacing{\section}{
|
||||||
% left space:
|
% left space:
|
||||||
0pt
|
0pt
|
||||||
}{
|
}{
|
||||||
% top space:
|
% top space:
|
||||||
<<design.margins.section_title.top>>
|
<<design.margins.section_title.top>>
|
||||||
}{
|
}{
|
||||||
% bottom space:
|
% bottom space:
|
||||||
<<design.margins.section_title.bottom>>
|
<<design.margins.section_title.bottom>>
|
||||||
} % section title spacing
|
} % section title spacing
|
||||||
|
|
||||||
\renewcommand\labelitemi{$\vcenter{\hbox{\small$\bullet$}}$}
|
\renewcommand\labelitemi{$\vcenter{\hbox{\small$\bullet$}}$}
|
||||||
\newenvironment{highlights}{
|
\newenvironment{highlights}{
|
||||||
\begin{itemize}[
|
\begin{itemize}[
|
||||||
topsep=0pt,
|
topsep=<<design.margins.highlights_area.top>>,
|
||||||
partopsep=0pt,
|
parsep=<<design.margins.highlights_area.vertical_between_bullet_points>>,
|
||||||
itemsep=0pt,
|
partopsep=0pt,
|
||||||
% after=\vspace{-1\baselineskip},
|
itemsep=0pt,
|
||||||
leftmargin=10pt
|
leftmargin=<<design.margins.highlights_area.left>> + 10pt
|
||||||
]
|
]
|
||||||
|
}{
|
||||||
|
\end{itemize}
|
||||||
|
} % new environment for highlights
|
||||||
|
|
||||||
|
|
||||||
|
\newenvironment{onecolentry}{
|
||||||
|
\begin{adjustwidth}{
|
||||||
|
<<design.margins.entry_area.left_and_right>> + 0.00001 cm
|
||||||
}{
|
}{
|
||||||
\end{itemize}
|
<<design.margins.entry_area.left_and_right>> + 0.00001 cm
|
||||||
} % new environment for highlights
|
}
|
||||||
|
}{
|
||||||
|
\end{adjustwidth}
|
||||||
|
} % new environment for one column entries
|
||||||
|
|
||||||
|
\newenvironment{twocolentry}[2][]{
|
||||||
|
\onecolentry
|
||||||
|
\def\secondColumn{#2}
|
||||||
|
\setcolumnwidth{\fill, 4.2cm}
|
||||||
|
\begin{paracol}{2}
|
||||||
|
}{
|
||||||
|
\switchcolumn \raggedleft \secondColumn
|
||||||
|
\end{paracol}
|
||||||
|
\endonecolentry
|
||||||
|
} % new environment for two column entries
|
||||||
|
|
||||||
|
\newenvironment{threecolentry}[3][]{
|
||||||
|
\onecolentry
|
||||||
|
\def\thirdColumn{#3}
|
||||||
|
\setcolumnwidth{1cm, \fill, 4.2cm}
|
||||||
|
\begin{paracol}{3}
|
||||||
|
\raggedright #2 \switchcolumn
|
||||||
|
}{
|
||||||
|
\switchcolumn \raggedleft \thirdColumn
|
||||||
|
\end{paracol}
|
||||||
|
\endonecolentry
|
||||||
|
} % new environment for three column entries
|
||||||
|
|
||||||
\newenvironment{header}{
|
\newenvironment{header}{
|
||||||
\setlength{\topsep}{0pt}\par\kern\topsep\centering\linespread{1.5}
|
\setlength{\topsep}{0pt}\par\kern\topsep\centering\linespread{1.5}
|
||||||
}{
|
}{
|
||||||
\par\kern\topsep
|
\par\kern\topsep
|
||||||
} % new environment for the header
|
} % new environment for the header
|
||||||
|
|
||||||
\newcommand{\placelastupdatedtext}{% \placetextbox{<horizontal pos>}{<vertical pos>}{<stuff>}
|
\newcommand{\placelastupdatedtext}{% \placetextbox{<horizontal pos>}{<vertical pos>}{<stuff>}
|
||||||
\AddToShipoutPictureFG*{% Add <stuff> to current page foreground
|
\AddToShipoutPictureFG*{% Add <stuff> to current page foreground
|
||||||
\put(
|
\put(
|
||||||
\LenToUnit{\paperwidth-<<design.margins.page.right>>+0.05cm},
|
\LenToUnit{\paperwidth-<<design.margins.page.right>>-<<design.margins.entry_area.left_and_right>>+0.05cm},
|
||||||
\LenToUnit{\paperheight-<<design.margins.page.top|divide_length_by(2)>>}
|
\LenToUnit{\paperheight-<<design.margins.page.top|divide_length_by(2)>>}
|
||||||
){\vtop{{\null}\makebox[0pt][c]{
|
){\vtop{{\null}\makebox[0pt][c]{
|
||||||
\small\color{gray}\textit{Last updated in <<today>>}\hspace{\widthof{Last updated in <<today>>}}
|
\small\color{gray}\textit{Last updated in <<today>>}\hspace{\widthof{Last updated in <<today>>}}
|
||||||
|
@ -97,8 +144,4 @@
|
||||||
% save the original href command in a new command:
|
% save the original href command in a new command:
|
||||||
\let\hrefWithoutArrow\href
|
\let\hrefWithoutArrow\href
|
||||||
% new command for external links:
|
% new command for external links:
|
||||||
\renewcommand{\href}[2]{\hrefWithoutArrow{#1}{\mbox{\ifthenelse{\equal{#2}{}}{ }{#2 }\raisebox{.15ex}{\footnotesize \faExternalLink*}}}}
|
\renewcommand{\href}[2]{\hrefWithoutArrow{#1}{\mbox{\ifthenelse{\equal{#2}{}}{ }{#2 }\raisebox{.15ex}{\footnotesize \faExternalLink*}}}}
|
||||||
|
|
||||||
% Ensure that generate pdf is machine readable/ATS parsable
|
|
||||||
\input{glyphtounicode}
|
|
||||||
\pdfgentounicode=1
|
|
|
@ -1,12 +1,20 @@
|
||||||
((* if not is_first_entry *))
|
((* if not is_first_entry *))
|
||||||
\vspace{8pt}
|
\vspace{<<design.margins.entry_area.vertical_between>>}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
|
|
||||||
\textbf{<<entry.title>>} -- <<entry.date_string>>
|
\begin{twocolentry}{
|
||||||
\begin{highlights}
|
<<entry.date_string>>
|
||||||
\item <<entry.authors|map("make_it_nolinebreak")|join(", ")>>
|
}
|
||||||
((*- if entry.doi or entry.journal *)) \item ((* endif -*))
|
\textbf{<<entry.title>>}
|
||||||
((*- if entry.doi -*))
|
|
||||||
|
\vspace{<<design.margins.highlights_area.vertical_between_bullet_points>>}
|
||||||
|
|
||||||
|
<<entry.authors|map("make_it_nolinebreak")|join(", ")>>
|
||||||
|
((* if entry.doi or entry.journal *))
|
||||||
|
\vspace{<<design.margins.highlights_area.vertical_between_bullet_points>>}
|
||||||
|
|
||||||
|
((* endif *))
|
||||||
|
((* if entry.doi -*))
|
||||||
\href{<<entry.doi_url>>}{<<entry.doi>>}
|
\href{<<entry.doi_url>>}{<<entry.doi>>}
|
||||||
((*- endif -*))
|
((*- endif -*))
|
||||||
((*- if entry.doi and entry.journal *)) (((* endif -*))
|
((*- if entry.doi and entry.journal *)) (((* endif -*))
|
||||||
|
@ -14,4 +22,5 @@
|
||||||
<<entry.journal>>
|
<<entry.journal>>
|
||||||
((*- endif -*))
|
((*- endif -*))
|
||||||
((*- if entry.doi and entry.journal *)))((* endif -*))
|
((*- if entry.doi and entry.journal *)))((* endif -*))
|
||||||
\end{highlights}
|
|
||||||
|
\end{twocolentry}
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
((* if not is_first_entry *))
|
((* if not is_first_entry *))
|
||||||
\vspace{8pt}
|
\vspace{<<design.margins.entry_area.vertical_between>>}
|
||||||
((* endif *))
|
((* endif *))
|
||||||
|
|
||||||
<<entry>>
|
\begin{onecolentry}
|
||||||
|
This is an example resume to showcase the capabilities of the open-source LaTeX CV generator, \href{https://github.com/sinaatalay/rendercv}{RenderCV}. A substantial part of the content is taken from \href{https://www.careercup.com/resume}{here}, where a \textit{clean and tidy CV} pattern is proposed by \textbf{Gayle L. McDowell}.
|
||||||
|
\end{onecolentry}
|
|
@ -2,20 +2,76 @@ from typing import Literal
|
||||||
from typing import ClassVar as NotUsedInput
|
from typing import ClassVar as NotUsedInput
|
||||||
|
|
||||||
import pydantic
|
import pydantic
|
||||||
|
import pydantic_extra_types.color as pydantic_color
|
||||||
|
|
||||||
from .. import ThemeOptions, LaTeXDimension
|
from .. import (
|
||||||
from .. import Margins as MarginsBase
|
ThemeOptions,
|
||||||
|
EntryAreaMargins,
|
||||||
|
HighlightsAreaMargins,
|
||||||
|
Margins,
|
||||||
|
LaTeXDimension,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class Margins(MarginsBase):
|
class EntryAreaMarginsForEngineeringresumes(EntryAreaMargins):
|
||||||
|
"""This class is a data model for the entry area margins."""
|
||||||
|
|
||||||
|
left_and_right: LaTeXDimension = pydantic.Field(
|
||||||
|
default="0 cm",
|
||||||
|
title="Left Margin",
|
||||||
|
description="The left margin of entry areas. The default value is 0 cm.",
|
||||||
|
)
|
||||||
|
|
||||||
|
vertical_between: LaTeXDimension = pydantic.Field(
|
||||||
|
default="0.1 cm",
|
||||||
|
title="Vertical Margin Between Entry Areas",
|
||||||
|
description=(
|
||||||
|
"The vertical margin between entry areas. The default value is 0.1 cm."
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
date_and_location_width: NotUsedInput
|
||||||
|
|
||||||
|
|
||||||
|
class HighlightsAreaMarginsForEngineeringresumes(HighlightsAreaMargins):
|
||||||
|
"""This class is a data model for the highlights area margins."""
|
||||||
|
|
||||||
|
top: LaTeXDimension = pydantic.Field(
|
||||||
|
default="0.10 cm",
|
||||||
|
title="Top Margin",
|
||||||
|
description="The top margin of highlights areas. The default value is 0.10 cm.",
|
||||||
|
)
|
||||||
|
left: LaTeXDimension = pydantic.Field(
|
||||||
|
default="0 cm",
|
||||||
|
title="Left Margin",
|
||||||
|
description="The left margin of highlights areas. The default value is 0 cm.",
|
||||||
|
)
|
||||||
|
vertical_between_bullet_points: LaTeXDimension = pydantic.Field(
|
||||||
|
default="0.10 cm",
|
||||||
|
title="Vertical Margin Between Bullet Points",
|
||||||
|
description=(
|
||||||
|
"The vertical margin between bullet points. The default value is 0.10 cm."
|
||||||
|
),
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class MarginsForEngineeringresumes(Margins):
|
||||||
"""This class is a data model for the margins."""
|
"""This class is a data model for the margins."""
|
||||||
|
|
||||||
entry_area: NotUsedInput
|
entry_area: EntryAreaMarginsForEngineeringresumes = pydantic.Field(
|
||||||
highlights_area: NotUsedInput
|
default=EntryAreaMarginsForEngineeringresumes(),
|
||||||
|
title="Entry Area Margins",
|
||||||
|
description="Entry area margins.",
|
||||||
|
)
|
||||||
|
highlights_area: HighlightsAreaMarginsForEngineeringresumes = pydantic.Field(
|
||||||
|
default=HighlightsAreaMarginsForEngineeringresumes(),
|
||||||
|
title="Highlights Area Margins",
|
||||||
|
description="Highlights area margins.",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class EngineeringresumesThemeOptions(ThemeOptions):
|
class EngineeringresumesThemeOptions(ThemeOptions):
|
||||||
"""This class is the data model of the theme options for the engineeringresumes
|
"""This class is the data model of the theme options for the `engineeringresumes`
|
||||||
theme.
|
theme.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
@ -28,8 +84,8 @@ class EngineeringresumesThemeOptions(ThemeOptions):
|
||||||
" 25 pt."
|
" 25 pt."
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
margins: Margins = pydantic.Field(
|
margins: MarginsForEngineeringresumes = pydantic.Field(
|
||||||
default=Margins(),
|
default=MarginsForEngineeringresumes(),
|
||||||
title="Margins",
|
title="Margins",
|
||||||
description="Page, section title, entry field, and highlights field margins.",
|
description="Page, section title, entry field, and highlights field margins.",
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue