LaTeX 技巧 802:国内期刊 CCT 模板编译经验
国内有不少期刊依旧在使用过时的 CCT 方式来支持中文,这些模板非常相似,似乎系出同源。由于这些模板在现代的 TeX 发行版内无法正确编译,对不少投稿人造成困扰,所以我写下这篇文章,希望对投稿人有一些帮助。
模板特征
这些模板的导言区内代码大致如下:
|
1
2
3
4
5
6
7
8
|
\documentclass[twoside]{cctart}\usepackage{headrule,vatola,amssymb}\usepackage{graphicx,multirow,bm}\usepackage{booktabs,dcolumn}\newcolumntype{z}[1]{D{.}{.}{#1}}\usepackage{tabularx}\usepackage{slashbox}%\usepackage{footmisc,perpage} |
提取出以下几条特征:
\documentclass里载入cctart文档类;载入了
vatola宏包;载入了
headrule宏包;载入了
slashbox宏包。
如果你手上的模板符合这些特征,那么这篇文章将对你有帮助。
列表
这里给出一个列表,记录使用此类模板的期刊。如果你发现你投稿的期刊也使用了这样的模板(符合上述特征),请留言告诉我;我将会及时补充到列表当中,方便后来者。
问题分析
这些模板使用的文档类是 cctart,是 CCT 系统的一部分。CCT 系统是早年的一个中文支持方式,现在已经过时。虽然 CTeX 里还保留了 CCT,但是和这些编写模板时的版本已经不同;至于 TeX Live 里,根本就没有 CCT 系统。所以,编译报错也就是自然而然的事情了。
模板使用了 vatola 和 headrule 两个宏包。这两个宏包均是 LaTeX 2.09 时代的陈旧宏包;他们的功能已为其他宏包所替代。因此,现代的发行版(TeX Live、CTeX 2.9.2.164)不再包含这些宏包;于是,编译的时候会提示缺少宏包的错误。
此外,虽然 slashbox 宏包是为当前的 LaTeX 2e 设计的,但是它的许可协议与 TeX Live 的协议有冲突,因此 TeX Live 中并不包含这个宏包。于是,如果你的 TeX 发行版是 TeX Live,那么编译的时候也会提示错误。
解决方案
陈旧的模板与现代的 TeX 发行版之间的矛盾不可调和,因此必有一方需要妥协。
如果你坚持不改动模板,那么就只好使用与模板同时代的 TeX 发行版。当然,你必须使用 Windows 操作系统。
你可以到下载 CTeX 2.4.6 并安装。CTeX 2.4.6 里的 WinEdt 有一个 CCTLaTeX 按钮,点击它之后,可以正确编译得到 .dvi 和 .ps 文件,如果需要 .pdf 文件可以用 ps2pdf 工具转换。
如果你坚持使用现代的发行版,那么就需要对模板进行一些微调。这里提供两种方法,两种方法均适用于各个操作系统。
使用 ctexart
将
\documentclass里载入的文档类,从cctart更换为ctexart;下载本站提供的
vatola.sty和headrule.sty两个宏包文件(2014-12-17 更新);到 CTAN 上下载
slashbox宏包 并安装;将上述三个宏包安装至 TEXMFLOCAL,然后执行
texhash命令;或者直接将它们放在与模板文件相同的文件夹里面;使用 pdfLaTeX 编译,可以得到与原模板几乎完全一致的结果;
正式投稿时,只需要将
ctexart换回cctart即可。
安装新版 CCT 系统 (2014-12-21 更新)
下载 CCT 的 TDS 安装包;
将 TDS 安装包中的内容,解压合并至 TEXMFLOCAL 的相应目录;
将
\documentclass里文档类选项,从twoside更换为twoside, CJK;在
\documentclass之后加载ifpdf宏包:\usepackage{ifpdf};下载本站提供的 vatola.sty 和 headrule.sty 两个宏包文件(2014-12-17 更新);
到 CTAN 上下载 slashbox 宏包 并安装;
将上述三个宏包安装至 TEXMFLOCAL,然后执行
texhash命令;分情况讨论:
如果使用 Windows 系统,则在
\begin{document}之前添加一行命令\AtBeginDvi{\input{zhwinfonts}};如果使用 Mac OS X 或 Linux 系统,则需要安装好 Windows 的中易字体,然后在
\begin{document}之前添加一行命令\AtBeginDvi{\input{zhwinfonts}};如果使用 Mac OS X 或 Linux 系统,你也可以安装下列字库,然后在
\begin{document}之前添加一行命令\AtBeginDvi{\input{zhfzfonts}};方正书宋GBK:FZSSK.TTF
方正楷体GBK:FZKTK.TTF
方正黑体GBK:FZHTK.TTF
方正仿宋GBK:FZFSK.TTF
华文隶体:STLITI.ttf
华文琥珀:STHUPO.TTF
使用 pdfLaTeX 编译,可以得到与原模板完全一致的结果;
正式投稿时,只需要将添加的
CJK选项和ifpdf宏包以及\AtBeginDvi{}命令删除就可以了。
总结
总的来说 CCT 是一个过时的中文支持方式,非常希望系统工程理论与实践的编辑部能与时俱进改用新的方式支持中文,为所有作者提供方便。对于广大的 LaTeX 用户,除非特别需要,不要使用老旧的 TeX 发行,以增强文档的兼容性。
同时也希望各位作者向期刊编辑反映这个问题,尽快淘汰这些模板。
下载区
文中涉及文件下载:
CCT-full.zip
LaTeX 技巧 802:国内期刊 CCT 模板编译经验的更多相关文章
- 【转载】计算机视觉(CV)前沿国际国内期刊与会议
计算机视觉(CV)前沿国际国内期刊与会议这里的期刊大部分都可以通过上面的专家们的主页间接找到1.国际会议 2.国际期刊 3.国内期刊 4.神经网络 5.CV 6.数字图象 7.教育资源,大学 8.常见 ...
- 计算机视觉(CV)前沿国际国内期刊与会议
计算机视觉(CV)前沿国际国内期刊与会议1.国际会议 2.国际期刊 3.国内期刊 4.神经网络 5.CV 6.数字图象 7.教育资源,大学 8.常见问题 1. 国际会议现在,国际上计算机视觉方面的三大 ...
- LaTeX技巧96:LaTeX 图片控制命令,位置控制
LaTeX技巧96:LaTeX 图片控制命令,位置控制 2012-04-05 17:25:44 zd0303 阅读数 28512更多 分类专栏: Latex LaTeX 控制图片的位置,就是加感叹 ...
- LaTeX技巧472:定义一个LaTeX参考文献不带编号且有缩进的方法
LaTeX_Fun的博客 LaTeX技巧381:参考文献项第二行缩进如何定义? \makeatletter\renewenvironment{thebibliography}[1]{\section* ...
- C++ Primer 学习笔记_79_模板与泛型编程 --模板编译模型
模板与泛型编程 --模板编译模型 引言: 当编译器看到模板定义的时候,它不马上产生代码.仅仅有在用到模板时,假设调用了函数模板或定义了模板的对象的时候,编译器才产生特定类型的模板实例. 一般而言,当调 ...
- LaTeX技巧561:LaTeX如何让每一章带有目录?
转自: http://blog.sina.com.cn/s/blog_5e16f1770102ds8b.html LaTeX技巧561:LaTeX如何让每一章带有目录? [问题描述] 当前章节列出该章 ...
- vue模板编译
Vue 的模板编译是在 $mount 的过程中进行的,在 $mount 的时候执行了 compile 方法来将 template 里的内容转换成真正的 HTML 代码. complie 最终生成 re ...
- 【转】【Html】Vuejs2.0学习之二(Render函数,createElement,vm.$slots,函数化组件,模板编译,JSX)
1.Render函数 所以直接来到Render,本来也想跳过,发现后面的路由貌似跟它还有点关联.先来看看Render 1.1 官网一开始就看的挺懵的,不知道讲的是啥,动手试了一下,一开头讲的是Rend ...
- smarty 模板编译和变量调节器 模板引入
<?php require './smarty/Smarty.class.php'; $sm = new Smarty; //$sm->force_compile = true; $sm- ...
随机推荐
- mongoose报错:DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.
mongoose报错:(node:15689) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes ...
- ssh常用命令大全
ssh命令速查表 ssh-add ~/.ssh/your_private_key:输入你的私钥密码 就可以把你的私钥加入到ssh-agent中去 ssh-add -D: 删除所有管理的密钥 ssh-a ...
- 学习分享--python网络爬虫(一)关于如何更新python pip以及如何安装python requests库
一.python pip的更新(我的是window10 界面可能不太一样) 1.找到电脑左下角开始按钮,并点击: 2.输入cmd 3.打开以后,先查看自己的pip版本 输入:pip -V 敲回 ...
- C++中的public、protected和private
访问权限控制 一个类的public的成员变量.成员函数,可以通过类的实例变量进行访问. 一个类的protected的成员变量.成员函数,无法通过类的实例变量进行访问,但是可以通过类的友元函数.友元类进 ...
- Flink中逻辑计划和物理计划的概念划分和对应关系
逻辑计划 logicGraph或者jobGraph,其端点为operator,edge为数据流向. operator往往代表一个函数. 同一个分区内的具有连续上下游关系的函数组成operator-ch ...
- redis 5.0.7 源码阅读——整数集合intset
redis中整数集合intset相关的文件为:intset.h与intset.c intset的所有操作与操作一个排序整形数组 int a[N]类似,只是根据类型做了内存上的优化. 一.数据结构 ty ...
- opencv —— equalizeHist 直方图均衡化实现对比度增强
直方图均匀化简介 从这张未经处理的灰度图可以看出,其灰度集中在非常小的一个范围内.这就导致了图片的强弱对比不强烈. 直方图均衡化的目的,就是把原始的直方图变换为在整个灰度范围(0~255)内均匀分布的 ...
- cf1294E
题意简述:给一个矩阵,有两种操作可以进行 操作1:改变矩阵中一个元素的值 操作2:将矩阵中某一列的值循环下移 要求用最少的操作次数使得矩阵变成 题解:对于一列来说,我们肯定是先变化然后再循环下移,所以 ...
- .net平台 通过Windows installer 打包和部署实例操作
Windows installer 打包和部署 1.新建项目. 打开VS,新建项目->其他项目类型->安装和部署(Visual Studio Installer). 注:若VS2013 或 ...
- 简易音乐播放器主界面设计 - .NET CORE(C#) WPF开发
微信公众号:Dotnet9,网站:Dotnet9,问题或建议:请网站留言, 如果对您有所帮助:欢迎赞赏. 简易音乐播放器主界面设计 - .NET CORE(C#) WPF开发 阅读导航 本文背景 代码 ...