我在尝试用 LaTex 创建一个简单的待办事项列表时遇到了麻烦。基本上,我想要的是一个列表,左侧有空白的方块/框,而不是项目符号、数字、字母等。
以下是我一直在玩的东西:
%%To do list%%
\documentclass[12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{enumerate}
%\setenumerate[0]{label=(\square*)}
%\usepackage{enumitem}
\usepackage[checklist]{enumitem}
\renewcommand{\theenumi}{\square{enumi}}
%\renewcommand{\labelitemi}{$\Box$}
%\renewcommand{\labelitemi}{$\star$}
\renewcommand{\labelenumi}{\theenumi}
\begin{document}
My todo list.\\
Immediate plan of action.\\
\let\oldenumerate\enumerate
\renewcommand{\enumerate}{
\oldenumerate
\setlength{\itemsep}{1pt}
\setlength{\parskip}{0pt}
\setlength{\parsep}{0pt}
}
\begin{enumerate}
\item List item 1 goes here.
\item List item 2 goes here.
\begin{enumerate}
\item Sublist item 1 goes here.
\item Sublist item 2 goes here.
\end{enumerate}
\item List item 3 goes here
\item List item 4 goes here.
\end{enumerate}
\end{document}
我尝试过\begin{enumerate}
用几种不同的方式将新命令放在后面,甚至尝试过将其放在前面和后面\item
,但似乎都不起作用。我可以让列表用圆圈、星形、菱形等进行枚举,但不知为何,不是用方框/正方形。我做错了什么?
我使用 LaTex 已有近十年的时间,并且知道有很多方法可以用 LaTex 实现相同的目标,但我无法弄清楚这一点。
答案1
我会用enumitem
(并且不要将其与使用enumerate
包裹):
\documentclass{article}
\usepackage{enumitem,amssymb}
\newlist{todolist}{itemize}{2}
\setlist[todolist]{label=$\square$}
\begin{document}
My ToDo list
\begin{itemize}
\item Immediate plan of action.
\begin{todolist}
\item List item 1 goes here.
\item List item 2 goes here.
\begin{todolist}
\item Sublist item 1 goes here.
\item Sublist item 2 goes here.
\end{todolist}
\item List item 3 goes here
\item List item 4 goes here.
\end{todolist}
\end{itemize}
\end{document}
我们创建一种名为 的新列表类型todolist
,它具有两层嵌套,并且基于itemize
。 中的每个标签在两个级别上todolist
均设置为。$\square$
答案2
这是沃纳答案的变体,其中带有用于记录进度的复选标记。
\documentclass{article}
\usepackage{enumitem,amssymb}
\newlist{todolist}{itemize}{2}
\setlist[todolist]{label=$\square$}
\usepackage{pifont}
\newcommand{\cmark}{\ding{51}}%
\newcommand{\xmark}{\ding{55}}%
\newcommand{\done}{\rlap{$\square$}{\raisebox{2pt}{\large\hspace{1pt}\cmark}}%
\hspace{-2.5pt}}
\newcommand{\wontfix}{\rlap{$\square$}{\large\hspace{1pt}\xmark}}
\begin{document}
My ToDo list
\begin{itemize}
\item Immediate plan of action.
\begin{todolist}
\item[\done] Frame the problem
\item Write solution
\item[\wontfix] profit
\end{todolist}
\end{itemize}
\end{document}
答案3
pifont
我从包和中调整图标的字体大小amssymb
,使用\raisebox
和\hspace
来适应图标位置,最后看起来不错,这是一个完整的例子:
\documentclass{article}
\usepackage{pifont}
\usepackage{amssymb}
\begin{document}
\begin{itemize}
\item[$\square$]
no checked
\item[\rlap{\raisebox{0.3ex}{\hspace{0.4ex}\tiny \ding{52}}}$\square$]
failed
\item[\rlap{\raisebox{0.3ex}{\hspace{0.4ex}\scriptsize \ding{56}}}$\square$]
checked
\end{itemize}
\end{document}
答案4
我想要一个非常简单且没有软件包依赖的东西。这对我来说是可行的:
\begin{itemize}[label={}]
\item \lbrack\_\rbrack unchecked
\item \lbrack x\rbrack checked
\end{itemize}