[TeX関連] コマンドあるいはマクロが定義されているかを判別する LaTeX マクロ
あるコマンドを \renewcommand しようとして,既に定義されていれば \renewcommand, 未定義なら \newcommand を使うようにしたかったので調べると,\@ifundefined マクロがありました.使用例は以下の通り.この例では,jsarticle や jsbook で定義されている \figurename, \tablename, \appendixname の内容を変更しています.\@ifundefined がアットマークを含むので,これらをプリアンブルに書く場合は \makeatletter, \makeatother で囲む必要があります.
\@ifundefined{figurename}{\newcommand{\figurename}{図}}{\renewcommand{\figurename}{図}} \@ifundefined{tablename}{\newcommand{\tablename}{表}}{\renewcommand{\tablename}{表}} \@ifundefined{appendixname}{\newcommand{\appendixname}{付録}}{\renewcommand{\appendixname}{付録}}
トラックバック
トラックバック URI: https://www.pakunet.jp/hoge/trackback/2007020602
トラックバックはありません.
[TeX関連] スタイルもしくはパッケージがロードされているかを判別する LaTeX マクロ
例えば,jsarticle がロードされているかどうかを判別する \ifjsarticle を作るには,こんな感じ.
\newif\ifjsarticle \@ifclassloaded{jsarticle}{\jsarticletrue}{\jsarticlefalse}
上の例はドキュメントクラスの場合ですが,パッケージの場合にも可能で,その場合は以下の通り.
\newif\ifgraphicx \@ifpackageloaded{graphicx}{\graphicxtrue}{\graphicxfalse}
アットマークを含むコマンド(\@ifpackageloaded)を使用しているので,プリアンブルに書く場合は \makeatletter, \makeatother で囲んでください.
トラックバック
トラックバック URI: https://www.pakunet.jp/hoge/trackback/2007020601
トラックバックはありません.