Função para alinhar elementos horizontalmente

Função para alinhar elementos horizontalmente

Eu encontrei issomodelo de currículono verso, e gostaria de fazer alguns ajustes em como as informações do cabeçalho são posicionadas. Originalmente, é assim que o cabeçalho do currículo se parece:

Cabeçalho original

A função original makecvheaderfica assim:

\newcommand{\makecvheader}{%
  \begingroup
    \altacv@left@photos\hfill%
    \begin{minipage}{\dimexpr\linewidth-\altacv@photos@width}%
    \raggedright%
    {\namefont\color{name}\MakeUppercase{\@name}\par}
    \medskip
    {\taglinefont\color{tagline}\@tagline\par}
    \medskip
    {\personalinfofont\@personalinfo\par}
    \end{minipage}\hfill%
    \altacv@right@photos\par%
  \endgroup\medskip
}

Mas quero que todas as informações pessoais dispostas nas linhas abaixo do slogan sejam empilhadas à direita. Então pensei que se eu criasse um segundo minipagedentro do grupo seria o suficiente. Mas é isso que eu tenho:

Cabeçalho modificado

E aqui estão as modificações que fiz:

\newcommand{\makecvheader}{%
  \begingroup
    \altacv@left@photos%
    \begin{minipage}{\dimexpr\linewidth-\altacv@photos@width}%
    \raggedright%
    {\namefont\color{name}\MakeUppercase{\@name}\par}
    \medskip
    {\taglinefont\color{tagline}\MakeUppercase{\@tagline}}
    \medskip
    \end{minipage}%
    \begin{minipage}{\dimexpr\altacv@photos@width}%
    \raggedleft%
    {\personalinfofont\@personalinfo\par}
    \end{minipage}
  \endgroup\medskip
}

E aqui está como eu queria que fosse: Posicionamento Desejado

Então, qual é a melhor maneira de conseguir isso? Espero que algum de vocês possa me ajudar. Desde já, obrigado.

Responder1

A razão pela qual ele fica cortado é que a largura da primeira minipágina ( \dimexpr\linewidth-\altacv@photos@width) abrange toda a largura da linha menos a largura da imagem.

Aqui está uma solução rápida e suja.

\newcommand{\makecvheader}{%
  \begingroup
    \altacv@left@photos%
    \begin{minipage}[t]{0.5\linewidth}%
    {\namefont\color{name}\MakeUppercase{\@name}\par}
    \medskip
    {\taglinefont\color{tagline}\@tagline\par}
    \end{minipage}\hfill%
    \begin{minipage}[t]{3cm}%
    \raggedright%
    {\personalinfofont\@personalinfo\par}%
    \end{minipage}\hfill%
    \begin{minipage}[t]{\altacv@photos@width}
        \strut\vspace*{-\baselineskip}\newline\altacv@right@photos\par%
    \end{minipage}
  \endgroup\medskip
}

Você também não precisa modificar o arquivo cls usando renewcommande agrupando o código acima entre \makeatlettere \makeatother.

insira a descrição da imagem aqui

PS: Rápido porque leva menos tempo. Sujo porque você tem que ajustar as larguras das minipáginas de acordo com o conteúdo, não é a melhor maneira de alinhar o conteúdo e irá quebrar se você decidir usar opções diferentes (como a opção de colocar a imagem à esquerda).

informação relacionada