amsmath
\dots
先読みを行うものを定義し、次のトークンに応じて異なるドット(基本的に垂直中央に配置するかどうか)を使用します。amsmath ではマジック \dots はどのように機能しますか?
しかし、このため(少なくとも私の理解では)、ドットが最後に式:
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\[ x + \dots + x + \dots \]
\end{document}
+
今では、を直接使用できるため、を使用するときに大きな問題にはなりません\dotsb
。ただし、カスタム コマンドを「ドット対応」にすることもできます。
\documentclass{article}
\usepackage{amsmath}
\begin{document}
\newcommand*\myop{\DOTSB\rightarrow}
\[ x \myop \dots \myop x \myop \dots \]
\end{document}
この場合、\dots
の定義に応じて最後が自動的に調整されるようにしたいと思います\myop
。これはどのように行うことができますか?
必ずしも前に何が起こったかを「覚えている」必要はありません\dots
(そうであれば良いのですが)。ドットの後に演算子を繰り返すことで、何らかのヒントを与えることは問題ありません。
\[ x \myop \dots \myop x \myop \dots \hint\myop \]
編集: あるいはもっと良いのは:
\[ x \myop \dots \myop x \myop \dotsfor{\myop} \]
引数の最初のトークンを調べる先読みマクロを使用できるでしょうか? 先読みだけではありませんが、引数の残りは破棄する必要があります。
答え1
これはすぐに入手できる文書では説明されていないようですが、 は説明テキサスの喜び(ams-tex のマニュアル) ここでドットのバリエーションが初めて定義されました。p.156 より:
したがって、数式モードで を使用すると
\dots
、タイプセットされる特定の種類のドットは、 のスタイルと数式内の次の記号の両方によって決定されます。残念ながら、このスキームが機能しない状況が1つあります。 ない\dots
次の記号はどれも使用できません。[数式の最後に表示される例] と入力すると\dots
、必要なドットの種類がわかるとは期待できません。先を読むことしかできず、その前に入力された記号を知る方法はありません。そのため、すべてのケースで\dots
単純に選択します\dotso
。したがって、数式がドットで終わる場合、適切な方法は、使用するドットの種類を AMS-TeX に指示することです。
ams-tex が作成された時点では、この問題は慎重に検討されており、エッジ ケースは予測不可能すぎて考慮できませんでした。
2 つのマクロを使用するアプローチが最善の選択肢だと思います:\myop
および\myopdots
(または 2 番目のマクロには、おそらくより短い名前)。変更が必要な場合にファイル内で簡単に見つけることができます。
編集:@Zarko がコメントで指摘したように、\dotsm
(「乗算ドット」の場合) は適切であり、\dotsb
(「バイナリ演算子/関係のドット」の場合) も適切です。どちらも に解決されます\cdots
。