Уродливые шрифты в Netbeans - как я могу заставить его использовать системный шрифт?


69

У меня проблемы с тем, чтобы шрифт Netbeans выглядел красиво, это было проблемой с тех пор, как я попробовал Ubuntu ~ 8. По какой-то причине шрифты выглядят так, будто не получают субпиксельное сглаживание только в Netbeans, а для остальных приложений они выглядят идеально.

Посмотрите, как уродлив скриншот:

введите описание изображения здесь

Это не просто область кода, но каждый шрифт в приложении выглядит так. Я огляделся и, очевидно, добавив следующую строку в .bashrcфайл, должен решить проблему, но в моем случае это не так:

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=lcd'

Возможно, это повлияет только на приложения на Java, но я не смог протестировать другое приложение на Java, чтобы проверить шрифты.

Кто-нибудь знает, что я могу сделать, чтобы это исправить? Как я могу заставить Netbeans использовать системный шрифт?


Я также искал и искал решение для этого, но, похоже, его просто нет. В частности, это влияет на приложения, основанные на Swing; вы обнаружите, что Eclipse, например, выглядит хорошо. Я на самом деле не слишком беспокоюсь о шрифте кода (он изменчив, и я нахожу, что он выглядит нормально с Droid Sans Mono в 11pt), но хромированные шрифты действительно раздражают меня.
Джейми Шембри

Да, похоже, что это влияет только на Java-приложения, я думаю об изменении своей IDE только из-за этого ..
Хавьер Вильянуэва,

На самом деле, я специально упомянул Swing, потому что проблема со шрифтами не видна в приложениях SWT, таких как Eclipse. В любом случае, это влияет только на (некоторые) Java-приложения. Также я могу подтвердить, что проблема все еще существует в Netbeans 7.0 RC1.
Джейми Шембри

Вы правы, я перешел на Aptana, и они там отлично выглядят, надеюсь, я смогу найти решение этой проблемы. Мне действительно нравятся Netbeans, но эти шрифты сводили меня с ума.
Хавьер Вильянуэва,

1
Сейчас я использую 'Droid Sans Mono', размер 16 с '-J-Dawt.useSystemAAFontSettings = on --laf javax.swing.plaf.nimbus.NimbusLookAndFeel -J-Dsun.java2d.noddraw = true -J-Dsun. java2d.dpiaware = true '
Karussell

Ответы:


38

Как отмечалось в комментариях, это проблема с приложениями Java Swing в Linux. Swing использует настройки сглаживания шрифтов в Gnome (деактивировано, в градациях серого или в подпикселях), хотя игнорирует настройки хинтинга. Он всегда использует полный хинтинг, и если вы работаете в Ubuntu с небольшим или вообще без хинтинга шрифта (как это делают большинство людей, так как малый хинтинг является настройкой по умолчанию), это сделает шрифт значительно отличающимся от других приложений. SWT-приложения, такие как Eclipse, хороши, но если вам нравятся Netbeans, это вам не поможет.

Предостережение: для следующего обходного пути я говорю только о шрифте редактора, потому что в IDE это то, что важно для меня. Вы также можете применить его к меню шрифтов и т. Д., Но это может быть немного выше.

Единственное полезное решение, которое я нашел здесь : используйте Fontforge, чтобы отредактировать выбранный вами шрифт редактора и удалить всю информацию о подсказках из самого шрифта, затем сохранить его как новый шрифт и использовать его в Netbeans.

  1. sudo apt-get install fontforge
  2. Запустить Fontforge
  3. Откройте ваш шрифт по выбору
  4. Ctrl+ Aили edit -> Select -> Select allвыбрать все символы
  5. Подсказки ⇒ Четкие инструкции
  6. Ctrl+ Shift+ Fили element -> font infoоткрыть информацию о шрифте
  7. Переименовать шрифт (например, в оригинальное имя + '_nohints')
  8. Сохраните отредактированный шрифт в .fontsкаталоге у вас дома file -> generate fonts, убедившись, что вы используете формат, который читает Ubuntu (см. Следующий шаг)
  9. Очистить кэш шрифтов fc-cache -rv- после его вывода убедитесь, что ваш новый файл шрифтов был поднят (например, .sfdне делает, но .ttfделает).
  10. Запустите Netbeans и используйте созданный вами шрифт в качестве шрифта редактора.

