![frac で上付き文字を使用すると高さが不均一になる](https://rvso.com/image/328827/frac%20%E3%81%A7%E4%B8%8A%E4%BB%98%E3%81%8D%E6%96%87%E5%AD%97%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%99%E3%82%8B%E3%81%A8%E9%AB%98%E3%81%95%E3%81%8C%E4%B8%8D%E5%9D%87%E4%B8%80%E3%81%AB%E3%81%AA%E3%82%8B.png)
答え1
問題は「i」の部分にあります。ここでは、アセンダが核の全体的な高さを設定しています\sin^2
。
これは「i」を潰すことで修正できますが、そうすると問題が発生します\overline{\sin x}
。解決策としては、実演算子の前に別のファントムを追加します。\mathop
実名のファントムを含むアトムを追加し、その後に を追加して、\!
連続する 2 つのアトムの間に TeX が挿入する細いスペース\mathop
を削除します。
\documentclass{article}
\usepackage{amsmath}
\makeatletter
\newcommand{\sinname}{sin}% change here
\newcommand{\sin@name}{%
\smash{\operator@font\sinname}\vphantom{s}%
}
\DeclareRobustCommand{\sin}{%
\mathop{\vphantom{\operator@font\sinname}}\!%
\qopname\relax o{\sin@name}%
}
\makeatother
\begin{document}
\begin{gather*}
\frac{1}{\sin\theta}+\frac{1}{\sin\alpha}\ne
\frac{1}{\sin^2\theta}+\frac{1}{\sin^2\alpha}
\\
\frac{1}{\sin\theta}\frac{\partial}{\partial\theta}\ne
\frac{1}{\sin^2\theta}\frac{\partial^2}{\partial\theta^2}
\\
\sqrt{\sin\alpha}+\sqrt{\cos\alpha}
\\
\frac{1}{\sqrt{\sin\alpha}}+\frac{1}{\sqrt{\cos\alpha}}
\\
\overline{\sin\alpha}
\end{gather*}
\end{document}
この世に完璧なものなどありません。3 行目には平方根記号の高さが異なっていることがわかります。これを解決するには、次\cos
のように同じ高さになるように再定義します\sin
。
\DeclareRobustCommand{\cos}{%
\mathop{\vphantom{\operator@font\sinname}}\!%
\qopname\relax o{cos}%
}
いくつかの印刷の伝統では に異なるタグ\sin
(「sen」など)を使用しているため、に名前を変更する\sinname
必要はないと思われるため、のみを提供します。\cos
\sin
この定義では、上線はとに対して同じレベルになりますが\cos
、これは望ましいことかもしれませんし、そうでないかもしれません。
答え2
明らかに (;-) @egreg の回答は素晴らしく、要点を突いていますが、ごくわずかな欠点があります。変質者が試すと、$\overline{\sin x}$
驚くことになるでしょう。さらに、部首記号の配置が最適ではないと主張する人もいます$\sqrt{\sin x}$
。
数式における上付き文字の位置はTeXの非常に低レベルの機能であり、数式組版の他の多くの「詳細な」詳細とともに、の付録Gで説明されています。TeXbook について、次の解決策の説明については、こちらを参照してください。
\documentclass[a4paper]{article}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
% egreg's recipe:
\makeatletter
\DeclareRobustCommand{\sinname}{%
\smash{\operator@font sin}\vphantom{s}%
}
% ... but let us use a different name for the operator:
\newcommand{\ssin}{\qopname\relax o{\sinname}}
\makeatother
% Our recipe:
\setbox0 = \hbox{$$} % load math fonts
\fontdimen18\scriptfont2 = 3.78970pt % turns out to be just enough
\begin{document}
The downside in egreg's answer:
\[\sqrt{\sin x}+\sqrt{\ssin x} + \overline{\sin x}+\overline{\ssin x}\]
That's not fine.
But, with our correction, the exponent of the ``usual'' \verb|\sin| will not be
rised that much:
\[ \frac{1}{\cos^{2}x} + \frac{1}{\sin^{2}x} + \frac{1}{x^{2}} \]
For an explanation, see \textsl{The \TeX book}, Appendix~G, Rule~18a; the
relevant passage is ``set \( u\gets h-q \)\,\ldots\ where $q$\,\ldots\ [is] the
[value] of~$\sigma_{18}$\,\ldots\ in the font corresponding to
[style]~$C{\uparrow}$''. What we are doing is to increase~$q$. The amended
value of~$u$ will be subsequently used in Rule~18c to position the superscript.
\end{document}
出力は次のとおりです。
重要な部分も拡大してみましょう。
もちろん、この解決策にも欠点がある可能性があります。TeX の非常に低いレベルで動作するパラメータをこのように変更すると、一見しただけでは明らかではない副作用が発生する可能性があります。
答え3
答え4
私はこの構文を知らない\sin^2
ので、この問題はこれまで見たことがありません。以下の私の MWE のように、より一般的なものに変更することをお勧めします。他の問題は、その正弦項の誇張された上付き文字を補正する必要がないため、同時に修正されます。
% arara: pdflatex
\documentclass{article}
\usepackage{mathtools}
\begin{document}
\[
\frac{1}{\sin\vartheta}\frac{\partial}{\partial\vartheta} \text{ vs. }\frac{1}{\sin(\vartheta)^2}\frac{\partial}{\partial\vartheta^2}
\]
\end{document}
この構文に固執したい場合は、一番左の用語にストラットを追加する必要があります。これにより、右側からの上付き文字が模倣され、すべてが適切に整列されます (subdepth
それでも修正は必要です)。
\frac{1}{\sin^{\vphantom{2}}\vartheta}
\sin
@egregは私に、次のように再定義できると言っていました
\def\sin{\mathop{\smash{\mathrm{sin}}\vphantom{s}}\nolimits}
これを正しく行うには、次の操作を行う必要があります。ただし、これを行うことはお勧めしません。コア コマンドを再定義する場合は、自分が何をしているのかを十分に理解しておく必要があります。