具有自定义理由的环境

具有自定义理由的环境

我想创建一个名为“问题”的环境,该环境有一个参数(即问题编号),并具有一定的对齐/对齐方式。我该如何定义它,以便它以以下两种方式之一出现这里

在链接的示例中,我谈论的只是对齐方式(而不是字体、大小等)。
这里有两种对齐方式:

  • 一个是像#5.66,问题主体与“5.66”的结尾一致。
  • 另一种,例如 #5.64,问题 (i)、(ii) 等的主体与字母一致,而字母本身位于问题编号的右侧。

在每种情况下我该如何表述我的环境的定义?

答案1

这种对齐方式通常用列表来完成。在列表的世界里,enumitem是王道。下面是一个简短的例子,说明如何实现这一点(无需太多格式):

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{enumitem}% http://ctan.org/pkg/enumitem
\begin{document}
\begin{enumerate}[labelwidth=4em,labelsep=1em]
  \item[5.64] \lipsum[2]
  \item[5.66] Some short text
  \item[5.89] \lipsum[2]
\end{enumerate}
\end{document}​

当然,enumitem您可以通过可选参数在本地进行这些设置(如我在示例中所做的那样)[...],或者使用全局\setlist设置。请参阅enumitem文档了解更多信息/细节。

此外,由于它管理列表,因此编号很容易实现自动化。在我上面的例子中,可以使用 手动提供编号\item[...],也可以以自动方式提供编号没有的可选参数\item

使用相同方法也可以进行嵌套:

在此处输入图片描述

\documentclass{article}
\usepackage{lipsum}% http://ctan.org/pkg/lipsum
\usepackage{enumitem}% http://ctan.org/pkg/enumitem
\begin{document}
\begin{enumerate}[labelwidth=4em,labelsep=1em]
  \item[5.64] \lipsum[2]
  \item[5.66] Some short text
    \begin{enumerate}[label=(\roman*),labelwidth=2em,labelsep=.5em]
      \item Here is some text
      \item Here is some text
      \item Here is some text
    \end{enumerate}
  \item[5.89] \lipsum[2]
\end{enumerate}
\end{document}​

相关内容