我需要在 itemize 环境中对齐一些元素。例如,每个项目包含一个问题和一些用于学生回答的空间(带点)。
如何才能使 itemize 中的某些元素正确对齐(例如每个平方根、每个“=”符号和每个 \dotfill )?
谢谢你!
\documentclass[12pt,a4paper]{article}
\begin{document}
\subsection*{Question 1 ( \, \, / 5)}
\textbf{Calcule} sans calculatrice:
\vspace{0.5cm}
\begin{itemize}
\item $\sqrt{4900} = $\quad \dotfill\\
\item $\sqrt{81} = $\quad \dotfill\\
\item $\sqrt{640000} = $\quad \dotfill\\
\item $\sqrt{144} = $\quad \dotfill\\
\item $\sqrt{0,16} = $\quad \dotfill\\
\end{itemize}
\subsection*{Question 2 ( \, \, / 5)}
\textbf{Donne} un encadrement à l'unité près des racines carrées ci-dessous:
\vspace{0.5cm}
\begin{itemize}
\item \makebox[60pt]{\dotfill}$< \sqrt{49} < $\makebox[60pt]{\dotfill}
\item \makebox[60pt]{\dotfill}$< \sqrt{490000} < $\makebox[60pt]{\dotfill}
\end{itemize}
\end{document}
答案1
您可以加载包等式并使用宏 sa\eqmakebox
将列表的第一个元素保留为表格形式。该宏与类似,但有\makebox
一点不同:您提供一个标签而不是框的宽度。然后,如果使用相同的标签,宏会调整每个框的宽度。以下是示例:
\documentclass[12pt,a4paper]{article}
\usepackage{eqparbox}
\usepackage{enumitem}
\setlist[itemize]{before*=\vspace{0.5cm}}
\begin{document}
\subsection*{Question 1 ( \, \, / 5)}
\textbf{Calcule} sans calculatrice:
\begin{itemize}
\item \eqmakebox[Q1][r]{$\sqrt{4900} ={}$}\dotfill
\item \eqmakebox[Q1][r]{$\sqrt{81} ={}$}\dotfill
\item \eqmakebox[Q1][r]{$\sqrt{640000} ={}$}\dotfill
\item \eqmakebox[Q1][r]{$\sqrt{144} ={}$}\dotfill
\item \eqmakebox[Q1][r]{$\sqrt{0,16} ={}$}\dotfill
\end{itemize}
\subsection*{Question 2 ( \, \, / 5)}
\textbf{Donne} un encadrement à l'unité près des racines carrées ci-dessous:
\begin{itemize}
\item \dotfill ${}<{}$\eqmakebox[Q2]{$\sqrt{49}$}${}<{}$\dotfill
\item \dotfill ${}<{}$\eqmakebox[Q2]{$\sqrt{490000}$}${}<{}$\dotfill
\end{itemize}
\end{document}
编辑1。如果您想在列表和文本之间添加额外的垂直空间,我还建议加载枚举项,删除所有实例\vspace{0.5cm}
并将以下行添加到序言中:
\setlist[itemize]{before*=\vspace{0.5cm}}
这会在每个 itemize 环境之前注入代码。这样可以避免代码重复。还有类似的选项:after*
,它会在列表之后注入代码。
编辑2。我忘了提一点。您不应该\\
在列表项末尾使用双反斜杠。这是因为它\item
表示要格式化并为新项创建空间,例如添加新行等。