Brzydkie czcionki w Netbeans - Jak mogę zmusić go do używania czcionki systemowej?


69

Mam problem z ładnym wyglądem czcionki Netbeans, był to problem, odkąd wypróbowałem Ubuntu ~ 8. Z jakiegoś powodu czcionki wyglądają tak, jakby nie uzyskiwały wygładzania subpikseli tylko w Netbeans, w pozostałych aplikacjach wyglądają idealnie.

Zobacz, jak brzydki jest zrzut ekranu:

wprowadź opis zdjęcia tutaj

To nie tylko obszar kodu, ale każda czcionka w aplikacji wygląda w ten sposób. Rozglądałem się i najwyraźniej dodanie następującej linii do .bashrcpliku powinno rozwiązać problem, ale w moim przypadku nie:

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'

Wydaje się, że może to wpływać tylko na aplikacje oparte na Javie, ale nie byłem w stanie przetestować innej aplikacji Java, aby sprawdzić czcionki.

Czy ktoś wie, co mogę zrobić, aby to naprawić? Jak zmusić Netbeans do używania czcionki systemowej?


Szukałem również rozwiązania tego problemu, ale po prostu nie ma takiego rozwiązania. W szczególności wpływa na aplikacje oparte na Swing; przekonasz się, że Eclipse na przykład wygląda dobrze. Właściwie nie przejmuję się czcionką kodu (jest zmienna i stwierdzam, że wygląda dobrze z Droid Sans Mono na 11pt), ale chromowane czcionki naprawdę mnie denerwują.
Jamie Schembri

Tak wydaje się dotyczyć tylko aplikacje Java oparte, myślę o zmianie mojego IDE właśnie z tego powodu ..
Javier Villanueva

Właściwie wspomniałem o Swingu, ponieważ problem z czcionkami nie jest widoczny w aplikacjach SWT, takich jak Eclipse. Tak czy inaczej, wpływa to tylko na (niektóre) aplikacje Java. Mogę również potwierdzić, że problem nadal występuje w Netbeans 7.0 RC1.
Jamie Schembri,

Masz rację, przeszedłem na Aptana i wyglądają tam dobrze, mam nadzieję, że uda mi się to naprawić. Naprawdę lubię Netbeansa, ale te czcionki doprowadzały mnie do szału.
Javier Villanueva

1
Używam teraz „Droid Sans Mono”, rozmiar 16 z „-J-Dawt.useSystemAAFontSettings = on --laf javax.swing.plaf.nimbus.NimbusLookAndFeel -J-Dsun.java2d.noddraw = true -J-Dsun. java2d.dpiaware = true '
Karussell

Odpowiedzi:


38

Jak stwierdzono w komentarzach, jest to problem z aplikacjami Java Swing w systemie Linux. Swing korzysta z ustawień wygładzania czcionek Gnome (nieaktywnych, w skali szarości lub subpikseli) - nie uwzględnia jednak ustawień podpowiedzi. Zawsze używa pełnego podpowiedzi, a jeśli używasz Ubuntu z niewielkim podpowiedziami czcionek lub bez nich (tak jak większość ludzi, ponieważ ustawieniem domyślnym jest mało podpowiedzi), spowoduje to, że czcionka będzie wyglądać znacznie inaczej niż w innych aplikacjach. Aplikacje SWT, takie jak Eclipse, są w porządku, ale jeśli lubisz Netbeans, to ci nie pomoże.

Uwaga: w poniższym obejściu mówię tylko o czcionce edytora, ponieważ w IDE to jest dla mnie ważne. Możesz również zastosować go do czcionek menu itp., Ale może to nieco przesadzić.

