我的目标是获得如下所示的枚举。
我修改了下面的一些代码。
\documentclass[]{article}
\usepackage{tikz}
\usepackage{enumitem}
\usepackage{xcolor}
\newcommand*\mycirc[1]{\tikz[baseline=(myc.base)]{\node[shape=circle,fill=green!75!black,inner sep=2.2pt](myc){#1};}}
\begin{document}
\begin{enumerate}[label=\protect\mycirc{\bfseries \arabic*}]
\item You decide to use the normal distribution to approximate the binomial distribution. You want to know the probability of getting exactly 16 tails out of 20 coin flips.
\begin{enumerate}[label=\textbf{\alph*}]
\item
\item
\item
\end{enumerate}
\item 108 people took a test for which the probability of passing is 0.88. Let \textit{X} be the number of people who passed the test. Using the normal distribution ....
\end{enumerate}
\end{document}
其结果显示如下图所示。
答案1
我提出一个基于的解决方案tcolorbox
;enumerate
环境被修改为lenumerate
接受两个参数:颜色和从文本左边距到枚举垂直段的距离。
评论。我维护了提问者的初始代码。
更新。我修改了代码,这样当枚举拆分为两页时它也能正常工作。我还没有验证如果拆分为三页会发生什么。可能它不起作用,但使用类似的东西overlay middle
应该可以……
代码
\documentclass[]{article}
\usepackage{tikz}
\usetikzlibrary{calc}
\usepackage{tcolorbox}
\tcbuselibrary{skins, breakable}
\tcbset{shield externalize}
\usepackage{enumitem}
\usepackage{lipsum}
\newcommand*\mycirc[2]{%
\tikz[baseline=(myc.base)] {%
\node[shape=circle, fill=#2, inner sep=2.2pt] (myc) {#1};
}
}
\newenvironment{noticeB}[2]{% color, delta x
\tcolorbox[%
notitle,
empty,
enhanced, % delete the edge of the bottom page for a broken box
breakable,
coltext=black,
opacityback=0,
fontupper=\rmfamily,
parbox=false,
noparskip,
boxrule=-1pt, % width of the box' edges
frame hidden,
left=0\parindent, % inner space from text to the left edge
right=0\parindent,
top=-1pt,
bottom=5pt,
% boxsep=0pt,
before skip=2ex,
after skip=2ex,
overlay unbroken and first={%
\draw[color=#1, fill=#1, line width=1pt]
($(frame.north west) +(#2, -15pt)$)
-- ($(frame.south west) +(#2, 7pt)$);
},
overlay unbroken={%
\draw[color=#1, fill=#1, line width=1pt]
($(frame.north west) +(#2, -15pt)$)
-- ($(frame.south west) +(#2, 7pt)$) circle (1.5pt);
},
overlay last={%
\draw[color=#1, fill=#1, line width=1pt]
($(frame.north west) +(#2, -1pt)$)
-- ($(frame.south west) +(#2, 7pt)$) circle (1.5pt);
}]
}{\endtcolorbox}
\newenvironment{lenumerate}[2]{%
\begin{noticeB}{#1}{#2}%
\begin{enumerate}[label=\protect\mycirc{\bfseries \arabic*}{#1}]}{%
\end{enumerate}
\end{noticeB}
}
\begin{document}
\lipsum[1]
\begin{lenumerate}{green!65!black}{11pt}
\item
You decide to use the normal distribution to approximate the
binomial distribution. You want to know the probability of getting
exactly 16 tails out of 20 coin flips.
\begin{enumerate}[label=\textbf{\alph*.}]
\item
Some text.
\item
Some mode text.
\item
Well\ldots
\end{enumerate}
\item
108 people took a test for which the probability of passing is
0.88. Let \textit{X} be the number of people who passed the
test. Using the normal distribution\ldots
\end{lenumerate}
\lipsum[2]
\end{document}