%# -*- coding:GBK -*-
% CJKmove.sty
%
% �ƶ� CJK �ַ�����ʹ�ù̶�λ�úʹ�С��1em���� bounding box
% ����������ֱ���Ű�ʱ�ַ�ƫ�Ƶ�У�
% �˺��� CJK �� xeCJK ������Ч
%
% ��ߣ�milksea
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{CJKmove}[2008/08/10 ver 0.1]
% frame ѡ���ÿ�� CJK �ַ����߿���鿴�ַ� bounding box λ��
\newif\if@CJK@framed
\@CJK@framedfalse
\DeclareOption{frame}{\@CJK@framedtrue}
\DeclareOption{noframe}{\@CJK@framedfalse}
\DeclareOption*{%
\PackageWarning{CJKmove}{Unknown option ��\CurrentOption��}%
}
\ProcessOptions
\ifx\XeTeXinputencoding\undefined
\RequirePackage{CJK}
\else
\RequirePackage{xeCJK}
\fi
% \CJK@symbol������ԭ���Ķ���
\let\CJK@symbol\CJKsymbol
% �ƶ��� CJK �ַ�
\def\CJK@moved@symbol#1{%
\leavevmode
\vbox to 1em{%
\vss
\hbox to 1em{%
\raise\CJK@movey em\hbox{\kern\CJK@movex em\CJK@symbol{#1}}\hss
}%
}%
}
% �ӿ�� CJK �ַ�
\def\CJK@framed@symbol#1{%
\bgroup
\fboxsep=0pt
\fbox{\CJK@symbol{#1}}%
\egroup
}
% �ӿ����ƶ��� CJK �ַ�
\def\CJK@moveframed@symbol#1{%
\bgroup
\fboxsep=0pt
\fbox{\CJK@moved@symbol{#1}}%
\egroup
}
% ���ݼӿ�����ѡ���ض��� CJK �ַ�
\if@CJK@framed
\def\CJKmove{\let\CJKsymbol\CJK@moveframed@symbol}
\def\CJKnomove{\let\CJKsymbol\CJK@framed@symbol}
\else
\def\CJKmove{\let\CJKsymbol\CJK@moved@symbol}
\def\CJKnomove{\let\CJKsymbol\CJK@symbol}
\fi
% ������ַ�������ͬ
\def\CJKpunctsymbol{\expandafter\CJKsymbol}
% �趨ˮƽ���Һ��ֱ���ϵ��ƶ���룬���Ϊ����֣���λ em
\def\setCJKmove#1#2{
\def\CJK@movex{#1}%
\def\CJK@movey{#2}%
}
% Ĭ���ƶ���룺SimSun �� vertical ģʽ����
\def\resetCJKmove{%
\def\CJK@movex{0}%
\def\CJK@movey{0.4}%
}
% ��ʼ��
\resetCJKmove
\CJKnomove
\endinput
��ѡ�
frame ����� CJK �ַ��ӿ�
noframe ���ӿ�
�÷���
\CJKmove ���� CJK �ַ��ƶ�ģʽ
\CJKnomove ���� CJK �ַ����ƶ�ģʽ
\setCJKmove <���x> <���y> �������� x em������ y em
\resetCJKmove �����ƶ���룬Ĭ��Ϊ���� 0.4em ���� SimSun
ע�����
��ͬ�����������Ҫ���ò�ͬ���ƶ����
BUG��
bounding box �ƺ����Ļ��Dz�
TODO��
֧�ֲ��ȿ�ġ��ɹ涨��ȺͿ�ƽ�Ƶ� bounding box