Нет, не идеально и да, немного хлопот, но все же мир различий. Надеюсь, это поможет.


3
Я использовал Monospace, по умолчанию один в NetBeans. Я пытался исправить Ubuntu Monospace, и теперь это выглядит лучше, но тогда еще хуже Monospace. Спасибо, в любом случае. Если бы я мог найти Monospaceместоположение в файловой системе, я бы тоже попытался это исправить.
Умпирский

Большое спасибо ... Единственное рабочее решение, которое я нашел. Я сходил с ума от этого !!
Стефанос Каланцис

Не уверен, какой файл шрифта является моим шрифтом ... Получил 9 различных файлов шрифтов для одного шрифта Ubuntu, поэтому нужно было обратиться к font.ubuntu.com, чтобы выяснить, какой из них повозиться. Надеюсь, это сработает.
Мэтт

17

Добавлять

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

или же

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

в файл: netbeans.config. Вы можете найти его в папке $ NETBEANS_HOME / etc /. Уменьшите шрифт вашего приложения от системных настроек.

Источник


9
Файл конфигурации обычно находится в /home/<user_name>/<neabeans_folder>/etc/netbeans.conf.
Бибхас

2
У меня не сработало :(
szx

Конфигурационный файл находится в /etc/netbeans.conf Первая строка у меня не сработала, но вторая сделала свое дело
Кристиан Вьельма,

Я не вижу никакой разницы после добавления этой строки. А. например, это всего лишь один пиксель, который хорошо отображается в любом другом приложении.
NoBugs

Этот сделал трюк для меня.
Нико М

7

Я знаю, что это старый вопрос, но в своем стремлении к той же проблеме я попробовал все приемы здесь без удачи. Я думал, что мне просто придется жить с ужасным текстом в netbeans.

Тогда я нашел это: http://youtrack.jetbrains.com/issue/IDEA-57233#comment=27-472038

В основном: Ubuntu 13.10, Netbeans (7.3), патчи шрифтов Infinality для freetype, OpenJDK7 и патчи к нему для исправления неутешительной обработки шрифтов Swings. И это "просто сработало" !!!

Скопировано здесь на случай смерти

  1. установить freetype

    $ sudo apt-get install libfreetype6
    
  2. установить патч бесконечности

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

    Я должен был сделать следующее потом:

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

    Чтобы использовать Windows 7, как рендеринг шрифтов, сделайте следующее:

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

    Установите для USE_STYLE значение «WINDOWS7» в /etc/profile.d/infinality-settings.sh

  3. установить исправленный шрифт OpenJDK

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

    В .../etc/netbeans.conf,

    netbeans_default_optionsвключает в себя: -J-Dawt.useSystemAAFontSettings=lcdи -J-Dsun.java2d.xrender=true"

    и установить netbeans_jdkhome="/usr/lib/jvm/java-1.7.0-openjdk-amd64"

Это изменило мои шрифты Netbeans с 1990-х годов до сегодняшних дней. И теперь я могу использовать Inconsolata в качестве шрифта редактора Netbeans, и он выглядит БОЛЬШИМ.

Снимок экрана по запросу: (фактический текст более четкий, чем этот снимок. Что-то в снимке слегка размыло). введите описание изображения здесь


в качестве сноски: "-J-Dsun.java2d.xrender = true" представил некоторые глюки рендеринга. установив его в false, исправил сбои рендеринга при быстрой прокрутке, но не влиял на красивые шрифты.
Крис Холт

Краткое замечание: если пакет openjdk обновляется раньше установленного шрифта и вы применяете его, вы можете вернуться обратно так: для openjdk-7-jdk, openjdk-7-jre и openjdk-7-jre-headless , удалите их, а затем установите предыдущие версии из репозитория исправлений шрифтов. apt-cache policy <package>покажет вам версии. то есть 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
Крис Холт

Вы можете прикрепить изображение, как оно выглядит сейчас?
Роман

5

Сглаживание шрифтов не работает должным образом в приложениях Ubuntu Java Swing.

Добавлять:

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

в netbeans.config в конце netbeans_default_optionsстроки.

Вы можете найти файл конфигурации в папке $ NETBEANS_HOME / etc / (например /home/<user_name>/<neatbeans_folder>/etc/netbeans.conf)

Пример:

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"

Для меня файл конфигурации был расположен в /etc/netbeans.conf(и sym-связаны из других мест).
Седрик Райхенбах

Видимый источник: rdeeson.com/weblog/159/fix-ugly-fonts-in-netbeans-under-linux - работал для меня
loxaxs

2

Это не так плохо, что шрифт ..

Тем не менее, это Java-приложение и как особый способ обработки шрифтов.

Если вы хотите изменить только размер шрифта, вы можете запустить Netbeans с параметром --fontsize :

netbeans --fontsize 12

Если вы хотите изменить тип шрифта, это немного более сложно изменить параметры среды, и эта статья очень хорошо объясняет:

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

Это для ArchLinux, но я думаю, что это будет работать и в Ubuntu, поскольку Java является универсальным программным обеспечением.


2

У меня была такая же проблема на Ubuntu 12.04 и Netbeans 7.2.

Я попытался добавить -J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcdк, netbeans.confно это не решило проблему.

Затем я увидел комментарий к проблеме высоты строки в ошибке NetBeans 215785 . Установка высоты строки редактора на 1.0 вместе с настройками AA netbeans.confпозволила решить мою проблему.


1

Я смог сделать это следующим образом (я использую Ubuntu 12.10, также работал на Ubuntu 13.04):


Шаг 1 (это, вероятно, работает во всех версиях Ubuntu):

Сначала я очистил меню с помощью этого плагина Tools -> Plugins -> Settings -> Add:

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

Как только это место будет добавлено, вам нужно установить плагин, выполнив поиск Java Ayatana(описание будет на испанском языке). Это сделает верхнее и контекстное меню такими же, как в ОС.


Шаг 2 (я не знаю, будет ли это работать во всех версиях Ubuntu):

Затем вы, вероятно, захотите, чтобы шрифты проектов тоже выглядели лучше, то, что я сделал, чтобы исправить это, запустил это в терминале: sudo apt-get install gnome-tweak-toolя запустил его и выбрал другой default fontТеперь Netbeans выглядит красиво!

Вот скриншот:

введите описание изображения здесь


Изменение шрифта «Интерфейс» в инструментах настройки сделало меня. У меня были только проблемы с этими текстами (разрезать пополам!)
Макиавело

1

Просто посмотрел эти посты и попытался исправить мою проблему со шрифтами, у меня тоже была проблема, я мог выбрать только 4 шрифта, все они были хромыми, и подумал, что случилось, что NetBeans дает только 4 шрифта на выбор, а также окно выбора шрифта хромой, я большой поклонник NetBeans, и я знал, что могу найти решение здесь.

В любом случае я следовал всем возможным путеводителям. Я использую Ubuntu 13.10 и netbeans 7.3 (да, я люблю нестабильные вещи)

  1. создать папку .font в моей папке пользователя.
  2. скопировал все нужные мне шрифты в эту папку.
  3. добавил следующую строку в файл netbeans.conf

найти его, запустив:

locate netbeans.conf

отредактируйте его и добавьте в кавычки следующее

-J-Dswing.aatext=true -J-Dawt.useSystemAAFontSettings=lcd --laf Metal
  1. Запустите обновление NetBeans, которое, я думаю, сработало, теперь у меня есть прекрасный выбор шрифтов и у меня есть больше шрифтов для выбора, чем для написания кода (несмешная шутка)

Я надеюсь, что это поможет вам.


1

Пройдя еще один шаг к ручным способам, я подготовил специальный шрифт с именем «Ubuntu Mono Nohinting», чтобы обойти проблему рендеринга с приложениями Java Swing, такими как IDE NetBeans, IntelliJ IDEA и PyCharm. Информация о подсказках шрифта была удалена из исходного семейства шрифтов Ubuntu Mono.

Как установить

  • скачайте zip-файл отсюда
  • извлечь его
  • откройте * .ttf с помощью Font Viewer для установки.
  • или вы можете вручную скопировать * .ttf в ~/.local/share/fonts/.

Как пользоваться

  • Выберите «Ubuntu Mono Nohinting» в конфигурации редактора.

Скриншоты

Ubuntu Mono Шрифт с темой PyCharm Monokai

Ubuntu Mono Шрифт с темой PyCharm Monokai

Ubuntu Mono Nohinting Шрифт с темой PyCharm Monokai

Ubuntu Mono Nohinting Шрифт с темой PyCharm Monokai


1

Добавьте следующий код в конец netbeans_default_optionsвашего netbeans.confфайла.

-J-Dawt.useSystemAAFontSettings=on

Это позволит использовать системные шрифты.


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
Добро пожаловать в Спросите Ubuntu! Этот ответ значительно выиграл бы, если бы вы отредактировали его, чтобы добавить какое-то объяснение (или, по крайней мере, точно сказать пользователю, что делать с этими строками).
Элия ​​Каган

0

Лично я думаю, что общее появление Netbeans по умолчанию в Linux немного разочаровывает, особенно если учесть, как хорошо это выглядит на других платформах. К счастью, изменение внешнего вида (LAF) может быть легко сделано изнутри IDE. В зависимости от вашего выбора, это часто улучшает внешний вид шрифтов.

Чтобы изменить LAF, сделайте следующее: Нажмите Tools >> Options. В диалоговом окне выберите Appearance, затем вкладку Look and Feel. Просто выберите один из LAF. Я предпочитаю Nimbus, но вы можете предпочесть что-то еще.

Также доступны два плагина для Dark LAF: Dark Metal и Dark Nimbus.


0

Я сам сделал немного другое: в моем случае, говоря о версии NetBeans 8.0.1 , проблема заключалась в том, что в системе был установлен JDK (Oracle JDK 8.0). После перехода на OpenJDK 8 более приятных шрифтов появились в элементах пользовательского интерфейса.

Я не знаю, хороший ли это ответ, потому что он может работать не везде, но, конечно же, при попытке переключения JDK (будь то OpenJDK или Oracle JDK) вы можете увидеть разницу.


0

Я пробовал буквально все решения, которые мог найти, и ни одно из них не работало, за исключением использования другого JDK по умолчанию для NetBeans.

Oracle JDK плохо отображает шрифты. OpenJDK также, похоже, не работает для NetBeans, но творит чудеса для IntelliJ и его братьев и сестер.

Тот, который работал для NetBeans, называется TuxJDK, который по сути улучшен OpenJDK для разработчиков Java, работающих на Linux. Одним из улучшений является превосходный рендеринг шрифтов .

Вот как это использовать:

  1. Загрузите бинарный файл TuxJDK отсюда . ("tuxjdk-static-8.92.03.tar.xz" на момент написания)
  2. Распакуйте tar.xz куда хотите.
  3. Скопируйте расположение каталога TuxJDK.
  4. Откройте файл netbeans.conf, расположенный в каталоге NetBeansInstallationDirectory / etc /.
  5. Найдите строку, которая начинается с «netbeans_jdkhome», и замените путь на путь, скопированный на шаге 3.
  6. Запустите NetBeans и обработайте ваши глаза красивыми шрифтами!

До: NetBeans перед использованием TuxJDK

После: NetBeans после использования TuxJDK


0

Просто установите Zulu JDK с http://zulu.org :)


Что оно делает?
PerlDuck

В zulu jdk улучшен рендеринг шрифтов. Так что он может дать тот же результат, что и tuxjdk.
Арун

-1

У меня была та же проблема на Mint 12. Я решил ее, введя «Расширенные настройки» -> «Шрифты» и уменьшив шрифт по умолчанию с 11 до 10. Я опустил все шрифты в списке до согласованности.

Должна быть какая-то проблема со шрифтом Cantarell 11.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.