]> hydra-www.ietfng.org Git - mcv-academic/commitdiff
First version of the academic style for moderncv
authoradin <adinriv@gmail.com>
Wed, 31 Aug 2016 03:09:27 +0000 (00:09 -0300)
committeradin <adinriv@gmail.com>
Wed, 31 Aug 2016 03:09:27 +0000 (00:09 -0300)
22 files changed:
README.md [new file with mode: 0644]
course.bbx [new file with mode: 0755]
course.dbx [new file with mode: 0755]
cv.bbx [new file with mode: 0755]
cvmisc.bbx [new file with mode: 0755]
cvmisc.dbx [new file with mode: 0755]
example/cvdata.bib [new file with mode: 0755]
example/example.tex [new file with mode: 0755]
moderncvbodyxlii.sty [new file with mode: 0755]
moderncvcolordarkgrey.sty [new file with mode: 0755]
moderncvheadxlii.sty [new file with mode: 0755]
moderncviconsfa-academic.sty [new file with mode: 0755]
moderncvstyleacademic.sty [new file with mode: 0755]
position.bbx [new file with mode: 0755]
position.dbx [new file with mode: 0755]
positions.bib [new file with mode: 0755]
project.bbx [new file with mode: 0755]
project.dbx [new file with mode: 0755]
study.bbx [new file with mode: 0755]
study.dbx [new file with mode: 0755]
thesis.bbx [new file with mode: 0755]
thesis.dbx [new file with mode: 0755]

