我想用 itemize 创建一个嵌套列表,并在页面右侧添加一个“列”。我知道有几种方法可以制作制表位或类似的东西,但它们似乎都与行的缩进有关。
这就是我目前在 TeX 中所做的(而且很糟糕),使用 -package tabto
:
\tabto{0.865\linewidth} Zeit in h
\vspace{-5mm}
\begin{itemize}
\item Projekteinrichtung \tabto{0.9\linewidth} \textbf{2}
\begin{itemize}
\item VisualStudio-Projekt \tabto{0.895\linewidth} 1,5
\item SQL-Server \tabto{0.895\linewidth} 0,5
\end{itemize}
\item Basis-Oberfläche mit geplanten Funktionen \tabto{0.9\linewidth} \textbf{3}
\item Funktionslevel 1 umsetzen \tabto{0.9\linewidth} \textbf{35}
\begin{itemize}
\item Manuelle Zeiterfassung \tabto{0.895\linewidth} 2
\item Datenbindung an SQL-Server \tabto{0.895\linewidth} 8
\item Rechteverwaltung für SQL-Server-Zugriffe \tabto{0.895\linewidth} 10
\item Projektzuordnung für Zeitabrechnung \tabto{0.895\linewidth} 2
\item \glqq automatische\grqq\ Erfassung \tabto{0.895\linewidth} 2
\item Anzeige der eigenen Zeiten \tabto{0.895\linewidth} 3
\item Manuelles Bearbeiten der eigenen Zeiten \tabto{0.895\linewidth} 5
\item Export bzw. Druck \tabto{0.895\linewidth} 3
\end{itemize}
\item Basisoberfläche durch richtiges UI ersetzen \tabto{0.9\linewidth} \textbf{12}
\begin{itemize}
\item Tray-Funktionalität \tabto{0.895\linewidth} 2
\item praktisches und übersichtliches UI für die Basisansicht \tabto{0.895\linewidth} 5
\item praktisches und übersichtliches UI für die Liste der Zeiten \tabto{0.895\linewidth} 5
\end{itemize}
\item Funktionslevel 2 umsetzen (Stufe 1 der optionalen Anforderungen) \tabto{0.9\linewidth} \textbf{15}
\begin{itemize}
\item AutoStart \tabto{0.895\linewidth} 2
\item Verbessertes Tray-Menü \tabto{0.895\linewidth} 3
\item Einfache Auswertungen \tabto{0.895\linewidth} 10
\end{itemize}
\item Dokumentation abschließen (Erstellung läuft meist parallel ab) \tabto{0.9\linewidth} \textbf{3}
\end{itemize}
我考虑过通过减去缩进来计算真正的制表位,但无法读出当前行的缩进......
我该如何实现这种布局?我也会使用表格,只要我能够让它看就像一个嵌套列表。
答案1
另一种可能性是 --- 我认为宏是不言自明的。它还可以管理很长的行。
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{enumitem}
\newlength\rboxlen\setlength{\rboxlen}{3cm}
\newlength\rspace\setlength{\rspace}{1em}
\newcommand{\splat}[1]{\hfill\rlap{\makebox[\rboxlen][l]{\hspace{\rspace} #1}}}
\newcommand{\splatout}[2][\null]{\hfill\llap{#1}%
{\makebox[\rboxlen][l]{\hspace{\rspace} #2}}}
\begin{document}
Title \splatout[This will go before:]{Number}
% you need a blank line here
\begin{itemize}[rightmargin=\rboxlen]
\item Level 1 short \splat{l1-s}
\begin{itemize}
\item Level 2 short \splat{l2-s}
\item Level 2 but this time it is long,
so long it will go into the next part of the line,
and then some, and then some \splat{l2-l}
\item Short no splat
\end{itemize}
\item Level 1 no splat
\item Level 1 but this time it is long,
so long it will go into the next part of the line, and then some,
and then some \splat{l2-l}
\end{itemize}
\splatout[Sum:]{sum}
您只需\rboxlen
和\rspace
距离即可改变空间。
答案2
像这样 :
\documentclass{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage[frenchb]{babel}
\begin{document}
Titre\hfill Somme
\begin{itemize}
\item Level 1 \hfill \makebox[1cm][l]{\textbf{10}}
\begin{itemize}
\item Level 2.1 \hfill \makebox[1cm][l]{4}
\item Level 2.2 \hfill \makebox[1cm][l]{3}
\item Level 2.3 \hfill \makebox[1cm][l]{3}
\end{itemize}
\item Level 1.1 \hfill \makebox[1cm][l]{\textbf{10}}
\begin{itemize}
\item Level 2.1 \hfill \makebox[1cm][l]{4}
\item Level 2.2 \hfill \makebox[1cm][l]{3}
\item Level 2.3 \hfill \makebox[1cm][l]{3}
\end{itemize}
\end{itemize}
\hfill Somme : \makebox[1cm][l]{20}
\end{document}