web-dev-qa-db-ja.com

LaTeXで変数を定義する方法はありますか?

LaTeXで、コンパイルされたPDFの変数の代わりにその内容が使われる文字列変数をどのように定義できますか?

私がソフトウェアに関する技術文書を書いていて、プリアンブルかどこかでパッケージ名を定義したいとしましょう。名前が変わっても、それを多くの場所で置き換える必要はなく、1か所だけで置き換えます。 。

308

あなたの前文に以下を追加してください。

\newcommand{\newCommandName}{text to insert}

それならあなたはテキストで\newCommandName{}を使うことができます

\newcommandの詳細については、以下を参照してください。 ウィキブックス

317
second

\defコマンドを使用してください。

\def \variable {Something that's better to use as a variable}

\defは警告なしに既存のマクロをオーバーライドするため、さまざまな微妙なエラーを引き起こす可能性があります。これを克服するには、my_varのような名前空間変数を使用するか、代わりに\newcommand\renewcommandコマンドにフォールバックします。

153
plaes

距離を記述する変数には\newlengthを使用します(そして\setlength\addlength\settoheight\settolengthおよび\settodepthで値を操作します)。

同様に、あなたは\newcounterへアクセスすることができて、セクション番号と図番号のようなものは文書を通して増加します。私は過去にこれを使用して、他の数字とは別に番号が付けられたコードサンプルを提供しました...

また、\makeboxも用意されており、後で再利用するために(そして\settolength...と共に使用するために)レイアウトされた文書を少し保存することができます。

30
dmckee

\newcommandを使いたい場合は、\usepackage{xspace}をインクルードし、\newcommand{\newCommandName}{text to insert\xspace}でcommandを定義することもできます。これにより、\newCommandNameではなく\newCommandName{}を使用することができます。

詳細は http://www.math.tamu.edu/~harold.boas/courses/math696/why-macros.html

16
user1125069

私はあなたがおそらくこの目的のためにトークンリストを使用したいと思うと思います:名前を割り当てるためにトークンリスト\newtoks\packagenameを設定するため:\packagename={New Name for the package}あなたの出力に名前を入れるため:\the\packagename

1
John Burt