summaryrefslogtreecommitdiff
path: root/language/japanese/BX/bxcjkjatype/bxcjkjatype.tex
diff options
context:
space:
mode:
Diffstat (limited to 'language/japanese/BX/bxcjkjatype/bxcjkjatype.tex')
-rw-r--r--language/japanese/BX/bxcjkjatype/bxcjkjatype.tex406
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}