枚举列表,每个项目位于新行中

枚举列表,每个项目位于新行中

问:如何创建一个包含连续编号列表的表格,每个项目都在一个新行中。这样我就可以在该行中插入其他列的内容。
我使用 luatex。
结果应如下所示(Word): 单词表图片 我尝试使用枚举并提出了这个不起作用的想法(查看评论)(缩短内容):

\documentclass[8pt,a4paper]{extarticle}

\usepackage{array}
\usepackage{enumitem}
\usepackage{tabularx}
\usepackage[left=1.2cm, right=1.2cm, top=0.0cm, bottom=0.0cm, headheight=37pt, includeheadfoot]{geometry}

\begin{document}

\begin{tabularx}{\textwidth}{p{8cm}|X|X|X|X|X|}
    \textbf{Bezeichnung} & \textbf{Einzelpreis} & \textbf{Anzahl}
    & \textbf{Intervall} & \textbf{Rabatt} & \textbf{€/Monat}\\
    \hline%<----->
    \begin{enumerate}[label=\Roman*,noitemsep]
        \item System: Software as a Service  Geltungsbereich Arbeits- und
        Gesundheitsschutz % &40,00€ & 1&Laufzeit &10\% &36,00€ \\ <--- Idea but doesn´t work...
        \item IT-Service-Pack Release, Update, Support:\newline
        Übernahme der kompletten IT-Administration und weitere Dienstleistungen
        \item Management: Auswahl-, Bestellung-, Überwachungs- und
        \item Audit zur Evaluation und Qualitätssicherung %& 7,39€ & 1 & Laufzeit & 10\% & 6,46€ \\ <--- I need smth like this...
    \end{enumerate} &40,00€ & 1&Laufzeit &10\% &36,00€ \\ %<---- Only this works
    \hline%<----->
    Summe & & & & &36,46€ \\
\end{tabularx}

\end{document}

看起来像这样: 在 Latex 中创建的表格

答案1

建立在Bernard 的解决方案magicrownumber 从这里

在此处输入图片描述

\documentclass[8pt,a4paper]{extarticle}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{tabularx}
\usepackage[left=1.2cm, right=1.2cm, top=0.0cm, bottom=0.0cm, headheight=37pt, includeheadfoot]{geometry}
\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother
\usepackage{makecell}
 \renewcommand{\theadfont}{\color{black}\bfseries}

\usepackage{array,etoolbox}
\preto\tabular{\setcounter{magicrownumbers}{0}}
\newcounter{magicrownumbers}
\newcommand\rownumber{\stepcounter{magicrownumbers}\Roman{magicrownumbers}.}

\begin{document}
\sffamily
\setlength{\extrarowheight}{2pt}
\noindent\begin{tabularx}{\textwidth}{@{\makebox[3em][r]{\rownumber\space}\compress}X|>{\color{red}}c|c|c|*{2}{>{\color{red}}c|}}
\multicolumn{1}{l|}{\textbf{Bezeichnung}} & \thead{Einzelpreis} & \textbf{Anzahl}
& \textbf{Intervall} & \thead{Rabatt} & \thead{€/Monat}\\
\hline
     System: Software as a Service Geltungsbereich Arbeits- und
    Gesundheitsschutz  &40,00€ & 1&Laufzeit &10\% &36,00€ \\ 
     IT-Service-Pack Release, Update, Support:\newline
    Übernahme der kompletten IT-Administration und weitere Dienstleistungen & & & & & \\
     Management: Auswahl-, Bestellung-, Überwachungs- und & & & & & \\
     Audit zur Evaluation und Qualitätssicherung & 7,39€ & 1 & Laufzeit & 10\% & 6,46€ \\ 
\hline
\multicolumn{1}{l|}{Summe} & & & & &36,46€ 
\end{tabularx}
\vskip1cm



\end{document}

计数器magicrownumber会在表格开始时自动重置,因此在新的表格环境中,计数器将重新开始I。如果您希望在表格环境中重置计数器,可以使用\setcounter{magicrownumner}{0}以下示例所示的方法:

在此处输入图片描述

\documentclass[8pt,a4paper]{extarticle}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{tabularx}
\usepackage[left=1.2cm, right=1.2cm, top=0.0cm, bottom=0.0cm, headheight=37pt, includeheadfoot]{geometry}
\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother
\usepackage{makecell}
 \renewcommand{\theadfont}{\color{black}\bfseries}

