«Здесь нет строки, которая могла бы закончиться» в пользовательской команде

«Здесь нет строки, которая могла бы закончиться» в пользовательской команде

Я работаю над созданием резюме в LaTeX и определил команду, которая позволяет мне вводить свой опыт работы. Единственная проблема в том, что всякий раз, когда я пытаюсь использовать подробный список, как показано ниже, я получаю "! LaTeX Error: There's no line here to end.See the LaTeX manual or LaTeX Companion for explanation.Type H <return> for immediate help.... To Be Added}". Мне также приходится добавлять разрывы строк вручную, используя \\по какой-то причине.

Код для моего tex-документа:

\section{Related Experience}

\begin{entrylist}
  \experience
    {Jan 2014 – Present}
    {IT Systems}
    {Chocolate Covered Alien Co.; Mars, PA}
    {\textbf{Responsibilities:}\\
    \begin{itemize}
        \item Cook aliens to a nice texture
        \item Chocolate cover said aliens
    \end{itemize}}
    {\textbf{Key Achievements:}\\
    \begin{itemize}
        \item Ate chocolate covered aliens without the boss finding out
    \end{itemize}}
    \end{entrylist}

Код для моего документа класса:

\newenvironment{entrylist}{%
    \begin{tabular*}{\textwidth}{@{\extracolsep{\fill}}ll}
}{%
    \end{tabular*}
}

\newcommand{\experience}[5]{%
    \textbf{#1}&\parbox[t]{12cm}{%
        \textbf{#2}\\%
        \textit{#3}\\%
        #4\\%
        #5\vspace{\parsep}%
    }\\}

решение1

Проблема в том, что \begin{itemize} ... \end{itemize}это не строка текста, поэтому вы не можете разместить \\после нее. Окружения стоят отдельно, поэтому они всегда будут размещаться после абзаца и перед другим.

Это означает, что \\вы используете after, #4что вызывает ошибку. Также вам не нужно \\в конце вашего макроса, если вы используете \vspace{\parsep}. Переопределите ваш макрос на:

\newcommand{\experience}[5]{%
    \textbf{#1}&\parbox[t]{12cm}{%
        \textbf{#2}\newline%
        \textit{#3}\newline%
        #4%
        #5\vspace{\parsep}%
}}

РЕДАКТИРОВАТЬ:Однако это может вызвать другую проблему (предупреждение). Прямо сейчас ширина второго столбца таблицы составляет 12 см, а первый столбец может растягиваться до любой желаемой длины. Таким образом, вы будете получать переполнение hbox каждый раз, когда текст в первом столбце «отталкивает» второй столбец. Чтобы избавиться от переполнения hbox, вам также нужно определить фиксированную длину для первого столбца. Вам нужно сделать это таким образом, чтобы оба столбца вместе не превышали ширину строки. Вы можете сделать это так:

\newcommand{\experience}[5]{%
    \parbox[t]{0.3\linewidth}{\textbf{#1}}&\parbox[t]{0.63\linewidth}{%
        \textbf{#2}\newline%
        \textit{#3}\newline%
        #4%
        #5\vspace{\parsep}%
}}

Где 0,3 + colsep + 0,63 приблизительно соответствует 1 ширине линии.

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