
現在、私は 2 次と 4 次テンソルを次のように表現しています (誰かから引用したものですが、どのように動作するのかよくわかりません)。
% tensor 2:
\newcommand{\tend}[1]{\oalign{\mbox{\boldmath$#1$}\crcr\hidewidth$\scriptscriptstyle\sim$\hidewidth}}
%tensor 4:
\newcommand{\tenq}[1]{\tend{\tend #1}\vphantom{#1}}
それは次のようになります:
結果があまり気に入りません。太字が変だし、スケールも悪く、4 次テンソルの間隔が広すぎます... 2 次テンソルにはより堅牢な untertilde パッケージを見つけましたが、そこから 4 次テンソルを作成する方法がわかりません。このトピックも見つけました。太字のワイドティルダ、4次のシンボルスタッキングには対応していません。
シンプルでエレガントな方法はありますか? ここでの私の主な関心事は、チルダと文字の一貫した太字と、4 番目の順序の適切な垂直間隔です。
ありがとう
答え1
\sim
ここでは、オプションの引数の値に基づいて、スタックを使用して引数の下に再帰的に配置します。定義では、は[1pt]
引数からのアンダーギャップであり、はマルチスタック内の文字[0pt]
間の垂直方向の分離です\sim
。これらの値は、必要に応じて変更できます (負の値にすることもできます)。
テンソル自体には太字フォントを使用していませんが、必要に応じて定義時または呼び出し時に追加できます。
の仕様では、水平方向の間隔を設定する際にアンダーセット\def\useanchorwidth{T}
の幅を無視するように指定されています。問題になる可能性があるのは、たとえば、狭い引数で隣接する呼び出しを使用した場合のみです ( など)。狭い引数では常に少なくとも の幅を占めることになるので、行を削除することもできますが、私の最初のステップは、必要な非常にまれな場合に手動でスペースを追加することです。\sim
\tenq[2]{i}\tenq[3]{j}
\useanchorwidth
\tenq
\scriptscriptstyle\sim
\,
\documentclass{article}
\usepackage{stackengine}
\stackMath
\newcommand\tenq[2][1]{%
\def\useanchorwidth{T}%
\ifnum#1>1%
\stackunder[0pt]{\tenq[\numexpr#1-1\relax]{#2}}{\scriptscriptstyle\sim}%
\else%
\stackunder[1pt]{#2}{\scriptscriptstyle\sim}%
\fi%
}
\begin{document}
\[
\tenq{\sigma}\neq\tenq[2]{\Lambda}\neq\tenq[3]{\Delta}\neq\tenq[4]{\psi}
\]
\end{document}
答え2
最初の定義が気に入ったら、の代わりに\tenq
を使っての同じ定義を使うことができます。\approx
\sim
\bm
の代わりに同じパッケージからも使用します\boldmath
。
MWE:
\documentclass{article}
\usepackage{amsmath,bm}
% tensor 2:
\newcommand{\tend}[1]{\hbox{\oalign{$\bm{#1}$\crcr\hidewidth$\scriptscriptstyle\bm{\sim}$\hidewidth}}}
%tensor 4:
\newcommand{\tenq}[1]{\hbox{\oalign{$\bm{#1}$\crcr\hidewidth$\scriptscriptstyle\bm{\approx}$\hidewidth}}}
\begin{document}
\[
\tend{\sigma}\neq\tenq{\Lambda}
\]
\end{document}
答え3
ただ楽しむためです。
\documentclass{standalone}
\usepackage{amsmath,bm}
\newlength{\fillwidth}
% creates a tilde which slightly overlaps what's above and below, centered in a space \fillwidth wide
\newcommand{\flatsim}{\hbox to \fillwidth{\hfil\raisebox{0pt}[.05ex][.05ex]{$\scriptscriptstyle\bm{\sim}$}\hfil}}
\newcommand{\triple}[1]{\settowidth{\fillwidth}{$\bm{#1}$}%
\vtop{\baselineskip=0pt\hbox{$\bm{#1}$}\hbox{\rule{0pt}{.2ex}}\flatsim\flatsim\flatsim}}
\begin{document}
\triple{\sigma}
\end{document}