moderncv: cventry без названия должности

moderncv: cventry без названия должности

Мой текущий вид cventryвыглядит так:

\item{\cventry{year}{}{company}{location}{} ... }

Мне не нужна вторая строка, но она все равно занимает место, что выглядит довольно плохо, поскольку заголовок не выровнен по вертикали (по сравнению с маркером слева):

введите описание изображения здесь

Есть идеи, как это изменить, чтобы выглядело лучше? Заранее спасибо.

ОБНОВЛЯТЬ: Я использовал этот шаблон:https://www.overleaf.com/articles/physics/vnrpxccpnqkw#.WH-HWhsrLmE

МВЭ:

\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{banking}
\moderncvcolor{blue}
\usepackage[utf8]{inputenc}
\usepackage[scale=0.75]{geometry}

\usepackage{import}
\name{Isaiah}{Becker-Mayer}
\title{Physics}
\begin{document}
\section{Previous Employment}
\vspace{6pt}
\begin{itemize}

\item{\cventry{Date}{}{Company}{Location}{}{\vspace{3pt} ... }}

\end{itemize}
\end{document}

МВЭ 2:

После добавления сопроводительного письма к решению, предоставленному @Martin, оно, похоже, сломалось.

введите описание изображения здесь

\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{banking}
\moderncvcolor{blue}
\usepackage[utf8]{inputenc}
\usepackage[scale=0.75]{geometry}

