all gone

          all gone

          2006年8月11日 #

          Ubuntu UTF8環境下搭建中文LaTeX環境

          1. 基本包的安裝
          sudo apt-get install tetex-base tetex-bin tetex-extra
          1. CJK包安裝
          sudo apt-get install latex-cjk-chinese
          1. CJK UTF8字體生成
          將下面的code復制到文件cvtfont.sh中:

          #!/bin/sh
          #
          # Origin By Edward G.J. Lee
          2001.11.25
          # http:
          //www.study-area.org/tips/latex/pdftex.html
          # This code is Public Domain.
          #
          # Enhanced by intron@intron.ac,
          2006.1.9
          # Modified
          for NetBSD by jungle@soforge.com, 2006.1.14
          # Italic support added by robert.zhangle@gmail.com,
          2006.5.19
          #

          if [ $# -ne 3 ]
          then

          cat
          << EOF
          Usage: `basename $
          0` font.ttf <TeX_Internal_Font_Name> <Tex_Font_Name>
          <TeX_Internal_Font_Name>: Used to name *.enc, *.afm, *.pfb, *.tfm & *.map
          <Tex_Font_Name>: Used in TeX source: \\CJKencfamily{UTF8}{Tex_Font_Name}

          An example: `basename $
          0` gbsn00lp.ttf gbsn00lp songpt1

          EOF

          exit
          1
          fi

          if ! which ttf2pt1; then
          echo
          "Please install pkgsrc fonts/ttf2pt1 before you can run me."
          exit
          1
          fi

          if ! which t1asm; then
          echo
          "Please install pkgsrc fonts/t1utils before you can run me."
          exit
          1
          fi

          if ! which extconv; then
          echo
          "Please install pkgsrc chinese/CJK before you can run me."
          exit
          1
          fi


          cat
          <<EOF
          ***************************************************************************
          * Please confirm that current working directory is EMPTY except scripts *
          * and HAS ENOUGH SPACE to contain so many intermediate files. *
          * If it is not empty, this script may DAMAGE INNOCENT FILES!!! *
          ***************************************************************************
          EOF

          read
          -p "Go ahead?[n]" a

          if [ "$a" != "y" ] && [ "$a" != "Y" ]; then
          exit
          0
          fi

          FONTFILENAME
          ="$1"
          FONTNAME
          ="$2"
          FONTTEXNAME
          ="$3"

          #TEXMFHOME
          =`kpsexpand '$TEXMFHOME'`
          TEXMFMAIN
          =`kpsexpand '$TEXMFMAIN'`
          TEXMFHOME
          ='/usr/share/texmf-tetex/'
          TTFONTFILEDIR
          =${TEXMFHOME}/fonts/truetype/chinese/
          ENCDIR
          =${TEXMFHOME}/fonts/enc/dvips/chinese/${FONTNAME}
          AFMDIR
          =${TEXMFHOME}/fonts/afm/chinese/${FONTNAME}
          TFMDIR
          =${TEXMFHOME}/fonts/tfm/chinese/${FONTNAME}
          PFBDIR
          =${TEXMFHOME}/fonts/type1/chinese/${FONTNAME}
          MAPDIR
          =${TEXMFHOME}/fonts/map/dvips/chinese

          UPDMAPCFG
          =${TEXMFHOME}/web2c/updmap.cfg

          if [ ! -f $UPDMAPCFG ]
          then
          SYSUPDMAPCFG
          =`kpsewhich -format 'web2c files' updmap.cfg`
          cp $SYSUPDMAPCFG $UPDMAPCFG
          fi

          CIDXMAP
          =${TEXMFHOME}/dvipdfm/config/cid-x.map

          if [ ! -f $CIDXMAP ]
          then
          touch $CIDXMAP
          fi

          CJKDIR
          =${TEXMFMAIN}/tex/latex/CJK/UTF8

          INSTALLDIRMODE
          ="-m 0755"
          INSTALLMODE
          ="-m 0644"

          FONTFILEBASENAME
          =`basename "$FONTFILENAME"`
          FDNAME
          =c70${FONTTEXNAME}.fd

          #MAPFILE
          =/usr/local/share/ttf2pt1/maps/cugb.map
          PLANENUM
          =255

          # Initialize ${FONTNAME}.map
          echo
          -n "" > ${FONTNAME}.map


          n
          =0

          echo
          "Generating subfonts from plane $n to plane $PLANENUM ..."

          while [ $n -le $PLANENUM ]
          do
          m
          =`printf %02x $n`

          echo
          -n "[$n]"

          SUBFONTNAME
          =${FONTNAME}${m}

          # Generate
          *.t1a *.afm *.enc
          ttf2pt1
          -GAE -pft -OHUBs -W0 -l plane+pid=3,eid=1,0x$m \\
          "$FONTFILENAME" ${SUBFONTNAME}

          # avoid dvips(k)(before v5.
          86) t1part module bug.
          perl
          -pi -e 's/_/Z/g' ${SUBFONTNAME}.t1a ${SUBFONTNAME}.afm

          # Generate
          *.pfb
          t1asm
          -b ${SUBFONTNAME}.t1a > ${SUBFONTNAME}.pfb 2>/dev/null

          # Generate
          *.tfm
          afm2tfm ${FONTNAME}$m.afm ${FONTNAME}$m.tfm
          >/dev/null
          afm2tfm ${FONTNAME}$m.afm
          -s .167 ${FONTNAME}sl$m.tfm >/dev/null

          # Generate ${FONTNAME}.map
          AFMNAME
          =`grep -m 1 -i fontname ${SUBFONTNAME}.afm | cut -d ' ' -f 2`
          echo
          "${FONTNAME}$m ${AFMNAME} <${FONTNAME}$m.pfb" >> ${FONTNAME}.map
          echo
          "${FONTNAME}sl$m ${AFMNAME} \\" .167 SlantFont \\" <${FONTNAME}$m.pfb" \\
          >> ${FONTNAME}.map

          n
          =`expr $n + 1`
          done

          echo

          cat
          > ${FDNAME} << EOF
          % This file is automatically generated by `basename $0`
          \\\\def\\\\fileversion{
          0.0.1}
          \\\\def\\\\filedate{`date
          +%Y/%m/%d`}
          \\\\ProvidesFile{${FDNAME}}[\\\\filedate\\\\space\\\\fileversion]

          \\\\DeclareFontFamily{C70}{${FONTTEXNAME}}{\\\\hyphenchar \\\\font\\\\m@ne}

          \\\\DeclareFontShape{C70}{${FONTTEXNAME}}{m}{n}{
          <-> CJK * ${FONTNAME}}{}
          \\\\DeclareFontShape{C70}{${FONTTEXNAME}}{bx}{n}{
          <-> CJKb * ${FONTNAME}}{\\\\CJKbold}
          \\\\DeclareFontShape{C70}{${FONTTEXNAME}}{m}{it}{
          <-> CJK * ${FONTNAME}sl}{}
          \\\\DeclareFontShape{C70}{${FONTTEXNAME}}{bx}{it}{
          <-> CJKb * ${FONTNAME}sl}{\\\\CJKbold}
          \\\\DeclareFontShape{C70}{${FONTTEXNAME}}{m}{sl}{
          <-> CJK * ${FONTNAME}sl}{}
          \\\\DeclareFontShape{C70}{${FONTTEXNAME}}{bx}{sl}{
          <-> CJKb * ${FONTNAME}sl}{\\\\CJKbold}

          \\\\endinput
          EOF


          #exit
          0;

          echo
          echo
          "Installing ..."

          install
          -d $INSTALLDIRMODE $TTFONTFILEDIR $ENCDIR $AFMDIR $TFMDIR $PFBDIR $MAPDIR $CJKDIR

          install $INSTALLMODE $FONTFILENAME $TTFONTFILEDIR

          n
          =0
          while [ $n -le $PLANENUM ]
          do
          m
          =`printf %02x $n`
          echo
          -n "[$n]"

          install $INSTALLMODE ${FONTNAME}${m}.enc $ENCDIR
          install $INSTALLMODE ${FONTNAME}${m}.afm $AFMDIR
          install $INSTALLMODE ${FONTNAME}${m}.tfm $TFMDIR
          install $INSTALLMODE ${FONTNAME}sl${m}.tfm $TFMDIR
          install $INSTALLMODE ${FONTNAME}${m}.pfb $PFBDIR

          n
          =`expr $n + 1`
          done

          echo

          install $INSTALLMODE ${FONTNAME}.map $MAPDIR
          install $INSTALLMODE $FDNAME $CJKDIR

          echo
          >> $UPDMAPCFG
          echo
          "Map ${FONTNAME}.map" >> $UPDMAPCFG

          # update cid
          -x.map

          echo
          "${FONTNAME}@Unicode@ unicode :0:${FONTFILENAME}" >> $CIDXMAP
          echo
          "${FONTNAME}sl@Unicode@ unicode :0:${FONTFILENAME}" >> $CIDXMAP

          mktexlsr

          #updmap
          -sys
          updmap

          read
          -p "Do you want remove all intermediate files?[n]" a
          if [ "$a" = "y" ] || [ "$a" = "Y" ]; then

          n
          =0
          while [ $n -le $PLANENUM ]
          do
          m
          =`printf %02x $n`
          echo
          -n "[$n]"

          rm
          -f ${FONTNAME}${m}.enc ${FONTNAME}${m}.afm ${FONTNAME}${m}.t1a \\
          ${FONTNAME}${m}.pfb ${FONTNAME}sl${m}.tfm ${FONTNAME}${m}.tfm

          n
          =`expr $n + 1`
          done

          echo

          rm
          -fv $FDNAME ${FONTNAME}.map
          fi

          echo
          echo
          "OK, all done. :-)"
          echo


          根據自己的需要可以將TEXMFHOME目錄設置成不同的地方,只要Latex能找到即可
          我將該目錄改為了/usr/share/texmf-tetex,如果相應的目錄不存在,則需要自己新建。


          將windows系統中的字體文件拷到腳本所在目錄執行腳本即可生成Latex所需字體文件,以simhei.ttf為例:

          sudo ./cvtfont.sh simhei.ttf simhei simhei







          posted @ 2007-05-16 13:34 all gone 閱讀(1127) | 評論 (0)編輯 收藏

          Struts2 入門

               摘要: 很久沒有看Java相關的東西了,這幾天才發現Struts2 已經發布了,以前就聽說Struts2就是以前的Webwork2,只是作了少許的改動而已,我以前也沒看過Webwork,所以趕緊下來試了一把。Struts2的地址:http://struts.apache.org/2.x在Eclipse中新建了一個Tomcat工程(如果用WTP插件的話Dynamic Web工程)struts2Test,以下...  閱讀全文

          posted @ 2007-01-08 21:59 all gone 閱讀(8488) | 評論 (8)編輯 收藏

          Ubuntu下NVIDIA驅動的問題

          前幾天按照Ubuntu How-To上的NVIDIA驅動安裝說明安裝了8672版的驅動,結果發現只要退出X-Window,系統就會沒有反應,網上搜了搜,發現有人也有一樣的情況,按照說明重新安裝、重新配置Xorg,問題依然沒有解決,X-Window也起不來了。

          到NVIDIA網站上下了最新的8774版驅動后,趕緊找找看怎么自己裝,有人已經寫好了
          在恢復模式下:
          需要gcc支持,如果沒有安裝則:
          apt-get install build-essential gcc
          刪除已經安裝的NVIDIA驅動:
          apt-get --purge remove linux-restricted-modules-`uname -r` linux-restricted-modules-common nvidia-glx nvidia-settings nvidia-kernel-common
          安裝內核headers
          apt-get install linux-headers-`uname -r`
          將下載下來的NVIDIA-Linux-x86-1.0-8774-pkg1.run解壓縮:
          sh ./NVIDIA-Linux-x86-1.0-8774-pkg1.run --extract-only
          進入解壓后的NVIDIA-Linux-x86-1.0-8774-pkg1文件夾,執行安裝:
          ./nvidia-installer -n --x-prefix=/usr/lib/xorg/
          最后由于默認安裝到了/usr/lib/xorg/lig/xorg,需要將文件拷到對應的目錄下:
          cp --no-dereference /usr/lib/xorg/lib/xorg/libX* /usr/lib/xorg/modules/

          cp /usr/lib/xorg/lib/xorg/modules/drivers/* /usr/lib/xorg/modules/drivers/

          cp --no-dereference /usr/lib/xorg/lib/xorg/modules/extensions/* /usr/lib/xorg/modules/extensions/

          posted @ 2006-09-22 15:42 all gone 閱讀(1050) | 評論 (0)編輯 收藏

          Qt 4下連接MySQL數據庫

          前天剛裝了個Qt4for windows,發現安裝的時候MySQL等數據庫插件都沒有安裝,像Qt X11版一樣,都需要自己安裝這些插件。

          在Qt的安裝目錄C:\Qt4.1.2\下,有個src目錄,進入plugins\sqldrivers\mysql,可以看到兩個文件,main.cpp和mysql.pro,很顯然要用qmake來完成編譯、生成目標。

          編譯前,首先保證依賴的MySQL頭文件和庫文件正確。首先MySQL安裝目錄下的include中的所有文件拷到qmake時能找到的目錄下,接著從lib/opt目錄下拷出libmysql.a,其實lib/opt下只有libmysql.lib和libmysql.dll,從網上搜了一下找到一個方法從libmysql.dll生成libmysql.a:

          1 、安裝好MySQL (如果不愿意安裝,找個libmySQL.dll文件也可以)

          2、下載Pexports工具

          3、轉換操作: pexports libmysql.dll > libmysql.def

          4、使用MinGW的 dlltool轉換成為libmysql.a文件。dlltool --input-def libmysql.def --dllname libmysql.dll --output-lib libmysql.a -k

          5、嘗試是否成功:
          將生成的libmysql.a 拷到qmake的lib搜索路徑下后在plugins\sqldrivers\mysql目錄下做:
          qmake -project
          qmake
          make

          如果再出現象mysql_connect@xx (xx是數字)的錯誤提示。就執行第6步。

          6、修改libmysql.def文件,給mysql_connect加上@xx,即mysql_connect@xx

          7、重做第4步

          8、然后嘗試第5步,如果還是出現錯誤提示。就作第6步。一直到沒有錯誤為止。

          最后C:\Qt4.1.2\plugins\sqldrivers下將會生成需要的libqsqlmysql.a和qsqlmysql.dll。

          找了一個測試文件,通過。
          #include?<QtSql>?
          #include?<QtGui>?


          bool?createConnection(){?
          QSqlDatabase?db?
          =?QSqlDatabase::addDatabase("QMYSQL");?
          db.setHostName("localhost");?
          db.setDatabaseName("test");?
          db.setUserName("test");?
          db.setPassword("");?

          if(!db.open()){?
          QMessageBox::critical(
          0,?QObject::tr("Database?Error"),?
          ??????????????????????????????db.lastError().text())
          ;?

          return?false
          ;?
          }?

          QSqlQuery?query
          ;?
          //query.exec("insert?into?book?values(?3,?'title',?'author')?");?
          query.exec("select?title?,?author?from?book?");?

          while?(query.next())?{?


          ????QString?title?
          =?query.value(0).toString();?
          ????QString?author?=?query.value(1).toString();?

          QMessageBox::critical(
          0,?title,author);?
          ????
          }?


          return?true
          ;?
          }?



          int?main(int?argc
          ,char**?argv){?

          QApplication?app(argc
          ,?argv);?
          ????if?(!createConnection()){?

          return?
          1;?
          }?
          ????????

          ????return?app.exec()
          ;?


          }?

          posted @ 2006-08-28 20:57 all gone 閱讀(2736) | 評論 (0)編輯 收藏

          EJB3.0 + Struts小試

               摘要: 一直想做一個 EJB3.0 結合 Struts 的例子,前天剛好從網上找到了一個相關的 Tutorial ,于是小試了一把,雖然只是完成了 Tutorial 上的一小點功能,但是感覺還是有必要寫下來,免得以后還要再去看別人的Tutorial 。 開發環境:?? ??? Eclipse3.2 + WTP1.5 , JBoss 4.0.3SP1 , jboss-EJB-3.0_RC...  閱讀全文

          posted @ 2006-08-11 13:52 all gone 閱讀(3069) | 評論 (0)編輯 收藏

          主站蜘蛛池模板: 桐庐县| 南漳县| 宝丰县| 突泉县| 定安县| 三明市| 松原市| 军事| 鱼台县| 新邵县| 定结县| 崇信县| 喀什市| 莒南县| 连山| 江油市| 黄山市| 贵港市| 吴江市| 五指山市| 永吉县| 平顶山市| 沈阳市| 壤塘县| 北宁市| 临颍县| 山丹县| 西藏| 依兰县| 县级市| 泰宁县| 尤溪县| 广德县| 崇阳县| 阳朔县| 丽水市| 象山县| 朔州市| 长白| 蓬溪县| 沁阳市|