Jedyne użyteczne rozwiązanie, jakie tu znalazłem : użyj Fontforge do edycji wybranej czcionki edytora i usuń wszystkie informacje wskazujące z samej czcionki, a następnie zapisz ją jako nową czcionkę i użyj jej w Netbeans.

  1. sudo apt-get install fontforge
  2. Uruchom Fontforge
  3. Otwórz wybraną czcionkę
  4. Ctrl+ Alub, edit -> Select -> Select allaby zaznaczyć wszystkie znaki
  5. Wskazówki ⇒ Jasne instrukcje
  6. Ctrl+ Shift+ Flub, element -> font infoaby otworzyć informacje o czcionce
  7. Zmień nazwę czcionki (np. Na oryginalną nazwę + „_nohints”)
  8. Zapisz edytowaną czcionkę w .fontskatalogu w swoim domu, file -> generate fontskorzystając z formatu odczytywanego przez Ubuntu (patrz następny krok)
  9. Wyczyść pamięć podręczną czcionek fc-cache -rv- po jej wydrukowaniu upewnij się, że nowy plik czcionek został pobrany (np. .sfdNie robi, ale .ttfrobi).
  10. Uruchom Netbeans i użyj czcionki utworzonej jako czcionka edytora

Nie, nie idealnie i tak, trochę kłopotów, ale wciąż świat różnic. Mam nadzieję, że to pomaga.


3
Użyłem Monospacedomyślnego w NetBeans. Próbowałem to naprawić Ubuntu Monospacei teraz wygląda to lepiej, ale jeszcze gorzej Monospace. W każdym razie dzięki. Gdybym mógł znaleźć Monospacelokalizację w systemie plików, spróbowałbym to naprawić.
umpirsky,

Dziękuję bardzo ... Jedyne działające rozwiązanie, jakie znalazłem. Oszalałem z tego !!
Stefanos Kalantzis

Nie jestem pewien, który plik czcionek jest moją czcionką ... Dostałem 9 różnych plików czcionek dla samej czcionki Ubuntu, więc musiałem skonsultować się z font.ubuntu.com, aby dowiedzieć się, który z nich majstrować. Mam nadzieję, że to zadziała.
mat

17

Dodaj

--laf Nimbus -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd

lub

-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd --laf Metal

do pliku: netbeans.config. Możesz go znaleźć w folderze $ NETBEANS_HOME / etc /. Zmniejsz czcionkę aplikacji w preferencjach systemowych.

Źródło


9
Plik konfiguracyjny zwykle znajduje się w /home/<user_name>/<neabeans_folder>/etc/netbeans.conf.
Bibhas

