0

I am writing my CV and I want to add an address using the \location field in the \makecvheader command. My location information is however large and going out of the page. I have a lot of unused space (see red area) and would like to use this to split the \location information in 2-3 rows, yet have the \locationsymbol appear only once, possibly centered vertically next to the height of the location information.

Want to have address over multiple lines before the LinkedIn profile link

I searched but could not easily find an already answered question on similar lines. Your help will be much appreaciated.

I am attaching a MWE and my modified class file code. Could you please help me to achieve this?

This is the MWE. Note: kindly add any photo on your PC for the MWE to work.

\documentclass[10pt,a4paper,ragged2e]{altacv}

\geometry{left=1cm,right=9cm,marginparwidth=6.8cm,marginparsep=1.2cm,top=1.25cm,bottom=1.25cm}

\ifxetexorluatex % If using xelatex or lualatex: \setmainfont{Carlito} \else % If using pdflatex: \usepackage[utf8]{inputenc} \usepackage[T1]{fontenc} \usepackage[default]{lato} \usepackage{amsmath} % \usepackage{fontawesome} \usepackage{fontawesome5} \usepackage{xfrac} \usepackage{hyperref} \hypersetup{hidelinks} \fi

% Choose the color from here: https://www.webfx.com/web-design/color-picker/ % Change the colours if you want to %\definecolor{VividPurple}{HTML}{3E0097} \definecolor{myColor}{HTML}{1E4B7A} \definecolor{myColor2}{HTML}{0E56A0} \definecolor{SlateGrey}{HTML}{2E2E2E} \definecolor{LightGrey}{HTML}{666666} %\colorlet{heading}{VividPurple} %\colorlet{accent}{VividPurple} \colorlet{heading}{myColor} \colorlet{accent}{myColor} \colorlet{emphasis}{SlateGrey} \colorlet{body}{black!70}

% Change the bullets for itemize and rating marker % for \cvskill if you want to \renewcommand{\itemmarker}{{\small\textbullet}} \renewcommand{\ratingmarker}{\faCircle}

% control spacing between icon and heading \newcommand{\myspace}{\hspace{0.1cm}}

\begin{document} \name{John \myspace Doe \myspace \faMale}

