永遠不來的那些峰
前面某一階把結構因子交到你手上,那一條總和決定了每個反射有多亮:F(hkl) = 對所有原子求和 f_j times exp(2 pi i (h x_j + k y_j + l z_j)),而量到的亮度是 |F|^2。多數時候這條總和落在某個不上不下的值。但每隔一陣子它會恰好落在零,你原本預期的反射就這麼不見了。一個峰會消失有兩種截然不同的原因,而把它們分開正是本篇的全部關鍵。好的那一種、也就是我們讀得懂的那一種,叫做系統消光:一整個規律的反射家族被迫歸零,原因不在於那些特定的原子,而在於一個帶著平移的對稱操作。
帶著平移的操作是從哪來的?整個這一階都在鋪陳它們。布拉維晶格可以被置心,那是烘進晶格本身的一個平移。第一篇介紹了兩種「唯有加上平移才存在」的操作:螺旋軸(先旋轉,再沿軸滑動)與滑移面(先鏡射,再沿面滑動)。正是這些配料,把 32 個點群加上 14 個布拉維晶格,變成了 230 個空間群。而結果是,它們每一個都會蓋下自己一款獨特的「缺席反射」圖樣。把這些消光反過來讀,你就在還沒解出結構之前,先認出了晶體的平移對稱。
為什麼半步就抹掉一半的峰
這個機制是一段乾淨俐落的代數。假設晶體有一個平移 t,把整個基元映射到它自己一份一模一樣的副本上。那麼結構因子就會乾淨地因式分解:你可以寫成 F(hkl) = F_基元 times [1 + exp(2 pi i (h dot t)) + ...],括號裡每一項對應這個平移造出的一份副本。F_基元 那一段承載原子在做的一切;而括號是一個純粹的幾何因子,對化學一無所知。而括號是可以等於零的。
拿體心來算,額外那份副本坐在 (1/2, 1/2, 1/2)。括號是 1 + exp(pi i (h + k + l)) = 1 + (-1)^(h+k+l)。當 h + k + l 為偶數它等於 2,當 h + k + l 為奇數它恰好是 0。於是不管你往晶胞裡倒進什麼原子,一半的反射都會消失——這就是體心的指紋,也是為什麼一個 I 置心晶體只會出現 h + k + l 為偶數的 (hkl)。體心立方鐵讓它變得具體:(100) 之和為 1,消失;(110) 之和為 2,出現;(111) 之和為 3,消失;(200) 之和為 2,出現。面心用三份半副本玩同樣的把戲,它的括號唯有在 h、k、l 同為偶或同為奇時才存活。
這裡有個經典的誤解值得當場破除,因為它正是「晶格不等於晶體」那個要點的偽裝。氯化銫看起來像體心——角上一個 Cs、正中一個 Cl——但它不是 I 晶格。體心平移唯有在把兩個「完全相同的散射體」疊在一起時才會逼出消光,而這裡角上是 Cs、中心卻是 Cl。所以括號並不會乾淨地因式分解:F(100) = f_Cs + f_Cl times exp(pi i) = f_Cs - f_Cl,並不等於零。氯化銫是一個帶著雙原子基元的簡單立方晶格,它的 (100) 正好會(微弱地)出現在體心立方鐵沉默的那個位置。那一個峰的有或無,直接讀出了置心究竟是真正的晶格對稱,還是只是一個恰好坐在正中央的基元。
三個來源,三種幾何
美妙之處在於,這三種平移攜帶者各自修剪掉倒晶格中大小不同的切片。置心是完整的三維平移,所以它的條件套用在整幅圖案的每一個反射上。滑移面是一個住在某平面裡的平移,所以它只碰到躺在那個平面裡的那一薄片反射——一個二維的區帶(zone),例如所有的 (h0l)。螺旋軸是一個住在某條線上的平移,所以它只碰到沿那條線串起來的反射——一個一維的排(row),例如所有的 (00l)。伸手越短,被抹掉的切片越薄。
看同一個 1 + (-1) 相消,如何為螺旋軸與滑移面辦事。一個沿 c 的 2_1 螺旋軸把 (x, y, z) 送到 (-x, -y, z + 1/2)。沿著 (00l) 這一排只有 z 要緊,而螺旋夥伴的相位帶上 exp(pi i l),所以括號是 1 + (-1)^l——l 為奇時歸零。於是 (00l) 唯有 l 為偶時存活:(001) 消失,(002) 出現。一個垂直於 b 的 c 滑移面把 (x, y, z) 送到 (x, -y, z + 1/2);在 (h0l) 區帶裡這同樣逼出 l 為偶。同樣的半步、同樣的相消,只是瞄準的是一排或一片,而非整幅圖案。還有一個推論值得記住:同型(symmorphic)空間群完全沒有螺旋軸或滑移面,所以它唯一的消光來自置心;而螺旋與滑移消光,正是非同型(nonsymmorphic)空間群不會認錯的簽名。
SYMMETRY ELEMENT AFFECTS REFLECTION APPEARS ONLY IF (translation part) which reflections -------------------- ---------------- -------------------------- I body-centering ALL (hkl) [3-D] h+k+l = even F face-centering ALL (hkl) [3-D] h,k,l all even OR all odd C base-centering ALL (hkl) [3-D] h+k = even 2_1 screw along c row (00l) [1-D] l = even 3_1 screw along c row (00l) [1-D] l = 3n c-glide (perp b) zone (h0l) [2-D] l = even a-glide (perp b) zone (h0l) [2-D] h = even n-glide (perp b) zone (h0l) [2-D] h+l = even d-glide (perp b) zone (h0l) [2-D] h+l = 4n
為粉末採指紋:體心還是面心?
對一個立方粉末,這變成一招派對魔術。峰的位置遵守布拉格定律加上立方間距公式,所以 sin^2(theta) 正比於 h^2 + k^2 + l^2,一個我們可以叫作 N 的整數。把每種晶格容許的 N 列出來,你會得到三串認不錯的數列。簡單立方讓每個 N 都通過:1、2、3、4、5、6、8、9、...(7 缺席,因為沒有三個平方數之和等於 7)。體心晶格只留下 h+k+l 為偶:N = 2、4、6、8、10、12、14、16。面心晶格只留下同偶或同奇:N = 3、4、8、11、12、16、19、20。光是這串峰的順序,就在你還沒精修任何一個原子之前,先告訴你晶格是哪一種。
兩種最密堆積金屬一眼就分得開。體心的頭兩個峰坐在 N = 2 與 4,在 sin^2(theta) 上是乾淨的 1 : 2。面心的頭兩個坐在 N = 3 與 4,是 3 : 4 的比值,還有一個洩底的緊鄰對(先 111、後 200)、接著在 220 之前留一道空隙。一旦你認出了晶格,任一個峰就能還原尺寸:a = lambda times sqrt(N) / (2 sin theta)。這正是粉末指標化日復一日的家常本事——峰的位置給你晶胞與它的置心,而消光已經免費替你做了一半的工。
- 量出每個峰的角度 theta,並為每一個算出 sin^2(theta)。
- 把每個 sin^2(theta) 都除以最小的那一個;比值應該落在接近整數處——那個整數就是 N = h^2 + k^2 + l^2。
- 把 N 的數列對到一種晶格:全整數(除了 7、15、...)代表簡單立方;2、4、6、8、... 代表體心;3、4、8、11、... 代表面心。
- 把最小的 N 讀成它的 (hkl),再用任一個已指標化的峰,從 a = lambda times sqrt(N) / (2 sin theta) 求出晶胞邊長。
把指紋反過來讀,以及它的極限
現在來收成果。《國際晶體學表》為 230 個群的每一個,印出它完整的反射條件清單——就是我們對照卡上那些規則,為每個元素逐一算好。解一個結構,起手就是把這件事倒過來跑:你記下哪幾類反射出現系統消光(一個針對全部 hkl 的條件,加上任何像 h0l 這樣的區帶條件,再加上任何像 00l 這樣的排條件),然後去查這個組合。它把 230 種可能塌縮成一份短名單,有時甚至縮到單一個空間群。這正是幾乎每一次晶體結構鑑定真正的第一步。
要老實說清楚這枚指紋看得到與看不到什麼。消光只揭露平移對稱——置心、螺旋、滑移。純旋轉、鏡面與反演中心不帶平移,不留消光,因此對這項檢驗是隱形的。除此之外,繞射還會強加一個表觀中心(弗里德爾定律),把同一個勞厄群裡的中心對稱群與非中心對稱群糊在一起。結論是:消光給你一個消光符號,通常把範圍縮到少數幾個候選空間群,而不是一個。230 個裡只有大約五十個能單靠消光就唯一定住;其餘的還需要存活反射的強度、化學,有時還要靠反常散射打破弗里德爾定律,才能了結這場拉鋸。
在收束這一階之前,還有一個誠實的但書。在電子繞射裡,試片很薄、散射很強,所以電子束在穿過時不只反彈一次——這就是動力學散射。多重散射會悄悄把強度灌進一個 X 光或中子本會留成全黑的點(雙重繞射),於是一個運動學上的消光,在選區電子繞射圖裡可能看起來被填了進去。螺旋與滑移消光確實有一道真正的防線——即使在動力學條件下仍然存活的 Gjonnes-Moodie 暗線——而傾轉晶體能把真正的消光和雙重繞射的假象分開。至此,這一階完整了:從第一篇的螺旋軸與滑移面,穿過 230 個空間群、讀得懂的符號、以及韋科夫位置,一路走到直接從那些「永遠不來的峰」讀出晶體的平移對稱。