Bagaimana cara memperbaiki font anti-aliasing di IntelliJ IDEA saat menggunakan DPI tinggi?

79

Saya menggunakan pengaturan DPI yang lebih tinggi yang membuat IntelliJ (sebenarnya Android Studio) benar - benar mengacaukan font .

Saya menggunakan MacType yang membuat font saya indah di tempat lain, tapi saya kira Java VM entah bagaimana memotongnya atau sesuatu, itu membunuh saya.

Bloke
sumber

Jawaban:

112

Saya menggunakan layar dpi tinggi dan saya membuatnya bekerja dengan rendering font yang sempurna, untuk mencapai ini Anda perlu:

  • (Di Linux) Instal dan gunakan Oracle JDK (Saya menggunakan 1.7) dan bukan OpenJDK (juga yang ditambal dengan fontfix tidak berguna bagi saya). Lihat bagaimana melakukan ini .

  • Edit file konfigurasi .vmoptions yang Anda temukan ke dalam folder instalasi Bin (mis. Studio.vmoptions dan untuk 64bit studio64.vmoptions , atau WebStorm.exe.vmoptions dll. Sesuai dengan versi IDE yang Anda instal) dengan menambahkan baris-baris ini:
    -Dawt.useSystemAAFontSettings=on
    -Dswing.aatext=true
    -Dsun.java2d.xrender=true

  • Hapus informasi petunjuk dari font yang ingin Anda gunakan dan pilih font baru ke preferensi IntelliJ IDEA (Pengaturan -> Editor -> Font);
    jika Anda tidak tahu bagaimana melakukan ini, instal FontForge lalu:

    1. Buka font Anda di FontForge
    2. Pilih semua mesin terbang melalui Ctrl+Adan hapus semua petunjuk (Petunjuk -> Hapus Petunjuk)
    3. Pilih mesin terbang lagi dan gunakan Petunjuk -> Hapus Instruksi
    4. Simpan font dengan nama berbeda (File -> Generate Fonts)
    5. Instal font baru, pilih di IDEA

Jika Anda mengikuti tips di atas dan Anda mengalami kelambatan ketika menggulir kode dengan cepat (ini kadang-kadang bisa terjadi pada distribusi Linux dengan driver gpu yang tidak dioptimalkan), coba hapus baris
-Dsun.java2d.xrender=true
dari file .vmoptions .

Akhirnya, ini adalah screenshot dari hasilnya:

Tangkapan layar IDE


(font yang digunakan di sini adalah LucidaMAC untuk IDE utama dan Ubuntu Mono dengan informasi petunjuk yang dihapus untuk editor kode)

guari
sumber
4
Luar biasa! Berfungsi di Windows juga :)) terima kasih: *
Bloke
1
Saya telah mencoba yang di atas pada mesin windows saya dengan hi dpi (3200x1800) Saya telah menyesuaikan studio.vmoptions seperti yang disebutkan namun semuanya masih buram. Mohon saran jika mungkin saya benar-benar ingin ini berfungsi?
Laju
10
@Pace Untuk menghapus font buram Anda perlu menonaktifkan penskalaan tampilan untuk aplikasi itu (klik kanan pada ikonnya, pilih Properties, buka Compatibilitytab dan periksa Disable DPI scaling on high DPI settings, untuk aplikasi x64 di Win8 - Anda harus mengedit bendera kunci registri terkait: buka Regedit. exe, buka HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layersdan tambahkan nilai string REG_SZ yang namanya path lengkap ke aplikasi yang dapat dieksekusi dan yang nilainya adalah HIGHDPIAWARE );)
guari
3
tidak dapat menghapus petunjuk dan instruksi pada font di font menempa ... Ada kesalahan ketika saya mencoba untuk menyelamatkan mereka setelah itu ... Apa yang saya lakukan salah
Mario Zderic
2
Wow. Masih membantu setahun kemudian. JetBrains perlu menjadikan ini default atau setidaknya melakukan deteksi otomatis. Keburaman tanpa pengaturan ini membuat IntelliJ terlihat mengerikan dan tidak dapat digunakan.
Andrew T Finnell
4

Saya menulis sedikit panduan bagaimana cara memperbaikinya.

   wget http://urshulyak.com/jdk-8u5-tuxjdk-b08.tar.gz
   tar -zxvf jdk-8u5-tuxjdk-b08.tar.gz
   sudo mv jdk-8u5-tuxjdk-b08 /usr/lib/jvm
   rm jdk-8u5-tuxjdk-b08.tar.gz

