相对于节点右端绘制

相对于节点右端绘制

我是新手tikz,我想这是一个非常简单的问题。但我还是找不到解决方案。

我想用tikz它来绘制标题的背景。因此我创建了以下命令:

\documentclass{article}
\usepackage{tikz}
\usepackage{xcolor}
\usetikzlibrary{calc}

\newcommand{\headline}[1]{%
    \begin{tikzpicture}
        \fill[gray] (0,2mm) -- (5mm-2mm,2mm) -- (5mm,0) -- (2mm,0) -- (0,2mm);
        \node (A) at (12mm,1mm) {\Large\textsc{#1}};
        \fill[gray] (A.east|-0,2mm) -- (\textwidth-2mm,2mm) -- (\textwidth,0) -- (A.east|-0,0) -- (A.east|-0,0);
    \end{tikzpicture}%
}

\begin{document}
    \headline{test}
\end{document}

结果如下: \headline 命令的结果

但我希望文本后面第二行的左下角也被截断。如下图所示:

希望的结果

我尝试以某种方式添加缺失的 2 毫米,但没有找到解决方案。我尝试了([xshift=2mm]A.east|-0,2mm)(A.east|-0+2mm,2mm)以及\fill[gray] let \p{A}=(A) in (A.east|-0,2mm) -- (\textwidth-2mm,2mm) -- (\textwidth,0) -- (\x{A}+2mm,0) -- (A.east|-0,0);我在搜索时遇到的许多其他方法。但我没有成功。


如何添加相对于节点末端缺失的 2 毫米?

答案1

使用 tikz-librarycalc计算缺失的坐标($(A.east|-0,0)+(2mm,0)$)

在此处输入图片描述

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{calc}

\newcommand{\headline}[1]{%
    \begin{tikzpicture}
        \fill[gray] (0,2mm) -- (5mm-2mm,2mm) -- (5mm,0) -- (2mm,0) -- cycle;
        \node (A) at (12mm,1mm) {\Large\textsc{#1}};
        \fill[gray] (A.east|-0,2mm) -- (\textwidth-2mm,2mm) -- (\textwidth,0) -- ($(A.east|-0,0)+(2mm,0)$) -- cycle;
    \end{tikzpicture}%
}

\begin{document}
    \noindent
    \headline{test}
\end{document}

相关内容