逐项排列中的对齐

逐项排列中的对齐

我需要在 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表示要格式化并为新项创建空间,例如添加新行等。

相关内容