Script untuk memulai Ide Intellij

* hanya catatan yang perlu mengubah lokasi IDEA_HOME untuk jalur gagasan Anda

#!/bin/sh

IDEA_HOME=/opt/idea
export JAVA_HOME=/usr/lib/jvm/jdk-8u5-tuxjdk-b08/
export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=lcd \
                      -Dsun.java2d.xrender=true"
export GNOME_DESKTOP_SESSION_ID=this-is-deprecated
exec $IDEA_HOME/bin/idea.sh "$@"

Info lebih lanjut dan tangkapan layar untuk font yang lebih baik: http://urshulyak.com/?p=478

Yaroslav Urshulyak
sumber
Menambahkan -Dsun.java2d.xrender=trueke bin/webstorm64.vmoptionsdalam direktori WebStorm sudah cukup bagi saya.
Alicia
1
tautan unduhan terputus. Silakan perbaiki
jackode
Jawaban ini mengasumsikan arsitektur 64bit, yang mungkin tidak demikian
Anwar
Ini pada dasarnya menjalankan kode arbitrer seperti yang disarankan root - hati - hati.
Thorbjørn Ravn Andersen
2

Saya mendapatkan tampilan yang sama hanya dengan mengunduh font Menlo dan mengatur Editor Anti-aliasing ke 'grayscale' di dalam Appearance & behaviour> Appearance

Ini hasilnya:

Ini adalah tampilannya

Berikut ini adalah perbandingan antara kedua platform

masukkan deskripsi gambar di sini

Saya menggunakan resolusi yang lebih tinggi dan perangkat keras yang lebih baik bekerja dengan MAC, itu sebabnya font terlihat sedikit lebih cerah, hasilnya akan bervariasi tergantung pada mesin Anda. Bagaimanapun itu layak dicoba, perubahannya mudah dikembalikan

FRR
sumber
Bekerja sebagian untuk saya! Font tidak sejelas UI Mac generik tetapi cukup tajam untuk dapat dikerjakan. Saya menggunakan 13 "Mac Pro, OS X 10.11.4
Mayank Jain
mengapa Anda melakukan ini di OSX ?, Anda harus mendapatkan font yang tepat di luar kotak :)
FRR
2

Tidak ada barang jelek ini yang dibutuhkan lagi. Unduh IntelliJ terbaru (2016.1 dan seterusnya) untuk Linux. Ini termasuk JRE yang dimodifikasi dengan masalah font diperbaiki. Untuk memperbaiki Android Studio juga buat tautan simbolis ke IntelliJ jre:

ln -s /PATH/TO/INTELLIJ/jre /PATH/TO/ANDROIDSTUDIO/jre

Atau, cukup buka manajer file Anda sebagai root (dengan asumsi IDE Anda diinstal di direktori / opt atau folder sistem lain) dan buat pintasan ke jelli IntelliJ dan pindahkan ke folder instalasi Android Studio, lalu ubah nama menjadi 'jre'. Ini bekerja untuk android studio 2.0 terbaru tetapi harus bekerja dengan versi sebelumnya juga.

Aspiring Dev
sumber
Versi apa yang Anda maksud? Ketika saya pergi ke Bantuan> Tentang, saya melihat Intellij IDEA 15.0.2danBuild #IU-143.1184
Bloke
@Bloke buka saja situsnya dan unduh IntelliJ terbaru. Ini 2016.1.1 sekarang saya pikir. Mereka mengubah cara mereka mengiklankan versi baru sekarang dan memiliki format # YEAR.REVISION.UPDATE # itu sekarang.
Aspiring Dev
Oh, tentu saja. Saya baru saja mencobanya. Source Code ProFont saya sekarang terlihat agak terlalu tebal, tapi itu masalah kecil. Terima kasih!
Bloke
Menggunakan JRE yang dikemas dengan IntelliJ membuat semua perbedaan bagi saya. Saya awalnya mengunduh IntelliJ tanpa JRE dan menggunakan Oracle JDK lokal saya (1.7) yang menghasilkan font yang buruk. HTH.
sengs
2

Pada solusi JetBrains IDE yang baru berbeda.

Dalam folder instalasi IDE, cukup ganti nama jre folder menjadi sesuatu yang lain. Sebagai contoh:

  1. $ cd your-path-to/WebStorm-162.2228.20/
  2. $ mv jre/ _jre/

