桌面应用图形学【免费下载链接】fontforgeFree (libre) font editor for Windows, Mac OS X and GNULinux项目地址https://gitcode.com/gh_mirrors/fo/fontforge点击查看免费下载导读本文以 FontForge 官方用户手册中的「View Menu视图菜单」章节为核心系统讲解该菜单在字体视图Font View、轮廓视图Outline/Char View、位图视图Bitmap View与度量视图Metrics View四大窗口中的全部命令。你将掌握如何快速在字形之间跳转、按多种格式定位任意字形、切换字形标签与栅格化尺寸、显示高级排版组合连字/字距/锚点以及控制轮廓显示细节极值点、拐点、网格拟合等并了解这些菜单项在 fontforgeexe/fontview.c 等源码中如何定义与实现。文中涉及的所有命令均可直接在当前仓库对应的窗口源码中找到对应处理函数便于交叉验证。说明FontForge 的 View 菜单在不同窗口中并不完全一致——它依据当前窗口类型动态组装菜单项。下文会为每个命令标注其适用的窗口范围。字形缩放与定位Fit适配窗口在轮廓视图与位图视图中Fit会把当前字形缩放为恰好完整放进视图的最大尺寸。缩放以字形边界框为基准保证字形整体可见。对应实现位于 charview.c 中的CV_MID_Fit菜单项实际缩放逻辑由CVMenuScale处理。Zoom Out / Zoom In缩小/放大这两个命令不存在于字体视图中。缩放中心规则为若存在选中区域middle selection以选中区域的中心为缩放中心否则以当前视图的中央为缩放中心。这种以选择为中心的设计让用户可以快速聚焦到正在编辑的局部区域是轮廓视图高频使用的导航手段。字形间导航Next Glyph / Prev Glyph下一个/前一个字形在度量、轮廓、位图视图中将当前编辑的字形切换为字体中的下一个/前一个字形。在字体视图中选中下一个/前一个字形并在必要时滚动窗口使其可见。对应字体视图源码条目FV_MID_Next与FV_MID_Prev见 fontview.c统一由FVMenuChangeChar处理字形切换。Next Defined Glyph / Prev Defined Glyph下一个/前一个已定义字形与上一条类似但只跳转到字体中已定义的字形——即跳过那些仅为占位、尚未绘制轮廓的空字形。当你在一套包含大量空码位的大字体如 CJK 字体中工作时这能大幅减少无效跳转对应源码FV_MID_NextDef/FV_MID_PrevDef。Former Glyph前一个编辑过的字形在字形窗口中切换回上一个被编辑过的字形保留一级历史。这对于在两个字形间反复对照编辑非常实用。Substitutions替换字形子菜单该命令弹出子菜单列出当前选中字形上定义的所有 GSUB type 1简单替换与 type 3替换类/alternate替换选择某个替换即可把字形切换为替换目标子菜单中还包含返回原始字形的入口。注意替换关系需要在轮廓视图的Element → Glyph Info对话框中设置详见 charinfo 对话框该功能常用于预览smcp小型大写、花体变体等替换效果。Goto跳转到指定字形在字体、轮廓、位图、度量视图中Goto会弹出一个对话框支持多种输入格式FVMenuGotoCharfontview.c输入格式说明示例字形名称当前字体中的字形名称A、Aacute十进制/十六进制数字当前编码下对应码位的字形65、0x41U/uni/u前缀十六进制直接按 Unicode 码点定位U0041、uni0041glyph前缀十进制按原始字形列表中的索引定位glyph 5区点ku ten表示法两个逗号分隔的数字用于 CJK 字体如 2-1-1 区点编码1,1标准名称即便当前字体未使用该名称只要可映射到 Unicode 即可agraveUnicode 区间下拉列表仅对 2/4 字节编码字体显示如 Greek、Katakana、Hangul Compatibility Jamo选择区间后挑选阿拉伯字母变体名称使用.isolated、.initial等后缀或十六进制前缀afii57442.isolated、0x642.initial单个 Unicode 字符直接输入字符本身A跳转行为因窗口而异字体视图滚动使该字形可见并选中它位图、轮廓、度量视图直接把当前字形切换为指定字形。Insert Glyph Before... / Insert Glyph After...在字形前后插入仅存在于度量视图弹出与 Goto 类似的对话框允许在当前位置之前或之后按名称/编码插入一个字形用于构建度量比较序列。字体视图专属的显示控制Layers图层子菜单仅字体视图出现用于选择字体视图中显示哪个图层如前景层、背景层、辅助层方便检查多层字形的整体形态。Show ATT显示高级排版表仅字体视图。弹出 Show ATT 对话框展示 FontForge 支持的高级排版表——GPOS/GSUBOpenType 定位与替换或morx/kernApple 扩展与字距是检查字体排版特性最直接的入口FVMenuShowAtt。Display Substitutions显示替换结果仅字体视图。选择某个简单替换后所有带该替换的字形会以替换后的字形显示未带替换的字形留空。双击某个字形会跳转到其替换版本若尚未创建则会创建后再跳转。官方文档也提醒几乎其他命令都不会感知这套映射因此该模式可能造成困惑适合临时预览。典型用途是预览小写字母的smcp小型大写替换效果Combinations组合子菜单这是一个嵌套子菜单包含如下项Kern Pairs字距对弹出对话框列出当前字体全部字距对在轮廓视图中调用则仅列出涉及该字形的字距对可直接修改见 kernpairs 对话框。Anchored Pairs锚点对可能再弹出子菜单列出该字体全部锚点类别以及一项 All。可选择查看某个锚点类别内所有字形组合或所有锚点类别的全部组合从轮廓视图调用则列出涉及该字形的锚点组合。双击组合会打开 Anchor Control 对话框。Anchor Control锚点控制仅轮廓视图。子菜单列出本字形全部锚点选中即打开 Anchor Control。Anchor Glyph at Point在锚点处附加字形仅轮廓视图。允许在选中锚点处附加并显示另一个字形。Ligatures连字弹出对话框显示所有连字名称及组成它们的分字形从轮廓视图调用则列出包含该字形的连字。双击条目会打开窗口显示该连字。Label Glyph By字形标签方式字体视图中每个字形上方有标签本命令控制其内容字形图片来自某个常规字体字形名称关联的 Unicode 码点字形的编码十六进制。注意当字形很小如 24 像素视图时可能放不下完整名称甚至编码标签会被截断。Show H. Metrics... / Show V. Metrics...水平/垂直度量线字体视图中控制是否在显示的字形上绘制水平/垂直度量线轮廓视图中同样的功能位于某个面板palette里。垂直度量在字体不含垂直度量时置灰。详见 字体视图文档中的度量说明。单元格窗口尺寸32x8 / 16x4 / 8x2字体视图支持显式设定字形网格规模对应FVMenuWSizefontview.c32x8 cell window水平 32 格、垂直 8 格16x4 cell window水平 16 格、垂直 4 格8x2 cell window水平 8 格、垂直 2 格。栅格化轮廓尺寸24/36/48/72/96 像素字体视图中可以指定把轮廓字形栅格化为多大后再显示对应FVMenuSizefontview.c24 像素为默认值此外可选 36、48、72、96 像素。规则是恰好显示字形的一个 em 方格若字形超出 ascent 或 descent 范围超出部分会被裁剪。Anti Alias抗锯齿仅字体视图与度量视图。切换显示为位图字形或抗锯齿字形抗锯齿模式用灰度而非纯黑/白绘制观感更好但生成与绘制更慢对应FV_MID_AntiAlias。Fit To Em / Fit to font bounding box适配 Em 或边界框仅字体视图用于选择缩放基准边界框模式按字体的整体边界框缩放能看到每个字形的完整轮廓Em 模式按 em 方格缩放便于比较不同字体的字母大小关系。源码中的菜单文本为Fit to font bounding boxfontview.c。文档同时给出一个重要的简化说明边界框模式下字体按垂直方向的边界框高度适配窗口特别宽的字形仍可能横向溢出且缩放不会随字形修改自动更新——若你改变了字体的最大边界可切换一次该模式强制重新缩放。Bitmap Magnification...位图放大仅字体视图。显示位图字体时有时需要比正常更大的倍率查看像素细节对应FVMenuMagnifyFV_MID_BitmapMag。位图像素尺寸列表动态项字体视图或度量视图中会列出所有已生成的位图字体可选中其中一个替代栅格化的轮廓字体显示被勾选的即为当前显示项。注意事项CID 键控字体不显示此列表若字体数据库包含灰度图greymap字体也会在此列出显示格式为像素尺寸每像素位数如164。该列表由源码在运行时动态填充vwlistcheck会遍历字体的 BDF 位图列表并追加菜单项见 fontview.c这正是菜单项数量随字体不同而变化的原因。度量视图专属控制Show/Hide Grid显示/隐藏网格仅度量视图。控制是否绘制字形边缘的网格线共 4 级Show Grid——始终显示完整网格线Partial Grid——只在窗口顶部和底部显示短线避免干扰检查字距Hide when moving——平时显示完整网格线但用鼠标调整间距时自动隐藏Hide Grid——始终隐藏网格。Outline轮廓显示仅度量视图。勾选状态表示当前正在显示轮廓字体选中它即从位图显示切换回轮廓字体显示。轮廓视图专属显示控制Number Points显示点编号仅轮廓视图。子菜单控制是否在前景层显示点旁的编号。该功能主要面向 TrueType其指令instructions在做网格拟合grid-fitting时用这些编号引用点。不同输出/输入格式的编号方案略有差异因此提供按输出类型区分的子菜单。Show Grid Fit 及其子项网格拟合显示仅轮廓视图且仅在编译时启用了 FreeType 库时可用对应源码 charview.c 附近的CVMenuFindInFontView同区菜单实际网格拟合对话框见 charview 文档中的 GridFit 一节。用于控制是否显示字体的网格拟合版本轮廓子菜单包括Show Grid Fit开关网格拟合轮廓显示Bigger Point Size增大点尺寸注意与增大像素尺寸略有不同Smaller Point Size减小点尺寸Anti-Alias切换抗锯齿显示Off关闭网格拟合。Show显示子菜单仅轮廓字形视图控制轮廓的显示细节Points显示或隐藏轮廓点。Show Control Point Info移动控制点时弹出一个显示该点各项信息的小窗口详见 charview 的 Control Point Info。Extrema极值点PostScript 与 TrueType 字体几乎在所有情况下的水平/垂直极值应位于样条端点。开启后极值端点会被染成暗紫色提醒你不要删除它们若极值出现在非端点位置则会画一个十字准线标记。此时可考虑使用Element → Add Extrema见 elementmenu修复不过某些情形下保留非端点极值也是可接受的。Points of Inflection拐点曲线斜率方向二阶导数改变符号的位置即为拐点。二次样条TrueType无法表示拐点因此当你打算把 PostScript 字体转换为 TrueType 时提前了解这些难点位置很有帮助——cubic→quadratic 近似例程通常会在这些拐点处补充中间点。Almost Horizontal/Vertical Lines近似水平/垂直线几乎但不完全水平或垂直的线会用不同颜色绘制提醒你应将其修正。Almost Horizontal/Vertical Curves近似水平/垂直曲线曲线在某个端点处几乎水平或垂直时在端点画小刻度标记以提示。(Define Almost)定义上述两个命令中几乎的判定阈值。Side Bearings侧边距绘制短线标记字形的左右侧边距。Fill填充编辑过程中实时填充字形轮廓可能很慢字形过大/放大倍数过高时不会填充。Preview预览隐藏点、提示及其他杂项只填充轮廓以呈现更接近成品的观感。除常规快捷键切换外Ctrl[Tab 上方键]美式键盘即Ctrl还可以按住 Tab 上方那个键临时进入预览除非已启用快速导航。Palettes面板子菜单Tools工具面板轮廓与位图视图中切换工具面板可见性。Layers层面板轮廓与位图视图中切换层面板可见性。Shades灰度面板仅位图视图且仅当正在编辑灰度抗锯齿字体时可用控制灰度面板是否可见。Dock Palettes停靠面板控制面板是自由浮动还是停靠在当前视图中。文档特别提示GNOME 的窗口管理器对此处理不佳——若要在 GNOME 下停靠需先打开一个带面板的窗口、选择停靠此时不会停靠、关闭窗口再重新打开之后面板便会停靠。Glyph Tabs字形标签页控制轮廓字形视图是否显示此前在该窗口查看过的字形的标签页栏。Rulers标尺轮廓字形视图中切换编辑区顶部与左侧是否显示标尺。提示Hints与锚点显示Horizontal Hints / Vertical Hints / Diagonal Hints控制水平、垂直、对角提示线是否可见。BlueValues / FamilyBlues控制字形的 PostScript BlueValues / FamilyBlues 是否可见。Anchors控制锚点是否可见。度量线显示Horizontal Metrics控制水平度量线宽度线是否可见。Vertical Metrics控制垂直度量线垂直推进线是否可见。Snap Outlines to Pixel Grid轮廓吸附像素网格Cairo 能以亚像素分辨率绘制轮廓——若样条端点落在两个像素之间Cairo 会在两个像素上都绘制一部分导致常见且不理想的模糊感从另一角度看这也更精确地指示了样条的实际位置。该菜单项用于开关此行为从而在精确与清晰之间取舍。位图视图专属控制Bigger Pixel Size / Smaller Pixel Size更大/更小像素尺寸仅位图视图。当存在多个位图字体尺寸时将当前字形切换到下一个更大/更小的位图字体进行显示。在源码中验证菜单结构View 菜单的实际构造分散在四个窗口的 C 源码中均以GMenuItem2数组定义字体视图fontview.c 的vwlist[]包含导航、Layers、Show ATT、Display Substitutions、Combinations、Label Glyph By、度量线、窗口尺寸、像素轮廓尺寸、Bitmap Magnification 及动态位图列表统一挂接在_View菜单fontview.c轮廓视图charview.c 的_Fit、_View等条目以及CVMenuFindInFontView等回调位图视图bitmapview.c 的Find In Font _View与_View菜单度量视图metricsview.c 的MVMenuFindInFontView与_View菜单。此外各视图间存在协作导航轮廓、位图、度量视图中的Find In Font View命令会把关联的字体视图滚动到当前字形处并选中它对应CVMenuFindInFontView、BVMenuFindInFontView、MVMenuFindInFontView这在多窗口协同编辑时非常有用。小结与最佳实践View 菜单本质上是显示状态的统一控制面板导航层Next/Prev Glyph、Next/Prev Defined Glyph、Former Glyph与Goto覆盖了从顺序浏览到精确定位名称、Unicode、编码、区点的全部场景预览层Display Substitutions、Substitutions、Combinations、Fit To Em帮助你在不打开排版表的情况下快速评估 GSUB/GPOS 效果与字距形态细节层Show子菜单的极值点、拐点、近似水平/垂直线、Fill、Preview以及网格拟合Grid Fit系列是轮廓精修与 TrueType 指令编写的核心辅助性能取舍Anti Alias、Fill、Snap Outlines to Pixel Grid均在显示精度与绘制速度/清晰度之间提供开关。建议在字体重建或导入后主动检查Show ATT与Combinations → Kern Pairs以确认排版数据完整在跨字体比较时使用Fit To Em与Label Glyph By的 Unicode 标签模式而在将 PostScript 字体转 TrueType 前开启Points of Inflection提前识别转换难点。赞分享桌面应用图形学【免费下载链接】fontforgeFree (libre) font editor for Windows, Mac OS X and GNULinux项目地址https://gitcode.com/gh_mirrors/fo/fontforge点击查看免费下载相关推荐daisyUI 5 Menu 组件完全指南从基础导航到分页式子菜单daisyUI 5 Menu 组件完全指南从基础导航到分页式子菜单 daisyUI 的 menu 组件用于在页面中展示一组纵向或横向排列的链接列表是导航栏、前端UI组件ng-zorro-antd Menu 导航菜单组件完全指南从 API 到源码实现ng zorro antd Menu 导航菜单组件完全指南从 API 到源码实现 本指南围绕 ng zorro antdAngular UI 组件库中的UI组件前端Ant Design Menu 导航菜单完全指南从 API 配置到源码级原理Ant Design Menu 导航菜单完全指南从 API 配置到源码级原理 Menu 是 Ant Design 中承载页面与功能导航的核心组件提供顶部导航前端UI组件设计系统上一篇AssetStudio免费工具全攻略Unity资源管理终极解决方案下一篇Vue Admin Template打造企业级后台管理系统的完美起点创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考