在中文排版惯例中,书名通常用书名号“《》和“》”括起来,它们是 UTF-8 Unicode 符号。可以使用 xeCJK 包(将中文、日文和韩文的所有字符和符号的 \catcode 设置为 11)支持这些符号。我想咨询是否有方法(类似于 shortvrb 处理 `|' 符号的方式)为“《》和“》”设置控制序列,让这些符号括起来的书名排版具有特定的格式,例如斜体或以蓝色显示等。
汉字排版tex文件通常如下:
% !TEX program = xelatex
\documentclass{article}
\usepackage{xeCJK}
\begin{document}
Here is a book title in chinese book title marks
《A Chinese Book》
\end{document}
保存为UTF-8编码的.tex文件。
答案1
您可以使用活动类别代码来创建《
命令。但是这样做的缺点是未配对《
会导致错误。
\documentclass{ctexart}
\begin{document}
\catcode`《 = \active
\def《#1》{\emph{#1}}
中文
《中文》
《Chinese》
\end{document}
答案2
您可以使用\newunicodechar
:
\documentclass{article}
\usepackage{xeCJK}
\usepackage{newunicodechar}
\newunicodechar{《}{\begingroup《\em\ignorespaces}
\newunicodechar{》}{\/\endgroup》}
\begin{document}
Here is a book title in chinese book title marks
《A Chinese Book》
\end{document}
替代方法:
\documentclass{article}
\usepackage{xeCJK}
\usepackage{newunicodechar}
\newunicodechar{《}{《\hzzhangbook|}
\NewDocumentCommand{\hzzhangbook}{r|》}{\emph{#1}》}
\begin{document}
Here is a book title in chinese book title marks
《A Chinese Book》
\end{document}
区别在于,使用后一种代码,缺失》
将引发错误;使用前一种代码,格式化将继续。选择您喜欢的。