diff --git a/README.md b/README.md
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/course.bbx b/course.bbx
new file mode 100755 (executable)
index 0000000..79463d8
--- /dev/null
@@ -0,0 +1,42 @@
+\ProvidesFile{course.bbx}[biblatex bibliography style for courses in CV entries]
+
+\RequireBibliographyStyle{cv}
+
+
+% Formats
+\DeclareFieldFormat[course]{title}{\mkbibbold{#1}}
+\DeclareFieldFormat[course]{organization}{\mkbibemph {#1}}
+
+% Driver
+
+\DeclareBibliographyDriver{course}{%
+  \usebibmacro{begentry}%
+  \usebibmacro{cvitem}{\usebibmacro{range-date}}{%
+    \printmlfield{title}%
+    \newunit%
+    \usebibmacro{organization}%
+    \newunit%
+    \usebibmacro{description}%
+    \ifmlfieldundef{description}{\addperiod}{}%
+  }%
+  \usebibmacro{cvfinentry}%
+}
+
+
+% Small syntactic sugar
+\NewBibliographyString{courses}
+\DefineBibliographyStrings{english}{%
+  courses = {Courses},
+}
+\DefineBibliographyStrings{spanish}{%
+  courses = {Cursos},
+}
+
+\newcommand{\printcourses}[1][]{%
+  % Temporaly set the names
+  \letcs\refname{\abx@str @courses}
+  \letcs\bibname{\abx@str @courses}
+  \printbibliography[env=nobibenv, type=course, #1]
+  \letcs\refname{\abx@str @references}
+  \letcs\bibname{\abx@str @bibliography}
+}
\ No newline at end of file
diff --git a/course.dbx b/course.dbx
new file mode 100755 (executable)
index 0000000..4d28684
--- /dev/null
@@ -0,0 +1,44 @@
+\ProvidesFile{course.dbx}
+
+% Position data model
+\DeclareDatamodelEntrytypes{course}
+
+\DeclareDatamodelFields[type=field, datatype=literal]{
+  organization,%
+  title,%
+  description,%
+  %
+  organization-es,%
+  title-es,%
+  description-es,%
+  %
+  organization-en,%
+  title-en,%
+  description-en%
+}
+
+\DeclareDatamodelFields[type=field, datatype=datepart]{
+  year,%
+  endyear,%
+  month,%
+  endmonth%
+}
+
+\DeclareDatamodelFields[type=field,datatype=date]{
+  date%
+}
+
+\DeclareDatamodelEntryfields[course]{%
+  date,%
+  organization,%
+  title,%
+  description,%
+  %
+  organization-es,%
+  title-es,%
+  description-es,%
+  %
+  organization-en,%
+  title-en,%
+  description-en%
+}
diff --git a/cv.bbx b/cv.bbx
new file mode 100755 (executable)
index 0000000..14993f4
--- /dev/null
+++ b/cv.bbx
@@ -0,0 +1,177 @@
+\ProvidesFile{cv.bbx}[biblatex bibliography style for CV entries]
+
+\ifdef{\biblatexmultipledm@bibstyle}
+{\RequireBibliographyStyle{\biblatexmultipledm@bibstyle}}
+{\RequireBibliographyStyle{numeric-comp}}
+
+% Create short names for languages
+\RequirePackage{pgfkeys}
+
+
+\pgfkeys{
+  /shortlan/.is family, /shortlan,
+  .unknown/.code = {
+    \expandafter\edef\csname @cv@short@#1\endcsname{\pgfkeyscurrentname}
+%    \expandafter\edef\expandafter\csname @cv@long@\pgfkeyscurrentname\endcsname{#1}
+  }
+}
+% handler to create the keys
+\def\babelshortnames#1{\pgfkeys{/shortlan, #1}}
+% directly obtain the short name
+\def\shortlanguagename{\csname @cv@short@\languagename\endcsname}
+%\def\longlanguagename[1]{\csname @cv@long@#1\endcsname}
+
+% declare default languages
+\babelshortnames{en=english, es=spanish}
+
+% Bibliography strings
+\NewBibliographyString{
+  duration,years,year,
+  pi,ai,professor,researcher,
+  assisprofessor, assocprofessor,
+  present,presentabbr}
+
+\DefineBibliographyStrings{english}{%
+  duration = {time frame},
+  years = {years},
+  year = {year},
+  pi = {Principal Investigator},
+  ai = {Alternating Investigator},
+  professor = {Professor},
+  assisprofessor = {Assistant Professor},
+  assocprofessor = {Associate Professor},
+  researcher = {Researcher},
+  %
+  present = {present},
+  presentabbr = {pres\adddot},
+}
+\DefineBibliographyStrings{spanish}{%
+  duration = {duraci\'on},
+  years = {a\~nos},
+  year = {a\~no},
+  pi = {Investigador Principal},
+  ai = {Investigador Alterno},
+  professor = {Profesor},
+  assisprofessor = {Profesor Asistente},
+  assocprofessor = {Profesor Asociado},
+  researcher = {Investigador},
+  %
+  present = {presente},
+  presentabbr = {pres\adddot},
+}
+
+% Extra definitions for languages
+\newcommand*{\datesep}{~}
+% taken from biblatex/lbx/<anylanguage>.lbx
+\protected\def\mkbibcvdateshort#1#2#3{%
+  \iffieldundef{#3}
+  {}
+  {\mkdatezeros{\thefield{#3}}%
+    \iffieldundef{#2}{}{\datesep}}%
+  \iffieldundef{#2}
+  {}
+  {\mkdatezeros{\thefield{#2}}%
+    \iffieldundef{#1}{}{\datesep}}%
+  \iffieldbibstring{#1}{\bibstring{\thefield{#1}}}{\mkdatezeros{\thefield{#1}}}}%
+
+\DefineBibliographyExtras{english}{%
+%  \renewcommand*{\datesep}{\space}%
+}
+\DefineBibliographyExtras{spanish}{%
+  \renewcommand*{\bibrangedash}{--}
+  \renewcommand*{\bibdatedash}{--}
+%  \renewcommand*{\datesep}{\space}
+}
+
+% Multi language macros
+\newbibmacro*{langfield}[1]{%
+\expandafter\iffieldundef\expandafter{#1-\shortlanguagename}{\printfield{#1}}{\expandafter\printfield\expandafter{#1-\shortlanguagename}}%
+}
+
+\newcommand{\mlfield}[1]{%
+\expandafter\iffieldundef\expandafter{#1-\shortlanguagename}{#1}{#1-\shortlanguagename}%
+}
+
+\newcommand{\ifmlfieldundef}[3]{%
+\iffieldundef{\mlfield{#1}}{#2}{#3}%
+}
+
+\newcommand{\themlfield}[1]{\thefield{\mlfield{#1}}}
+
+\newcommand{\printmlfield}[1]{\printtext[#1]{\themlfield{#1}}}
+
+\DeclareFieldFormat{details}{\ifdetails#1\fi}
+
+% CV format macros
+\newbibmacro{cvitem}[3][0.25em]{\cvitem{#2}{#3}\par\addvspace{#1}}
+
+% make finentry to do nothing
+\newbibmacro*{cvfinentry}{}
+
+\DeclareFieldFormat{parens}{\mkbibparens{#1}}
+
+
+% New environment withouth the list indent
+\defbibenvironment{nobibenv}{%
+  \list{}{%
+    \setlength{\leftmargin}{\bibhang}%
+    \setlength{\itemindent}{-\leftmargin+10pt}%
+    \setlength{\itemsep}{0pt}%
+    \setlength{\parsep}{0pt}%
+  }%
+}%
+{\endlist}
+{\item}
+
+
+% Common formats
+\newbibmacro*{range-date}{%
+  \iffieldundef{year}
+  {}
+  {\printtext{%
+    % If the item is in the same year, 
+    \iffieldsequal{year}{endyear}%
+      % compress
+      {\mkbibcvdateshort{}{month}{}}%
+      % else, print the date
+      {\mkbibcvdateshort{year}{month}{}}%
+    \iffieldundef{endyear}%
+      {}%
+      {% check if we have a single year
+        \ifthenelse{ \(
+           \iffieldsequal{year}{endyear} \and
+           \iffieldundef{month}
+          \) }%
+          {}%
+          {\bibdatedash}%
+        % if a range is given but blank, 
+        \iffieldequalstr{endyear}{}%
+          % default to "present"
+          {\ifdetails% print long version (we may have room, unless there is no description)
+              \ifmlfieldundef{description}{\bibstring{presentabbr}}{\bibstring{present}}%
+            \else% print short version
+              \bibstring{presentabbr}%
+            \fi%
+          }%
+          % else, print a range
+          {\mkbibcvdateshort{endyear}{endmonth}{}}%
+      }%
+    }%
+  }%
+}
+
+
+\newbibmacro*{organization}{\printmlfield{organization}}
+
+\newbibmacro*{country}{\printmlfield{country}}
+
+\newbibmacro{description}{%
+  \printtext[details]{%
+    \ifmlfieldundef{description}%
+    {\clearfield{\mlfield{description}}}%
+    {%
+      \ifblank{\thefield{description}}{}{\newline{}\begin{minipage}[t]{\linewidth}\printmlfield{description}\end{minipage}}%
+    }%
+  }%
+}
+
diff --git a/cvmisc.bbx b/cvmisc.bbx
new file mode 100755 (executable)
index 0000000..88a1335
--- /dev/null
@@ -0,0 +1,38 @@
+\ProvidesFile{cvmisc.bbx}[biblatex bibliography style for cvmiscs in CV entries]
+
+\RequireBibliographyStyle{cv}
+
+
+% Formats
+\DeclareFieldFormat[cvmisc]{title}{#1}
+
+% Driver
+
+\DeclareBibliographyDriver{cvmisc}{%
+  \usebibmacro{begentry}%
+  \usebibmacro{cvitem}{\usebibmacro{range-date}}{%
+    \printmlfield{title}%
+    \newunit%
+    \usebibmacro{description}%
+    \ifmlfieldundef{description}{\addperiod}{}%
+  }%
+  \usebibmacro{cvfinentry}%
+}
+
+% Small syntactic sugar
+\NewBibliographyString{cvmiscs}
+\DefineBibliographyStrings{english}{%
+  cvmiscs = {Miscelaneous},
+}
+\DefineBibliographyStrings{spanish}{%
+  cvmiscs = {Miscelanea},
+}
+
+\newcommand{\printcvmiscs}[1][]{%
+  % Temporaly set the names
+  \letcs\refname{\abx@str @cvmiscs}
+  \letcs\bibname{\abx@str @cvmiscs}
+  \printbibliography[env=nobibenv, type=cvmisc, #1]
+  \letcs\refname{\abx@str @references}
+  \letcs\bibname{\abx@str @bibliography}
+}
\ No newline at end of file
diff --git a/cvmisc.dbx b/cvmisc.dbx
new file mode 100755 (executable)
index 0000000..221ddba
--- /dev/null
@@ -0,0 +1,38 @@
+\ProvidesFile{cvmisc.dbx}
+
+% Position data model
+\DeclareDatamodelEntrytypes{cvmisc}
+
+\DeclareDatamodelFields[type=field, datatype=literal]{
+  title,%
+  description,%
+  %
+  title-es,%
+  description-es,%
+  %
+  title-en,%
+  description-en%
+}
+
+\DeclareDatamodelFields[type=field, datatype=datepart]{
+  year,%
+  endyear,%
+  month,%
+  endmonth%
+}
+
+\DeclareDatamodelFields[type=field,datatype=date]{
+  date%
+}
+
+\DeclareDatamodelEntryfields[cvmisc]{%
+  date,%
+  title,%
+  description,%
+  %
+  title-es,%
+  description-es,%
+  %
+  title-en,%
+  description-en%
+}
diff --git a/example/cvdata.bib b/example/cvdata.bib
new file mode 100755 (executable)
index 0000000..82ab407
--- /dev/null
@@ -0,0 +1,107 @@
+
+%  Studies
+
+@Study{phd,
+  date={2000/2010},
+  title-en = {Ph.D.  in  Foo},
+  title-es = {Doctorado  en  Foo},
+  organization-en={Univeristy  of  Bar},
+  organization-es={Universidad  de  Bar},
+  country = {Fakeland},
+  description-es = {Hice  descubrimientos  novedosos  sobre  Bar.},
+  description-en = {Did  novel  discoveries  about  Bar.},
+  keywords = {degrees}
+}
+
+@Study{tech-a,
+  date={1990/1995},
+  title-en = {Deep  studies  on  A+},
+  title-es = {Estudios  profundos  de  A+},
+  organization={Kx  Systems},
+  country = {Canada},
+  description-es = {Aprendí  A+  estudiando  con  Arthur  Whitney.},
+  description-en = {Learned  A+  by  studing  with  Arthur  Whitney.},
+  keywords = {tech}
+}
+
+%  Positions
+
+@Position{res2010,
+  date={2010/},
+  title = {researcher},
+  organization-en={Univeristy  of  Bar},
+  organization-es={Universidad  de  Bar},
+  country = {Fakeland},
+  Description-es = {Apoyaba  como  investigador  en  experimentos  relacionados  con  dilataci\'on  y  contracci\'on  espacio-temporal.},
+  Description-en = {I  work  as  researcher  in  experiments  related  to  spatio-temporal  dilations  and  contractions.}
+}
+
+@Position{res1900,
+  date={1900/1920},
+  title = {researcher},
+  organization-en={Univeristy  of  Bar},
+  organization-es={Universidad  de  Bar},
+  country = {Fakeland},
+  Description-es = {Apoyaba  como  investigador  en  experimentos  relacionados  con  dilataci\'on  y  contracci\'on  espacio-temporal.},
+  Description-en = {I  worked  as  researcher  in  experiments  related  to  spatio-temporal  dilations  and  contractions.}
+}
+
+%  Courses  taught
+
+@Course{qf101,
+  date={2010/},
+  title-es = {F\'isica  Cu\'antica},
+  title-en = {Quantum  Physics},
+  organization-en={Univeristy  of  Bar},
+  organization-es={Universidad  de  Bar},
+  Description-en = {Taught  physics  101.},
+  Description-es = {Ense\~n\'e  a  los  principios  b\'asicos  de  la  f\'isica.}
+}
+
+@Thesis{doe2010,
+  author = {John  Doe},
+  date={2010},
+  title-en = {On  time  traveling  and  paradoxes},
+  title-es = {Sobre  viajes  en  el  tiempo  y  paradojas},
+  organization-en={Univeristy  of  Bar},
+  organization-es={Universidad  de  Bar},  level = {doctor},
+  note = {Co  guided  with  myself.}
+}
+
+%  Projects
+
+@Project{g2050,
+  title = {Spatio-temporal  dilations  and  contractions},
+  author = {John  Doe},
+  Month = oct,
+  rol = {pi},
+  funding = {TT  Foundation},
+  Year = {2050}
+}
+
+@Project{g2015,
+  title = {Foundations  for  spatio-temporal  dilations  and  contractions},
+  author = {John  Doe},
+  Month = oct,
+  funding = {University  of  Bar},
+  Year = {2015}
+}
+
+%  Articles
+
+@Article{doe2005,
+  title = {Can we time travel?},
+  Author = {Doe, J.},
+  Journal = {Universal Journal of Bar},
+  Year = {2005},
+  Month = feb
+}
+
+% Memberships
+
+@cvmisc{mtt,
+  title-en={TT Member},
+  title-es={Miembro TT},
+  date={1920/},
+  keywords = {membership}
+}
diff --git a/example/example.tex b/example/example.tex
new file mode 100755 (executable)
index 0000000..c5e99f1
--- /dev/null
@@ -0,0 +1,108 @@
+% !BIB program = biber
+\documentclass[12pt,a4paper]{moderncv}   % possible options include font size ('10pt', '11pt' and '12pt'), paper size ('a4paper', 'letterpaper', 'a5paper', 'legalpaper', 'executivepaper' and 'landscape') and font family ('sans' and 'roman')
+
+\usepackage[utf8]{inputenc}
+\usepackage[english, spanish.lcroman.tabla.noquoting.noshorthands]{babel}
+% \usepackage[spanish.lcroman.tabla.noquoting.noshorthands]{babel}
+\usepackage[spanish=mexican]{csquotes}
+
+% moderncv themes
+\moderncvstyle{academic}                        % style options are 'casual' (default), 'classic', 'oldstyle' and 'banking'
+\moderncvcolor{grey}                          % color options 'blue' (default), 'orange', 'green', 'red', 'purple', 'grey' and 'black'
+%\renewcommand{\familydefault}{\sfdefault}    % to set the default font; use '\sfdefault' for the default sans serif font, '\rmdefault' for the default roman one, or any tex font name
+%\nopagenumbers{}                             % uncomment to suppress automatic page numbering for CVs longer than one page
+
+
+% For paper portrait
+\usepackage[misc]{ifsym}
+
+\newgeometry{margin=2.5cm}
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% personal data
+\firstname{John}
+\familyname{Doe}
+\title{Curriculum Vit\ae} % optional, remove / comment the line if not wanted
+
+\address{Fake Street 42}{}{Fakeland, FKL}
+
+\email{johndoe@fake.com}
+\mobile{(+1) 234 5678 } % optional, remove / comment the line if not wanted
+%\phone{+2~(345)~678~901} % optional, remove / comment the line if not wanted
+%\fax{+3~(456)~789~012} % optional, remove / comment the line if not wanted
+
+\homepage{johndoe.com} % optional, remove / comment the line if not wanted
+\social[scholar]{ABC123}
+%\photo[64pt][0.4pt]{picture} % optional, remove / comment the line if not wanted; '64pt' is the height the picture must be resized to, 0.4pt is the thickness of the frame around it (put it to 0pt for no frame) and 'picture' is the name of the picture file
+%\quote{Some quote} % optional, remove / comment the line if not wanted
+
+
+\addbibresource{cvdata.bib}
+
+% If you want to make your name bold in the publications or other entries where you are an author
+% Lastname Name Abbrev.
+\boldname{Doe}{John}{J.}
+
+% We can set the details (by default is false)
+\detailstrue
+
+
+%----------------------------------------------------------------------------------
+%            headers
+%----------------------------------------------------------------------------------
+% We can define the headers in multiple languages and then using the macro
+% These definitions can be inside the body too
+\newmlcommand[english=Education, spanish=Educación]{\education}
+\newmlcommand[english=Degrees, spanish={Grados Académicos}]{\degrees}
+\newmlcommand[english=Technical, spanish={Estudios Técnicos}]{\technical}
+\newmlcommand[english={Employment History}, spanish={Historial de Empleo}]{\employment}
+\newmlcommand[english={Academic}, spanish={Académia}]{\academic}
+\newmlcommand[english={Teaching Experience}, spanish={Experiencia Docente}]{\teaching}
+\newmlcommand[english={Courses Taught}, spanish={Cursos Impartidos}]{\courses}
+\newmlcommand[english={Guided Theses}, spanish={Tésis Guiadas}]{\theses}
+\newmlcommand[english={Funding}, spanish={Proyectos de Investigación}]{\funding}
+\newmlcommand[english={Grants}, spanish={Fondos de Investigación}]{\grants}
+\newmlcommand[english={Publications}, spanish={Publicaciones}]{\publications}
+\newmlcommand[english={Journals}, spanish={Revistas}]{\journals}
+\newmlcommand[english={Other Appointments}, spanish={Otros Cargos}]{\appointments}
+\newmlcommand[english={Memberships}, spanish={Membresias}]{\memberships}
+
+%----------------------------------------------------------------------------------
+%            content
+%----------------------------------------------------------------------------------
+\begin{document}
+%\selectlanguage{spanish}
+\selectlanguage{english}
+
+% Print the header
+\makecvtitle
+
+\section{\education}
+\printstudies[heading=subbibliography, title={\degrees}, keyword=degrees]
+
+\printstudies[heading=subbibliography, title={\technical}, keyword=tech]
+
+\section{\employment}
+\printpositions[heading=subbibliography, title={\academic}]
+
+\section{\teaching}
+\printcourses[heading=subbibliography, title={\courses}]
+
+\printtheses[heading=subbibliography, title={\theses}]
+
+\section{\funding}
+% We can hook \newrefcontext to pass options to the individual print.
+\newrefcontext[labelprefix=A]
+\printprojects[heading=subbibliography, title={\grants}, resetnumbers=true]
+% However note that we need to reset the context
+% Test by commenting the next macro and see what happens to the Publications entries
+\newrefcontext[]
+
+\section{\publications}
+% Notice that you can apply other parameters, like resetnumbers to the printblibliography and other statements
+\printbibliography[type=article, heading=subbibliography,title={\journals}, resetnumbers=true]
+
+\section{\appointments}
+\printcvmiscs[heading=subbibliography, title={\memberships}, keyword=membership]
+
+\end{document}
diff --git a/moderncvbodyxlii.sty b/moderncvbodyxlii.sty
new file mode 100755 (executable)
index 0000000..3467f98
--- /dev/null
@@ -0,0 +1,50 @@
+%% start of file `moderncvbodyxlii.sty'.
+
+%-------------------------------------------------------------------------------
+%                identification
+%-------------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{moderncvbodyxlii}[2016/08/28 v2.0.0 modern curriculum vitae and letter body variant: 42]
+
+
+%-------------------------------------------------------------------------------
+%                required packages
+%-------------------------------------------------------------------------------
+\moderncvbody{1}
+
+
+%-------------------------------------------------------------------------------
+%                overall body definition
+%-------------------------------------------------------------------------------
+% fonts
+% fix style for sections
+\renewcommand*{\sectionfont}{\Large\mdseries\upshape\bfseries}
+\renewcommand*{\subsectionfont}{\large\mdseries\upshape\bfseries}
+
+
+%-------------------------------------------------------------------------------
+%                resume body definition
+%-------------------------------------------------------------------------------
+% lengths
+%   used by \cvitem (and all children command)
+% if you want to change the width of the column with the dates
+\setlength{\hintscolumnwidth}{0.18\textwidth} 
+
+% for the 'classic' style, if you want to force the width allocated to your name and avoid line breaks. be careful though, the length is normally calculated to avoid any overlap with your personal info; use this at your own typographical risks...
+%\setlength{\makecvtitlenamewidth}{10cm}     
+
+
+%-------------------------------------------------------------------------------
+%                letter style definition
+%-------------------------------------------------------------------------------
+% remove identation to the closure of the letter
+\patchcmd{\makeletterclosing}%
+{\vfill}%
+{\vfill\noindent}%
+{}{}
+
+
+\endinput
+
+
+%% end of file `moderncvbodyxlii.sty'.
diff --git a/moderncvcolordarkgrey.sty b/moderncvcolordarkgrey.sty
new file mode 100755 (executable)
index 0000000..0477d10
--- /dev/null
@@ -0,0 +1,23 @@
+%% start of file `moderncvcolordarkgrey.sty'.
+%% Adin Ramirez
+%
+
+%-------------------------------------------------------------------------------
+%                identification
+%-------------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{moderncvcolordarkgrey}[2016/08/28 v1.0.0 modern curriculum vitae and letter color scheme: darkgrey]
+
+
+%-------------------------------------------------------------------------------
+%                color scheme definition
+%-------------------------------------------------------------------------------
+\definecolor{color0}{rgb}{0,0,0}% black
+\colorlet{color1}{black!75}% darker grey (adornos y demás)
+\colorlet{color2}{black!75}% darker grey
+
+
+\endinput
+
+
+%% end of file `moderncvcolordarkgrey.sty'.
diff --git a/moderncvheadxlii.sty b/moderncvheadxlii.sty
new file mode 100755 (executable)
index 0000000..a20d6da
--- /dev/null
@@ -0,0 +1,49 @@
+%% start of file `moderncvheadxlii.sty'.
+
+%-------------------------------------------------------------------------------
+%                identification
+%-------------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{moderncvheadxlii}[2016/08/28 v1.0.0 modern curriculum vitae and letter header variant: 42]
+
+% head section alignment options: "left" (default) or "right"
+\@initializecommand{\moderncvstyleheadoptions}{}
+\DeclareOption{left} {\edef\moderncvstyleheadoptions{\moderncvstyleheadoptions,left}}
+\DeclareOption{right}{\edef\moderncvstyleheadoptions{\moderncvstyleheadoptions,right}}
+
+\DeclareOption*{}% avoid choking on unknown options
+\ExecuteOptions{left}
+\ProcessOptions*\relax% \ProcessOptions* processes the options in the order provided (i.e., with the later ones possibly overriding the former ones), while \ProcessOptions processes them in the order of the package
+
+
+%-------------------------------------------------------------------------------
+%                required packages
+%-------------------------------------------------------------------------------
+\moderncvhead[\moderncvstyleheadoptions]{1}
+%-------------------------------------------------------------------------------
+%                resume head definition
+%-------------------------------------------------------------------------------
+% fix space between names
+\newcommand*{\mynamestyle}[2]{{\namefont\textcolor{color0!70}{#1}\\[5pt]\textcolor{color0}{#2}}}
+\patchcmd{\makecvhead}%
+{\namestyle{\@firstname\ \@lastname}}%
+{\mynamestyle{\@firstname}{\@lastname}}%
+{}{}
+
+
+%-------------------------------------------------------------------------------
+%                letter head definition
+%-------------------------------------------------------------------------------
+% justify letter
+\patchcmd{\makelettertitle}% <cmd>
+{\raggedright \@opening}% <search>
+{\@opening}% <replace>
+{}{}% <success><failure>
+
+
+
+
+\endinput
+
+
+%% end of file `moderncvheadxlii.sty'.
diff --git a/moderncviconsfa-academic.sty b/moderncviconsfa-academic.sty
new file mode 100755 (executable)
index 0000000..ab8cc0f
--- /dev/null
@@ -0,0 +1,44 @@
+%% start of file `moderncviconsfa-academic.sty'.
+%% Copyright 2013-2015 Xavier Danaux (xdanaux@gmail.com).
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License version 1.3c,
+% available at http://www.latex-project.org/lppl/.
+
+
+%-------------------------------------------------------------------------------
+%                identification
+%-------------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{moderncviconsfa-academic}[2015/07/28 v2.0.0 modern curriculum vitae and letter icons: fa-academic]
+
+%-------------------------------------------------------------------------------
+%                required packages
+%-------------------------------------------------------------------------------
+% Font Awesome font
+\RequirePackage{fontawesome}
+
+
+%-------------------------------------------------------------------------------
+%                symbols definition
+%-------------------------------------------------------------------------------
+\renewcommand*{\labelitemi}          {\strut\textcolor{color1}{\tiny\faCircleO}}
+%\renewcommand*{\labelitemii}         {\strut\textcolor{color1}{\large\bfseries-}}            % no change from default in moderncv.cls
+%\renewcommand*{\labelitemiii}        {\strut\textcolor{color1}{\rmfamily\textperiodcentered}}% no change from default in moderncv.cls
+%\renewcommand*{\labelitemiv}         {\labelitemiii}                                         % no change from default in moderncv.cls
+
+\renewcommand*{\addresssymbol}       {}
+\renewcommand*{\mobilephonesymbol}   {{\Large\faMobile}~}
+\renewcommand*{\fixedphonesymbol}    {\faPhone~}
+\renewcommand*{\faxphonesymbol}      {{\small\faFax}~}                % alternative: \faPrint
+\renewcommand*{\emailsymbol}         {{\small\faEnvelopeO}~}          % alternative: \faInbox
+\renewcommand*{\homepagesymbol}      {{\small\faGlobe}~}              % alternative: \faHome
+\renewcommand*{\linkedinsocialsymbol}{{\small\faLinkedin}~}           % alternative: \faLinkedinSquare
+\renewcommand*{\twittersocialsymbol} {{\small\faTwitter}~}            % alternative: \faTwitterSquare
+\renewcommand*{\githubsocialsymbol}  {{\small\faGithub}~}             % alternative: \faGithubSquare, \faGithubSquare
+\newcommand*{\scholarsocialsymbol}   {{\small\faGraduationCap}~}      
+
+\endinput
+
+
+%% end of file `moderncviconsfa-academic.sty'.
diff --git a/moderncvstyleacademic.sty b/moderncvstyleacademic.sty
new file mode 100755 (executable)
index 0000000..692dfe3
--- /dev/null
@@ -0,0 +1,278 @@
+%% start of file `moderncvstyleacademic.sty'.
+
+
+%-------------------------------------------------------------------------------
+%                identification
+%-------------------------------------------------------------------------------
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{moderncvstyleacademic}[2016/08/28 v1.0.0 modern curriculum vitae and letter style scheme: academic]
+
+% head section alignment options: "left" (default) or "right"
+\@initializecommand{\moderncvstyleheadoptions}{}
+\DeclareOption{left} {\edef\moderncvstyleheadoptions{\moderncvstyleheadoptions,left}}
+\DeclareOption{right}{\edef\moderncvstyleheadoptions{\moderncvstyleheadoptions,right}}
+
+\DeclareOption*{}% avoid choking on unknown options
+\ExecuteOptions{left}
+\ProcessOptions*\relax% \ProcessOptions* processes the options in the order provided (i.e., with the later ones possibly overriding the former ones), while \ProcessOptions processes them in the order of the package
+
+%-------------------------------------------------------------------------------
+%                fonts & icons
+%-------------------------------------------------------------------------------
+% Latin Modern fonts
+%\ifxetexorluatex
+%  \setmainfont{Latin Modern Roman}
+%  \setsansfont{Latin Modern Sans}
+%  \setmathfont{Latin Modern Math}
+%\else
+  \IfFileExists{lmodern.sty}%
+    {\RequirePackage{lmodern}}%
+    {}
+%\fi
+
+% symbols
+\moderncvicons{fa-academic}
+
+
+%-------------------------------------------------------------------------------
+%                header, body & footer
+%-------------------------------------------------------------------------------
+\moderncvhead[\moderncvstyleheadoptions]{42}
+\moderncvbody{42}
+
+
+%-------------------------------------------------------------------------------
+% Definitions
+%-------------------------------------------------------------------------------
+
+%switches for information
+\newif\ifdetails\detailsfalse
+\RequirePackage{etoolbox}
+\RequirePackage{enumitem}
+% adjust the page margins
+\RequirePackage[margin=2cm]{geometry}
+\RequirePackage{url}
+
+%-------------------------------------------------------------------------------
+% Patch the rest of moderncv
+%-------------------------------------------------------------------------------
+
+% fix identation for letters
+\setlength{\parindent}{10\p@}
+
+
+% patch \cventry
+% http://tex.stackexchange.com/a/247329/7561
+\renewcommand*{\cventry}[7][.25em]{%
+  \cvitem[#1]{#2}{%
+    {\bfseries#3}%
+    \ifthenelse{\equal{#4}{}}{}{, {\slshape#4}}%
+    \ifthenelse{\equal{#5}{}}{}{, #5}%
+    \ifthenelse{\equal{#6}{}}{}{, #6}%
+    .\strut%
+    \ifdetails%
+    \ifblank{#7}{}{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}%
+    \fi%
+  }
+}
+
+
+% use for special titles
+\newcommand{\makespecialtitle}[1]{\title{#1}\makecvtitle}
+% use for emails in the body, 
+\newcommand{\mail}[1]{\ttfamily\href{mailto:#1}{#1}}
+
+\RenewDocumentCommand{\social}{O{}O{}m}{%
+  \ifthenelse{\equal{#2}{}}%
+  {%
+    \ifthenelse{\equal{#1}{linkedin}}{\collectionadd[linkedin]{socials}{\protect\httplink[#3]{www.linkedin.com/in/#3}}}{}%
+    \ifthenelse{\equal{#1}{twitter}} {\collectionadd[twitter]{socials} {\protect\httplink[#3]{www.twitter.com/#3}}}    {}%
+    \ifthenelse{\equal{#1}{github}}  {\collectionadd[github]{socials}  {\protect\httplink[#3]{www.github.com/#3}}}     {}%
+    \ifthenelse{\equal{#1}{scholar}} {\collectionadd[scholar]{socials} {\protect\httplink[Google Scholar]{http://scholar.google.com/citations?user=#3}}} {}%
+  }
+  {\collectionadd[#1]{socials}{\protect\httplink[#3]{#2}}}}
+
+
+%-------------------------------------------------------------------------------
+% Multilanguage support
+%-------------------------------------------------------------------------------
+\RequirePackage{pgfkeys}
+% http://tex.stackexchange.com/a/42791/7561
+\newcommand{\newlcommand}[1]{%
+  \newcommand#1{%
+       \@ifundefined{\string#1\languagename}
+       {``No def of \texttt{\string#1} for \languagename''}
+       {\@nameuse{\string#1\languagename}}%
+  }%
+}
+\newcommand{\addtolanguagecommand}[3]{%
+  \@namedef{\string#1#2}{#3}}
+
+\pgfkeys{
+  /mlcommands/.is family, /mlcommands,
+  command/.code={\def\langcmd{#1}},
+  .unknown/.code = {%    
+    \expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\addtolanguagecommand\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter\expandafter
+    {\expandafter\expandafter\expandafter\langcmd\expandafter\expandafter\expandafter}%
+    \expandafter\expandafter\expandafter{\expandafter\pgfkeyscurrentname\expandafter}\expandafter
+    {#1}
+  }%
+}
+
+\newcommand{\newmlcommand}[2][]{%
+  \newlcommand#2%
+  \pgfkeys{/mlcommands, command=#2, #1}%
+}
+
+% How to use
+%\newlanguagecommand{\uno}
+%\addtolanguagecommand{\uno}{english}{one}
+%\addtolanguagecommand{\uno}{french}{une}
+% or
+% \newmlcommand[english=one, french=une]{\uno}
+
+% Create long names for languages, this reuses the code from cv.bbx
+% fixme: merge both definitions (here and cv.bbx)
+\pgfkeys{
+  /shortlan/.is family, /shortlan,
+  .unknown/.code = {
+%    \expandafter\edef\csname @cv@short@#1\endcsname{\pgfkeyscurrentname}
+    \expandafter\expandafter\expandafter\edef\expandafter\csname @cv@long@\pgfkeyscurrentname\endcsname{#1}
+  }
+}
+% handler to create the keys
+\def\babelshortnames#1{\pgfkeys{/shortlan, #1}}
+% directly obtain the short name
+%\def\shortlanguagename{\csname @cv@short@\languagename\endcsname}
+\newcommand{\longlanguagename}[1]{\csname @cv@long@#1\endcsname}
+
+% declare default languages
+\babelshortnames{en=english, es=spanish}
+
+%-------------------------------------------------------------------------------
+% Academic drivers and sorting to use with this style
+%-------------------------------------------------------------------------------
+
+\RequirePackage[tools={study, position, course, thesis, project, cvmisc}, bibstyle=numeric-comp]{biblatex-multiple-dm}
+% bibliography with mutiple entries
+\RequirePackage[backend=biber, citestyle=numeric-comp, bibstyle=multiple-dm, sorting=ymdtn, maxbibnames=99, defernumbers=true, firstinits=true, sortcites]{biblatex}
+
+% Patch endyears that are not declared
+\DeclareSourcemap{
+  \maps[datatype=bibtex]{
+    \map{
+      \step[fieldsource=year]
+      \step[fieldset=endyear, origfieldval]
+    }
+  }
+}
+
+% Custom sort to include month and endyear
+\DeclareSortingScheme{ymdtn}{
+  \sort{
+    \field{presort}
+  }
+  \sort[final]{
+    \field{sortkey}
+  }
+  \sort[direction=descending]{
+    \field{sortyear}
+    \field{endyear}
+    \literal{9999}
+  }
+  \sort[direction=descending]{
+    \field{sortyear}
+%    \field{endyear}
+    \field{year}
+    \literal{9999}
+  }
+  \sort[direction=descending]{
+    \field[padside=left,padwidth=2,padchar=0]{month}
+    \literal{99}
+  }
+  \sort[direction=descending]{
+    \field[padside=left,padwidth=2,padchar=0]{day}
+    \literal{99}
+  }
+  \sort{
+    \field{sorttitle}
+  }
+  \sort[direction=descending]{
+    \field[padside=left,padwidth=4,padchar=0]{volume}
+    \literal{9999}
+  }
+  \sort{
+    \name{sortname}
+    \name{author}
+    \name{editor}
+    \name{translator}
+    \field{sorttitle}
+    \field{title}
+  }
+}
+
+% patch for bold name in bibliography
+\def\makenamesetup{%
+  \def\bibnamedelima{~}%
+  \def\bibnamedelimb{ }%
+  \def\bibnamedelimc{ }%
+  \def\bibnamedelimd{ }%
+  \def\bibnamedelimi{ }%
+  \def\bibinitperiod{.}%
+  \def\bibinitdelim{~}%
+  \def\bibinithyphendelim{.-}}    
+\newcommand*{\makename}[2]{\begingroup\makenamesetup\xdef#1{#2}\endgroup}
+
+\renewcommand{\mkbibnamegiven}[1]{%
+  \makename{\currname}{#1}%
+  \makename{\findname}{\bld@firstname}%
+  \makename{\findinit}{\bld@firstinit}%
+  \ifboolexpr{ test {\ifdefequal{\currname}{\findname}}%
+    or test {\ifdefequal{\currname}{\findinit}} }%
+  {\mkbibbold{#1}}{#1}%
+}
+
+\renewcommand{\mkbibnamefamily}[1]{%
+  \makename{\currname}{#1}%
+  \makename{\findname}{\bld@lastname}%
+  \ifboolexpr{ test {\ifdefequal{\currname}{\findname}} }%
+  {\mkbibbold{#1}}{#1}%
+}
+
+\newcommand*{\boldname}[3]{%
+  \def\bld@lastname{#1}%
+  \def\bld@firstname{#2}%
+  \def\bld@firstinit{#3}}
+
+\boldname{}{}{}
+
+% We need to tell biblatex to check for all entries
+\nocite{*}
+
+
+% Patch the bibliography
+
+% lets remove the brackets
+\DeclareFieldFormat{labelnumberwidth}{#1.}
+
+% http://tex.stackexchange.com/a/123809/7561
+\defbibenvironment{bibliography}
+{\list
+  {\printtext[labelnumberwidth]{% label format from numeric.bbx
+      \printfield{labelprefix}%
+      \printfield{labelnumber}}}
+  {\setlength{\topsep}{0pt}% layout parameters from moderncvstyleclassic.sty
+    \setlength{\labelwidth}{\hintscolumnwidth}%
+    \setlength{\labelsep}{\separatorcolumnwidth}%
+    \leftmargin\labelwidth%
+    \advance\leftmargin10pt%
+    \advance\leftmargin\labelsep}%
+  \sloppy\clubpenalty4000\widowpenalty4000}
+{\endlist}
+{\item}
+
+
+\endinput
+
+
+%% end of file `moderncvstyleacademic.sty'.
diff --git a/position.bbx b/position.bbx
new file mode 100755 (executable)
index 0000000..7f2475a
--- /dev/null
@@ -0,0 +1,52 @@
+\ProvidesFile{position.bbx}[biblatex bibliography style for positions in CV entries]
+
+\RequireBibliographyStyle{cv}
+
+
+% Formats
+\DeclareFieldFormat[position]{title}{#1}
+\DeclareFieldFormat[position]{bold}{\mkbibbold{#1}}
+\DeclareFieldFormat[position]{organization}{{#1}}
+
+\newbibmacro{postitle}{%
+  \printtext[bold]{%
+  \ifbibxstring{\themlfield{title}}%
+    {\bibxstring{\themlfield{title}}}%
+    {\printmlfield{title}}
+  }%
+}
+
+% Driver
+
+\DeclareBibliographyDriver{position}{%
+  \usebibmacro{begentry}%
+  \usebibmacro{cvitem}{\usebibmacro{range-date}}{%
+    \usebibmacro{postitle}%
+    \newunit%
+    \usebibmacro{organization}%
+    \setunit*{\addcomma\space}%
+    \usebibmacro{country}%
+    \newunit%
+    \usebibmacro{description}%
+    \ifmlfieldundef{description}{\addperiod}{}%
+  }%
+  \usebibmacro{cvfinentry}%
+}
+
+% Small syntactic sugar
+\NewBibliographyString{positions}
+\DefineBibliographyStrings{english}{%
+  positions = {Positions},
+}
+\DefineBibliographyStrings{spanish}{%
+  positions = {Posiciones},
+}
+
+\newcommand{\printpositions}[1][]{%
+  % Temporaly set the names
+  \letcs\refname{\abx@str @positions}
+  \letcs\bibname{\abx@str @positions}
+  \printbibliography[env=nobibenv, type=position, #1]
+  \letcs\refname{\abx@str @references}
+  \letcs\bibname{\abx@str @bibliography}
+}
\ No newline at end of file
diff --git a/position.dbx b/position.dbx
new file mode 100755 (executable)
index 0000000..82c3cec
--- /dev/null
@@ -0,0 +1,51 @@
+\ProvidesFile{position.dbx}
+
+% Position data model
+\DeclareDatamodelEntrytypes{position}
+
+\DeclareDatamodelFields[type=field, datatype=literal]{
+  organization,%
+  title,%
+  country,%
+  description,%
+  %
+  organization-es,%
+  title-es,%
+  country-es,%
+  description-es,%
+  %
+  organization-en,%
+  title-en,%
+  country-en,%
+  description-en%
+}
+
+\DeclareDatamodelFields[type=field, datatype=datepart]{
+  year,%
+  endyear,%
+  month,%
+  endmonth%
+}
+
+
+\DeclareDatamodelFields[type=field,datatype=date]{
+  date%
+}
+
+\DeclareDatamodelEntryfields[position]{%
+  date,%
+  organization,%
+  title,%
+  country,%
+  description,%
+  %
+  organization-es,%
+  title-es,%
+  country-es,%
+  description-es,%
+  %
+  organization-en,%
+  title-en,%
+  country-en,%
+  description-en%
+}
diff --git a/positions.bib b/positions.bib
new file mode 100755 (executable)
index 0000000..0790d3b
--- /dev/null
@@ -0,0 +1,40 @@
+
+
+@Position{khu2009,
+  date={2009/2013},
+  title = {researcher},
+  organization-en={Image Processing Lab, Kyung Hee University},
+  organization-es={Laboratorio de Procesamiento de Imágenes, Kyung Hee University},
+  country = {South Korea},
+  Description-es = {Realicé investigación independiente, y colaboré con otros investigadores y estudiantes en el laboratorio. Simultáneamente, estuve a cargo de los servidores del laboratorio y del desarrollo de soluciones para mejorar la productividad de la investigación de nuestro equipo. Además, yo fui el líder del laboratorio, guié, supervisé, y ayudé a otros a alcanzar sus metas así como las del grupo de investigación.},
+  Description-en = {I did independent research, and collaborated with other researchers and students at the laboratory. Simultaneously, I was in charge of our servers and developed solutions to boost the research productivity of our team. Moreover, I was a leader in the laboratory and I guided, supervised, and helped others to achieve their goals as well as the goals of our research group.}
+}
+
+@Position{udp2013,
+  date ={2013-10/2013-12},
+  Title = {Some new strange pos},
+  Organization = {Universidad Diego Portales},
+  Country = {Chile},
+  Description-es = {Soy profesor asistente e investigador en la Escuela de Informática y Telecomunicaciones. Me dedico a dictar cursos del área de informática, y de mi área de investigación: Visión por Computador y Reconocimiento de Patrones. He dictado los cursos de Programación, Programación Avanzada, Proyectos en TIC's 1, y Reconocimiento de Patrones. Además soy el investigador responsable de un proyecto FONDECYT de Iniciación.},  
+  Description-en = {I'm an assistant professor and researcher at Universidad Diego Portales. I work on pattern recognition, computer vision and image processing topics.},
+}
+
+@Position{khu2010,
+  date={2009/2017},
+  title = {researcher},
+  organization={Image Processing Lab, Kyung Hee University},
+  Description = {Default text in one language only. This will be at least two sentences long. Or not.}
+}
+
+@Position{khu2011,
+  date={2009/},
+  title = {researcher},
+  organization={Image Processing Lab, Kyung Hee University},
+  Description = {Default text in one.}
+}
+
+@Position{khu2015,
+  date={2008/2014},
+  title = {researcher},
+  country={No-org-1landia}
+}
diff --git a/project.bbx b/project.bbx
new file mode 100755 (executable)
index 0000000..9d77f4f
--- /dev/null
@@ -0,0 +1,101 @@
+\ProvidesFile{project.bbx}[biblatex bibliography style for projects in CV entries]
+
+\RequireBibliographyStyle{cv}
+
+\ifdef{\biblatexmultipledm@bibstyle}
+{\RequireBibliographyStyle{\biblatexmultipledm@bibstyle}}
+{\RequireBibliographyStyle{numeric-comp}}
+
+\DeclareFieldFormat[project]{period}{%
+  \mkbibparens{%
+    % convert period into dimension to make float comparisons
+    \newdimen\dummyDim%
+    \dummyDim = #1 pt%
+    \bibstring{duration}\addcolon\addspace #1\addnbspace%
+    \ifdim\dummyDim > 1pt%
+      \bibstring{years}%
+    \else%
+      \bibstring{year}%
+    \fi%
+  }
+}
+
+\DeclareListFormat[project]{number}{%
+  \ifnumequal{\value{listcount}}{1}{%
+    \ifnumgreater{\value{liststop}}{1}%
+    {Nos.}{No.}%
+  }{}
+  \usebibmacro{list:delim}{#1}%
+  #1\isdot
+  \usebibmacro{list:andothers}%
+}
+
+% Bibliography macros
+\newbibmacro{rol}{%
+  \ifmlfieldundef{rol}%
+    {}%
+    {%
+      \printtext[]{%
+        \ifbibxstring{\themlfield{rol}}%
+        {\bibxstring{\themlfield{rol}}}%
+        {\printmlfield{rol}}%
+      }%
+    }%
+}
+
+\newbibmacro*{funding-project}{%
+  \ifmlfieldundef{funding}%
+    {}%
+    {\printmlfield{funding}}%
+  \setunit*{\space}%
+  \iflistundef{number}%
+    {}%
+    {%
+      \printlist[number]{number}%
+    }%
+}
+
+\newbibmacro*{period}{%
+  \iffieldundef{period}%
+    {}%
+    {\printmlfield{period}}%
+}
+
+\newbibmacro*{projdate}{%
+  \mkbibdatelong{year}{month}{}
+}
+
+% New bibliography drivers, using the required order of fields. These
+% are mainly copied from standard.bbx then modified.
+\DeclareBibliographyDriver{project}{%
+  \usebibmacro{bibindex}%
+  \usebibmacro{begentry}%
+  \usebibmacro{rol}%
+  \newunit%
+  \printmlfield{title}%
+  \newunit%
+  \usebibmacro{funding-project}%
+  \setunit*{\addspace}%
+  \usebibmacro{period}%
+  \newunit%
+  \usebibmacro{projdate}%
+  \usebibmacro{finentry}%
+}
+
+% Small syntactic sugar
+\NewBibliographyString{projects}
+\DefineBibliographyStrings{english}{%
+  projects = {Projects},
+}
+\DefineBibliographyStrings{spanish}{%
+  projects = {Proyectos},
+}
+
+\newcommand{\printprojects}[1][]{%
+  % Temporaly set the names
+  \letcs\refname{\abx@str @projects}
+  \letcs\bibname{\abx@str @projects}
+  \printbibliography[type=project, resetnumbers=true, #1]
+  \letcs\refname{\abx@str @references}
+  \letcs\bibname{\abx@str @bibliography}
+}
\ No newline at end of file
diff --git a/project.dbx b/project.dbx
new file mode 100755 (executable)
index 0000000..e507e67
--- /dev/null
@@ -0,0 +1,53 @@
+\ProvidesFile{project.dbx}
+
+% Project data model
+\DeclareDatamodelEntrytypes{project}
+
+\DeclareDatamodelFields[type=field,datatype=literal]{
+  funding,
+  rol,
+  %
+  funding-en,
+  rol-en,
+  %
+  funding-es,%
+  rol-es,%
+  period%
+}
+
+\DeclareDatamodelFields[type=list, datatype=literal]{number}
+
+\DeclareDatamodelFields[type=field, datatype=literal]{
+  title,
+  title-es,
+  title-en%
+}
+
+\DeclareDatamodelFields[type=field, datatype=datepart]{
+  year,%
+  endyear,%
+  month,%
+  endmonth%
+}
+
+\DeclareDatamodelEntryfields[type=field, datatype=date, label=true]{date}
+
+\DeclareDatamodelEntryfields[project]{
+  number,
+  title,
+  funding,
+  rol,
+  %
+  title-en
+  funding-en,
+  rol-en,
+  %
+  title-es,
+  funding-es,
+  rol-es,
+  %
+  number,
+  period,
+  month,
+  year%
+}
\ No newline at end of file
diff --git a/study.bbx b/study.bbx
new file mode 100755 (executable)
index 0000000..96fbd9c
--- /dev/null
+++ b/study.bbx
@@ -0,0 +1,52 @@
+\ProvidesFile{study.bbx}[biblatex bibliography style for studies in CV entries]
+
+\RequireBibliographyStyle{cv}
+
+
+% Formats
+\DeclareFieldFormat[study]{title}{#1}
+\DeclareFieldFormat[study]{bold}{\mkbibbold{#1}}
+\DeclareFieldFormat[study]{organization}{{#1}}
+
+\newbibmacro{stdtitle}{%
+  \printtext[bold]{%
+  \ifbibxstring{\themlfield{title}}%
+    {\bibxstring{\themlfield{title}}}%
+    {\printmlfield{title}}
+  }%
+}
+
+% Driver
+
+\DeclareBibliographyDriver{study}{%
+  \usebibmacro{begentry}%
+  \usebibmacro{cvitem}{\usebibmacro{range-date}}{%
+    \usebibmacro{stdtitle}%
+    \newunit%
+    \usebibmacro{organization}%
+    \setunit*{\addcomma\space}%
+    \usebibmacro{country}%
+    \newunit%
+    \usebibmacro{description}%
+    \ifmlfieldundef{description}{\addperiod}{}%
+  }%
+  \usebibmacro{cvfinentry}%
+}
+
+% Small syntactic sugar
+\NewBibliographyString{studies}
+\DefineBibliographyStrings{english}{%
+  studies = {Education},
+}
+\DefineBibliographyStrings{spanish}{%
+  studies = {Educaci\'on},
+}
+
+\newcommand{\printstudies}[1][]{%
+  % Temporaly set the names
+  \letcs\refname{\abx@str @studies}
+  \letcs\bibname{\abx@str @studies}
+  \printbibliography[env=nobibenv, type=study, #1]
+  \letcs\refname{\abx@str @references}
+  \letcs\bibname{\abx@str @bibliography}
+}
\ No newline at end of file
diff --git a/study.dbx b/study.dbx
new file mode 100755 (executable)
index 0000000..1fa55c3
--- /dev/null
+++ b/study.dbx
@@ -0,0 +1,50 @@
+\ProvidesFile{study.dbx}
+
+% Position data model
+\DeclareDatamodelEntrytypes{study}
+
+\DeclareDatamodelFields[type=field, datatype=literal]{
+  organization,%
+  title,%
+  country,%
+  description,%
+  %
+  organization-es,%
+  title-es,%
+  country-es,%
+  description-es,%
+  %
+  organization-en,%
+  title-en,%
+  country-en,%
+  description-en%
+}
+
+\DeclareDatamodelFields[type=field, datatype=datepart]{
+  year,%
+  endyear,%
+  month,%
+  endmonth%
+}
+
+\DeclareDatamodelFields[type=field,datatype=date]{
+  date%
+}
+
+\DeclareDatamodelEntryfields[study]{%
+  date,%
+  organization,%
+  title,%
+  country,%
+  description,%
+  %
+  organization-es,%
+  title-es,%
+  country-es,%
+  description-es,%
+  %
+  organization-en,%
+  title-en,%
+  country-en,%
+  description-en%
+}
diff --git a/thesis.bbx b/thesis.bbx
new file mode 100755 (executable)
index 0000000..f9af12d
--- /dev/null
@@ -0,0 +1,75 @@
+\ProvidesFile{thesis.bbx}[biblatex bibliography style for thesiss in CV entries]
+
+\RequireBibliographyStyle{cv}
+
+
+% Formats
+\DeclareFieldFormat[thesis]{organization}{#1}
+
+\newbibmacro{level}{%
+  \ifmlfieldundef{level}%
+    {}%
+    {%
+      \printtext{%
+      \bibstring{degree}
+      \ifbibxstring{\themlfield{level}}%
+        {\bibxstring{\themlfield{level}}}%
+        {\printmlfield{level}}%
+      }%
+  }
+}
+
+\newbibmacro{note}{%
+  \ifmlfieldundef{note}%
+    {}%
+    {%
+      \printtext[parens]{%
+        \mkbibemph{\printmlfield{note}}%
+      }%
+    }
+}
+
+% Driver
+\DeclareBibliographyDriver{thesis}{%
+  \usebibmacro{begentry}%
+  \usebibmacro{cvitem}{\usebibmacro{range-date}}{%
+    \usebibmacro{author}%
+    \newunit
+    \mkbibemph{\printmlfield{title}}%
+    \newunit%
+    \usebibmacro{organization}%
+    \newunit%
+    \usebibmacro{level}%
+    \newunitpunct%
+    \usebibmacro{note}%
+    \ifmlfieldundef{note}{\addperiod}{}
+  }%
+  \usebibmacro{cvfinentry}%
+}
+
+
+% Small syntactic sugar
+\NewBibliographyString{theses, undergrad, master, doctor, degree}
+\DefineBibliographyStrings{english}{%
+  theses = {Theses},
+  degree = {Degree},
+  undergrad = {Undergraduate},
+  master = {Master},
+  doctor = {Ph\adddot D\adddot},
+}
+\DefineBibliographyStrings{spanish}{%
+  theses = {Tesis},
+  degree = {Grado},
+  undergrad = {Licenciatura},
+  master = {Maestr\'ia},
+  doctor = {Doctoral},
+}
+
+\newcommand{\printtheses}[1][]{%
+  % Temporaly set the names
+  \letcs\refname{\abx@str @theses}
+  \letcs\bibname{\abx@str @theses}
+  \printbibliography[env=nobibenv, type=thesis, #1]
+  \letcs\refname{\abx@str @references}
+  \letcs\bibname{\abx@str @bibliography}
+}
\ No newline at end of file
diff --git a/thesis.dbx b/thesis.dbx
new file mode 100755 (executable)
index 0000000..e773aef
--- /dev/null
@@ -0,0 +1,47 @@
+\ProvidesFile{thesis.dbx}
+
+% Position data model
+\DeclareDatamodelEntrytypes{thesis}
+
+\DeclareDatamodelFields[type=field, datatype=literal]{
+  organization,%
+  title,%
+  note,%
+  level,%
+  %
+  organization-es,%
+  title-es,%
+  note-es,%
+  %
+  organization-en,%
+  title-en,%
+  note-en%
+}
+
+\DeclareDatamodelFields[type=field, datatype=datepart]{
+  year,%
+  endyear,%
+  month,%
+  endmonth%
+}
+
+\DeclareDatamodelFields[type=field,datatype=date]{
+  date%
+}
+
+\DeclareDatamodelEntryfields[thesis]{%
+  author,%
+  date,%
+  organization,%
+  title,%
+  note,%
+  level,%
+  %
+  organization-es,%
+  title-es,%
+  note-es,%
+  %
+  organization-en,%
+  title-en,%
+  note-en%
+}