Re: [問題] 怎麼調整一行字的水平對齊

看板LaTeX (論文排版)作者 (Volodos)時間13年前 (2011/12/06 18:31), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《recorriendo (孟新)》之銘言: : 假設我有一行是不同大小的字 : 要怎麼調整文字是上沿切齊、中線切齊、還是下沿切齊呢 : 除了parbox有其他辦法嗎? 1. 字型位置的高度設定主要是由 depth/height 決定 簡單說, abcdef 下面切齊的那條線稱 baseline, b 的頂到 baseline 的距離 是 ht, gjpq 下面多出來的那截是 dp 改變字型大小時, 他會把不同東西的 baseline 對齊 (包含你插入所有的方塊都是) 如果你希望一個字是 "上緣" 對齊, 顯然需要改變這個東西的 baseline 位置 2. tex 在輸出時是先將整段文字分行 分行後, 每行變成一個 hbox, 然後裡面每個文字通通都是 box 大的 box 裡有小的 box, 小的 box 裡有更小的 box 最小的 box 就是一個一個字母 然後一堆 box 水平拚完後, baseline 會對在一起 (這也是為什麼一般情形下, 圖形不能上緣與文字對在一起 因為圖型這個 box 一般是有 ht 沒 dp) 綜合 1/2, 所以要上緣對齊或中線對齊, 指令多半跟 box 有關 而且會很複雜 我自己會考慮的方法可能是像 (假設內文內定是 12pt) \Large{large} \raise4pt\hbox{\small{smalling}} \raise8pt\hbox{\tiny{tiny}} 用 raise 或 lower 去移動 box 位置 (再高級點就是,把內容設成 box, 然後去讀 box 的資訊, 然後再用那個資訊去 移動需要的點數) 這類的排版不是太正規, 印象中 tex 不支援這樣的功能 真要做到可能有很多方法 (甚至像直接去編字型表, 讓每個字的 height=0pt, 這樣輸出就是上緣對齊...之類) 但應該都是 dirty works -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 68.231.175.130
文章代碼(AID): #1EtUy8QC (LaTeX)
文章代碼(AID): #1EtUy8QC (LaTeX)