mirror of
https://github.com/soconnor0919/resume-cv.git
synced 2025-12-11 05:24:44 -05:00
Resolve line break errors in .tex file
This commit is contained in:
17
Dockerfile
Normal file
17
Dockerfile
Normal file
@@ -0,0 +1,17 @@
|
||||
FROM ubuntu:24.04
|
||||
|
||||
# Prevent tzdata questions during install
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
|
||||
# Install TeX Live and required packages
|
||||
RUN apt-get update && apt-get install -y \
|
||||
texlive-full \
|
||||
latexmk \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /workspace
|
||||
|
||||
COPY . .
|
||||
|
||||
# For build
|
||||
CMD ["latexmk", "-pdf", "-file-line-error", "-halt-on-error", "-interaction=nonstopmode", "resume.tex", "cv.tex"]
|
||||
55
build-local.sh
Executable file
55
build-local.sh
Executable file
@@ -0,0 +1,55 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Function to cleanup
|
||||
cleanup() {
|
||||
rm -f personal_info.tex.bak
|
||||
}
|
||||
|
||||
# Ensure cleanup runs even if script fails
|
||||
trap cleanup EXIT
|
||||
|
||||
# Create output directory
|
||||
mkdir -p output
|
||||
|
||||
# Build public version
|
||||
echo "Building public version..."
|
||||
docker build --platform linux/arm64 -t resume-builder .
|
||||
docker run --platform linux/arm64 --rm -v "$(pwd)/output:/workspace/output" resume-builder bash -c "latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode resume.tex cv.tex && cp *.pdf output/"
|
||||
|
||||
# Move files to final names
|
||||
mv output/resume.pdf output/resume-public.pdf
|
||||
mv output/cv.pdf output/cv-public.pdf
|
||||
|
||||
# Build private version
|
||||
echo "Building private version..."
|
||||
# Backup current personal_info.tex
|
||||
cp personal_info.tex personal_info.tex.bak
|
||||
|
||||
# Create private info file
|
||||
cat > personal_info.tex << EOL
|
||||
% Private version of personal information
|
||||
\\newcommand{\\personalName}{Sean O'Connor}
|
||||
\\newcommand{\\personalEmail}{${PERSONAL_EMAIL:-}}
|
||||
\\newcommand{\\personalPhone}{${PERSONAL_PHONE:-}}
|
||||
\\newcommand{\\personalWebsite}{soconnor.dev}
|
||||
\\newcommand{\\personalSchoolEmail}{${PERSONAL_SCHOOL_EMAIL:-}}
|
||||
\\newcommand{\\personalHomeAddress}{${PERSONAL_HOME_ADDRESS:-}}
|
||||
\\newcommand{\\personalSchoolAddress}{${PERSONAL_SCHOOL_ADDRESS:-}}
|
||||
EOL
|
||||
|
||||
# Build private version using the same image
|
||||
docker run --platform linux/arm64 --rm -v "$(pwd):/workspace" -v "$(pwd)/output:/workspace/output" resume-builder bash -c "latexmk -pdf -file-line-error -halt-on-error -interaction=nonstopmode resume.tex cv.tex && cp *.pdf output/"
|
||||
|
||||
# Move files to final names
|
||||
mv output/resume.pdf output/resume-private.pdf
|
||||
mv output/cv.pdf output/cv-private.pdf
|
||||
|
||||
# Restore original personal_info.tex
|
||||
mv personal_info.tex.bak personal_info.tex
|
||||
|
||||
echo "Build complete!"
|
||||
echo "Generated files in output/:"
|
||||
echo "- resume-public.pdf"
|
||||
echo "- cv-public.pdf"
|
||||
echo "- resume-private.pdf"
|
||||
echo "- cv-private.pdf"
|
||||
22
cv.tex
22
cv.tex
@@ -43,16 +43,18 @@
|
||||
\begin{minipage}[t]{\textwidth}
|
||||
\centering
|
||||
\ifx\personalEmail\empty\else
|
||||
Personal: \personalEmail
|
||||
\fi
|
||||
Personal: \personalEmail%
|
||||
\fi%
|
||||
\ifx\personalSchoolEmail\empty\else
|
||||
\ifx\personalEmail\empty\else\\\fi
|
||||
School: \personalSchoolEmail
|
||||
\fi
|
||||
\ifx\personalEmail\empty\else\\\fi
|
||||
School: \personalSchoolEmail%
|
||||
\fi%
|
||||
\ifx\personalWebsite\empty\else
|
||||
\ifx\personalEmail\empty\else\\\fi
|
||||
\ifx\personalSchoolEmail\empty\else\\\fi
|
||||
Website: \href{https://\personalWebsite}{\personalWebsite}
|
||||
\ifx\personalEmail\empty
|
||||
\ifx\personalSchoolEmail\empty\else\\\fi
|
||||
\else\\%
|
||||
\fi
|
||||
Website: \href{https://\personalWebsite}{\personalWebsite}%
|
||||
\fi
|
||||
\end{minipage}
|
||||
|
||||
@@ -101,7 +103,7 @@
|
||||
\item Designed and deployed facility's first multi-camera live streaming system with ATEM production switchers and custom graphics pipeline
|
||||
\item Developed real-time graphics integration system connecting race timing data to broadcast overlays
|
||||
\item Operated replay and instant highlight system for live broadcast to FloRacing and NBC Sports networks
|
||||
\item Managed live production during race events, coordinating camera operators, replay, and graphics control\\
|
||||
\item Managed live production during race events, coordinating camera operators, replay, and graphics control
|
||||
\end{itemize}
|
||||
|
||||
|
||||
@@ -138,7 +140,7 @@
|
||||
|
||||
\textbf{Physics Teaching Assistant} \hfill \textbf{Aug 2023 - May 2024}
|
||||
\begin{itemize}[noitemsep,topsep=2pt]
|
||||
\item Assisted students during laboratory sections with introductory and exploratory physics lab experiments, working with industry-standard data collection and analysis tools\\
|
||||
\item Assisted students during laboratory sections with introductory and exploratory physics lab experiments, working with industry-standard data collection and analysis tools
|
||||
\end{itemize}
|
||||
|
||||
\textscbf{Miller Place School District} \hfill \textscbf{Miller Place, NY}
|
||||
|
||||
32
resume.tex
32
resume.tex
@@ -49,23 +49,27 @@
|
||||
\end{minipage}%
|
||||
\begin{minipage}[t]{0.33\textwidth}
|
||||
\centering
|
||||
\ifx\personalEmail\empty\else
|
||||
\personalEmail
|
||||
\fi
|
||||
\ifx\personalEmail\empty\else\personalEmail\fi%
|
||||
\ifx\personalSchoolEmail\empty\else
|
||||
\ifx\personalEmail\empty\else\\\fi
|
||||
\personalSchoolEmail
|
||||
\fi
|
||||
\ifx\personalEmail\empty\else\\\fi
|
||||
\personalSchoolEmail%
|
||||
\fi%
|
||||
\ifx\personalPhone\empty\else
|
||||
\ifx\personalEmail\empty\else\\\fi
|
||||
\ifx\personalSchoolEmail\empty\else\\\fi
|
||||
\personalPhone
|
||||
\fi
|
||||
\ifx\personalEmail\empty
|
||||
\ifx\personalSchoolEmail\empty\else\\\fi
|
||||
\else\\%
|
||||
\fi
|
||||
\personalPhone%
|
||||
\fi%
|
||||
\ifx\personalWebsite\empty\else
|
||||
\ifx\personalEmail\empty\else\\\fi
|
||||
\ifx\personalSchoolEmail\empty\else\\\fi
|
||||
\ifx\personalPhone\empty\else\\\fi
|
||||
\href{https://\personalWebsite}{\personalWebsite}
|
||||
\ifx\personalEmail\empty
|
||||
\ifx\personalSchoolEmail\empty
|
||||
\ifx\personalPhone\empty\else\\\fi
|
||||
\else\\%
|
||||
\fi
|
||||
\else\\%
|
||||
\fi
|
||||
\href{https://\personalWebsite}{\personalWebsite}%
|
||||
\fi
|
||||
\end{minipage}%
|
||||
\begin{minipage}[t]{0.33\textwidth}
|
||||
|
||||
Reference in New Issue
Block a user