defの問題



Problems With Def



解決:

あなたが使用することができますこのジョブのxparseは、r引数タイプはネストを処理します。

 documentclass {article}  usepackage {amsmath}  usepackage {xparse}  NewDocumentCommand { twomate} {> { SplitArgument {3} {、}} r()} {% maketwomate#1%}  NewDocumentCommand { maketwomate } {mmmm} {% begin {pmatrix}#1&#2 \#3&#4  end {pmatrix}%}  NewDocumentCommand { pwr} {r()} {^ {#1}}  begin {document }  [ twomate(3e  pwr(-3t)、e  pwr(2t)、-e  pwr(-3t)、-2e  pwr(2t))]  end {document}

ただし、()区切り文字は良い考えではないようです。以下は同様に明確であり、フロントエンドの構文の色付けでより適切に動作します。



 documentclass {article}  usepackage {amsmath}  usepackage {xparse}  NewDocumentCommand { twomate} {> { SplitArgument {3} {、}} m} {% maketwomate#1%}  NewDocumentCommand { maketwomate} { mmmm} {% begin {pmatrix}#1&#2 \#3&#4  end {pmatrix}%}  NewDocumentCommand { pwr} {m} {^ {#1}}  begin {document}  [ twomate {3e  pwr {-3t}、e  pwr {2t}、-e  pwr {-3t}、-2e  pwr {2t}} ]  end {document}

ここに画像の説明を入力してください


あなたの defには、パラメータテキストとして定義された非常に具体的なシーケンスが含まれています。



%1 2 3 4 5  def  twomate(、、、){...}%^ ^ ^ ^ ^%││││││%│└コンマ┘│%└───ブラケット───┘

このパラメータテキストは、4つの引数を抽出するために(ほぼ先着順のスタイルのように)正確に一致します。これが要素がどのように取得されるかです上記の表記の twomate:

%1 2 3 4 5  twomate(3e  pwr(-3t)、e  pwr(2t)、-e  pwr(-3t)、-2e  pwr(2t))%^ ^ ^ ^ ^%││ │││%│└──────コンマ────────┘│%└─────────────────ブラケット─────── ───────────┘

最後の角かっこが)が適切にキャプチャされていない pwr。それを回避する方法は隠すことです pwr(。)from twomate:

 documentclass {article}  usepackage {amsmath}  def  twomate(#1、#2、#3、#4){ begin {pmatrix}#1&#2 \#3&#4  end {pmatrix}}  def  pwr(#1){^ {#1}}  begin {document}  [ twomate(3e  pwr(-3t)、e  pwr(2t)、-e  pwr(-3t)、{- 2e  pwr(2t)})]  end {document}

これにより、問題は一時的にのみ解決されます。要素をネストすると、パラメータのテキストパターンマッチングが原因で同様の問題が発生します。一般に、を使用して引数をグループ化する方が安全です。{..。}。




TeXの区切りパラメーターの解析では、ネストが適切に考慮されていません。だからあなたが呼ぶなら twomate(3e pwr(-3t)、...)、ファイナル) にとって twomateはその行の終わりではなく、最後に見つかります pwr(-3t)。不適切に形成されたの呼び出し pwrは問題を引き起こします。

コマンドのネストされた呼び出しを非表示にするには、それらをに入れます{...}グループ(これはおそらく目的を無効にしますが):

 documentclass {article}  usepackage {amsmath}  def  twomate(#1、#2、#3、#4){ begin {pmatrix}#1&#2 \#3&#4  end {pmatrix}}  def  pwr(#1){^ {#1}}  def  twoclmn(#1、#2){ begin {pmatrix}#1 \#2  end {pmatrix}}  begin {document}  [  twomate({3e  pwr(-3t)}、{e  pwr(2t)}、{-e  pwr(-3t)}、{-2e  pwr(2t)})]  end {document}

ここに画像の説明を入力してください

ちなみに、使用しないでください$$ ... $$は数学環境を表示しますが、LaTeXまたはのようなamsmathの変種 [... ]。