您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > latex_hyperref_生成PDF书签乱码的解决方案
Latex中使用dvipdfm转换方式hyperref包生成PDF中文书签乱码的解决方案【下载】gbk2uniTeX生成pdf文件时中文书签经常出现乱码,网上讨论颇多,解决方法之一是用gbk2uni把.out文件中的GBK编码转化为Unicode编码后再编译一遍。这个gbk2uni是cxterm、张林波和HookLee共同开发的,点击这里下载,解压后可以把gbk2uni.exe拷入path所在路径,比如MiKTeX的安装目录texmf\miktex\bin下。使用方法如下:Linux命令行编译顺序如下:$latexmain.tex$bibtexmain.tex$latexmain.tex$gbk2unimain.out$latexmain.tex$dvipdfmmain.dviDOS用批处理编译的话与些相似(省略了扩展名):latexmainbibtexmainlatexmaingbk2unimainlatexmaindvipdfmxmain参考链接:1.://编码的,比如用的最多的UTF-8或其他编码,这种方式就会失效,因为gbk2uni依然按照GBK字符去转换,为了和国际接轨(^^),建议统一使用UTF-8进行latex文档的编写,为了正常生成PDF标签,我使用java做了一个工具可以辅助生成。此工具支持所有编码类型的转换。解决方案LatexHyperrefCharsetTool实例文档%@charset:UTF-8%可用字体songfsheikailiyou%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%导言区%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\documentclass[9pt,b5paper]{article}\usepackage{CJKutf8}%导言区使用中文,必须引入一个CJK环境\begin{CJK*}{UTF8}{song}\end{CJK*}\usepackage{indentfirst}\setlength{\parindent}{2em}%中文缩进两个汉字位\renewcommand{\baselinestretch}{1.2}%行距\usepackage[dvipdfm,%需要使用dvipdfm或dvipdfmx进行pdf生成pdfstartview=FitH,CJKbookmarks=true,%unicode=true,%不要让latex自动转换unicode字符会出现各种问题bookmarksnumbered=true,bookmarksopen=true,colorlinks=true,%注释掉此项则交叉引用为彩色边框(将colorlinks和pdfborder同时注释掉)%pdfborder=001,%注释掉此项则交叉引用为彩色边框citecolor=magenta,%magenta,cyanlinkcolor=blue,linktocpage=true,]{hyperref}%hyperref宏包通常要求放在导言区的最后!!!\renewcommand\contentsname{\hfil{}目~~~~~录}%目录文字%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%正文%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{document}\begin{CJK*}{UTF8}{song}\tableofcontents%目录\section{中华人民共和国}这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。\subsection{モバイル}``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。TeXworks是在TUG(TeXUsersGroup)的支持下正在开发的一个全新的TeX/LaTeX编辑器。它的首要特点如下:自带了一个pdf浏览器,编辑latex文件时可以迅速预览排版后的pdf文件;默认情况下latex编辑窗口在左边,pdf浏览窗口在右边,各占一半桌面,在大屏幕宽屏显示器显示的效果最好不过了。还有就是它的设计目标是简单易用,所以只支持直接生成并预览pdf,避免dvi,ps,pdf各种文件格式对初学者的干扰。AllpackagesusingGNUAutomaketoproducedistributiontarballswithmakedistshouldupdatetothe1.11.1or1.10.3release,orotherwiseworkaroundtheproblem.\section{日本語のページを検索}\subsection{亴壪惸蠪衋}\subsection{Цкюёя}\subsection{Rechercheavancéed'entreprise}\section{België}\section{Ελλάδα}这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是%解决bug创建新页\newpage{}\end{CJK*}\end{document}注意此文档必须使用UTF-8编码1检查您机器上的java环境是否正确(需求:JRE/JRE1.5+下载)。2将Charset2Unicode.class文件放入与此文件相同的目录下。3执行编译(建议编写批处理文件)。批处理文件实例latext_UTF-8java-classpath.Charset2UnicodeUTF-8t_UTF-8.outlatext_UTF-8dvipdfmxt_UTF-8t_UTF-8是文件名(省略后缀)编译结果(运行t_UTF-8.pdf)可见PDF一切正常。附1GBKtex文件实例及编译脚本%@charset:GBK%可用字体songfsheikailiyou%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%导言区%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\documentclass[9pt,b5paper]{article}\usepackage{CJK}%导言区使用中文,必须引入一个CJK环境\begin{CJK*}{GBK}{song}\end{CJK*}\usepackage{indentfirst}\setlength{\parindent}{2em}%中文缩进两个汉字位\renewcommand{\baselinestretch}{1.2}%行距\usepackage[dvipdfm,%需要使用dvipdfm或dvipdfmx进行pdf生成pdfstartview=FitH,CJKbookmarks=true,%unicode=true,%不要让latex自动转换unicode会出现各种问题bookmarksnumbered=true,bookmarksopen=true,colorlinks=true,%注释掉此项则交叉引用为彩色边框(将colorlinks和pdfborder同时注释掉)%pdfborder=001,%注释掉此项则交叉引用为彩色边框citecolor=magenta,%magenta,cyanlinkcolor=blue,linktocpage=true,]{hyperref}%hyperref宏包通常要求放在导言区的最后!!!\renewcommand\contentsname{\hfil{}目~~~~~录}%目录文字%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%正文%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%\begin{document}\begin{CJK*}{GBK}{song}\tableofcontents%目录\section{中华\{哈\}人民共和国}\subsection{1}\section{二}\subsection{1}\subsubsection{1}这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。TeXworks是在TUG(TeXUsersGroup)的支持下正在开发的一个全新的TeX/LaTeX编辑器。它的首要特点如下:自带了一个pdf浏览器,编辑latex文件时可以迅速预览排版后的pdf文件;默认情况下latex编辑窗口在左边,pdf浏览窗口在右边,各占一半桌面,在大屏幕宽屏显示器显示的效果最好不过了。还有就是它的设计目标是简单易用,所以只支持直接生成并预览pdf,避免dvi,ps,pdf各种文件格式对初学者的干扰。AllpackagesusingGNUAutomaketoproducedistributiontarballswithmakedistshouldupdatetothe1.11.1or1.10.3release,orotherwiseworkaroundtheproblem.\section{嘿嘿}这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。这是中文。``哈哈''。%解决bug创建新页\newpage{}\end{CJK*}\end{document}脚本latexgbk_1java-classpath.Charset2UnicodeGBKgbk_1.outlatexgbk_1dvipdfmxgbk_1附2Charset2Unicode源代码importjava.io.BufferedReader;importjava.io.File;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.nio.charset.
本文标题:latex_hyperref_生成PDF书签乱码的解决方案
链接地址:https://www.777doc.com/doc-2880357 .html