Mailing List CyrTeX-ru@vsu.ru Message #1999
From: Alexander I Rozhenko <CyrTeX-ru@vsu.ru>
Subject: Re: Тест существования макрокоманды или загрузки пакета
Date: Sat, 15 May 2010 08:46:47 +0700
To: Cyrillic TeX Users Group <CyrTeX-ru@vsu.ru>
если пакет 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
>
>


--
Sincerely,
Alexander I Rozhenko
Leading Researcher
Lab. AP&MG
ICM&MG, Novosibirsk

Subscribe (FEED) Subscribe (DIGEST) Subscribe (INDEX) Unsubscribe Mail to Listmaster