檢視 排版論 的原始碼
←
排版論
跳至導覽
跳至搜尋
由於下列原因,您沒有權限進行編輯此頁面的動作:
您請求的操作只有這個群組的使用者能使用:
使用者
您可以檢視並複製此頁面的原始碼。
{{Nav|程式語言、邏輯學}} 排版學其實也可以用數學化約之 (to some degree),但是要定 spec。 <math>TotalCostMain(j) =\begin{cases} min_{0 \leq k < i} (TotalCost(k) + 0 * LineCost(k+1, i))~~if~~LineCost(k+1, i) < \infty \\ \infty ~~if~~LineCost(k+1, i) = \infty \end{cases} </math> 其中<math> LineCost(k+1, i) </math> 是最後一行的成本。 <math>TotalCost(i) = \begin{cases} LineCost(0,i)^3~~~~if~~~LineCost(0, i)<\infty \\ min_{j}~TotalCost(j) + LineCost(j, i)^3~~~~j=0, 1, ..., i-1~~if~~~LineCost(0, i)=\infty \end{cases}</math> <math> LineCost(j, i)= \begin{cases} \infty ~~~ if~~LineWidth - \sum_{k=j+1}^{i-1} OrigWidth(item[k]) - NewLineWidth(item[i]) < 0 \\ \infty~~if~~NOT~~breakable(item[i]) \\ (LineWidth - \sum_{k=j+1}^{i-1} OrigWidth(item[k]) - NewLineWidth(item[i])) ~~elsewhere \end{cases} </math> ==雜談== *20231114: <pre>一個排版軟體會面臨一個問題: 假設我在第5頁需要引用下文某個文字的位置p,輸出f(p)的字串,f是任意函數。 那p 一定受到 f(p) 影響,所以 p = g(f(p)), 但這樣可好了,p = g(f(g(f(...(p)))) 如果p 不是不動點那絕對求不出來。 所以排版軟體一定會面臨到編譯的頁碼誤差,因為p有時候無法求得。</pre> =以下為草稿= ==word 的問題== *分頁 ** 斷頭 ** 斷尾 ** 可選分頁 ** 強制分頁 * Miniframe 的問題 ==字圖 glyph== 我們需要下面的函數,得到單位量度: # get_ex(font, size) # get_em(font, size) # get_total_height(font, size, glyph) #得總高 # get_height(font, size, glyph) #得頂至基線 # get_width(font,size, glyph) #得寬 # get_depth(font, size, glyph) #得深 # get_ex(font, size) #得ex # get_em(font, size) #得em ==行(line)== 將 glyphs 放置的一行文字區塊。比如說下文。 <pre> | 我今天坐公車離開臺中市 | <- 行1 | | | 然後)往臺南旅行。 | <- 行2 </pre> 行有基線 baseline,且有方向 (textDirection),分成兩種,四值: # 基線在字圖之底: ## RTL 如西文。 ## LTR 如希伯來和阿拉伯文。 # 基線在字圖之左: ## BTT 由下而上,罕用。 ## TTB 由上而下,如對聯、蒙古文字。 ===計算行高方式 (automatic-height)=== 我們可以定義line的depth「行的深度(基線到底/左之距)」和height「行的高度(基線到頂/右)之距」,是 auto 和 fixed,將變數儲存於 automatic-height。 若「automatic-height = auto」,則depth公式如下計算: * <code>line.depth = max(glyph[i].depth) for i in range(len(line.glyphs))</code> * <code>line.height = max(glyph[i].height) for i in range(len(line.glyphs))</code> 以及行的高度(基線到上/右)取決於: ==div== ==頁面== ===模型層(資料大綱層)=== ===顯示格式層=== [[category:資訊]]
此頁面使用了以下模板:
模板:Nav
(
檢視原始碼
)
返回到「
排版論
」。
導覽選單
個人工具
登入
命名空間
頁面
討論
變體
視圖
閱讀
檢視原始碼
檢視歷史
更多
搜尋
導覽
首頁
愛爾蘭語辭典
近期變更
隨機頁面
有關 MediaWiki 的說明
相關網站
總首頁
Blog
舊 blog
現用 blog 備份
工具
連結至此的頁面
相關變更
特殊頁面
頁面資訊