Labels

Friday, September 28, 2012

LaTeX中文书签乱码解决办法(Ubuntu, texlive)

中文乱码一直是个非常头疼的问题,今天用LaTeX写一份作业,遇到了pdflatex生成的书签乱码的问题。Google了许久,无解。只在这儿看到了一个启发性的帖子。帖子里提到
The `CJKbookmarks' option should only be used for bookmarks *not* in Unicode.
由于Linux全系统默认Unicode(UTF8),所以根本不需要特殊的设置。如果.tex文件使用的是utf8编码,那么输出的pdf文件本就应该是正常的。因此我移除了hyperref选项中的CJKbookmarks=true选项并加上unicode选项,再用pdflatex编译,果然就正常了。模板如下,%后面是被注释掉的内容。
\documentclass[a4paper,12pt]{article}
\usepackage[%CJKbookmarks=true,
 colorlinks,
 linkcolor=black,
 anchorcolor=blue, 
 citecolor=green,
 unicode=true,
]{hyperref}
%由于作者和标题也含有中文,而此时还未加载中文宏包,所以不能使用中文。   
\usepackage[UTF8]{ctex}
\usepackage{CJKpunct}
\usepackage{indentfirst} 
\usepackage{fancyhdr}
\usepackage{amsmath}
\usepackage[hmargin = {2.54cm}, vmargin = {3.17cm}]{geometry}
\usepackage{titlesec}
%\usepackage{CJKutf8}

\hypersetup{pdfauthor={某某}, pdftitle={数学建模第一次实验}}
 要点:

  1. 中文宏包与hyperref宏包的加载顺序是重要的,以前在Windows下使用CTeX的时候就发现了这个问题。
  2. 在Linux里全局要使用UTF8编码,不要为了个别乱码听从网上的一些教程改系统locale,遇到乱码问题,尽量坚持使用UTF8编码。在整个系统全程使用一种编码(UTF8),既与国际接轨(好大的词儿),又可避免许多问题。Unicode是以后的趋势。
  3. 新建的tex源文件要使用UTF8编码,在编译器的选项里进行设置。
我的系统环境:
Ubuntu 12.04 LTS,Texlive 2012,Texworks和Texmaker,使用pdflatex生成pdf。

Sunday, September 23, 2012

Ubuntu Linux rar,zip压缩文件中文文件名乱码


从Windows平台传来的RAR和ZIP文件中的中文文件名采用的是GBK(网上这么说的)编码,而Ubuntu默认全系统采用UTF8编码,这就是各种乱码问题的根源。从这一点上说,Windows实在是可恶。Windows不同语言采用不同的本地化编码给国际化造成了非常大的不便,网上关于中文在Linux下乱码的求助帖子一搜搜到一大把。博主也常常把解决乱码作为博客内容。我想把各种乱码问题都汇聚起来,供后来者参考。这是第一篇。

  1. RAR文件乱码
  2. 这里说的乱码是指压缩包内的中文文件名乱码,如果是rar文件本身是乱码,请看下面的转换文件名的编码。如果安装了系统提供的比较旧的rar和unrar,首先缷载。命令为
    sudo apt-get remove rar unrar
    然后到WinRAR 的官方网站下载最新版,最新版的RAR已经解决了中文乱码的问题。地址:
    RAR 4.20 for LinuxCommand line onlyTrial916 KB
    RAR 4.20 for Linux x64Command line onlyTrial956 KB

    根据系统情况选择对应的版本。下载后cd到下载的文件所在目录。用下面的命令解压文件。
    tar xf rarlinux-*4.2.0.tar.gz 
    cd 到解压产生的文件夹,运行命令
    make
    完成安装。现在就可以正常解压RAR文件了。如
    unrar x 文件名.rar

  3. ZIP文件乱码
  4. zip文件乱码我还没找到一个一步完成的解决办法。现在得分两步走,先解压,再转文件编码:

    • 第一步 解压
    • 安装p7zip。Ubuntu软件中心里有这个软件,也可以命令行安装
      sudo apt-get install p7zip-full 
      依我看用我的方法未必需要full安装,只安装p7zip应该也可以,我电脑上已经full安装了,就不测试了。读者可以试一试。 现在打开zip文件还是乱码的。 (突然意识到不需要第一步的,直接第二步不就行了。。。。既然写了,先放在这儿吧)

    • 第二步 转换文件名编码
    • 看下一节。。。。


  • 转换文件名的编码

  • 首先、安装 convmv
    sudo apt-get install convmv
    然后cd到有乱码文件的文件夹
    convmv -f GBK -t UTF-8  --notest  *.mp3
    convmv 会判断文件是不是UTF-8编码,如果已经是了,会自动跳过。所以不用担心正常的文件会被转成乱码。(这一点很有用,在解决mp3标签乱码的时候网上推荐最多的工具不自动判断,结果把我许多原本正常的文件转成筹码了,没处说去啊当了小白鼠了,改天把那个方法也写下来,免得更多人和我一样。)

    黑我程序猿-今天看到的最好笑的笑话

    如果你ctrl+alt+del,

    蹦出任务管理器,

    你从上到下扫一眼,

    所有的进程你都认识,

    知道他们是干什么的,

    并且知道关掉有什么后果,

    而且你还能从CPU和内存占用的数字跳动上清楚的知道电脑现在什么状态,

    那么你应该没有女朋友。

    Saturday, September 22, 2012

    Ubuntu 12.04 Texlive2012 中文支持

    找的好辛苦~~~~终于找到了一个解决办法,而且是从我们学校一个学长的博客那里看来的。还是好一点的学校出来的人靠谱一点~~~~
    最初出处:http://astroman.lamost.org/dbs/archives/10296

    虽然这是一个傻瓜式教程,阅读本文你还是需要大致的了解:kile,latex。如不了解请自行google,不多作介绍。
    (楼主注:kile不是必需的,只是用来写LaTeX源文件,可以使用任何编辑器,楼主使用的是自定义安装的Texlive 2012)
    linux下自行安装的kile不支持中文,当然,一般用kile写专业学术论文也用不着中文。但身在国内是无论如何都不可避免的要接触到中文的,好吧,废话少说,下面教你实现中文。
    大致走以下几步:

    1. 安装TexLive
    2. sudo apt-get install texlive texlive-math-extra texlive-latex-base texlive-latex-extra texlive-latex-recommended texlive-pictures texlive-science texlive-bibtex-extra texlive-common latex-beamer(install后面的内容不是固定的,可根据需要安装你所需要的包)

    3. 安装CJK相关软件包
    4. sudo apt-get install latex-cjk-chinese ttf-arphic-* hbf-*(或者sudo apt-get install latex-cjk-all本文只说安装中文,这个命令足够了)

    5. 配置字体
    6. 当时我按网上提供的配置方法没走的通,不是方法的问题,是我没完全理解如何配置,在这我提供一个比较简单的方法,很快就可以搞定,点击下载nsungt1-1.4.2.tar.gz,解压后在终端运行 ./install.sh即可。 学长提供了另一个下载地址:http://ftp.twaren.net/local-distfiles/tex/cjk/fonts/nsungt1/ 

    7. 最后一步
    8. sudo vim /var/lib/texmf/web2c/updmap.cfg
      在最后一行输入:
      Map cjk.map
      保存退出

    实例测试:

    打开kile—new file —emperty document,输入:
    \documentclass{article}
    \usepackage{CJKutf8}
    \begin{document}
    \begin{CJK}{UTF8}{nsung}
      你好,中国!  
    \end{CJK}
    \end{document}
    
    用latex或者pdflatex 编译也可以,kile不是必要的。