\usepackage{array,etoolbox}
\preto\tabular{\setcounter{magicrownumbers}{0}}
\newcounter{magicrownumbers}
\newcommand\rownumber{\stepcounter{magicrownumbers}\Roman{magicrownumbers}.}

\begin{document}
\sffamily
\setlength{\extrarowheight}{2pt}
\noindent\begin{tabularx}{\textwidth}{@{\makebox[3em][r]{\rownumber\space}\compress}X|>{\color{red}}c|c|c|*{2}{>{\color{red}}c|}}
\multicolumn{1}{l|}{\textbf{Bezeichnung}} & \thead{Einzelpreis} & \textbf{Anzahl}
& \textbf{Intervall} & \thead{Rabatt} & \thead{€/Monat}\\
\hline
     System: Software as a Service Geltungsbereich Arbeits- und
    Gesundheitsschutz  &40,00€ & 1&Laufzeit &10\% &36,00€ \\ 
     IT-Service-Pack Release, Update, Support:\newline
    Übernahme der kompletten IT-Administration und weitere Dienstleistungen & & & & & \\
     Management: Auswahl-, Bestellung-, Überwachungs- und & & & & & \\
     Audit zur Evaluation und Qualitätssicherung & 7,39€ & 1 & Laufzeit & 10\% & 6,46€ \\ 
\hline
\multicolumn{1}{l|}{Summe} & & & & &36,46€ 
\end{tabularx}

\bigskip

\noindent\begin{tabularx}{\textwidth}{@{\makebox[3em][r]{\rownumber\space}\compress}X|>{\color{red}}c|c|c|*{2}{>{\color{red}}c|}}
\multicolumn{1}{l|}{\textbf{Bezeichnung}} & \thead{Einzelpreis} & \textbf{Anzahl}
& \textbf{Intervall} & \thead{Rabatt} & \thead{€/Monat}\\
\hline
     System: Software as a Service Geltungsbereich Arbeits- und
    Gesundheitsschutz  &40,00€ & 1&Laufzeit &10\% &36,00€ \\ 
     IT-Service-Pack Release, Update, Support:\newline
    Übernahme der kompletten IT-Administration und weitere Dienstleistungen & & & & & \\
     Management: Auswahl-, Bestellung-, Überwachungs- und & & & & & \\
     Audit zur Evaluation und Qualitätssicherung & 7,39€ & 1 & Laufzeit & 10\% & 6,46€ \\ 
\hline
\multicolumn{1}{l|}{Summe} & & & & &36,46€ 
\end{tabularx}


\bigskip


\noindent\begin{tabularx}{\textwidth}{@{\makebox[3em][r]{\rownumber\space}\compress}X|>{\color{red}}c|c|c|*{2}{>{\color{red}}c|}}
\multicolumn{1}{l|}{\textbf{Bezeichnung}} & \thead{Einzelpreis} & \textbf{Anzahl}
& \textbf{Intervall} & \thead{Rabatt} & \thead{€/Monat}\\
\hline
     System: Software as a Service Geltungsbereich Arbeits- und
    Gesundheitsschutz  &40,00€ & 1&Laufzeit &10\% &36,00€ \\ 
     IT-Service-Pack Release, Update, Support:\newline
    Übernahme der kompletten IT-Administration und weitere Dienstleistungen & & & & & \\
     Management: Auswahl-, Bestellung-, Überwachungs- und & & & & & \\
     Audit zur Evaluation und Qualitätssicherung & 7,39€ & 1 & Laufzeit & 10\% & 6,46€ \setcounter{magicrownumbers}{0}\\ %<-------- Reset counter
\hline 
     System: Software as a Service Geltungsbereich Arbeits- und
    Gesundheitsschutz  &40,00€ & 1&Laufzeit &10\% &36,00€ \\ 
     IT-Service-Pack Release, Update, Support:\newline
    Übernahme der kompletten IT-Administration und weitere Dienstleistungen & & & & & \\
     Management: Auswahl-, Bestellung-, Überwachungs- und & & & & & \\
     Audit zur Evaluation und Qualitätssicherung & 7,39€ & 1 & Laufzeit & 10\% & 6,46€ \\
\hline
\multicolumn{1}{l|}{Summe} & & & & &36,46€
z\end{tabularx}

\end{document}

答案2

与@Bernard 的回答类似,但有些细节不同:

  • 对于第一列,定义了E枚举内容的列类型:
