Нельзя ли передавать аргументы командам с помощью клавиш?

Нельзя ли передавать аргументы командам с помощью клавиш?

Я использую собственную LaTeXпреамбулу для университета, поэтому я довольно привык создавать макросы с помощью таких инструментов, как xparse. Однако я не уверен, почему я не могу сделать что-то, что будет выбирать между двумя изображениями от моего имени.

Идея в том, что у меня есть глобальный логический параметр, чтобы установить все в стиле "темный режим", который я использую во время работы над черновиком. По сути, все, что имеет значение, это то, что у меня есть

\setboolean{DARKMODE}{true}

Я использую SVG, чтобы немного стилизовать свою статью (детали для этого не важны). У меня есть версия SVG в светлом и темном режимах, и я использую пакет svgдля этого (я делаю это, потому что, насколько я понимаю, вы не можете задать цвет SVG изнутри LaTeX).

На данный момент у меня есть следующее:

\newcommand{\AddSvgHeight}[1]{%
    \ifthenelse{\boolean{DARKMODE}}{%
        \includesvg[height=#1px]{MySvg_White}
    }{%                      
        \includesvg[height=#1px]{MySvg_Black}
    }
}

Я хочу передать аргумент (ширину) ключу высоты, используемому командой \includesvg. Однако я получаю ошибку:

Ошибка пакета scrbase: неизвестная опция height=['. \OtherCommand

где \OtherCommandнаходится команда, которая использует эту команду.

Я пробовал несколько вариантов с такими же или похожими проблемами. Почему это происходит? Как мне определить эту команду?

решение1

Должно быть, я допустил опечатку, потому что я уверен, что сделал это, и это работает так, как я хотел. Я решил повторить попытку.очевидныйрешение:

\newcommand{\AddSvgHeight}[1][]{%
    \ifthenelse{\boolean{DARKMODE}}{%
        \includesvg[#1]{Pengu_White}%
    }{%                      
        \includesvg[#1]{Pengu_Black}%
    }%
}

Это позволяет мне использовать любые параметры «ключ-значение», что в моем случае лучше, чем передавать их вручную.

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