Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

$\left(\hat{ ... }\right)$ のカッコが大きくて気持ち悪い

TeX で $\left( ... \right)$ と書くと、中に書いた数式の大きさに応じて、自動的に大きいカッコが使われます。中に積分や分数のような「大きな式」を書くときはその方が見やすくなるので、基本的にカッコを使うときは \left,\right を使うべきです。

一方、\hat{x} は x の上にハット ^ を載せる命令です。

これらを組み合わせて使うと、(少なくとも個人的には)ちょっと気持ち悪い感じになります(下の図参照)。

\[
    f\left(\hat{X}\right) {\lVert v \rVert}_{P\left(\hat{X}\right)}
\]

2014-01-07-224551_1024x768_scrot-bigparen.png

これは、ハットをのせたことで \hat{X} のボックスがその分大きくなったためです。実際、そのおかげで分数なども適切な位置に表示できるのですが、個人的にはこのようにカッコの中の場合はハットなしの文字と同じ高さになって欲しいです。

そこで、ハットなしの場合と同じ高さでハット付き文字を作るマクロを作りました(20140214追記: コメント欄にて以下のマクロの問題点をご指摘いただきましたので,そちらで提示されている改良案を使用することをオススメします)。

Hat.tex
%% 縦に大きくならないハット付き文字を作る。
%%%% \hbox to 0pt : 幅 0pt のボックスを作る。
%%%% \phantom     : その文字列の大きさで何も表示されないボックスを作る。
%%%% \raisebox    : ボックスの位置・サイズを変更する。
%%%% \mathchoice  : 数式モードに応じて条件分岐する。
\def\Hat#1{{\fboxsep0pt\mathchoice
{\hbox to 0pt{\phantom{$\displaystyle #1$}     }\raisebox{0ex}[0pt][0pt]{$\displaystyle\hat{#1}$}}
{\hbox to 0pt{\phantom{$\textstyle #1$}        }\raisebox{0ex}[0pt][0pt]{$\textstyle\hat{#1}$}}
{\hbox to 0pt{\phantom{$\scriptstyle #1$}      }\raisebox{0ex}[0pt][0pt]{$\scriptstyle\hat{#1}$}}
{\hbox to 0pt{\phantom{$\scriptscriptstyle #1$}}\raisebox{0ex}[0pt][0pt]{$\scriptscriptstyle\hat{#1}$}}
}}
\[
    f\left(\Hat{X}\right) {\lVert v \rVert}_{P\left(\Hat{X}\right)}
\]

2014-01-07-230108_1024x768_scrot-properparen.png

もちろん、ボックスの高さが変わらないということを理解せずに分数の分母にこのマクロを放り込むような使い方をするとそれはまた気持ち悪いことになります。適材適所に使ってください。

参考文献

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?