CyrTeX-ru@vsu.ru Jo'natmalar ro'yhati #2005 maktub
Kimdan: Aleksander Gorohovski <CyrTeX-ru@vsu.ru>
Mavzu: Re: Тест существования макрокоманды или загрузки пакета
Sana: Mon, 17 May 2010 18:32:19 +0300
Kimga: Cyrillic TeX Users Group <CyrTeX-ru@vsu.ru>
Уважаемый Александр Роженко,
Премного благодарен.
:)


On Sat, 15 May 2010 04:46:47 +0300, Alexander I Rozhenko  wrote:

если пакет XXX.sty загружен, то команда \ver@XXX.sty будет определена.
Проверку этого можно делать так:

\expandafter\ifx \csname ver@XXX.sty\endcsname\relax
  код в случае незагруженного пакета
\else
  код в случае загруженного пакета
\fi

Для надёжности вместо .sty лучше писать .\@pkgextension, т.е.

\expandafter\ifx \csname ver@XXX.\@pkgextension\endcsname\relax
  код в случае незагруженного пакета
\else
  код в случае загруженного пакета
\fi

Естественно, всё это надо делать внутри своего пакета. Я использовал трюк
с проверкой загрузки пакета в пакете afterpackage.

Aleksander Gorohovski
Доброго времени суток Уважаемые TeXники!

Подскажите, пожалуйста,
как можно узнать в преамбуле документа
существует ли уже макрокоманда  (определенная некоторым пакетом)

Вопрос возник в связи с тем, что надо переопределить некоторую
команду \com, но её появление (макроопределение) зависит от
некоторого пакета XXX.sty подключаемого в зависимости от внешних условий.

Из-за чего
\renewcommand{\com}{  }
ругается
:(

Конечно, можно было поступить через
\DeclareRobustCommand{\com}{ }
но мне кажется это не есть совсем хорошо.

Или может существует подход проще --- узнать загружен пакет XXX.sty или
нет

Спасибо.

================================================
CyrTeX-ru mailing list Archives and Information:
https://info.vsu.ru/Lists/CyrTeX-ru/List.html





To'g'ridan to'g'ri obuna bo'lish Daydjestga obuna bo'lish Mundarijaga obuna bo'lish Voz kechish Listmaster ga yozish