[Tex/LaTex] Change the position personal information in modernCV, oldstyle

moderncv

I'm trying to make a cv in LaTeX with class moderncv. After view days of searching, I finally found a template that I like, but there are a problem that I could not solve it after two days of trying. I would appreciate if anyone help me on this.

There is a defined column in the right side of cover letter and left side of cv that belong to the some personal information such as name, address, email and …, as you can see in the screenshots

screenshot 1 (cover letter):
https://ibb.co/m8wqc7
screenshot 2 (CV):
https://ibb.co/gcvix7

I dont want to have this column, so set its width to zero, but as you can imagine, it's getting worse.

Is there any way that i could change the position of this information to top of the page in cover letter, see this screenshot: https://ibb.co/iiLQc7

and remove the information part the CV and define them normally in a section: see the screenshot: https://ibb.co/bF0Qc7

here is the LATEX code that I use:

\documentclass[11pt,a4paper,sans]{moderncv} 


\moderncvstyle{oldstyle} 
\moderncvcolor{blue} 
\usepackage[utf8]{inputenc} 
\usepackage[ngerman]{babel} 
\usepackage[scale=0.75]{geometry} 
\setlength{\hintscolumnwidth}{5cm} 

% personal data 
\name{Peter}{Bode} 
\title{M.Sc.} 
\address{Glücksstr. 13}{55444 Glücksdorf}{Deutschland \medskip}
\phone[mobile]{+49~(176)~111~2222} 
\email{hglueck@bsp.de} 
\photo[3,0cm][0.2pt]{image.jpg}
%-------------------------------------------------------------------- 
% content 
%------------------------------------------------------------------- 
\begin{document} 

% cover letter............. 

 \recipient{Max Mustermann AG}{Personalwesen \\ Hans-Beispiel-Straße 2 \\ 55555 Beispielhausen} 

\date{\today} 
\opening{Sehr geehrter Damen und Herren,} 
\closing{Mit freundlichen Grüßen, \vspace{0,3cm} \\ 
%\includegraphics[width=4.5cm]{image.png}  
\vspace{-2,0cm}} 
%\enclosure[Anhänge]{Lebenslauf, Zeugnisse} % use an optional argument to  use a string other than "Enclosure", or redefine \enclname 
\makelettertitle 

Texts in cover letter!!!


\bigskip 


\makeletterclosing 


% CV...................... 
\newpage

\makecvtitle 

\section{Ausbildung} 
\cventry{10/04--05/05}{Master}{Karl Tux Institut für Technologie}{}{\textit{Note: 1,1}}{Pinguinkunde, Hauptfächer Prokrastination und Bummelei I, Celebrare maximus und systematische Zeitverschwendung.} 

