特征:

特征:

我希望以我在示意图中经常看到的方式绘制一条线:---||---,所以一条线被两个垂直条打断(像电容器符号),两个垂直条非常接近,也略微向右倾斜。同样,向上的线也是如此。我一直在查看 tikz 手册,但我不知道该怎么做。我尝试了midway节点装饰,但我不知道如何获得打破路径(并且倾斜)的平行线 -\|这不是我需要的。

(目标是模拟线左侧的事物(框)沿着这条路径重复多次)。

谢谢你!

答案1

以下是使用装饰来产生两种所需风格的另一种选择:

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.markings}

\def\MarkLt{6pt}
\def\MarkSep{3pt}

\tikzset{
  TwoMarks/.style={
    postaction={decorate,
      decoration={
        markings,
        mark=at position #1 with
          {
              \begin{scope}[xslant=0.2]
              \draw[line width=\MarkSep,white,-] (0pt,-\MarkLt) -- (0pt,\MarkLt) ;
              \draw[-] (-0.5*\MarkSep,-\MarkLt) -- (-0.5*\MarkSep,\MarkLt) ;
              \draw[-] (0.5*\MarkSep,-\MarkLt) -- (0.5*\MarkSep,\MarkLt) ;
              \end{scope}
          }
       }
    }
  },
  TwoMarks/.default={0.5},
  OneMark/.style={
    postaction={decorate,
      decoration={
        markings,
        mark=at position #1 with
          {
              \draw[-] (0,-\MarkLt) -- (0,\MarkLt) ;
          }
       }
    }
  },
  OneMark/.default={0.5}
}

\begin{document}

\begin{tikzpicture}[>=latex]
\draw[TwoMarks,->] (0,0) -- (0,2);
\draw[TwoMarks] (0,0) -- (2,0);
\draw[TwoMarks,->] (0,0) -- (2,2);
\draw[OneMark,<-] (2,0) -- (2,2);
\draw[OneMark] (0,2) -- (2,2);

\draw[TwoMarks=0.25,->] (3,2) -- ++(2,0);
\draw[TwoMarks,->] (3,1) -- ++(2,0);
\draw[TwoMarks=0.75,->] (3,0) -- ++(2,0);

\draw[OneMark=0.25,->] (6,2) -- ++(2,0);
\draw[OneMark,->] (6,1) -- ++(2,0);
\draw[OneMark=0.75,->] (6,0) -- ++(2,0);
\end{tikzpicture}

\end{document}

在此处输入图片描述

特征:

  • 使用\MarkLt\MarkSep一个通道改变双标记的线长和线之间的分离。

  • 默认情况下,装饰位于路径的中间,但使用TwoMarks=<value>OneMark=<value>可以改变位置。

答案2

节点sloped可以使用白色背景,并将符号作为您想要使用的内容:

\documentclass{article}
\usepackage{tikz}

\tikzstyle{cont} = [
  sloped,
  node contents={//},
  fill=white,
  inner xsep=.1em,
  inner ysep=0pt,
]

\begin{document}
\begin{tikzpicture}
  \draw
    (0, 0) -- node[pos=.5, cont] {} (2, 2)
    (0, 0) -- node[pos=.5, cont] {} ++(2, 0)
    -- node[pos=.5, cont] {} ++(0, 2)
    -- node[pos=.5, cont] {} ++(-2, 0)
    -- node[pos=.5, cont] cycle
  ;
\end{tikzpicture}
\end{document}

结果还显示了延续节点的白色背景:

结果

答案3

考虑到@HeikoOberdiek 的想法,一个简单的解决方案:

\documentclass[border=4pt]{standalone}
\usepackage{tikz}
\begin{document}

\begin{tikzpicture}[par/.style={sloped,fill=white,inner sep=-.6ex}]
\draw (0, 0) -- node[par]{//} (2, 2)
      (0, 0) -- node[par]{//} ++(2, 0)
      -- node[sloped]{\textbar} ++(0, 2)
      -- node[sloped]{\textbar} ++(-2, 0)
      -- node[par]{//} cycle;
\end{tikzpicture}

\end{document}

在此处输入图片描述

相关内容