【问题标题】:Word font family variationsWord 字体系列变体
【发布时间】:2022-01-25 14:37:20
【问题描述】:

简介。我的大学老师有点奇怪。她想要所有学生手写的论文,考虑到我们生活在计算机时代,这有点夸张。我创建了一个类似于我的笔迹的字体系列并保存为 .ttf 并将其安装在 Windows 上并在 Word 中使用。这似乎没有说服力,所以我想知道:如果我创建 100 个 ttf,每个 ttf 都有一个字母的细微变化,当你输入一个字母时,word 中是否有办法从这 100 个 ttf 文件中随机选择来进行写作看起来更有机,因为我不是书法家,我不能以完全相同的方式写两次信,所以稍微变化一下会更有说服力。

如果不可能,我有办法使用 HTML + JS:

document.getElementById("randomize").disabled=true;
function setupFonts(){

   var handwritten = document.getElementsByTagName("handwritten")[0];
   var raw_text = handwritten.innerHTML; //no tags in handwritten tag body
   var taggedText = "";
   var fontTag = "</font><font>";
   for(var i = 0; i < raw_text.length;i++){
      if((/[a-zA-Z]/).test(raw_text.charAt(i))){
         taggedText = taggedText.concat("<font>", raw_text.charAt(i), "</font>");
      }
      else{
         taggedText = taggedText.concat(raw_text.charAt(i));
      }
   }
   handwritten.innerHTML = taggedText;
   document.getElementById("randomize").disabled=false;
}
function randomizeFonts(){
   var fontNames = ['Arial', 'Verdana', 'Consolas']; //here will be listed the variations
   var fontsArray = document.getElementsByTagName("font");
   for(var i = 0; i < fontsArray.length;i++){
      fontsArray[i].setAttribute("face", fontNames[Math.floor(Math.random()*fontNames.length)]);
   }
}
<html>
<body>
<!-- Just 1 handwritten tag allowen on a page -->
<handwritten>
This is a sentence handwritten.
</handwritten>
<br>
<button id="setup" onclick="setupFonts()">Setup Fonts</button>
<button id="randomize" onclick="randomizeFonts()">Randomize Fonts</button>
</body>

<html>

它可以工作,但是如果这在 word 中是可能的,那就更好了。

【问题讨论】:

  • 如果你想成功,就把你的论文写出来。说真的。
  • “懒惰是创新之母”

标签: javascript html fonts ms-word truetype


【解决方案1】:

与其制作 100 种不同的字体文件,不如在 OpenType 字体本身中包含替代字形。然后,字体可以使用 OpenType 功能规则定义何时应用不同的字形。

有很多字体已经支持这些功能类型的功能,一个常见的用例是在某种程度上模仿书法和手写。一个特别全面的例子是字体LiebeHeide

也就是说,如果您打算使用自己的笔迹来执行此操作(并且,正如其他评论者所提到的,打算使用字体而不是其他方式解决您的问题),那么您可以将备用字形添加到你自己的字体。

如果您能够生成 OpenType 字体,您应该能够向其中添加 OpenType 功能代码。这方面的很多细节将取决于您用于生成字体的工具集。

一旦您能够添加,例如。一个“A”字形和一个不同绘制的替代“A”字形,我建议查看 Tal Leming 的 OpenType Cookbook

在那里,他讨论了how to implement pseudo-randomization of glyphs 使用 OpenType 功能规则。

更复杂的随机化(例如字体内的程序化随机化,或动态修改轮廓)是不可能单独使用字体的,这也在此处进行了描述。规范中有一个“Random” rand OpenType 功能规则,但它可能在您想使用该字体的任何地方都不受可靠支持。

对于字体设计师和字体开发人员来说,指南中的伪随机技术是一种实用的方法,可以将替代项换进换出以制作模仿书写的字体。

由于此字体可能仅供您使用,因此您有更多选择,因为您还可以控制字体的使用位置。您可能决定只在字体中添加备用字形,然后使用 HTML 和 CSS 将它们随机应用到字体之外,如您所描述的,这样您就可以拥有“更随机”的东西。在这种情况下,this technique 在 HTML 和 CSS 中应用替代品可能对您有用。

【讨论】:

    猜你喜欢
    • 2011-12-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-02
    • 1970-01-01
    相关资源
    最近更新 更多