見出し画像

RstudioのEditor font以外のフォントを変更する

*2023.03.06に記事を修正しました。


はじめに

最近RStudioを最新に変更したのですが、フォントが変わってしまって困っていました。日本語表示が急に明朝体になってしまったんですよね…

自分の環境は以下の通りです。

macのバージョン:MacBook Pro (Early 2015)
R version 4.2.2 (2022-10-31)
Rstudioのバージョン:2022.12.0+353 (2022.12.0+353)

個人的にも調べたのですが分からなくてR-wakalangで相談したところ解決できました。教えてくださった方が「記事にしてみては」と言ってくださったので、今回はその方法を共有させて頂きます!

アドバイスしてくださった @Mopcup さんありがとうございました!

やろうとしていること

全般のフォントの設定を行なっているファイルが見つけられなかったので、今回はRstudioに最初から入っているテーマの設定を変更します。なのでそのテーマのみで有効な方法です。

使っているテーマを確認

Tools > Global Options… > Appearance > Editor theme
今回はDraculaで行います
ちなみにEditor fontでスクリプトビュー内のフォントだけは変えられます

テーマファイルがある場所を探す

MacならSpotliteで検索できます。MacもWindowsもOSやインストール先で違うかもしれないのでご了承ください。

#macの場合
/applications/rstudio.app/contents/resources/app/resources

#windowsの場合(未確認。\\は日本なら¥マークかもしれません)
C:\\Users\\<your user account>\\Documents\\.R\\rstudio\\themes

#windows11の場合は以下の情報を頂きました
c:\Program Files\RStudio\resources\app\resources\themes


その中にthemesというフォルダがあるので、そこでテーマと同じ.rthemeファイルを探します。

該当ファイルをテキストエディタ(メモ帳みたいなもの)で開いておきます

明朝体になっている箇所のクラスを特定する

まず該当箇所を右クリック > Inspect Elementを選択
見慣れない画面が出てくる
矢印をクリック
矢印のclassが該当箇所
該当箇所をクリックすると右のElementsビューに該当箇所のコードが出る
灰色箇所でEnterを押すと編集画面になるのでclassもコピーもできる

ここでは3つが該当しています

rstudio-HyperlinkLabel
GND-IWGDFR
GND-IWGDIJ

.rthemeを編集する

先程テキストエディタで開いたdracula.rthemeを編集します。
編集はファイルの最後に改行したあと以下を挿入します。
今回使うフォントはsans-serifを指定しました。

#書き方
.クラス名 {
  font-family: sans-serif;
}

実際には以下の通りです

.rstudio-HyperlinkLabel {
  font-family: sans-serif;
}
.GND-IWGDFR {
  font-family: sans-serif;
}
.GND-IWGDIJ {
  font-family: sans-serif;
}
選択範囲が今回追加した箇所

追加したら上書き保存します。

RStudioをreloadする

変わりました!

ただ他にも明朝体になっている箇所があると思いますので、同様の方法で修正します。自分の場合はスクリプトのファイル名と右上のプロジェクトの箇所で、上記の修正も含めると以下になりました。


.rstudio-HyperlinkLabel {
  font-family: sans-serif;
}
.GND-IWGDFR {
  font-family: sans-serif;
}
.GND-IWGDIJ {
  font-family: sans-serif;
}
.gwt-Label {
  font-family: sans-serif;
}
.GND-IWGDAQ {
  font-family: sans-serif;
}
.GND-IWGDGV {
  font-family: sans-serif;
}
.gwt-MenuItem {
  font-family: sans-serif;
}

フォントを指定したい場合

明朝体になっていたのは以下の箇所が原因だと思われます。

font-family: "Lucida Grande", serif;

フォントを指定する箇所はfont-familyなのですが自分の場合は"Lucida Grande"とserifになっています。これは"Lucida Grande"を使い、もしなければserifを使えという指示になっています。自分のパソコンには"Lucida Grande"がないので、明朝体の総称ファミリーであるserifが選ばれたからだと思われます。今回はゴシック体っぽい総称ファミリーのsans-serifを使いました。もし特定のフォントを使いたい場合は"フォント名"を指定することになります。

