北嶽辨

維基文庫,自由的圖書館
北嶽辨
作者:顧炎武 
本作品收錄於《顧亭林文集/1

古之帝王,其立五嶽之祭,不必皆於山之巔;其祭四瀆,不必皆於其水之源也。東嶽泰山於博,中嶽泰室於嵩高,南嶽灊山於灊,西嶽華山於華陰,北嶽恒山於上曲陽,皆於其山下之邑。然四嶽不疑而北嶽疑之者,恒山之綿亙幾三百里,而曲陽之邑於平地,其去山趾又一百四十里,此馬文升所以有改祀之請也。

河之入中國也自積石,而祠之臨晉;江出於岷山而祠之江都;濟出於王屋而祠之臨邑,先王制禮,因地之宜而弗變也。考之《虞書》:「十有一月朔,巡狩至於北嶽。」《周禮》:「并州其山鎮曰恒。」《爾雅》:「恒山為北嶽。」注並指為上曲陽。三代以上雖無其跡,而《史記》云:「常山王有罪遷。天子封其弟於真定,以續先王祀,而以常山為郡。」然後五嶽皆在天子之邦。《漢書》云:「常山之祠於上曲陽。」應劭《風俗通》云:「廟在中山上曲陽縣。」《後漢書》:「章帝元和三年春二月戊辰,幸中山。遣使者祠北嶽於上曲陽。」《郡國志》:「中山國上曲陽,故屬常山。恒山在西北。」則其來舊矣。《水經注》乃謂此為恒山下廟,漢末喪亂,山道不通,而祭之於此。則不知班氏已先言之,乃孝宣之詔太常,非漢末也。《魏書》:「明元帝泰常四年秋八月辛未,東巡,遣使祭恒嶽。太武帝太延元年冬十一月丙子,幸鄴。十二月癸卯,遣使者以太牢祀北嶽太平真君。四年春正月庚午,至中山。二月丙子,車駕至於恒山之陽,詔有司刊石勒銘。十一年冬十一月,南征,徑恒山,祀以太牢。文成帝和平元年春正月,幸中山,過恒嶽,禮其神而反。明年,南巡,過石門,遣使者用玉璧牲牢禮恒嶽。」夫魏都平城,在恒山之北,而必南祭於曲陽,遵古先之命祀而不變者,猶之周都豐鎬,漢都長安,而東祭於華山,仍謂之西嶽也。故吳寬以為帝王之都邑無常,而五嶽有定。歷代之制,改都而不改嶽。太史公所謂「秦稱帝都咸陽,而五嶽四瀆皆並在東方」者也。《隋書》:「大業四年,秋八月辛酉,帝親祠恒嶽。」《唐書》定州曲陽縣:「元和十五年,更恒嶽曰『鎮嶽』,有嶽祠。」又言:「張嘉貞為定州刺史,於恒嶽廟中立頌。」予嘗親至其廟,則嘉貞碑故在。又有唐鄭子春、韋虛心、李荃、劉端碑文凡四,範希朝、李克用題名各一,而碑陰及兩旁刻大曆、貞元、元和、長慶、寶曆、太和、開成、會昌、大中、天祐年號某月某日祭,初獻、亞獻、終獻某官姓名凡百數十行。宋初,廟為契丹所焚。淳化二年重建,而唐之碑刻未嘗毀。至宋之醮文碑記尤多,不勝錄也。自唐以上徵於史者如彼,自唐以下得於碑者如此,於是知北嶽之祭於上曲陽也,自古然矣。古之帝王望於山川,不登其巔也,望而祭之,故五嶽之祠皆在山下;而肆覲諸侯,考正風俗,是亦必於大山之陽,平易廣衍之地,而不在險遠曠絕之區也明甚。且一歲之中,巡狩四嶽,南至湘中,北至代北,其勢有所不能。故《爾雅》諸書並以霍山為南嶽,而漢人亦祭於灊;禹會諸侯於塗山。塗山,近灊之地也。《水經注》曰:「上曲陽故城,本嶽牧朝宿之邑也。古者天子巡狩常山,歲十一月至於北嶽,侯伯皆有湯沐邑以自齋潔。周衰,巡狩禮廢,邑郭仍存。秦以立縣,縣在山曲之陽,是曰曲陽。有下,故此為上矣。」而文升乃謂宋失雲中,始祭恒山於此,豈不謬哉!五鎮惟醫無閭最遠,自唐於柳城郡東置祠遙禮,而宋則附祭於北嶽之祠。然則宋人之遙祭者,北鎮也,非北嶽也。

世之儒者,唐宋之事且不能知也,而況與言三代之初乎?先是,倪嶽為禮部尚書,已不從文升議,而萬曆中,沈鯉駁大同撫臣胡來貢之請,又申言之,皆據經史之文而未至其地。予故先至曲陽,後登渾源,而書所見以告後之人,無惑乎俗書之所傳焉。

(馬文升疏曰:「《虞書》:肇十有二州,蓋每州表山之高大者以為鎮,而恒山為北嶽,在今大同府渾源州。歷秦、漢、隋、唐俱於山所致祭。五代河北失據,宋承石晉割賂之後,以白溝為界,遂祭恒山於真定府曲陽縣,文之曰:地有飛來石。不經甚矣。然宋都汴,而真定為其北邊,是亦不得已權宜之道也。迨我太祖高皇帝建都金陵,視真定為遠,因循未曾厘正。文皇帝遷都北平,真定反在都南,當時禮官不能建明,尚循舊陋,禮官罪也。夫《周禮》曰:恒山為并州鎮,在正北。《一統志》曰:恒山在渾源州南二十里。又渾源廟址猶存,故老傳說,的的不虛,乞行禮部再加詳考。如臣言是,行令山西並大同巡撫官員斟酌工費,於渾源州恒山廟舊址增修如制,以祀北嶽。撰文勒石,昭示將來。」渾源之說始於此。自成化以前,初無此語。端肅似未曾見十七史者,道聽塗說,一至於此。渾源之廟並無古跡,不知作於何時。如泰山、華山之上亦各有宮,而大廟俱在其下,特曲陽相距稍遠,而今制又分直隸、山西二轄,人遂因此疑之。疏中所云「故老傳說」,正足見其不出於史書,而得諸野人之口。後人知其不通,乃更為之說云:舜北狩,大雪,止於曲陽。有石飛來,因而望祀。不知此誰見之而誰傳之?蓋又文升之蛇足也。)

本作品在全世界都属于公有领域,因为作者逝世已经超过100年,并且于1929年1月1日之前出版。

Public domainPublic domainfalsefalse