diff options
Diffstat (limited to 'macros/jptex/latex/uplatex/uplatex.dtx')
-rw-r--r-- | macros/jptex/latex/uplatex/uplatex.dtx | 1244 |
1 files changed, 1244 insertions, 0 deletions
diff --git a/macros/jptex/latex/uplatex/uplatex.dtx b/macros/jptex/latex/uplatex/uplatex.dtx new file mode 100644 index 0000000000..58edbbc69f --- /dev/null +++ b/macros/jptex/latex/uplatex/uplatex.dtx @@ -0,0 +1,1244 @@ +% \iffalse meta-comment +%% File: uplatex.dtx +% +% pLaTeX base file: +% Copyright 1995,1996 ASCII Corporation. +% and modified for upLaTeX +% +% Copyright (c) 2010 ASCII MEDIA WORKS +% Copyright (c) 2016 Takuji Tanaka +% Copyright (c) 2016-2021 Japanese TeX Development Community +% +% This file is part of the upLaTeX2e system (community edition). +% -------------------------------------------------------------- +% +% \fi +% +% \iffalse +%<*driver|pldoc> +\ifx\JAPANESEtrue\undefined + \expandafter\newif\csname ifJAPANESE\endcsname + \JAPANESEtrue +\fi +%</driver|pldoc> +% \fi +% +% \setcounter{StandardModuleDepth}{1} +% \makeatletter +%\ifJAPANESE +% \def\chuui{\@ifnextchar[{\@chuui}{\@chuui[注意:]}} +%\else +% \def\chuui{\@ifnextchar[{\@chuui}{\@chuui[Attention: ]}} +%\fi +% \def\@chuui[#1]{\par\vskip.5\baselineskip +% \noindent{\em #1}\par\bgroup\gtfamily\sffamily} +% \def\endchuui{\egroup\vskip.5\baselineskip} +% \makeatother +% +% \iffalse +%<*driver|pldoc> +\def\eTeX{$\varepsilon$-\TeX} +\def\pTeX{p\kern-.15em\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +\def\pLaTeX{p\kern-.05em\LaTeX} +\def\pLaTeXe{p\kern-.05em\LaTeXe} +\def\upTeX{u\pTeX} +\def\eupTeX{$\varepsilon$-\upTeX} +\def\upLaTeX{u\pLaTeX} +\def\upLaTeXe{u\pLaTeXe} +%</driver|pldoc> +% \fi +% +% \StopEventually{} +% +% \iffalse +%\ifJAPANESE +% \changes{v1.0c-u00}{2011/05/07}{\pLaTeX{}用から\upLaTeX{}用に修正。 +% (based on platex.dtx 1997/01/29 v1.0c)} +% \changes{v1.0e-u00}{2016/04/06}{\pLaTeX{}の変更に追随。 +% (based on platex.dtx 2016/02/16 v1.0e)} +% \changes{v1.0h-u00}{2016/05/08}{ドキュメントから\file{uplpatch.ltx}を除外 +% (based on platex.dtx 2016/05/08 v1.0h)} +% \changes{v1.0k-u00}{2016/05/21}{\pLaTeX{}の変更に追随。 +% (based on platex.dtx 2016/05/21 v1.0k)} +% \changes{v1.0k-u01}{2016/06/06}{\upLaTeX{}用にドキュメントを全体的に改訂} +% \changes{v1.0l-u01}{2016/06/19}{パッチレベルを\file{uplvers.dtx}から取得 +% (based on platex.dtx 2016/06/19 v1.0l)} +% \changes{v1.0m-u01}{2016/08/26}{\file{uplatex.cfg}の読み込みを +% \file{uplcore.ltx}から\file{uplatex.ltx}へ移動 +% (based on platex.dtx 2016/08/26 v1.0m)} +% \changes{v1.0n-u01}{2016/09/14}{\pLaTeX{}の変更に追随。 +% (based on platex.dtx 2016/09/14 v1.0n)} +% \changes{v1.0p-u01}{2017/11/11}{\pLaTeX{}の変更に追随。 +% (based on platex.dtx 2017/11/11 v1.0p)} +% \changes{v1.0q-u01}{2017/11/29}{英語版ドキュメントを追加 +% (based on platex.dtx 2017/11/29 v1.0q)} +% \changes{v1.0r-u01}{2017/12/02}{\upLaTeX{}と\upTeX{}の参考文献も追加} +% \changes{v1.0s-u01}{2017/12/05}{デフォルト設定ファイルの読み込みを +% \file{uplcore.ltx}から\file{uplatex.ltx}へ移動 +% (based on platex.dtx 2017/12/05 v1.0s)} +% \changes{v1.0s-u02}{2017/12/10}{\file{uplcore.ltx}の前に +% \file{plcore.ltx}を読み込むようにした(最近の\pLaTeX{}が前提)} +% \changes{v1.0u-u02}{2018/02/18}{\pLaTeX{}の変更に追随。 +% (based on platex.dtx 2018/02/18 v1.0u)} +% \changes{v1.0v-u02}{2018/04/06}{最新のsource2eへの追随 +% (based on platex.dtx 2018/04/06 v1.0v)} +% \changes{v1.0w-u02}{2018/04/08}{安全のためフォーマット作成時の +% バナー表示をやめた +% (based on platex.dtx 2018/04/08 v1.0w)} +% \changes{v1.0x-u02}{2018/09/03}{ドキュメントを更新 +% (based on platex.dtx 2018/09/03 v1.0x)} +% \changes{v1.0y-u02}{2018/09/22}{最終更新日を\file{upldoc.pdf}に表示 +% (based on platex.dtx 2018/09/22 v1.0y)} +% \changes{v1.0y-u03}{2019/05/22}{ドキュメントを更新} +% \changes{v1.1b-u03}{2020/09/28}{defs読込後にフック追加} +% \changes{v1.1c-u03}{2021/02/25}{\file{latex.ltx}の読込チェック} +%\else +% \changes{v1.0c-u00}{2011/05/07}{Created \upLaTeX\ version based on \pLaTeX\ one +% (based on platex.dtx 1997/01/29 v1.0c)} +% \changes{v1.0e-u00}{2016/04/06}{Sync with \pLaTeX. +% (based on platex.dtx 2016/02/16 v1.0e)} +% \changes{v1.0h-u00}{2016/05/08}{Exclude \file{uplpatch.ltx} from the document +% (based on platex.dtx 2016/05/08 v1.0h)} +% \changes{v1.0k-u00}{2016/05/21}{Sync with \pLaTeX. +% (based on platex.dtx 2016/05/21 v1.0k)} +% \changes{v1.0k-u01}{2016/06/06}{Update documents for \upLaTeX.} +% \changes{v1.0l-u01}{2016/06/19}{Get the patch level from \file{uplvers.dtx} +% (based on platex.dtx 2016/06/19 v1.0l)} +% \changes{v1.0m-u01}{2016/08/26}{Moved loading \file{uplatex.cfg} +% from \file{uplcore.ltx} to \file{uplatex.ltx} +% (based on platex.dtx 2016/08/26 v1.0m)} +% \changes{v1.0n-u01}{2016/09/14}{Sync with \pLaTeX. +% (based on platex.dtx 2016/09/14 v1.0n)} +% \changes{v1.0p-u01}{2017/11/11}{Sync with \pLaTeX. +% (based on platex.dtx 2017/11/11 v1.0p)} +% \changes{v1.0q-u01}{2017/11/29}{New English documentation added! +% (based on platex.dtx 2017/11/29 v1.0q)} +% \changes{v1.0r-u01}{2017/12/02}{\upLaTeX\ and \upTeX\ references added} +% \changes{v1.0s-u01}{2017/12/05}{Moved loading default settings +% from \file{uplcore.ltx} to \file{uplatex.ltx} +% (based on platex.dtx 2017/12/05 v1.0s)} +% \changes{v1.0s-u02}{2017/12/10}{Load \file{plcore.ltx} before +% \file{uplcore.ltx} (recent version of \pLaTeX\ is assumed)} +% \changes{v1.0u-u02}{2018/02/18}{Sync with \pLaTeX. +% (based on platex.dtx 2018/02/18 v1.0u)} +% \changes{v1.0v-u02}{2018/04/06}{Sync with the latest \file{source2e.tex} +% (based on platex.dtx 2018/04/06 v1.0v)} +% \changes{v1.0w-u02}{2018/04/08}{Stop showing banner during +% format generation for safety +% (based on platex.dtx 2018/04/08 v1.0w)} +% \changes{v1.0x-u02}{2018/09/03}{Update document. +% (based on platex.dtx 2018/09/03 v1.0x)} +% \changes{v1.0y-u02}{2018/09/22}{Show last update info on \file{upldoc.pdf} +% (based on platex.dtx 2018/09/22 v1.0y)} +% \changes{v1.0y-u03}{2019/05/22}{Update document.} +% \changes{v1.1b-u03}{2020/09/28}{Add hook after loading defs} +% \changes{v1.1c-u03}{2021/02/25}{Check for \file{latex.ltx} status} +%\fi +% \fi +% +% \iffalse +%<*driver> +\NeedsTeXFormat{pLaTeX2e} +% \fi +\ProvidesFile{uplatex.dtx}[2021/02/25 v1.1c-u03 upLaTeX document file] +% \iffalse +\documentclass{jltxdoc} +\usepackage{plext} +\GetFileInfo{uplatex.dtx} +\ifJAPANESE +\title{\upLaTeXe{}について} +\author{中野 賢 \& 日本語\TeX{}開発コミュニティ \& TTK} +\date{作成日:\filedate} +\renewcommand{\refname}{参考文献} +\GlossaryPrologue{\section*{変更履歴}% + \markboth{変更履歴}{変更履歴}% + \addcontentsline{toc}{section}{変更履歴}} +\else +\title{About \upLaTeXe{}} +\author{Ken Nakano \& Japanese \TeX\ Development Community \& TTK} +\date{Date: \filedate} +\renewcommand{\refname}{References} +\GlossaryPrologue{\section*{Change History}% + \markboth{Change History}{Change History}% + \addcontentsline{toc}{section}{Change History}} +\fi +\makeatletter +\ifJAPANESE +\def\levelchar{>・} +\fi +\def\changes@#1#2#3{% + \let\protect\@unexpandable@protect + \edef\@tempa{\noexpand\glossary{#2\space#1\levelchar + \ifx\saved@macroname\@empty +% \space\actualchar\generalname: %% comment out (uplatex.dtx only) + \else + \expandafter\@gobble + \saved@macroname\actualchar + \string\verb\quotechar*% + \verbatimchar\saved@macroname + \verbatimchar: + \fi + #3}}% + \@tempa\endgroup\@esphack} +\makeatother +\RecordChanges +\begin{document} + \MakeShortVerb{\+} + \maketitle + \DocInput{\filename} + \StopEventually{\end{document}} + \clearpage + % Make TeX shut up. + \hbadness=10000 + \newcount\hbadness + \hfuzz=\maxdimen + \PrintChanges + \let\PrintChanges\relax +\end{document} +%</driver> +% \fi +% +% +%\ifJAPANESE +% \changes{v1.0c-u00}{2011/05/07}{\pLaTeX{}用から\upLaTeX{}用に修正。 +% (based on platex.dtx 1997/01/29 v1.0c)} +% \changes{v1.0k-u01}{2016/06/06}{\upLaTeX{}用にドキュメントを全体的に改訂} +% \changes{v1.0q-u01}{2017/11/29}{英語版ドキュメントを追加 +% (based on platex.dtx 2017/11/29 v1.0q)} +% \changes{v1.0x-u02}{2018/09/03}{ドキュメントを更新 +% (based on platex.dtx 2018/09/03 v1.0x)} +% \changes{v1.0y-u03}{2019/05/22}{ドキュメントを更新} +%\else +% \changes{v1.0c-u00}{2011/05/07}{Created \upLaTeX\ version based on \pLaTeX\ one +% (based on platex.dtx 1997/01/29 v1.0c)} +% \changes{v1.0k-u01}{2016/06/06}{Update documents for \upLaTeX.} +% \changes{v1.0q-u01}{2017/11/29}{New English documentation added! +% (based on platex.dtx 2017/11/29 v1.0q)} +% \changes{v1.0x-u02}{2018/09/03}{Update document. +% (based on platex.dtx 2018/09/03 v1.0x)} +% \changes{v1.0y-u03}{2019/05/22}{Update document.} +%\fi +%\ifJAPANESE +% \upLaTeX{}は、内部コードをUnicode化した\pLaTeX{}の拡張版です。 +% このバージョンは、「コミュニティ版\pLaTeXe{}」をベースにしています。 +%\else +% \upLaTeX\ is a Unicode version of Japanese \pLaTeXe. +% This version is based on `\pLaTeXe\ Community Edition.' +%\fi +% +%\ifJAPANESE +% \pTeX{}は、高品質の日本語組版ソフトウェアとしてデファクト +% スタンダードの地位にあるといえます。しかし、\pTeX{}には +% \begin{itemize} +% \item 直接使える文字集合が原則的にJIS X 0208(JIS第1,2水準)の範囲に限定 +% されていること、 +% \item 8bitの非英語欧文との親和性が高いとは言えないこと、 +% \item \pTeX{}の利用が日本語に限られ、中国語・韓国語との混植への利用が +% 進んでいないこと +% \end{itemize} +% といった弱点がありました。 +% +% これらの弱点を克服するため、\pTeX{}の内部コードをUnicode化した拡張版 +% が\upTeX{}です。また、\upTeX{}上で用いるUnicode版\pLaTeX{}が\upLaTeX{}で +% す\footnote{\texttt{http://www.t-lab.opal.ne.jp/tex/uptex.html}}。 +% 現在の\upLaTeX{}は、日本語\TeX{}開発コミュニティが配布しているコミュニティ +% 版\pLaTeX{}\footnote{\texttt{https://github.com/texjporg/platex}}を +% ベースにしており、\eupTeX{}というエンジン(\upTeX{}の\epTeX{}拡張版)で +% 動作します。 +% +% 開発中の版は\pLaTeX{}と同様に、GitHubの +% リポジトリ\footnote{\texttt{https://github.com/texjporg/uplatex}}で +% 管理しています。\upLaTeX{}はアスキーとは無関係ですので、 +% バグレポートはアスキー宛てではなく、日本語\TeX{}開発コミュニティに報告 +% してください。\TeX\ ForumやGitHubのIssueシステムが利用できます。 +%\else +% \pTeX\ is the most popular \TeX\ engine in Japan and is widely +% used for a high-quality typesetting, even for commercial printing. +% However, \pTeX\ has some limitations: +% \begin{itemize} +% \item The character set available is limited to JIS X 0208, +% namely JIS level-1 and level-2 +% \item Difficulty in handling 8-bit Latin, due to conflict with +% legacy multibyte Japanese encodings +% \item Difficulty in typesetting CJK (Chinese, Japanese and Korean) +% multilingual documents +% \end{itemize} +% +% To overcome these weak points, +% a Unicode extension of \pTeX, \upTeX, has been +% developed.\footnote{\texttt{http://www.t-lab.opal.ne.jp/tex/uptex.html}} +% The Unicode \pLaTeX\ format run on \upTeX\ is called \upLaTeX. +% Current \upLaTeX\ is maintained by Japanese \TeX\ Development +% Community,\footnote{\texttt{https://texjp.org}} +% in sync with \pLaTeX\ community +% edition.\footnote{\texttt{https://github.com/texjporg/platex}} +% It runs on \eupTeX, an engine with both \upTeX\ and \epTeX\ features. +% +% The development version is available from +% GitHub repository\footnote{\texttt{https://github.com/texjporg/uplatex}}. +% Any bug reports and requests should be sent to +% Japanese \TeX\ Development Community, using GitHub Issue system. +%\fi +% +% +% \clearpage +% +%\ifJAPANESE +% \section{この文書について}\label{platex:intro} +% この文書は\upLaTeXe{}の概要を示していますが、使い方のガイドでは +% ありません。ほとんどの機能は元となっている\pLaTeXe{}や\LaTeXe{}と +% 同等ですので、それぞれの付属文書などを参照してください。 +% +% \upTeX{}については公式ウェブサイトあるいは\cite{tb108tanaka}(英語)を +% 参照してください。 +%\else +% \section{Introduction to this document}\label{platex:intro} +% This document briefly describes \upLaTeXe, but is not a manual of \upLaTeXe. +% The basic functions of \upLaTeXe\ are almost the same with those of +% \pLaTeXe\ and \LaTeXe, so please refer to the documentation of those formats. +% +% For \upTeX, please refer to the official website or +% \cite{tb108tanaka} (in English). +%\fi +% +%\ifJAPANESE +% この文書の構成は次のようになっています。 +% +% \begin{quote} +% \begin{description} +% \item[第\ref{platex:intro}節] +% この節です。この文書についての概要を述べています。 +% +% \item[第\ref{platex:plcore}節] +% \upLaTeXe{}で拡張した機能についての概要です。 +% 付属のクラスファイルやパッケージファイルについても簡単に +% 説明しています。 +% +% \item[第\ref{platex:compatibility}節] +% 現在のバージョンの\upLaTeX{}と旧バージョン、あるいは元となっている +% \pLaTeX{}/\LaTeX{}との互換性について述べています。 +% +% \item[付録\ref{app:dst}] +% この文書ソース(uplatex.dtx)の +% \dst{}のためのオプションについて述べています。 +% +% \item[付録\ref{app:pldoc}] +% \upLaTeXe{}のdtxファイルをまとめて、一つのソースコード説明書に +% するための文書ファイルの説明をしています。 +% +% \item[付録\ref{app:omake}] +% 付録\ref{app:pldoc}で説明した文書ファイルを処理するshスクリプト(手順) +% などについて説明しています。 +% \end{description} +% \end{quote} +%\else +% This document consists of following parts: +% +% \begin{quote} +% \begin{description} +% \item[Section \ref{platex:intro}] +% This section; describes this document itself. +% +% \item[Section \ref{platex:plcore}] +% Brief explanation of extensions in \upLaTeXe. +% Also describes the standard classes and packages. +% +% \item[Section \ref{platex:compatibility}] +% The compatibility note for users of the old version of +% \upLaTeXe\ or those of the original \pLaTeXe/\LaTeXe. +% +% \item[Appendix \ref{app:dst}] +% Describes \dst\ Options for this document. +% +% \item[Appendix \ref{app:pldoc}] +% Description of `upldoc.tex' (counterpart for `source2e.tex' in \LaTeXe). +% +% \item[Appendix \ref{app:omake}] +% Description of a shell script to process `upldoc.tex', etc. +% \end{description} +% \end{quote} +%\fi +% +% +%\ifJAPANESE +% \section{\upLaTeXe{}の機能について}\label{platex:plcore} +% \upLaTeXe{}が提供するファイルは、次の3種類に分類することができます。 +% この構成は\pLaTeXe{}と同様です。 +% +% \begin{itemize} +% \item フォーマットファイル +% \item クラスファイル +% \item パッケージファイル +% \end{itemize} +%\else +% \section{About Functions of \pLaTeXe}\label{platex:plcore} +% The structure of \upLaTeXe\ is similar to that of \pLaTeXe; +% it consists of 3 types of files: a format (uplatex.ltx), +% classes and packages. +%\fi +% +%\ifJAPANESE +% \subsection{フォーマットファイル} +% \upLaTeX{}のフォーマットファイルを作成するには、 +% ソースファイル``uplatex.ltx''を\eupTeX{}のINIモードで処理します +% \footnote{2016年以前は\upTeX{}と\eupTeX{}のどちらでもフォーマットを作成する +% ことができましたが、2017年に\LaTeX{}が\eTeX{}必須となったことに伴い、 +% \upLaTeX{}も\eupTeX{}が必須となりました。}。 +% ただし、\TeX\ LiveやW32\TeX{}ではこの処理を簡単にする|fmtutil-sys|あるいは +% |fmtutil|というプログラムが用意されています。 +% 以下を実行すれば、フォーマットファイル\file{uplatex.fmt}が作成されます。 +%\else +% \subsection{About the Format} +% To make a format for \upLaTeX, +% process ``uplatex.ltx'' with INI mode of \eupTeX.\footnote{Formerly +% both \upTeX\ and \eupTeX\ can make the format file for \upLaTeX, however, +% it's not true anymore because \LaTeX\ requires \eTeX\ since 2017.} +% A handy command `fmtutil-sys' (or `fmtutil') for this purpose +% is available in \TeX\ Live. The following command generates \file{uplatex.fmt}. +%\fi +%\begin{verbatim} +% fmtutil-sys --byfmt uplatex +%\end{verbatim} +% +%\ifJAPANESE +% 次のリストが、\file{uplatex.ltx}の内容です。 +% ただし、このバージョンでは、\LaTeX{}から\upLaTeX{}への拡張を +% \file{plcore.ltx}(\pLaTeX{}によって提供される)および +% \file{uplcore.ltx}をロードすることで行ない、 +% \file{latex.ltx}には直接、手を加えないようにしています。 +% したがって\file{uplatex.ltx}はとても短いものとなっています。 +% \file{latex.ltx}には\LaTeX{}のコマンドが、 +% \file{uplcore.ltx}には\upLaTeX{}で拡張したコマンドが定義されています。 +%\else +% The content of \file{uplatex.ltx} is shown below. +% In the current version of \upLaTeX, +% first we simply load \file{latex.ltx} and +% modify/extend some definitions by loading +% \file{plcore.ltx} (available from \pLaTeX) and \file{uplcore.ltx}. +%\fi +% \begin{macrocode} +%<*plcore> +% \end{macrocode} +% +%\ifJAPANESE +% \file{latex.ltx}の末尾で使われている|\dump|をいったん無効化します。 +%\else +% Temporarily disable |\dump| at the end of \file{latex.ltx}. +%\fi +% \begin{macrocode} +\let\orgdump\dump +\let\dump\relax +% \end{macrocode} +% +%\ifJAPANESE +% \file{latex.ltx}を読み込みます。 +% \TeX\ Liveの標準的インストールでは、この中でBabel由来の +% ハイフネーション・パターン\file{hyphen.cfg}が読み込まれるはずです。 +%\else +% Load \file{latex.ltx} here. +% Within the standard installation of \TeX\ Live, \file{hyphen.cfg} +% provided by ``Babel'' package will be used. +%\fi +% \begin{macrocode} +\input latex.ltx +% \end{macrocode} +% +%\ifJAPANESE +% この時点で|\typeout|が未定義なら、\LaTeX{}カーネルの読み込みに +% 失敗していますので、強制終了します(\LaTeXe\ 2017/01/01以降を +% 非\eTeX{}拡張でフォーマット作成しようとした場合など)。 +% \changes{v1.1c-u03}{2021/02/25}{\file{latex.ltx}の読込チェック} +%\else +% If |\typeout| is still undefined, the input of \LaTeX~kernel +% should have failed; abort now. +% \changes{v1.1c-u03}{2021/02/25}{Check for \file{latex.ltx} status} +%\fi +% \begin{macrocode} +\ifx\typeout\undefined + \errhelp{Please reinstall LaTeX, or check e-TeX availability.}% + \errmessage{Failed to load `latex.ltx' properly}% + \expandafter\end +\fi +% \end{macrocode} +% +%\ifJAPANESE +% \file{plcore.ltx}と\file{uplcore.ltx}を読み込みます。 +% \changes{v1.0s-u02}{2017/12/10}{\file{uplcore.ltx}の前に +% \file{plcore.ltx}を読み込むようにした(最近の\pLaTeX{}が前提)} +%\else +% Load \file{plcore.ltx} and \file{uplcore.ltx}. +% \changes{v1.0s-u02}{2017/12/10}{Load \file{plcore.ltx} before +% \file{uplcore.ltx} (recent version of \pLaTeX\ is assumed)} +%\fi +% \begin{macrocode} +\typeout{**************************^^J% + *^^J% + * making upLaTeX format^^J% + *^^J% + **************************} +\makeatletter +\input plcore.ltx +\input uplcore.ltx +% \end{macrocode} +% +%\ifJAPANESE +% フォント関連のデフォルト設定ファイルである、 +% \file{upldefs.ltx}を読み込みます。 +% \TeX{}の入力ファイル検索パスに設定されている +% ディレクトリに\file{upldefs.cfg}ファイルがある場合は、 +% そのファイルを使います。 +% 読み込み後にコードが実行されるかもしれません。 +% \changes{v1.0s-u01}{2017/12/05}{デフォルト設定ファイルの読み込みを +% \file{uplcore.ltx}から\file{uplatex.ltx}へ移動 +% (based on platex.dtx 2017/12/05 v1.0s)} +% \changes{v1.1b-u03}{2020/09/28}{defs読込後にフック追加} +%\else +% Load font-related default settings, \file{upldefs.ltx}. +% If a file \file{upldefs.cfg} is found, then that file will be +% used instead. +% Some code may be executed after loading. +% \changes{v1.0s-u01}{2017/12/05}{Moved loading default settings +% from \file{uplcore.ltx} to \file{uplatex.ltx} +% (based on platex.dtx 2017/12/05 v1.0s)} +% \changes{v1.1b-u03}{2020/09/28}{Add hook after loading defs} +%\fi +% \begin{macrocode} +\InputIfFileExists{upldefs.cfg} + {\typeout{*************************************^^J% + * Local config file upldefs.cfg used^^J% + *************************************}}% + {\input{upldefs.ltx}} +\ifx\code@after@pldefs\@undefined\else \code@after@pldefs \fi +% \end{macrocode} +% +%\ifJAPANESE +% 以前のバージョンでは、フォーマット作成時に\upLaTeX{}のバージョンが +% わかるように、端末に表示していましたが、|\everyjob| にバナー表示 +% 以外のコードが含まれる可能性を考慮し、安全のためやめました。 +% \changes{v1.0w-u02}{2018/04/08}{安全のためフォーマット作成時の +% バナー表示をやめた +% (based on platex.dtx 2018/04/08 v1.0w)} +%\else +% In the previous version, we displayed \upLaTeX\ version +% on the terminal, so that it can be easily recognized +% during format creation; however |\everyjob| can contain +% any code other than showing a banner, so now disabled. +% \changes{v1.0w-u02}{2018/04/08}{Stop showing banner during +% format generation for safety +% (based on platex.dtx 2018/04/08 v1.0w)} +%\fi +% \begin{macrocode} +%\the\everyjob +% \end{macrocode} +% +%\ifJAPANESE +% \upLaTeXe{}の起動時に\file{uplatex.cfg}がある場合、それを読み込む +% ようにします(\pLaTeXe{}が\file{platex.cfg}を読み込むのと同様)。 +% バージョン2016/07/01ではコードを\file{uplcore.ltx}に入れていました +% が、\file{uplatex.ltx}へ移動しました。 +% \changes{v1.0m-u01}{2016/08/26}{\file{uplatex.cfg}の読み込みを +% \file{uplcore.ltx}から\file{uplatex.ltx}へ移動 +% (based on platex.dtx 2016/08/26 v1.0m)} +%\else +% Load \file{uplatex.cfg} if it exists at runtime of \upLaTeXe. +% (Counterpart of \file{platex.cfg} in \pLaTeXe.) +% \changes{v1.0m-u01}{2016/08/26}{Moved loading \file{uplatex.cfg} +% from \file{uplcore.ltx} to \file{uplatex.ltx} +% (based on platex.dtx 2016/08/26 v1.0m)} +%\fi +% \begin{macrocode} +\everyjob\expandafter{% + \the\everyjob + \IfFileExists{uplatex.cfg}{% + \typeout{*************************^^J% + * Loading uplatex.cfg.^^J% + *************************}% + \input{uplatex.cfg}}{}% +} +% \end{macrocode} +% +%\ifJAPANESE +% フォーマットファイルにダンプします。 +%\else +% Dump to the format file. +%\fi +% \begin{macrocode} +\let\dump\orgdump +\let\orgdump\@undefined +\makeatother +\dump +%\endinput +% \end{macrocode} +% +% \begin{macrocode} +%</plcore> +% \end{macrocode} +% +%\ifJAPANESE +% 実際に\upLaTeXe{}への拡張を行なっている\file{uplcore.ltx}は、 +% \dst{}プログラムによって、次のファイルの断片が連結されたものです。 +% +% \begin{itemize} +% \item \file{uplvers.dtx}は、\upLaTeXe{}のフォーマットバージョンを +% 定義しています。 +% \end{itemize} +% +% また、プリロードフォントや組版パラメータなどのデフォルト設定は、 +% \file{uplatex.ltx}の中で\file{upldefs.ltx}をロードすることにより行います +% \footnote{旧版では\file{uplcore.ltx}の中でロードしていましたが、 +% 2018年以降の新しいコミュニティ版\upLaTeX{}では +% \file{uplatex.ltx}から読み込むことにしました。}。 +% このファイル\file{upldefs.ltx}も\file{uplfonts.dtx}から生成されます。 +% \begin{chuui} +% このファイルに記述されている設定を変更すれば +% \upLaTeXe{}をカスタマイズすることができますが、 +% その場合は\file{upldefs.ltx}を直接修正するのではなく、いったん +% \file{upldefs.cfg}という名前でコピーして、そのファイルを編集してください。 +% フォーマット作成時に\file{upldefs.cfg}が存在した場合は、そちらが +% \file{upldefs.ltx}の代わりに読み込まれます。 +% \end{chuui} +%\else +% The file \file{uplcore.ltx}, which provides modifications/extensions +% to make \upLaTeXe, is a concatenation of stripped files below +% using \dst\ program. +% +% \begin{itemize} +% \item \file{uplvers.dtx} defines the format version of \upLaTeXe. +% \item \file{uplfonts.dtx} extends \NFSS2 for Japanese font selection. +% \item \file{plcore.dtx} (the same content as \pLaTeXe); defines other +% modifications to \LaTeXe. +% \end{itemize} +% +% Moreover, default settings of pre-loaded fonts and typesetting parameters +% are done by loading \file{upldefs.ltx} inside +% \file{uplatex.ltx}.\footnote{Older \upLaTeX\ loaded \file{upldefs.ltx} +% inside \file{uplcore.ltx}; however, \upLaTeX\ community edition newer than +% 2018 loads \file{upldefs.ltx} inside \file{uplatex.ltx}.} +% This file \file{upldefs.ltx} is also stripped from \file{uplfonts.dtx}. +% \begin{chuui} +% You can customize \upLaTeXe\ by tuning these settings. +% If you need to do that, copy/rename it as \file{upldefs.cfg} and edit it, +% instead of overwriting \file{upldefs.ltx} itself. +% If a file named \file{upldefs.cfg} is found at a format creation +% time, it will be read as a substitute of \file{upldefs.ltx}. +% \end{chuui} +%\fi +% +%\ifJAPANESE +% ここまで見てきたように、\upLaTeX{}の各ファイルはそれぞれ\pLaTeX{}での +% 対応するファイル名の頭に``u''を付けた名前になっています。 +%\else +% As shown above, the files in \upLaTeX\ is named after \pLaTeX\ ones, +% prefixed with ``u.'' +%\fi +% +% +%\ifJAPANESE +% \subsubsection{バージョン} +% \upLaTeXe{}のバージョンやフォーマットファイル名は、 +% \file{uplvers.dtx}で定義しています。これは、\pLaTeXe{}のバージョンや +% フォーマットファイル名が\file{plvers.dtx}で定義されているのと同じです。 +%\else +% \subsubsection{Version} +% The version (like ``\pfmtversion'') and the format name +% (``\pfmtname'') of \upLaTeXe\ are defined in \file{uplvers.dtx}. +% This is similar to \pLaTeXe, which defines those in \file{plvers.dtx}. +%\fi +% +% +%\ifJAPANESE +% \subsubsection{\NFSS2コマンド} +% \upLaTeXe{}は\pLaTeXe{}と共通の\file{plcore.ltx}を使用していますので、 +% \NFSS2の和文フォント選択への拡張が有効になっています。 +%\else +% \subsubsection{\NFSS2 Commands} +% \upLaTeXe\ shares \file{plcore.dtx} with \pLaTeXe, so +% the extensions of \NFSS2 for selecting Japanese fonts are available. +%\fi +% +% +%\ifJAPANESE +% \subsubsection{出力ルーチンとフロート} +% \upLaTeXe{}は\pLaTeXe{}と共通の\file{plcore.ltx}を使用していますので、 +% 出力ルーチンや脚注マクロなどは\pLaTeXe{}と同じように動作します。 +%\else +% \subsubsection{Output Routine and Floats} +% \upLaTeXe\ shares \file{plcore.dtx} with \pLaTeXe, so +% the output routine and footnote macros will behave similar to \pLaTeXe. +%\fi +% +% +%\ifJAPANESE +% \subsection{クラスファイルとパッケージファイル} +% +% \upLaTeXe{}が提供をするクラスファイルやパッケージファイルは、 +% \pLaTeXe{}に含まれるファイルを基にしています。 +% +% \upLaTeXe{}に付属のクラスファイルは、次のとおりです。 +% +% \begin{itemize} +% \item ujarticle.cls, ujbook.cls, ujreport.cls\par +% 横組用の標準クラスファイル。 +% \file{ujclasses.dtx}から作成される。 +% それぞれjarticle.cls, jbook.cls, jreport.clsの\upLaTeX{}版。 +% +% \item utarticle.cls, utbook.cls, utreport.cls\par +% 縦組用の標準クラスファイル。 +% \file{ujclasses.dtx}から作成される。 +% それぞれtarticle.cls, tbook.cls, treport.clsの\upLaTeX{}版。 +% \end{itemize} +% +% なおjltxdoc.clsの\upLaTeX{}版はありませんが、これは\pLaTeX{}のものが +% \upLaTeX{}でもそのまま使えます。 +%\else +% \subsection{Classes and Packages} +% +% Classes and packages bundled with \upLaTeXe\ are based on +% those in original \pLaTeXe, and modified some parameters. +% +% \upLaTeXe\ classes: +% +% \begin{itemize} +% \item ujarticle.cls, ujbook.cls, ujreport.cls\par +% Standard \emph{yoko-kumi} (horizontal writing) classes; +% stripped from \file{ujclasses.dtx}. +% \upLaTeX\ edition of jarticle.cls, jbook.cls and jreport.cls. +% +% \item utarticle.cls, utbook.cls, utreport.cls\par +% Standard \emph{tate-kumi} (vertical writing) classes; +% stripped from \file{ujclasses.dtx}. +% \upLaTeX\ edition of tarticle.cls, tbook.cls and treport.cls. +% \end{itemize} +% +% We don't provide \upLaTeX\ edition of jltxdoc.cls, but the one +% from \pLaTeX\ can be used also on \upLaTeX\ without problem. +%\fi +% +%\ifJAPANESE +% また、\upLaTeXe{}に付属のパッケージファイルは、次のとおりです。 +% +% \begin{itemize} +% \item uptrace.sty\par +% ptrace.styの\upLaTeX{}版。 +% \LaTeX{}でフォント選択コマンドのトレースに使う\file{tracefnt.sty}が +% 再定義してしまう\NFSS2コマンドを、\upLaTeXe{}用に再々定義するための +% パッケージ。 +% \file{uplfonts.dtx}から作成される。 +% \end{itemize} +% +% 他の\pLaTeX{}のパッケージは、\upLaTeX{}でもそのまま動作します。 +%\else +% \upLaTeXe\ packages: +% +% \begin{itemize} +% \item uptrace.sty\par +% \upLaTeXe\ version of \file{tracefnt.sty}; +% the package \file{tracefnt.sty} overwrites \upLaTeXe-style \NFSS2 +% commands, so \file{uptrace.sty} provides redefinitions to recover +% \upLaTeXe\ extensions. Stripped from \file{uplfonts.dtx}. +% \end{itemize} +% +% Other \pLaTeX\ packages work also on \upLaTeX. +%\fi +% +% +%\ifJAPANESE +% \section{他のフォーマット・旧バージョンとの互換性} +% \label{platex:compatibility} +% ここでは、この\upLaTeXe{}のバージョンと以前のバージョン、あるいは +% \pLaTeXe{}/\LaTeXe{}との互換性について説明をしています。 +% +% \subsection{\pLaTeXe{}および\LaTeXe{}との互換性} +% \upLaTeXe{}は、\pLaTeXe{}の上位互換という形を取っていますので、 +% クラスファイルやいくつかのコマンドを置き換えるだけで、 +% たいていの\pLaTeXe{}文書を簡単に\upLaTeXe{}文書に変更することができます。 +% ただし、\upLaTeXe{}のデフォルトの日本語フォントメトリックは\pLaTeXe{}の +% それと異なりますので、レイアウトが変化することがあります。 +% また、\LaTeXe{}のいくつかの命令の定義も変更していますので、 +% \LaTeXe{}で処理できるファイルを\upLaTeXe{}で処理した場合に +% 完全に同じ結果になるとは限りません。 +% +% また、\upLaTeXe{}は新しいマクロパッケージですので、2.09互換モードを +% サポートしていません。\LaTeXe{}の仕様に従ってドキュメントを作成して +% ください。 +% +% \pLaTeXe{}向けあるいは\LaTeXe{}向けに作られた多くのクラスファイルや +% パッケージファイルはそのまま使えると思います。 +% ただし、例えばクラスファイルが\pLaTeX{}標準の +% 漢字エンコーディング(JY1, JT1)を前提としている場合は、 +% \upLaTeX{}で採用した漢字エンコーディング(JY2, JT2)と合致せずに +% エラーが発生してしまいます。この場合は、そのクラスファイルが +% \upLaTeX{}に対応していないことになります。このような場合は、 +% \pLaTeX{}を使い続けるか、その作者に連絡して\upLaTeX{}に対応して +% もらうなどの対応をとってください。 +%\else +% \section{Compatibility with Other Formats and Older Versions} +% \label{platex:compatibility} +% Here we provide some information about the compatibility between +% current \upLaTeXe\ and older versions or original \pLaTeXe/\LaTeXe. +% +% \subsection{Compatibility with \pLaTeXe/\LaTeXe} +% \upLaTeXe\ is in most part upward compatible with \pLaTeXe, +% so you can move from \pLaTeXe\ to \upLaTeXe\ by simply replacing +% the document class and some macros. However, the default Japanese +% font metrics in \upLaTeXe\ is different from those in \pLaTeXe; +% therefore, you should not expect identical output from both +% \pLaTeXe\ and \upLaTeXe. +% +% Note that \upLaTeX\ is a new format, so we do \emph{not} provide support +% for 2.09 compatibility mode. Follow the standard \LaTeXe\ convention! +% +% We hope that most classes and packages meant for \LaTeXe/\pLaTeXe\ works +% also for \upLaTeXe\ without any modification. However for example, +% if a class or a package uses Kanji encoding `JY1' or `JT1' (default on +% \pLaTeXe), an error complaining the mismatch of Kanji encoding might +% happen on \upLaTeX, in which the default is `JY2' and `JT2.' +% In this case, we have to say that the class or package does not support +% \upLaTeXe; you should use \pLaTeX, or report to the author of the +% package or class. +%\fi +% +%\ifJAPANESE +% \subsection{latexreleaseパッケージへの対応} +% \LaTeX\ \texttt{<2015/01/01>}で導入されたlatexreleaseパッケージを +% もとに、新しい\pLaTeX{}ではplatexreleaseパッケージが用意されました。 +% 本来は\upLaTeX{}でも同様のパッケージを用意するのがよいのですが、 +% 現在は\pLaTeX{}から\upLaTeX{}への変更点が含まれていませんので、 +% 幸いplatexreleaseパッケージをそのまま用いることができます。 +% このため、\upLaTeX{}で独自のパッケージを用意することはしていません。 +% platexreleaseパッケージを用いると、過去の\upLaTeX{}をエミュレート +% したり、フォーマットを作り直すことなく新しい\upLaTeX{}を試したりする +% ことができます。詳細はplatexreleaseのドキュメントを参照してください。 +%\else +% \subsection{Support for Package `latexrelease'} +% \pLaTeX\ provides `platexrelease' package, which is based on +% `latexrelease' package (introduced in \LaTeX\ \texttt{<2015/01/01>}). +% It could be better if we also provide a similar package on \upLaTeX, +% but currently we don't need it; \upLaTeX\ does not have any recent +% \upLaTeX-specific changes. So, you can safely use `platexrelease' +% package for emulating the specified format date. +%\fi +% +% +% +% \appendix +% +%\ifJAPANESE +% \section{\dst{}プログラムのためのオプション}\label{app:dst} +% この文書のソース(\file{uplatex.dtx})を\dst{}プログラムで +% 処理することによって、 +% いくつかの異なるファイルを生成することができます。 +% \dst{}プログラムの詳細は、\file{docstrip.dtx}を参照してください。 +% +% この文書の\dst{}プログラムのためのオプションは、次のとおりです。 +% +% \DeleteShortVerb{\|} +% \begin{center} +% \begin{tabular}{l|p{.8\linewidth}} +% \emph{オプション} & \emph{意味}\\\hline +% plcore & フォーマットファイルを作るためのファイルを生成\\ +% pldoc & \upLaTeXe{}のソースファイルをまとめて組版するための +% 文書ファイル(upldoc.tex)を生成\\[2mm] +% shprog & 上記のファイルを作成するためのshスクリプトを生成\\ +% Xins & 上記のshスクリプトやperlスクリプトを取り出すための +% \dst{}バッチファイル(Xins.ins)を生成\\ +% \end{tabular} +% \end{center} +% \MakeShortVerb{\|} +%\else +% \section{\dst\ Options}\label{app:dst} +% By processing \file{uplatex.dtx} with \dst\ program, +% different files can be generated. +% Here are the \dst\ options for this document: +% +% \DeleteShortVerb{\|} +% \begin{center} +% \begin{tabular}{l|p{.8\linewidth}} +% \emph{Option} & \emph{Function}\\\hline +% plcore & Generates a fragment of format sources\\ +% pldoc & Generates `upldoc.tex' for typesetting +% \upLaTeXe\ sources\\[2mm] +% shprog & Generates a shell script to process `upldoc.tex'\\ +% Xins & Generates a \dst\ batch file `Xins.ins' for +% generating the above shell/perl scripts\\ +% \end{tabular} +% \end{center} +% \MakeShortVerb{\|} +%\fi +% +% +%\ifJAPANESE +% \section{文書ファイル}\label{app:pldoc} +% ここでは、このパッケージに含まれているdtxファイルをまとめて組版し、 +% ソースコード説明書を得るための文書ファイル\file{upldoc.tex}について +% 説明をしています。個別に処理した場合と異なり、 +% 変更履歴や索引も付きます。 +% +% デフォルトではソースコードの説明が日本語で書かれます。 +% もし英語の説明書を読みたい場合は、\par\medskip +% \begin{minipage}{.5\textwidth}\ttfamily +% | |\cs{newif}\cs{ifJAPANESE} +% \end{minipage}\par\medskip\noindent +% という内容の\file{uplatex.cfg}を予め用意してから\file{upldoc.tex}を +% 処理してください(2016年7月1日以降の\upLaTeXe{}が必要)。 +% +% コードは\pLaTeXe{}のものと(ファイル名を除き)ほぼ同一なので、 +% ここでは違っている部分だけ説明します。 +%\else +% \section{Documentation of \upLaTeXe\ sources}\label{app:pldoc} +% The contents of `upldoc.tex' for typesetting \upLaTeXe\ sources +% is described here. Compared to individual processings, +% batch processing using `upldoc.tex' prints also changes and an index. +% +% By default, the description of \upLaTeXe\ sources is written in +% Japanese. If you need English version, first save\par\medskip +% \begin{minipage}{.5\textwidth}\ttfamily +% | |\cs{newif}\cs{ifJAPANESE} +% \end{minipage}\par\medskip\noindent +% as \file{uplatex.cfg}, and process \file{upldoc.tex} +% (\upLaTeXe\ newer than July 2016 is required). +% +% Here we explain only difference between \file{pldoc.tex} (\pLaTeXe) +% and \file{upldoc.tex} (\upLaTeXe). +%\fi +% +% \begin{macrocode} +%<*pldoc> +\begin{filecontents}{upldoc.dic} +西暦 せいれき +和暦 われき +\end{filecontents} +% \end{macrocode} +%\ifJAPANESE +% \pLaTeXe{}のドキュメントでは、\file{plext.dtx}の中で組み立てるサンプル +% のために\file{plext}パッケージが必要ですが、\upLaTeXe{}のファイル +% にはそのようなサンプルが含まれないので除外しています。 +%\else +% The document of \pLaTeXe\ requires \file{plext} package, +% since \file{plext.dtx} contains several examples of partial +% vertical writing. However, we don't have such examples in +% \upLaTeXe\ files, so no need for it. +%\fi +% \begin{macrocode} +\documentclass{jltxdoc} +%\usepackage{plext} %% comment out for upLaTeX +\listfiles + +\DoNotIndex{\def,\long,\edef,\xdef,\gdef,\let,\global} +\DoNotIndex{\if,\ifnum,\ifdim,\ifcat,\ifmmode,\ifvmode,\ifhmode,% + \iftrue,\iffalse,\ifvoid,\ifx,\ifeof,\ifcase,\else,\or,\fi} +\DoNotIndex{\box,\copy,\setbox,\unvbox,\unhbox,\hbox,% + \vbox,\vtop,\vcenter} +\DoNotIndex{\@empty,\immediate,\write} +\DoNotIndex{\egroup,\bgroup,\expandafter,\begingroup,\endgroup} +\DoNotIndex{\divide,\advance,\multiply,\count,\dimen} +\DoNotIndex{\relax,\space,\string} +\DoNotIndex{\csname,\endcsname,\@spaces,\openin,\openout,% + \closein,\closeout} +\DoNotIndex{\catcode,\endinput} +\DoNotIndex{\jobname,\message,\read,\the,\m@ne,\noexpand} +\DoNotIndex{\hsize,\vsize,\hskip,\vskip,\kern,\hfil,\hfill,\hss,\vss,\unskip} +\DoNotIndex{\m@ne,\z@,\z@skip,\@ne,\tw@,\p@,\@minus,\@plus} +\DoNotIndex{\dp,\wd,\ht,\setlength,\addtolength} +\DoNotIndex{\newcommand, \renewcommand} + +\ifJAPANESE +\IndexPrologue{\part*{索 引}% + \markboth{索 引}{索 引}% + \addcontentsline{toc}{part}{索 引}% +イタリック体の数字は、その項目が説明されているページを示しています。 +下線の引かれた数字は、定義されているページを示しています。 +その他の数字は、その項目が使われているページを示しています。} +\else +\IndexPrologue{\part*{Index}% + \markboth{Index}{Index}% + \addcontentsline{toc}{part}{Index}% +The italic numbers denote the pages where the corresponding entry +is described, numbers underlined point to the definition, +all others indicate the places where it is used.} +\fi +% +\ifJAPANESE +\GlossaryPrologue{\part*{変更履歴}% + \markboth{変更履歴}{変更履歴}% + \addcontentsline{toc}{part}{変更履歴}} +\else +\GlossaryPrologue{\part*{Change History}% + \markboth{Change History}{Change History}% + \addcontentsline{toc}{part}{Change History}} +\fi + +\makeatletter +\def\changes@#1#2#3{% + \let\protect\@unexpandable@protect + \edef\@tempa{\noexpand\glossary{#2\space + \currentfile\space#1\levelchar + \ifx\saved@macroname\@empty + \space\actualchar\generalname + \else + \expandafter\@gobble + \saved@macroname\actualchar + \string\verb\quotechar*% + \verbatimchar\saved@macroname + \verbatimchar + \fi + :\levelchar #3}}% + \@tempa\endgroup\@esphack} +\renewcommand*\MacroFont{\fontencoding\encodingdefault + \fontfamily\ttdefault + \fontseries\mddefault + \fontshape\updefault + \small + \hfuzz 6pt\relax} +\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.8em}} +\renewcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.4em}} +\makeatother +\RecordChanges +\CodelineIndex +\EnableCrossrefs +\setcounter{IndexColumns}{2} +\settowidth\MacroIndent{\ttfamily\scriptsize 000\ } +% \end{macrocode} +%\ifJAPANESE +% この文書のタイトル・著者・日付を設定します。 +% \changes{v1.0h-u00}{2016/05/08}{ドキュメントから\file{uplpatch.ltx}を除外 +% (based on platex.dtx 2016/05/08 v1.0h)} +% \changes{v1.0l-u01}{2016/06/19}{パッチレベルを\file{uplvers.dtx}から取得 +% (based on platex.dtx 2016/06/19 v1.0l)} +% \changes{v1.0y-u02}{2018/09/22}{最終更新日を\file{upldoc.pdf}に表示 +% (based on platex.dtx 2018/09/22 v1.0y)} +%\else +% Set the title, authors and the date for this document. +% \changes{v1.0h-u00}{2016/05/08}{Exclude \file{uplpatch.ltx} from the document +% (based on platex.dtx 2016/05/08 v1.0h)} +% \changes{v1.0l-u01}{2016/06/19}{Get the patch level from \file{uplvers.dtx} +% (based on platex.dtx 2016/06/19 v1.0l)} +% \changes{v1.0y-u02}{2018/09/22}{Show last update info on \file{upldoc.pdf} +% (based on platex.dtx 2018/09/22 v1.0y)} +%\fi +% \begin{macrocode} + \title{The \upLaTeXe\ Sources} + \author{Ken Nakano \& Japanese \TeX\ Development Community \& TTK} + +% Get the (temporary) date and up-patch level from uplvers.dtx +\makeatletter +\let\patchdate=\@empty +\begingroup + \def\ProvidesFile#1[#2 #3]#4\def\uppatch@level#5{% + \date{#2}\xdef\patchdate{#5}\endinput} + \input{uplvers.dtx} +\endgroup + +% Add the patch version if available. +\def\Xpatch{} +\ifx\patchdate\Xpatch\else + \edef\@date{\@date\space version \patchdate} +\fi + +% Obtain the last update info, as upLaTeX does not change format date +% -> if successful, reconstruct the date completely +\def\lastupd@te{0000/00/00} +\begingroup + \def\ProvidesFile#1[#2 #3]{% + \def\@tempd@te{#2}\endinput + \@ifl@t@r{\@tempd@te}{\lastupd@te}{% + \global\let\lastupd@te\@tempd@te + }{}} + \let\ProvidesClass\ProvidesFile + \let\ProvidesPackage\ProvidesFile + \input{uplvers.dtx} + \input{uplfonts.dtx} + \input{ukinsoku.dtx} + \input{ujclasses.dtx} +\endgroup +\@ifl@t@r{\lastupd@te}{0000/00/00}{% + \date{Version \patchdate\break (last updated: \lastupd@te)}% +}{} +\makeatother +% \end{macrocode} +%\ifJAPANESE +% ここからが本文ページとなります。 +%\else +% Here starts the document body. +%\fi +% \begin{macrocode} +\begin{document} +\pagenumbering{roman} +\maketitle +\renewcommand\maketitle{} +\tableofcontents +\clearpage +\pagenumbering{arabic} + +\DocInclude{uplvers} % upLaTeX version + +\DocInclude{uplfonts} % NFSS2 commands + +\DocInclude{ukinsoku} % kinsoku parameter + +\DocInclude{ujclasses} % Standard class + +\StopEventually{\end{document}} + +\clearpage +\pagestyle{headings} +% Make TeX shut up. +\hbadness=10000 +\newcount\hbadness +\hfuzz=\maxdimen +% +\PrintChanges +\clearpage +% +\begingroup + \def\endash{--} + \catcode`\-\active + \def-{\futurelet\temp\indexdash} + \def\indexdash{\ifx\temp-\endash\fi} + + \PrintIndex +\endgroup +\let\PrintChanges\relax +\let\PrintIndex\relax +\end{document} +%</pldoc> +% \end{macrocode} +% +% +% +%\ifJAPANESE +% \section{おまけプログラム}\label{app:omake} +% +% \subsection{シェルスクリプト\file{mkpldoc.sh}}\label{app:shprog} +% \upLaTeXe{}のマクロ定義ファイルをまとめて組版し、変更履歴と索引も +% 付けるときに便利なシェルスクリプトです。 +% このシェルスクリプトの使用方法は次のとおりです。 +%\begin{verbatim} +% sh mkpldoc.sh +%\end{verbatim} +% +% コードは\pLaTeXe{}のものと(ファイル名を除き)ほぼ同一なので、 +% ここでは違っている部分だけ説明します。 +%\else +% \section{Additional Utility Programs}\label{app:omake} +% +% \subsection{Shell Script \file{mkpldoc.sh}}\label{app:shprog} +% A shell script to process `pldoc.tex' and produce a fully indexed +% source code description. Run |sh mkpldoc.sh| to use it. +% +% The script is almost identical to that in \pLaTeXe, so +% here we describe only the difference. +%\fi +% +% \begin{macrocode} +%<*shprog> +%<ja>rm -f upldoc.toc upldoc.idx upldoc.glo +%<en>rm -f upldoc-en.toc upldoc-en.idx upldoc-en.glo +echo "" > ltxdoc.cfg +%<ja>uplatex upldoc.tex +%<en>uplatex -jobname=upldoc-en upldoc.tex +% \end{macrocode} +%\ifJAPANESE +% 変更履歴や索引の生成にはmendexを用いますが、 +% \upLaTeX{}の場合はUTF-8モードで実行する必要がありますので、 +% |-U|というオプションを付けます\footnote{uplatexコマンドも +% 実際にはUTF-8モードで実行する必要がありますが、デフォルトの内部漢字 +% コードがUTF-8に設定されているはずですので、\texttt{-kanji=utf8}を +% 付けなくても処理できると思います。}。 +% makeindexコマンドには、このオプションがありません。 +%\else +% To make the Change log and Glossary (Change History) for +% \upLaTeX\ using `mendex,' we need to run it in UTF-8 mode. +% So, option |-U| is important.\footnote{The command `uplatex' +% should be also in UTF-8 mode, but it defaults to UTF-8 mode; +% therefore, we don't need to add \texttt{-kanji=utf8} explicitly.} +%\fi +% \begin{macrocode} +%<ja>mendex -U -s gind.ist -d upldoc.dic -o upldoc.ind upldoc.idx +%<en>mendex -U -s gind.ist -d upldoc.dic -o upldoc-en.ind upldoc-en.idx +%<ja>mendex -U -f -s gglo.ist -o upldoc.gls upldoc.glo +%<en>mendex -U -f -s gglo.ist -o upldoc-en.gls upldoc-en.glo +echo "\includeonly{}" > ltxdoc.cfg +%<ja>uplatex upldoc.tex +%<en>uplatex -jobname=upldoc-en upldoc.tex +echo "" > ltxdoc.cfg +%<ja>uplatex upldoc.tex +%<en>uplatex -jobname=upldoc-en upldoc.tex +# EOT +%</shprog> +% \end{macrocode} +% +% +%\ifJAPANESE +% \subsection{perlスクリプト\file{dstcheck.pl}}\label{app:plprog} +% \pLaTeXe{}のものがそのまま使えるので、\upLaTeXe{}では省略します。 +%\else +% \subsection{Perl Script \file{dstcheck.pl}}\label{app:plprog} +% The one from \pLaTeXe\ can be use without any change, so +% omitted here in \upLaTeXe. +%\fi +% +% +%\ifJAPANESE +% \subsection{\dst{}バッチファイル} +% 付録\ref{app:shprog}で説明をしたスクリプトを、このファイルから +% 取り出すための\dst{}バッチファイルです。コードは\pLaTeXe{}の +% ものと(ファイル名を除き)ほぼ同一なので、説明は割愛します。 +%\else +% \subsection{\dst{} Batch file} +% Here we introduce a \dst\ batch file `Xins.ins,' which generates the +% script described in Appendix \ref{app:shprog}. +% The code is almost identical to that in \pLaTeXe. +%\fi +% +% \begin{macrocode} +%<*Xins> +\input docstrip +\keepsilent +% \end{macrocode} +% +% \begin{macrocode} +{\catcode`#=12 \gdef\MetaPrefix{## }} +% \end{macrocode} +% +% \begin{macrocode} +\declarepreamble\thispre +\endpreamble +\usepreamble\thispre +% \end{macrocode} +% +% \begin{macrocode} +\declarepostamble\thispost +\endpostamble +\usepostamble\thispost +% \end{macrocode} +% +% \begin{macrocode} +\generate{ + \file{mkpldoc.sh}{\from{uplatex.dtx}{shprog,ja}} + \file{mkpldoc-en.sh}{\from{uplatex.dtx}{shprog,en}} +} +\endbatchfile +%</Xins> +% \end{macrocode} +% +% \newpage +% \begin{thebibliography}{9} +% \bibitem{tb108tanaka} +% Takuji Tanaka, +% \newblock Up\TeX\ --- Unicode version of \pTeX\ with CJK extensions. +% \newblock TUGboat issue 34:3, 2013.\\ +% (\texttt{http://tug.org/TUGboat/tb34-3/tb108tanaka.pdf}) +% \end{thebibliography} +% +% \iffalse +% ここで、このあとに組版されるかもしれない文書のために、 +% 節見出しの番号を算用数字に戻します。 +% \fi +% +% \renewcommand{\thesection}{\arabic{section}} +% +% \Finale +% +\endinput |