Versi yang lebih baru menggunakan JRE yang dibundel alih-alih sistem Anda dan versi yang dibundel ini menyebabkan masalah rendering font .

Berfungsi dengan baik di sini: WebStorm 2016.3.2 di Kubuntu 16.04 linux.

Tangkapan layar WebStorm dengan fon tetap

ogram
sumber
Ini dikubur di bagian bawah, tetapi INI adalah pelakunya yang sebenarnya. Semua orang di atas berfokus pada font Editor, tetapi saya sudah memiliki font editor yang baik. Masalah saya adalah berbagai info, dialog tooltips, dan modal semua menunjukkan font yang buruk tanpa antialiasing. Saya mencoba semuanya di atas dan tidak ada yang menyelesaikan masalah, tetapi menyembunyikan paket jre melakukan trik.
Dan
1

Jika Anda tidak dapat menghapus petunjuk dengan FontForge seperti guari menjelaskan dalam jawabannya . Gunakan Cousine (Apache License v2.00) sebagai font editor dan atur ukurannya menjadi 14. Saya mencoba beberapa font monospace lainnya. Namun, Cousine tampaknya memiliki rendering yang lebih bagus daripada kebanyakan font lainnya. Lihat tangkapan layar di bagian akhir

  1. Unduh fon: cd ~/Downloads/ && wget www.fontsquirrel.com/fonts/download/cousine
  2. Buat dir keluarga font baru: sudo mkdir /usr/share/fonts/truetype/Cousine
  3. Ekstrak file font: sudo unzip cousine -d /usr/share/fonts/truetype/Cousine/
  4. Jadikan tersedia untuk IntelliJ: sudo chmod -R 777 /usr/share/fonts/truetype/Cousine
  5. Perbarui cache font: sudo fc-cache -f -v
  6. Mulai ulang IntelliJ dan pilih Sepupu sebagai font editor
  7. Jangan lupa untuk mengatur vmoptions seperti yang dijelaskan guari

Tangkapan layar:

pengguna1185087
sumber
Tangkapan layar Anda sepertinya tidak menggunakan anti-aliasing.
Ztyx
Ganti tangkapan layar dengan yang lebih kecil untuk mencegah penskalaan turun. Sekarang Anda dapat melihat bahwa anti-aliasing digunakan
user1185087
1

Di Windows 10, saya punya masalah serupa. Memeriksa Disable display scaling on high DPI settingsmembuat font lebih halus tetapi jauh lebih besar. Berikut ini cara melakukannya (dari komentar sebelumnya dari pengguna lain):

Klik kanan pada ikonnya, pilih Properties, pergi ke Compatibilitytab dan periksaDisable DPI scaling on high DPI settings

Masuk ke Windows Settingsdan mencari Display Settings, ada dialog dengan slider yang mengatakan Change the size of text, apps, and other items. Saya memindahkannya dari 125% menjadi 100% dan harus logoff dan masuk kembali. Fon-fontnya kecil DAN halus sekarang:

masukkan deskripsi gambar di sini

Terlebih lagi, jika saya hapus centang Disable display scaling on high DPI settings, tampaknya masih lancar.

Pengguna1
sumber
Ini adalah satu-satunya solusi yang berhasil untuk saya! Terima kasih!
DrKaoliN
0

Jawaban yang diterima tidak berhasil untuk saya, tetapi saya dapat melakukan semuanya dengan melakukan ini:

Setelah membaca berbagai tutorial dan mengacaukan banyak perbaikan, saya menemukan cara yang bekerja dengan sempurna.

Pertama-tama unduh JDK 8 dari Oracle dan jalankan baris berikut di terminal:

cd Downloads
tar -xvf jdk-8u25-linux-x64.tar.gz
rm jdk-8u25-linux-x64.tar.gz
sudo mkdir -p /usr/lib/jvm/
sudo mv jdk1.8.0_25 /usr/lib/jvm/

Sekarang unduh perbaikan font JDK (Atas perkenan [Urshulyak Yaroslav] [2]) dengan menjalankan yang berikut:

cd ~/Downloads
wget http://urshulyak.com/jdk-8u5-tuxjdk-b08.tar.gz
tar -xvf jdk-8u5-tuxjdk-b08.tar.gz
sudo mv jdk-8u5-tuxjdk-b08 /usr/lib/jvm
rm jdk-8u5-tuxjdk-b08.tar.gz

Ini akan mengekstrak zip yang diunduh dan memindahkannya ke / usr / lib / jvm /. Sekarang jalankan perintah berikut di terminal:

