在先秦時代,人物擁有「複名」並不罕見,好像堯,名字為放勳,舜名字為重華;周天子以及不少春秋諸侯通常都是複名,例如晉文公名為重耳、齊桓公名為小白等等。但到了漢代,古人單名漸漸獨大,比如兩漢23位帝王都是單名,再數到三國眾多英雄,很難想出一個人是複名。
究竟為什麼「複名」在漢後漸漸少見?內地有學者也有做研究,從黃清敏的《漢晉人物單名現象試探》以及魏斌的《單名與雙名:漢晉南方人名的變遷及其意義》中能夠歸納出來。
據說法,有一種解釋是在西漢元始二年(公元2 年),漢平帝下詔說自己「箕子」之名「不合古制」,於是改為單名「衎」。這時,正是王莽專政年代,因而後人會說:「王莽令中國不得有二名」。不過,單名在那個年代已經盛行,這解釋並不合理。而漢昭帝一開始就叫復名「弗陵」,後來改成單名「弗」,原因是:「以二名難諱故」。即是說,皇帝如果叫復名,人們就要避諱兩個字。
所以為了方便群眾,帝王特地只用單名。但漢代及魏晉年代,除了用單名,也常選用「生面口」的字命名,如劉炟、劉肇、曹叡、司馬熾等等,也是方便避諱。皇帝只用單名,也許能令官僚等效仿,做法也有利於一家之中避家諱。
那為什麼不一早就實行,要去到漢朝,君主才意識到要為群眾避諱?原來事實上,早在秦前,本來不需要避這麼多諱的。先秦著作《禮記·曲禮上》載:「禮不避嫌名,二名不偏諱。」意思是避諱不用管同音字和讀音相近的字;一旦是複名,只要不把兩個字同時使用就算避諱,如孔子母親叫「徵在」,孔子說「徵」時就不說「在」,說「在」時就不說「徵」。
但到了秦漢,帝王為維護中央集權威嚴,避諱變得遠比古制更嚴苛。音近字也免不了敏感,例如漢武帝叫劉徹,於是車轍也只好叫「車通」。不單是皇帝的名諱要避,皇族乃至外戚的名諱也得避。據了解,今時今日的壽張縣,一度叫壽良縣,是因東漢為避光武帝叔父的名諱而改稱壽張;孝元皇后王政君的父親名禁,當時就把「禁中」改稱「省中」來避諱。不過,單名現像只是上層社會上會有,平民仍然是單名、復名皆有。東漢時期留下來的買地石券,平民都同時存在單名和復名。
到了唐代以後,復名又變多了,這個就與東晉後期人名的一種特殊現象有關。當時,上流社會流行一類特別的複名:單名加上一個虛字。例如在單名後邊加個「之」,在單名前邊加個「道」,加個「僧」。我們最熟悉的有東晉書法家王羲之的「羲」加「之」,虛字無需避諱,王羲之的兒子及孫子,祖孫三代都帶有「之」字。
關於「之」字的意義,現代歷史學家、古典文學研究家、語言學家陳寅恪指出,這是天師道徒的習慣,屬於信仰標識,其他如「道」及「僧」也很類似。但東晉南朝人士,用上這樣的複名的另外原因,是加進去的一個字有別的內涵。據《晉書》記載,大將軍桓豁有20個兒子,取名時都加了一個「石」字,如桓石秀、桓石虔,這是為了切合前秦的預言:「誰謂爾堅石打」。
及後,加給單名的虛字類型變得更加豐富,少了信仰色彩,帶有儒家道德涵義則增多起來,不少多人名都加入了「仁」、「孝」等字,當中,南朝劉宋武帝劉裕,為七個兒子取名都帶個「義」字。