\cventry{10/96--07/02}{Abitur}{Hans Pinguin Gymnasium}{Tuxdorf}{\textit{Note: "`sehr gut"'}}{Allgemeine Hochschulreife, Technisches Gymnasium} 

\section{Masterarbeit} 
\cvitem{Thema}{\emph{Pressures Produced When Penguins Pooh -- Calculations on Avian Defaecation", Note: 1,0}} 
\cvitem{Betreuer}{Prof. Dr. Tom Tux, Dipl.-Ing. Tina Tinker} 
\cvitem{Abstrakt}{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.} 

\section{Bachelorarbeit} 
\cvitem{Thema}{\emph{Untersuchung der Gleitfähigkeit von Bananenschalen, Note: 1,5}} 
\cvitem{Betreuer}{Prof. Dr. Andreas Code, Dipl.-Ing. Johan Github} 


\newpage 

\section{Berufserfahrung} 


\section{Praktika} 


\section{Soziales Engagement} 


\section{Sprachen} 
\cvitemwithcomment{Deutsch}{Muttersprache}{} 
\cvitemwithcomment{Englisch}{Verhandlungssicher}{} 
\cvitemwithcomment{Spanisch}{Gute Kenntnisse}{} 
\cvitemwithcomment{Portugisisch}{Grundkenntnisse}{} 

\section{EDV} 
\cvdoubleitem{Betriebssysteme}{Windows, Linux}{Programmieren}{Java, C, Python} 
\cvdoubleitem{Office}{Microsoft Office, LibreOffice}{CAD}{SolidWorks} 
\cvdoubleitem{Mathematik}{OriginPro, Maple}{Textsatz}{\LaTeX} 

\section{Referenzen} 
\cvitem{Prof. Dr.-Ing. habil. Tom Tuxer}{Fraunhofer Institut für Pinguinkunde, tom.tuxer@pingu.edu, (098)~7654~321} 

\nocite{*} 
\bibliographystyle{plain} 
\bibliography{publications} % 'publications' is the name of a BibTeX file 


\clearpage 

\end{document} 

Best Answer

With your used style oldstyle of class moderncv, version 2.0.0 you need to redefine the two commands \makeletterhead and \makecvhead to get what you want.

In command \makeletterhead you need to move the details up like:

\renewcommand*{\makeletterhead}{%
  % recompute lengths (in case we are switching from letter to resume, or vice versa)
  \leftskip=0pt% needs to be set before \recomputeletterlengths
  \recomputeletterlengths%
  % sender contact info
  \if@details% % <======================================================
    \hspace{0pt}%
    \marginpar{%
      \addressfont\textcolor{color2}{%
        {\bfseries\@firstname~\@lastname}\@firstdetailselementfalse%
        \ifthenelse{\isundefined{\@addressstreet}}{}{\makenewline\addresssymbol\@addressstreet%
          \ifthenelse{\equal{\@addresscity}{}}{}{\makenewline\@addresscity}% if \addresstreet is defined, \addresscity and \addresscountry will always be defined but could be empty
          \ifthenelse{\equal{\@addresscountry}{}}{}{\makenewline\@addresscountry}}%
        \collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
          \makenewline\hbox to 1.0em{\csname\collectionloopkey phonesymbol\endcsname}~\collectionloopitem}%
        \ifthenelse{\isundefined{\@email}}{}{\makenewline\hbox to 1.0em{\emailsymbol}~\emaillink{\@email}}%
        \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\hbox to 1.0em{\homepagesymbol}~\httplink{\@homepage}}%
        \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
          \makenewline\hbox to 1.0em{\csname\collectionloopkey socialsymbol\endcsname}~\collectionloopitem}%
        \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}}%
    % ensure no extra spacing after \makelettertitle due to a possible blank line
    %\ignorespacesafterend% not working
    \par\vspace{-\baselineskip}\vspace{-\parskip}\fi
  % recipient block
  {\addressfont%
    {\bfseries\upshape\@recipientname}\\%
    \@recipientaddress}\\[1em]%
  % date
  \@date\\[2em]%
  % opening
  \@opening\\[1.5em]%
  }

In command \makecvhead you can simple comment out the detailed informations and add that what you need as an own \section:

\renewcommand*{\makecvhead}{
  % recompute lengths (in case we are switching from letter to resume, or vice versa)
  \recomputecvlengths%
  % optional picture box
  \newbox{\makecvheadpicturebox}%
  \savebox{\makecvheadpicturebox}{%
    \ifthenelse{\isundefined{\@photo}}%
    {}%
    {%
      \color{color1}%
      \setlength\fboxrule{\@photoframewidth}%
      \ifdim\@photoframewidth=0pt%
        \setlength{\fboxsep}{0pt}\fi%
      \framebox{\includegraphics[width=\@photowidth]{\@photo}}}}%
  % name and optional title
  \newlength{\makecvheadpicturewidth}\settowidth{\makecvheadpicturewidth}{\usebox{\makecvheadpicturebox}}%
  \newlength{\makecvheadnamewidth}\setlength{\makecvheadnamewidth}{\textwidth-\makecvheadpicturewidth}%
  \begin{minipage}[b]{\makecvheadnamewidth}%
    \namestyle{\@firstname\ \@lastname}%
    \ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}%
  \end{minipage}%
  % optional photo
  \usebox{\makecvheadpicturebox}\\[2.5em]%
  % optional quote
  \ifthenelse{\isundefined{\@quote}}%
    {}%
    {{\centering\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}}%
  % optional details
  %\if@details%
    %\makecvheadinfo{%
      %\addressfont\color{color2}%
      %\ifthenelse{\isundefined{\@addressstreet}}{}{\makenewline\addresssymbol\@addressstreet%
        %\ifthenelse{\equal{\@addresscity}{}}{}{\makenewline\@addresscity}% if \addresstreet is defined, \addresscity and \addresscountry will always be defined but could be empty
        %\ifthenelse{\equal{\@addresscountry}{}}{}{\makenewline\@addresscountry}}%
      %\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
        %\makenewline\hbox to 1.0em{\csname\collectionloopkey phonesymbol\endcsname}~\collectionloopitem}%
      %\ifthenelse{\isundefined{\@email}}{}{\makenewline\hbox to 1.0em{\emailsymbol}~\emaillink{\@email}}%
      %\ifthenelse{\isundefined{\@homepage}}{}{\makenewline\hbox to 1.0em{\homepagesymbol}~\httplink{\@homepage}}%
      %\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
        %\makenewline\hbox to 1.0em{\csname\collectionloopkey socialsymbol\endcsname}~\collectionloopitem}%
      %\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi
      }