cd ~
sudo gedit .bashrc

Kemudian tambahkan baris berikut ke bagian paling bawah dari file bashrc.

JAVA_HOME=/usr/lib/jvm/jdk1.8.0_25/
export JAVA_HOME

Simpan lalu gedit ide.sh. (Lokasi skrip Anda mungkin berbeda)

gedit /home/USER/Downloads/idea/bin/idea.sh

Di bagian paling bawah dari skrip, ganti baris dalam pernyataan While Do di bagian bawah dengan dua baris ini:

eval "/usr/lib/jvm/jdk-8u5-tuxjdk-b08/bin/java" $ALL_JVM_ARGS -Djb.restart.code=88 $MAIN_CLASS_NAME "$@"
test $? -ne 88 && break

Simpan kemudian buka IntelliJ, font harus bekerja dan Anda akan menggunakan Oracle JDK 8 untuk pengembangan. Anda mungkin harus mengedit Pengaturan Proyek dan mengatur JDK Anda lagi tetapi pastikan untuk menggunakan JDK yang sebenarnya dan bukan yang memperbaiki font.

Perbaikan ini juga berfungsi dengan CLion, Android Studio, dan [PyCharm.

Instruksi ini menganggap versi JDK adalah 1.8.0_25, nama file / path akan berubah untuk versi masa depan.


sumber
Apakah Anda punya ide bagaimana membuatnya bekerja dengan PhpStorm? Bagian bawah file terlihat seperti ini: LD_LIBRARY_PATH = "$ IDE_BIN_HOME: $ LD_LIBRARY_PATH" "$ JDK / bin / java" \ $ AGENT \ "-Xbootclasspath / a: $ IDE_HOME / lib / boot.jar" \ -classpath "$ $ CLASSPATH "\ $ VM_OPTIONS" -Djb.vmOptionsFile = $ VM_OPTIONS_FILES_USED "\" -XX: ErrorFile = $ BERANDA / java_error_in_WEBIDE_% p.log "\ -Djb.restart.code = 88 -Didea.PREGER <WAKTOR <BESAR <ANGKA WebPREGER <ANGKA <BESAR <PRA <ARPRA <BESAR <BESAR <URL_PRTENDER> \ $ IDE_JVM_ARGS \ $ REQUIRED_JVM_ARGS \ $ MAIN_CLASS_NAME \ "$ @" EC = $? test $ EC -ne 88 && keluar $ EC #test $? -ne 88 && break exec "$ 0" "$ @"
MichaelHindley
0

Anda dapat menginstal Oracle JDK-8. Diuji pada ubuntu 14.04, harusnya nanti juga berfungsi.

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer

Periksa versinya:

$ java -version
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)

Mengambil dari sini .

Temak
sumber
0

Begini tampilannya dengan rendering font yang mengerikan di ubuntu 16.04:

Begini tampilannya dengan rendering font yang mengerikan di ubuntu 16.04

Jika Anda menggunakan IntelliJ IDEA 2016.X atau lebih baru tanpa bundel JDK, Anda dapat mengatur variabel lingkungan "IDEA_JDK" untuk menentukan runtime tertentu. Render font di ubuntu 16.04 dengan Android studio sangat sempurna, sehingga Anda dapat berbagi JRE yang sama dengan Intellij IDEA. IntelliJ mencari variabel lingkungan IDEA_JDK terlebih dahulu, jadi atur dengan menambahkan file:

/etc/profile.d/IDEA_SDK.sh

Tambahkan ini ke file:

export IDEA_JDK=/opt/android-studio/jre

Sesuaikan / opt / android-studio / jre sesuai instalasi Anda. Logout dan masuk kembali dan jalankan IDE Intellij Anda

Ini seperti apa setelah menggunakan JRE baru:

Ini terlihat seperti setelah menggunakan JRE baru

Abhisek Padhi
sumber
-1

Saya menyadari bahwa anti-aliasing dari phpstorm bekerja cukup baik menggunakan konfigurasi default. Perbandingan dua perintah menunjukkan bahwa satu-satunya perbedaan adalah phpstorm menggunakan java sendiri (/ usr / share / phpstorm / jre64 / bin / java).

Saya memodifikasi skrip startup ide untuk membuatnya menggunakan java phpstorm dan itu bekerja dan semuanya sebagus phpstorm lakukan. tangkapan layar

jswh
sumber
Perubahan apa? Apakah Anda perlu menginstal phpstorm untuk itu?
Journeyman Geek