Установка метки в newcommand через pgfkey

Установка метки в newcommand через pgfkey

Я пытаюсь задать метку в макросе(?), который я создал с помощью новой команды. Я передаю несколько значений команде в первом аргументе через pgfkeys, но макрос \labelпросто использует буквенную строку, которую я вставил для расширения pgfkey, вместо фактического развернутого значения.

Я пробовал оба решения, представленные в этих ответах, вместе и по отдельности, но безуспешно.

https://tex.stackexchange.com/a/308164

https://tex.stackexchange.com/a/125099

У меня есть подозрение, что происходящее связано с таймингом расширения значения pgfkey, но, честно говоря, у меня нет четкого понимания того, как базовый движок tex творит свою магию. Я также только изучаю pgfkeys, поэтому мое понимание того, что там происходит, все еще на начальном уровне.

Вот мое представление того, что я пытаюсь сделать:

\documentclass[twocolumn]{book}

\usepackage[framemethod=TikZ]{mdframed}%boxes
\usepackage{pgfkeys}

\newcounter{myCounter}

\newmdenv[%
frametitlebackgroundcolor=blue,
frametitlefontcolor=white,
backgroundcolor=blue!25,
linecolor=blue,
outerlinewidth=1pt,
roundcorner=1mm,
skipabove=\baselineskip,
skipbelow=\baselineskip,
font=\small,
nobreak=true,
settings={\global\refstepcounter{myCounter}},
]{myTextBox}


%Define Macros
\makeatletter

\pgfkeys{/mykeys/textbox/.cd,
    title/.initial=,
    body/.initial=,
    label/.initial=,
}

\def\mykeys@set@textbox@keys#1{%%
    \pgfkeys{/mykeys/textbox/.cd,#1}}
\def\mykeys@get@textbox#1{%%
    \pgfkeysvalueof{/mykeys/textbox/#1}}

\newcommand\myBox[1]{%%
    \bgroup
    \mykeys@set@textbox@keys{#1}%%
    \begin{myTextBox}[frametitle=\textbf{\mykeys@get@textbox{title}\hfill NOTE}]
        \mykeys@get@textbox{body}
        \label{box:\mykeys@get@textbox{label}}
    \end{myTextBox}
    \egroup
}

\makeatother

\begin{document}
\section{A Section}
\myBox{
    title=Box Title,
    body=A not so long string of text to go in the box,
    label=firstbox
}
\ref{firstbox}

\end{document}

Вот мой текущий результат:

текущий результат

Я не привязан к какому-то конкретному решению (я бы предпочел решение, работающее с pgfkeys), пока я могу заставить метки и ссылки работать правильно.

Связанный контент