\sqrtの左の突起を小さくしたい

\sqrtの左の突起を小さくしたい

- Fukuda T  の投稿
返信数: 3
現在教材の作成をしており,\sqrtが横に幅を取ることに悩まされております。

具体的には,添付写真のように,sqrtの左の「突起」部分を小さく,あまりスペースを取らない設計にしたいと思っています。

この件について,沢山の文献・サイトを参照したのですが,一向に答えが見つからず,ここで質問してみることにしました。

何か案をお持ちでしたら,ご教示いただければと思います。

よろしくお願いいたします。
添付 81uAl9qdnVL.jpg
Fukuda T  への返信

Re: \sqrtの左の突起を小さくしたい

- ishi hara の投稿
ずいぶんと前にネット上で見つけたものです。
根号をすべて直線で描くというものです。
オリジナルはdvi→ps→pdfとするものですが。
改造したので,dvipdfmxでpdf化できると思います。

\documentclass{jarticle}
%\usepackage{sqrt}
\makeatletter
%%%%%%%%%%%%%%%%% sqrt.sty の内容
%%%%%%%%%%%%%%%%% 以前見つけたものをdvipdfmxでpdf化できるように改造したもの
\RequirePackage{epic}
\RequirePackage{eepic}
\def\@drawradical#1#2{% #1: total height, #2: width of radical
\begingroup
\@tempdima#1\p@ \@tempdimb#2\p@
\dimen@-.9\@tempdima
\edef\@radical@coordAx{0}%
\edef\@radical@coordAy{\strip@pt\dimen@}%
\dimen@.1\@tempdimb \dimen@ii-.75\@tempdima
\edef\@radical@coordBx{\strip@pt\dimen@}%
\edef\@radical@coordBy{\strip@pt\dimen@ii}%
\dimen@.4\@tempdimb \dimen@ii-\@tempdima
\edef\@radical@coordCx{\strip@pt\dimen@}%
\edef\@radical@coordCy{\strip@pt\dimen@ii}%
\dimen@\fontdimen8\textfont3\relax
\edef\@sqrt@linethickness{\strip@pt\dimen@\space}%
\dimen@-1.5\dimen@
\edef\@radical@coordDx{\strip@pt\@tempdimb}%
\edef\@radical@coordDy{\strip@pt\dimen@}%
\unitlength1pt
\begin{picture}(0,0)
\drawline(\@radical@coordAx,\@radical@coordAy)(\@radical@coordBx,\@radical@coordBy)
\drawline(\@radical@coordCx,\@radical@coordCy)(\@radical@coordDx,\@radical@coordDy)
\thicklines
\drawline(\@radical@coordBx,\@radical@coordBy)(\@radical@coordCx,\@radical@coordCy)
\end{picture}
\endgroup}
\def\@sqrt@divide#1/#2{%
\ifdim#1<32\p@
\multiply#1 256\relax \divide#2 256\relax
\else
\ifdim#1<64\p@
\multiply#1 128\relax \divide#2 512\relax
\else
\ifdim#1<128\p@
\multiply#1 64\relax \divide#2 1024\relax
\else
\ifdim#1<256\p@
\multiply#1 32\relax \divide#2 2048\relax
\else
\ifdim#1<512\p@
\multiply#1 16\relax \divide#2 4096\relax
\else
\multiply#1 8\relax \divide#2 8192\relax
\fi
\fi
\fi
\fi
\fi
\divide#1 by #2\relax}
\DeclareRobustCommand{\sqrt}{\@testopt\@sqrt{}}
\def\@sqrt[#1]#2{%
{\@save@counters
\mathchoice
{\@@sqrt\displaystyle    {#1}{#2}}%
{\@@sqrt\textstyle        {#1}{#2}}%
{\@@sqrt\scriptstyle      {#1}{#2}}%
{\@@sqrt\scriptscriptstyle{#1}{#2}}}}
\def\@@sqrt#1#2#3{%
\hbox{%
\@restore@counters
\setbox\z@\hbox{\m@th$#1#3$}%
\dimen@\ht\z@  \advance\dimen@\p@
\dimen@ii\dp\z@ \advance\dimen@ii\p@
\setbox\z@\hbox{\m@th$#1%
\overline{%
\box\z@
\vrule\@width\z@ \@height\dimen@ \@depth\dimen@ii}$}%
\dimen@\ht\z@ \advance\dimen@\dp\z@
\ifx#1\scriptscriptstyle \let\@tempa\ssf@size
\else
\ifx#1\scriptstyle    \let\@tempa\sf@size
\else                \let\@tempa\tf@size
\fi
\fi
\dimen@ii\@tempa\p@ \dimen@ii.5\dimen@ii
\edef\@tempa{\noexpand\@drawradical
{\strip@pt\dimen@}{\strip@pt\dimen@ii}}%
\setbox4\hbox{\raise\ht\z@\hbox to\dimen@ii{\@tempa\hfil}}%
\def\@tempa{#2}%
\ifx\@tempa\@empty
\box4\relax
\else
\setbox\tw@\hbox{\m@th$\scriptscriptstyle #2$\hskip.5\dimen@ii}%.25-->.5
\dimen@\ht\z@ \advance\dimen@-\ht\tw@
\setbox\tw@\hbox{\raise.5\dimen@\box\tw@}%%.6-->.5 2017-10-18
\ifdim\wd4<\wd\tw@ \box\tw@ \llap{\box4}%
\else              \box4    \llap{\box\tw@}%
\fi
\fi
\box\z@}}
\def\@save@counters{%
\def\@elt##1{\noexpand\setcounter{##1}{\number\csname c@##1\endcsname}}%
\edef\@restore@counters{\cl@@ckpt}}
%\endinput
%%%%%%%%%%%%%%%%%%%%%%%%%%%
\makeatother
\begin{document}
$\sqrt{5}$
\end{document}

ishi hara への返信

Re: \sqrtの左の突起を小さくしたい

- 北見 けん の投稿
数式フォントのグリフ形状が気に入らない場合は作るしかないですよね。

なるほど。これは tpic specials で描画する方法ですね。

他の方法として、cmsy とか cmex のメタフォントソースを改変して
別デザインの根号を作るのもできそうです。
(改変する場合は混乱を避けるためにフォントファイル名を変えます)
## 私はDVIまでしか作らないのでこれでよいのですが、
## PDFにするなら改変後のメタフォントソースから Type1 などに
## 変換しないといけないのかな?
北見 けん への返信

Re: \sqrtの左の突起を小さくしたい

- Fukuda T  の投稿
ありがとうございました。

上記ソースで試してみた結果,うまくデザインを改変することができました。

メタフォントソースの改変も試してみようと思います。

ご回答に感謝します。