跳转至

本地TeX Live + PDFLaTeX + CCT

该方法为最折腾的本地编译方式, 请谨慎选择该方法. 另一方面, 该方法可能对于其它中文模板的编译有所帮助.

提前准备的东西

  • 尽可能最新的TeX Live, 搭配一个编辑器(如VSCode, Sublime Text)更好

  • 如果有旧版的CTEX套装, 请直接卸载

  • 下载最新版SSI模板至本地

  • 下载picins宏包至本地, 将picins.sty移动至texlive/texmf-local/tex/latex/picins文件夹内, 并执行texhash/mktexlsr刷新宏包数据库

  • 下载CCT宏包合集至本地, 将解压后的目录结构(即fonts, makeindextex三个文件夹)移动至texlive/texmf-local文件夹内, 并执行texhash/mktexlsr刷新宏包数据库

编译步骤

  • 为了避免PDF文件复制时出现乱码, 需要在tex源文件的导言区加入如下语句:
document.tex
\documentclass{SCIS2022cn}
\usepackage{ccmap}
...
\begin{document}
...
  • 修改模板文件SCIS2022cn.cls的如下加粗地方:
SCIS2022cn.cls
...
\RequirePackage[pdfstartview=FitH,colorlinks,breaklinks,linkcolor=black,citecolor=black,filecolor=black,urlcolor=black,hyperindex,CJKbookmarks]{hyperref}
% \RequirePackage[pdfstartview=FitH,colorlinks,breaklinks,linkcolor=black,citecolor=black,filecolor=black,urlcolor=black,hyperindex,CJKbookmarks]{hyperref}
\RequirePackage{breakurl}
\RequirePackage{titlesec}
...
\usepackage[bf,footnotesize,labelsep=quad]{caption}
\captionsetup[subfloat]{labelformat=simple,captionskip=0pt}
\captionsetup[subfloat]{labelformat=simple,aboveskip=0pt,belowskip=0pt}
\captionsetup[table]{aboveskip=1mm}
\captionsetup[figure]{aboveskip=3mm}
\captionsetup[algorithm]{font=footnotesize}
  • 使用PDFLaTeX编译两次(或者使用latexmk这样的自动化工具)

该方法的优点

  • 没有什么优点, 唯一的优点就是锻炼动手能力

该方法的不足

  • 非常折腾, 如果没有相应字体会更加折腾

另外的编译方法

  • 参考此页面, 如果你已经下载了本页面提供的CCT宏包合集, 不需要下载其中的CCT_TDS.zip文件, 只需要在tex源文件\begin{document}之前加入如下语句:
document.tex
\documentclass{SCIS2022cn}
...
\AtBeginDvi{\input{zhwinfonts}} 
\begin{document}
...
  • 如果你使用了TeX Live 2021及以上版本, 由于LaTeX3的引入和ifpdf宏包的修改, zhmetrics中的zhwinfonts宏包已经不再适用, 需要进行修改:
texlive/xxxx/texmf-dist/tex/generic/zhmetrics/zhwinfonts.tex
...
\input ifpdf.sty 
\input iftex.sty 

\ifpdf
   \pdfmapline{=gbk@UGBK@ <simsun.ttc} 
   \pdfmapline{=gbksong@UGBK@ <simsun.ttc}
... 

额外的说明

  • 由于调用字体的原因, 第一次编译耗时可能较长, 后续由于字体缓存已经被建立, 耗时不会很长

  • 注释掉hyperref宏包的原因: 由于新版hyperref宏包与CCT不兼容, 此时如果出现\section, \subsection或者\subsubsection指令, 且指令中出现中文, CCT宏包中的部分指令会出现死循环调用. 注释掉该宏包对后续编译几乎无影响, 如果实在不想注释掉hyperref宏包, 可以下载由CTEX中提取出的hyperref.styhpdftex.def, 并将这两个文件放在SSI模板的同级目录中

  • CCT宏包中的字体由CTEX套装中的FontSetup.exe提取而来, 首先会得到一个chinese文件夹, 文件结构如下:

/chinese
- /gbkfs
- /gbkhei
- /gbkkai
- /gbksong
- /unifs
- /unihei
- /unikai
- /unisong
  • 此时直接编译文件仍然会缺失字体, 我们使用了如下脚本进行了字体转换:
convert_font.py
for filename in os.listdir(source_dir):
    newfilename = filename.replace('song', '')
    os.rename(os.path.join(source_dir, filename), 
              os.path.join(source_dir, newfilename))

最后更新: 2022-08-08
Back to top