![встроенные теоремы и теоремы в подписях](https://rvso.com/image/461925/%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5%20%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D1%8B%20%D0%B8%20%D1%82%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D1%8B%20%D0%B2%20%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D1%8F%D1%85.png)
Я пытаюсь написать статью, в которой будет последовательность автоматически пронумерованных фрагментов встроенных цитат.
Я определил a, \newcommand
чтобы сделать это, и все работало хорошо до того момента, пока я не попытался сохранить текущий номер в переменной, чтобы я мог затем ссылаться на него, например, в таблице. Очевидно, что \label
выбирает текущий раздел, так что это не сработало. Если бы \label
принимался второй аргумент, чтобы можно было писать \label{mylabel}{mycounter}
, то это было бы идеально, но, \label
похоже, принимается только один аргумент.
Я попытался изменить свою команду newcommand так, чтобы она определяла (используя \def
или \newcommand
) новую метку (передаваемую в качестве дополнительного аргумента команде каждый раз при ее вызове, но я всегда получал синтаксические ошибки). В настоящее время я вернулся к использованию среды Theorem, но у нее есть две проблемы (1) это означает, что текст не встроен, а отделен от окружающего текста новыми строками, и, во-вторых, кажется, невозможно поместить теорему в подпись к рисунку. Я пробовал использовать \savebox
для последнего, но это тоже не сработало.
Любая помощь будет принята с благодарностью! Спасибо.
решение1
Спасибо за два ответа. Я не смог понять, как двигаться дальше со вторым предложением, но дальнейшее гугление тем временем привело меня к пакету, etoolbox
и теперь у меня есть решение:
\documentclass{article}
\usepackage{xcolor}
\usepackage{etoolbox}
\newcounter{promptcounter}
\setcounter{promptcounter}{0}
\def\prompt#1#2{\addtocounter{promptcounter}{1}\csdef{#1}{\thepromptcounter}\underline{Prompt-\thepromptcounter: }{\textcolor{teal}{\emph{#2}}}}
\begin{document}
This is a test document. \\prompt\{x\}\{y\} should expand to \textcolor{red}{Prompt-1: y} but also define \\x to be the value of {\textbackslash}thepromptcounter.
\prompt{xxx}{some text}. The value of {\textbackslash}xxx is \xxx. The use of {\textbackslash}etoolbox and {\textbackslash}csdef was critical - it gives an error with plain {\textbackslash}def.
End of test document
\end{document}