段落左侧的箭头线装饰

段落左侧的箭头线装饰

我正在开发一个小程序包来管理 QRH(一种用于航空目的的检查表)。我想在段落左侧打印一条带箭头的线,中间可能带有文字,如图所示:

箭

目前我正在使用siderulesmdframed,因为建议在这里,但我只能生成一条垂直直线,没有箭头,也没有文字。

有人有想法吗?:)

答案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}

在此处输入图片描述

相关内容