ここにとっくに上がっていそうな質問ですが、意外にもここではまだ一度も投稿されたことがない質問のようなので、投稿してみます。
みなさんはコーディングするとき、どんなフォントを使っていますか? また、Webブラウザーの等幅フォントには何を使っていますか?
ひとまず私の場合は D2Coding を使っています。
私がコーディング用フォントを選ぶ基準は次のとおりです。
- サンセリフ(Sans-serif)スタイルの等幅(monospace)フォントであること。
- 日本語がサポートされており、日本語を使うときでも等幅が崩れないこと。
O、o、0、l、iなど紛らわしい文字を十分に判別できること。\(backslash)記号が₩(韓国ウォン)の通貨記号として表示されないこと。- ターミナルで使うための Powerline シンボルをサポートしていること。
- その他、自分の好みに合っていること。
問題は、これらの条件をすべて満たすケースが思った以上にかなり少ないことです。特に 日本語を使うときでも等幅が崩れないこと という条件を満たすフォントは本当に少ない気がします。そこで、Sarasa Gothic や Monoplex KR のように、有名な等幅フォントに日本語フォントを組み合わせたフォントも探してみましたが、まだ以前から使っていた D2Coding より気に入るものは見つかっていません。
ちょうど最近新しく Windows をインストールしてフォント関連の設定をしているときに、ふと他の方はコーディング用にどんなフォントを使っているのか気になりました。特に日本語対応に関して、おすすめできるフォントの組み合わせがあれば知りたいです。
55件のコメント
コーディングするとき、どんなフォントを使っていますか?
RobotoMono Nerd Font
Source Han Mono と Nanum Gothic Coding を混ぜて使っています。
source code pro for powerline を何年も使っていましたが、
ここのコメントスレッドで sf mono を知って、すぐに乗り換えました。
vscode、datagrip で sf mono がとてもきれいに表示されますね。
昔からタイポグラフィに妙に(?)関心の強かったAppleが、UI向けに本腰を入れて自ら作ったフォントがSan Franciscoだからか、可読性が高くてきれいですよね。
ここで Monoplex KR を教えていただいて、しばらく Jetbrains mono をコーディング用に、Markdown 用には Sarasa Fixed K を使っていたのですが、Monoplex KR 一つにコーディング用も Markdown 用も切り替えて使い始めました。
Windows 10、VSCode なのですが、第一印象は同じフォントサイズでも実際に見える大きさがかなり小さくなったことと、日本語は少しぼやけて見えることです。
可読性に問題があるほどではないので、しばらく Monoplex KR を使ってみようと思います。
日本語が少しかすんで見える場合、文字の太さを選べる環境であれば、太さを少し調整すると多少改善することもありました。VS Code であれば、
settings.jsonファイルのeditor.fontWeight設定に 1 から 1000 の間の数値を入力して、フォントの太さを細かく調整できます。SF Monoを使っていましたが、韓国語を使うときの等幅対応という点は考えていませんでしたね。聞いてみるととても良さそうなので、一度適用してみようと思います。
フォントファイルを直接修正して使っているのですか?
WindowsではConsolas、macOSではMenloを使っています。MacではSF Monoがいちばん読みやすかったのですが、このフォントがXcodeの外でも使えるようにライセンスされているのかは分かりませんね。
SF Mono は組み込みサポート用のライセンスはありませんが、自分でダウンロードしてカスタムフォントを設定することはできるようです。WebStorm ではその方法で使っていますね。
個人的にはConsolasはあまり気に入らないところもありますが、Windowsで基本的に使える等幅フォントの中では一番ましなほうではないかと思います。特に外部から隔離されていたりして自分の好きなフォントを使えない環境では、等幅フォントとして必ずConsolasを使います。
私は英語には Ubuntu Mono derivative Powerline、日本語には D2 Coding を使っています。
英語は等幅フォントで見栄えのいいものが本当に多いですが、日本語はまだ D2 Coding より良いものを見つけられていません。
私も、もしかすると自分が知らないだけで韓国語をサポートする他の良い等幅フォントがあるのではと思って Ask GN に一度投稿してみたのですが、やはりなかったんですよね T_T
リガチャが好きで Fira Code を使い始めたのですが(Haskell をコーディングしていると、リガチャを使うほうが便利なんですよね)、最近はリガチャ対応の等幅フォントが増えてきていて良いなと思います。面倒なので他のものを試してはいません。それまでは Source Code Pro も長く使っていました。
Haskell のような関数型言語なら、演算子記号を見やすく置き換えてくれる合字機能を使うほうがよさそうですね。
皆さん、どこかで一度は聞いたことのある良いフォントを使っているんですね。私は成り行きで Comic Mono を使っています。丸みのある感じが気に入っています。
えっ、Comic Sans に等幅版があったんですか?!
…考えてみれば、グルリム体以上に好き嫌いが分かれる愛憎入り混じった存在ですし、こういうものが出てきても不思議ではありませんね。
いろいろなフォントを使ってみましたが、NanumGothicCodingを使っていた後、D2Codingに落ち着きました。Mesloも悪くないと思います。
そういえば、Mac OSのターミナルのデフォルトフォントであるMenloも、かなり良い感じだったように記憶しています。あれはBitstream Vera Sansの派生版でしたっけ。
Bitstream Vera Sansの派生版ですね。
はい。Meslo は、Menlo font を Windows で使えるように変換したフォントです。
https://github.com/andreberg/Meslo-Font
調べてみると、Meslo LG フォントの条件組み合わせ選択ガイドもあるんですね。
https://johngrib.github.io/wiki/coding-font/
FiraMono NF を使っています..
合字(ligature)は使いたくないけれど、Powerline シンボルは使いたい……その気持ち、私も分かります。
なので私も D2Coding ligature は使わず、普通の D2Coding だけを使っています。
GeekNewsで最も活発な投稿!
こういう話題がなぜ今まで出てこなかったのか、不思議に思うこともあります。
JetBrains MonoとD2Codingを使っています。
ときどき、ターミナルフォントなどではIBM Plex Monoも気に入って使っています。
IBM Plex Monoは個人的には好みが分かれる要素があって好きではありませんが、印象的なフォントだと思います。
それはそうと、最近出たフォントの中ではJetBrains Monoが思った以上に人気があるようですね。
JetBrains Monoは、ligatureもなぜか気になりませんね
おお、そんな程度なんですか。
メインでは Pragmata Pro (https://fsd.it/shop/fonts/pragmatapro/)、サブでは Berkeley Mono (https://berkeleygraphics.com/typefaces/berkeley-mono) を使っています。コードで日本語を使うことがほとんどないので、日本語等幅フォントは考慮していません。
コーディングするとき、どんなフォントを使っていますか?
有料フォントは、その価格に見合う価値が十分にあると感じるのか気になります。
Pragmata Proは購入してからもう5年以上になると思いますが、ほかのフォントを差し置いていつもメインのコーディング用として使うことになるフォントなので、お金を払った甲斐を感じています。Berkeley Monoは購入してまだ数か月ほどしか経っていないので、正確に評価するのは少し難しいです。
韓国ウォンで25,000ウォンほどを支払って5年以上使うなら、本当に十分その価値はありますね。
Berkeley Monoも見た目はかなり良さそうですが、実際にはどうなのか、今後の評価が気になります。
Pretendardが等幅フォントに対応していないのがとても残念です
Pretendard はUIデザイン向けに作られたものなので仕方ない面はありますが……それでも、もう少し使いやすい韓国語対応の等幅フォントが増えてほしいと思っています。
私もD2Coding...
コーディングするとき、どんなフォントを使っていますか?
他の等幅フォントに韓国語フォントを組み合わせたものではなく、そもそも韓国語の使用を最初から念頭に置いて作られた等幅フォントは、現時点では D2Coding しかないように思います。少なくとも私の知る限りでは。
HackにD2Coding(韓国語用)を混ぜて使っています。
設定はこんな感じです。
;;
;;; straight is
nill' macro ;; ;;;###autoload (defmacro use-feature (name &rest args) "Likeuse-package', but withstraight-use-package-by-default' disabled." (declare (indent defun))(use-package ,name:straight nil
,@args))
(use-feature emacs
:custom
(face-font-rescale-alist '((".D2Coding." . 1.26)))
:init
(add-to-list 'default-frame-alist '(font . "Hack Nerd Font"))
(set-face-attribute 'default nil
:height 120
:family "Hack Nerd Font") ;; This will early init
(set-fontset-font "fontset-default" '(#x1100 . #xffdc)
'("D2Coding" . "iso10646-1"))
(set-fontset-font "fontset-default" '(#xe0bc . #xf66e)
'("D2Coding" . "iso10646-1")))
ひいっ Emacs!
よく見ると、ただの Hack フォントではなく、Hack Nerd フォントのようですね。
あっ、そうですね
MS製の Cascadia Mono を使っていて、ligature オプションは使っていません。フォールバックフォントには D2Coding を使っています。
Fallback の設定はレジストリ編集で行いましたか?
IntelliJ系を使っているので……設定がそのまま使えます。
ああ……私も IntelliJ IDEA と Rider を使っていますが、どこでも常に D2Coding を使っているので、fallback オプションの設定はすっかり忘れていました。
Fira Codeを使っています。
コーディングするとき、どんなフォントを使っていますか?
Fira Code は、リガチャ対応にかなり本気なフォントのようでした。
個人的には、等幅フォントでリガチャを使うのはあまり好きではありませんが、そういうのが好きな方なら、かなり気に入るフォントだと思います。
私もD2Coding Ligatureを使っていましたが、最近はJetbrains Monoを使っていて、韓国語の等幅フォントがサポートされていないですね
コーディングするとき、どんなフォントを使っていますか?
CJKをサポートする等幅フォントは本当に貴重な存在…
個人的には、コーディング時に韓国語をできるだけ使わないようにしているので、単純に一番気に入っている JetBrains Mono を使っています。
個人的にはドットフォントも好きなので、たまに NeoDunggeunmo Code も使っています。
ちなみに私の場合、チーム内のソースコードのコメントがすべて日本語であるため、コーディング用フォントの日本語対応は譲れない条件です。
WindowsでVSCodeを使って開発するときは JetBrains Mono を使っています。こちらもコメントはもちろん日本語ですが、コード内で日本語を使うことはないので、あまり関係ないように思います。
Markdown を編集するときは、日本語と英語が混在している場合に本当に 2:1 の固定幅であることが重要なので、Sarasa Fixed K を使っています。
実のところ、d2codingがあらゆる条件に合っていて長い間使っていたので……代替フォントを探していて、今は sarasa fixed k を使っています。jetbrains mono は英字フォントがきれいで気に入っていました。
私も、純粋にソースコードにだけ使うのであれば韓国語がフォールバックされるフォントを使っても構わないのですが、なんとなくMarkdownやターミナル、あるいはWebブラウザーの等幅フォントまでひとつのフォントで統一してそろえたいというこだわりがあって……。そういう意味では、D2Codingが本当にすべての条件に合っているので、私も今までずっと使っています。
Sarasa Gothicは、ベースになっているIosevkaフォントがあまり私の好みではないので使っていませんが、(このスレッドで知ったMeslo LGフォントほどではないにせよ)それぞれのデザインの組み合わせを好みに合わせて使えるよう細かく分かれているのは良いですね。
NeoDungGeunMo Code の場合、一部の文字(たとえば
UとV)がきちんと区別されないように感じるため、上の条件のうち3つ目を満たしていないと思います。