%% start of file `academic.sty'.
-
%-------------------------------------------------------------------------------
% identification
%-------------------------------------------------------------------------------
% Options
%-------------------------------------------------------------------------------
\RequirePackage{pgfkeys}
+\RequirePackage{pgffor}
\RequirePackage{pgfopts}
+\RequirePackage{etoolbox}
% Package options
\def\unknown@packageoptions{}
\moderncvstyle{\@load@style}
}
-
%-------------------------------------------------------------------------------
% Multilanguage support
%-------------------------------------------------------------------------------
% Create long names for languages, this reuses the code from cv.bbx
% fixme: merge both definitions (here and cv.bbx)
-\pgfkeys{
+\def\@cv@shortnamelist{}
+\def\@cv@longnamelist{}
+\def\@coma{}
+\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}
+ .unknown/.code = {%
+ \edef\@cv@shortnamelist{\@cv@shortnamelist\@coma\pgfkeyscurrentname}%
+ \edef\@cv@longnamelist{\@cv@longnamelist\@coma#1}%
+ \def\@coma{,}%
+ \expandafter\edef\csname @cv@short@#1\endcsname{\pgfkeyscurrentname}%
+ \expandafter\expandafter\expandafter\edef\expandafter\csname @cv@long@\pgfkeyscurrentname\endcsname{#1}%
}
}
-%\pgfkeys{
-% /shortlan/.is family, /shortlan,
-% .unknown/.code = {
-% \expandafter\edef\csname @cv@short@#1\endcsname{\pgfkeyscurrentname}
-% }
-%}
% handler to create the keys
-\def\babelshortnames#1{\pgfkeys{/shortlan, #1}}
+\def\babelshortnames#1{\def\@coma{}\pgfkeys{/shortlan, #1}}
% directly obtain the short name
\newcommand{\shortlanguagename}{\csname @cv@short@\languagename\endcsname}
\newcommand{\longlanguagename}[1]{\csname @cv@long@#1\endcsname}
+% Setter for mappings
+\def\@default@mappings{%
+\foreach \@cv@lang in \@cv@longnamelist {%
+ % define the mapping into a macro and then expand it
+ \begingroup\edef\x{\endgroup\noexpand\DeclareLanguageMapping{\@cv@lang}{\@cv@lang-cv}}
+ \x
+}}
+
+% Functions for creating the dbx
+% \localized{text}{\macroToStoreInto}
+\newcommand{\@cv@localize}[3][]{%
+ \def\@coma{#1}
+ \foreach \@cv@lang in \@cv@shortnamelist{%
+ \global\edef#3{#3\@coma#2-\@cv@lang}%
+ \global\def\@coma{,}%
+ }%
+}
+
+\newcommand{\@cv@localizeList}[2]{%
+ \def\@@coma{}
+ \foreach \@word in #1{%
+ \@cv@localize[\@@coma]{\@word}{#2}%
+ \global\def\@@coma{,}%
+ }%
+}
+
+\newcommand{\localizedmacro}[3][]{
+ \ifdefmacro{#3}
+ {\let\@list#3}
+ {\def\@list{#3}}
+ \def\@localized{}%
+ \@cv@localizeList{\@list}{\@localized}%
+ \begingroup\edef\x{\endgroup\noexpand#2[#1]{#3,\@localized}}%
+ \x%
+}
+
+\newcommand{\DeclareLocalizedDatamodelFields}[2][]{%
+ \localizedmacro[#1]{\DeclareDatamodelFields}{#2}%
+}
+
+\newcommand{\DeclareLocalizedDatamodelEntryfields}[2][]{%
+ \localizedmacro[#1]{\DeclareDatamodelEntryfields}{#2}%
+}
+
% declare default languages
% \babelshortnames{en=english, es=spanish}
% or imported to be in sync with cv.bbx
% Academic drivers and sorting to use with this style
%-------------------------------------------------------------------------------
-%\RequirePackage[tools={study, position, course, thesis, project, cvmisc}, bibstyle=numeric-comp]{biblatex-multiple-dm}
-%\RequirePackage[tools={cv, numeric-comp}, bibstyle=numeric-comp]{biblatex-multiple-dm}
-
-% bibliography with mutiple entries
-
% If there is no custom datamodel, load defaul cv.dbx
\IfFileExists{cv-\@load@style.dbx}%
{\def\@load@datamodel{cv-\@load@style}}%
\RequirePackage[backend=biber, citestyle=numeric-comp, bibstyle=\@load@bibstyle, datamodel=\@load@datamodel, sorting=ymdtn, maxbibnames=99, defernumbers=true, giveninits=true, sortcites]{biblatex}
+
+% Execute mappings (these must be after biblatex loaded, since we will use the \DeclareLangaugeMapping macro)
+\@default@mappings
+\@custom@mappings
+
% Patch endyears that are not declared
% http://tex.stackexchange.com/a/327884/7561
\DeclareSourcemap{
\fi
-%% 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}}}
-% {
-% \ifthenelse{\equal{\@load@style}{banking}}{%
-% \setlength{\topsep}{0pt}%
-%% \setlength{\leftmargin}{2em}%
-% \setlength{\labelwidth}{1.5em}%
-% \setlength{\labelsep}{\separatorcolumnwidth}%
-%% \setlength{\itemindent}{0em}%
-% \leftmargin\labelwidth%
-% \advance\leftmargin\labelsep%
-% }{
-% \setlength{\topsep}{0pt}%
-% \setlength{\labelwidth}{\hintscolumnwidth}%
-% \setlength{\labelsep}{\separatorcolumnwidth}%
-% \leftmargin\labelwidth%
-% \advance\leftmargin\labelsep%
-% }%
-%% \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}
-%
-%% New environment withouth the list indent
-%\defbibenvironment{nobibenv}{%
-% \list{}{%
-% \ifboolexpr{ (test{\ifdefstring{\@load@style}{classic}} or test{\ifdefstring{\@load@style}{casual}}) }{%
-% \setlength{\topsep}{0pt}%
-% \setlength{\labelwidth}{\hintscolumnwidth}%
-% \setlength{\labelsep}{\separatorcolumnwidth}%
-% \setlength{\leftmargin}{0pt}%
-% }{%
-% \ifthenelse{\equal{\@load@style}{oldstyle}}{%
-% \setlength{\topsep}{0pt}%
-% \setlength{\labelwidth}{\hintscolumnwidth}%
-% \setlength{\labelsep}{\separatorcolumnwidth}%
-% \leftmargin\labelwidth%
-% \advance\leftmargin\labelsep%
-% }{%
-% \ifthenelse{\equal{\@load@style}{banking}}{%
-% \setlength{\topsep}{0pt}%
-% \setlength{\labelwidth}{0pt}%
-% \setlength{\labelsep}{0pt}%
-% \setlength{\leftmargin}{0pt}%
-% }{
-% \setlength{\topsep}{0pt}%
-% \setlength{\labelwidth}{\hintscolumnwidth}%
-% \setlength{\labelsep}{\separatorcolumnwidth}%
-% \setlength{\leftmargin}{0pt}%
-% }%
-% }%
-% }%
-% \setlength{\parsep}{0pt}%
-% }%
-%}%
-%{\endlist}
-%{\item}
%-------------------------------------------------------------------------------
% Factory for the printbibliography replacements
% Patching moderncv
%-------------------------------------------------------------------------------
-%\RequirePackage{xpatch}
-%% Patch blank printing
-%\newcommand{\ifnoprint}[3]{%
-% \setbox0=\hbox{#1\unskip}\ifdim\wd0=0pt%
-% #2\else#3\fi%
-%}
-
-% Patch cventry for better blank support
-%\xpatchcmd{\cventry}%
-%{\ifthenelse{\equal{#4}{}}}%
-%{\ifnoprint{#4}}%
-%{}{\PackageWarning{academic}{Error patching \noexpand\cventry}}%
-%
-%\xpatchcmd{\cventry}%
-%{\ifthenelse{\equal{#5}{}}}%
-%{\ifnoprint{#5}}%
-%{}{\PackageWarning{academic}{Error patching \noexpand\cventry}}%
-%
-%\xpatchcmd{\cventry}%
-%{\ifthenelse{\equal{#6}{}}}%
-%{\ifnoprint{#6}}%
-%{}{\PackageWarning{academic}{Error patching \noexpand\cventry}}%
-%
-%% Patch the comments on the entries to avoid spurious white space
-%\xpatchcmd{\cventry}%
-%{\ifx}%
-%{\ifdetails\ifx}%
-%{}{\PackageWarning{academic}{Error patching \noexpand\cventry}}%
-%
-%\xpatchcmd{\cventry}%
-%{\fi}%
-%{\fi\fi}%
-%{}{\PackageWarning{academic}{Error patching \noexpand\cventry}}%
-
% Patch socials
\RenewDocumentCommand{\social}{O{}O{}m}{%
\ifthenelse{\equal{#2}{}}%
% Language handlers
%-------------------------------------------------------------------------------
-\DeclareLanguageMapping{english}{english-cv}
-\DeclareLanguageMapping{spanish}{spanish-cv}
-
-%\pgfkeys{
-% /shortlan/.is family, /shortlan,
-% .unknown/.code = {
-% \expandafter\edef\csname @cv@short@#1\endcsname{\pgfkeyscurrentname}
-% }
-%}
-%% 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}
-%%% or imported to be in sync with moderncvstyleacademic.sty
-%\input{setlanguages.sty}
-
-%% 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
-
-%
-%\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}}%
--- /dev/null
+\ProvidesFile{portuguese-cv.lbx}
+\InheritBibliographyExtras{portuguese}
+
+% Bibliography strings
+\NewBibliographyString{
+ duration,
+ years,
+ year,
+ pi,
+ ai,
+ professor,
+ researcher,
+ assisprofessor,
+ assocprofessor,
+ present,
+ studies,%
+ positions,%
+ theses,
+ undergrad,
+ master,
+ doctor,
+ degree,%
+ courses,%
+ cvmiscs%
+}
+
+\DeclareBibliographyStrings{%
+ inherit = {portuguese},
+ duration = {{dura\c{c}\~ao}{dura\c{c}\~ao}},
+ years = {{anos}{anos}},
+ year = {{ano}{ano}},
+ pi = {{Pesquisador Principal}{Pesquisador Principal}},
+ ai = {{Pesquisador Alternativo}{Pesquisador Alternativo}},
+ professor = {{Professor}{Professor}},
+ assisprofessor = {{Profesor Assistente}{Profesor Assistente}},
+ assocprofessor = {{Profesor Associado}{Profesor Associado}},
+ researcher = {{Pesquisador}{Pesquisador}},
+ %
+ present = {{presente}{pres\adddot}},
+ %
+ studies = {{Educa\c{c}\~ao}{Educa\c{c}\~ao}},
+ positions = {{Posi\c{c}\~oes}{Posi\c{c}\~oes}},
+ %
+ theses = {{Teses}{Teses}},
+ degree = {{Grau}{Grau}},
+ undergrad = {{Gradua\c{c}\~ao}{Gradua\c{c}\~ao}},
+ master = {{Mestrado}{Mestrado}},
+ doctor = {{Doutorado}{Doutorado}},
+ %
+ courses = {{Disciplinas}{Disciplinas}},%
+ %
+ cvmiscs = {{Diversos}{Diversos}},
+}
+
+
+\DeclareBibliographyExtras{%
+ \renewcommand*{\bibrangedash}{--}
+ \renewcommand*{\bibdatedash}{--}
+}
+
+
+\endinput
\ No newline at end of file