在文本中手动添加图例符号(无需 \label 和 \ref)

在文本中手动添加图例符号(无需 \label 和 \ref)

我想pgfplots在我的文本中添加图例符号。我知道可以使用\label和命令,但我的设置很复杂,我担心让它工作会比手动设置小图更耗时。我使用外部化,我的图是用文档中多次使用的\ref复杂模板生成的 ……\pgfplotsinvokeforeach

我正在寻找的是像这样的命令

\legendimageintext{mark=x, draw=blue}

将会绘制一条带有十字的小蓝色虚线,就像具有类似风格的情节的图例帖子一样。

注意:如果您想将图例放在标题或文本中,通常使用 pgfplots 手册中所述的 \ref 和 \label 更简单,或者那里。我的问题与规范方法不可用的特殊情况有关。

答案1

您可以采用 Christian Feuersänger 在在普通的 tikzpicture 中使用 pgfplots 样式的图例提供命令\legendimageintext{mark=x, draw=blue}

\documentclass{article}

\usepackage{pgfplots}

\newenvironment{customlegend}[1][]{%
    \begingroup
    \csname pgfplots@init@cleared@structures\endcsname
    \pgfplotsset{#1}%
}{%
    \csname pgfplots@createlegend\endcsname
    \endgroup
}%
\def\addlegendimage{\csname pgfplots@addlegendimage\endcsname}

\newcommand{\addlegendimageintext}[1]{%
    \tikz {
        \begin{customlegend}[
            legend entries={\empty},
            legend style={
                draw=none,
                inner sep=0pt,
                column sep=0pt,
                nodes={inner sep=0pt}}]
        \addlegendimage{#1}
        \end{customlegend}
    }%
}

\begin{document}
\addlegendimageintext{mark=x, draw=blue} A plot

\addlegendimageintext{fill=cyan, area legend} An area plot
\end{document}

相关内容