diff options
Diffstat (limited to 'language/japanese/BX/bxcjkjatype/bxcjkjatype.tex')
-rw-r--r-- | language/japanese/BX/bxcjkjatype/bxcjkjatype.tex | 406 |
1 files changed, 406 insertions, 0 deletions
diff --git a/language/japanese/BX/bxcjkjatype/bxcjkjatype.tex b/language/japanese/BX/bxcjkjatype/bxcjkjatype.tex new file mode 100644 index 0000000000..2b153fd648 --- /dev/null +++ b/language/japanese/BX/bxcjkjatype/bxcjkjatype.tex @@ -0,0 +1,406 @@ +% pdfLaTeX document; UTF-8 +\documentclass[a4paper]{article} +\usepackage[utf8]{inputenc} +\usepackage[T1]{fontenc} +\usepackage{lmodern,textcomp} +\usepackage{geometry} +\usepackage{xcolor} +\usepackage[unicode,colorlinks]{hyperref} +\hypersetup{linkcolor=blue!75!black,urlcolor=green!45!black} +\usepackage{shortvrb} +\MakeShortVerb{\|} +\usepackage{verbatim} +\newenvironment{myverbatim} + {\begin{quote}\small\verbatim} + {\endverbatim\end{quote}} +\newcommand*{\Cs}[1]{\texttt{\textbackslash #1}} +\newcommand{\PkgVersion}{0.5} +\newcommand{\PkgDate}{2023/07/23} +\newcommand{\Pkg}[1]{\textsf{#1}} +\newcommand{\Meta}[1]{$\langle$\textit{#1}$\rangle$} +\newcommand{\Note}{\par\noindent \emph{Note:}\quad} +\newcommand{\Means}{:\hspace{1em plus 1em}} +\newcommand{\wbr}{\linebreak[0]} +\providecommand{\pTeX}{p\TeX} +\providecommand{\pLaTeX}{p\LaTeX} +\providecommand{\pdfTeX}{pdf\/\TeX} +%----------------------------------------------------------- +\begin{document} +\title{The \Pkg{bxcjkjatype} Package} +\author{Takayuki YATO (aka.~``ZR'')} +\date{v\PkgVersion\quad[\PkgDate]} +\maketitle + +\begin{abstract} +This package provides working configuration of the \Pkg{CJK} package +suitable for Japanese typesetting of moderate quality. +Moreover, it facilitates use of the \Pkg{CJK} package for {\pLaTeX} +users, by providing commands that are similar to those used by the +{\pLaTeX} kernel and some other packages used with it. +\end{abstract} + +\tableofcontents + +%=========================================================== +\section{Package Loading} +\label{sec:loading} + +\begin{verbatim} +\usepackage[<option>,...]{bxcjkjatype} +\end{verbatim} + +The available options are described hereafter. + +%------------------- +\subsection{Options for auto-wrapping by CJK environments} + +These options wrap the document body with a |CJK(*)| +environment automatically and safely. +They are suitable +when CJK needs to be effective in the whole document, +or some ``moving arguments'' hold CJK text. + +\begin{itemize} +\item |whole|, |wholeCJK*|\Means + Wraps the whole document body with a |CJK*| environment. + \Note Precisely speaking, + it wraps with |\begin{uCJK*}|\ldots\wbr|\end{uCJK*}|. +\item |wholeCJK|\Means + Wraps the whole document body with a |CJK| environment. + \Note Precisely speaking, + it wraps with |\begin{uCJK}|\ldots\wbr|\end{uCJK}|. +\item |nowhole| (default)\Means + Negation of |wholeCJK*| or |wholeCJK|. +\end{itemize} + +%------------------- +\subsection{Options for ``auto-tilde''} + +The \Pkg{CJK} package does not support auto-insertion of ``shibuaki'' +(a thin space between alphabetic and ideographic letters) +and thus authors must manually insert ``shibuaki''. +To help them \Pkg{CJK} package provides a mechanism +to switch the meaning of the tilde character ``|~|'' +between a non-breaking space (the original meaning) +and ``shibuaki''. +The |\autotilde| command changes ``|~|'' to ``shibuaki''% +\footnote{\Cs{standardtilde} cancels the effect of \Cs{CJKtilde} + and changes ``\texttt{\textasciitilde}'' back to non-breaking space. + \Cs{nbs} always inserts non-breaking space, + which is useful in CJK environemtns.}. + +The option |autotilde| triggers automatic invocation of |\CJKtilde|, +which makes ``|~|'' in CJK environments insert ``shibuaki'' +by default. + +\begin{itemize} +\item |autotilde|\Means + Makes |\CJKtilde| invoked at the beginning of every |CJK(*)| + environment. +\item |noautotilde| (default)\Means + Negation of |autotilde|. +\end{itemize} + +%------------------- +\subsection{Options for configuring ``shibuaki'' in PDF strings} + +As explained above, +in {\LaTeX} grammar ``|~|'' represents a non-breaking space. +Accordingly, when the \Pkg{hyperref} package generates PDF strings, +``|~|'' in {\LaTeX} text will be converted to a space character. + +However, when |\CJKtilde| is effective +the meaning of ``|~|'' changes to ``shibuaki''. +The ``shibuaki'' is device on typesetting +and is not a space as text data, +and thus the behavior of \Pkg{hyperref} is undesirable. +When this package is loaded, ``|~|'' with |\CJKtilde| effective +is tailored to be deleted at conversion to PDF strings. + +Moreover this behavior can be configured by options. + +\begin{itemize} +\item |noCJKtildeasspace| (default)\Means + When |\CJKtilde| is effective, + ``|~|'' will be deleted in PDF strings. +\item |CJKtildeasspace|\Means + When |\CJKtilde| is effective, + ``|~|'' will be converted to a space character in PDF strings. + \Note This is the original behavior of \Pkg{hyperref}. +\end{itemize} + +%------------------- +\subsection{Options for font-mapping} + +You can use preset font mappings in the same way as in the +\href{http://www.ctan.org/pkg/pxchfon}{\Pkg{pxchfon} package}. +Please refer to the manual of that package for detailed explanation +of this feature. + +\begin{itemize} +\item |oneweight|, |nooneweight|\Means + The same as in \Pkg{pxchfon}. +\item You can use font preset options (such as |ms|) which are available + in \Pkg{pxchfon} (except obsolete ones). +\item |ttfname=|\Meta{pattern}\Means + Specifies the pattern of the TTF font names which are used when TTC + substitution (Section~\ref{ssec:ttfname}) is employed. + +\item |ipaex-type1|\Means + Disables the font management of this package and directly uses the + families provided by the \Pkg{ipaex-type1} package, + namely |ipxm| and |ipxg|. + In this setting the value of |\mcdefault| is |ipxm| and the value of + |\gtdefault| and |\mgdefault| is |ipxg|, so that the higher level + commands (such as |\sffamily| and |\gtfamily|) can work correctly. +\end{itemize} + +%------------------- +\subsection{Options for CJK font scaling} + +\begin{itemize} +\item |scale=|\Meta{real}\Means + Sets the scaling factor for CJK fonts. +\end{itemize} + +\Note When using version 0.3 or later, +one can employ the scaling even with the +|ipaex-type1| option. + +%------------------- +\subsection{Other options} + +\begin{itemize} +\item |everypage|\Means + Outputs the font mapping information on every page of the resulted + DVI document. + Available only with |dvipdfmx| driver. +\item |noeverypage| (default)\Means + Negation of |everypage|. +\item Driver options\Means + |pdftex|, |dvipdfmx|, |dvips| and |none| are available. + The driver setting is relevant only when using font mappings other + than the default one (ipaex-type1 fonts), so you need not care of + drivers in using default fonts. + Moreover, non-default font mappings are supported only by |pdftex| + and |dvipdfmx|, and these two values are auto-detected + (|pdftex| is default in PDF mode and |dvipdfmx| in DVI mode). + Thus you will never need to specify the driver. +\item |substmingoth|\Means + Applies the substituion of families |min|, |goth| and |maru| + (used conventionally for Japanese) with families |mc|, |gt| and |mg| + (standard in this package). +\item |nosubstmingoth| (default)\Means + Negation of |substmingoth|. +\item |boldbyembolden| (default)\Means + Changes the implementation of |\CJKbold| (pseudo-bold) from + ``overstriking'' to ``synthetic emboldening''. +\item |noboldbyembolden|\Means + Negation of |boldbyembolden|. +\end{itemize} + +%------------------- +\subsection{TTC substitution} +\label{ssec:ttfname} + +The {\pdfTeX} engine does not support fonts in TTC format. +Thus when you want to use TTC fonts for this package, +all you can do is to decompose a TTC font +into several TTF fonts. + +Moreover there is another problem when you use this package. +The decomposed TTF files have names +different from the original TTC font, +which means that +the preset settings (options such as |moba-moga|) no longer work. +The |ttfname| option is a workaround for this problem. + +The |ttfname| option key must have a file name pattern, +which is a string containing (exactly) one occurrence of ``|*|'' +and one occurrence of a numeral string, +such as ``|*_1|'' and ``|TEMP-*-00.TTF|''. +(If the pattern does not have an extension, ``|.ttf|'' is appended.) + +For example, when the option |ttfname=*_1| is given, the font +``index 0 of mogam.ttc'' will map to ``mogam\_1.ttf'', and similarly, +``index 1'' to ``mogam\_2.ttf'' +(the numeral part is incremented) and so on. + + +%=========================================================== +\section{Usage} +\label{sec:usage} + +%------------------- +\subsection{Selecting CJK fonts} + +The present package provides three ``generic'' CJK font familie +in the same way as {\pLaTeX} plus the +\href{http://www.ctan.org/pkg/japanese-otf}{\Pkg{japanese-otf} package}: +Mincho family (|\mcfamily|), Gothic family (|\gtfamily|), and +Maru-gothic family (|\mgfamily|). +In default setting, the font set from the \Pkg{ipaex-type1} package +is allocated; +Mincho family uses IPAex Mincho font, and Gothic and Maru-gothic +families use IPAex Gothic font. +This allocation can be altered by users. + +\begin{itemize} +\item |\mcfamily|\Means + Changes the CJK family to Mincho family. + \Note Equivalent to |\CJKfamily{\mcdefault}|. +\item |\gtfamily|\Means + Changes the CJK family to Gothic family. + \Note Equivalent to |\CJKfamily{\gtdefault}|. +\item |\mgfamily|\Means + Changes the CJK family to Maru-gothic family. + \Note Equivalent to |\CJKfamily{\mgdefault}|. +\end{itemize} + +More advanced commands: + +\begin{itemize} +\item |\mcdefault|/|\gtdefault|/|\mgdefault|\Means + The names of CJK families corresponding to the three generic families. + In the standard allocation their values are + |mc|/\wbr|gt|/\wbr|mg| respectively + and the allocation is used as default. +\item + |\setCJKfamilydefault{|\Meta{CJK-family}|}|\Means + Declares the default CJK family. + This default value is used when family names are missing in some + commands, such as |\CJKfamily{}| and + |\begin{CJK}{UTF8}{}|. + The (redefined) |\normalfont| also switches the CJK family to the + family specified by this command. + + The default value of this default family is + the ``counterpart'' (Section~\ref{ssec:sync-families}) of the + alphabetic font family which is in effect at the beginning of the + document body. +\end{itemize} + +%------------------- +\subsection{Synchronization of CJK and non-CJK families} +\label{ssec:sync-families} + +The \Pkg{CJK} package (and {\pTeX} engine) manages separate +``current families'' for CJK and alphabetic (non-CJK) families. +While this treatment has its merit, synchronization of the two +``current families'' is convenient in many cases. +Accordingly, the present package redefines some of the {\LaTeX} +commands that switches current alphabetic font families so that +the CJK family will be switched to the counterpart of the current +alphabetic family, where the ``counterpart'' is defined as follows: + +\begin{itemize} +\item |\rmfamily| (Serif) → |\mcfamily| (Mincho) +\item |\sffamily| (Sans-serif) → |\gtfamily| (Gothic) +\item |\ttfamily| (Monospace) → |\gtfamily| (Gothic) +\item The counterpart of the other families is |\mcfamily|. +\end{itemize} + +Redefined commands: + +\begin{itemize} +\item |\rmfamily|/|\sffamily|/|\ttfamily|\Means + Changes the CJK family to the counterpart of the alphabetic font + family after executing the original function. +\item |\normalfont|\Means + Changes the CJK family to the default CJK family that is specified + by the |\setCJKfamilydefault| command. +\end{itemize} + +There are shorthand forms of |CJK|/\wbr|CJK*| environments: + +\begin{itemize} +\item |\begin{uCJK*}|\ldots|\end{uCJK*}|\Means + Equivalent to: +\begin{verbatim} +\begin{CJK*}{UTF8}{<counterpart>}...\end{CJK*} +\end{verbatim} + where |<counterpart>| means the counterpart of the current alphabetic + font family. + + Note that this is \emph{not} equivalent to +\begin{verbatim} +\begin{CJK*}{UTF8}{}...\end{CJK*} +\end{verbatim} + structure, which uses the default CJK family. +\item |\begin{uCJK}|\ldots|\end{uCJK}|\Means + Equivalent to: +\begin{verbatim} +\begin{CJK}{UTF8}{counterpart}...\end{CJK} +\end{verbatim} +\end{itemize} + +%------------------- +\subsection{Font mapping} + +The usage of these commands are the same as in the \Pkg{pxchfon} +package. +Please refer to the manual of that package for detail. + +\begin{itemize} +\item |\setminchofont{|\Meta{id}|]{|\Meta{font-file}|}| +\item |\setgothicfont{|\Meta{id}|]{|\Meta{font-file}|}| +\item |\setmarugothicfont{|\Meta{id}|]{|\Meta{font-file}|}| +\item |\setmediumminchofont{|\Meta{id}|]{|\Meta{font-file}|}| +\item |\setboldminchofont{|\Meta{id}|]{|\Meta{font-file}|}| +\item |\setmediumgothicfont{|\Meta{id}|]{|\Meta{font-file}|}| +\item |\setboldgothicfont{|\Meta{id}|]{|\Meta{font-file}|}| +\item |\setxboldgothicfont{|\Meta{id}|]{|\Meta{font-file}|}| +\end{itemize} + +However there is a major limitation as to the use of font mapping with +the {\pdfTeX} engine. +You can use only TrueType fonts and moreover TTC format is not allowed. +(You can use any flavor of OpenType fonts when using dvipdfmx.) + +\Note The present package does not support the light-weight Mincho +font, and thus the |\setlightminchofont| command does nothing useful. + +%------------------- +\subsection{Other commands} + +\begin{itemize} +\item |\UTF{|\Meta{hexadecimal-number}|}|\Means + Inputs a CJK character through Unicode codepoint value. + |\UTF{5B57}| is equivalent to |\Unicode{"5B}{"57}|. +\item |\CJKforce{|\Meta{character}\ldots|}|\Means + Afterwards treats the characters given in the argument as CJK + characters (printed using CJK fonts). +\item |\CJKunforce{|\Meta{character}\ldots|}|\Means + Cancels the effect of the |\CJKforce| command. +\item |\@|\Meta{character}\Means + Treats the next character (only that occurrence) as a CJK character, + when the character is outside the ASCII range; othersize the + standard meaning of |\@| is retained. +\item |\CJKecglue|\Means + Inserts a ``shibuaki'' space. + This will be invoked by |~| when |\CJKtilde| is in effect. + This command can be redefined by users to adjust the value of + shibuaki space, just as |\CJKglue| can be redefined to adjust + inter-ideographic space. + + For example, you can write: +\begin{verbatim} +\renewcommand{\CJKecglue}{\hspace{0.125em minus 0.125em}} +\end{verbatim} +\end{itemize} + +%=========================================================== +\section{Remarks} +\label{sec:remarks} + +\begin{itemize} +\item The standard font families provided by this package does + \emph{not} support vertical writing, even when using default + ipaex-type1 font set. + However, the families provided by \Pkg{ipaex-type1} + (|ipxm| and |ipxg|) do support vertical writing, and you can + utilize these families directly by specifying |ipaex-type1| option. +\end{itemize} + +%=========================================================== +\end{document} |