垂直线包围 itemize 中的项目

垂直线包围 itemize 中的项目

我想用 LaTeX 格式保存一些笔记。结果应该是这样的:

在此处输入图片描述

这些数字对我来说没问题。问题是如何绘制这些垂直线(带有钩子),特别是在环境内部itemize

结果应该是一个新的环境,它会自动绘制这些垂直线(使用正确的颜色和钩子)。请注意,如果输入只有一行长(或者可能是一条带钩子的很短的线),则不应该有一条线。

答案1

以下是使用 Tikz 的快速尝试:

\documentclass{standalone}

\usepackage{tikz}

\newenvironment{itemizewithline}[3]{%
    \newcommand{\itemwithline}[1]{%
        \begin{tikzpicture}
            \node (box){%
                \begin{minipage}{\textwidth}
                    \item   ##1
                \end{minipage}
            };
            \coordinate[shift={(-\itemsep,-0.75em)}] (boxne) at (box.north west);
            \coordinate[shift={(-\itemsep,0.25em)}] (boxse) at (box.south west);
            \draw[\colorhook] (boxne) -- (boxse) -- ++ (0.2,0);
        \end{tikzpicture}
    }
    \edef\colorhook{#1}
    \edef\titletext{{#2}}
    \edef\subtitletext{{#3}}
    \begin{tikzpicture}
        \node (box)\bgroup
            \begin{minipage}{\textwidth}
                \begin{itemize}
}{%
                \end{itemize}
            \end{minipage}
        \egroup;
        \node[anchor=south west,color=\colorhook] (title) at (box.north west){\titletext};
        \node[anchor=west] (subtitle) at (title.east){\subtitletext};
        \draw[\colorhook] (title.south west) -- (title.south east);
        \coordinate[shift={(2em,0)}] (hookstart) at (title.south west);
        \coordinate[shift={(0,0)}] (boxsw) at (box.south west);
        \draw[\colorhook,line width=1.5pt] (hookstart) -- (hookstart|-boxsw) -- ++ (0.2,0);
    \end{tikzpicture}
}

\begin{document}

\begin{itemizewithline}{red}{Title}{subtitle}
    \itemwithline{one}
    \itemwithline{two

        three

        four}
    \itemwithline{five

        six}
\end{itemizewithline}


\end{document}

结果:

在此处输入图片描述

答案2

如果页面没有变化,tikz 可以很容易地做到这一点(如果页面发生变化,它也可能做到这一点,但会更加棘手)使用记住图片选项并重新定义\item

相关内容