So with the complete MWE

\documentclass[11pt,a4paper,sans]{moderncv} 

\moderncvstyle{oldstyle} 
\moderncvcolor{blue} 

\usepackage[utf8]{inputenc} 
\usepackage[ngerman]{babel} 
\usepackage[scale=0.75]{geometry} 
\setlength{\hintscolumnwidth}{5cm} 

\usepackage{blindtext}

\makeatletter % <=======================================================
\renewcommand*{\makeletterhead}{%
  % recompute lengths (in case we are switching from letter to resume, or vice versa)
  \leftskip=0pt% needs to be set before \recomputeletterlengths
  \recomputeletterlengths%
  % sender contact info
  \if@details% % <======================================================
    \hspace{0pt}%
    \marginpar{%
      \addressfont\textcolor{color2}{%
        {\bfseries\@firstname~\@lastname}\@firstdetailselementfalse%
        \ifthenelse{\isundefined{\@addressstreet}}{}{\makenewline\addresssymbol\@addressstreet%
          \ifthenelse{\equal{\@addresscity}{}}{}{\makenewline\@addresscity}% if \addresstreet is defined, \addresscity and \addresscountry will always be defined but could be empty
          \ifthenelse{\equal{\@addresscountry}{}}{}{\makenewline\@addresscountry}}%
        \collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
          \makenewline\hbox to 1.0em{\csname\collectionloopkey phonesymbol\endcsname}~\collectionloopitem}%
        \ifthenelse{\isundefined{\@email}}{}{\makenewline\hbox to 1.0em{\emailsymbol}~\emaillink{\@email}}%
        \ifthenelse{\isundefined{\@homepage}}{}{\makenewline\hbox to 1.0em{\homepagesymbol}~\httplink{\@homepage}}%
        \collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
          \makenewline\hbox to 1.0em{\csname\collectionloopkey socialsymbol\endcsname}~\collectionloopitem}%
        \ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}}%
    % ensure no extra spacing after \makelettertitle due to a possible blank line
    %\ignorespacesafterend% not working
    \par\vspace{-\baselineskip}\vspace{-\parskip}\fi
  % recipient block
  {\addressfont%
    {\bfseries\upshape\@recipientname}\\%
    \@recipientaddress}\\[1em]%
  % date
  \@date\\[2em]%
  % opening
  \@opening\\[1.5em]%
  }


\renewcommand*{\makecvhead}{
  % recompute lengths (in case we are switching from letter to resume, or vice versa)
  \recomputecvlengths%
  % optional picture box
  \newbox{\makecvheadpicturebox}%
  \savebox{\makecvheadpicturebox}{%
    \ifthenelse{\isundefined{\@photo}}%
    {}%
    {%
      \color{color1}%
      \setlength\fboxrule{\@photoframewidth}%
      \ifdim\@photoframewidth=0pt%
        \setlength{\fboxsep}{0pt}\fi%
      \framebox{\includegraphics[width=\@photowidth]{\@photo}}}}%
  % name and optional title
  \newlength{\makecvheadpicturewidth}\settowidth{\makecvheadpicturewidth}{\usebox{\makecvheadpicturebox}}%
  \newlength{\makecvheadnamewidth}\setlength{\makecvheadnamewidth}{\textwidth-\makecvheadpicturewidth}%
  \begin{minipage}[b]{\makecvheadnamewidth}%
    \namestyle{\@firstname\ \@lastname}%
    \ifthenelse{\equal{\@title}{}}{}{\\[1.25em]\titlestyle{\@title}}%
  \end{minipage}%
  % optional photo
  \usebox{\makecvheadpicturebox}\\[2.5em]%
  % optional quote
  \ifthenelse{\isundefined{\@quote}}%
    {}%
    {{\centering\begin{minipage}{\quotewidth}\centering\quotestyle{\@quote}\end{minipage}\\[2.5em]}}%
  % optional details
  %\if@details%
    %\makecvheadinfo{%
      %\addressfont\color{color2}%
      %\ifthenelse{\isundefined{\@addressstreet}}{}{\makenewline\addresssymbol\@addressstreet%
        %\ifthenelse{\equal{\@addresscity}{}}{}{\makenewline\@addresscity}% if \addresstreet is defined, \addresscity and \addresscountry will always be defined but could be empty
        %\ifthenelse{\equal{\@addresscountry}{}}{}{\makenewline\@addresscountry}}%
      %\collectionloop{phones}{% the key holds the phone type (=symbol command prefix), the item holds the number
        %\makenewline\hbox to 1.0em{\csname\collectionloopkey phonesymbol\endcsname}~\collectionloopitem}%
      %\ifthenelse{\isundefined{\@email}}{}{\makenewline\hbox to 1.0em{\emailsymbol}~\emaillink{\@email}}%
      %\ifthenelse{\isundefined{\@homepage}}{}{\makenewline\hbox to 1.0em{\homepagesymbol}~\httplink{\@homepage}}%
      %\collectionloop{socials}{% the key holds the social type (=symbol command prefix), the item holds the link
        %\makenewline\hbox to 1.0em{\csname\collectionloopkey socialsymbol\endcsname}~\collectionloopitem}%
      %\ifthenelse{\isundefined{\@extrainfo}}{}{\makenewline\@extrainfo}}\fi
      }
