PyCharm编程环境的中英文字体分别设置的好处多----一石三鸟地解决中文字体不一致、英文字体不涵盖中文字符、编程字体实用性兼顾美观性的三个问题

在编程环境(例如Python的PyCharm)中,我们希望编程环境的字体具有如下特性:

(1)字体覆盖中文和英文字符。

(2)等宽字体,并且是TrueType字体,方便辨识代码中缩进和对齐的字符个数。

(3)相近字符i,1,l以及0,O可辨别性好。

(4)标点符号特别是双引号、单引号、逗号,分号、句号的中文和英文字符易于辨识。

(5)字符比较美观。

 

同时满足以上五个条件的字体极少。网上搜索后,有人提到Yahei Consolas Hybrid,此字体需要自己从网上下载,它是微软雅黑与Consolas两种字体的合体,中文字符为雅黑、英文字符为Consolas,但该字体的中英文双引号的辨识度稍有欠缺。我个人感觉不太喜欢这种字体。

经过本人的试探,发现Monospaced字体能基本满足以上五项要求,此字体是PyCharm自带的,此字体文件所在文件夹为:C:\Program Files\JetBrains\PyCharm 2019.3.1\jbr\lib\fonts。此文件夹下有包括:DroidSansMono、FiraCode、Inconsolata、JetBrainsMono、Roboto、SourceCodePro等字体文件。因为这些字体文件不在Windows安装目录下的Fonts文件夹中,所以在Windows的Office Word、NotePad++、UltraEdit或Code::Blocks等应用的字体列表中找不到这些字体。

此外,还有Yahei Monaco Hybrid也能适应中文字符,感觉不如前者漂亮。我还尝试了Yahei Mono,感觉与Yahei Consolas Hybrid没有区别。

 

因为PyCharm能够分别设置主字体和替代显示字体,这意味着当主字体无法显示时,将用替代字体显示。此设置不仅能解决中文显示字体不一致的问题,也可以解决中文和英文字体分别设置为自己喜欢的字体,自然地,也解决了某种漂亮的英文字体没有涵盖中文字符的问题。

方法是:设置英文字体为主字体,设置中文字体为替代字体。主字体和替代字体的设置不能反过来,因为,中文字体涵盖了英文字符,但是英文字体往往没有涵盖中文字符。

具体做法是:PyCharm的File菜单---Settings选项--Editor----Font,打开如下界面所示,其中的红色框“Font”处设置的就是主字体,“Fallback font”处设置的就是替代字体。

“Fallback font”的默认设置为<None>,这就会导致当主字体只涵盖英文字符而不涵盖中文字符时,中文字符的显示字体不统一的情况发生。如下图所示:

在勾选“Show only monospaced fonts”,则意味着主字体和替代字体列表中只显示等宽字体,如果自己所要设置的替代字体不是等宽字体,则应该将此勾选去掉。我个人喜欢用中文等宽字体为“楷体”,在此列表中名为“KaTi”。

 

比较适合于编程的英文等宽字体如下:

(1)Consolas:Windows的MS Office自带的字体。

(2)Fira Code、Fira Code Light、Fira Code Medium、Fira Code Retina。

(3)Incosolata

(4)SourceCode Pro

(5)JetBrain Mono

(6)Droid Sam Mono

(7)DejaVuSansMono

(8)Iosevka

各人喜好不同,各自取用!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/262365.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WordPress博客系统的安全

随着计算机网络的流行&#xff0c;越来越多的人开始创建自己的博客&#xff0c;论起博客系统&#xff0c;全球用的最多的博客系统就是wordpress&#xff08;以下简称WP&#xff09;。但是如果用过WP的人都应该知道&#xff0c;WP的站点想要做的好看&#xff0c;插件是必不可少的…

C/C++ 程序设计员应聘常见面试试题深入剖析

1.引言 本文的写作目的并不在于提供C/C程序员求职面试指导&#xff0c;而旨在从技术上分析面试题的内涵。文中的大多数面试题来自各大论坛&#xff0c;部分试题解答也参考了网友的意见。许多面试题看似简单&#xff0c;却需要深厚的基本功才能给出完美的解答。企业要求面试者写…

mysql为什么行数据库_关系数据表中的行称为什么?

在一个二维表中&#xff0c;水平方向的行称为元组&#xff0c;每一行是一个元组&#xff1b;元组对应表中的一个具体记录。数据元组也称为记录。一个数据表中的每一个记录均有一个惟一的编号(记录号)。一个记录也就是数据表中的一行。元组(tuple)是关系数据库中的基本概念&…

长截图或长图片如何按页面切分后打印或插入到Word文档中

现在用手机可以非常方便地将手机的任意页面&#xff08;禁止截图的App页面除外&#xff09;用截长屏的方式一次性将常常的页面内容截图下来&#xff0c;这些长页面通常是通常是聊天记录或各种文章等。 截图下来后&#xff0c;在手机或电脑中查看倒是不会有什么问题。但是&…

maven安装以及eclipse配置maven

http://jingyan.baidu.com/article/295430f136e8e00c7e0050b9.html 必须先下载并安装JDK&#xff0c;配置JDK的环境变量JAVA_HOME&#xff0c;否则maven将无法使用 eclipse安装maven插件后必须重新定位maven到本地maven目录 如下定位&#xff1a; 为了使得Eclipse中安装的Maven…