\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother
\newcolumntype{E}[1]{ >{\compress\enumerate}p{#1}<{\endenumerate}}

简化了第一列的书写列表

  • 对于枚举列表定义以下设置:
\setlist[enumerate]{%
                 resume=column,
                 nosep,
                 label=\Roman*.,
                 leftmargin=*,
                 after=\vspace*{-\dimexpr\baselineskip + \partopsep}}
  • 用于恢复列表枚举的选项resume=column,在enumerate列表设置中

  • 用于开始枚举的I.是专用于列中\setcounter{enumi}{0}第一列之前的内容(请参阅下面的 MWE)\item

  • 我没有费心为数字着色(我不清楚,是否在某一列中所有的数字都是红色的,或者它们是否根据其他标准进行选择)

  • 用于编译xelatex(由于使用 € 字符作为货币)

    完整的 MWE 是:

\documentclass[8pt,a4paper]{extarticle}
\usepackage[hmargin=1.2cm, vmargin=0.0cm, 
            headheight=37pt, includeheadfoot]{geometry}
\usepackage{enumitem}
\usepackage{ragged2e}
\usepackage{tabularx}

\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother
\newcolumntype{E}[1]{ >{\compress\enumerate}p{#1}<{\endenumerate}}
\newcommand*\mcbf[1]{\multicolumn{1}{>{\bfseries}l|}{#1}}

\begin{document}

\setlist[enumerate]{  label=\Roman*.,
                 nosep,
                 leftmargin=*,
                 after=\vspace*{-\dimexpr\baselineskip + \partopsep}}
\begin{tabularx}{\linewidth}{ >{\RaggedRight}E{5cm}*{5}{|X}|}
\mcbf{Bezeichnung}    
    & \mcbf{Einzelpreis}    & \mcbf{Anzahl}   & \mcbf{Intervall} 
    & \mcbf{Rabatt}         & \mcbf{€/Monat}\\
    \hline%<----->
    \setcounter{enumi}{0}
\item   System: Software as a Service  Geltungsbereich Arbeits- und Gesundheitsschutz
    & 40,00€    & 1     & Laufzeit  & 10\%  & 36,00€    \\ 
\item   IT-Service-Pack Release, Update, Support: 
    
        Übernahme der kompletten IT-Administration und weitere Dienstleistungen
\item Management: Auswahl-, Bestellung-, Überwachungs- und
\item Audit zur Evaluation und Qualitätssicherung 
    & 7,39€     & 1     & Laufzeit  & 10\%  & 6,46€     \\ 
    \hline%<----->
\mcbf{Summe}
    &           &       &           &       & 36,46€    \\
\end{tabularx}

\end{document}

在此处输入图片描述

附录: 通过与@Bernard 的对话(在下面的评论中)发起,看看我的原始答案的以下变体是否更适合您:

  • 表格中枚举样式的定义已移至序言部分,现在可用于表格中的所有列表
  • 第一列使用X列类型
  • 对于带有数字的列,使用包S中定义的列siunitx
  • 您的桌子被封装在table浮动环境中。
  • 为第二、第五和第六(最后一)列添加了红色
\documentclass[8pt,a4paper]{extarticle}
\usepackage[hmargin=1.2cm, vmargin=0.0cm,
            headheight=37pt, includeheadfoot]{geometry}
\usepackage{enumitem}
\usepackage{etoolbox}      % new 
\AtBeginEnvironment{table}{% for enumerate list in "table" environments
\setlist[enumerate]{%      % moved in preamble 
                 resume=column,
                 nosep,
                 label=\Roman*.,
                 leftmargin=*,
                 after=\vspace*{-\dimexpr\baselineskip + \partopsep}}
                            }
\usepackage{ragged2e}
\usepackage{tabularx}
\usepackage{xcolor}
\usepackage{siunitx}

\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother
\newcolumntype{E}{ >{\compress\enumerate}X<{\endenumerate}}
\newcommand*\mcbf[1]{\multicolumn{1}{>{\bfseries}l|}{#1}}

\begin{document}
    \begin{table}
\begin{tabularx}{\linewidth}{@{}
            >{\RaggedRight}E
            |S[table-format=2.2,color=red]<{\,\textcolor{red}{€}}
            |S[table-format=1.0]
            |l
            |S[table-format=2.0,color=red]<{\,\textcolor{red}{\%}}
            |S[table-format=2.2,color=red]<{\,\textcolor{red}{€}}|
                            }
\mcbf{Bezeichnung}
    & \mcbf{Einzelpreis}    & \mcbf{Anzahl}   & \mcbf{Intervall}
    & \mcbf{Rabatt}         & \mcbf{€/Monat}\\
    \hline
    \setcounter{enumi}{0}       % <--- reset counter enumi
\item   System: Software as a Service  Geltungsbereich Arbeits- und Gesundheitsschutz
    & 40,00     & 1     & Laufzeit  & 10            & 36,00 \cr % <---
    \setcounter{enumi}{1}
\item   IT-Service-Pack Release, Update, Support:

        Übernahme der kompletten IT-Administration und weitere Dienstleistungen
\item Management: Auswahl-, Bestellung-, Überwachungs- und
\item Audit zur Evaluation und Qualitätssicherung
    & 7,39      & 1     & Laufzeit  & 10            & 6,46 \cr % <---
    \hline%<----->
\mcbf{Sume}
    & \mcbf{}   &       &           & \mcbf{}       & 36,46 \cr % <---\
\end{tabularx}
    \end{table}
\end{document}

在此处输入图片描述

答案3

我建议使用以下两种解决方案之一:

\documentclass[8pt,a4paper]{extarticle}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{xcolor}
\usepackage{enumitem}
\usepackage{tabularx}
\usepackage[left=1.2cm, right=1.2cm, top=0.0cm, bottom=0.0cm, headheight=37pt, includeheadfoot]{geometry}
\makeatletter
\newcommand*{\compress}{\@minipagetrue}
\makeatother
\usepackage{makecell}
 \renewcommand{\theadfont}{\color{black}\bfseries}
\usepackage{listliketab}

\begin{document}
\sffamily
\setlength{\extrarowheight}{2pt}
\noindent\begin{tabularx}{\textwidth}{>{\compress}X|>{\color{red}}c|c|c|*{2}{>{\color{red}}c|}}
\textbf{Bezeichnung} & \thead{Einzelpreis} & \textbf{Anzahl}
& \textbf{Intervall} & \thead{Rabatt} & \thead{€/Monat}\\
\hline%<----->
\begin{enumerate}[label=\Roman*. ,widest =VI, noitemsep, wide=0pt, leftmargin=*, after =\vspace*{-\dimexpr\topsep + \partopsep}]
    \item System: Software as a Service Geltungsbereich Arbeits- und
    Gesundheitsschutz % &40,00€ & 1&Laufzeit &10\% &36,00€ \\ <--- Idea but doesn´t work...
    \item IT-Service-Pack Release, Update, Support:\newline
    Übernahme der kompletten IT-Administration und weitere Dienstleistungen
    \item Management: Auswahl-, Bestellung-, Überwachungs- und
    \item Audit zur Evaluation und Qualitätssicherung %& 7,39€ & 1 & Laufzeit & 10\% & 6,46€ \\ <--- I need smth like this...
\end{enumerate} &40,00€ & 1&Laufzeit &10\% &36,00€ \\ %<---- Only this works
\hline%<----->
Summe & & & & &36,46€ 
\end{tabularx}
\vskip1cm

\storestyleof{enumerate}
\begin{listliketab}
\newcounter{tabenum}\setcounter{tabenum}{0}
\newcommand{\nextnum}{\addtocounter{tabenum}{1}\Roman{tabenum}.}
\noindent\begin{tabularx}{\textwidth}{LX|>{\color{red}}c|c|c|*{2}{>{\color{red}}c|}}
    \multicolumn{2}{l|}{\textbf{Bezeichnung}} & \thead{Einzelpreis} & \textbf{Anzahl}
    & \textbf{Intervall} & \thead{Rabatt} & \thead{€/Monat}\\
    \hline\noalign{\vskip-1.8ex}%<----->
\nextnum & System: Software as a Service Geltungsbereich Arbeits- und
        Gesundheitsschutz &40,00€ & 1&Laufzeit &10\% &36,00€ \\[-3ex]
\nextnum & IT-Service-Pack Release, Update, Support:\newline
        Übernahme der kompletten IT-Administration und weitere Dienstleistungen & & & & & \\[-3ex]
\nextnum &Management: Auswahl-, Bestellung-, Überwachungs- und & & & & & \\[-3ex]
\nextnum & Audit zur Evaluation und Qualitätssicherung & 7,39€ & 1 & Laufzeit & 10\% & 6,46€ \\
\hline
\multicolumn{2}{l|}{Summe} & & & & &36,46€
\end{tabularx}
\end{listliketab}

\end{document} 

在此处输入图片描述

相关内容