Moderncv \cventry 垂直和水平对齐

Moderncv \cventry 垂直和水平对齐

我试图在\cventry宏的第一个参数中的年份下方插入一个图像,并根据条目其余部分所占用的空间自动垂直和水平对齐该图像。我设法使其水平对齐,但没有垂直对齐,如下所示。我尝试了和\vspace*{\fill}其他框的几个选项,但似乎都没有用。

关于如何实现垂直和水平对齐的任何线索?

\documentclass{moderncv}

\begin{document}

\cventry{1970\\
\makebox[\hintscolumnwidth]{%
\includegraphics[height=35pt]{misc/stackexchange-black}%
}%
}
{Title}{subtitle}{}{}{text\\text\\more text\\text\\text.}{}

\end{document}

水平对齐。

答案1

已编辑至自动居中垂直图像,使用\Xcventry一个额外的参数,其中下划线材质作为参数提供#1。我使用\stackunder宏来实现它。它还可以采用一个可选参数,该参数表示年份和图像之间的差距。

在下面的 MWE 中,对于第一个条目,我使用\cventry并使用可选参数手动居中\stackunder。对于第 2-4 种情况,我使用 自动居中。最后一种情况是没有下划线的\Xcventryvanilla 。\cventry

已编辑,以适用于较小的图像和多行标题和副标题。

\documentclass{moderncv}
\moderncvstyle{classic}
\moderncvcolor{green}
\renewcommand{\familydefault}{\rmdefault}
\usepackage{stackengine}
\def\stackalignment{r}
\firstname{Andrew}
\familyname{\newline Doe}
\title{Curriculum Vitae}
\newcommand\Xcventry[8]{%
  \setbox0=\hbox{\addstackgap[.5\baselineskip]{\parbox[b]{\hintscolumnwidth}{#1}}}%
  \setbox2=\hbox{\parbox[b]{\dimexpr\linewidth-\hintscolumnwidth}{%
    \textbf{#3}, \textit{#4}.\par#7}}%
  \def\stacktype{L}%
  \edef\stackshift{\the\dimexpr.5\dimexpr\ht2+\ht0-\baselineskip}%
  \cventry{\stackunder[\stackshift]{#2}{%
    \makebox[\hintscolumnwidth]{#1}}}{#3}{#4}{#5}{#6}{#7}{#8}%
}
\begin{document}
\maketitle
% MANUALLY
\cventry{\stackunder[8pt]{1970}{\includegraphics[width=\hintscolumnwidth]{example-image}}
}
{Title}{subtitle}{}{}{text\\text\\more text\\text\\text.}{}
% \Xcventry
\Xcventry{\includegraphics[width=\hintscolumnwidth]{example-image}}{1970}
{Title Title Title Title Title Title }{subtitle subtitle subtitle subtitle }
  {}{}{text\\text\\more text\\text\\text.}{}
% \Xcventry
\Xcventry{\includegraphics[width=.5\hintscolumnwidth]{example-image}}{1970}
{Title}{subtitle}{}{}{text\\text\\more text\\text\\text.
                      \\more text\\text\\text.}{}
% \Xcventry
\Xcventry{\includegraphics[width=\hintscolumnwidth]{example-image}}{1970}
{Title Title Title Title Title Title }{subtitle subtitle subtitle subtitle }
  {}{}{text\\text\\more text\\text\\text.
                      text\\text\\more text\\text\\text.}{}
% \cventry with no figure
\cventry{1970}
{Title}{subtitle}{}{}{text\\text\\more text\\text\\text.}{}
\end{document}

在此处输入图片描述

相关内容