当被要求写一个Unicode字符时,我选择了不起眼的星号。在这篇文章中,朱莉娅退居次要地位,但她在幕后努力工作。[1]示例使用的字体为JuliaMono。
星号有着悠久的历史。这个简单标记的第一次出现可能是在某个洞穴墙上,但我们喜欢将发明归于已知的个人,所以星号的发明者是:公元前200年左右的萨莫特雷斯的阿里斯塔克斯(Aristarchus)。
令我失望的是,这不是另一个阿里斯塔丘斯,萨莫斯的阿里斯塔丘斯,这位对天文学感兴趣的著名数学家,因为ἀστερίσκος的意思是“小星星”。来自Samothrace Howrver的人是一名图书管理员、学者、评论家和校对员,他喜欢在文本和手稿的页边空白处打上无数的记号(*),比如注释、质疑和批判性评论。
除了在页边空白处写上小星星外,他还使用了其他标记,比如我们现在称为参考标记(U203b)*的标记。
*或许这是星号的提炼,也可能是先行。它们看起来非常相似。
星号和相关符号的这种使用一直延续到今天。中世纪的经学家和学者使用一系列的符号来表示他们的边缘注释,这些符号随着印刷革命取代了手写手稿而继续下去。页边的注释经常被脚注取代,星号和匕首是用来表示这些的两个主要符号。
匕首的另一个名字是方尖碑,因此漫画书中的人物阿斯特里克斯和奥贝利克斯(如果你在欧洲长大,你可能会对它们很熟悉)。
如果你在写一本书,你可以在每一页重复使用这两个指示符,但如果你想在同一页上有两个以上的脚注,你必须触及一些不太常见的标记,比如双匕首(“Diesis”)、三重匕首、节标、皮尔乌鸦、“平行于”和星号。
中世纪的抄写者和喜欢在书的空白处写作的读者可能会对这种可能性感到不知所措。指手或指甲*也出现在手稿的空白处,为最枯燥的圣经文献增添了一些人情味。
如果符号用完了,您可能不得不开始加倍使用它们。带有大量脚注的页面可以完成以下工作:
但是到目前为止,您可能在一页上使用了太多的脚注。现在可以切换到带编号的脚注,整个章节的编号从1到n,而不是每页从1开始。如今,我们可以让软件(例如\(\LaTeX\)或这个网页的Franklin[2])来为我们做这件事。
时至今日,“星号”这个词还带有一些从它的历史中衍生出来的额外含义,作为指向重要附加内容的指针。它用在广告中,用来表示你可能应该阅读的小号字体的存在--但也许他们希望你不要读。在通常由体育和政治主导的美国新闻业,“星号”这个词已经变成了“不,在你决定怎么想之前,你最好先多读一下这方面的内容”。在2000年美国总统大选中有争议的“胜利”之后,漫画家杜恩斯伯里开始把布什描绘成一个字面上的星号,这句话在乔治·W·布什身上广为人知。
在棒球运动中,总是有人说要用星号来标明球员所取得的成绩。据“纽约时报”报道,今年(2020年)的美国网球公开赛应该被称为“星号公开赛”,因为很多选手无法参加,所以获胜者并不是最好的选手。[3]。
到目前为止,这就是书和网页中讲述的星号的历史。Keith Houston的优秀著作“阴暗的人物”[4]非常详细地介绍了大多数标点符号的历史。但他关于星号的章节完全集中在星号作为脚注指示器的使用上,或多或少在这里结束了。
今天,我们已经习惯于看到它比脚注用于更多的事情,比如乘法。在数学中,各种符号都用于乘法,尽管默认的运算是乘法:对于数学家来说,如果你将两个符号紧密接触,它们自然会相乘,而不需要第三个符号的任何帮助。
%pythonPython 3.8.1(默认,2020年3月8日,13:39:36)[DarwinType";Help";,";版权";,";或";License";上的%pythonPython 3.8.1(默认,Mar 8 2020,13:39:36)[Clang 10.0.0(clang-1000.11.45.5)]。有关详细信息,>;>;>;x=2>;>;2xFile";<;stdin>;";行12x语法错误:无效语法>;>;>;
大多数语言使用*表示乘法。MATHEMICAL*比大多数人都更有能力。空格表示乘法,但如果需要,也可以使用*表示乘法。
直到17世纪,星号还主要用于科学书籍的脚注和装饰。例如,它在1610年出版的伽利略著名出版物“天狼星信息”中找到了它的天文根源。
这些星号显示了伽利略所称的美第奇恒星,我们现在称之为伽利略卫星,围绕木星运行。
*看起来排字员在这里用的是与标题页上“伽利略伽利略”和“宇宙美第奇”相同的“O”来代表木星。星号的“情节标记”完美地完成了这项工作。
科学,而数学,科学的语言,已经逐渐从用精致的拉丁语句子写成的中世纪手稿发展到刺绣着代数符号的印刷书籍。数学不再是冗长的描述性方法,而是一种更加代数的风格。
*这一直不是一个没有竞争对手的过程。它被称为“象征主义者和修辞学家之间的斗争”。[5]。
从15世纪开始,不同的作者热衷于推广新的语法,并可能希望他们最喜欢的符号能够站稳脚跟,成为标准符号。毫无疑问,数学书籍的印刷商乐于将设计、冲切和热铅模的费用加到最终发票上。
*也许如今在字体中添加新符号并不那么容易。
1668年,瑞士作家约翰·海因里希·拉恩(Johan Heinrich Rahn)在他的代数论文“德意志代数”(Teutsche Algebra)中第一个引入了表示乘法的星号。
那个螺旋形字符表示“对合”(指数运算的旧词)。他的书还在另一页上首次印刷了除法符号的用法。
直到最近,拉恩的得分一直是:赢1,输1。乘法星号当时根本没有流行起来,尽管他的除号流行了。
早在1631年,威廉·奥特雷德(William Oughtred)[6]*出版了“数学的钥匙”--“克莱维斯数学”(Clavis Mahematicae),这本著名的教科书有着丰富的新符号,非常有影响力,被许多人研究过,包括年轻的艾萨克·牛顿(Isaac Newton)。
*1574-1660年·他是一名牧师、数学家、教师、发明家-他教过克里斯托弗·雷恩(Christopher Wren)等人。他发明了计算尺,并为正弦和余弦函数引入了缩写“sin”和“cos”。
奥特雷德的书普及了萨尔泰尔,一个旋转的加号,用作可见的乘法符号。这是它第一次出现在印刷品上:
在这台排字机的手中,与其他操作员相比,它是相当小的。它不会轻易与通常用Seriff表示的字母X混淆。
*萨尔特也被称为圣安德鲁十字架-他被钉在一个更大的木制版本的十字架上。在纹章学中,它是由“弯曲和邪恶的弯曲”形成的。
遗憾的是,x在Julia中不能用作乘号,尽管它很容易实现:
Julia>;const×=**(385方法的泛型函数)julia>;x=3×412julia>;a=";hello";×";WORLD";#⁉";HelloWorld";
颇具影响力的数学家和哲学家戈特弗里德·莱布尼茨不喜欢奥特雷德的服饰符号,他在1698年给伯努利写了一封信:
我不喜欢×符号作为乘法符号,因为它很容易与x混淆;--…。通常,我只是简单地用插入点将两个量联系起来,并用ZC⋅LM表示乘法。
萨尔特兰在英国可能比在德国更受欢迎。牛顿无疑是在看到需要它之后才采纳了它。这是他1687年出版的第一版“数学原理”[7]。
我想说莱布尼茨在这一点上绝对是有道理的,因为牛顿使用小写的x作为代用品,尽管公平地说,他并不经常使用x作为变量。但在1723年的修订版中,牛顿改进了他的大多数字体选择*:
现在,Saltil要大得多,而且没有当时用于大多数数学打印的衬线,不太可能与任何大小的X混淆。
因此,莱布尼茨比奥特雷德和拉恩更有影响力:他推广了dx/dy记数法、积分符号、乘法点、同余和相似的符号等等,甚至偶尔还使用星号来表示乘法。
不过,一般说来,乘法星号在大多数数学(与算术相反)文本中并不经常使用,而更有可能被用来表示脚注或其他更特殊的用途。如果需要乘法,则认为莱布尼茨点就足够了。常用运算的数学符号在很大程度上已经达成一致。
星号太有用了,太容易辨认了,不能留在大写字母尘土飞扬的角落里,只是为了偶尔执行乘法任务。
或者偶尔的脚注。数学家们把它用在各种东西上。在1774年,一个J B基影用星号表示阶乘:SO5*=5.4.3.2.1。后来,它发现了许多其他更专门的用途:
在A*算法中,*是通配符(有称为A1和A2的算法,因此A*包括所有可能的版本)。
星号还接管了以前由破折号(-)完成的一些工作。破折号在19世纪的小说中经常用来表示停顿或省略,有时还暗示为了避免法律问题而隐瞒真名(这是给故事增加现实主义色彩的聪明方式)。(当然,学者们已经对这种不起眼的破折号进行了广泛的研究[8]。)。
破折号表示遗漏的任务已逐渐被星号取代。在更现代的时代,它允许作家使用印刷商没有勇气完整展示的脏话,就像“新西兰星期日星报”的这篇文章所展示的那样。
*这种希望在不扼杀作家的情况下保护读者的愿望的技术名称,这种省略就是假装善良。是“尊重观众的悲观主义”
也许这就是使用*作为通配符的原因。我发现正则表达式偶尔会引起咒骂。
19世纪60年代,打字机因其有限的字符集而迅速崛起,这意味着一些符号不得不消失,因为打字机不能继承打印机的打字盒中的所有东西。
第一台机器只有大写字母。出厂的型号通常没有1(只使用l)、0(只使用O)或!(只需使用';,然后键入退格键,然后键入a。下面)。但是技术进步了,巧妙的双移位按键机器,如Corona 3[9],能够创造出我们期望看到的大多数字符:
但是很少有机器带有TIMES(×)键,所以您必须使用字母“x”或“*”。而且有些机器甚至没有星号-想必你不得不通过重复键入x和|以及-或者其他类似的发明来伪造星号。
使用打字技术进行数学排版需要一些工作。下图中的这本书出版于1978年,巧合的是,唐纳德·努斯在同一年推出了最终使这种努力变得不必要的\(\tex\)软件。它测试了Courier字体,在IBM SElectric打字机进入世界激光打印机之前,这种字体经常出现在IBM SElectric打字机上。
在这里,星号找到了其他工作要做,偶尔需要一个小写的x满足了对乘法符号的要求,在上下文中毫不含糊。
打字机技术演变成20世纪中期的电传打字机和电传打字机。例如,像Friden Flexowriter这样的机器是一种可怕的野兽,它包含一个键盘、打印机、纸带阅读器、读卡器和一个可编程的插板,控制着数十个电气继电器,它的重量约为60公斤。(怀旧视频请点击此处。)。它可以通过串行连接进行通信,因此不可避免地对早期计算机的发展产生了重大影响。
数学课本在很大程度上可以不使用乘号,必要时可以使用旧的句号。
因此,1954年新提出的Fortran*编程语言的设计文档显示,已有500年历史的Oughtred乘法符号被广泛使用,看不到一个星号:[10]
我不知道这些是不是手工插入的,或者打印机是否经过了物理修改才能生成这个符号(显然,人们可以做到这一点,而且确实做到了)。
然而,当这种语言被实施时,礼仪是不可用的,因为程序最初是从穿孔卡片上加载的,只有那些一直延续到20世纪60年代穿孔卡片机的字符才能存留到计算机时代。
这些早期的计算机器大部分主要是为商业用途而设计的,所以早期程序员可用的符号是为会计和统计而设计的,而不是编程。
和其他密钥一样,它是IBM1401代码的一部分,这是一种早于ASCII的早期字符编码。这个符号通常用在20世纪60年代的计算机化银行系统中,用来表示二级合计。
*@符号有着类似的历史:由于其商业用途,它在以商业为导向的计算机上幸存了下来,因此可用于其他用途,例如有史以来第一封电子邮件。
⌰⌱⌲⌳⌴⌵⌶⌷⌸⌹⌺⌻⌼⌽⌾⌿⍀⍁⍂⍃⍄⍅⍆⍇⍈⍉⍊⍋⍌⍍⍎⍏⍐⍑⍒⍓⍔⍕⍖⍗⍘⍙⍚⍛⍜⍝⍞⍟⍠⍡⍢⍣⍤⍥⍦⍧⍨⍩⍪⍫⍬⍭⍮⍯⍰⍱⍲⍳⍴⍵⍶⍷⍸⍹⍺。
APL语言是在20世纪60年代开发的,它预测了在Unicode时代我们认为理所当然的丰富的符号。我认为仍然有一点不愿意使用代码在ASCII页面之外的字符,但这可能是避免兼容性问题的自然愿望。大多数程序员以前都遇到过Unicode和字体显示问题。此外,并非所有编程环境都提供了从QWERTY键盘访问数千个符号的简单方法(就像Julia用户可以从REPL访问一样)。
今天的星号(Unicode\u002a)是Jekyll-and-Hyde字符。它要么是脚注指示符,要么是乘法符号。所以字体设计者有一个选择:小心翼翼地把它放在行的顶端,与匕首和其他上标字符对齐,或者把它放在与其他算术运算符(如+和-)相同的水平上。一些字体不能决定,也不能满足于折衷,介于两者之间。
此图显示了几种字体如何将它们的星号放置在基线上方的不同高度。等号用蓝色表示。
我原本预计这会表明星号随着时间的推移一直在慢慢降低。但是,尽管大多数非编程字体保持高星号,脚注样式,但并不是所有的编程字体都与数学运算符保持对齐,我认为这是放置它的明显位置。
这里有一个小问题,数学家们有他们自己的星号,\u2217。用维基百科的话说:
这应该用在与其他数学运算符对齐的大星号的精细排版中。
以下是表示乘法的非“精细”脚注星号,即编程代码中使用的星号:
在某些字体中,脚注星号和乘法星号之间可能存在高度差异,但在我这里使用的字体中,它们恰好大致相同。不幸的是,“精细星号”和×符号一样,在Julia中不能用作乘法符号(我想也不能在任何其他语言中用作乘法符号)。但它仍然存在于Unicode字形仓库中,等待“精美”排版的狂热爱好者将其纳入其中。
Unicode联盟对箭头和星号有着“过分的喜爱”[12],但他们也非常热衷于星号:
也许没有多少人会花很长时间来考虑他们想要什么星号和萨尔蒂,但有人照顾他们是件好事。
传统上,衬线脸包括一个六角星号,而无衬线星号有五个,但在实践中,这不再是人们观察到的惯例。
我做了几张海报[14],我不认为有太多的模式。Bodoni有5个,Gotham有6个,大量的无衬线字体有6个,还有带有5和8的serif字体,还有几个7。
如果你觉得这些都不太适合你,你可以自己动手做。下面是你可以如何在冥王星笔记本中使用朱莉娅开始设计你自己的笔记本。
如果你一直读到最后,谢谢你-你是一个∗!
Franklin.jl&39;适合自动编号-尽管我无法说服它使用*、†,‡、§、||、#、**、††,‡‡、§§、|、#、*、†††,‡‡‡...😃等脚注标记。
“基本类型:理解和使用字体的图解指南”,耶鲁大学出版社,2016。
[2020-10-09]