正常用 ctex 文档类或宏包,这种琐碎的技术细节都会帮你解决的。如版面置顶所说,现在推荐用 xelatex 或 lualatex 命令编译,ctex 文档类或宏包处理中文。(那个置顶是 2013 年的代码,也过分复杂了,现在更统一了)
单纯对 .out 文件 iconv 我记得不行的,也不是预设的解法。hyperref 有自己一套编码转换的选项和码表,要用对则又与具体编译方法相关,甚至在 xelatex 引擎下乱设置也可能出问题。
参考源码
https://github.com/CTeX-org/ctex-kit/blob/5bdb9cbaca6467e92ec9bd7726e2b3bdd1943303/ctex/ctex.dtx#L6583
根据你编译方式的不同,做法不一样。例如 gbk 编码用 pdflatex 或 latex+dvipdfmx 编译处理pdf标签可能需要正确使用 \special 命令或用 xCJK2uni 宏包载入变换码表,配合 hyperref 的 CJKbookmarks 选项。UTF8 编码编译就又不一样。细节比较琐碎,如此等等。
总之,ctex 宏包写出来就是为了给人用的,你也最好用它。大部分人自己做的轮子都不圆。
用模板的话,据我所知近年的高校毕业论文模板都已 ctex 包为底层了,包括历史最久的清华模板也早改了。如果是投稿国内刊物,pdf 标签无所谓吧。
【 在 devuser 的大作中提到: 】
: 如题
: --
: FROM 106.121.68.*
--
修改:milksea FROM 114.249.192.*
FROM 114.249.192.*