产品2

闹钟\拉链\拼图转载于:https://www.cnblogs.com/sode/archive/2012/10/22/2733640.html

Oracle分页存储过程

create or replace package JT_P_page istype type_cur is ref cursor; --定义游标变量用于返回记录集procedure Pagination (Pindex in number, --要显示的页数索引&#xff0c;从0开始 Psql in varchar2, --产生分页…

python中加入绝对路径_理解Python中的绝对路径和相对路径

本文介绍了Python中的绝对路劲和相对路径&#xff0c;分享给大家&#xff0c;也给自己留个笔记1、绝对路径 os.path.abspath("文件名")&#xff1a;显示的是一个文件的绝对路劲eg&#xff1a; >>> import os>>> os.chdir("E:\\PycharmProject…

ASP.NET 2.0与SQL Express 2005在迁移到Windows 2003时发生数据库为只读的错误

ASP.NET 2.0和SQL Server Express 2005结合进行网站开发时&#xff0c;在VS 2005中运行时没有任何问题。当网站发布在Win Server 2003时&#xff0c;就会出现数据库无法访问的错误&#xff0c;其错误提示通常为&#xff1a;Failed to update database "D:\WEBSITES\EduTec…

python串口通讯数据过长_Python 串口通讯

摘要&#xff1a;pyserial module: https://github.com/tbusf/pyserialPython使用pyserial进行串口通信&#xff1a;http://blog.csdn.net/log1100/article/details/54380325串口通讯的python模块——pySerial :http://blog.csdn.net/dainiao01/article/details/5885122Paramet…

JS 问题集锦

【1】js页面跳转 和 js打开新窗口方法 第一种&#xff1a;<script language"javascript" type"text/javascript">window.location.href"http://www.xlfun.com/login.php?backurl"window.location.href; </script>第二种&#xff1a…

flash在影片剪辑里面跳转场景

奶奶个熊。gotoandplay有那个场景参数。在影片剪辑里面死活不行。但直接在场景里可以。后来狂百度。最后找到个可以用的解决方案。把我要跳转的场景的帧取个标签名。然后用如下的代码。在with里面继续使用gotoAndPlay的场景参数模式依旧无效。 1: on(Release){2: 3: with(_roo…

重温Observer模式--热水器·改(转载)

引言 在 C#中的委托和事件 一文的后半部分&#xff0c;我向大家讲述了Observer(观察者)模式&#xff0c;并使用委托和事件实现了这个模式。实际上&#xff0c;不使用委托和事件&#xff0c;一样可以实现Observer模式。在本文中&#xff0c;我将使用GOF的经典方式&#xff0c;再…

python删除重复值所在的行数_python – 在last中删除具有重复值的行

我有一个制表符分隔文件,看起来像这样chr1 12226559 12227059 TNFRSF1Bchr1 17051560 17052060chr1 17053279 17053779chr1 17338423 17338923 ATP13A2ATP13A2ATP13A2chr1 19577574 19578074 EMC1MRTO4chr1 19578046 19578546 EMC1MRTO4chr1 19638239 19638739 AKR7A2PQLC2PQLC…

hasLayout属性

在IE中&#xff0c;当一个元素的hasLayout属性被触发后&#xff08;不可逆转&#xff09;&#xff0c;就会拥有一个布局&#xff0c;可以进行更多的样式更改操作。 包含该属性的元素有 body html/table tr th td/img/hr/input button file select fieldset textarea/frameset i…

龙图 VP 李翀:数据化运营及云计算下的运维

文 | 龙图 VP 李翀原文地址&#xff1a;当游戏遇上大数据和云计算——谈数据化运营及云计算下的运维龙图做了8年的游戏&#xff0c;真正快速发展起来是在移动互联网这个时代。随着刀塔快速的扩张&#xff0c;我们在各个领域都遇到了非常多的之前没有想到过的状态。发现云计算其…

python多个main方法_Python,main方法未运行(同一文件中有多个类)

上下文&#xff1a;我开发了一个在远程linux服务器上运行的python脚本。使用python3.6.1运行。这个脚本可以工作&#xff0c;但是非常混乱&#xff0c;并且按照程序编写&#xff0c;与OO相反。所以&#xff0c;我把这个脚本重写成两个不同的类。一个主类和一个对象的blueprint类…

鼠标移动时,光标相对于对象的位置

鼠标在一个物体上移动时&#xff0c;能够计算出光标相对于任何其它对象的相对位置。 Code<Grid x:Name"LayoutRoot" Background"White"> <Grid HorizontalAlignment"Left" VerticalAlignment"Top" Name"grid1&q…

怎么判断一个字符串的最长回文子串是否在头尾_【Leetcode每日打卡】最长回文串...

干货预警&#xff1a;所有文章都会首发于我的公众号【甜姨的奇妙冒险】&#xff0c;欢迎watch。一、来历&#xff1a;力扣从3月开始开启了每日一题打卡活动&#xff0c;于是跟风加入了打卡大军&#xff0c;这两天写评论、发题解&#xff0c;没想到反响还不错&#xff0c;收到了…