2
Nie działało dla mnie :(
szx

Plik konfiguracyjny znajduje się w /etc/netbeans.conf Pierwsza linia nie działała dla mnie, ale druga załatwiła sprawę
Christian Vielma,

Po dodaniu tego wiersza nie widzę żadnej różnicy. A jest wciąż tylko jednym pikselem, na przykład, gdzie ładnie pokazuje się w dowolnej innej aplikacji.
NoBugs

Ten zrobił dla mnie lewę.
Nico M,

7

Wiem, że to stare pytanie, ale w moim dążeniu do tego samego problemu próbowałem tutaj wszystkich sztuczek bez powodzenia. Myślałem, że będę musiał żyć z okropnym tekstem w sieci.

Potem znalazłem to: http://youtrack.jetbrains.com/issue/IDEA-57233#comment=27-472038

Zasadniczo: Ubuntu 13.10, Netbeans (7.3), łaty czcionek Infinality do freetype, OpenJDK7 i łatki do naprawy niefortunnej obsługi czcionek Swings. I „po prostu działało” !!!

Skopiowano tutaj na wypadek śmierci linku:

  1. zainstaluj freetype

    $ sudo apt-get install libfreetype6
    
  2. zainstaluj łatę infinality

    $ sudo add-apt-repository ppa:no1wantdthisname/ppa
    $ sudo apt-get update
    $ sudo apt-get install fontconfig-infinality
    

    Następnie musiałem wykonać następujące czynności:

    $ sudo rm /etc/fonts/conf.avail/52-infinality.conf
    $ sudo ln -s /etc/fonts/infinality/infinality.conf /etc/fonts/conf.avail/52-infinality.conf
    

    Aby użyć renderowania czcionek w systemie Windows 7, wykonaj następujące czynności:

    $ sudo /etc/fonts/infinality/infctl.sh setstyle win7
    

    Ustaw USE_STYLE na „WINDOWS7” w /etc/profile.d/infinality-settings.sh

  3. zainstalowana czcionka naprawiona OpenJDK

    $ sudo add-apt-repository ppa:no1wantdthisname/openjdk-fontfix
    $ sudo apt-get update
    $ sudo apt-get install openjdk-7-jdk
    

    w .../etc/netbeans.conf,

    netbeans_default_optionsobejmuje: -J-Dawt.useSystemAAFontSettings=lcdi -J-Dsun.java2d.xrender=true"

    i nastaw netbeans_jdkhome="/usr/lib/jvm/java-1.7.0-openjdk-amd64"

To zmieniło moje czcionki Netbeans z lat 90-tych akceptowalnych na współczesne niesamowite. I mogę teraz używać Inconsolata jako mojej czcionki edytora Netbeans i wygląda to WIELKI.

Zrzut ekranu zgodnie z żądaniem: (rzeczywisty tekst jest wyraźniejszy niż to przechwycenie. Coś w uchwycie nieco go zamazało). wprowadź opis zdjęcia tutaj


jako przypis: „-J-Dsun.java2d.xrender = true” wprowadził pewne usterki renderowania. nadając mu wartość false, naprawiono usterki renderowania podczas szybkiego przewijania, ale nie wpłynęło to na piękne czcionki.
Chris Holt

Uwaga: jeśli pakiet openjdk został zaktualizowany przed wersją poprawioną czcionką i zastosujesz go, możesz cofnąć w następujący sposób: dla openjdk-7-jdk, openjdk-7-jre i openjdk-7-jre-headless , odinstaluj je, a następnie zainstaluj poprzednie wersje z repozytorium poprawek czcionek. apt-cache policy <package>pokaże wersje. tj. apt-get remove openjdk-7-jdk openjdk-7-jre openjdk-7-jre-headless apt-get install openjdk-7-jdk=7u51-2.4.4-0ubuntu0.13.10.1ppa2 openjdk-7-jre=7u51-2.4.4-0ubuntu0.13.10.1ppa2 openjdk-7-jre-headless=7u51-2.4.4-0ubuntu0.13.10.1ppa2
Chris Holt

możesz załączyć obraz, jak teraz wygląda?
Roman

5

Wygładzanie czcionek nie działa poprawnie w aplikacjach Ubuntu Java Swing.

Dodaj:

-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd

do netbeans.config na końcu netbeans_default_optionsłańcucha.

Plik konfiguracyjny można znaleźć w folderze $ NETBEANS_HOME / etc / (np. /home/<user_name>/<neatbeans_folder>/etc/netbeans.conf)

Przykład:

netbeans_default_options="-J-client -J-Xss2m -J-Xms32m -J-XX:PermSize=32m -J-Dnetbeans.logger.console=true -J-ea -J-Dapple.laf.useScreenMenuBar=true -J-Dapple.awt.graphics.UseQuartz=true -J-Dsun.java2d.noddraw=true -J-Dsun.java2d.dpiaware=true -J-Dsun.zip.disableMemoryMapping=true -J-Dnetbeans.extbrowser.manual_chrome_plugin_install=yes -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd"

Dla mnie plik konfiguracyjny znajdował się w /etc/netbeans.conf(i sym-link z innych miejsc).
Cedric Reichenbach,


2

Ta czcionka nie jest taka zła ...

Jest to jednak aplikacja Java i szczególny sposób obsługi czcionek.

Jeśli chcesz tylko zmienić rozmiar czcionki, możesz uruchomić Netbeans z parametrem „--fontsize” :

netbeans --fontsize 12

Jeśli chcesz zmienić typ czcionki, jest to nieco trudniejsza zmiana parametrów środowiska, a ten artykuł wyjaśnia bardzo dobrze:

https://wiki.archlinux.org/index.php/Java_Runtime_Environment_Fonts

Dotyczy to ArchLinux, ale myślę, że będzie działać również w Ubuntu, ponieważ Java jest uniwersalnym oprogramowaniem.


2

Miałem ten sam problem z Ubuntu 12.04 i Netbeans 7.2.

Próbowałem dodać -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcddo, netbeans.confale to nie rozwiązało problemu.

Potem zobaczyłem komentarz do problemu dotyczący wysokości linii w błędzie Netbeans 215785 . Ustawienie wysokości linii edytora na 1,0 wraz z ustawieniami AA netbeans.confrozwiązało mój problem.


1

Mogłem to zrobić w ten sposób (używam Ubuntu 12.10, działałem również na Ubuntu 13.04):


Krok 1 (Prawdopodobnie działa to we wszystkich wersjach Ubuntu):

Najpierw wyczyściłem menu za pomocą tej wtyczki Tools -> Plugins -> Settings -> Add:

http://java-swing-ayatana.googlecode.com/files/netbeans-catalog.xml

Po dodaniu tej lokalizacji musisz zainstalować wtyczkę, wyszukując Java Ayatana(opis w języku hiszpańskim). Spowoduje to, że menu górne i menu kontekstowe będą takie same jak system operacyjny.


Krok 2 (Nie wiem, czy to zadziała we wszystkich wersjach Ubuntu):

Następnie prawdopodobnie chcesz, aby czcionki projektów wyglądały ładniej, co zrobiłem, aby to naprawić, uruchomiłem to w terminalu: sudo apt-get install gnome-tweak-toolUruchomiłem go i wybrałem inny default fontTeraz Netbeans wygląda ładnie!

Oto zrzut ekranu:

wprowadź opis zdjęcia tutaj


Zmiana czcionki „Interfejs” w narzędziach do poprawiania pomogła mi. Miałem tylko problemy z tymi tekstami (przeciętymi na pół!)
Makiavelo,

1

Właśnie widziałem te posty i próbowałem naprawić problem z czcionkami, miałem również problem, mogłem wybrać tylko 4 czcionki, wszystkie były kiepskie, i zastanawiałem się, co się stało, że netbeans dają tylko 4 czcionki do wyboru, a także lame pole wyboru czcionek, jestem wielki fan netbeans i wiedziałem, że mogę tu znaleźć rozwiązanie.

w każdy sposób podążałem za wszystkimi możliwymi wskazówkami. Używam Ubuntu 13.10 i Netbeans 7.3 (tak, uwielbiam niestabilne rzeczy)

  1. utwórz folder .font w moim folderze użytkownika.
  2. skopiowałem wszystkie czcionki, które miałem do tego folderu.
  3. dodał następujący wiersz do pliku netbeans.conf

znajdź go, uruchamiając:

locate netbeans.conf

edytuj go i dodaj następujące cytaty, jak sugerowano powyżej

-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd --laf Metal
  1. uruchom aktualizację netbeans, która, jak sądzę, zrobiła magię, teraz mam piękny wybór czcionek i mam więcej czcionek do wyboru, a następnie kod do pisania (nieśmieszny żart).

Mam nadzieję, że ci to pomoże.


1

Idąc krok dalej do ręcznych sposobów, przygotowałem dedykowaną czcionkę o nazwie „Ubuntu Mono Nohinting”, aby obejść problem z renderowaniem w aplikacjach Java Swing, takich jak NetBeans IDE, IntelliJ IDEA i PyCharm. Informacje o czcionkach zostały usunięte z oryginalnej rodziny czcionek Ubuntu Mono.

Jak zainstalować

  • pobierz plik zip stąd
  • wyodrębnij to
  • otwórz * .ttf z Font Viewer, aby zainstalować.
  • lub możesz ręcznie skopiować * .ttf do ~/.local/share/fonts/.

Jak używać

  • Wybierz „Ubuntu Mono Nohinting” w konfiguracji redaktorów.

Zrzuty ekranu

Ubuntu Mono Font z motywem PyCharm Monokai

Ubuntu Mono Font z motywem PyCharm Monokai

Ubuntu Mono Nohinting Font z motywem PyCharm Monokai

Ubuntu Mono Nohinting Font z motywem PyCharm Monokai


1

Dodaj następujący kod do końca netbeans_default_optionsswojej netbeans.confpliku.

-J-Dawt.useSystemAAFontSettings=on

Spowoduje to wykorzystanie czcionek systemowych.


0
#!/bin/sh

gsettings set org.gnome.desktop.interface font-name 'Ubuntu 10'
sh /home/xxx/netbeans-7.2/bin/netbeans &
sleep 5
gsettings set org.gnome.desktop.interface font-name 'Ubuntu 11'

7
Witamy w Ask Ubuntu! Ta odpowiedź byłaby bardzo korzystna, gdybyś ją edytować, aby dodać wyjaśnienie (lub przynajmniej powiedzieć użytkownikowi, co zrobić z tymi wierszami).
Eliah Kagan

0

Osobiście uważam, że ogólny domyślny wygląd Netbeansa w systemie Linux jest nieco rozczarowujący, szczególnie biorąc pod uwagę, jak ładnie wygląda na innych platformach. Na szczęście zmianę wyglądu i działania (LAF) można łatwo wykonać z poziomu IDE. W zależności od wyboru często poprawia to wygląd czcionek.

Aby zmienić LAF, wykonaj następujące czynności: Kliknij Narzędzia >> Opcje W oknie dialogowym wybierz Wygląd, a następnie zakładkę Wygląd i dotyk Po prostu wybierz jeden z LAF. Preferuję Nimbus, ale możesz preferować coś innego.

Dostępne są również dwie wtyczki „Dark LAF”: Dark Metal i Dark Nimbus.


0

Sam zrobiłem trochę inną rzecz: w moim przypadku, mówiąc o NetBeans w wersji 8.0.1 , problemem był JDK zainstalowany w systemie (Oracle JDK 8.0). Po przejściu na OpenJDK 8 ładniejsze czcionki pojawiły się w elementach interfejsu użytkownika.

Nie wiem, czy to dobra odpowiedź, ponieważ może nie działać wszędzie, ale na pewno - próbując zmienić JDK (czy to OpenJDK, czy Oracle JDK), możesz zauważyć różnicę.


0

Próbowałem dosłownie każdego rozwiązania, które udało mi się znaleźć i żadne z nich nie działało, oprócz używania innego domyślnego JDK dla NetBeans.

JDK Oracle nie renderuje dobrze czcionek. OpenJDK również nie wydaje się działać dla NetBeans, ale działa cuda dla IntelliJ i jego rodzeństwa.

Ten, który pracował dla NetBeans, nazywa się TuxJDK, który jest zasadniczo ulepszony w OpenJDK dla programistów Java pracujących w systemie Linux. Jednym z ulepszeń jest doskonałe renderowanie czcionek .

Oto jak go użyć:

  1. Pobierz plik binarny TuxJDK stąd . („tuxjdk-static-8.92.03.tar.xz” w momencie pisania)
  2. Wyodrębnij plik tar.xz w dowolnym miejscu.
  3. Skopiuj lokalizację katalogu TuxJDK.
  4. Otwórz plik netbeans.conf znajdujący się w NetBeansInstallationDirectory / etc /.
  5. Znajdź wiersz rozpoczynający się od „netbeans_jdkhome” i zastąp ścieżkę ścieżką skopiowaną w kroku 3.
  6. Odpalaj i NetBeans i traktuj swoje oczy pięknymi czcionkami!

Przed: NetBeans przed użyciem TuxJDK

Po: NetBeans po użyciu TuxJDK



-1

Miałem ten sam problem z mennicą 12. Rozwiązałem go, wprowadzając „Ustawienia zaawansowane” -> „Czcionki” i zmniejszając domyślną czcionkę z 11 do 10. Spowolniłem wszystkie czcionki z listy.

Musi być jakiś problem z czcionką Cantarell 11.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.