\renewcommand*{\cventry}[7][.25em]{
  \begin{tabular*}{\maincolumnwidth}{l@{\extracolsep{\fill}}r}%
    {\bfseries #4, #5} & {\itshape #2}\\%
  \end{tabular*}%
  \ifx&#7&%
  \else{\\%
    \begin{minipage}{\maincolumnwidth}%
      \small#7%
    \end{minipage}}\fi%
  \par\addvspace{#1}}

\usepackage{import}

\recipient{HR Departmnet}{Corporation\\123 Pleasant Lane\\12345 City, State} % Letter recipient
\date{\today} % Letter date
\opening{Dear Sir or Madam,} % Opening greeting
\closing{Sincerely yours,} % Closing phrase
\enclosure[Anhang]{Lebenslauf} % List of enclosed documents

\name{Isaiah}{Becker-Mayer}
\title{Physics}
\begin{document}

\makelettertitle % Print letter title

\section{Previous Employment}
\vspace{6pt}
\begin{itemize}

\item{\cventry{Date}{}{Company}{Location}{}{\vspace{3pt} ... }}

\end{itemize}
\end{document}

решение1

Вы можете просто взглянуть на определение вашего квентри в этом стиле:

\renewcommand*{\cventry}[7][.25em]{
  \begin{tabular*}{\maincolumnwidth}{l@{\extracolsep{\fill}}r}%
    {\bfseries #4} & {\bfseries #5}\\%
    {\itshape #3\ifthenelse{\equal{#6}{}}{}{, #6}} & {\itshape #2}\\%
  \end{tabular*}%
  \ifx&#7&%
  \else{\\%
    \begin{minipage}{\maincolumnwidth}%
      \small#7%
    \end{minipage}}\fi%
  \par\addvspace{#1}}

Как вы видите, первые две строки заданы как таблица. Вы можете переопределить стиль, чтобы исключить таблицу и переупорядочить вывод полей. Если вам никогда не понадобится эта вторая строка (аргументы №3 и №6), вы можете полностью удалить их, например:

\renewcommand*{\cventry}[7][.25em]{
  \begin{tabular*}{\maincolumnwidth}{l@{\extracolsep{\fill}}r}%
    {\bfseries #4, #5} & {\itshape #2}\\%
  \end{tabular*}%
  \ifx&#7&%
  \else{\\%
    \begin{minipage}{\maincolumnwidth}%
      \small#7%
    \end{minipage}}\fi%
  \par\addvspace{#1}}

адаптированный банковский стиль

Если вам нужен этот тип записи иногда с этой строкой, а иногда без нее, вы можете добавить команду для последней цели и использовать стандартный cventry в противном случае. Однако тогда ваш макет будет несколько непоследовательным. Это зависит от вас, если вас беспокоят такие вещи.

Вы также можете переключиться на другой стиль, где эту строку можно будет легко опустить. Например, я использую классический стиль и переопределил cventry следующим образом (что удаляет некоторые жестко закодированные знаки препинания):

\renewcommand*{\cventry}[7][.25em]{%
  \cvitem[#1]{#2}{%
    {\bfseries#3}%
    \ifthenelse{\equal{#4}{}}{}{\newline{\slshape#4}}% ... into this one (without comma).
    \ifthenelse{\equal{#5}{}}{}{, #5}%
    \ifthenelse{\equal{#6}{}}{}{, #6}%
    \strut%
    \ifx&#7&%
      \else{\newline{}\begin{minipage}[t]{\linewidth}\small#7\end{minipage}}\fi}}

адаптированный классический стиль квентри


Редактировать: Я добавил все команды письма и переместил cv на вторую страницу. Кроме того, cv получает заголовок, который я вызываю в MWE ниже. Видимо, что-то установлено при вызове заголовка, который сообщает itemize вставить перенос строки непосредственно после \item. Не помещая cventries в среду itemize, проблема решается.

moderncv на самом деле должен откатить все (буквенные) настройки для заголовка и тела при переключении на cv pat by \makecvtitle. Очевидно, что это не так.

Поскольку вам нужна среда itemize, вот еще одно решение: я изменил команду \makeletterhead(которая вызывается \makelettertitle), чтобы решить проблему с элементами (остальное — это то, что загружает банковский стиль). Комментирование \raggedrightперед открытием делает то, что вам нужно. Смотрите полный пример ниже.


Обновление на raggedright: Вчера позже я понял, что должен делать raggedright (1), а также в чем проблема с переносами строк после \item(2).

  1. Буква теперь выровнена. Однако в некоторых местах буквы набраны raggedright. Если вы хотите такое поведение, вы можете либо оставить raggedright там (см. 2. для решения по элементам itemize), либо вручную задать текст письма в среде flushleft. Не то чтобы нельзя было перейти из режима raggedright обратно в макет justified paragraph.

  2. Перевод строки происходит из-за слишком широкой таблицы. Он установлен так, \linewidthчто не учитывает ни отступ, ни маркер списка. Что вы можете сделать, так это уменьшить ширину таблицы (см. ниже, где новая ширина была определена вручную, а не из отступа списка). Лично я считаю, что буква должна быть выровнена, но при таком подходе вы можете решить это по своему усмотрению.

Я изменил примечание к редактированию выше, чтобы оно ссылалось на следующий пример. Ниже приведен обновленный пример, использующий все обсуждаемые изменения. Для более простого использования \cventryя изменил его, чтобы использовать itemize сам по себе.

\documentclass[11pt,a4paper,sans]{moderncv}
\moderncvstyle{banking}
\moderncvcolor{blue}
\usepackage[utf8]{inputenc}
\usepackage[scale=0.75]{geometry}
\usepackage{blindtext}

\makeatletter
\renewcommand*{\makeletterhead}{%
  % recompute lengths (in case we are switching from letter to resume, or vice versa)
  \recomputeletterlengths%
  % sender block
  \makehead%
  \par%
   % recipient block
  \begin{minipage}[t]{.5\textwidth}
    \raggedright%
    \addressfont%
    {\bfseries\upshape\@recipientname}\\%
    \@recipientaddress%
  \end{minipage}
  % date
  \hfill% US style
%  \\[1em]% UK style
  \@date\\[2em]% US informal style: "January 1, 1900"; UK formal style: "01/01/1900"
  % opening
%   \raggedright% COMMENTED FOR JUSTIFIED LETTER BODY AND FULL WIDTH CVENTRY
  \@opening\\[1.5em]%
  % ensure no extra spacing after \makelettertitle due to a possible blank line
%  \ignorespacesafterend% not working
  \hspace{0pt}\par\vspace{-\baselineskip}\vspace{-\parskip}%
  }
\makeatother

\renewcommand*{\cventry}[7][.25em]{
    \begin{itemize}
        \item \begin{tabular*}{0.975\maincolumnwidth}{l@{\extracolsep{\fill}}r}%
        {\bfseries #4, #5} & {\itshape #2}\\%
      \end{tabular*}%
      \ifx&#7&%
      \else{\\%
        \begin{minipage}{\maincolumnwidth}%
          \small#7%
        \end{minipage}}\fi%
      \par\addvspace{#1}%
    \end{itemize}%
}

\recipient{HR Departmnet}{Corporation\\123 Pleasant Lane\\12345 City, State} % Letter recipient
\date{\today} % Letter date
\opening{Dear Sir or Madam,} % Opening greeting
\closing{Sincerely yours,} % Closing phrase
\enclosure[Anhang]{Lebenslauf} % List of enclosed documents

\name{Isaiah}{Becker-Mayer}
\title{Physics}
\begin{document}

\makelettertitle % Print letter title

\blindtext[1]

\makeletterclosing
\clearpage

\makecvtitle

\section{Previous Employment}
% \vspace{6pt}
\cventry{Date}{}{Company}{Location}{}{I did stuff there\newline and more stuff\newline and more stuff}
\cventry{Date}{}{Company}{Location}{}{I did stuff there}
\end{document}

Связанный контент