¡ÒÃãªé sgml-tools ¡ÑºÀÒÉÒä·Â ¾ÙÅÅÒÀ ÇÕÃи¹ÒºØµÃ $Id: sgmltools.sgml,v 1.1 1998/09/28 11:26:44 poon-v Exp poon-v $ àÍ¡ÊÒéºÑº¨Ð͸ԺÒ¡ÒÃãªéÀÒÉÒä·Â¡Ñº SGML-tools áÅСÒÃà¢Õ¹àÍ¡ÊÒà SGML àº×éͧµé¹à¾×èÍãªé¡Ñº SGML-tools. ¼ÙéÍèÒ¹ÊÒÁÒöµÔ´µÒÁàÍ¡ÊÒéºÑºÅèÒÊØ´ä´é·Õè http://www.fedu.uec.ac.jp/ZzzThai/Linux ______________________________________________________________________ Table of Contents 1. á¹Ð¹Ó SGML-tools 2. ¡ÒÃà¢Õ¹àÍ¡ÊÒÃã¹ÃٻẺ SGML (linuxdoc) 2.1 â¤Ã§ÊÃéÒ§¢Í§àÍ¡ÊÒà SGML-tools 2.2 ¡ÒÃãªé TAG 2.3 à¤Ã×èͧËÁÒ¾ÔàÈÉ 2.4 ¡ÒÃà¢Õ¹¢éͤÇÒÁẺ verbatim 2.5 ¡ÒÃà¢Õ¹ÃÒ¡Òà (list) 2.6 ÊÃØ»·ÕèãªéºèÍ TAG Í×è¹æ 3. ¡ÒÃãªé SGML-tools 3.1 ¡ÒüÅÔµàÍ¡ÊÒÃÀÒÉÒä·ÂẺ Plain Text 3.2 ¡ÒüÅÔµàÍ¡ÊÒÃÀÒÉÒä·ÂẺ HTML 3.3 ¡ÒüÅÔµàÍ¡ÊÒÃÀÒÉÒä·ÂẺ LaTeX 4. º·ÊÃØ» 5. áËÅ觢éÍÁÙÅà¾ÔèÁàµÔÁ ______________________________________________________________________ 11.. áá¹¹Ðй¹ÓÓ SSGGMMLL--ttoooollss SGML-tools à»ç¹ªØ´â»Ãá¡ÃÁÊÓËÃѺ·ÓàÍ¡ÊÒÃâ´Â¡ÒÃà¢Õ¹àÍ¡ÊÒÃã¹ÃٻẺ¢Í§ SGML (Standard Generalized Markup Language) áÅÐãªéâ»Ãá¡ÃÁ¨Ò¡ SGML- tools á»Å§à»ç¹àÍ¡ÊÒÃẺÍ×è¹æä´éá¡è àÍ¡ÊÒÃẺ HTML, lyx, latex, dvi, Postscript, plain text, rich text áÅÐ GNU info. SGML-tools à´ÔÁª×èÍ Linuxdoc-sgml à¢Õ¹¢Öé¹à¾×èÍãªéã¹ Linux Document Project (LDP) . ·ÓãËé¡ÒÃà¢Õ¹àÍ¡ÊÒÃÊÓËÃѺâ»Ãਤ¹ÕéÁÕÃٻẺÁҵðҹ·Õèá¹è¹Í¹. µÒÁËÅÑ¡¢Í§ LDP áÅéÇàÍ¡ÊÒà HOWTO µéͧà¢Õ¹ã¹ÃٻẺ SGML, ÊèǹàÍ¡ÊÒà mini-HOWTO ¨Ðà¢Õ¹´éÇÂÃٻẺ HTML. license ¢Í§ LDP ÊÒÁÒö´Ùä´é¨Ò¡àÍ¡ÊÒà Linux Document Project copying License < http://sunsite.unc.edu/linux/LDP-COPYRIGHT.html>. «Öè§àÍ¡ÊÒÃàËÅèÒ¹ÕéÁÕ copyright â´Â¤¹·Õèà¢Õ¹áÅÐäÁèãªè Public Domain. ¼ÙéÍèÒ¹ÊÒÁÒö download SGML-tools àÇÍÃìªÑè¹ÅèÒÊØ´ä´é·Õè SGML tools download . â´Â·ÑèÇä»áÅéÇ SGML- tools ÁÑ¡ÁÒ¾ÃéÍÁæ¡Ñº Linux. à¹×èͧ¨Ò¡ SGML-tools à»ç¹ªØ´â»Ãá¡ÃÁ·Õèá»Å§àÍ¡ÊÒÃà»ç¹àÍ¡ÊÒÃÃٻẺÍ×è¹æ à¾ÃÒЩйÑé¹¼Ùéãªé¤ÇèÐÁÕâ»Ãá¡ÃÁ·Õè¨Ñ´¡ÒÃàÍ¡ÊÒÃÃٻẺ¹Ñé¹æäÇéãªé´éÇ ä´éá¡è groff, TeX, LaTeX, flex, gawk áÅÐ lyx. ã¹àÍ¡ÊÒéºÑº¹Õé¨Ð͸ԺÒ¡ÒÃà¢Õ¹àÍ¡ÊÒÃÀÒÉÒä·Âã¹áºº¢Í§ SGML (linuxdoc) àº×éͧµé¹ à¾×èÍãËé¼Ùéʹ㨡ÒÃà¢Õ¹àÍ¡ÊÒà HOWTO ÊÓËÃѺ Linux à¢Õ¹àÍ¡ÊÒÃÍÂèÒ§ÁÕ»ÃÐÊÔ·¸ÔÀÒ¾áÅÐÃٻẺÁҵðҹà´ÕÂǡѹ. áÅШÐ͸ԺÒ¡ÒÃãªéÀÒÉÒä·Â¡Ñº¡ÒÃá»Å§àÍ¡ÊÒ÷Õèá»Å§à»ç¹áºº HTML, LaTeX, áÅÐ text à·èÒ¹Ñé¹. 22.. ¡¡ÒÒÃÃàࢢÕÕ¹¹ààÍÍ¡¡ÊÊÒÒÃÃãã¹¹ÃÃÙÙ»»áẺºº SSGGMMLL ((lliinnuuxxddoocc)) ËÅÑ¡¡ÒÃà¢Õ¹àÍ¡ÊÒÃẺ SGML ¤ÅéÒ HTML ÁÒ¡ ¡ÅèÒǤ×Íãªé tags 㹡ÒáÓ˹´ÃٻẺ¢Í§àÍ¡ÊÒÃ. 22..11.. â⤤Ãç§ÊÊÃÃééÒÒ§§¢¢Íͧ§ààÍÍ¡¡ÊÊÒÒÃà SSGGMMLL--ttoooollss â¤Ã§ÊÃéÒ§àÍ¡ÊÒà SGML ÊÓËÃѺ SGML-tools ÁÕÃٻẺ·ÑèÇ仴ѧ¹Õé
DOCUMENT TITLE <author> AUTHOR NAME <date> DATE <abstract> ABSTRACT HERE </abstract> <toc> <!-- table of content --> <sect> SECTION <p> CONTENT ....... </article> àÍ¡ÊÒ÷Õèãªé SGML-tools µéͧÁÕ¤ÓÊÑè§ <!doctype linuxdoc system> ·Ø¡¤ÃÑé§. à¾×èÍà»ç¹¡Òú͡ãËé SGML-tools ÃÙéÇèÒ¤ÓÊÑè§(TAG)ã¹àÍ¡ÊÒùÕé¶Ù¡¡Ó˹´â´Â linuxdoc. ÃÒÂÅÐàÍÕ´·Ò§à·¤¹Ô¤¢Í§ SGML ÊÒÁÒöÍèÒ¹ä´é¨Ò¡ guide.sgml «Öè§à»ç¹àÍ¡ÊÒÃá¹Ð¹Ó¡ÒÃãªé SGML-tools ·ÕèÁҡѺµÑÇâ»Ãá¡ÃÁ. 22..22.. ¡¡ÒÒÃÃã㪪éé TTAAGG ¡ÒÃãªé TAG ã¹ä¿Åì SGML ¤ÅéÒÂæ¡Ñº TAG ¢Í§ HTML ¤×ÍÁÕµÑÇà»Ô´áÅлԴ. äÇ¡óì·ÑèǤ×Í <TAG> phrase </TAG> ¤ÓÊÑ觢éÒ§º¹ÊÒÁÒöÂèÍÊÑé¹æä´é´Ñ§¹Õé <TAG/ phrase / 㹡óÕËÅѧàËÁÒÐÊÓËÃѺ¡ÒÃà¢Õ¹¤ÓÊÑé¹æ áÅÐäÁèàËÁÒÐÊÓËÃѺ¡ÒÃà¢Õ¹ª×èÍä¿ÅìàµçÁæ¢Í§ UNIX à¾ÃÒÐÁÕà¤Ã×èͧËÁÒ / ÍÂÙè«Ö觶×Íà»ç¹Êèǹ˹Ö觢ͧ¤ÓÊÑè§. TAG ºÒ§ª¹Ô´äÁè¨Óà»ç¹µéͧÁÕµÑǻԴ¡çä´éàªè¹ <P> «Öè§ËÁÒ¶֧¤ÓÊÑ觡ӡѺÂèÍ˹éÒà»ç¹µé¹. ÍÕ¡ÇÔ¸Õ˹Ö觷ÕèãªéÊÓËÃѺ¡ÒÃÂèÍ˹éÒ¤×Í ¡ÒÃàÇ鹺Ã÷ѴÇèҧ˹Ö觺Ã÷Ѵ. 22..33.. àतÃÃ××èèÍͧ§ËËÁÁÒÒ¾¾ÔÔààÈÈÉÉ ¡ÒÃà¢Õ¹à¤Ã×èͧËÁÒ¾ÔàÈÉÁÕ¤ÇÒÁ¨Óà»ç¹àÁ×èͼÙéãªéµéͧ¡ÒÃà¢Õ¹µÑÇÍÑ¡É÷Õèà»ç¹¤ÓÊÑè§àªè¹ "<ÀÒÉÒä·Â>" à¾×èÍäÁèãËéá»Åà¤Ã×èͧËÁÒ <> à»ç¹ TAG ¼ÙéãªéÊÒÁÒöà¢Õ¹µÑÇÍÂèÒ§·ÕèáÊ´§ä´éâ´Â <ÀÒÉÒä·Â> à»ç¹µé¹. à¤Ã×èͧËÁÒ¾ÔàÈÉ·ÕèãªéºèÍÂä´éá¡è, · à¢Õ¹ & á·¹à¤Ã×èͧËÁÒ ampersand (&), · à¢Õ¹ < á·¹à¤Ã×èͧËÁÒ left bracket (<), · à¢Õ¹ > á·¹à¤Ã×èͧËÁÒ right bracket (>), · à¢Õ¹ &etago; á·¹à¤Ã×èͧËÁÒ left bracket with a slash (</) · à¢Õ¹ $ á·¹à¤Ã×èͧËÁÒ dollar sign ($), · à¢Õ¹ # á·¹à¤Ã×èͧËÁÒ hash (#), · à¢Õ¹ % á·¹à¤Ã×èͧËÁÒ percent (%), · à¢Õ¹ ˜ á·¹à¤Ã×èͧËÁÒ tilde (~), · à¢Õ¹ &dquot; á·¹à¤Ã×èͧËÁÒ double quot ". à¤Ã×èͧËÁÒ¾ÔàÈÉÍ×è¹æ·Õèãªéä´é¡Ñº SGML-tools 1.0.x ÊÒÁÒö´Ùä´é¨Ò¡ guide.sgml. 22..44.. ¡¡ÒÒÃÃàࢢÕÕ¹¹¢¢ééÍͤ¤ÇÇÒÒÁÁáẺºº vveerrbbaattiimm àÁ×èͼÙéãªéµéͧ¡ÒÃáÊ´§¢éͤÇÒÁ·ÕèäÁèµéͧ¡ÒÃãËéá»ÅµÒÁÀÒÉÒ SGML ãËéà¢Õ¹¢éͤÇÒÁàËÅèÒ¹Ñé¹ã¹ environment ·Õèª×èÍ verbatim ´Ñ§¹Õé <verb> This is the verbatim environment. <> & ; ~ You can write special characters here. </verb> µÑÇÍÂèÒ§¢éÒ§¨ÐáÊ´§¼Åà»ç¹´Ñ§¹Õé This is the verbatim environment. <> & ; ~ You can write special characters here. ¡ÒÃãªé <verb;>...<verb>/ ÂѧäÁèàËÁÒСѺ¡ÒÃãªéÀÒÉÒä·Âã¹ SGML ÁÒ¡¹Ñ¡à¾ÃÒТ³Ð¹ÕéÂѧäÁèÊÒÁÒöáÊ´§¼ÅÀÒÉÒä·Âã¹ verbatim environment ¢Í§ LaTeX ä´é. ã¹ verbatim environment ÁÕ¢éÍ¡Ó˹´¡ÒÃà¢Õ¹ÍÑ¡ÉúҧµÑǴѧ¹Õé · ãËéà¢Õ¹ &ero; à¾×èÍáÊ´§µÑÇÍÑ¡Éà ampersand, · ãËéà¢Õ¹ &etago; à¾×èÍáÊ´§µÑÇÍÑ¡Éà </, · ËéÒÁà¢Õ¹ \end{verbatim} ã¹ verb environment, «Öè§ÇÅÕ¹Õéà»ç¹¤ÓºÍ¡àÅÔ¡ verbatim environment ¢Í§ LaTeX. ¹Í¡¨Ò¡ verb environment áÅéÇÂѧÁÕ environment Í×è¹·Õè¤ÅéÒÂæ¡Ñ¹¤×Í code. µÑÇÍÂèÒ§àªè¹ <code> This is the code environment. </code> ¡ÒÃáÊ´§¼Å : ______________________________________________________________________ This is the code environment. ______________________________________________________________________ code environment ¨ÐᵡµèÒ§¡Ñº verb environment µÃ§·ÕèÁÕàÊ鹡Ñé¹¢éͤÇÒÁ(horizontal rule)ãËé. ¼ÙéãªéÂѧÊÒÁÒöãªé tscreen environment »ÃСͺ¡Ñº verb ËÃ×Í code à¾×èÍÅè¹¢éͤÇÒÁ(indent)ä»·Ò§¢ÇÒ. µÑÇÍÂèÒ§àªè¹, <tscreen><verb> Using verb environmment with tscreen environment. </verb></tscreen> ¡ÒÃáÊ´§¼Å: Using verb environmment with tscreen environment. quote environment ¤ÅéÒ tscreen environment ÁÒ¡áµèᵡµèÒ§¡Ñ¹µÃ§·ÕèäÁèãªé¿Í¹µì tt (fixed width font) 㹡ÒÃáÊ´§¼Å. µÑÇÍÂèÒ§àªè¹, <quote> This is the quote environment. </quote> ¡ÒÃáÊ´§¼Å: This is the quote environment. 22..55.. ¡¡ÒÒÃÃàࢢÕÕ¹¹ÃÃÒÒ¡¡ÒÒÃà ((lliisstt)) ¡ÒÃà¢Õ¹ÃÒ¡ÒÃ(list) ÊÒÁÒöà¢Õ¹ä´é 3 Ẻ¤×Í · itemize, à»ç¹ÃÒ¡Ò÷ÕèäÁèµéͧ¡ÒõÑÇàÅ¢¡Ó¡Ñº · enum, à»ç¹ÃÒ¡Ò÷Õè¡Ó¡ÑºµÑÇàÅ¢ · descrip, à»ç¹¡ÒáËÑÇ¢éÍáÅÐ͸ԺÒ»ÃСͺ µÑÇÍÂèÒ§¡ÒÃà¢Õ¹ÃÒ¡ÒÃẺ itemize <itemize> <item>ÃÒ¡Ò÷Õè˹Öè§ <item>ÃÒ¡ÒõèÍä» <itemize>/ ¡ÒÃáÊ´§¼Å: · ÃÒ¡Ò÷Õè˹Öè§ · ÃÒ¡ÒõèÍä» µÑÇÍÂèÒ§¡ÒÃà¢Õ¹ÃÒ¡ÒÃẺ enum, <enum> <item>ÃÒ¡Ò÷Õè˹Öè§ <item>ÃÒ¡ÒõèÍä» <enum>/ ¡ÒÃáÊ´§¼Å: 1. ÃÒ¡Ò÷Õè˹Öè§ 2. ÃÒ¡ÒõèÍä» ¡ÒÃà¢Õ¹ÃÒ¡ÒÃẺ descrip ¨ÐᵡµèÒ§¨Ò¡µÑÇÍÂèÒ§Í×è¹àÅ硹éÍ´ѧ¹Õé <descrip> <tag/ËÑÇ¢éÍ·Õè˹Öè§/ ¤Ó͸ԺÒ <tag/ËÑÇ¢é͵èÍä»/ ¤Ó͸ԺÒ <descrip>/ ¡ÒÃáÊ´§¼Å: ËËÑÑÇÇ¢¢ééÍÍ··ÕÕèèË˹¹ÖÖè觧 ¤Ó͸ԺÒ ËËÑÑÇÇ¢¢ééÍ͵µèèÍÍää»» ¤Ó͸ԺÒ 22..66.. ÊÊÃÃØØ»»··ÕÕèèã㪪é麺èèÍÍ TTAAGG ÍÍ××èè¹¹ææ <<aarrttiiccllee>> ...... <<//aarrttiiccllee>> à»ç¹¤ÓÊÑ觺͡àÃÔèÁàÍ¡ÊÒà «Ö觢³Ð¹Õéà¢éÒã¨ÇèÒãªéä´é੾ÒÐ article à·èÒ¹Ñé¹ ¢éͤÇÒÁ·ÕèÍÂÙèÃÐËÇèÒ§¹Õé¶×Íà»ç¹à¹×éÍËҢͧàÍ¡ÊÒà áÅФÓÊÑ觷ÕèÍÂÙè¡è͹˹éÒ¹Õé¶×Íà»ç¹ preamble. <<aauutthhoorr>> ãªéÃкت×èͼÙéà¢Õ¹àÍ¡ÊÒà <<ddaattee>> ãªéÃкØÇѹ·Õè·Õèà¢Õ¹àÍ¡ÊÒà <<aabbssttrraacctt>> ...... <<//aabbssttrraacctt>> à»ç¹ÊèǹÊÓËÃѺà¢Õ¹º·¤Ñ´ÂèÍ Í¸ÔºÒÂà¹×éÍËҢͧàÍ¡ÊÒà <<ttoocc>> ¤ÓÊÑè§ÊÃéÒ§ÊÒúѭ <<pp>> ãªé㹡ÒÃÂèÍ˹éÒ â´Â»Ã¡µÔáÅéÇ TAG ¹Õé¤ÇõÒÁËÅѧ <sect> à¾×èÍà»ç¹¡Òú͡ÇèÒ¾ÃéÍÁ·Õè¨Ðà¢Õ¹à¹×éÍËÒËÅѧ¨Ò¡»ÃСÒÈËÑÇ¢éÍ. ¡ÒÃÂèÍ˹éÒÍÕ¡ÇÔ¸Õ˹Öè§ÊÒÁÒö·Óä´éâ´Â¡ÒÃàÇ鹺Ã÷ѴÇèҧ˹Ö觺Ã÷Ѵ«Ö觨йÔÂÁÁÒ¡¡ÇèÒãªé <p>. TAG ¹ÕéäÁè¨Óà»ç¹µéͧÁÕµÑǻԴ·éÒÂ. <<sseecctt>> à»ç¹¤ÓÂèͧ͢ section ãªéÊÓËÃѺ¡Ó¡ÑºËÑÇ¢éÍ ã¹¡Ã³Õ¹Õé¨ÐáÊ´§µÑÇàÅ¢ËÑÇ¢éÍà»ç¹ 1, 2, 3, ... µÒÁÅӴѺ <<sseecctt11>> ¤ÓÊÑ觻ÃСÒÈËÑÇ¢éÍÂèÍ ãªé»ÃСÒÈÀÒÂã¹ËÑÇ¢éÍËÅÑ¡. 㹡óըÐÁÕµÑÇàÅ¢à»ç¹ 1.1, 1.2, 1.3, ... à»ç¹µé¹. ËÑÇ¢éÍÂèͶѴ¨Ò¡¹Õé¤×Í <sect2>, <sect3> áÅÐ <sect4> <<tttt>> ...... <<//tttt>> à»ç¹¤ÓÊÑè§à»ÅÕ蹿͹µìà»ç¹¿Í¹µì¾ÔÁ¾ì´Õ´(Type writer). ÁÑ¡ãªé㹡ÒÃà¢Õ¹ª×èͤÓÊÑè§ à»ç¹µé¹ <<uurrll uurrll==""UURRLL"" nnaammee==""NNAAMMEE"">> ãªéãÊè URL ã¹à¹×éÍËÒ. ¶éÒá»Å§à»ç¹ HTML format, NAME ¨ÐÅÔ§¤ìä»Âѧ URL ¹Ñé¹æ. ¶éÒà»ç¹ text ËÃ×Í LaTeX, ¨ÐáÊ´§´éǪ×èÍáÅéǵÒÁ´éÇ·ÕèÍÂÙè URL. <<hhttmmlluurrll uurrll==""HHTTMMLL__UURRLL"" nnaammee==""NNAAMMEE"">> ãªéà¢Õ¹ URL ¢Í§ HTML àªè¹ <htmlurl url="mailto:poon- v@fedu.uec.ac.jp" name="¾ÙÅÅÒÀ ÇÕÃи¹ÒºØµÃ" à»ç¹µé¹ <<llaabbeell iidd==""IIDD"">> ãªé㹡ÒÃàÅ×Í¡µÓá˹è§ÍéÒ§ÍÔ§¢Í§àÍ¡ÊÒÃ. ¤ÓÊÑ觹ÕéÁÑ¡ãªé¤Çº¤Ùè¡Ñº¡Ñº¤ÓÊÑè§ <ref id="ID" name="NAME"> <<rreeff iidd==""IIDD"" nnaammee==""NNAAMMEE"">> à»ç¹¤ÓÊÑ觺͡µÓá˹è§ÍéÒ§ÍÔ§ã¹àÍ¡ÊÒÃ. ¶éÒà»ç¹ HTML format, ¨Ðà»ç¹¡ÒÃÅÔ§¤ì¡Ñ¹ÀÒÂã¹àÍ¡ÊÒÃ. ¶éÒà»ç¹ LaTeX format ¨Ðà»ç¹¡Òú͡µÓá˹è§Ë¹éÒ·ÕèÍéÒ§ÍÔ§ à»ç¹µé¹. ¼ÙéãªéÊÒÁÒöÍèÒ¹ÇÔ¸Õ¡ÒÃãªé¤ÓÊÑè§Í×è¹æä´é¨Ò¡ guide.sgml ·ÕèÁҡѺ SGML- tools. ¼ÙéãªéÊÒÁÒöà¢Õ¹ÀÒÉÒä·Âã¹ä¿Åì SGML ä´éáµèäÁè¤ÇÃà¢Õ¹ÀÒÉÒä·Âã¹ verb ËÃ×Í code environment «Ö觵éͧËÒ·Ò§á¡é䢡ѹµèÍä». 33.. ¡¡ÒÒÃÃã㪪éé SSGGMMLL--ttoooollss ¼ÙéãªéÊÒÁÒöàªç¤äÇ¡óì·Õèà¢Õ¹ã¹ä¿Åì SGML ä´éâ´Â % sgmlcheck foo.sgml ã¹·Õè¹Õé¨Ð¢Í¡ÅèÒǶ֧¡ÒÃá»Å§àÍ¡ÊÒÃÀÒÉÒä·ÂẺ SGML ãËéà»ç¹àÍ¡ÊÒÃẺÍ×è¹æ ੾ÒÐẺ Plain Text, HTML áÅÐ LaTeX à·èÒ¹Ñé¹. 33..11.. ¡¡ÒÒÃü¼ÅÅÔÔµµààÍÍ¡¡ÊÊÒÒÃÃÀÀÒÒÉÉÒÒää··ÂÂáẺºº PPllaaiinn TTeexxtt ¼ÙéãªéÊÒÁÒöá»Å§àÍ¡ÊÒÃÀÒÉÒä·ÂẺ SGML ·Õèà¢Õ¹äÇéà»ç¹áºº Plain Text ä´é´éǤÓÊÑè§ % sgml2txt -c latin foo.sgml ¶éÒäÁèà¡Ô´¢éͼԴ¾ÅÒ´ã´æ ¼Ùéãªé¨Ðä´éä¿ÅìãËÁè·Õèª×èÍ foo.txt ã¹ä´àá·ÍÃÕè·Õè·Ó§Ò¹ÍÂÙè. 33..22.. ¡¡ÒÒÃü¼ÅÅÔÔµµààÍÍ¡¡ÊÊÒÒÃÃÀÀÒÒÉÉÒÒää··ÂÂáẺºº HHTTMMLL ¼ÙéãªéÊÒÁÒöá»Å§àÍ¡ÊÒÃÀÒÉÒä·ÂẺ SGML ·Õèà¢Õ¹äÇéà»ç¹áºº HTML ä´é´éǤÓÊÑè§ % sgml2html foo.sgml ¶éÒäÁèà¡Ô´¢éͼԴ¾ÅÒ´ã´æ ¼Ùéãªé¨Ðä´éä¿ÅìãËÁè·Õèª×èÍ foo.html áÅÐ foo-1.html, foo-2.html, ... ã¹ä´àá·ÍÃÕè·Õè·Ó§Ò¹ÍÂÙè. «Öè§ SGML-tools ¨Ðáºè§à»ç¹ä¿ÅìÂèÍÂæµÒÁËÑÇ¢éÍ(section)·ÕèÃкØäÇé. ã¹·Õè¹Õé¼ÙéãªéäÁèµéͧãÊè option -c latin, àÍ¡ÊÒ÷Õè¼ÅÔµÍÍ¡ÁÒ¨Ðà»ç¹ÃËÑÊ 8-bit «Ö觵ç¡ÑºÃËÑÊ tis-620 ÀÒÉÒä·Â·ÕèãªéÍÂÙ躹ÍÔ¹àµÍÃìà¹çµ·ÑèÇä». à¾×èͤÇÒÁÊдǡ㹡ÒÃãªé§Ò¹ÂÔ觢Öé¹, ¼Ùéà¢Õ¹ä´éà¢Õ¹ Perl script ÊÓËÃѺá»Å§àÍ¡ÊÒà HTML ·Õèà¢Õ¹ã¹ÃÙ»¢Í§ &LATIN_CHAR_NAME; ãËéà»ç¹ÃËÑÊ tis-620 áÅÐÁÕ option ÊÑè§ãËéàÃÕ¡ cttex ÁҵѴ¤Óà¾×èͤÇÒÁÊǧÒÁ´éÇÂ. ______________________________________________________________________ #!/usr/bin/perl ################################################################ # sgmlthtml: # Run sgml2html and convert latin symbols to Thai characters. # This program will change, for example, à to "\340". # # by Poonlap Veeratanabutr <poon-v@fedu.uec.ac.jp> # $Id: sgmlthtml,v 1.1 1998/09/28 06:51:52 poon-v Exp poon-v $ ################################################################ sub error { print STDERR "usage: $0 [-c] file.sgml\n"; print STDERR " -c , use cttex to fill <WBR>\n"; exit; } # command line processing. if( $#ARGV == -1 ){ &error; } elsif ( $#ARGV == 0 && $ARGV[0] ne "-c"){ $file = $ARGV[0]; $cut = 0; } elsif ( $#ARGV == 1 ){ if( $ARGV[0] eq "-c"){ $cut = 1; $file = $ARGV[1]; } elsif( $ARGV[1] eq "-c"){ $cut = 1; $file = $ARGV[0]; } else { &error; } } else { &error; } # run sgml2html if( system( "sgml2html $file" ) != 0 ){ exit; } # lookup table for what to change and not to change %lookuptbl = (quot, "quot",amp,"amp","lt","lt","gt","gt",copy,"\251",reg,"\256", micro,"\265",Agrave,"\300",Aacute,"\301",Acirc,"\302",Atilde,"\303", Auml,"\304",Aring,"\305",AElig,"\306",Ccedil,"\307",Egrave,"\310", Eacute,"\311",Ecirc,"\312",Euml,"\313",Igrave,"\314",Iacute,"\315", Icirc,"\316",Iduml,"\317",ETH,"\320",eth,"\320",Ntilde,"\321", Ograve,"\322",Oacute,"\323",Ocirc,"\324",Otilde,"\325",Ouml,"\326", Oslash,"\330",Ugrave,"\331",Uacute,"\332",THORN,"THORNÞ",Thorn,"Thron", szlig,"\337",agrave,"\340",aacute,"\341",acirc,"\342",atilde,"\343", auml,"\344",aring,"\345",aelig,"\346",ccedil,"\347",egrave,"\350", eacute,"\351",ecirc,"\352",euml,"\353",igrave,"\354",iacute,"\355", icirc,"\356",iuml,"\357",eth,"\360",ntilde,"\361",ograve,"\362", oacute,"\363",ocirc,"\364",otilde,"\365",ouml,"\366",oslash,"\370", ugrave,"\371",uacute,"\372",ucirc,"\373",uuml,"uuml",yacute,"yacute", yuml,"yuml"); # separate directory and file name from the given file name if( $file =~ /(.*)[\/](.+)$/ ){ $dir = $1; $file = $2; } $file =~ s/(.+)\.sgml/$1/; # get rootname if( length( $dir ) == 0 ){ opendir( DIR, "."); } else { opendir( DIR, "$dir" ); } @html = grep {/$file.*\.html$/} readdir( DIR ); # get all related html files closedir( DIR ); foreach $html_file (@html) { print "Processing file $html_file\n"; open( INPUT, "$html_file"); open( OUTPUT,">$html_file.tmp" ); while( <INPUT> ){ $line = $_; $beg = index( $line, "&"); $end = index( $line, ";"); while( $beg >= 0 && $end > $beg ){ $target = substr( $line, $beg+1, $end-$beg-1); $thai = $lookuptbl{ $target }; if( $target eq $thai ){ $line = sprintf( "%s%s%s", substr( $line, 0, $beg), '&' . $thai . ';', substr( $line, $end+1 )); } else { $line = sprintf( "%s%s%s", substr( $line, 0, $beg), $thai, substr( $line, $end+1 )); } $beg = index( $line, "&", $beg+1); $end = index( $line, ";", $beg); } print OUTPUT "$line"; } close( INPUT ); close( OUTPUT ); if( $cut == 1 ){ system( "cttex 0 < $html_file.tmp > $html_file" ); system( "rm -f $html_file.tmp" ); } else { rename( "$html_file.tmp", "$html_file"); } } # EOF ______________________________________________________________________ ¼ÙéãªéÊÒÁÒöàÃÕ¡¤ÓÊÑè§ sgmlthtml á·¹ sgml2html ÊÓËÃѺàÍ¡ÊÒà SGML ·ÕèÁÕÀÒÉÒä·Âä´é´Ñ§¹Õé % sgmlthtml foo.sgml -c ¨Ò¡µÑÇÍÂèÒ§´Ñ§¡ÅèÒÇ, sgmlthtml ¨ÐàÃÕ¡¤ÓÊÑè§ sgml2html «Ö觨мÅÔµä¿ÅìẺ HTML ËÅÒÂä¿Åì. ¨Ò¡¹Ñé¹â»Ãá¡ÃÁ sgmlthtml ¨Ð¾ÂÒÂÒÁà»ÅÕè¹ &LATIN_CHAR_NAME; ãËéà»ç¹ÃËÑÊ tis-620 (¶éÒÁÕ, â´Â»Ã¡µÔ sgml2html ¨Ð¼ÅÔµä¿Åì·Õèà¼ÍÔ­µÃ§µÒÁ tis-620 ÍÂÙèáÅéÇ) áÅÐàÃÕ¡ cttex ÁҵѴ¤Ó(·Ø¡ä¿Åì·Õèà¡ÕèÂÇ¢éͧ¡Ñº foo.sgml) ãËé¡ÒÃáÊ´§¼Åº¹ browser ÊǧÒÁ¢Öé¹. ¡Ò÷Õè¨Ðãªé¤ÓÊÑ觹Õé, ¼ÙéãªéµéͧÁÕâ»Ãá¡ÃÁ cttex ÍÂÙèã¹Ãкº´éÇÂ. ËÒ¡äÁèµéͧ¡ÒÃãËé cttex µÑ´¤Ó, äÁèµéͧãÊè option -c ´Ñ§µÑÇÍÂèÒ§ % sgmlthtml foo.sgml 33..33.. ¡¡ÒÒÃü¼ÅÅÔÔµµààÍÍ¡¡ÊÊÒÒÃÃÀÀÒÒÉÉÒÒää··ÂÂáẺºº LLaaTTeeXX ¼ÙéãªéµéͧÁժشâ»Ãá¡ÃÁ LaTeX áÅеԴµÑé§ÀÒÉÒä·ÂàÃÕºÃéÍÂáÅéǨ֧¨ÐÊÒÁÒöá»Å§àÍ¡ÊÒèҡ SGML à»ç¹ LaTeX ä´é. ¡ÒõԴµÑé§ÀÒÉÒä·Âã¹ LaTeX ÊÒÁÒöÍèÒ¹ä´é¨Ò¡àÍ¡ÊÒà "¡ÒÃãªéÀÒÉÒä·Â¡Ñº LaTeX <http://www.fedu.uec.ac.jp/ZzzThai/Linux/thailatex/thailatex>". ¼ÙéãªéÊÒÁÒö¼ÅÔµàÍ¡ÊÒà LaTeX(.tex) ·ÕèÁÕÀÒÉÒä·Â¨Ò¡àÍ¡ÊÒÃẺ SGML ä´éâ´Â¤ÓÊÑè§ % sgml2latex --output=tex foo.sgml ¨Ò¡¤ÓÊÑ觢éÒ§º¹ sgml2latex ¨ÐÊÃéÒ§ä¿Åì foo.tex ã¹ä´àá·ÍÃÕè·Õè·Ó§Ò¹ÍÂÙè. ¼ÙéãªéÂѧäÁèÊÒÁÒö¹Óä¿Åì¹Õéä»ãªé¡Ñº LaTeX ä´éâ´ÂµÃ§, ¨Ðµéͧá¡éÊèǹ preamble ¢Í§ä¿Åì¹ÕéàÅ硹éÍ¡è͹¹Óä»ãªé¡Ñº cttex áÅÐ latex µèÍä». ¼ÙéãªéµéͧźºÃ÷ѴµèÍ仹ÕéÍÍ¡¨Ò¡ preamble ¢Í§ä¿Åì foo.tex \usepackage[latin1]{inputenc} \usepackage{t1enc} \usepackage{babel} áÅÐãÊèºÃ÷ѴµèÍ仹Õé᷹ŧä»á·¹ \usepackage{thai} ¨Ò¡¹Ñ鹨֧ÊÑ觤ÓÊÑè§ cttex áÅÐ latex µÒÁÅӴѺ´Ñ§µÑÇÍÂèÒ§ % cttex < foo.tex > foo_ok.tex % latex foo_ok.tex ¨ÐàËç¹ä´éÇèÒà¹×èͧ¨Ò¡ SGML-tools äÁèä´é¼ÅÔµÁÒà¾×èÍãªé¡ÑºÀÒÉÒä·Ââ´Â੾ÒШ֧ãªéÂØè§ÂÒ¡. ¼Ùéà¢Õ¹¾ÂÒÂÒÁÅ´¢Ñ鹵͹àËÅèÒ¹Õéâ´Âà¢Õ¹ Perl script ª×èÍ sgmltlatex ·Ó˹éÒ·ÕèµèÒ§æàËÅèÒ¹Õéâ´ÂÍѵâ¹ÁѵÔ. ______________________________________________________________________ #!/usr/bin/perl ############################################################################### # sgmltlatex: # Processing SGML or LaTeX file for Thai language. # # # by Poonlap Veeratanabutr <poon-v@fedu.uec.ac.jp> # $Id: sgmltools.sgml,v 1.1 1998/09/28 11:26:44 poon-v Exp poon-v $ ############################################################################### sub error { print STDERR "$0 - Processing SGML or LaTeX file for Thai language.\n"; print STDERR "usage: $0 [-[t|d|p] sgml_file] [-l latex_file] \n"; print STDERR " -t , create latex_file file from sgml_file\n"; print STDERR " -d , create dvi file from sgml_file and leave latex_file\n"; print STDERR " -p , create Postscript file and leave latex_file\n"; print STDERR " -l , run latex on latex_file\n"; exit( -1 ); } # command line processing if( $#ARGV != 1 ){ &error; } elsif ( $ARGV[0] eq "-l" ){ $option = "l"; } elsif ( $ARGV[0] eq "-t" ){ $option = "t"; } elsif ( $ARGV[0] eq "-d" ){ $option = "d"; } elsif ( $ARGV[0] eq "-p" ){ $option = "p"; } else { &error; } $file = $ARGV[1]; $tempfile = "$file" . ".tmp"; if( $option ne "l" ){ if( system( "sgml2latex --output=tex $file" ) != 0 ){ exit( -1 ); } # separate directory and file name from the given file name if( $file =~ /(.*)[\/](.+)$/ ){ $dir = $1; $file = $2; } if( $file =~ m/(.+)\.sgml$/ ){ $rootname = "$1"; } else { $rootname = $file; } $file = $rootname . ".tex"; print "Processing file $file\n"; open( INPUT, "$file" ); open( OUTPUT, ">" . "$tempfile" ); $preamble = 1; while( <INPUT> ){ if( $preamble == 1 ){ if( /^\\begin\s*{\s*document\s*}\s*$/ ){ print OUTPUT "\\usepackage{thai}\n"; $preamble = 0; break; } s/^\\usepackage.*{\s*inputenc.*}\n//; s/^\\usepackage.*{\s*babel.*}\n//; s/^\\usepackage.*{\s*t1enc.*}\n//; print OUTPUT; } else { print OUTPUT; } } close( INPUT ); close( OUTPUT ); } else { unless( $file =~ m/(.+)\.tex$/ ){ print STDERR "$0 needs .tex file\n"; &error; } rename( "$file", "$tempfile" ); } if( $option eq "t" ){ rename( "$tempfile", "$file" ); exit( 0 ); } else { system( "cttex < $tempfile > $file" ); system( "latex $file" ); rename( "$tempfile", "$file" ); } if( $option eq "p" ){ $psfile = "$rootname" . ".ps"; $dvifile = "$rootname" . ".dvi"; system( "dvips -o $psfile $dvifile" ); } exit( 0 ); #EOF ______________________________________________________________________ ¼ÙéãªéÊÒÁÒöàÃÕ¡¤ÓÊÑè§ sgmltlatex á·¹ sgml2latex ÊÓËÃѺàÍ¡ÊÒà SGML ·ÕèÁÕÀÒÉÒä·Â. ¶éÒµéͧ¡ÒüÅÔµàÍ¡ÊÒÃẺ .dvi, % sgmltlatex -d foo.sgml ËÒ¡äÁèÁÕ¢éͼԴ¾ÅÒ´à¡Ô´¢Öé¹, ¨Ðä´é foo.dvi ã¹ä´àá·ÍÃÕè·Õè·Ó§Ò¹ÍÂÙè. ¶éÒµéͧ¡ÒüÅÔµä¿ÅìẺ Postscript ãËéÊÑ觤ÓÊÑè§ % sgmltlatex -p foo.sgml ËÃ×ͶéÒµéͧ¡ÒüÅÔµàÍ¡ÊÒÃẺ LaTeX (.tex) ãËéãªé¤ÓÊÑè§ % sgmltlatex -t foo.sgml 㹡óշÕèãªé option "d" ËÃ×Í "p" ËÃ×Í "t" ¨Ðä´éä¿ÅìẺ LaTeX (.tex) ´éÇÂ. ¼ÙéãªéÊÒÁÒöá¡éä¢à¹×éÍËÒã¹ foo.tex áÅéÇÊÑ觤ÓÊÑ觴ѧ¹Õé % sgmltlatex -l foo.tex ¤ÓÊÑ觹Õé¨ÐàÃÕ¡ cttex ÁҵѴ¤ÓáÅÐÊ觵èÍãËé latex ¨Ñ´¡ÒÃ. ËÅѧ¨Ò¡¹Ñé¹ sgmltlatex ¨ÐºÑ¹·Ö¡ä¿Åì foo.tex ã¹ÃÙ»·Õè¼ÙéãªéÊÒÁÒöá¡éä¢ä´éÍÕ¡. «Öè§ËÁÒ¤ÇÒÁÇèÒ¼ÙéãªéäÁèÁÕ¤ÇÒÁ¨Óà»ç¹µéͧÊÑè§ cttex áÅÐ latex ¾ÃéÍÁ¡Ñ¹ÍÕ¡. à¹×èͧ¨Ò¡àÍ¡ÊÒÃẺ LaTeX ·Õè¼ÅÔµâ´Â SGML-tools µéͧ¡Òà linuxdoc- sgml.sty, qwertz.sty, url.sty, epsfig.sty áÅÐ null.sty 㹡ÒüÅÔµä¿Åì .dvi ¼Ùéãªéµéͧ configure â»Ãá¡ÃÁ latex ãËéÃÙéÇèÒä¿ÅìàËÅèÒ¹ÕéÍÂÙè·Õèä˹´éÇÂ. ÇÔ¸Õ·Õè§èÒ·ÕèÊØ´¤×Í¡çÍ»»Õéä¿ÅìàËÅèÒ¹Õé«Öè§ã¹¡Ã³Õ¢Í§¼Ùéà¢Õ¹¨ÐÍÂÙèãµéä´àá·ÍÃÕè /usr/local/lib/sgml-tools/ ÁÒäÇé·Õèä´àá·ÍÃÕè·ÕèÁÕä¿Åì .tex ÍÂÙèËÃ×Í·Ó symbolic link ¡çä´é. 44.. ºº··ÊÊÃÃØØ»» ¡ÒÃà¢Õ¹àÍ¡ÊÒà HOWTO ´éÇÂÀÒÉÒ SGML áÅÐãªé SGML-tools 㹡ÒÃá»Å§à»ç¹àÍ¡ÊÒÃÃٻẺÍ×è¹æ ·ÓãËé¡ÒÃà¢Õ¹àÍ¡ÊÒÃÁÕÃкºÃÐàºÕº¡ÇèÒ¡ÒÃà¢Õ¹àÍ¡ÊÒÃÃٻẺÍ×è¹æ. Êдǡ㹡ÒÃá¡éä¢àÍ¡ÊÒÃà¾ÃÒÐÊÒÁÒöá¡é¨Ò¡ä¿Åì SGML à´ÕÂÇ¡çÊÒÁÒöá¡éàÍ¡ÊÒÃÃٻẺÍ×è¹æä´é´éÇÂ. ¶éÒËÒ¡ÁÕàÍ¡ÊÒèӹǹÁÒ¡, ÂѧÊÒÁÒöµÕ¾ÔÁ¾ìà»ç¹Ë¹Ñ§Ê×Íä´é§èÒÂâ´Âãªé LaTeX ¨Ñ´¡ÒÃä¿ÅìµèÒ§æ «Öè§Ë¹Ñ§Ê×Íà¡ÕèÂǡѺ HOWTO ¢Í§ Linux ¡çãªéÇÔ¸Õ¹Õé㹡ÒþÔÁ¾ìà»ç¹Ë¹Ñ§Ê×Í¢ÒÂ. ¡ÒÃãªéÀÒÉÒä·Â¾Í¨Ð·Óä´éã¹ÃдѺ˹Öè§áÅеéͧ¡ÒáÒþѲ¹ÒµèÍä». 55.. ááËËÅÅè觧¢¢ééÍÍÁÁÙÙÅÅà྾ÔÔèèÁÁà൵ÔÔÁÁ · SGML-tools Homepage <http://www.sgmltools.org> · ¡ÒÃãªéÀÒÉÒä·Â¡Ñº LaTeX <http://www.fedu.uec.ac.jp/ZzzThai/Linux/thailatex/> · guide.sgml áÅÐ example.sgml «Öè§ÁҡѺ SGML-tools