日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

上古时期的 TeX Users 都有哪些当今 TeX Users 无法想象的神级操作?

發(fā)布時(shí)間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 上古时期的 TeX Users 都有哪些当今 TeX Users 无法想象的神级操作? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
劉海洋 李阿玲?等 26 人贊同 上古時(shí)期的 TeX Users 都有哪些當(dāng)今 TeX Users 無(wú)法想象的神級(jí)操作? TeX 在軟件中不算最復(fù)雜的一類,TeX 代碼相比正經(jīng)的編程語(yǔ)言也沒(méi)那么復(fù)雜。何況寫文檔不是打電子游戲,所以所謂「神級(jí)操作」其實(shí)是沒(méi)有的,這種叫法也讓我感覺(jué)怪怪的。

而且,計(jì)算機(jī)軟件的發(fā)展,總體是越來(lái)越復(fù)雜的。受限于計(jì)算機(jī)性能和人們的腦洞,二三十年前人們寫的 TeX 代碼是遠(yuǎn)沒(méi)有今天的復(fù)雜的。像 pgfplots 這種能用宏展開(kāi)計(jì)算 3D 曲面圖的長(zhǎng)達(dá)數(shù)萬(wàn)行的 TeX 代碼怪獸,在過(guò)去那個(gè)排版厚一點(diǎn)的書就擔(dān)心內(nèi)存不足的時(shí)代才是難以想象的。

技術(shù)大概有兩種,一類是從過(guò)去到現(xiàn)在一直在用的,基本而重要的東西;還有一類是隨時(shí)間逐漸消失,不為人所知的,那一般就是淘汰的技術(shù)。上古有而今天的人無(wú)法想象的技術(shù),大多屬于不適應(yīng)時(shí)代發(fā)展而淘汰的東西。所以在技術(shù)這方面沒(méi)必要泥古,這和武俠小說(shuō)中越古老的秘籍越厲害不是一回事。

─────────────────────────────────────────────

