您當前的位置:首頁 > 攝影

LaTeX 實現「合字」或「合詞」效果的嘗試

作者:由 李極客LiGeek 發表于 攝影時間:2022-11-22

合字,是種特殊的書寫、排版方式,就是以特殊的合併形式一起展示不同的字元等等,以求簡潔、方便或美觀等等。無論中西,都有其相應合字實踐。比如,西文排版將f和i合併起來(見下圖)。再比如,漢字中「不」和「正」合成「歪」。諸如此類。

LaTeX 實現「合字」或「合詞」效果的嘗試

圖系引用

如果計算機的字符集及字型檔裡包含我們想用的合字,那當然方便。諸如「㍿」之類。

此外,現代排版還常需組合起來特定的文字,以避免斷開或缺失。這一需求,當然可以其他方式來解決,不過這裡也可藉助我所嘗試的方式。

xelatex的生僻字處理這篇博文介紹了造生僻字的第三種方法,「

倉頡造字

」。它藉助「盒子」以組合原來獨立的諸字元。

我利用這一方法,並加以發揮,嘗試實現瞭如下合併效果:

LaTeX 實現「合字」或「合詞」效果的嘗試

這三句話,字數未必相等,排版卻能「對齊」。

我把實現之的程式碼分享出來(已刪無關內容),供大家參考:

\documentclass{ctexart}

\usepackage{graphicx}

\begin{document}

鄧先生說,\hbox{\lower-1。0ex\hbox{\scalebox{1}[0。4]{黑}}\lower。1ex\hbox{\kern-1em \scalebox{1}[0。5]{貓}}}白貓,抓到老鼠就是好貓。

他的\hbox{\scalebox{0。5}[1]{黑}\scalebox{0。5}[1]{貓}}論意義深遠,以實用主義打擊\hbox{\lower-。75ex\hbox{\scalebox{0。33}[0。5]{斯大林}}\lower。2ex\hbox{\kern-1em\scalebox{0。5}[0。5]{主義}}}。

一般說來,建設\hbox{\lower-。75ex\hbox{\scalebox{0。5}[0。5]{社會}}\lower。2ex\hbox{\kern-1em\scalebox{0。5}[0。5]{主義}}},需要高度的生產力。

\end{document}

kern指物件水平方向平移,lower指物件垂直方向平移。這裡,對kern、lower而言,分別是正值指往右或下,負值指往左或上。

scalebox中的花括號{}、方括號[]中的數值,分別影響字元的縱、橫方向的比例變化。這些值也可是負數,茲不詳述。

標簽: hbox  scalebox  Lower  kern  排版