我想用 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
。