李 亮
(中国科学院自然科学史研究所,北京 100190)
《明史》自顺治二年(1645)下诏纂修,至乾隆四年(1739)刊刻颁行,历时九十五年,可谓是历久而成。因纂修过程前后经历四次开馆,五任监修,七易总裁,馆务纷更导致其内容和体例屡遭变动。作为《明史》中重要的一部分,其历志的纂修过程及版本流变也相当复杂。对此,钱宝琮[1]、朱文鑫[2]、薄树人([3],页1421—1422)、韩琦[4]、杨小明[5]、江晓原[6]等人皆有所论述。现存《明史》历志的版本主要有五种,包括通行的王鸿绪《横云山人明史稿》本[注]该本于雍正元年(1723)由王鸿绪之子王图炜进呈,共计三百一十卷。和张廷玉《明史》定稿本[注]该本于雍正十三年(1735)进呈,共计三百三十六卷,乾隆四年(1739)校阅刊刻完毕。,以及中国国家图书馆藏万斯同《明史》本[注]该本于康熙四十一年(1702)由熊赐履进呈,共计四百一十六卷,通常认为是万斯同之稿。、中国科学院文献情报中心(原中国科学院国家科学图书馆)馆藏黄百家《明史历志》本和汤斌《潜庵先生拟明史稿》本[注]下文分别简称王鸿绪本、张廷玉本、万斯同本、黄百家本和汤斌本。。
《明史》历志定稿本的内容大致分为三大部分:历法沿革、大统历法和回回历法。以上五种版本,历法沿革为各版所共有,大统历法仅存于前三种,回回历法则仅存于前两种,这些版本在篇幅和内容上皆有差异。本文在前人研究基础上,通过比较《明史》历志的不同版本,以及四库本梅文鼎《大统历志》和南京图书馆藏抄本《回回历法》,重新梳理《明史》历志编修体例的变更,并重点对大统历法和回回历法的编修方法和特点作进一步分析与讨论。
《明史》历志编修正式起始于康熙十八年(1679),时任职纂修的施闰章(1619—1683)与梅文鼎(1633—1721)为同里,故嘱梅文鼎为《历志》撰稿[7]。梅文鼎当时授经官署,无暇北上,只得撰《历志赘言》一卷,表明自己的态度[8]。他指出《历志》的纂修应该做到弥补《元史》授时历的不足,备载回回历法全部内容和西洋新法之缘起,并详细阐述朱载堉的历学,以及附录袁黄(1533—1606)、唐顺之(1507—1560)、周述学等人的历学工作,这些建议在最初纂修中也基本都得到了采纳[注]多年后,梅文鼎“始见汤潜庵先生所裁定吴志伊之稿,大意多与鼎同”,产生了“不知其曾见余所寄愚山(施闰章)《赘言》与否?”[8]的疑惑。。
《明史》历志第一份史稿为吴任臣(1628—1689)撰写,汤斌(1627—1687)裁定之稿,大约成于康熙二十二年(1683)[4],汤斌升任史馆总裁后,分任天文志、历志、五行志等卷的删改工作,至1684年已经删改《天文志》九卷、《历志》十二卷[9]。汤斌裁定稿,于1688年刊印,即《潜庵先生拟明史稿》本[10]。汤斌去世后,徐善、刘献廷(1648—1695)、杨文言,黄宗羲(1610—1695)各有所增订[8],这些工作应当以补充历法沿革和文字修饰为主,其中又以黄宗羲的贡献最为突出[注]据《黄梨洲答万贞一论明史历志书》记载,万言曾受徐元文和徐乾学等人之托,将《明史》历志新的稿本交由黄宗羲审定,黄宗羲欣然应允。当时稿本的前卷,即历议(《明史》定本称其为“历法沿革”)部分主要源自《明实录》,崇祯朝则依据《治历缘起》,历法的正文则为大统历、回回历和西洋法三部历法。[11]不过黄宗羲似乎对稿本不太满意,认为内容过于简略,无所发明。除了补充完善稿本,黄宗羲还给出了自己的一些建议。例如,如何处理算表等内容,这些对此后《明史》历志的纂修皆产生了极大影响,后文对此还将详细讨论。此外,万言希望黄宗羲根据稿本“去繁冗,正谬误”,但黄宗羲显然有其自己的考量,不但未能去繁冗,反而补充了不少内容。黄宗羲强调历志“关系一代之制作,不得以繁冗而避之也。以此方之前代,可以无愧”[11]。。
《明史》历志经黄宗羲审定后,又多次经过梅文鼎和黄百家(1643—1709)的不断补充和完善[注]康熙二十三年(1684),汤斌在其删改《历志》不久后,即请梅文鼎校订,梅文鼎曾言“甲子,潜庵汤公屡辱询及,欲以《明史》历志属为校定”[13],而梅氏也确实见到汤斌裁定之稿。不过多年后,梅文鼎入京,才再次受徐元文之邀,摘出史稿讹舛数十处。直到徐元文去世(1691)后,才得知他所修改之稿,即黄宗羲稿本。。康熙二十九年(1690)黄百家进京编写《明史》历志,以授时表缺商之于梅文鼎,梅文鼎不但通过《历草》和《通轨》予以补充,还据此完成《明史历志拟稿》三卷,其内容应该就是对大统历的补充。
此后,《历志》稿本又经黄百家增补,逐渐形成了目前的万斯同本,并最终由黄百家于康熙三十年(1691)四月既望,纂成送上。不过,黄百家完成《历志》后,因呈送史馆的清册遗失,自己又未留底稿,于是在1699年秋冬,又奉命重纂[14]。而这次重修,内容则已接近于王鸿绪的《明史稿》本[注]另据邵友镰修、孙德祖等纂《余姚县志》卷二十三,黄宗羲传记载“百家,字主一,能世其学,尝入史馆,成史志数种,今王鸿绪《明史稿》所载《天文志》《历志》,即百家稿本也。”。该版本内容上除了删除冗繁,简化了历议部分外,还略微调整大统历的目次,并且完善了回回历法[15]。《明史》历志最终属稿者则为梅瑴成[注]梅瑴成在《上明史馆总裁》书中指出“《历志》半系先祖之稿,但屡经改窜,非复原本,其中讹舛甚多,凡有增删改正之处,皆逐条签出”[16],梅瑴成还作《明史历志论》《明史大统论》和《明史回回历论》。,其增删改正的建议基本被张廷玉《明史》定本所采纳[注]其中,《明史历志论》为定本“历法沿革”之前部分,《明史大统论》为定本“法原”开篇的第一段,《明史回回历论》为定本回回历法正文之前的两段。值得注意的是,从梅瑴成的记载可以看出,当时似乎有将《历志》和《天文志》合并的意向,但他坚决反对,认为“有明二百七十余年,沿革非一事,造历者非一家,皆须入志。虽尽力删削,卷帙犹繁。若加入天文之说,则恐冗杂,不和史法”[16],《明史》历志因此才得以保持独立成篇。。
总之,《明史》历志书出众手,除了早期吴任臣等人的撰写和增订外,以黄宗羲、黄百家父子,梅文鼎、梅瑴成(1681—1764)祖孙的贡献最多。虽然纂修过程中很多细节已不得而知,但现存五种《明史》历志,还是为我们了解其纂修过程和体例变更提供了不少线索。
首先,在如何处理不同历法这一问题上,《明史》历志前后曾做过多次调整,参见表一。
表1 不同版本《明史》历志对各历法处理方式的比较
从上表可以看出,最初汤斌本打算以元统的《大统历法通轨》(后简称《通轨》)作为大统历编修的依据,但之后经黄宗羲和梅文鼎建议,除了借鉴《通轨》,还补充了弧矢测圆和三差算法等阐述历法原理部分的内容。至定本时,则不再提及《通轨》,而是改为强调“述立法之原,以补《元志》之未备”。
回回历法的编修,似乎更加曲折。最初计划列于大统之后,以备省览。但实际撰写中可能遇到了困难,所以至万斯同本时,认为其“未尝施用,无庸俱载”,准备放弃。至王鸿绪本,才又重新访求,纳入《历志》。西洋法最初也是计划咸列于后,然而考虑到西洋法实际就是清朝的时宪历,已经另有成书,所以改为“采其议论纲要与古法不同者”,以备参考,最终仅是“略撮其议论”。
其次,从历议部分的编修来看。五种版本经历了不断增订补充,然后又删繁去冗的过程[注]从篇幅上看,汤斌本历议约三万字,黄百家本和万斯同本略有增补。王鸿绪本则删繁去冗,为两万余字,张廷玉本进一步简化,已不足一万五千字。。汤斌本历议最初为三卷[注]第一卷主要从明初历法发展叙述至朱载堉议历,第二卷重点记载邢云路议历,第三卷为崇祯年间的历法争论。这些内容,正如黄宗羲所言,主要来源于《明实录》和《治历缘起》。,又因黄宗羲主张历志“关系一代之制作,不得以繁冗而避之”,所以此后黄百家本和万斯同本,比汤斌本又略有补充。
黄百家本合汤斌本前两卷为一卷,在其基础上补充了一些史实[注]如黄百家本增加洪武“十八年设观象台于鸡鸣山”“二十年改监令、监丞为监正、监副”,徐光启和李天经历次进呈新法卷数和详细书目,崇祯八年正月月食测验,以及新法完成后“帝以新法书器虽完,疎密尚需考验,谕天经同监局再虚心详究,务期画一”等内容。另外,黄百家本还多了介绍朱载堉历法“论候极”部分和魏文魁《历元》新法密率的内容,以及前文已提到的黄宗羲于文末添加的按语等。。而汤斌本在论述周述学《大统万年通议》时,一些内容曾以其“余议历甚多,不具录”而被省略,这些在黄百家本中也得以补充。
万斯同本的历议和黄百家本的差异则较小,除了前文比较的对各历法处理方式不同外,主要对结尾部分做了改动[注]如黄百家本历议结尾为“西洋新法,其初与回回历同传于厄日多国多禄某。故其立法……。其后西洋则有亚而封所、歌白泥、麻日诺、未叶大、第谷辈更加密焉。及入中国徐光启以为闰日不闰月,必不可行,于是镕西方之材质,入大统之型模,而《崇祯历书》屹然出焉。”万斯同本则改为:“西洋新法,初与回回历同传,故其立法……。而西洋多禄某更为穷测详推,其后亚而封所、歌白泥等继之,益加精密。逮入中国,又通融中法,如复置闰月之类,成书数百卷,亦古今来创事也。”。王鸿绪本则完全采用了万斯同本,只是将结尾处“亦古今来创事也”改为“而授时、大统之说渐以绌矣”。至于张廷玉本,其历议结尾则有了较大调整,突出强调了中土畴人子弟分散和西学中源说。
另外,从篇幅上看,相比黄百家本和万斯同本,自王鸿绪本始,历议部分做了较大调整,除了剔除明代历法发展中的一些较小事件外,还对邢云路、魏文魁等人的历法内容和事件做了大幅删减,文字也更为精简,总篇幅少了三分之一。张廷玉本又在王鸿绪本的基础上进一步简练,并将历议部分由两卷进一步合为一卷,命名为“历法沿革”。
不过,虽然篇幅上被压缩,张廷玉本记载历法沿革的事件却比王鸿绪本还要多。一些存于汤斌本、黄百家本和万斯同本中的内容,虽然在王鸿绪本中被删除,却在张廷玉本中得到了恢复[注]如洪武十年,帝与群臣论天与七政之行;洪武十五年,诏译《回回历书》;成化十年,擢童轩为太常寺少卿,掌监事等内容。。这也说明,《明史》历志版本的流变,不是单线的发展和衍生,其后期的版本可能同时借鉴了此前的各种版本。
明代官方历法为大统历,同时又参用回回历法,因此《明史》历志自然无法回避这两部历法。由于史书在题材和篇幅上的限制,使其无法直接照搬历法著作,所以历代编撰《历志》,通常都需要对各历法的内容进行一定的处理。从《明史》历志的编修来看,其对大统历和回回历法在术文和算表上的处理,既有相似之处,又有着明显的差异。
《明史》大统历最初以元统的《通轨》为断,由于梅文鼎和黄宗羲等人强调“明用大统,实即授时”,《明史》历志实际成了“补《元志》之未备”,这也使得《明史》历志和《通轨》有着本质的区别。
首先,在体例上。《通轨》为了布算的方便,以历日、太阳、太阴、交食、五星和四余等计算功能划分为六卷,并将立成表分散于各卷中。而《明史》将大统历分为法原、立成和推步三部分,分别叙述其原理、算表和算法。并确定为法原之目七、立成之目四、推步之目六,共计十七目[注]历志法原的目次,曾略有变动。如梅文鼎《大统历志》法原七目为:句股测望,弧矢割圆,黄赤道差,黄赤道内外度,白道交周,日月五星平立定三差,里差刻漏。区别在于是否包含里差刻漏,以及平立定三差等部分是否拆分。如万斯同和王鸿绪本皆将里差刻漏置于推步部分,张廷玉本则重新置于法原部分,并将“太阳太阴平立定三差”和“五星平立定三差”合并为“日月五星平立定三差”一目,实际上是改回了梅文鼎原稿。。
从大统历的术文来看,各版本中,梅文鼎的《大统历志》较为原始,该书在四库中被分为八卷[注]如何绍基《(光绪)重修安徽通志》称“《大统历志》十七卷,梅文鼎著”,因《四库全书总目》言“其书旧不分卷,今以所立十七目,一目定为一卷,以便循览焉。”。前五卷对应《明史》历志中的法原和立成部分,后三卷实际取自梅文鼎的《历学骈枝》[注]考《历算全书》本《历学骈枝》为四卷,后梅瑴成整理《梅氏丛书辑要》时,将《平立定三差详说》补为卷五,因其“并为阐明授时精义之书”。据梅文鼎《勿庵历算书记》记载“《历学骈枝》二卷”,因“倪竹冠先生受《交食通轨》,归与文鼐、文鼏两弟习之,稍稍发明其所以立法之故,并为订其讹误,补其遗缺,得书二卷以质倪师”,所以梅文鼎虽然在康熙元年(1662)就已经完成《历学骈枝》,但当时应该只是包括卷二《日食通轨》和卷三《月食通轨》部分,属于他学习倪师所受《交食通轨》的心得,其他内容,如卷四立成部分和卷五平立定三差部分应当是此后补入的。。书中还有很多梅文鼎的按语和其补充的内容,如包括《元志》中的“四海测验”和大统历依授时历推算的“北京日出入时刻昼夜长短”等,不过这些内容在此后版本中大多被删去,所以四库本梅文鼎《大统历志》可能和梅文鼎最初所撰《明史历志拟稿》内容较为接近。自万斯同本开始,《明史》大统历的内容已经较为完善。王鸿绪本除对法原开篇部分略作调整外,基本沿用了万斯同本。张廷玉《明史》定本,则在王鸿绪《明史稿》本的基础上,在术文上作了一定的精简,如简化了部分常数[注]如“半岁周”“气象限”“气策”“弦策”“闰限”“转中”“中限”“初限”“交中”“历中”等很容易由其他常数推出或取代。,合并了一些步骤[注]如“推正交距冬至加时黄道积度”“推正交月离黄道宿次”合为“推正交距冬至加时黄道积度及宿次”;“推月道与赤道正交后积度”,“推初末限”合为“推月道与赤道正交后积度并入初末限”;“推月道定积度”“推月道宿次”合为“推月道定积度及宿次”;“推晨距度”“推更差度”合为“推晨距度及更差度”;“推泛差”“推增减总差日差”合为“推泛差及增减总差日差”。此外,“推定朔弦望入盈缩历”“推定朔弦望加时中积及盈缩定差”调整为“推定朔弦望入盈缩历及盈缩定差”和“推定朔弦望加时中积”。,以及删除部分小字注释等。
回回历法方面,除了王鸿绪本和张廷玉本,南京图书馆藏抄本《回回历法》也与《明史》历志的纂修有关。据陶培陪研究,南图本回回历法不是根据此前某个版本简单修改而成,编者除了参考了多个本子,还亲自查访补充了一些内容[19]。从内容上看,南图本回回历法与王鸿绪本最为相似,也更为原始,可以判定后者即由此衍生而来。这三种版本的大致内容对应如下,见表二:
表2 《明史》历志有关回回历法版本内容比较[注]南图本“推步方法”后还含有一个“附”,由“附求中国闰月”“附推崇祯二年己巳五月朔己酉日蚀”和“附推康熙九年庚戌十月二十五日土星经度”三部分组成。
这三种版本的术文差别主要有以下几个方面:
首先,三种版本的“序言”部分并不完全相同。南图本的序言主要叙述回回历法在明代编撰和修订的过程,其前半部分与吴伯宗“天文书序”大致相同,后半部分与贝琳《回回历法》的志基本一致。其序言最后记有“凡交食、凌犯与中历参校推步,成化六年具奏备补,十三年南京钦天监监副贝琳传之,而书始备,崇祯二年设回回局,盖终有明之代未尝废也。”这似乎是对万斯同本中“《回回历》前代仅存其名,未尝施用”这一观点的更正[19]。王鸿绪本的序与南图本基本类似,都提到“(洪武)十八年(1385)西域又献土盘历,名经纬度,历官元统译汉算”,都认为《回回历法》的底本中包括吴序中所说的收缴自元都的天文学书籍,也包括贝琳跋中所说的洪武十八年西域所献土盘历,张廷玉本则在序言中没有提及贝琳。
其次,“推步方法”部分,南图本和王鸿绪本相差甚微,南图本仅多了几处按语和少量的小注。相比而言,张廷玉本则与南图本差异更大一些,前者除了术文更加简练,还删除了多处注释。因此从内容上看,王鸿绪本承袭自南图本,而张廷玉本则是在王鸿绪本的基础上完成。南图本在“推步方法”上最大的贡献,是补充了“加次法”[注]由于《回回历法》的立成表采用的是回阴历日期编排,因此需要一种将回历阳历日期转换为回历阴历日期的方法,以方便借助回历阳历来完成从中国传统历法日期到回阴历的换算,这种方法被称为“加次法”。,弥补了此前回回历法无法入算的缺陷。依照该书作者的说法“加次法系彼科所秘,故诸本皆所不载,然不得其法,此书无从入门,特访补之”[20]。这一方法也被此后王鸿绪本和张廷玉本所完全采用。
最后,南图本和王鸿绪本在“立成造法”之前,还有四篇短文,张廷玉本中则将其删除。这四篇短文分别为“日度说”“月度说”“五星经度说”和“五星纬度说”,主要从中国传统历法的角度去解释回回历法,属于会通传统历法与回回历法的工作,陶培培认为这四篇文章为黄宗羲所作[19]。实际并非如此,因为在此前周述学的《神道大编历宗通议》[21]中就包含有这四篇文章,说明南图本和王鸿绪本只是引用了周述学著作中的部分内容。
至于南图本回回历法具体参照了哪些著作,目前已不得而知。但至少还包括贝琳本《回回历法》和薛凤祚辑本《回回历法》。前者为成化十三年(1477)南京钦天监监副贝琳等奉勅编修,后者则收录于薛凤祚的《历学会通》中。《历学会通》除了介绍西方最新的天文学知识和算表外,还对明代所使用的大统历和回回历法进行了收录。其中回回历法部分署名为“监本回回历,青薛凤祚校”,可见该本应是薛凤祚在钦天监使用的某个回回历法版本上整理而成。但薛凤祚自己却根据西方算表的格式对书中的算表进行了重新处理,对此后文还将详细讨论。
薛凤祚认为“西域历在西洋之前,亦犹授时之有纪元、开禧等历也”,回回历法在清代虽然被废弃使用,“新法改政颁布,当不需此,然诸说之所由来与沿革之所自起,文献无征,足见疑端”[22],所以他出于保存资料的目的,将其备录于《历学会通》之中[注]从薛凤祚辑本《回回历法》的中心差算表可以看出,该书中已经使用了“旋转对称”结构,不过其算表的“旋转对称”比较简约,风格大致介于《崇祯历书》《西洋新法历书》和之后的《历象考成》及《历象考成后编》之间。。从内容上看,相比贝琳本,南图本更接近薛凤祚辑本。如南图本与薛凤祚辑本有以下类似特征:将“求泛差”和“求加减定差”两节合并为“求泛差定差”,没有“求中国闰月”“黄道南北各像内外星经纬度立成”和“凌犯入宿图”等内容。
同时,相比贝琳本和薛凤祚辑本,南图本也做了不少调整,如删去了“月分本音名”“七曜本音名”这些用处不大的内容。此外,加入了“引数”“比例法”这些西洋新法中才使用的新术语。为了说明几种版本术文的差异,下面以五星经度中“求第一加减差”为例,以示比较(见表三)。
表3 几种回回历法版本五星经度“求第一加减差”术文比较
由此可见,作为王鸿绪本所承袭的南图本,其内容来源较为多元,加入了作者访求和自己独创的一些内容,张廷玉本则在术文上,又要精炼很多。
《明史》历志是首次,也是唯独一次使用图的历志,后人对此评价也颇高。金毓黻就曾指出“《明史》之佳,本非一端……前史有志而无图,《明史·历志》则增图以明历数”([23],页167),朱文鑫亦言“志之有图,尤为《明史》之特创,盖非图不足以算理”[2]《明史》历志中的图集中于“法原”部分,主要用于解释弧矢割圆,黄赤道推变,以及盈缩招差术等内容。梅文鼎也指出,这些方法为“历家测算之本,非图不明,因存其要者数端”[24]。
事实上,这些图也并非全是梅文鼎独创,他在参与纂修《明史》历志之前,就曾撰写《元史历经补注》和《郭太史历草补注》各两卷。其中前者是因“叹授时历法之善,但《历经》简,古作史者又缺立成,初学难通,因稍为图注,以法其意”[8],后者是因担心“畴人子弟皆以元统之《通轨》入算,逐末忘源”,而郭守敬之著作,当时仅存《历草》一卷,并且该书“有算例,有图,有立成,《历经》立法之根,多在其中”[8]。可见,这些图主要来自《历草》,后经梅文鼎补充注释而成。最初的《大统历志》中,这些图下还标有“补图说”[24]字样,只是此后的各本中,该字被删去。而《大统历志》中另有“日食图”“月食三限之图”和“月食五限之图”,因与“法原”部分关系不大,则此后未被采用。
此外,在《明史》定本之前,各版本中皆有“盈缩招差图”,但并没有“盈缩招差图说”,这部分则是后来梅瑴成据梅文鼎的《平立定三差说》补入。
相对于图,如何处理算表,一直都是《明史》历志纂修中面临的难题,而这个问题也长期困扰着历代《历志》的编修。由于官方正史和历法著作在题材和内容上的差异,以及篇幅上的限制,因此只能对其内容进行取舍和压缩,尤其是篇幅巨大的算表部分。黄宗羲在参与《明史》历志纂修之初就注意到这一问题,并指出:
然前代顾亦有未尽善者。前代历志,虽有推法,而立成不能尽载,推法将焉用之?如元之授时,当载其作法根本,令后人寻绎端绪,无所藉于立成,始为完书。顾乃不然,读其《历志》,又须寻其专门之书,而后能知历。是则历志无当于历也。……作者之精神,尽在于表,使推者易于为力。今既不可尽载,而徒列推法,是则终于墙面而已。[11]
黄百家后来也指出:
昔人作历推步,全恃立成,立成不载,何从入算?故虽具文,《历志》直为废物耳。……作表之法,以简要为体。一载立成,排比算数,为文浩繁,不可胜载。不载立成,则又昧漏全历之旨。二者抉择诚有甚难。……既名《历志》,则当使读此志者,使能明达造历之旨,且即可据以入算,使此志有可用,方不至为具文废物,则务简之说,不必执也。[15]
黄氏父子认为,如果不载立成,读者将无法直接使用《历志》,其利用价值将大打折扣,但算表卷帙浩繁,不可胜载。于是黄宗羲提出将“作表之法,载于志中,使推者不必见表,而自能成表,则尤为尽善也。”[11]黄百家此后则继承了黄宗羲这一理念。
有研究表明,《明史》历志中将回回历法的前十份立成表以“立成造法”取代,即与黄百家的建议有关[19]。因为黄百家认为“回回历昔与西洋历同传于厄日多国。其五星纬度,中历之所未有也,精神全在立成。顾立成甚多,今亦约束使简,并各剔注其造立成之由,使览者焕然明白,便可按数目排也”。观南图本《回回历法》,不仅完整地保存有前十份平行立成表,同时每份立成表后面又附有注释,相当于各表的立成造法。此后《明史》各版本,则只存其立成造法,删去了这些立成。
事实上,黄宗羲将“作表之法,载于志中”的想法,最终不仅实施于回回历法,也运用于《明史》大统历法中,除了有专门的“立成”部分,大统历法在“法原”部分也提供了太阳盈缩、太阴迟疾等“布立成法”。这些大统立成除了源于《元史》授时历,还有来自《历草》和《通轨》[注]据梅文鼎记载“主一方受局中诸位之请,而以《授时》表缺,商之于余,余出所携《历草》《通轨》补之,然写本多误,皆手自步算,凡篝灯不寝者两月,始知此事之不易也。”[8]。
梅文鼎为了大统历算表的编算付出心血颇多,考其《大统历志》署为“大统历依授时立成法”,记载有立成和“布立成法”,并且他自己还补充有“勿庵补求盈缩末日法”“勿庵补求限数法”“查表捷法”等。此外,梅文鼎还访求有钦天监的部分资料,录有“钦天监秘本”并附“歌曰”,并引用《高丽史·历志》中部分内容。甚至为了检验自己步算的算表,他还设计有“覆验法”。不过,除了立成和“布立成法”,其他这些内容在之后的《明史》历志各本中皆未收入。
《明史》大统历的立成,自万斯同本之后,变动不大,但仍有一些调整。如万斯同本和王鸿绪本“步气朔”部分有“朔策钤”“转终钤”和“交终钤”几个立成表。由于这几份表的原理较为简单,张廷玉本为节约篇幅,将其删除。张廷玉本还将“黄赤道相求弧矢诸率立成”分为上下两表,并且简化“黄道每度去赤道内外及去北极立成”,由九列改为六列[注]减少了“赤道小弦”“背弦差”“内外度差”几项。,同时张廷玉本还在四余部分增加了“紫气宿次日分立成”“月孛宿次日分立成”和“罗计宿次日分立成”,并且将“四余度率日”放到前面的四余常数中。
另外,值得注意的是,在《明史》历志的多次纂修中,大统历的部分立成实际是经历了多次重新步算。以木星立成中某条数据为例,其在《通轨》中为“加一度五十九分”,度之后仅有两位数字,到了万斯同本和王鸿绪本成为“盈一五九零零八四”,张廷玉本则为“盈一五九零零八四八一”,位数分别增加至六位和八位。即随着时间的推移,算表的位数有了明显增加,甚至超过了当时使用的西洋算表。这种位数的增加,对历法的精度并没有实质的影响,尤其在大统历已经废止之后,完全多此一举。而这样操作的目的,可能是为了让传统历法在与西法的比较中,至少在算表上不至于显得太过粗略[25]。因为徐光启此前就批评大统历法“五星一节比于日月倍为繁曲,汉以来治历者七十余家,而今所传《通轨》等书,其五星法不过一卷。以之推步,多有乖失。”[注]参见《治历缘起》崇祯五年四月初四日奏疏“礼部尚书兼翰林院学士协理詹事府事加俸一级督修历法臣徐光启谨题,为钦奉明旨恭进第三次历书事”。
《明史》历志算表的另一个特点是,回回历法的算表深受西洋算表的影响,并做了相应改造。
首先,查表方式和数据书写已不同于传统算表。如南图本《回回历法》第一份立成表“日五星中行总年立成”标题下有小字注曰:
原本各项宫度分秒本行直书,今依西洋表法,另列于直次行,横查之。每格分两位,右为十,左为单,约法也,余仿此。[20]
也就是说,表的内容由传统的“直书”改为“横查”,同时原来的各项数据,如原本“某宫某度某分某秒”的文字书写方式,也被分开为高次位和低次位,用数字表示,并置于不同格中,其中高次位置于右边,低次位置于左边。
其次,表格采用了“旋转对称”结构[注]“旋转对称”结构类似现代使用的三角函数表,可两个方向读取。由于《回回历法》的中心差算表十二宫中的前六宫和后六宫的数据对称,所以采用这种结构编排算表可以节省一半的篇幅。,这种结构为西洋算表所常用,其特征是表格前后两部分的数据对称,可以从两个不同的方向读取(见图一)[26]。
图1 贝琳本(左)和张廷玉本(右)《回回历法》“太阳加减立成”比较
这种特征及其使用目的在《明史》历志中也有交代,如“太阳加减立成”之前小注记载:
自行宫度为引数,原本宫纵列首行,度横列上行,每三宫顺布三十度,内列加减差,又列加减分,其加减分乃本度加减差与次度加减差之校也。今去之,止列加减差数,将引数宫列上横行,度列首直行,用顺逆查之,得数无异,而简洁过之,月、五星加减立成准此。[27]
由此可知,因为这种结构可以“得数无异,而简洁过之”,与其前十份立成表以“立成造法”取代的效果类似,可以压缩算表的篇幅,使回回历法的算表篇幅由此前贝琳本《回回历法》的四卷压缩为《历志》中的两卷。
事实上,首次将《回回历法》中的算表转换成“旋转对称”结构的是薛凤祚辑本《回回历法》。薛凤祚《历学会通》出版于1664年[28],要早于1723年和1739年的王鸿绪《明史稿》和张廷玉《明史》,也早于大致完成于十八世纪初的南图本《回回历法》。梅文鼎曾于康熙十四年(1675)借抄过此书,黄宗羲也曾受过薛凤祚历学的影响[29]。而薛凤祚将其《历学会通》中的回回历法,称为“监本回回历”,因当时回回历法还是彼科所秘,该书自然会被格外关注。
最后,与大统立成一样,回回历的部分立成也有拆分的现象,如王鸿绪本和张廷玉本将“经纬时加减差”立成分为“经纬加减差”和“时加减差立成”两个立成,并注有“经纬加减差立成,经纬时三差,本合一立成,今因太密,将时差分另列以立成”[30],这是为了刊印和阅读的方便。
《历志》的纂修自古就是史书编修的难点,正史中并非都有《历志》,能得到广泛认可的则更少。近人朱文鑫认为“天文为专门之学,非史家所能道其详”,而“苟无专家之助,惟有付诸嗣如”[2]。参与《明史》历志纂修的梅文鼎也指出“按史之有志,具一代之典章,事事征实,不可一字凿空而谈,较之纪传颇难”,而相比之下“至于天文、历法,尤非专家不能”[31],这应当也是他参与纂修的感受。
修史虽是史官之业,但《明史》历志的成功,自然也离不开黄氏父子和梅氏祖孙这样的专家之助。在参与《明史》历志纂修之前,如黄宗羲就著有《授时历故》,对授时历和大统历有着自己的认识和见解。以致多年后,后人在其《授时历故》序中也称“《明史》初稿,于大统历法先列法原,未必不由于此”[32]。黄百家以其家学入史局,先后两次为《历志》纂稿,自言“从来历学一道,世只案其板数,鲜能知其活理,惟先遗献昔尝于空山静夜,苦用十年之功,通悟中西三历之理,故百家得闻绪余耳”[15],自是承袭父业。
梅文鼎因随倪竹冠习大统历,而步入历算之途,早年就著有《历学骈枝》、《元史历经补注》和《郭太史历草补注》等,此后又有《历志赘言》和《明史历志拟稿》,“于《历志》之成,有发凡订补之功”([33],页2),其孙梅瑴成整理先祖之稿,对《历志》定稿亦贡献颇多。
可以说,《明史》历志书出众手,专家云集,历时纂久,卒成经典之作。朱文鑫评其“融贯古今,构通中西,史志中之别开生面而亦最重要者也。向之专习中法者,可由此而进窥西法之门径,而今之专习西法者,亦可由此而上溯中法之源流”[2]。
《明史》历志与前代相比,有其独特之处。首先,虽为大统历纂志,实则为补修授时历,而这与编修者的目的和动机有关。
事实上,万历年间就曾因“大明国史独无《历志》,岂非缺典之最大者”,而计划纂修《历志》,但当时史官却难于措手。究其原因,王应遴在天启三年(1623)的奏疏提到“万历二十二年间(1594)奉旨纂修正史,彼时以《历志》派与编修黄辉,辉曰:做得,成是几卷《元史》”[34],因为大统历沿袭授时,常被认为无所发明,故《历志》难以成书。而当时明朝很多人也因“我国家治超千古,独历法仍胡元”而尴尬。以致多年后,崇祯年间魏文魁改历仍旧强调“臣之法详加测候,考正历元,可以一洗胡元之陋”[35]。
《明史》历志正式纂修时,已入清多年,大统历早已废止,而改用西洋新法。时隔百年,这时的矛盾已由明末的夷夏之争,转为中西之争。如黄氏父子就担心“自今新法之历行,郭氏之术势将绝传于后世矣!”,并强调“一代之制作尚不忍其绝传,忍令黄农尧舜以来相传之大法,听其绝传乎?于此《明史》历志中不为之显显焉,发明而存之,将更于何处存之耶?”而且“大统原即授时,《元史》不能存授时,今欲于大统存之,即或有重出之处不必避也”[15]。可见,黄氏父子考虑的是如何更好的保存传统历法这一遗产,而最好的办法自然是将其存于正史中,以广其传。此外,除了使其保存,他们也希望自成一书,可据以起算。即“以为既名《历志》,则当使读此志者,便能明达造历之旨,且即可据以入算,使此志有可用,方不致为具文废物”。如为回回历法访求和补充“加次法”,目的自然也是使其可以入算。
其次,《明史》回回历法的纂修却又大胆借鉴西法,无论是在术语的使用,还是算表的编排,都有取自西洋历法之处。这其中既有纂史的现实需求,如何压缩篇幅使算表更加简洁,同时也与作者的认识有关。如梅文鼎就认为“回回与欧罗巴即西洋历同源,回回历即西洋旧法耳”[36],黄宗羲也认为:“《崇祯历书》大概本之回回”[11],而最早用西法改编回回算表的薛凤祚也持类似观点,认为“西域历在西洋之前,亦犹授时之有纪元、开禧等历也”[22]。虽然这些认知皆有所局限,但并不妨碍他们将回回历和西洋法联系起来。黄百家则认为“回回历昔与西洋本历,同传于厄日多国,其五星纬度,中历之所未有也,精神全在立成。”[15]既然是同源,自然无妨让回回历法借鉴西洋历法的某些编纂特征,收入《历志》当中。
由此可见,《明史》历志处理大统历和回回历法的方式是不完全相同的,一方面强调不忍郭氏传统历学绝传,故而发明而存之。另一方面,对外来历学又兼收并蓄,备载其精神。虽然在《明史》定本中,因受西学中源的影响,其中推崇西法的态度和内容已不再显得那么直接。
致谢感谢巴黎第七大学林力娜(Karine Chemla)教授和巴黎天文台Matthieu Husson博士在本文写作过程中提供的帮助,以及审稿专家为本文提出的宝贵修改意见。