我正在开发一个小程序包来管理 QRH(一种用于航空目的的检查表)。我想在段落左侧打印一条带箭头的线,中间可能带有文字,如图所示:
目前我正在使用siderules
包mdframed
,因为建议在这里,但我只能生成一条垂直直线,没有箭头,也没有文字。
有人有想法吗?:)
答案1
tikzmark
可能有一个选择:
\documentclass{article}
\usepackage{lipsum}
\usepackage{tikz}
\usetikzlibrary{tikzmark}
\begin{document}
\begin{description}
\item[\tikzmark{a}Blabla text here:] \lipsum[1]
\item[\tikzmark{b}Blabla text here:] \lipsum[1]
\end{description}
\tikz[remember picture,<->] \draw[overlay] ([yshift=1ex]pic cs:a) --++(-0.5,0) |- ([yshift=1ex]pic cs:b) node[midway, pos=0.25, fill=white]{text};
\end{document}
答案2
这里我使用了一个宏方法,其中 lines 是到连接线的 baselineskip 的倍数。如果要处理额外的垂直空间(例如,等等),\connect{text}{lines}
它可以是非整数。\topskip
因为使用包进行了装饰tabto
,所以\connect{}{}
可以在连接的起始行的任何位置发出宏。
已编辑以处理<lines>
可向上达到的负参数。这对于连接到显示数学很有用,但显示数学\connect
无效。
\documentclass{article}
\usepackage{stackengine,tabto}
\newlength\tmplen
\setstackEOL{\cr}
\newcommand\connect[2]{%
\setstackgap{S}{0pt}%
\tabto*{0in}%
\setlength\tmplen{\dimexpr#2\baselineskip-\baselineskip}%
\setlength\tmplen{.5\tmplen}%
\ifdim\tmplen>0pt\relax
\smash{\raisebox{2.5pt}{\makebox[0pt][r]{%
\Shortunderstack[l]{%
\smash{\raisebox{-2.7pt}{\rarrow}}\cr
\protect\rule{.5pt}{\tmplen}\cr
\makebox[0pt]{#1\strut}\cr
\protect\rule{.5pt}{\tmplen}%
\smash{\raisebox{-2.4pt}{\rarrow}}\cr
}%
}}}%
\else
\setlength\tmplen{-\tmplen}%
\smash{\raisebox{2.5pt}{\makebox[0pt][r]{%
\Shortstack[l]{%
\smash{\raisebox{-2.7pt}{\rarrow}}\cr
\protect\rule{.5pt}{\tmplen}\cr
\makebox[0pt]{#1\strut}\cr
\protect\rule{.5pt}{\tmplen}%
\smash{\raisebox{-2.4pt}{\rarrow}}\cr
}%
}}}%
\fi
\tabto{\TabPrevPos}%
}
\def\rarrow{$\kern-.7pt{-}\kern-2pt{-}\kern-2pt{\rightarrow}$}
\begin{document}
\noindent\connect{OR}{4}\textbf{Blabla text here}\par
Blabla text here\par
Blabla text here\par
Blabla text here\par
\noindent\textbf{Blabla text here}\par
Blabla text here\par
Blabla text here\par
Blabla text here\par
\noindent\connect{AND}{6}\textbf{Blabla text here}\par
Blabla text here\par
Blabla text here\par
Blabla text here\par
Blabla text here\par
Blabla text here\par
\noindent\textbf{Blabla text here}\par
Blabla text here\par
Blabla text here\par
Blabla text here\par
Blabla text here\par
Blabla text here\par
Blabla text here\par
\[
y = mx + b
\]
Blabla text here\par
Blabla text here\par
\noindent \connect{Math!}{-1.8}Blabla text here\par
\end{document}