下付き文字または指数のTikz

Aug 19 2020

私は時々tikzを使って特別な記号を描き、それを方程式で使用します。それを行うためのより良い方法があるかどうかはわかりませんが、それは非常に簡単で、良い結果をもたらします。具体的な例を挙げます。

\newcommand{\symb}{\tikz[baseline=(s.base)]{
        \node[inner sep=1pt,outer sep=0pt] (s) {$s$};
        \draw[-] (s.north east) -- (s.south east) -- (s.south west) -- (s.north west);
    }}

ボックスの3つの側面が周りにある数学スタイルのsを取得します。1つの例外を除いて、ほとんどすべての状況でうまく機能します。添え字または指数として使用すると、適切にスケーリングされません。

では、両方のように、彼らは、タイトルまたは異なるフォントサイズで表示された場合でも、正確に同じ大きさを持って、両方のは、まだ正確に同じ大きさを持っているのです。しかし、スクリプトが含まれている場合、つまり、2番目のスクリプトが$s$ vs $\symb${\Large $s$ vs $\symb$}$X_s$ vs $X_\symb$$s$ スクリプトサイズではありません。

だから、コマンドを変更する方法はありますか $\symb$ 上記のように、下付き文字または指数内で使用すると、テキストと同じ方法でスケーリングされますか?

私はすでに実用的な解決策を見つけました:スクリプトスタイルで使用されるコマンドの2番目のバージョンを作成します:

\newcommand{\symbsc}{\tikz[baseline=(s.base)]{
        \node[inner sep=1pt,outer sep=0pt] (s) {$\scriptstyle s$};
        \draw[-] (s.north east) -- (s.south east) -- (s.south west) -- (s.north west);
    }}

これは視覚的に望ましい結果を生成しますが、スクリプトスタイルであるかどうかに応じて、2つの異なる関数を使用するのは少し面倒です。私は誰かがこれを行うためのより良い方法を私に提案できると思っていましたか?

最小限の例:

\documentclass{article}
\usepackage{tikz}

\newcommand{\symb}{\tikz[baseline=(s.base)]{
        \node[inner sep=1pt,outer sep=0pt] (s) {$s$};
        \draw[-] (s.north east) -- (s.south east) -- (s.south west) -- (s.north west);
    }}

\begin{document}

In normale size: $\symb$ vs $s$.

In large scale, it scales well: {\Large $\symb$ vs $s$ }

But in subscript, it doesn't: $X_{\symb}$ vs $X_{s}$

It especially look bad if both appear in the same subscrit:

$X_{s \symb}$ vs $s \symb$

\end{document}

回答

2 muzimuzhiZ Aug 19 2020 at 22:17

パッケージによって提供される\tikz内部のすべてを包むことは仕事をします。これはテキストモードで使用した場合と同様であり、この場合は害がないことに注意してください。\text{...}amsmath\text\mbox

\documentclass{article}
\usepackage{amsmath}
\usepackage{tikz}

\makeatletter
\newcommand{\symb}{%
  \text{%
    \tikz[baseline=(s.base)] {
      \node[inner sep=1pt, outer sep=0pt] (s) {$s$};
      \draw (s.north east) -- (s.south east) -- (s.south west) -- (s.north west);
    }%
  }%
}
\makeatother

\begin{document}

In normale size: $\symb$ vs $s$.

In large scale, it scales well: {\Large $\symb$ vs $s$ }

But in subscript, it doesn't: $X_{\symb}$ vs $X_{s}$

It especially look bad if both appear in the same subscrit:

$X_{s \symb}$ vs $s \symb$

\end{document}