Você não pode passar argumentos para comandos usando chaves?

Você não pode passar argumentos para comandos usando chaves?

Eu uso meu próprio LaTeXpreâmbulo para a universidade, então estou bastante acostumado a criar macros usando ferramentas como xparse. No entanto, não sei por que não posso fazer algo que escolha entre duas imagens em meu nome.

A idéia é que eu tenha um booleano global para definir tudo em um estilo de "modo escuro", que uso enquanto trabalho em um rascunho. Essencialmente, tudo o que importa é que eu tenho

\setboolean{DARKMODE}{true}

Eu uso um SVG para estilizar um pouco meu artigo (os detalhes para isso não são importantes). Eu tenho uma versão em modo claro e escuro de um SVG e uso o svgpacote para isso (faço isso porque, pelo que entendi, você não pode definir a cor do SVG de dentro LaTeX).

Atualmente, tenho o seguinte:

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

Quero passar o argumento (a largura) para a chave de altura usada pelo \includesvgcomando. No entanto, recebo o erro:

Erro do pacote scrbase: opção desconhecida height=['. \OutroComando

onde \OtherCommandestá o comando que usa este comando.

Eu tentei várias variantes com problemas iguais ou semelhantes. Por que isso está acontecendo? Como posso definir este comando?

Responder1

Devo ter cometido algum erro de digitação porque tenho certeza de que fiz isso, e que funciona como eu queria. resolvi tentar novamenteóbviosolução:

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

Isso me permite usar qualquer opção de valor-chave, o que é melhor do que passá-las manualmente, no meu caso.

informação relacionada