至于說(shuō)要了解早期的 TeX 代碼有點(diǎn)什么特別的東西,找找代碼來(lái)看看就知道了。比如說(shuō),在?Macros for The Art of Computer Programming?里面有一小段宏,是這樣的:
\newdimen\bitmapsize \bitmapsize=10pt {\catcode`\.=\active\gdef\bitmap#1:#2:#3:#4:#5:#6<#7>% ems:cols:rows:-hoff:rows+voff<hexbitmap>{{\leavevmode \let.\period \hbox to#2\bitmapsize{\special{" 0 0 moveto currentpoint translate\bitm@psize \bitm@psize scale #3 #4 true[#1 0 0 -#1 #5 #6] {<#7>} imagemask}\hss}}}\gdef\defineindexperiod{\def.{\period\par\hangindent 2em }}} \def\indexnoperiod{\par\hangindent 2em} {\catcode`p=12\catcode`t=12\gdef\bm@ff#1pt{#1}} \gdef\bitm@psize{\expandafter\bm@ff\the\bitmapsize\space} 這里面的 \bitmap 就是把輸入?yún)?shù)作為點(diǎn)陣數(shù)據(jù),直接用 \special 輸出為 PostScript 代碼的點(diǎn)陣圖。

這個(gè)宏實(shí)際用起來(lái)是這樣的:
\bitmap74:1.08:72:72:-3:60% G4156 <0003800000000000000003c00000000000000001e00000000000000000f0000000000000%0000fc00000000000000007c00000000007000007c0000000001fc00007e0700000003fe%00007e0f8fffffffff00007e1fc7ffffffff00007c3fe3fffffffc3ffffffff001f001f8%1ffffffff801f001f8080000300001f000f80000003c0001f000f80000007e0001f000f8%00e0007f0001f000f80070007f0001f000f80038007e0001f000f8003c007c0001f000f8%001e00f80003f000f8001f00f00003e000f8000f81f00003e001f8000fc1e00003c001f8%000fc3c00007c001f0000fc3c00007c001f0000f8780f0078003f0000f8781f80f8003f0%00070f01fc0f0007e000000f03fe1f3f07e0ffffffffff1e3fffe07fffffffff3c07ffc0%3c000000003800ff80000000000078007f800000000000f0003f000000000001e0003800%01c0001c03c000200001f0001f070000000001fc003f8e0000000001ffffffcce00001e0%01ffffffc8f80001f001f8001f00fe0003f801f8001f00fffffffc01f8001f00fffffffc%01f8001f007c0003f801f8001f007c0003f001f8001f007c0003f001f8001f007c0003f0%01f8001f007c0003f001f8001f007c0003f001ffffff007c0003f001ffffff007c0003f0%01f8001f007c0003f001f8001f007c0003f001f8001f007c0003f001f8001f007c0003f0%01f8001f007c0003f001f8001f007c0003f001f8001f007c0003f001f8001f007c0003f0%01f8001f007c0003f001f8001f007c0003f001ffffff007c0003f001ffffff007c0003f0%01ffffff007ffffff001f8001f007ffffff001f8001f007c0003f001f8001f007c0003f0%01f8001f007c0003f001f8001f00fc0003f001f8000000fc0003f001f8000000fc0003c0%>%% Unicode char "97f6 其實(shí)就是秦九韶的「韶」字。用 Dvips 編譯出來(lái)放大點(diǎn)看長(zhǎng)這樣:

看到這里就明白了,這就是個(gè)處理個(gè)別點(diǎn)陣字的土辦法。

這種東西當(dāng)今的 TeX 用戶確實(shí)不大容易想象。不過(guò)這種代碼讀完并不會(huì)覺(jué)得這種東西是什么神級(jí)操作。至少我當(dāng)時(shí)的第一感覺(jué)就是,還不如直接一個(gè)字做一個(gè) eps 圖片插圖呢。 編輯于 2016-06-12?添加評(píng)論?感謝? 分享 ?收藏???沒(méi)有幫助???舉報(bào)???作者保留權(quán)利 李阿玲 Belleve?等 29 人贊同 大鷹在邀請(qǐng)我回答這個(gè)問(wèn)題的時(shí)候,我正在青海寧夏一帶活動(dòng),所以沒(méi)有時(shí)間來(lái)得及回答。
TeX這個(gè)語(yǔ)言的繁瑣之處以前也有講過(guò)不少了,和運(yùn)算型語(yǔ)言比較,宏語(yǔ)言中大有trick可玩,簡(jiǎn)單的,直接改\catcode,在加上一定量的宏這樣可以在TeX中實(shí)現(xiàn)Basic或者Lisp的解釋器。使用\expandafter以及\let等的trick也有得玩,加上一些數(shù)寄存器或者dimen寄存器可以實(shí)現(xiàn)一些遞歸宏。對(duì)于這種可以把玩的東西,初學(xué)者使用The TeXbook即可,想要cookbook就需要看Victor Eijkhout的這本書:
這個(gè)書的時(shí)代比較早,最初在TUGboat上連載,基本上把標(biāo)準(zhǔn)的TeX82中的trick都完整覆蓋了。下載地址為:VictorEijkhout / TeX by Topic。當(dāng)然,Victor Eijkhout還有本叫做The Computer Science of TeX and LaTeX的書,這個(gè)適合有一點(diǎn)計(jì)算機(jī)基礎(chǔ)的人閱讀(比如懂一點(diǎn)編譯原理),可見(jiàn)The Computer Science of TeX and LaTeX

上面提到的改catcode的,最簡(jiǎn)單的最直觀的可以參考下面地址:Introduction to Poor Man's Chinese TeX。即Poor Man's 中文 TeX 簡(jiǎn)介,中央研究院計(jì)算中心,ASPAC計(jì)畫。我當(dāng)年看到這個(gè)東西的時(shí)候,真是笨的要命,一點(diǎn)計(jì)算機(jī)基礎(chǔ)都沒(méi)有,把這個(gè)文章的代碼抄下來(lái)看了半個(gè)月才明白。這種時(shí)間可以浪費(fèi),但也就適合在大學(xué)浪費(fèi)了。以前的漢字編碼都是雙字節(jié)編碼的時(shí)代,這種改catcode的方式是最簡(jiǎn)單也最高效的,但是現(xiàn)在已經(jīng)不怎么完全適用了,尤其是有了Unicode之后。(順便發(fā)現(xiàn)了我以前寫的東西:如何快速查看 LaTeX 的宏命令的實(shí)現(xiàn)? - LaTeX)

九十年代的漢字處理,尤其是在DOS系統(tǒng)之下,有著大量的點(diǎn)陣字體處理的場(chǎng)景。無(wú)論是poorman方法,CJK方法,CCT方法,中間都繞不過(guò)點(diǎn)陣字體。在舊的CCT之中,有個(gè)工具是專門來(lái)拼點(diǎn)陣生僻字的,上個(gè)月我還接觸過(guò)這一部分的內(nèi)容,但是這種東西在現(xiàn)在基本上用不到了。這種東西說(shuō)起來(lái)并不長(zhǎng)臉,只是那個(gè)時(shí)代各種匱乏的結(jié)果。

還有一個(gè)值得提一提的東西是Omega。這個(gè)東西給TeX打的補(bǔ)丁的長(zhǎng)度幾乎是TeX代碼本身的長(zhǎng)度。Omega本身有著復(fù)雜的排版功能,OTP/OCP之類能夠使它能夠處理很多復(fù)雜的語(yǔ)言文本。但是,這東西本身已經(jīng)過(guò)時(shí)了,因?yàn)樗呐渲梅爆嵰灾劣陂_(kāi)發(fā)者都是很少的幾個(gè)人。和其他的引擎不同,比如XeTeX中控制layout engine的東西,文檔寫的清楚,寫宏來(lái)控制也不難。Omega的一部分功能,現(xiàn)在在LuaTeX之中還能看見(jiàn),但是這些功能卻也是不痛不癢的。

在繪圖技術(shù)上,以前有Xy-pic和PSTricks。但是現(xiàn)在基本上是幾個(gè)獨(dú)立的繪圖語(yǔ)言+TiKZ的天下了。一方面是這些語(yǔ)言以及TiKZ在設(shè)計(jì)上比較現(xiàn)代,在應(yīng)用庫(kù)上也很豐富,加之頁(yè)面描述語(yǔ)言以及各種驅(qū)動(dòng)宏的開(kāi)發(fā)規(guī)模比較大,所以很多老的包都使用的不多了。PSTricks這個(gè)東西,就是通過(guò)\special中添加PostScript代碼,最后在DVI解析的時(shí)候,把這部分代碼插到PS文件里面,這種東西確實(shí)在九十年代比較流行,甚至有個(gè)專門處理到PS的引擎VTeX(MicroPress Home Page)。但是隨著2000年以來(lái)PDF的流行,PS的使用范圍逐漸沒(méi)落,社區(qū)里面的PS處理工具并沒(méi)有比PDF豐富多少,或多或少都依賴GhostScript,甚至于dvips現(xiàn)在都不支持位圖文件的插圖。

有個(gè)有意思的東西,比如有德國(guó)的留學(xué)生說(shuō)過(guò)德國(guó)現(xiàn)在還有不少人在使用plain TeX,我是不太驚訝的,對(duì)于英文等等,其實(shí)plain很好用,也有一部分俄羅斯人現(xiàn)在也用plain TeX。在plain TeX下面想要打漢字,除了pTeX系之外,XeTeX和LuaTeX或多或少都可以進(jìn)行,這都依賴于特定的包和一串特定的宏。我在2012年開(kāi)始寫一些plain格式的小測(cè)試文件。自由度是很高的,當(dāng)然這也僅僅是指語(yǔ)法,想要特定的樣式,LaTeX還是方便不少。
from:?https://www.zhihu.com/question/47175617#answer-37694377

總結(jié)

以上是生活随笔為你收集整理的上古时期的 TeX Users 都有哪些当今 TeX Users 无法想象的神级操作?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。