在 tikz 中为文本添加下划线

在 tikz 中为文本添加下划线

我使用 tikz 绘制了一幅图,其代码如下所示:

\begin{tikzpicture} 
  \draw [rounded corners=10pt] (0,0) rectangle (4,2);       
    \draw (-3,1) -- (0,1) node [near start, above]{incoming communication};
    \draw (2,3) -- (2,2) node [near start,left]{ input};
    \draw (2,-1.5) -- (2,0) node [midway, left] {subroutine output};
    \draw (1, 1.3) -- (3.5, 1.3) node [midway, above] {identity};
    \draw (1, 0.5) -- (3.5, 0.5) node [midway, above] {sec. param.};
\end{tikzpicture}

输出如下:
替代文本

矩形内的文本是否可以加下划线,并且线的长度与文本一样长(就像简单的下划线文本)?

是否有可能让每条线都通向矩形,就像一张负片(胶卷)一样。我可以想象,一些彼此分开的厚边框矩形可以完成负片的工作。是否有可能缩放负片图片并使用图案作为线条?或者我必须绘制这些矩形并将它们粘在一起?:D

答案1

要创建下划线文本,只需使用ulem包:

\documentclass{article}
\usepackage{ulem,tikz}

\begin{document}
    \tikz
    {
        \node at (0,0.5) {\uline{some underlined text}};
        \node at (0,0) {\uline{a second line}};
    }
\end{document}

例子


要创建胶片效果,您可以使用装饰。请参阅 TikZ 手册 (v2.10) 第 72 章,了解如何定义自己的装饰(装饰的使用在第 21 章中描述)。以下内容可以帮助您入门(对于弯曲的路径或有边缘的路径,效果不太好):

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{decorations}
\begin{document}
\pgfdeclaredecoration{film}{initial}
{
    \state{initial}[width=10pt]
    {
        \fill (0,-5pt) rectangle (10.2pt,5pt);
        \fill[white,rounded corners=1pt] (2pt,-4pt) rectangle (8pt,4pt);
    }
    \state{final}
    {
        \begin{scope}
            \clip (0,-5pt) rectangle (\pgfdecoratedremainingdistance,5pt);
            \fill (0,-5pt) rectangle (10pt,5pt);
            \fill[white,rounded corners=1pt] (2pt,-4pt) rectangle (8pt,4pt);
        \end{scope}
        \pgfpathmoveto{\pgfpointdecoratedpathlast}
    }
}

\tikz[decoration=film]
{
    \draw [decorate] (0,0) -- (3,0);
}
\end{document}

例子

相关内容