作者Volodos (Volodos)
看板LaTeX
标题Re: [问题] 怎麽调整一行字的水平对齐
时间Tue Dec 6 18:31:33 2011
※ 引述《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