我创建了一个名为“示例”的新环境,如下所示:
\newenvironment{example}
{\textbf{Example:} \begin{itemize}}
{\end{itemize}}
环境运行良好,但项目在例子:文本。是否可以从与例子:文本并将其余项目与第一个项目垂直对齐?
答案1
你可以这样做,但我不建议这样做。看看结果,自己判断。
\documentclass{article}
\usepackage{enumitem}
\usepackage{lipsum} % just for the example
\newlength{\jeroenlen}
\newenvironment{example}
{\settowidth{\jeroenlen}{\textbf{Example:}}%
\begin{description}[leftmargin=\jeroenlen,labelwidth=0pt,labelsep=0pt]
\item[\textbf{Example:}]%
\begin{itemize}[leftmargin=1.5em,labelsep=.5em]}
{\end{itemize}\end{description}}
\begin{document}
\lipsum[2]
\begin{example}
\item Such and such
\item So and so
\item Enough
\end{example}
\lipsum[3]
\end{document}
封闭description
环境对于避免“示例:”之后的换行是必要的。
答案2
\documentclass{article}
\newenvironment{example}
{\textbf{Example:}\begin{minipage}[t]{0.8\linewidth}\begin{itemize}}
{\end{itemize}\end{minipage}}
\begin{document}
\begin{example}
\item These are first examples.
\item Second examples.
\item And more.
\end{example}
\end{document}
答案3
使用 enumitem,您还可以获得略有不同的布局,其中第一个项目(示例 •)的标签相对于以下项目的项目符号居中,在我看来这看起来更好。结果如下:
\documentclass[11pt, a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{enumitem}
\usepackage{lmodern}
\pagestyle{empty}
\parindent = 0pt
\makeatletter%
\newenvironment{examples}{%
\newsavebox{\Exbox}\newlength{\len}%
\sbox{\Exbox}{\textbf{Examples}\enspace\textbullet}\settowidth{\len}{\usebox{\Exbox}}%
\let\olditem\item
\def\item{\if@newlist\olditem\hspace{0.5\len}\else\olditem\fi}
\setlist{before=\renewcommand{\labelitemi}{\if@newlist\makebox[0pt]{\usebox{\Exbox}}\else\textbullet\fi}}
\begin{itemize}[labelwidth =0.5\len,itemindent=!,leftmargin=!]}%
{\end{itemize}}
\makeatother%
\begin{document}
Let’s try this:
\begin{examples}%
\item very first element of the list,
\item second element,
\item third element.
\end{examples}
\end{document}