""があるのとないのにも意味があります。
""は特定のフォントを指定しており、""がない場合は総称ファミリーを指定します。

総称フォントファミリーは代替の仕組みです。この仕組みによって、指定されたフォントがどれも利用できなかった場合、スタイルシート製作者の意図を多少なりとも保つことができます。総称ファミリー名はキーワードであり、引用符で囲んではいけません。総称フォントファミリーは、フォントファミリー名リストの最終選択肢である必要があります。以下のキーワードが定義されています。

serif
終わりが止めや払い、または実際の活字のセリフの形をした角を持つ字形です。

例: Lucida Bright, Lucida Fax, Palatino, Palatino Linotype, Palladio, URW Palladio, serif

sans-serif
平たい角の端を持つ字形です。

例: Open Sans, Fira Sans, Lucida Sans, Lucida Sans Unicode, Trebuchet MS, Liberation Sans, Nimbus Sans L, sans-serif.

https://developer.mozilla.org/ja/docs/Web/CSS/font-family
より引用

実際に上記箇所を修正すれば全てのテーマに反映できそうなのですが該当箇所を見つけることができなかったため各.rthemeファイルを修正する方法をとっています。

まとめ

今回はRStudioのフォントの見た目を変える方法を紹介しました。
Windowsは試していませんので情報が違うことがあるかもしれませんがご了承ください。併せて.rthemeファイルではなく全体に反映させる方法があったら情報いただきたいです。もし情報いただけましたら記事に追記したいと思います。

もう1つの.rthemeの修正方法(2023.03.06追記)

上記の"Lucida Grande"ですが、これをまとめて別フォントに置き換えるという方法を教えていただきました。@font-faceを使う方法です。

まずテーマファイルがある場所を探すまでは同じです。そこから明朝体になっているクラスを探してどのフォントが使われているかを確認してください。私のmacでは"Lucida Grande"だったのですが、教えてくださった方のWindowsでは"Segoe UI"だったそうです。もしかしたら人によって違うかもしれません。

.rthemeファイルの冒頭に以下のコードを入力します。
Widowsとmacでフォントの記載方法が微妙に違うので注意してください。フォント名はggplot2::theme_grey(base_family = "○○")の○○のことです。
src: local("◯◯")の上が優先されますので好きなフォントを指定してください。総称フォントファミリーのsans-serifは使えなかったので注意してください。

#Windowの場合
@font-face {
    font-family: "Segoe UI"; /* WindowsだとSegoe UIがあたる */
    src: local("Helvetica Neue"),
         local("Meiryo UI"),
         local("Hiragino Kaku Gothic ProN"),
         local("Hiragino Sans");
}
#macの場合
@font-face {
    font-family: "Lucida Grande"; 
    src: local("HiraginoSans-W3");
} 
冒頭は説明文が書いてあったのでその後に入れました

font-family; "検索するフォント名";
src local("置換するフォント名候補1"),
      local("置換するフォント名候補2");
といったイメージです。候補の最後はセミコロン()です。Rでセミコロン使う機会ってあまりないのでついついコロン()にしがちになるので注意してください。

これでリロードしてください。
この方法はクラスを1つずつ指定しなくてもいいのがメリットです。

さらにもう1つの方法(2023.03.06追記)

.rthemeファイルが入っているフォルダに上記コードを記載したcssファイルを作成します。ファイル名はなんでも構いませんがここではpatch.cssとします。作成方法はメモ帳で開き保存するときに.txtでなく.cssで保存するだけです。そして.rthemeには以下のコードを追記します。

@import "patch.css";

patch.cssを読み込んでねという意味です。

まとめ(追記)

R-wakalangでたくさんのアドバイスをいただきここまでできました。
教えていただいたことに対して自分の初歩的なミスでできていないこともあり大変ご迷惑をかけましたが、この記事を出すことで次の人が少しでも困らずにフォントが指定できれば幸いです。




この記事が気に入ったらサポートをしてみませんか?