\tagline{Product & Innovation Specialist} \photo{3.5cm}{pictures/briangriffin} \personalinfo{ \dob{01.01.2024}\hspace{2cm} \nationality{Germany} \email{\href{mailto:johndoe@doe.com}{johndoe@doe.com}} \phone{+49 123456789 \faWhatsapp} \location{Want to enter address here which spans multiple lines and leaves page} % \skype{vadvait} \linkedin{\href{https://www.linkedin.com/}{\textcolor{myColor2}{LinkedIn Profile}}} }

%% Make the header extend all the way to the right, if you want. \begin{fullwidth} \makecvheader \end{fullwidth}

%% Depending on your tastes, you may want to make fonts of itemize environments slightly smaller \AtBeginEnvironment{itemize}{\normalsize} \begin{fullwidth} \cvsection{\faUser \myspace Background}

\cvsection{\faBriefcase \myspace Work Experience}
\cvevent{Senior Solution Specialist}{Good Company}{August 2022 - current}{Berlin, DEU}
\begin{itemize}     
    \item Demonstrated an in-depth understanding of customer processes and tool workflows by supporting over 50 qualification activities across various autonomy sector clients, leveraging extensive product knowledge and industry experience.
\end{itemize}

\divider

\cvevent{Lead Module Product Manager}{Great Company LLC}{April 2021 -- June 2022}{New York, USA}
\begin{itemize}

    \item Directed the approval process for cross-vehicle nameplate modules, managing an annual budget of approximately €100 million with precision using project and product management methodologies. Prioritized adherence to governmental regulations while fostering innovation tailored to diverse markets.


\end{itemize}


%\newpage \end{fullwidth} \cvsection{\faGraduationCap \myspace Education}

\cvevent{M.\,Sc.\  Automotive Engineering}{Vanderbilt University}{Oct. 2011 -- May 2014}{Aachen, DEU}

\divider

\cvevent{B.\,E.\  Mechanical Engineering}{MIT}{Sep. 2007 -- May 2011}{Hyderabad, IND}


\cvsection{\faTrophy \myspace Achievements} \begin{itemize} \item Rubik's cube genius \end{itemize}

\vfill \textbf{John Doe}\ \today %Ingolstadt, June 2022}

\end{document}

And here is the .cls file I am using.

\NeedsTeXFormat{LaTeX2e}[1995/12/01]
%% v1.4: Detect TL2018 to handle accented characters in class information
\@ifl@t@r\fmtversion{2018/04/01}{\UseRawInputEncoding}{}
\ProvidesClass{altacv}[2018/12/01 AltaCV v1.1.5, yet another alternative class for a résumé/curriculum vitae.]

%% v1.1: Optionally load academicons \newif\if@academicons \DeclareOption{academicons}{@academiconstrue} %% v1.1.3: Choice of round/square photo \newif\if@normalphoto \DeclareOption{normalphoto}{@normalphototrue} \DeclareOption*{\PassOptionsToClass{\CurrentOption}{extarticle}} \newif\if@raggedtwoe \DeclareOption{ragged2e}{@raggedtwoetrue} \ProcessOptions\relax

\LoadClass{extarticle}

\RequirePackage[margin=2cm]{geometry} %\RequirePackage{fontawesome} \RequirePackage{fontawesome5} \RequirePackage{ifxetex,ifluatex} \RequirePackage{scrlfile}

%% v1.1.5: added for convenience \newif\ifxetexorluatex \ifxetex \xetexorluatextrue \else \ifluatex \xetexorluatextrue \else \xetexorluatexfalse \fi \fi

%% v1.1: Optionally load academicons %% v1.1.5: Handle different versions of academicons \if@academicons \ifxetexorluatex \RequirePackage{fontspec} %% academicons in TL2018 doesn't require %% Academicons to be installed in OS fonts %% so can be loaded directly @ifl@t@r\fmtversion{2018/04/01}{% \RequirePackage{academicons} }{% % TL2017 @ifl@t@r\fmtversion{2017/04/01}{% @ifpackagelater{academicons}{2018/03/01}{% \RequirePackage{academicons} }{% \let\ori@newfontfamily\newfontfamily% \renewcommand{\newfontfamily}[2]{} \RequirePackage{academicons} \let\newfontfamily\ori@newfontfamily \newfontfamily{\AI}{academicons.ttf} } }{% TL2016 requires the package to be loaded before % the version can be checked. Only added because % Overleaf v1 still runs TL2016; will be removed % when v1 is completely retired. \let\ori@newfontfamily\newfontfamily% \renewcommand{\newfontfamily}[2]{} \RequirePackage{academicons} \let\newfontfamily\ori@newfontfamily \newfontfamily{\AI}{academicons.ttf} } } \else \ClassError{AltaCV}{academicons unsupported by latex or pdflatex. Please compile with xelatex or lualatex}{Please compile with xelatex or lualatex to use the academicons option} \fi \fi

\if@raggedtwoe \RequirePackage[newcommands]{ragged2e} \fi

\RequirePackage{xcolor}

\colorlet{accent}{blue!70!black} \colorlet{heading}{black} \colorlet{emphasis}{black} \colorlet{body}{black!80!white} \newcommand{\itemmarker}{{\small\textbullet}} \newcommand{\ratingmarker}{\faCircle}

\RequirePackage{tikz} \usetikzlibrary{arrows} \RequirePackage[skins]{tcolorbox} \RequirePackage{enumitem} \setlist{leftmargin=*,labelsep=0.5em,nosep,itemsep=0.25\baselineskip,after=\vskip0.25\baselineskip} \setlist[itemize]{label=\itemmarker} \RequirePackage{graphicx} \RequirePackage{etoolbox} \RequirePackage{dashrule} \RequirePackage{multirow,tabularx} \RequirePackage{changepage} % \RequirePackage{marginfix} \RequirePackage{hyperref}

\setlength{\parindent}{0pt} \newcommand{\divider}{\textcolor{body!30}{\hdashrule{\linewidth}{0.6pt}{0.5ex}}\medskip}

\newenvironment{fullwidth}{% \begin{adjustwidth}{}{\dimexpr-\marginparwidth-\marginparsep\relax}} {\end{adjustwidth}}

\newcommand{\emailsymbol}{\faEnvelope} \newcommand{\phonesymbol}{\faPhone} \newcommand{\homepagesymbol}{\faChain} \newcommand{\locationsymbol}{\faMapMarker} \newcommand{\linkedinsymbol}{\faLinkedin} \newcommand{\twittersymbol}{\faTwitter} \newcommand{\githubsymbol}{\faGithub} \newcommand{\orcidsymbol}{\aiOrcid} \newcommand{\mailsymbol}{\faEnvelope} \newcommand{\xingsymbol}{\faXing} \newcommand{\facebooksymbol}{\faFacebook} \newcommand{\skypesymbol}{\faSkype} \newcommand{\calendarsymbol}{\faCalendar} \newcommand{\flagsymbol}{\faFlag}

\newcommand{\printinfo}[2]{\mbox{\textcolor{accent}{\normalfont #1}\hspace{0.5em}#2\hspace{2em}}}

\newcommand{\name}[1]{\def@name{#1}} \newcommand{\persinfo}[1]{\def@persinfo{#1}} \newcommand{\dob}[1]{\printinfo{\calendarsymbol}{#1}} \newcommand{\nationality}[1]{\printinfo{\flagsymbol}{#1}} \newcommand{\tagline}[1]{\def@tagline{#1}} \newcommand{\photo}[2]{\def@photo{#2}\def@photodiameter{#1}} \newcommand{\email}[1]{\printinfo{\emailsymbol}{#1}} \newcommand{\mailaddress}[1]{\printinfo{\mailsymbol}{#1}} \newcommand{\phone}[1]{\printinfo{\phonesymbol}{#1}} \newcommand{\homepage}[1]{\printinfo{\homepagesymbol}{#1}} \newcommand{\twitter}[1]{\printinfo{\twittersymbol}{#1}} \newcommand{\linkedin}[1]{\printinfo{\linkedinsymbol}{#1}} %\newcommand{\linkedin}[1]{\printinfo{\linkedinsymbol}{\href[Profile]{''#1''}}} \newcommand{\github}[1]{\printinfo{\githubsymbol}{#1}} \newcommand{\orcid}[1]{\printinfo{\orcidsymbol}{#1}} \newcommand{\location}[1]{\printinfo{\locationsymbol}{#1}} \newcommand{\xing}[1]{\printinfo{\xingsymbol}{#1}} \newcommand{\facebook}[1]{\printinfo{\facebooksymbol}{#1}} \newcommand{\skype}[1]{\printinfo{\skypesymbol}{#1}}

\newcommand{\personalinfo}[1]{\def@personalinfo{#1}}

% picture to the left, personal info to the right

\newcommand{\makecvheader}{ \begingroup \begin{minipage}{@photodiameter} \if@normalphoto \includegraphics[width=\linewidth]{@photo} \else \tikz\path[fill zoom image={@photo}]circle[radius=0.5\linewidth]; \fi% \end{minipage}\hfill% \ifdef{@photodiameter}{\begin{minipage}{\dimexpr\linewidth-@photodiameter-2em}}{}% {\begin{minipage}{\dimexpr.58\linewidth}% \raggedright\color{emphasis}% {\huge\bfseries\MakeUppercase{@name}\par} %\smallskip %{\normalsize{@persinfo}\par} \medskip {\Large\bfseries\color{accent}@tagline\par} \end{minipage}} \hfill \begin{minipage}{\dimexpr.4\linewidth}{% {\normalsize\bfseries@personalinfo\par}} \end{minipage}\par \ifdef{@photodiameter}{% \end{minipage}\par}{}% \endgroup\medskip }

\renewenvironment{quote}{\color{accent}\itshape\large}{\par}

\newcommand{\grade}[1]{% \begin{tikzpicture} \clip (1em-.4em,-.35em) rectangle (5em +.5em ,1em); \foreach \x in {1,2,...,5}{ \path[{fill=body!30}] (\x em,0) circle (.35em); % backColor } \begin{scope} \clip (1em-.4em,-.35em) rectangle (#1em +.5em ,1em); \foreach \x in {1,2,...,5}{ \path[{fill=accent}] (\x em,0) circle (.35em); % frontColor } \end{scope} \end{tikzpicture}% }

\newcommand{\cvsection}[2][]{% \bigskip% \ifstrequal{#1}{}{}{\marginpar{\vspace*{\dimexpr1pt-\baselineskip}\raggedright\input{#1}}}% {\color{heading}\large\bfseries\MakeUppercase{#2}}\[-1ex]% {\color{heading}\rule{\linewidth}{2pt}\par}\medskip }

\newcommand{\cvsubsection}[1]{% \smallskip% {\color{emphasis}\large\bfseries{#1}\par}\medskip }

% v1.1.4: fixes inconsistent font size \newcommand{\cvevent}[4]{% {\large\color{emphasis}#1\par} \smallskip\normalsize \ifstrequal{#2}{}{}{ \textbf{\color{accent}#2}\par \smallskip} \ifstrequal{#3}{}{}{{\small\makebox[0.5\linewidth][l]{\faCalendar\hspace{0.5em}#3}}}% \ifstrequal{#4}{}{}{{\small\makebox[0.5\linewidth][l]{\faMapMarker\hspace{0.5em}#4}}}\par \medskip\normalsize }

\newcommand{\cvachievement}[3]{% \begin{tabularx}{\linewidth}{@{}p{2em} @{\hspace{1ex}} >{\raggedright\arraybackslash}X@{}} \multirow{2}{*}{\Large\color{accent}#1} & \bfseries\textcolor{emphasis}{#2}\ & #3 \end{tabularx}% \smallskip }

\newcommand{\cvtag}[1]{% \tikz[baseline]\node[anchor=base,draw=body!30,rounded corners,inner xsep=1ex,inner ysep =0.75ex,text height=1.5ex,text depth=.25ex]{#1}; }

\newcommand{\cvskill}[2]{% \textcolor{emphasis}{\textbf{#1}}\hfill \grade{#2}\par }

% Adapted from @Jake's answer at http://tex.stackexchange.com/a/82729/226 \newcommand{\wheelchart}[4][0]{% \begingroup\centering \def\innerradius{#3}% \def\outerradius{#2}% % Calculate total \pgfmathsetmacro{\totalnum}{0}% \foreach \value/\colour/\name in {#4} {% \pgfmathparse{\value+\totalnum}% \global\let\totalnum=\pgfmathresult% }% \begin{tikzpicture}

  % Calculate the thickness and the middle line of the wheel
  \pgfmathsetmacro{\wheelwidth}{\outerradius-\innerradius}
  \pgfmathsetmacro{\midradius}{(\outerradius+\innerradius)/2}
  \pgfmathsetmacro{\totalrot}{-90 + #1}

  % Rotate so we start from the top
  \begin{scope}[rotate=\totalrot]

  % Loop through each value set. \cumnum keeps track of where we are in the wheel
  \pgfmathsetmacro{\cumnum}{0}
  \foreach \value/\width/\colour/\name in {#4} {
        \pgfmathsetmacro{\newcumnum}{\cumnum + \value/\totalnum*360}

        % Calculate the percent value
        \pgfmathsetmacro{\percentage}{\value/\totalnum*100}
        % Calculate the mid angle of the colour segments to place the labels
        \pgfmathsetmacro{\midangle}{-(\cumnum+\newcumnum)/2}

        % This is necessary for the labels to align nicely
        \pgfmathparse{
           (-\midangle>180?"west":"east")
        } \edef\textanchor{\pgfmathresult}
        \pgfmathparse{
           (-\midangle>180?"flush left":"flush right")
        } \edef\textalign{\pgfmathresult}
        \pgfmathsetmacro\labelshiftdir{1-2*(-\midangle<180)}

        % Draw the color segments. Somehow, the \midrow units got lost, so we add 'pt' at the end. Not nice...
        \filldraw[draw=white,fill=\colour] (-\cumnum:\outerradius) arc (-\cumnum:-(\newcumnum):\outerradius) --
        (-\newcumnum:\innerradius) arc (-\newcumnum:-(\cumnum):\innerradius) -- cycle;

        % Draw the data labels
        \draw  [*-,thin,emphasis] node [append after command={(\midangle:\midradius pt) -- (\midangle:\outerradius + 1ex) -- (\tikzlastnode)}] at (\midangle:\outerradius + 1ex) [xshift=\labelshiftdir*0.5cm,inner sep=1ex, outer sep=0pt, text width=\width,anchor=\textanchor,align=\textalign,font=\small,text=body]{\name};
        % Set the old cumulated angle to the new value
        \global\let\cumnum=\newcumnum
    }
  \end{scope}

% \draw[gray] (0,0) circle (\outerradius) circle (\innerradius); \end{tikzpicture}\par \endgroup }

\newcommand{\cvref}[3]{% \smallskip \textcolor{emphasis}{\textbf{#1}}\par \begin{description}[font=\color{accent},style=multiline,leftmargin=1.35em] \item[\normalfont\emailsymbol] #2 \item[\small\normalfont\mailsymbol] #3 \end{description} % \medskip }

\newenvironment{cvcolumn}[1]{\begin{minipage}[t]{#1}\raggedright}{\end{minipage}}

\RequirePackage[backend=biber,style=authoryear,sorting=ydnt]{biblatex} %% For removing numbering entirely when using a numeric style % \setlength{\bibhang}{1em} % \DeclareFieldFormat{labelnumberwidth}{\makebox[\bibhang][l]{\itemmarker}} % \setlength{\biblabelsep}{0pt} \defbibheading{pubtype}{\cvsubsection{#1}} \renewcommand{\bibsetup}{\vspace*{-\baselineskip}} \AtEveryBibitem{\makebox[\bibhang][l]{\itemmarker}} \setlength{\bibitemsep}{0.25\baselineskip}

% v1.1.2: make it easier to add a sidebar aligned with top of next page \RequirePackage{afterpage} \newcommand{\addsidebar}[2][]{\marginpar{% \ifstrequal{#1}{}{}{\vspace*{#1}}% \input{#2}}% } \newcommand{\addnextpagesidebar}[2][]{\afterpage{\addsidebar[#1]{#2}}}

\AtBeginDocument{% \pagestyle{empty} \color{body} \raggedright }

1 Answers1

1

You can reimplement \printinfo (line 124 in the class) using an itemize environment, which allows for line breaks.

Since the enumitem package is already loaded by the class, you can use some of the settings of that package to center the icons and reduce the line spacing, similar to itemize - alignment of custom bullet symbols and Vertical space in lists.

In the class:

\SetLabelAlign{center}{\hss#1\hss}
\newcommand{\printinfo}[2]{\begin{itemize}[leftmargin=20pt,align=center,parsep=-2pt]\item[\textcolor{accent}{\normalfont #1}]#2\end{itemize}}

Alternatively in the document itself with \renewcommand, if you (or future readers) don't want to modify the class:

\documentclass[10pt,a4paper,ragged2e]{altacv}
\SetLabelAlign{center}{\hss#1\hss}
\renewcommand{\printinfo}[2]{\begin{itemize}[leftmargin=20pt,align=center,parsep=-2pt]\item[\textcolor{accent}{\normalfont #1}]#2\end{itemize}}

Set the info using \\ for line breaks:

\personalinfo{
  \dob{01.01.2024}\hspace{2cm}
  \nationality{Germany}
  \email{\href{mailto:johndoe@doe.com}{johndoe@doe.com}}
  \phone{+49 123456789 \faWhatsapp}
  \location{Want to enter address here\\which spans multiple lines\\and leaves page}
%  \skype{vadvait}
  \linkedin{\href{https://www.linkedin.com/}{\textcolor{myColor2}{LinkedIn Profile}}}
}

Result:

enter image description here

Marijn
  • 37,699