在自定义环境中创建列表时出现问题

在自定义环境中创建列表时出现问题

这是我在 LaTeX stackexchange 上发表的第一篇文章,它与我在使用自定义类时遇到的一些问题有关。

我正在尝试用 LaTeX 写简历。我在网上复制了一些代码来创建一个类文件,麻烦的部分有以下定义:

\newenvironment{eventlist}{%
\newcommand*\inskip{}
\renewcommand\item[3]{%
\inskip%
{\raggedleft\sc ##1\\[1pt]}
{##2}\\[2pt]
{\Large\it ##3}
\medskip
\renewcommand\inskip{\bigskip}}}
{\bigskip}

这应该为各个部分创建一个漂亮的标题就业和教育

之后我在主文档中声明,例如:

\begin{eventlist}

\item{September 2013 -- To date}
 {Physics B.Sc. student}
 {ETH Z\"urich} 
  Here goes a description of what I did specifically, which is formatted in 
  'standard article font' and I'd love to have it in bullet point format.

  ...

\end{eventlist}

目前一切都运行良好。

问题是,如果我在括号外面写东西,\item您会看到上面的示例,同时仍然在事件列表环境中,并尝试创建一个列表(通过\begin{itemize}... \end{itemize}),输出非常糟糕,并且根本不左对齐。

但是,为了更好地传达想法,我确实需要有一个项目符号列表。目前,我可以使用 • 符号来实现这一点,但是您可以理解为什么这样做不太好(首先,它在进入下一行后不会缩进,这会导致列表看起来很乱)。

此外,如果您想运行这段代码,我推荐 XeLaTeX 或 LuaLaTeX,因为其他编译器不起作用(其他编译器可能适用于类文件的这一部分,但整个内容只能用这两个编译器进行编译)。

回顾:关于如何在这种环境下创建美观的列表,您有什么想法吗?

非常感谢您的帮助和支持!

答案1

我建议使用enumitem自定义description环境来完成此操作。我 \item 用一个\event命令来代替,该命令接受三个参数并执行精确的格式化。

\documentclass[12pt, british]{article}
\usepackage[utf8]{inputenc}
\usepackage{babel}
\usepackage[showframe]{geometry}
\usepackage[autostyle]{csquotes}

\usepackage{enumitem}
\newcounter{rowctr}
\newlist{eventlist}{description}{1}
\setlist[eventlist]{font=\normalfont, style=nextline, leftmargin=0pt}
\newcommand\event[3]{%
\item[\setcounter{rowctr}{0}%
\parbox{\linewidth}{{\hfill\textsc{#1}}\\\raggedright#2\\ \Large#3}]%
\leavevmode\vspace*{-\partopsep}}%

\begin{document}
\begin{eventlist}
  \event{September 2013 -- To date}
  {Physics B.Sc. student}
  {ETH Zürich}
  \begin{itemize}[wide, leftmargin =*]
    \item   Here goes a description of what I did specifically, which is formatted in
          \enquote{standard article font} and I'd love to have it in bullet point format.
    \item Some other description
  \end{itemize}
\end{eventlist}

\end{document} 

在此处输入图片描述

相关内容