make-cv 0.0.1__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- files/Awards/personal awards data.xlsx +0 -0
- files/Awards/student awards data.xlsx +0 -0
- files/CV/cv.tex +69 -0
- files/CV/cv_header.tex +116 -0
- files/CV/cv_tables.tex +94 -0
- files/CV/far.tex +163 -0
- files/Proposals & Grants/proposals & grants.xlsx +0 -0
- files/Scholarship/scholarship.bib +17 -0
- files/Scholarship/thesis data.xlsx +0 -0
- files/Service/reviews data.xlsx +0 -0
- files/Service/service data.xlsx +0 -0
- files/Service/undergraduate research data.xlsx +0 -0
- make_cv/UR2latex.py +67 -0
- make_cv/UR2latex_far.py +62 -0
- make_cv/bib2latex_far.py +87 -0
- make_cv/bib_add_citations.py +146 -0
- make_cv/bib_add_keywords.py +135 -0
- make_cv/bib_add_student_markers.py +131 -0
- make_cv/bib_get_entries.py +216 -0
- make_cv/create_config.py +91 -0
- make_cv/grants2latex_far.py +69 -0
- make_cv/invited_text2bib.bash +7 -0
- make_cv/make_cv.py +355 -0
- make_cv/make_far.py +152 -0
- make_cv/make_web.py +155 -0
- make_cv/personal_awards2latex.py +87 -0
- make_cv/personal_awards2latex_far.py +62 -0
- make_cv/props2latex_far.py +64 -0
- make_cv/publons2excel.py +60 -0
- make_cv/publons2latex.py +70 -0
- make_cv/publons2latex_far.py +60 -0
- make_cv/publons_editor2excel.py +22 -0
- make_cv/service2latex.py +90 -0
- make_cv/service2latex_far.py +57 -0
- make_cv/stringprotect.py +225 -0
- make_cv/student_awards2latex.py +60 -0
- make_cv/student_awards2latex_far.py +59 -0
- make_cv/teaching2latex.py +68 -0
- make_cv/teaching2latex_far.py +74 -0
- make_cv/thesis2latex_far.py +88 -0
- make_cv-0.0.1.dist-info/METADATA +227 -0
- make_cv-0.0.1.dist-info/RECORD +45 -0
- make_cv-0.0.1.dist-info/WHEEL +4 -0
- make_cv-0.0.1.dist-info/entry_points.txt +2 -0
- make_cv-0.0.1.dist-info/licenses/LICENSE.md +675 -0
|
Binary file
|
|
Binary file
|
files/CV/cv.tex
ADDED
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
\input{cv_header.tex}
|
|
2
|
+
|
|
3
|
+
\begin{center}
|
|
4
|
+
\Large{\bf My Name} % make the name stand out
|
|
5
|
+
\end{center}
|
|
6
|
+
|
|
7
|
+
\begin{center}
|
|
8
|
+
MAE Department Box 5725\\
|
|
9
|
+
Clarkson University\\
|
|
10
|
+
Potsdam, NY 13699-5725\\
|
|
11
|
+
(315) 268-2204\\
|
|
12
|
+
\em{myemail@clarkson.edu}
|
|
13
|
+
\end{center}
|
|
14
|
+
|
|
15
|
+
\section*{EDUCATION}
|
|
16
|
+
{\bf Some University} \hspace*{\fill}
|
|
17
|
+
{ Some Place, XX}
|
|
18
|
+
\par
|
|
19
|
+
{\em January 19XX - November 1997}
|
|
20
|
+
\par
|
|
21
|
+
Doctoral degree in the Mechanical and Aerospace Engineering program,
|
|
22
|
+
with concentration in the areas of blah blah. Master of Arts degree received June 1994. Advisor: Professor D. D. Dummy.
|
|
23
|
+
\par
|
|
24
|
+
\vspace{\baselineskip}
|
|
25
|
+
{\bf University of Somewhere} \hspace*{\fill}
|
|
26
|
+
{ Somewhere, SN}
|
|
27
|
+
\par
|
|
28
|
+
{\em September 1987 - June 1991}
|
|
29
|
+
\par
|
|
30
|
+
Bachelor of Science degree in Mechanical Engineering.
|
|
31
|
+
Undergraduate research advisor: Professor Somebody. Research topic: something.
|
|
32
|
+
|
|
33
|
+
\section*{EXPERIENCE}
|
|
34
|
+
{\bf Clarkson University} \hspace*{\fill} Potsdam, NY
|
|
35
|
+
\par
|
|
36
|
+
{\em Associate Professor, Mechanical and Aeronautical Eng. Dept.} \hfill {\em March 2006 -May 2013}\\
|
|
37
|
+
{\em Assistant Professor, Mechanical and Aeronautical Eng. Dept.} \hfill {\em January 2001 - March 2006 }\\
|
|
38
|
+
{\em Courtesy Appointment, Math. and Computer Science Dept.}
|
|
39
|
+
|
|
40
|
+
\par
|
|
41
|
+
Current research is on doing fun stuff.
|
|
42
|
+
|
|
43
|
+
\par
|
|
44
|
+
\vspace{\baselineskip}
|
|
45
|
+
{\bf Another place I have been} \hspace*{\fill} City, ST
|
|
46
|
+
\par
|
|
47
|
+
{\em Title goes here} \hfill {\em September 2008 - July 2009}
|
|
48
|
+
\par
|
|
49
|
+
Did a bunch of stuff. Host: D.\ D.\ Dummy
|
|
50
|
+
|
|
51
|
+
% The vbox command makes sure this doesn't get broken between pages
|
|
52
|
+
\vbox{
|
|
53
|
+
\section*{PROFESSIONAL MEMBERSHIPS}
|
|
54
|
+
American Society of Mechanical Engineers (ASME) \\
|
|
55
|
+
American Society of Engineering Education (ASEE) \\
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
%\vbox{
|
|
59
|
+
%\section*{CONSULTING}
|
|
60
|
+
%Verian Semiconductor Equipment Associates, silicon wafer manufacturing 2010- \\
|
|
61
|
+
%Optiwind, wind turbine design 2011-2013 \\
|
|
62
|
+
%TAM Ceramics, thermoelectric modeling, 2014- \\
|
|
63
|
+
%Zeropoint Clean Tech, fluids simulation of gasifier, 2009 \\
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
\input{cv_tables.tex}
|
|
67
|
+
|
|
68
|
+
\end{document}
|
|
69
|
+
|
files/CV/cv_header.tex
ADDED
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
\documentclass[10pt]{article}
|
|
2
|
+
\pagestyle{empty} % no page numbers, thanks.
|
|
3
|
+
\usepackage{hyperref}
|
|
4
|
+
\usepackage{ltablex}
|
|
5
|
+
\usepackage{ifthen}
|
|
6
|
+
\usepackage[tiny]{titlesec}
|
|
7
|
+
\usepackage[backend=biber,style=numeric-comp,sorting=none,giveninits=true,maxnames=20]{biblatex}
|
|
8
|
+
|
|
9
|
+
% Add bib file to make bibliography information
|
|
10
|
+
\addbibresource{../Scholarship/scholarship.bib}
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
% Set page size
|
|
14
|
+
\textwidth = 6.5 in
|
|
15
|
+
\textheight = 9 in
|
|
16
|
+
\oddsidemargin = 0.0 in
|
|
17
|
+
\evensidemargin = 0.0 in
|
|
18
|
+
\topmargin = 0.0 in
|
|
19
|
+
\headheight = 0.0 in
|
|
20
|
+
\headsep = 0.0 in
|
|
21
|
+
\parindent= 0 in
|
|
22
|
+
|
|
23
|
+
% Make sure tables always span the page width
|
|
24
|
+
\keepXColumns
|
|
25
|
+
% Remove annoying line space before table
|
|
26
|
+
\setlength\LTpre{0in}
|
|
27
|
+
% This puts a little extra space in the tables
|
|
28
|
+
\setlength{\extrarowheight}{2.5pt}
|
|
29
|
+
% Add counter for rows of tables
|
|
30
|
+
\newcounter{rowcnt}
|
|
31
|
+
\newcommand\rownum{\ifnumequal{\value{rowcnt}}{0}{\#}{\therowcnt.}\stepcounter{rowcnt}}
|
|
32
|
+
\AtEndEnvironment{tabularx}{\setcounter{rowcnt}{0}}
|
|
33
|
+
|
|
34
|
+
% Allow text to be rough at the bottom for better page splits
|
|
35
|
+
\raggedbottom
|
|
36
|
+
|
|
37
|
+
% Change the section spacing for better headings
|
|
38
|
+
%\titlespacing*{⟨command ⟩}{⟨left ⟩}{⟨before-sep ⟩}{⟨after-sep ⟩}
|
|
39
|
+
\titlespacing*{\section}{0cm}{*2.5}{*0.5}
|
|
40
|
+
|
|
41
|
+
% Commands to label graduate and undergraduate students
|
|
42
|
+
\providecommand{\us}{\textsuperscript{*}}
|
|
43
|
+
\providecommand{\gs}{\textsuperscript{+}}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
% Remove some fields from journal articles
|
|
47
|
+
\AtEveryCitekey{\ifentrytype{article}{\clearfield{url}\clearfield{issn}\clearfield{review}\clearfield{series}\clearfield{eprint}}{}}
|
|
48
|
+
\AtEveryCitekey{\ifentrytype{misc}{\clearfield{url}\clearfield{issn}\clearfield{review}\clearfield{series}\clearfield{eprint}}{}}
|
|
49
|
+
|
|
50
|
+
% This adds the field citations to the bibliography data so I can add the number of citaitons
|
|
51
|
+
\begin{filecontents}{biblatex-dm.cfg}
|
|
52
|
+
\DeclareDatamodelFields[type=field, datatype=integer, nullok=true]{citations}
|
|
53
|
+
\DeclareDatamodelEntryfields{citations}
|
|
54
|
+
\end{filecontents}
|
|
55
|
+
|
|
56
|
+
% Remove the "In" from journal citations
|
|
57
|
+
\renewbibmacro*{in:}{%
|
|
58
|
+
\setunit{\addcomma\space}%
|
|
59
|
+
\ifentrytype{article}
|
|
60
|
+
{}
|
|
61
|
+
{\printtext{%
|
|
62
|
+
\bibstring{in}\intitlepunct}}}
|
|
63
|
+
|
|
64
|
+
% Change volume, number format
|
|
65
|
+
\renewbibmacro*{volume+number+eid}{%
|
|
66
|
+
\printfield{volume}%
|
|
67
|
+
\setunit*{\addcomma\addspace}%
|
|
68
|
+
\iffieldundef{number}{}{%
|
|
69
|
+
\printtext{no\adddot\addspace}%
|
|
70
|
+
}%
|
|
71
|
+
\printfield{number}%
|
|
72
|
+
\setunit{\addcomma\space}%
|
|
73
|
+
\printfield{eid}}
|
|
74
|
+
|
|
75
|
+
% This adds the number of citations in brackets
|
|
76
|
+
\renewbibmacro*{finentry}{
|
|
77
|
+
\printfield{citations}%
|
|
78
|
+
\finentry}
|
|
79
|
+
\DeclareFieldFormat{citations}{\mkbibbrackets{#1}}
|
|
80
|
+
|
|
81
|
+
\newboolean{Journal}
|
|
82
|
+
\newboolean{Refereed}
|
|
83
|
+
\newboolean{Book}
|
|
84
|
+
\newboolean{Conference}
|
|
85
|
+
\newboolean{Patent}
|
|
86
|
+
\newboolean{Invited}
|
|
87
|
+
\newboolean{PersonalAwards}
|
|
88
|
+
\newboolean{StudentAwards}
|
|
89
|
+
\newboolean{Service}
|
|
90
|
+
\newboolean{Reviews}
|
|
91
|
+
\newboolean{GradAdvisees}
|
|
92
|
+
\newboolean{UndergradResearch}
|
|
93
|
+
\newboolean{Teaching}
|
|
94
|
+
\newboolean{Grants}
|
|
95
|
+
\newboolean{Proposals}
|
|
96
|
+
|
|
97
|
+
\setboolean{Journal}{true}
|
|
98
|
+
\setboolean{Refereed}{true}
|
|
99
|
+
\setboolean{Book}{true}
|
|
100
|
+
\setboolean{Conference}{true}
|
|
101
|
+
\setboolean{Patent}{true}
|
|
102
|
+
\setboolean{Invited}{true}
|
|
103
|
+
\setboolean{PersonalAwards}{true}
|
|
104
|
+
\setboolean{StudentAwards}{true}
|
|
105
|
+
\setboolean{Service}{true}
|
|
106
|
+
\setboolean{Reviews}{true}
|
|
107
|
+
\setboolean{GradAdvisees}{true}
|
|
108
|
+
\setboolean{UndergradResearch}{true}
|
|
109
|
+
\setboolean{Teaching}{true}
|
|
110
|
+
\setboolean{Grants}{true}
|
|
111
|
+
\setboolean{Proposals}{true}
|
|
112
|
+
|
|
113
|
+
\IfFileExists{exclusions.tex} {
|
|
114
|
+
\input{exclusions.tex}
|
|
115
|
+
}
|
|
116
|
+
|
files/CV/cv_tables.tex
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
|
|
2
|
+
In the following a + indicates a graduate advisee, and a * indicates an undergraduate advisee. The number in brackets is the number of citations as reported by Google Scholar.
|
|
3
|
+
\ifthenelse{\boolean{Journal}}{
|
|
4
|
+
\IfFileExists{Tables/journal.tex} {
|
|
5
|
+
\section*{JOURNAL ARTICLES}
|
|
6
|
+
\input{Tables/journal.tex}
|
|
7
|
+
}}{}
|
|
8
|
+
|
|
9
|
+
\ifthenelse{\boolean{Refereed}}{
|
|
10
|
+
\IfFileExists{Tables/refereed.tex} {
|
|
11
|
+
\section*{REFEREED CONFERENCE PAPERS}
|
|
12
|
+
\input{Tables/refereed.tex}
|
|
13
|
+
}}{}
|
|
14
|
+
|
|
15
|
+
\ifthenelse{\boolean{Book}}{
|
|
16
|
+
\IfFileExists{Tables/book.tex} {
|
|
17
|
+
\section*{BOOK CHAPTERS}
|
|
18
|
+
\input{Tables/book.tex}
|
|
19
|
+
}}{}
|
|
20
|
+
|
|
21
|
+
\ifthenelse{\boolean{Conference}}{
|
|
22
|
+
\IfFileExists{Tables/conference.tex} {
|
|
23
|
+
\section*{CONFERENCES}
|
|
24
|
+
\input{Tables/conference.tex}
|
|
25
|
+
}}{}
|
|
26
|
+
|
|
27
|
+
\ifthenelse{\boolean{Patent}}{
|
|
28
|
+
\IfFileExists{Tables/patent.tex} {
|
|
29
|
+
\section*{PATENTS}
|
|
30
|
+
\input{Tables/patent.tex}
|
|
31
|
+
}}{}
|
|
32
|
+
|
|
33
|
+
\ifthenelse{\boolean{Invited}}{
|
|
34
|
+
\IfFileExists{Tables/invited.tex} {
|
|
35
|
+
\section*{INVITED TALKS}
|
|
36
|
+
\input{Tables/invited.tex}
|
|
37
|
+
}}{}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
\ifthenelse{\boolean{PersonalAwards}}{
|
|
41
|
+
\IfFileExists{Tables/personal_awards.tex} {
|
|
42
|
+
\section*{PERSONAL AWARDS}
|
|
43
|
+
\input{Tables/personal_awards.tex}
|
|
44
|
+
}}{}
|
|
45
|
+
|
|
46
|
+
\ifthenelse{\boolean{StudentAwards}}{
|
|
47
|
+
\IfFileExists{Tables/student_awards.tex} {
|
|
48
|
+
\section*{STUDENT AWARDS}
|
|
49
|
+
\input{Tables/student_awards.tex}
|
|
50
|
+
}}{}
|
|
51
|
+
|
|
52
|
+
\ifthenelse{\boolean{Service}}{
|
|
53
|
+
\IfFileExists{Tables/service.tex} {
|
|
54
|
+
\section*{SERVICE}
|
|
55
|
+
\input{Tables/service.tex}
|
|
56
|
+
}}{}
|
|
57
|
+
|
|
58
|
+
\ifthenelse{\boolean{Reviews}}{
|
|
59
|
+
\IfFileExists{Tables/reviews.tex} {
|
|
60
|
+
\section*{REVIEWING}
|
|
61
|
+
\input{Tables/reviews.tex}
|
|
62
|
+
}}{}
|
|
63
|
+
|
|
64
|
+
\ifthenelse{\boolean{GradAdvisees}}{
|
|
65
|
+
\IfFileExists{Tables/thesis.tex} {
|
|
66
|
+
\section*{GRADUATE ADVISEES}
|
|
67
|
+
\input{Tables/thesis.tex}
|
|
68
|
+
}}{}
|
|
69
|
+
|
|
70
|
+
\ifthenelse{\boolean{UndergradResearch}}{
|
|
71
|
+
\IfFileExists{Tables/undergraduate_research.tex} {
|
|
72
|
+
\section*{UNDERGRADUATE RESEARCH}
|
|
73
|
+
\input{Tables/undergraduate_research.tex}
|
|
74
|
+
}}{}
|
|
75
|
+
|
|
76
|
+
\ifthenelse{\boolean{Teaching}}{
|
|
77
|
+
\IfFileExists{Tables/teaching.tex} {
|
|
78
|
+
\section*{Teaching}
|
|
79
|
+
This table includes all classes taught that had reported teaching evaluations. Question 19 is ``Overall, how would you rate this instructor?'' Question 20 is ``Overall, how would you rate this course?''. The scores are out of 5 and the University average evaluation is approximately 4.1.
|
|
80
|
+
\input{Tables/teaching.tex}
|
|
81
|
+
}}{}
|
|
82
|
+
|
|
83
|
+
\ifthenelse{\boolean{Grants}}{
|
|
84
|
+
\IfFileExists{Tables/grants.tex} {
|
|
85
|
+
\section*{GRANTS}
|
|
86
|
+
\input{Tables/grants.tex}
|
|
87
|
+
}}{}
|
|
88
|
+
|
|
89
|
+
\ifthenelse{\boolean{Proposals}}{
|
|
90
|
+
\IfFileExists{Tables/proposals.tex} {
|
|
91
|
+
\section*{PROPOSALS}
|
|
92
|
+
\input{Tables/proposals.tex}
|
|
93
|
+
}}{}
|
|
94
|
+
|
files/CV/far.tex
ADDED
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
\documentclass[10pt]{article}
|
|
2
|
+
\pagestyle{empty} % no page numbers, thanks.
|
|
3
|
+
\usepackage{hyperref}
|
|
4
|
+
\usepackage{ltablex}
|
|
5
|
+
\usepackage{ifthen}
|
|
6
|
+
\usepackage[tiny]{titlesec}
|
|
7
|
+
\usepackage[backend=biber,style=numeric-comp,sorting=none,giveninits=true,maxnames=20]{biblatex}
|
|
8
|
+
|
|
9
|
+
% Add bib file to make bibliography information
|
|
10
|
+
\addbibresource{../Scholarship/scholarship.bib}
|
|
11
|
+
|
|
12
|
+
% Set page size
|
|
13
|
+
\textwidth = 6.5 in
|
|
14
|
+
\textheight = 9 in
|
|
15
|
+
\oddsidemargin = 0.0 in
|
|
16
|
+
\evensidemargin = 0.0 in
|
|
17
|
+
\topmargin = 0.0 in
|
|
18
|
+
\headheight = 0.0 in
|
|
19
|
+
\headsep = 0.0 in
|
|
20
|
+
\parindent= 0 in
|
|
21
|
+
|
|
22
|
+
% Make sure tables always span the page width
|
|
23
|
+
\keepXColumns
|
|
24
|
+
% Remove annoying line space before table
|
|
25
|
+
\setlength\LTpre{0in}
|
|
26
|
+
% This puts a little extra space in the tables
|
|
27
|
+
\setlength{\extrarowheight}{2.5pt}
|
|
28
|
+
% Add counter for rows of tables
|
|
29
|
+
\newcounter{rowcnt}
|
|
30
|
+
\newcommand\rownum{\ifnumequal{\value{rowcnt}}{0}{\#}{\therowcnt.}\stepcounter{rowcnt}}
|
|
31
|
+
\AtEndEnvironment{tabularx}{\setcounter{rowcnt}{0}}
|
|
32
|
+
|
|
33
|
+
% Allow text to be rough at the bottom for better page splits
|
|
34
|
+
\raggedbottom
|
|
35
|
+
|
|
36
|
+
% Change the section spacing for better headings
|
|
37
|
+
%\titlespacing*{⟨command ⟩}{⟨left ⟩}{⟨before-sep ⟩}{⟨after-sep ⟩}
|
|
38
|
+
\titlespacing*{\section}{0cm}{*2.5}{*0.5}
|
|
39
|
+
|
|
40
|
+
% Commands to label graduate and undergraduate students
|
|
41
|
+
\providecommand{\us}{\textsuperscript{*}}
|
|
42
|
+
\providecommand{\gs}{\textsuperscript{+}}
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
% Remove some fields from journal articles
|
|
46
|
+
\AtEveryCitekey{\ifentrytype{article}{\clearfield{url}\clearfield{issn}\clearfield{review}\clearfield{series}\clearfield{eprint}}{}}
|
|
47
|
+
\AtEveryCitekey{\ifentrytype{misc}{\clearfield{url}\clearfield{issn}\clearfield{review}\clearfield{series}\clearfield{eprint}}{}}
|
|
48
|
+
|
|
49
|
+
% This adds the field citations to the bibliography data so I can add the number of citaitons
|
|
50
|
+
\begin{filecontents}{biblatex-dm.cfg}
|
|
51
|
+
\DeclareDatamodelFields[type=field, datatype=integer, nullok=true]{citations}
|
|
52
|
+
\DeclareDatamodelEntryfields{citations}
|
|
53
|
+
\end{filecontents}
|
|
54
|
+
|
|
55
|
+
% Remove the "In" from journal citations
|
|
56
|
+
\renewbibmacro*{in:}{%
|
|
57
|
+
\setunit{\addcomma\space}%
|
|
58
|
+
\ifentrytype{article}
|
|
59
|
+
{}
|
|
60
|
+
{\printtext{%
|
|
61
|
+
\bibstring{in}\intitlepunct}}}
|
|
62
|
+
|
|
63
|
+
% Change volume, number format
|
|
64
|
+
\renewbibmacro*{volume+number+eid}{%
|
|
65
|
+
\printfield{volume}%
|
|
66
|
+
\setunit*{\addcomma\addspace}%
|
|
67
|
+
\iffieldundef{number}{}{%
|
|
68
|
+
\printtext{no\adddot\addspace}%
|
|
69
|
+
}%
|
|
70
|
+
\printfield{number}%
|
|
71
|
+
\setunit{\addcomma\space}%
|
|
72
|
+
\printfield{eid}}
|
|
73
|
+
|
|
74
|
+
% This adds the number of citations in brackets
|
|
75
|
+
\renewbibmacro*{finentry}{
|
|
76
|
+
\printfield{citations}%
|
|
77
|
+
\finentry}
|
|
78
|
+
\DeclareFieldFormat{citations}{\mkbibbrackets{#1}}
|
|
79
|
+
|
|
80
|
+
\title{Faculty Activity Report}
|
|
81
|
+
\author{}
|
|
82
|
+
|
|
83
|
+
\begin{document}
|
|
84
|
+
\maketitle
|
|
85
|
+
\tableofcontents
|
|
86
|
+
|
|
87
|
+
\IfFileExists{Tables/journal_far.tex} {
|
|
88
|
+
\section{JOURNAL ARTICLES}
|
|
89
|
+
\input{Tables/journal_far.tex}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
\IfFileExists{Tables/refereed_far.tex} {
|
|
93
|
+
\section{REFEREED CONFERENCE\\ PAPERS}
|
|
94
|
+
\input{Tables/refereed_far.tex}
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
\IfFileExists{Tables/book_far.tex} {
|
|
98
|
+
\section{BOOK CHAPTERS}
|
|
99
|
+
\input{Tables/book_far.tex}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
\IfFileExists{Tables/conference_far.tex} {
|
|
103
|
+
\section{CONFERENCES}
|
|
104
|
+
\input{Tables/conference_far.tex}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
\IfFileExists{Tables/patent_far.tex} {
|
|
108
|
+
\section{PATENTS}
|
|
109
|
+
\input{Tables/patent_far.tex}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
\IfFileExists{Tables/invited_far.tex} {
|
|
113
|
+
\section{INVITED TALKS}
|
|
114
|
+
\input{Tables/invited_far.tex}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
\IfFileExists{Tables/personal_awards_far.tex} {
|
|
118
|
+
\section{PERSONAL AWARDS}
|
|
119
|
+
\input{Tables/personal_awards_far.tex}
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
\IfFileExists{Tables/student_awards_far.tex} {
|
|
123
|
+
\section{STUDENT AWARDS}
|
|
124
|
+
\input{Tables/student_awards_far.tex}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
\IfFileExists{Tables/service_far.tex} {
|
|
128
|
+
\section{SERVICE}
|
|
129
|
+
\input{Tables/service_far.tex}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
\IfFileExists{Tables/reviews_far.tex} {
|
|
133
|
+
\section{REVIEWING}
|
|
134
|
+
\input{Tables/reviews_far.tex}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
\IfFileExists{Tables/thesis_far.tex} {
|
|
138
|
+
\section{GRADUATE\\ ADVISEES}
|
|
139
|
+
\input{Tables/thesis_far.tex}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
\IfFileExists{Tables/undergraduate_research_far.tex} {
|
|
143
|
+
\section{UNDERGRAD RESEARCH}
|
|
144
|
+
\input{Tables/undergraduate_research_far.tex}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
\IfFileExists{Tables/teaching_far.tex} {
|
|
148
|
+
\section{TEACHING}
|
|
149
|
+
\input{Tables/teaching_far.tex}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
\IfFileExists{Tables/grants_far.tex} {
|
|
153
|
+
\section{GRANTS}
|
|
154
|
+
\input{Tables/grants_far.tex}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
\IfFileExists{Tables/proposals_far.tex} {
|
|
158
|
+
\section{PROPOSALS}
|
|
159
|
+
\input{Tables/proposals_far.tex}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
\end{document}
|
|
163
|
+
|
|
Binary file
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
@Comment{jabref-meta: grouping:
|
|
2
|
+
0 AllEntriesGroup:;
|
|
3
|
+
1 AutomaticKeywordGroup:Category\;0\;keywords\;\\\;\;>\;1\;\;\;\;;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
@Comment{jabref-meta: grouping:
|
|
7
|
+
0 AllEntriesGroup:;
|
|
8
|
+
1 KeywordGroup:conference\;0\;keywords\;conference\;0\;0\;1\;0x8a8a8aff\;\;conference papers\;;
|
|
9
|
+
1 KeywordGroup:journal\;0\;keywords\;journal\;0\;0\;1\;0x8a8a8aff\;\;journal articles\;;
|
|
10
|
+
1 KeywordGroup:arXiv\;0\;keywords\;arXiv\;0\;0\;1\;0x8a8a8aff\;\;arXiv articles\;;
|
|
11
|
+
1 KeywordGroup:invited\;0\;keywords\;invited\;0\;0\;1\;0x8a8a8aff\;\;invited talks\;;
|
|
12
|
+
1 KeywordGroup:book\;0\;keywords\;book\;0\;0\;1\;0x8a8a8aff\;\;books and chapters\;;
|
|
13
|
+
1 KeywordGroup:techreport\;0\;keywords\;techreport\;0\;0\;1\;0x8a8a8aff\;\;technical reports\;;
|
|
14
|
+
1 KeywordGroup:refereed\;0\;keywords\;refereed\;0\;0\;1\;0x8a8a8aff\;\;refereed conference papers\;;
|
|
15
|
+
1 KeywordGroup:patent\;0\;keywords\;patent\;0\;0\;1\;0x8a8a8aff\;\;patents\;;
|
|
16
|
+
1 KeywordGroup:ignore\;0\;keywords\;patent\;0\;0\;1\;0x8a8a8aff\;\;ignore\;;
|
|
17
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
make_cv/UR2latex.py
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
#! /usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
# Python code to create latex form of Undergraduate Research Data
|
|
4
|
+
|
|
5
|
+
# import modules
|
|
6
|
+
import datetime
|
|
7
|
+
import pandas as pd
|
|
8
|
+
import os
|
|
9
|
+
import sys
|
|
10
|
+
|
|
11
|
+
from .stringprotect import str2latex
|
|
12
|
+
from .stringprotect import abbreviate_name_list
|
|
13
|
+
|
|
14
|
+
def UR2latex(f,years,inputfile):
|
|
15
|
+
source = inputfile # file to read
|
|
16
|
+
try:
|
|
17
|
+
df = pd.read_excel(source,sheet_name="Data")
|
|
18
|
+
except OSError:
|
|
19
|
+
print("Could not open/read file: " + source)
|
|
20
|
+
return
|
|
21
|
+
|
|
22
|
+
df.fillna('',inplace=True)
|
|
23
|
+
if (years > 0):
|
|
24
|
+
today = date.today()
|
|
25
|
+
year = today.year
|
|
26
|
+
begin_year = year - years
|
|
27
|
+
|
|
28
|
+
df = df[(df['Calendar Year'] >= begin_year)]
|
|
29
|
+
df.sort_values(by=['Calendar Year','Term'], inplace=True, ascending = [False,True])
|
|
30
|
+
df.reset_index(inplace=True)
|
|
31
|
+
|
|
32
|
+
nrows = df.shape[0]
|
|
33
|
+
if (nrows > 0):
|
|
34
|
+
#table = pd.pivot_table(df, values=['Calendar Year','Term'], index=['Students', 'Title', 'Program Type'], aggfunc={'Calendar Year': ('min','max'), 'Term': 'count'},observed=True)
|
|
35
|
+
table = pd.pivot_table(df, values=['Calendar Year','Term'], index=['Students', 'Title', 'Program Type'], aggfunc={'Calendar Year': ('min'), 'Term': 'count'},observed=True)
|
|
36
|
+
df = table.reset_index()
|
|
37
|
+
#print(df.columns)
|
|
38
|
+
nrows = df.shape[0]
|
|
39
|
+
#df.sort_values(by=[('Calendar Year', 'max')], inplace=True, ascending = [False])
|
|
40
|
+
df.sort_values(by=['Calendar Year'], inplace=True, ascending = [False])
|
|
41
|
+
df = df.reset_index()
|
|
42
|
+
#print(df)
|
|
43
|
+
|
|
44
|
+
f.write("\\begin{tabularx}{\\linewidth}{>{\\rownum}rXll}\n & Name: Title & Program & Date(Semesters) \\\\\n\\hline\n")
|
|
45
|
+
count = 0
|
|
46
|
+
while count < nrows:
|
|
47
|
+
f.write(" & " +abbreviate_name_list(df.loc[count,"Students"])+": " +str2latex(df.loc[count,"Title"]) + " & " +str2latex(df.loc[count,"Program Type"]) + " & " +str2latex(df.loc[count,"Calendar Year"]) +"("+str2latex(df.loc[count,"Term"]) +")\\\\\n")
|
|
48
|
+
count += 1
|
|
49
|
+
|
|
50
|
+
f.write("\\end{tabularx}\n")
|
|
51
|
+
|
|
52
|
+
return(nrows)
|
|
53
|
+
|
|
54
|
+
if __name__ == "__main__":
|
|
55
|
+
parser = argparse.ArgumentParser(description='This script outputs undergraduate research data to a latex table')
|
|
56
|
+
parser.add_argument('-y', '--years',default="0",type=int,help='the number of years to output, default is all')
|
|
57
|
+
parser.add_argument('-a', '--append', action='store_const',const="a",default="w")
|
|
58
|
+
parser.add_argument('inputfile',help='the input excel file name')
|
|
59
|
+
parser.add_argument('outputfile',help='the output latex table name')
|
|
60
|
+
args = parser.parse_args()
|
|
61
|
+
|
|
62
|
+
f = open(args.outputfile, args.append) # file to write
|
|
63
|
+
nrows = UR2latex(f,args.years,args.inputfile)
|
|
64
|
+
f.close()
|
|
65
|
+
|
|
66
|
+
if (nrows == 0):
|
|
67
|
+
os.remove(args.outputfile)
|
make_cv/UR2latex_far.py
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
#! /usr/bin/env python3
|
|
2
|
+
|
|
3
|
+
# Python code to create latex form of Undergraduate Research Data - for the three most recent 3 years
|
|
4
|
+
# First argument is excel file to read (including path), and second argument is what you want to name output file, as .tex
|
|
5
|
+
|
|
6
|
+
# import modules
|
|
7
|
+
from datetime import date
|
|
8
|
+
import pandas as pd
|
|
9
|
+
import os
|
|
10
|
+
import sys
|
|
11
|
+
import argparse
|
|
12
|
+
|
|
13
|
+
from .stringprotect import str2latex
|
|
14
|
+
from .stringprotect import abbreviate_name_list
|
|
15
|
+
|
|
16
|
+
def UR2latex_far(f,years,inputfile):
|
|
17
|
+
source = inputfile # file to read
|
|
18
|
+
try:
|
|
19
|
+
df = pd.read_excel(source,sheet_name="Data")
|
|
20
|
+
except OSError:
|
|
21
|
+
print("Could not open/read file: " + source)
|
|
22
|
+
return
|
|
23
|
+
|
|
24
|
+
df.fillna('',inplace=True)
|
|
25
|
+
#df['Calendar Year'] = pd.to_datetime(df['Calendar Year'],format = "%Y",exact=True)
|
|
26
|
+
|
|
27
|
+
if years > 0:
|
|
28
|
+
today = date.today()
|
|
29
|
+
year = today.year
|
|
30
|
+
begin_year = year - years
|
|
31
|
+
df = df[(df['Calendar Year'] >= begin_year)]
|
|
32
|
+
|
|
33
|
+
df.sort_values(by=['Calendar Year','Term'], inplace=True, ascending = [False,True])
|
|
34
|
+
df.reset_index(inplace=True)
|
|
35
|
+
|
|
36
|
+
nrows = df.shape[0]
|
|
37
|
+
|
|
38
|
+
if (nrows > 0):
|
|
39
|
+
f.write("\\begin{tabularx}{\linewidth}{Xll}\nName: Title & Program & Term \\\\\n\\hline\n")
|
|
40
|
+
count = 0
|
|
41
|
+
while count < nrows:
|
|
42
|
+
f.write(abbreviate_name_list(df.loc[count,"Students"])+": " +str2latex(df.loc[count,"Title"]) + " & " +df.loc[count,"Program Type"] + " & " +df.loc[count,"Term"] +" " +str(df.loc[count,"Calendar Year"])+"\\\\\n")
|
|
43
|
+
count += 1
|
|
44
|
+
|
|
45
|
+
f.write("\\end{tabularx}\n")
|
|
46
|
+
|
|
47
|
+
return(nrows)
|
|
48
|
+
|
|
49
|
+
if __name__ == "__main__":
|
|
50
|
+
parser = argparse.ArgumentParser(description='This script outputs undergraduate research data to a latex table that shows the last [YEARS] years')
|
|
51
|
+
parser.add_argument('-y', '--years',default="3",type=int,help='the number of years to output')
|
|
52
|
+
parser.add_argument('-a', '--append', action='store_const',const="a",default="w")
|
|
53
|
+
parser.add_argument('inputfile',help='the input excel file name')
|
|
54
|
+
parser.add_argument('outputfile',help='the output latex table name')
|
|
55
|
+
args = parser.parse_args()
|
|
56
|
+
|
|
57
|
+
f = open(args.outputfile, args.append) # file to write
|
|
58
|
+
nrows = UR2latex_far(f,args.years,args.inputfile)
|
|
59
|
+
f.close()
|
|
60
|
+
|
|
61
|
+
if (nrows == 0):
|
|
62
|
+
os.remove(args.outputfile)
|
make_cv/bib2latex_far.py
ADDED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
# -*- coding: utf-8 -*-
|
|
3
|
+
|
|
4
|
+
# writes latex files for creating bibliography
|
|
5
|
+
# Usually run from CV/Tables folder like this
|
|
6
|
+
# pubs2latex_far.py ../../Scholarship/scholarship.bib
|
|
7
|
+
|
|
8
|
+
import os, sys
|
|
9
|
+
import bibtexparser
|
|
10
|
+
from bibtexparser.bwriter import BibTexWriter
|
|
11
|
+
from bibtexparser.bibdatabase import BibDatabase
|
|
12
|
+
from bibtexparser.customization import convert_to_unicode
|
|
13
|
+
from bibtexparser.bparser import BibTexParser
|
|
14
|
+
from datetime import date
|
|
15
|
+
import argparse
|
|
16
|
+
import numpy as np
|
|
17
|
+
|
|
18
|
+
categories = ["journal","conference","patent","book","invited","refereed"]
|
|
19
|
+
|
|
20
|
+
def getyear(paperbibentry):
|
|
21
|
+
if "year" in paperbibentry.keys():
|
|
22
|
+
return(int(paperbibentry["year"]))
|
|
23
|
+
if "date" in paperbibentry.keys():
|
|
24
|
+
return(int(paperbibentry["date"][:4]))
|
|
25
|
+
return(0)
|
|
26
|
+
|
|
27
|
+
def bib2latex_far(f,years,inputfile):
|
|
28
|
+
|
|
29
|
+
nrecord = np.zeros(len(categories))
|
|
30
|
+
|
|
31
|
+
# homogenize_fields: Sanitize BibTeX field names, for example change `url` to `link` etc.
|
|
32
|
+
tbparser = BibTexParser(common_strings=True)
|
|
33
|
+
tbparser.homogenize_fields = False # no dice
|
|
34
|
+
tbparser.alt_dict['url'] = 'url' # this finally prevents change 'url' to 'link'
|
|
35
|
+
|
|
36
|
+
try:
|
|
37
|
+
bibtex_file = open(inputfile)
|
|
38
|
+
bibtex_str = bibtex_file.read()
|
|
39
|
+
bib_database = bibtexparser.loads(bibtex_str, tbparser)
|
|
40
|
+
bib_database.entries = sorted(bib_database.entries, key=lambda k: getyear(k), reverse=True)
|
|
41
|
+
except OSError:
|
|
42
|
+
print("Could not open/read file: " +inputfile)
|
|
43
|
+
return(nrecord)
|
|
44
|
+
|
|
45
|
+
if years > 0:
|
|
46
|
+
today = date.today()
|
|
47
|
+
year = today.year
|
|
48
|
+
begin_year = year - years
|
|
49
|
+
else:
|
|
50
|
+
begin_year = 0
|
|
51
|
+
|
|
52
|
+
for count,etype in enumerate(categories):
|
|
53
|
+
f[count].write("\\begin{enumerate}\n")
|
|
54
|
+
|
|
55
|
+
for icpbe, paperbibentry in enumerate(bib_database.entries):
|
|
56
|
+
year = getyear(paperbibentry)
|
|
57
|
+
if not(year >= begin_year):
|
|
58
|
+
continue
|
|
59
|
+
|
|
60
|
+
if "keywords" in paperbibentry.keys():
|
|
61
|
+
kword = str(paperbibentry["keywords"])
|
|
62
|
+
for count,etype in enumerate(categories):
|
|
63
|
+
if kword.find(etype) > -1:
|
|
64
|
+
f[count].write("\\item\n\\fullcite{"+paperbibentry["ID"]+"}\n")
|
|
65
|
+
nrecord[count] += 1
|
|
66
|
+
|
|
67
|
+
for count,etype in enumerate(categories):
|
|
68
|
+
f[count].write("\\end{enumerate}\n")
|
|
69
|
+
|
|
70
|
+
return(nrecord)
|
|
71
|
+
|
|
72
|
+
if __name__ == "__main__":
|
|
73
|
+
parser = argparse.ArgumentParser(description='This script outputs bibliographic latex citations to a latex table for (journals,refereed conferences,conferences,patents,books,invited talks) received in the last [YEARS] years')
|
|
74
|
+
parser.add_argument('-y', '--years',default="0",type=int,help='the number of years to output, default is all')
|
|
75
|
+
parser.add_argument('-a', '--append', action='store_const',const="a",default="w")
|
|
76
|
+
parser.add_argument('-e', '--ending',default="_far",type=str,help='ending to append to filenames')
|
|
77
|
+
parser.add_argument('inputfile',help='the input bibliography file name')
|
|
78
|
+
parser.add_argument('outputpath',help='the input bibliography file name')
|
|
79
|
+
args = parser.parse_args()
|
|
80
|
+
|
|
81
|
+
f = [open(args.outputpath +os.sep +etype+args.ending+".tex", args.append) for count,etype in enumerate(categories)]
|
|
82
|
+
necord = bib2latex_far(f,args.years,args.inputfile)
|
|
83
|
+
|
|
84
|
+
for count,etype in enumerate(categories):
|
|
85
|
+
f[count].close()
|
|
86
|
+
if (necord[count] == 0):
|
|
87
|
+
os.remove(args.outputpath +os.sep +etype+args.ending+".tex")
|