\makeatother



% personal data 
\name{Peter}{Bode} 
\title{M.Sc.} 
\address{Glücksstr. 13}{55444 Glücksdorf}{Deutschland \medskip}
\phone[mobile]{+49~(176)~111~2222} 
\email{hglueck@bsp.de} 
\photo[3.0cm][0.2pt]{example-image}
%-------------------------------------------------------------------- 
% content 
%------------------------------------------------------------------- 
\begin{document} 

% cover letter............. 

 \recipient{Max Mustermann AG}{Personalwesen \\ Hans-Beispiel-Straße 2 \\ 55555 Beispielhausen} 

\date{\today} 
\opening{Sehr geehrter Damen und Herren,} 
\closing{Mit freundlichen Grüßen, \vspace{0,3cm} \\ 
%\includegraphics[width=4.5cm]{image.png}  
\vspace{-2,0cm}} 
%\enclosure[Anhänge]{Lebenslauf, Zeugnisse} % use an optional argument to  use a string other than "Enclosure", or redefine \enclname 
\makelettertitle 

\blindtext


\bigskip 


\makeletterclosing 


% CV...................... 
\newpage

\makecvtitle 

\section{Persönliche Daten} % <=========================================
\cvitem{Adresse}{Glücksstr. 13, 55444 Glücksdorf}
\makeatletter
\ifthenelse{\isundefined{\@email}}{}{\cvitem{\emailsymbol}{\emaillink{\@email}}}
\makeatother

\section{Ausbildung} 
\cventry{10/04--05/05}{Master}{Karl Tux Institut für Technologie}{}{\textit{Note: 1,1}}{Pinguinkunde, Hauptfächer Prokrastination und Bummelei I, Celebrare maximus und systematische Zeitverschwendung.} 

\cventry{10/96--07/02}{Abitur}{Hans Pinguin Gymnasium}{Tuxdorf}{\textit{Note: "`sehr gut"'}}{Allgemeine Hochschulreife, Technisches Gymnasium} 

\section{Masterarbeit} 
\cvitem{Thema}{\emph{Pressures Produced When Penguins Pooh -- Calculations on Avian Defaecation", Note: 1,0}} 
\cvitem{Betreuer}{Prof. Dr. Tom Tux, Dipl.-Ing. Tina Tinker} 
\cvitem{Abstrakt}{Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem.} 

\section{Bachelorarbeit} 
\cvitem{Thema}{\emph{Untersuchung der Gleitfähigkeit von Bananenschalen, Note: 1,5}} 
\cvitem{Betreuer}{Prof. Dr. Andreas Code, Dipl.-Ing. Johan Github} 


\newpage 

\section{Berufserfahrung} 


\section{Praktika} 


\section{Soziales Engagement} 


\section{Sprachen} 
\cvitemwithcomment{Deutsch}{Muttersprache}{} 
\cvitemwithcomment{Englisch}{Verhandlungssicher}{} 
\cvitemwithcomment{Spanisch}{Gute Kenntnisse}{} 
\cvitemwithcomment{Portugisisch}{Grundkenntnisse}{} 

\section{EDV} 
\cvdoubleitem{Betriebssysteme}{Windows, Linux}{Programmieren}{Java, C, Python} 
\cvdoubleitem{Office}{Microsoft Office, LibreOffice}{CAD}{SolidWorks} 
\cvdoubleitem{Mathematik}{OriginPro, Maple}{Textsatz}{\LaTeX} 

\section{Referenzen} 
\cvitem{Prof. Dr.-Ing. habil. Tom Tuxer}{Fraunhofer Institut für Pinguinkunde, tom.tuxer@pingu.edu, (098)~7654~321} 

%\nocite{*} 
%\bibliographystyle{plain} 
%\bibliography{publications} % 'publications' is the name of a BibTeX file 


\clearpage 

\end{document} 

you get the following resulting pages:

letter page

and

cv page