From ca00616c46add04269a656e97f1d252a8013077f Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Wed, 6 Dec 2017 23:54:48 +0000 Subject: uplatex (7dec17) git-svn-id: svn://tug.org/texlive/trunk@46000 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/source/uplatex/base/Makefile | 28 +- Master/texmf-dist/source/uplatex/base/plcore.dtx | 7 +- Master/texmf-dist/source/uplatex/base/uplatex.dtx | 1224 ++++++++++---------- Master/texmf-dist/source/uplatex/base/uplfonts.dtx | 130 ++- Master/texmf-dist/source/uplatex/base/uplvers.dtx | 131 ++- 5 files changed, 817 insertions(+), 703 deletions(-) (limited to 'Master/texmf-dist/source/uplatex/base') diff --git a/Master/texmf-dist/source/uplatex/base/Makefile b/Master/texmf-dist/source/uplatex/base/Makefile index d6ea4ce48a9..9ea26c695fd 100644 --- a/Master/texmf-dist/source/uplatex/base/Makefile +++ b/Master/texmf-dist/source/uplatex/base/Makefile @@ -1,6 +1,8 @@ STRIPTARGET = uplatex.ltx ujarticle.cls -PDFTARGET = uplatex.pdf upldoc.pdf -DVITARGET = uplatex.dvi upldoc.dvi +DOCTARGET = uplatex upldoc \ + uplatex-en +PDFTARGET = $(addsuffix .pdf,$(DOCTARGET)) +DVITARGET = $(addsuffix .dvi,$(DOCTARGET)) KANJI = -kanji=utf8 FONTMAP = -f ipaex.map -f uptex-ipaex.map TEXMF = $(shell kpsewhich -var-value=TEXMFHOME) @@ -38,6 +40,7 @@ ujarticle.cls: $(PLCLS_SRC) rm uplcls.log uplatex.dvi: $(INTRODOC_SRC) + rm -f uplatex.cfg uplatex $(KANJI) uplatex.dtx mendex -U -f -s gglo.ist -o uplatex.gls uplatex.glo uplatex $(KANJI) uplatex.dtx @@ -45,19 +48,32 @@ uplatex.dvi: $(INTRODOC_SRC) rm uplatex.glo uplatex.gls uplatex.ilg upldoc.dvi: $(PLDOC_SRC) + rm -f uplatex.cfg rm -f upldoc.tex Xins.ins uplatex $(KANJI) upldocs.ins - rm -f mkpldoc.sh dstcheck.pl + rm -f mkpldoc.sh #dstcheck.pl uplatex $(KANJI) Xins.ins sh mkpldoc.sh rm *.aux *.log upldoc.toc upldoc.idx upldoc.ind upldoc.ilg rm upldoc.glo upldoc.gls upldoc.tex Xins.ins - rm ltxdoc.cfg upldoc.dic mkpldoc.sh dstcheck.pl + rm ltxdoc.cfg upldoc.dic mkpldoc.sh #dstcheck.pl + +uplatex-en.dvi: $(INTRODOC_SRC) + # built-in echo in shell is troublesome, so use perl instead + perl -e "print \"\\\\newif\\\\ifJAPANESE\\n"\" >uplatex.cfg + uplatex -jobname=uplatex-en $(KANJI) uplatex.dtx + mendex -U -f -s gglo.ist -o uplatex-en.gls uplatex-en.glo + uplatex -jobname=uplatex-en $(KANJI) uplatex.dtx + rm uplatex-en.aux uplatex-en.log + rm uplatex-en.glo uplatex-en.gls uplatex-en.ilg + rm uplatex.cfg uplatex.pdf: uplatex.dvi - dvipdfmx $(FONTMAP) uplatex.dvi + dvipdfmx $(FONTMAP) $< upldoc.pdf: upldoc.dvi - dvipdfmx $(FONTMAP) upldoc.dvi + dvipdfmx $(FONTMAP) $< +uplatex-en.pdf: uplatex-en.dvi + dvipdfmx $(FONTMAP) $< .PHONY: install clean cleanstrip cleanall cleandoc install: diff --git a/Master/texmf-dist/source/uplatex/base/plcore.dtx b/Master/texmf-dist/source/uplatex/base/plcore.dtx index e81ad2c6726..24505c96e96 100644 --- a/Master/texmf-dist/source/uplatex/base/plcore.dtx +++ b/Master/texmf-dist/source/uplatex/base/plcore.dtx @@ -128,7 +128,7 @@ % % \subsection{$B%W%j%"%s%V%k%3%^%s%I(B} % $BJ8=q%U%!%$%k$,I,MW$H$9$k%U%)!<%^%C%H%U%!%$%k$N;XDj$r$9$k%3%^%s%I$r(B -% $B3HD%;R!"(Bp\LaTeXe{}$B%U%)!<%^%C%H%U%!%$%k$bG'<1$9$k$h$&$K$7$^$9!#(B +% $B3HD%$7!"(Bp\LaTeXe{}$B%U%)!<%^%C%H%U%!%$%k$bG'<1$9$k$h$&$K$7$^$9!#(B % % \begin{macro}{\NeedsTeXFormat} % \begin{macro}{\@needsPformat} @@ -743,7 +743,7 @@ % $B%G%U%)%k%H$G$O2?$b=PNO$7$^$;$s!#(B % |\@bannerfont|$B%U%)%s%H$O!"$=$NJ8;zNs$r=PNO$9$k$?$a$N%U%)%s%H$G$9!#(B % 9$B%]%$%s%H$N%?%$%W%i%$%?BN$H$7$F$$$^$9!#(B -% \changes{v1.1f}{1996/09/03}{Add \cs{@bannerbox}.} +% \changes{v1.1f}{1996/09/03}{Add \cs{@bannertoken}.} % \begin{macrocode} \font\@bannerfont=cmtt9 \newtoks\@bannertoken @@ -1867,7 +1867,8 @@ % ^^A $B$J$*!"(Bp\TeX{}-ng$B$O(Be-p\TeX{}$B$HF1MM$K(Bpdf\TeX{}$B3HD%$N(B % ^^A $B0lIt!J(Be-p\TeX{}$B$HHO0O$,0lCW$7$J$$!K$r;}$C$F$$$k$3$H!"(B % ^^A $B$^$?(B|\lastnodechar|$B$J$I$N(Be-p\TeX{}$BFH<+$N%W%j%_%F%#%V$r(B -% ^^A $B;}$C$F$$$J$$$3$H$K$bCm0U!#(B +% ^^A $B;}$C$F$$$J$$$3$H$K$bCm0U!D$@$C$?$,!"(B2017/09/06$BIU$G(B +% ^^A p\TeX{}-ng$B$K$b(B|\lastnodechar|$B$,DI2C$5$l$?!#(B % \begin{macrocode} \mathchardef\e@alloc@top=32767 \let\e@alloc@chardef\mathchardef diff --git a/Master/texmf-dist/source/uplatex/base/uplatex.dtx b/Master/texmf-dist/source/uplatex/base/uplatex.dtx index fbe4391b811..886be7225ac 100644 --- a/Master/texmf-dist/source/uplatex/base/uplatex.dtx +++ b/Master/texmf-dist/source/uplatex/base/uplatex.dtx @@ -14,70 +14,121 @@ % % \fi % +% \iffalse +%<*driver|pldoc> +\ifx\JAPANESEtrue\undefined + \expandafter\newif\csname ifJAPANESE\endcsname + \JAPANESEtrue +\fi +% +% \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 -% \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} +% +% \iffalse +%<*driver|pldoc> +\def\eTeX{$\varepsilon$-\pTeX} +\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} +% +% \fi +% % \StopEventually{} % % \iffalse -% \changes{v1.0}{1995/05/08}{first edition} -% \changes{v1.0a}{1995/08/25}{互換性について、\dst{}の使い方、参考文献を追加} -% \changes{v1.0b}{1996/02/01}{\file{omake-sh.ins}, \file{omake-pl.ins}を -% \dst{}の変更にともなう変更をした} -% \changes{v1.0c}{1997/01/23}{\LaTeX\ \textt{!<1996/12/01!>}に合わせて修正} -% \changes{v1.0c-u00}{2011/05/07}{p\LaTeX{}用からup\LaTeX{}用に修正。} -% \changes{v1.0d}{2016/01/27}{\file{mkpldoc.sh}を改善。 -% p\LaTeXe{}に付属するファイルの説明を更新} -% \changes{v1.0e}{2016/02/16}{platexreleaseの説明を追加} -% \changes{v1.0e-u00}{2016/04/06}{p\LaTeX{}の変更に追随。} -% \changes{v1.0f}{2016/04/12}{ドキュメントを更新} -% \changes{v1.0g}{2016/05/07}{フォーマット作成時に\LaTeX{}のバナーを一旦保存} -% \changes{v1.0h-u00}{2016/05/08}{ドキュメントから\file{uplpatch.ltx}を除外} -% \changes{v1.0i}{2016/05/12}{一時コマンド\cs{orgdump}を最終的に未定義へ} -% \changes{v1.0j}{2016/05/20}{pfltraceの説明を追加} -% \changes{v1.0k}{2016/05/21}{変更履歴も出力するようにした} -% \changes{v1.0k-u00}{2016/05/21}{p\LaTeX{}の変更に追随。} -% \changes{v1.0k-u01}{2016/06/06}{up\LaTeX{}用にドキュメントを全体的に改訂} -% \changes{v1.0l-u01}{2016/06/19}{パッチレベルを\file{uplvers.dtx}から取得} +%\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}へ移動} -% \changes{v1.0n}{2016/09/14}{\LaTeX{}のバナーの保存しかたを改良} -% \changes{v1.0n-u01}{2016/09/14}{p\LaTeX{}の変更に追随。} -% \changes{v1.0o}{2017/09/24}{パッチレベルが負の数の場合をpre-release扱いへ} -% \changes{v1.0o-u01}{2017/09/24}{p\LaTeX{}の変更に追随。} +% \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{}の参考文献も追加} +%\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} +%\fi % \fi % % \iffalse %<*driver> \NeedsTeXFormat{pLaTeX2e} % \fi -\ProvidesFile{uplatex.dtx}[2017/09/24 v1.0o-u01 upLaTeX document file] +\ProvidesFile{uplatex.dtx}[2017/12/02 v1.0r-u01 upLaTeX document file] % \iffalse \documentclass{jltxdoc} \usepackage{plext} \GetFileInfo{uplatex.dtx} -\title{up\LaTeXe{}について} -\author{Ken Nakano \& Japanese \TeX\ Development Community \& TTK} +\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 @@ -111,20 +162,43 @@ % \fi % % -% \changes{v1.0c-u00}{2011/05/07}{p\LaTeX{}用からup\LaTeX{}用に修正。} -% \changes{v1.0k-u01}{2016/06/06}{up\LaTeX{}用にドキュメントを全体的に改訂} +%\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)} +%\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)} +%\fi % \begin{chuui} -% これは、アスキーのオリジナル版からforkしたコミュニティ版\pLaTeXe{}の -% 付属文書を\upLaTeXe{}用に書き換えたものです。 +%\ifJAPANESE +% この文書は、「コミュニティ版\pLaTeXe{}」をベースに\upTeX{}向けの調整を +% 加えた、「コミュニティ版\upLaTeXe{}」の付属文書です。 +%\else +% This document provides a brief description of \upLaTeXe, the Japanese +% extended version of \LaTeXe. This version is based on +% `\pLaTeXe\ Community Edition.' +% It is now maintained by Japanese \TeX\ Development +% Community\footnote{\texttt{https://texjp.org}}. +%\fi % \end{chuui} % -% アスキー\pTeX{}には、高品質の日本語組版ソフトウェアとしてデファクト -% スタンダードの地位にあるといえます。しかし、 -% (1) 直接使える文字集合が原則的にJIS X 0208(JIS第1,2水準)の範囲に限定 -% されていること、 -% (2) 8bitの非英語欧文との親和性が高いとは言えないこと、 -% (3) \pTeX{}の利用が日本語に限られ、中国語・韓国語との混植への利用が -% 進んでいないこと、といった弱点がありました。 +%\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{}で @@ -133,20 +207,58 @@ % 版\pLaTeX{}\footnote{\texttt{https://github.com/texjporg/platex}}を % ベースにしています。開発中の版は\pLaTeX{}と同様に、GitHubの % リポジトリ\footnote{\texttt{https://github.com/texjporg/uplatex}}で -% 管理しています。 +% 管理しています。\upLaTeX{}はアスキーとは無関係ですので、 +% バグレポートはアスキー宛てではなく、日本語\TeX{}開発コミュニティに報告 +% してください。\TeX\ ForumやGitHubのIssueシステムが利用できます。 +%\else +% ASCII \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 handlign 8-bit Latin, due to legacy double byte +% Japanese encodings +% \item Difficulty in typesetting CJK (Chinese, Japanese and Korean) +% multilingual documents +% \end{itemize} % -% より詳細な\upTeX{}や\upLaTeX{}の情報は、 -% それぞれ\file{README\_uplatex.txt}や\file{README\_uptex.txt}などの -% テキストファイルを参照してください。 +% 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}} +% 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 % -% \section{概要}\label{platex:intro} -% この文書は、up\LaTeXe{}の概要を示していますが、使い方のガイドではありません。 -% 元となっているp\LaTeXe{}や\LaTeXe{}については、それぞれp\LaTeXe{}と -% \LaTeXe{}の付属文書を参照してください。 +%\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} @@ -155,133 +267,142 @@ % この節です。この文書についての概要を述べています。 % % \item[第\ref{platex:plcore}節] -% up\LaTeXe{}で拡張した機能についての概要です。 +% \upLaTeXe{}で拡張した機能についての概要です。 % 付属のクラスファイルやパッケージファイルについても簡単に % 説明しています。 % -% ^^A \item[第\ref{platex:compatibility}節] -% ^^A 旧バージョンのp\LaTeX{}との互換性について述べています。 +% \item[第\ref{platex:compatibility}節] +% 現在のバージョンの\upLaTeX{}と旧バージョン、あるいは元となっている +% \pLaTeX{}/\LaTeX{}との互換性について述べています。 % % \item[付録\ref{app:dst}] -% この文書ソースの\dst{}のためのオプションについて述べています。 +% この文書ソース(uplatex.dtx)の +% \dst{}のためのオプションについて述べています。 % % \item[付録\ref{app:pldoc}] -% up\LaTeXe{}のdtxファイルをまとめて一つのDVIファイルにするための -% 文書ファイルの説明をしています。 +% \upLaTeXe{}のdtxファイルをまとめて、一つのソースコード説明書に +% するための文書ファイルの説明をしています。 % % \item[付録\ref{app:omake}] -% 付録\ref{app:pldoc}で説明をした文書ファイルを処理するshスクリプト(手順)、 -% \dst{}文書ファイル内の入れ子の対応を調べるperlスクリプトなどについて -% 説明しています。 +% 付録\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 % % -% \section{up\LaTeXe{}の機能について}\label{platex:plcore} -% up\LaTeXe{}の機能は、いくつものファイルに分割されて実装されています。 -% これらのファイルはつぎの3種類に分類することができます。 +%\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 % -% フォーマットファイルには、基本的な機能が定義されており、 -% up\LaTeXe{}の核となるファイルです。このファイルに定義されているマクロは、 -% 実行時の速度を高めるために、あらかじめ\TeX の内部形式の形で保存されて -% います。 -% -% クラスファイルは文書のレイアウトを設定するファイル、 -% パッケージファイルはマクロの拡張を定義するファイルです。 -% 前者は|\documentclass|コマンドを用いて読み込み、 -% 後者は|\usepackage|コマンドを用いて読み込みます。 -% -% \begin{chuui}[古いp\LaTeX~2.09ユーザへの注意:]%\normalfont -% u\pLaTeX{}は新しいマクロパッケージですので、2.09互換モードはサポートして -% いません。\LaTeXe{}の仕様に従ってドキュメントを作成してください。 -% \end{chuui} -% +%\ifJAPANESE % \subsection{フォーマットファイル} -% フォーマットファイルには、基本的な機能が定義されていますが、 -% これらは\TeX{}の内部形式に変換された形式となっています。 -% フォーマットファイルを作成するには、 -% ソースファイル``uplatex.ltx''を|iniuptex|プログラムで処理します。 +% \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} % -% 次のリストが、``uplatex.ltx''のの内容です。 -% ただし、このバージョンでは、\LaTeX{}からup\LaTeXe{}への拡張を +%\ifJAPANESE +% 次のリストが、\file{uplatex.ltx}の内容です。 +% ただし、このバージョンでは、\LaTeX{}から\upLaTeX{}への拡張を % \file{uplcore.ltx}をロードすることで行ない、 % \file{latex.ltx}には直接、手を加えないようにしています。 % したがって\file{uplatex.ltx}はとても短いものとなっています。 % \file{latex.ltx}には\LaTeX{}のコマンドが、 -% \file{uplcore.ltx}にはup\LaTeXe{}で拡張したコマンドが定義されています。 +% \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{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} % -% \file{latex.ltx}を読み込み、起動時のバナーを保存します。\TeX\ Liveの標準的 -% インストールでは、この中でBabel由来のハイフネーション・パターン -% \file{hyphen.cfg}が読み込まれ、そのバージョンも含めて保存されるはずです。 -% -%\iffalse -% 2016/05/07の実装では、\file{platex.ltx}のなかで -%\begin{verbatim} -% \edef\platexBANNER{\the\everyjob} -%\end{verbatim} -% としてバナーを保存し、この内容が -%\begin{verbatim} -% \typeout{LaTeX2e version}\typeout{Babel version} -%\end{verbatim} -% という4つのトークンから成ると仮定して、\file{plcore.ltx}のなかで -%\begin{verbatim} -% \def\parse@@BANNER#1#2#3#4{#2} -%\end{verbatim} -% のようにパースしていました。ところが、この「4つのトークンから成る」と -% いう仮定はBabel由来の\file{hyphen.cfg}を使用した場合のみ成り立ち、 -% それ以外の特別な\file{hyphen.cfg}や\file{hyphen.ltx}を使用した場合に -% エラーになってしまいます。 -% そこで、新たに2016/09/14の実装では、\file{platex.ltx}のなかで -%\begin{verbatim} -% \edef\platexBANNER{\the\everyjob\noexpand\typeout{}\relax} -%\end{verbatim} -% としてダミーを追加します(|\relax|はただの区切りトークンの役割)。 -% こうすると、|\platexBANNER|の内容は、Babelの\file{hyphen.cfg}のとき -%\begin{verbatim} -% \typeout{LaTeX2e version}\typeout{Babel version}\typeout{}\relax -%\end{verbatim} -% となり、それ以外のとき -%\begin{verbatim} -% \typeout{LaTeX2e version}\typeout{}\relax -%\end{verbatim} -% となるはずです。このように、少なくとも|\typeout|が2回含まれています -% ので、\file{plcore.ltx}のなかで -%\begin{verbatim} -% \def\parse@@BANNER\typeout#1\typeout#2#3\relax{#1} -%\end{verbatim} -% とパースすることができるようになります。 +%\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 -% -% \changes{v1.0g}{2016/05/07}{フォーマット作成時に\LaTeX{}のバナーを一旦保存} -% \changes{v1.0n}{2016/09/14}{\LaTeX{}のバナーの保存しかたを改良} % \begin{macrocode} \input latex.ltx -\edef\platexBANNER{\the\everyjob\noexpand\typeout{}\relax}% save LaTeX banner % \end{macrocode} % -% \file{uplcore.ltx}を読み込み、このup\LaTeX{}のバージョンを表示します。 +%\ifJAPANESE +% \file{uplcore.ltx}を読み込みます。 +%\else +% Load \file{uplcore.ltx}. +%\fi % \begin{macrocode} \typeout{**************************^^J% *^^J% @@ -290,14 +411,34 @@ **************************} \makeatletter \input uplcore.ltx +% \end{macrocode} +% +%\ifJAPANESE +% フォーマット作成時に\upLaTeX{}のバージョンがわかるように、 +% 端末に表示します。 +%\else +% Display \upLaTeX\ version on the terminal, so that +% it can be easily recognized during format creation. +%\fi +% \begin{macrocode} \the\everyjob % \end{macrocode} % -% 起動時に\file{uplatex.cfg}がある場合、それを読み込むようにします。 +%\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}へ移動} +% \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 @@ -309,8 +450,11 @@ } % \end{macrocode} % +%\ifJAPANESE % フォーマットファイルにダンプします。 -% \changes{v1.0i}{2016/05/12}{一時コマンド\cs{orgdump}を最終的に未定義へ} +%\else +% Dump to the format file. +%\fi % \begin{macrocode} \let\dump\orgdump \let\orgdump\@undefined @@ -323,189 +467,259 @@ % % \end{macrocode} % -% 実際にup\LaTeXe{}への拡張を行なっている\file{uplcore.ltx}は、 +%\ifJAPANESE +% 実際に\upLaTeXe{}への拡張を行なっている\file{uplcore.ltx}は、 % \dst{}プログラムによって、次のファイルの断片が連結されたものです。 % % \begin{itemize} -% \item \file{uplvers.dtx}は、up\LaTeXe{}のフォーマットバージョンを +% \item \file{uplvers.dtx}は、\upLaTeXe{}のフォーマットバージョンを % 定義しています。 % \item \file{uplfonts.dtx}は、\NFSS2を拡張しています。 -% \item このほか、p\LaTeXe{}に含まれる\file{plcore.dtx}をそのまま利用 +% \item このほか、\pLaTeXe{}に含まれる\file{plcore.dtx}をそのまま利用 % しています。これは、上記以外のコマンドでフォーマットファイルに % 格納されるコマンドを定義しています。 % \end{itemize} % -% プリロードフォントや組版パラメータなどの設定は、 -% \file{upldefs.ltx}をロードすることで行なっています。 -% このファイルに記述されている設定を変更すれば、 -% up\LaTeXe{}をカスタマイズすることができます。 -% カスタマイズする場合は、このファイルを直接、修正するのではなく、 -% \file{upldefs.cfg}という名前でコピーをして、そのファイルを編集します。 -% \file{upldefs.cfg}は\file{upldefs.ltx}の代わりに読み込まれます。 +% また、プリロードフォントや組版パラメータなどのデフォルト設定は、 +% \file{uplcore.ltx}の中で\file{upldefs.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{uplcore.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{バージョン} -% up\LaTeXe{}のバージョンやフォーマットファイル名は、 -% \file{uplvers.dtx}で定義しています。これは、p\LaTeXe{}のバージョンや +% \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コマンド} -% \LaTeX{}では、フォント選択機構として\NFSS2を用いています。 -% p\LaTeXe{}では、オリジナルの\NFSS2 と同様のインターフェイスで、 -% 和文フォントを選択できるように、\file{plfonts.dtx}で\NFSS2を拡張して -% いますので、up\LaTeXe{}も\file{uplfonts.dtx}で同じ方式を採用しています。 -% -% ^^A p\LaTeXe{}の\NFSS2は、フォントを切替えるコマンドを指定するときに、 -% ^^A それが欧文書体か和文書体のいずれかを対象とするものかを、 -% ^^A できるだけ意識しないようにする方向で拡張しています。 -% ^^A いいかえれば、コマンドが(可能な限りの)判断をします。 -% ^^A したがって数多くある英語版のクラスファイルやパッケージファイルなどで -% ^^A 書体の変更を行っている箇所を修正する必要はあまりありません。 -% -% \file{uplfonts.dtx}ファイルでは、\NFSS2コマンドの定義のほか、プリロード -% フォントの設定、和文エンコードの定義、組版パラメータなどの設定、 -% フォント定義ファイルなどの記述も含まれています。 -% -% ^^A \NFSS2についての詳細は、\LaTeXe に付属の\file{fntguide.tex}を参照して -% ^^A ください。 -% -% -% ^^A \subsubsection{出力ルーチンとフロート} -% ^^A \file{plcore.dtx}は、次の項目に関するコマンドを日本語処理用に修正や拡張 -% ^^A をしています。 -% ^^A -% ^^A \begin{itemize} -% ^^A \item プリアンブルコマンド -% ^^A \item 改ページ -% ^^A \item 改行 -% ^^A \item オブジェクトの出力順序 -% ^^A \item トンボ -% ^^A \item 脚注マクロ -% ^^A \item 相互参照 -% ^^A \item 疑似タイプ入力 -% ^^A \end{itemize} +% \upLaTeXe{}は、\pLaTeXe{}と同じ方式で\NFSS2を拡張し、 +% 和文フォントを選択できるようにしています。 +%\else +% \subsubsection{\NFSS2 Commands} +% \upLaTeXe\ extends \NFSS2 in the same way as \pLaTeXe, to enable +% selection of Japanese fonts. +%\fi +% +% +%\ifJAPANESE +% \subsubsection{出力ルーチンとフロート} +% \upLaTeXe{}は\pLaTeXe{}と共通の\file{plcore.dtx}を使用していますので、 +% 出力ルーチンや脚注マクロなどは\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{クラスファイルとパッケージファイル} -% ^^A クラスファイルとパッケージファイルは、従来、スタイルファイルと呼ばれていた -% ^^A ものです。\LaTeX{}ではそれらを、レイアウトに関するものをクラスファイルと -% ^^A 呼び、マクロの拡張をするものをパッケージファイルと呼んで区別するように -% ^^A なりました。 % -% up\LaTeXe{}が提供をする、クラスファイルやパッケージファイルのいくつかは、 -% p\LaTeXe{}に含まれるファイルを修正しています。 -% ^^A 修正箇所には``\texttt{platex}''条件が付けられています。 +% \upLaTeXe{}が提供をするクラスファイルやパッケージファイルは、 +% \pLaTeXe{}に含まれるファイルを基にしています。 % -% up\LaTeXe{}に付属のクラスファイルは、次のとおりです。 -% ^^A \changes{v1.0d}{2016/01/27}{p\LaTeXe{}に付属するファイルの説明を更新} -% ^^A \changes{v1.0j}{2016/05/20}{pfltraceの説明を追加} +% \upLaTeXe{}に付属のクラスファイルは、次のとおりです。 % % \begin{itemize} -% \item ujbook.cls, ujarticle.cls, ujreport.cls\par -% 横組用の標準クラスファイル。\file{ujclasses.dtx}から作成される。 +% \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} % -% \item utbook.cls, utarticle.cls, utreport.cls\par -% 縦組用の標準クラスファイル。\file{ujclasses.dtx}から作成される。 +% なおjltxdoc.clsの\upLaTeX{}版はありませんが、これは\pLaTeX{}のものが +% \upLaTeX{}でもそのまま使えます。 +%\else +% \subsection{Classes and Packages} % -% ^^A \item jltxdoc.cls\par -% ^^A 日本語の\file{.dtx}ファイルを組版するためのクラスファイル。 -% ^^A \file{jltxdoc.dtx}から作成される。 -% \end{itemize} +% Classes and packages bundled with \upLaTeXe\ are based on +% those in original \pLaTeXe, and modified some parameters. % -% また、up\LaTeXe{}に付属のパッケージファイルは、次のとおりです。 +% \upLaTeXe\ classes: % % \begin{itemize} -% ^^A \item plext.sty\par -% ^^A 縦組用の拡張コマンドなどが定義されているファイル。 -% ^^A -% ^^A \item oldpfont.sty\par -% ^^A p\LaTeX~2.09のフォントコマンドを提供するパッケージ。 -% ^^A \file{pl209.dtx}から作成される。 +% \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コマンドを、up\LaTeXe{}用に再々定義するための +% 再定義してしまう\NFSS2コマンドを、\upLaTeXe{}用に再々定義するための % パッケージ。 % \file{uplfonts.dtx}から作成される。 +% \end{itemize} +% +% 他の\pLaTeX{}のパッケージは、\upLaTeX{}でもそのまま動作します。 +%\else +% \upLaTeXe\ packages: % -% ^^A \item pfltrace.sty\par -% ^^A \LaTeX{}でフロート関連コマンドのトレースに使う\file{fltrace.sty}% -% ^^A \footnote{\LaTeX\ 2014/05/01で追加されました。参考: -% ^^A \LaTeXe\ News Issue 21 (ltnews21.tex)}が再定義してしまうコマンド -% ^^A を、p\LaTeXe{}用に再々定義するためのパッケージ。 -% ^^A \file{plcore.dtx}から作成される。 -% ^^A -% ^^A \item ascmac.sty, tascmac.sty\par -% ^^A \LaTeX{}の標準機能の範囲で、図や罫線で囲んだボックスを出力する命令 -% ^^A などを提供するパッケージ。旧バージョンのp\LaTeX{}でも配布されていた。 -% ^^A -% ^^A \item nidanfloat.sty\par -% ^^A 二段組時に段抜きのフロートをページ下部にも配置可能にする -% ^^A パッケージ。 +% \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 % -% \section{旧バージョンとの互換性}\label{platex:compatibility} -% ここでは、このバージョンと以前のバージョンとの互換性や拡張部分について -% 説明をしています。 % -% \subsection{p\LaTeX{}との互換性} -% up\LaTeXe{}は、p\LaTeX{}の上位互換という形を取っていますので、 -% クラスファイルやいくつかのコマンドを置き換えるだけで、 -% たいていのp\LaTeX{}文書を簡単にup\LaTeX{}文書に変更することができます。 -% ただし、up\LaTeX{}ではp\LaTeX{}で問題が指摘されていたフォントメトリックの -% 不都合などいくつかのパラメータを変更していますので、レイアウトが変化 -% することがあります。 +%\ifJAPANESE +% \section{他のフォーマット・旧バージョンとの互換性} +% \label{platex:compatibility} +% ここでは、この\upLaTeXe{}のバージョンと以前のバージョン、あるいは +% \pLaTeXe{}/\LaTeXe{}との互換性について説明をしています。 % -% また、u\pLaTeX{}は新しいマクロパッケージですので、2.09互換モードを +% \subsection{\pLaTeXe{}および\LaTeXe{}との互換性} +% \upLaTeXe{}は、\pLaTeXe{}の上位互換という形を取っていますので、 +% クラスファイルやいくつかのコマンドを置き換えるだけで、 +% たいていの\pLaTeXe{}文書を簡単に\upLaTeXe{}文書に変更することができます。 +% ただし、\upLaTeXe{}のデフォルトの日本語フォントメトリックは\pLaTeXe{}の +% それと異なりますので、レイアウトが変化することがあります。 +% また、\LaTeXe{}のいくつかの命令の定義も変更していますので、 +% \LaTeXe{}で処理できるファイルを\upLaTeXe{}で処理した場合に +% 完全に同じ結果になるとは限りません。 +% +% また、\upLaTeXe{}は新しいマクロパッケージですので、2.09互換モードを % サポートしていません。\LaTeXe{}の仕様に従ってドキュメントを作成して % ください。 % -% ^^A \subsection{p\LaTeX~2.09との互換性} -% ^^A p\LaTeXe{}は、\LaTeX{}の上位互換という形を取っていますが、 -% ^^A いくつかのパラメータなども変更しています。 -% ^^A したがって英文書など、\LaTeX{}でも処理できるファイルを -% ^^A p\LaTeXe{}で処理しても、完全に同じ結果になるとは限りません。 -% ^^A これは、英語版の\LaTeX{}でも同じです。 -% ^^A 詳細は、\LaTeXe に付属の\file{usrguide.tex}を参照してください。 -% -% p\LaTeX{}向けあるいは\LaTeX{}向けに作られた多くのクラスファイルや -% パッケージファイルはそのまま使えると思います。ただし、p\LaTeX{}標準の -% 漢字エンコーディング(JY1, JT1)を前提としたものがup\LaTeX{}で採用した -% 漢字エンコーディング(JY2, JT2)と合致しないといったエラーが発生すること -% もあります。用いようとしているクラスファイルやパッケージファイルが -% うまく動くかどうかを、完全に確かめる方法は残念ながらありません。 -% 一番簡単なのは、動かしてみることです。不幸にもうまく動かない場合は、 -% ログファイルや付属の文書ファイルを参考に原因を調べてください。 -% ^^A 多くのクラスファイルやパッケージファイルはそのまま使えると思います。 -% ^^A ただし、それらがp\LaTeXe{}で拡張しているコマンドと同じ名前のコマンドを -% ^^A 再定義している場合は、コマンドの拡張の仕方によってはエラーになることも -% ^^A あります。用いようとしている、クラスファイルやパッケージファイルが -% ^^A うまく動くかどうかを、完全に確かめる方法は残念ながらありません。 -% ^^A 一番簡単なのは、動かしてみることです。不幸にもうまく動かない場合は、 -% ^^A ログファイルや付属の文書ファイルを参考に原因を調べてください。 +% \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 upper 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パッケージへの対応} -% ^^A \changes{v1.0e}{2016/02/16}{platexreleaseの説明を追加} % \LaTeX\ \texttt{<2015/01/01>}で導入されたlatexreleaseパッケージを -% もとに、新しいp\LaTeX{}ではplatexreleaseパッケージが用意されました。 -% 本来はup\LaTeX{}でも同様のパッケージを用意するのがよいのですが、 -% 現在はp\LaTeX{}からup\LaTeX{}への変更点が含まれていませんので、 +% もとに、新しい\pLaTeX{}ではplatexreleaseパッケージが用意されました。 +% 本来は\upLaTeX{}でも同様のパッケージを用意するのがよいのですが、 +% 現在は\pLaTeX{}から\upLaTeX{}への変更点が含まれていませんので、 % 幸いplatexreleaseパッケージをそのまま用いることができます。 -% このため、up\LaTeX{}で独自のパッケージを用意することはしていません。 -% platexreleaseパッケージを用いると、過去のup\LaTeX{}をエミュレート -% したり、フォーマットを作り直すことなく新しいup\LaTeX{}を試したりする +% このため、\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} -% この文書のソース(uplatex.dtx)を\dst{}プログラムによって処理することによって、 +% この文書のソース(\file{uplatex.dtx})を\dst{}プログラムで +% 処理することによって、 % いくつかの異なるファイルを生成することができます。 -% \dst プログラムの詳細は、\file{docstrip.dtx}を参照してください。 +% \dst{}プログラムの詳細は、\file{docstrip.dtx}を参照してください。 % % この文書の\dst{}プログラムのためのオプションは、次のとおりです。 % @@ -514,53 +728,71 @@ % \begin{tabular}{l|p{.8\linewidth}} % \emph{オプション} & \emph{意味}\\\hline % plcore & フォーマットファイルを作るためのファイルを生成\\ -% pldoc & up\LaTeXe{}のソースファイルをまとめて組版するための -% 文書ファイルを生成\\[2mm] +% pldoc & \upLaTeXe{}のソースファイルをまとめて組版するための +% 文書ファイル(upldoc.tex)を生成\\[2mm] % shprog & 上記のファイルを作成するためのshスクリプトを生成\\ -% plprog & 入れ子構造を調べる簡単なperlスクリプトを生成\\ % Xins & 上記のshスクリプトやperlスクリプトを取り出すための -% \dst{}バッチファイルを生成\\ +% \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: % -% \subsection{ファイルの取り出し方} -% -% たとえば、この文書の``plcore''の部分を``\file{uplatex.ltx}''という -% ファイルにするときの手順はつぎのようになります。 -% -% \begin{enumerate} -% \item uplatex docstrip -% \item 入力ファイルの拡張子(dtx)を入力する。 -% \item 出力ファイルの拡張子(ltx)を入力する。 -% \item \dst{}オプション(plcore)を入力する。 -% \item 入力ファイル名(uplatex)を入力する。 -% \item \file{uplatex.ltx}が存在する場合は、確認を求めてくるので、 -% ``y''を入力する。 -% \item 別の処理を行なうかを問われるので、``n''を入力する。 -% \end{enumerate} -% これで、\file{uplatex.ltx}が作られます。 -% -% あるいは、次のような内容のファイル\file{fmt.ins}を作成し、 -% |uplatex fmt.ins|することでも\file{uplatex.ltx}を作ることができます。 -% -%\begin{verbatim} -% \def\batchfile{fmt.ins} -% \input docstrip.tex -% \generateFile{uplatex.ltx}{t}{\from{uplatex.dtx}{plcore}} -%\end{verbatim} +% \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} -% ^^A \changes{v1.0c}{1997/01/25}{Add to filecontents environment for pldoc.dic.} -% ここでは、このパッケージに含まれているdtxファイルをまとめて組版をするための -% 文書ファイルについて説明をしています。個別に処理した場合と異なり、 -% 変更履歴や索引も付きます。全体で、およそ120ページ程度になります。 -% -% |filecontents|環境は、引数に指定されたファイルが存在するときは何も -% しませんが、存在しないときは、環境内の内容でファイルを作成します。 -% \file{upldoc.dic}ファイルは、mendexプログラムで索引を処理するときに -% \cs{西暦}, \cs{和暦}に対する「読み」を付けるために必要です。 +% ここでは、このパッケージに含まれている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} @@ -568,17 +800,21 @@ 和暦 われき \end{filecontents} % \end{macrocode} -% 文書クラスには、\file{jltxdoc}クラスを用います。 -% ^^A \file{plext.dtx}の中でサンプルを組み立てていますので、 -% ^^A \file{plext}パッケージが必要です。 +%\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 -% \end{macrocode} -% いくつかの\TeX{}プリミティブとコマンドを索引に出力しないようにします。 -% \begin{macrocode} \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} @@ -597,23 +833,32 @@ \DoNotIndex{\dp,\wd,\ht,\setlength,\addtolength} \DoNotIndex{\newcommand, \renewcommand} -% \end{macrocode} -% 索引と変更履歴の見出しに\cs{part}を用いるように設定をします。 -% \begin{macrocode} +\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 -% \end{macrocode} -% 標準の|\changes|コマンドを、複数ファイルの文書に合うように修正しています。 -% \begin{macrocode} \makeatletter \def\changes@#1#2#3{% \let\protect\@unexpandable@protect @@ -636,14 +881,22 @@ \setcounter{IndexColumns}{2} \settowidth\MacroIndent{\ttfamily\scriptsize 000\ } % \end{macrocode} +%\ifJAPANESE % ここからが本文ページとなります。 -% ^^AA \changes{v1.0c}{1997/01/29}{Rename pltpatch to plpatch.} -% \changes{v1.0h-u00}{2016/05/08}{ドキュメントから\file{uplpatch.ltx}を除外} -% \changes{v1.0l-u01}{2016/06/19}{パッチレベルを\file{uplvers.dtx}から取得} -% \changes{v1.0o}{2017/09/24}{パッチレベルが負の数の場合をpre-release扱いへ} +% \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)} +%\else +% Here starts the document body. +% \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)} +%\fi % \begin{macrocode} \begin{document} - \title{The up\LaTeXe\ Sources} + \title{The \upLaTeXe\ Sources} \author{Ken Nakano \& Japanese \TeX\ Development Community \& TTK} % This command will be used to input the patch file @@ -702,29 +955,14 @@ %\DocInclude{plcore} % kernel commands (comment out for upLaTeX) -%\DocInclude{plext} % external commands (comment out for upLaTeX) - -%\DocInclude{pl209} % 2.09 compatibility mode commands (comment out for upLaTeX) - \DocInclude{ukinsoku} % kinsoku parameter \DocInclude{ujclasses} % Standard class -%\DocInclude{jltxdoc} % dtx documents class (comment out for upLaTeX) - %\includeltpatch % patch file (comment out May 8, 2016) -% \end{macrocode} -% \file{ltxdoc.cfg}に|\AtEndOfClass{\OnlyDescription}|が指定されている場合は、 -% ここで終了します。 -% \begin{macrocode} \StopEventually{\end{document}} -% \end{macrocode} -% 変更履歴と索引を組版します。 -% 変更履歴ファイルと索引の作り方の詳細については、 -% おまけ\ref{app:shprog}を参照してください。 -% \begin{macrocode} \clearpage \pagestyle{headings} % Make TeX shut up. @@ -743,11 +981,6 @@ \PrintIndex \endgroup -% \end{macrocode} -% \file{ltxdoc.cfg}に2度目の|\PrintIndex|が指定されているかもしれません。 -% そこで、最後に、変更履歴や索引が2度組版されないように|\PrintChanges|および -% |\PrintIndex|コマンドを何も実行しないようにします。 -% \begin{macrocode} \let\PrintChanges\relax \let\PrintIndex\relax \end{document} @@ -756,78 +989,58 @@ % % % +%\ifJAPANESE % \section{おまけプログラム}\label{app:omake} % % \subsection{シェルスクリプト\file{mkpldoc.sh}}\label{app:shprog} -% up\LaTeXe{}のマクロ定義ファイルをまとめて組版するときに便利なシェルスクリプトです。 -% このシェルスクリプト\footnote{このシェルスクリプトはUNIX用です。 -% しかしrmコマンドをdeleteコマンドにするなどすれば、簡単にDOSなどのバッチ -% ファイルに修正することができます。}の使用方法は次のとおりです。 +% \upLaTeXe{}のマクロ定義ファイルをまとめて組版し、変更履歴と索引も +% 付けるときに便利なシェルスクリプトです。 +% このシェルスクリプトの使用方法は次のとおりです。 %\begin{verbatim} % sh mkpldoc.sh %\end{verbatim} % -% \subsubsection{\file{mkpldoc.sh}の内容} -% まず、以前に\file{upldoc.tex}を処理したときに作成された、 -% 目次ファイルや索引ファイルなどを削除します。 -% ^^A \changes{v1.0c}{1997/01/23}{Don't copy gind.ist and gglo.ist from -% ^^A \$TEXMF/tex/latex2e/base directory.} -% ^^A \changes{v1.0d}{2016/01/27}{\file{mkpldoc.sh}を改善} +% コードは\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> for f in upldoc.toc upldoc.idx upldoc.glo ; do if [ -e $f ]; then rm $f; fi done -% \end{macrocode} -% そして、\file{ltxdoc.cfg}を空にします。 -% このファイルは、\file{jltxdoc.cls}の定義を変更するものですが、 -% ここでは、変更されたくありません。 -% \begin{macrocode} echo "" > ltxdoc.cfg -% \end{macrocode} -% そして、\file{upldoc.tex}を処理します。 -% \begin{macrocode} uplatex upldoc.tex % \end{macrocode} -% 索引と変更履歴を作成します。 -% このスクリプトでは、変更履歴や索引を生成するのにmendexプログラムを用いて -% います。mendexはmakeindexの上位互換のファイル整形コマンドで、 -% 索引語の読みを自動的に付けるなどの機能があります。 -% -% up\LaTeX{}の場合はmendexコマンドをUTF-8モードで実行する必要があります -% ので、|-U|というオプションを付けます\footnote{uplatexコマンドも +%\ifJAPANESE +% 変更履歴や索引の生成にはmendexを用いますが、 +% \upLaTeX{}の場合はUTF-8モードで実行する必要がありますので、 +% |-U|というオプションを付けます\footnote{uplatexコマンドも % 実際にはUTF-8モードで実行する必要がありますが、デフォルトの内部漢字 % コードがUTF-8に設定されているはずですので、\texttt{-kanji=utf8}を % 付けなくても処理できると思います。}。 % makeindexコマンドには、このオプションがありません。 -% -% |-s|オプションは、索引ファイルを整形するためのスタイルオプションです。 -% 索引用の\file{gind.ist}と変更履歴用の\file{gglo.ist}は、 -% \LaTeX{}のディストリビューションに付属しています。 -% -% |-o|は、出力するファイル名を指定するオプションです。 -% -% |-f|は、項目に``読み''がなくてもエラーとしないオプションです。 -% 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} mendex -U -s gind.ist -d upldoc.dic -o upldoc.ind upldoc.idx mendex -U -f -s gglo.ist -o upldoc.gls upldoc.glo -% \end{macrocode} -% \file{ltxdoc.cfg}の内容を|\includeonly{}|にし、\file{upldoc.tex}を処理します。 -% このコマンドは、引数に指定されたファイルだけを``|\include|''するための -% コマンドですが、ここでは何も|\include|したく\emph{ない}ので、 -% 引数には何も指定をしません。 -% しかし、|\input|で指定されているファイルは読み込まれます。 -% したがって、目次や索引や変更履歴のファイルが処理されます。 -% この処理は、主に、これらでエラーが出るかどうかの確認です。 -% \begin{macrocode} echo "\includeonly{}" > ltxdoc.cfg uplatex upldoc.tex -% \end{macrocode} -% 最後に、再び\file{ltxdoc.cfg}を空にして、\file{upldoc.tex}を処理をします。 -% 本文を1ページから開始していますので、この後、もう一度処理をする -% 必要はありません。 -% \begin{macrocode} echo "" > ltxdoc.cfg uplatex upldoc.tex # EOT @@ -835,246 +1048,67 @@ uplatex upldoc.tex % \end{macrocode} % % +%\ifJAPANESE % \subsection{perlスクリプト\file{dstcheck.pl}}\label{app:plprog} -% \dst{}文書ファイルは、\LaTeX{}のソースとその文書を同時に管理する方法として、 -% とてもすぐれていると思います。しかし、たとえば\file{jclasses.dtx}のように、 -% 条件が多くなると、入れ子構造がわからなくなってしまいがちです。 -% \LaTeX{}で処理すれば、エラーによってわかりますが、 -% 文書ファイルが大きくなると面倒です。 -% -% ここでは、\dst{}文書ファイルの入れ子構造を調べるのに便利な、 -% perlスクリプトについて説明をしています。 -% -% このperlスクリプトの使用方法は次のとおりです。 -% -%\begin{verbatim} -% perl dstcheck.pl file-name -%\end{verbatim} -% -% \subsubsection{\file{dstcheck.pl}の内容} -% 最初に、このperlスクリプトが何をするのかを簡単に記述したコメントを -% 付けます。 -% \begin{macrocode} -%<*plprog> -## -## DOCSTRIP 文書内の環境や条件の入れ子を調べる perl スクリプト -## -% \end{macrocode} -% このスクリプトは、入れ子の対応を調べるために、次のスタックを用います。 -% \meta{条件}あるいは\meta{環境}を開始するコードが現れたときに、 -% それらはスタックにプッシュされ、終了するコードでポップされます。 -% したがって、現在の\meta{条件}あるいは\meta{環境}と、 -% スタックから取り出した\meta{条件}あるいは\meta{環境}と一致すれば、 -% 対応が取れているといえます。そうでなければエラーです。 -% -% |@dst|スタックには、\meta{条件}が入ります。 -% 条件の開始は、``|%<*|\meta{条件}|>|''です。 -% 条件の終了は、``|%|''です。 -% \meta{条件}には、|>|文字が含まれません。 -% |@env|スタックには、\meta{環境}が入ります。 -% -% 先頭を明示的に示すために、ダミーの値を初期値として用います。 -% スタックは、\meta{条件}あるいは\meta{環境}の名前と、その行番号をペアにして -% 操作をします。 -% \begin{macrocode} -push(@dst,"DUMMY"); push(@dst,"000"); -push(@env,"DUMMY"); push(@env,"000"); -% \end{macrocode} -% この|while|ループの中のスクリプトは、文書ファイルの1行ごとに実行をします。 -% \begin{macrocode} -while (<>) { -% \end{macrocode} -% 入力行が条件を開始する行なのかを調べます。 -% 条件の開始行ならば、|@dst|スタックに\meta{条件}と行番号をプッシュします。 -% \begin{macrocode} - if (/^%<\*([^>]+)>/) { # check conditions - push(@dst,$1); - push(@dst,$.); -% \end{macrocode} -% そうでなければ、条件の終了行なのかを調べます。 -% 現在行が条件の終了を示している場合は、|@dst|スタックをポップします。 -% \begin{macrocode} - } elsif (/^%<\/([^>]+)>/) { - $linenum = pop(@dst); - $conditions = pop(@dst); -% \end{macrocode} -% 現在行の\meta{条件}と、スタックから取り出した\meta{条件}が一致しない場合、 -% その旨のメッセージを出力します。 -% -% なお、|DUMMY|と一致した場合は、一番外側のループが合っていないと -% いうことを示しています。このとき、これらのダミー値をスタックに戻します。 -% いつでもスタックの先頭をダミー値にするためです。 -% \begin{macrocode} - if ($1 ne $conditions) { - if ($conditions eq "DUMMY") { - print "$ARGV: `' (l.$.) is not started.\n"; - push(@dst,"DUMMY"); - push(@dst,"000"); - } else { - print "$ARGV: `<*$conditions>' (l.$linenum) is ended "; - print "by `<*$1>' (l.$.)\n"; - } - } - } -% \end{macrocode} -% 環境の入れ子も条件と同じように調べます。 +% \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 % -% verbatim環境のときに、その内側をスキップしていることに注意をしてください。 -% \begin{macrocode} - if (/^% *\\begin\{verbatim\}/) { # check environments - while(<>) { - last if (/^% *\\end\{verbatim\}/); - } - } elsif (/^% *\\begin\{([^{}]+)\}\{(.*)\}/) { - push(@env,$1); - push(@env,$.); - } elsif (/^% *\\begin\{([^{}]+)\}/) { - push(@env,$1); - push(@env,$.); - } elsif (/^% *\\end\{([^{}]+)\}/) { - $linenum = pop(@env); - $environment = pop(@env); - if ($1 ne $environment) { - if ($environment eq "DUMMY") { - print "$ARGV: `\\end{$1}' (l.$.) is not started.\n"; - push(@env,"DUMMY"); - push(@env,"000"); - } else { - print "$ARGV: \\begin{$environement} (l.$linenum) is ended "; - print "by \\end{$1} (l.$.)\n"; - } - } - } -% \end{macrocode} -% ここまでが、最初の|while|ループです。 -% \begin{macrocode} -} -% \end{macrocode} -% 文書ファイルを読み込んだ後、終了していない条件があるかどうかを確認します。 -% すべての条件の対応がとれていれば、この時点での|@dst|スタックには -% ダミー値しか入っていません。したがって、対応が取れている場合は、 -% 最初の2つのポップによって、ダミー値が設定されます。 -% ダミー値でなければ、ダミー値になるまで、取り出した値を出力します。 -% \begin{macrocode} -$linenum = pop(@dst); -$conditions = pop(@dst); -while ($conditions ne "DUMMY") { - print "$ARGV: `<*$conditions>' (l.$linenum) is not ended.\n"; - $linenum = pop(@dst); - $conditions = pop(@dst); -} -% \end{macrocode} -% 環境の入れ子についても、条件の入れ子と同様に確認をします。 -% \begin{macrocode} -$linenum = pop(@env); -$environment = pop(@env); -while ($environment ne "DUMMY") { - print "$ARGV: `\\begin{$environment}' (l.$linenum) is not ended.\n"; - $linenum = pop(@env); - $environment = pop(@env); -} -exit; -% -% \end{macrocode} % +%\ifJAPANESE % \subsection{\dst{}バッチファイル} -% ^^A \changes{v1.0b}{1996/02/01}{\dst{}にともなう変更} -% ^^A \changes{v1.0c}{1997/01/23}{\dst{}にともなう変更} -% ここでは、付録\ref{app:shprog}と付録\ref{app:plprog}で説明をした二つの -% スクリプトを、このファイルから取り出すための\dst{}バッチファイルについて -% 説明をしています。 -% -% まず、\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} -% \dst{}プログラムは、連続する二つのパーセント記号(\%\%)ではじまる行を -% メタコメントとみなし、条件によらず出力をします。 -% しかし、``\%''は\TeX{}ではコメントであっても、shやperlにとってはコメント -% ではありません。そこで、メタコメントとして出力する文字を``\#\#''と -% 変更します。 +% % \begin{macrocode} {\catcode`#=12 \gdef\MetaPrefix{## }} % \end{macrocode} -% そして、プリアンブルに出力されるメッセージを宣言します。 -% ここでは、とくに何も指定していませんが、宣言をしないとデフォルトの記述が -% `\%\%'付きで出力されてしまうため、それを抑制する目的で使用しています。 +% % \begin{macrocode} \declarepreamble\thispre \endpreamble \usepreamble\thispre % \end{macrocode} -% ポストアンブルも同様に、宣言をしないと`|\endinput|'が出力されます。 +% % \begin{macrocode} \declarepostamble\thispost \endpostamble \usepostamble\thispost % \end{macrocode} -% |\generate|コマンドで、どのファイルに、どのファイルのどの部分を出力するのか -% を指定します。 +% % \begin{macrocode} \generate{ - \file{dstcheck.pl}{\from{uplatex.dtx}{plprog}} \file{mkpldoc.sh}{\from{uplatex.dtx}{shprog}} } \endbatchfile % % \end{macrocode} % -% \iffalse ^^A comment out for upLaTeX -% % \newpage -% \begin{thebibliography}{1} -% \bibitem{tex-book} -% Donald~E. Knuth. -% \newblock ``{\em The \TeX book}''. -% \newblock Addison-Wesley, 1984. -% \newblock (邦訳:斎藤信男監修, 鷺谷好輝訳, -% \TeX ブック 改訂新版, アスキー出版局, 1989) -% -% \bibitem{tate-book} -% インプレス・ラボ監修, アスキー書籍編集部編 -% \newblock 『縦組対応 パーソナル日本語\TeX{}』 -% \newblock アスキー出版局, 1994 -% -% \bibitem{latex-comp} -% Michel Goossens, Frank Mittelbach, Alexander Samarin. -% \newblock ``{\em The {\LaTeX} Companion}''. -% \newblock Addison-Wesley, 1994. -% -% \bibitem{latex-book2} -% Laslie Lamport. -% \newblock ``{\em {\LaTeX:} A Document Preparation System}''. -% \newblock Addison-Wesley, second edition, 1994. -% -% \bibitem{latex-book} -% Laslie Lamport. -% \newblock ``{\em {\LaTeX:} A Document Preparation System}''. -% \newblock Addison-Wesley, 1986. -% \newblock (邦訳:倉沢良一監修, 大野俊治・小暮博通・藤浦はる美訳, -% 文書処理システム \LaTeX, アスキー, 1990) -% -% \bibitem{jtex-tech} -% アスキー出版技術部責任編集 -% \newblock 『日本語\TeX テクニカルブックI』 -% \newblock アスキー, 1990. -% -% \bibitem{platex2e-book} -% 中野 賢 -% \newblock 『日本語\LaTeXe ブック』 -% \newblock アスキー, 1996. -% -% \bibitem{perl} -% 河野真治著 -% \newblock 『入門perl』 -% \newblock アスキー出版局, 1994 +% \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} % -% \fi -% % \iffalse % ここで、このあとに組版されるかもしれない文書のために、 % 節見出しの番号を算用数字に戻します。 diff --git a/Master/texmf-dist/source/uplatex/base/uplfonts.dtx b/Master/texmf-dist/source/uplatex/base/uplfonts.dtx index 2ddcf10c984..51cb38c6b66 100644 --- a/Master/texmf-dist/source/uplatex/base/uplfonts.dtx +++ b/Master/texmf-dist/source/uplatex/base/uplfonts.dtx @@ -2,7 +2,7 @@ %% File: uplfonts.dtx % % pLaTeX fonts files: -% Copyright 1995-2001 ASCII Corporation. +% Copyright 1994-2006 ASCII Corporation. % and modified for upLaTeX % % Copyright (c) 2010 ASCII MEDIA WORKS @@ -50,7 +50,7 @@ % ありがとう、ymtさん。} % \changes{v1.5}{2006/11/10}{\cs{reDeclareMathAlphabet}を修正。 % ありがとう、ymtさん。} -% \changes{v1.5-u01}{2011/05/07}{p\LaTeX{}用からup\LaTeX{}用に修正。} +% \changes{v1.5-u00}{2011/05/07}{p\LaTeX{}用からup\LaTeX{}用に修正。} % \changes{v1.6}{2016/02/01}{\LaTeX\ \texttt{!<2015/01/01!>}での\cs{em}の % 定義変更に対応。\cs{eminnershape}を追加。} % \changes{v1.6a}{2016/04/01}{ベースライン補正量が0でないときに @@ -82,13 +82,18 @@ % 対処が不要になっていたので削除} % \changes{v1.6i}{2017/09/24}{\cs{<}が段落頭でも効くようにした} % \changes{v1.6i-u00}{2017/09/24}{p\LaTeX{}の変更に追随。} +% \changes{v1.6j}{2017/11/06}{\cs{cy@encoding}と\cs{ct@encoding}を +% 具体的な値ではなく「空」で初期化} +% \changes{v1.6j}{2017/11/06}{縦横のエンコーディングのセット化を +% plcoreからpldefsへ移動} +% \changes{v1.6j-u00}{2017/11/06}{p\LaTeX{}の変更に追随。} % \fi % % \iffalse %<*driver> \NeedsTeXFormat{pLaTeX2e} % \fi -\ProvidesFile{uplfonts.dtx}[2017/09/24 v1.6i-u00 upLaTeX New Font Selection Scheme] +\ProvidesFile{uplfonts.dtx}[2017/11/06 v1.6j-u00 upLaTeX New Font Selection Scheme] % \iffalse \documentclass{jltxdoc} \GetFileInfo{uplfonts.dtx} @@ -179,12 +184,21 @@ % |\ck@encoding|は、最後に選択された和文エンコード名を示しています。 % |\cy@encoding|と|\ct@encoding|はそれぞれ、最後に選択された、 % 横組用と縦組用の和文エンコード名を示しています。 +% +% ここでは単に「空」に初期化するだけにしています。 +% \iffalse +% アスキー版はJY1やJT1という具体的な値で初期化していたが、これらの値は +% \file{pldefs.ltx}で定義するものであるから、\file{plcore.ltx}で +% それを使うのはおかしい。 +% \fi +% \changes{v1.6j}{2017/11/06}{\cs{cy@encoding}と\cs{ct@encoding}を +% 具体的な値ではなく「空」で初期化} % \begin{macrocode} %<*plcore> \let\k@encoding\@empty \let\ck@encoding\@empty -\def\cy@encoding{JY2} -\def\ct@encoding{JT2} +\let\cy@encoding\@empty +\let\ct@encoding\@empty % \end{macrocode} % \end{macro} % \end{macro} @@ -735,6 +749,16 @@ % \end{macro} % % +% \begin{macro}{\KanjiEncodingPair} +% 和文の縦横のエンコーディングはそれぞれ対にして扱うため、セット化するための +% コマンドを定義します。 +% \changes{v1.3n}{2004/08/10}{和文エンコーディングの切り替えを有効化} +% \begin{macrocode} +\def\KanjiEncodingPair#1#2{\@namedef{t@enc@#1}{#2}\@namedef{y@enc@#2}{#1}} +% \end{macrocode} +% \end{macro} +% +% % \begin{macro}{\DeclareFontFamily} % 欧文ファミリを宣言するためのコマンドです。 % |\ffam@list|を作るように再定義をします。 @@ -1168,17 +1192,6 @@ % \end{macrocode} % \end{macro} % -% -% \begin{macro}{\KanjiEncodingPair} -% 和文の縦横のエンコーディングはそれぞれ対にして扱うため、セット化します -% \changes{v1.3n}{2004/08/10}{和文エンコーディングの切り替えを有効化} -% \begin{macrocode} -\def\KanjiEncodingPair#1#2{\@namedef{t@enc@#1}{#2}\@namedef{y@enc@#2}{#1}} -\KanjiEncodingPair{JY2}{JT2} -% \end{macrocode} -% \end{macro} -% -% % \begin{macro}{\set@fontsize} % |\fontsize|コマンドの内部形式です。 % ベースラインの設定と、支柱の設定を行ないます。 @@ -1810,7 +1823,6 @@ % \iftdir\raise-\tbaselineshift\fi % \vbox{\hrule\@width.3em}} %\plEndIncludeInRelease -%<*plcore> % \end{macrocode} % \end{macro} % @@ -1825,7 +1837,6 @@ % $-1$が返ります。 % \changes{v1.6c}{2016/06/06}{マクロ追加} % \begin{macrocode} -% %\plIncludeInRelease{2016/06/10}{\g@tlastchart@} % {Added \g@tlastchart@}% %<*plcore|platexrelease> @@ -2005,46 +2016,10 @@ % \fi % #1} %\plEndIncludeInRelease -%<*plcore> % \end{macrocode} % \end{macro} % % -% \subsection{デフォルト設定ファイルの読み込み} -% 最後に、デフォルト設定ファイルである、\file{upldefs.ltx}を読み込みます。 -% このファイルについての詳細は、第\ref{plfonts:pldefs}節を参照してください。 -% \TeX{}の入力ファイル検索パスに設定されているディレクトリに\file{upldefs.cfg}% -% ファイルがある場合は、そのファイルを使います。 -% \begin{macrocode} -\InputIfFileExists{upldefs.cfg} - {\typeout{*************************************^^J% - * Local config file upldefs.cfg used^^J% - *************************************}}% - {\input{upldefs.ltx}} -% -% \end{macrocode} -% -% -% -% -% \section{デフォルト設定ファイル}\label{plfonts:pldefs} -% ここでは、フォーマットファイルに読み込まれるデフォルト値を設定しています。 -% この節での内容は\file{pldefs.ltx}に出力されます。 -% このファイルの内容を\file{plcore.ltx}に含めてもよいのですが、 -% デフォルトの設定を参照しやすいように、別ファイルにしてあります。 -% \file{pldefs.ltx}は\file{plcore.ltx}から読み込まれます。 -% -% プリロードサイズは、\dst{}プログラムのオプションで変更することができます。 -% これ以外の設定を変更したい場合は、\file{pldefs.ltx}を -% 直接、修正するのではなく、このファイルを\file{pldefs.cfg}という名前で -% コピーをして、そのファイルに対して修正を加えるようにしてください。 -% \begin{macrocode} -%<*pldefs> -\ProvidesFile{upldefs.ltx} - [2017/08/05 v1.6h-u00 upLaTeX Kernel (Default settings)] -% -% \end{macrocode} -% % \subsection{イタリック補正と\cs{xkanjiskip}} % % \begin{macro}{\check@nocorr@} @@ -2124,6 +2099,42 @@ % \end{macro} % % +% \subsection{デフォルト設定ファイルの読み込み} +% 最後に、デフォルト設定ファイルである、\file{upldefs.ltx}を読み込みます。 +% このファイルについての詳細は、第\ref{plfonts:pldefs}節を参照してください。 +% \TeX{}の入力ファイル検索パスに設定されているディレクトリに\file{upldefs.cfg}% +% ファイルがある場合は、そのファイルを使います。 +% \begin{macrocode} +%<*plcore> +\InputIfFileExists{upldefs.cfg} + {\typeout{*************************************^^J% + * Local config file upldefs.cfg used^^J% + *************************************}}% + {\input{upldefs.ltx}} +% +% \end{macrocode} +% +% +% +% +% \section{デフォルト設定ファイル}\label{plfonts:pldefs} +% ここでは、フォーマットファイルに読み込まれるデフォルト値を設定しています。 +% この節での内容は\file{pldefs.ltx}に出力されます。 +% このファイルの内容を\file{plcore.ltx}に含めてもよいのですが、 +% デフォルトの設定を参照しやすいように、別ファイルにしてあります。 +% \file{pldefs.ltx}は\file{plcore.ltx}から読み込まれます。 +% +% プリロードサイズは、\dst{}プログラムのオプションで変更することができます。 +% これ以外の設定を変更したい場合は、\file{pldefs.ltx}を +% 直接、修正するのではなく、このファイルを\file{pldefs.cfg}という名前で +% コピーをして、そのファイルに対して修正を加えるようにしてください。 +% \begin{macrocode} +%<*pldefs> +\ProvidesFile{upldefs.ltx} + [2017/11/06 v1.6j-u00 upLaTeX Kernel (Default settings)] +% +% \end{macrocode} +% % \subsection{テキストフォント} % テキストフォントのための属性やエラー書体などの宣言です。 % @@ -2144,6 +2155,12 @@ \DeclareTateKanjiEncoding{JT2}{}{} \DeclareKanjiSubstitution{JT2}{mc}{m}{n} % \end{macrocode} +% 縦横のエンコーディングのセット化: +% \changes{v1.6j}{2017/11/06}{縦横のエンコーディングのセット化を +% plcoreからpldefsへ移動} +% \begin{macrocode} +\KanjiEncodingPair{JY2}{JT2} +% \end{macrocode} % フォント属性のデフォルト値: % \begin{macrocode} \newcommand\mcdefault{mc} @@ -2355,13 +2372,16 @@ %\ProvidesFile{jy2gt.fd} %\ProvidesFile{jt2mc.fd} %\ProvidesFile{jt2gt.fd} -% [1997/01/24 v1.3 KANJI font defines] +% [2011/05/07 v1.5-u00 KANJI font defines] % \end{macrocode} % 横組用、縦組用ともに、 % 明朝体のシリーズ|bx|がゴシック体となるように宣言しています。 % \changes{v1.2}{1995/11/24}{it, sl, sc の宣言を外した} % \changes{v1.3b}{1997/01/29}{フォント定義ファイルのサイズ指定の調整} % \changes{v1.3b}{1997/03/11}{すべてのサイズをロード可能にした} +% +% p\LaTeX{}では従属書体にOT1エンコーディングを用いていましたが、 +% up\LaTeX{}ではT1エンコーディングを用いるように変更しました。 % \begin{macrocode} %<*JY2mc> \DeclareKanjiFamily{JY2}{mc}{} diff --git a/Master/texmf-dist/source/uplatex/base/uplvers.dtx b/Master/texmf-dist/source/uplatex/base/uplvers.dtx index 42eb8dd2bcb..376ba57e83d 100644 --- a/Master/texmf-dist/source/uplatex/base/uplvers.dtx +++ b/Master/texmf-dist/source/uplatex/base/uplvers.dtx @@ -71,12 +71,19 @@ % \changes{v1.1c-u01}{2017/05/04}{p\LaTeX{}の変更に追随。} % \changes{v1.1d}{2017/09/24}{パッチレベルが負の数の場合をpre-release扱いへ} % \changes{v1.1d-u01}{2017/09/24}{p\LaTeX{}の変更に追随。} +% \changes{v1.1e}{2017/11/09}{\file{latexrelease}と +% \cs{platexrelease}のエミュレート内部処理を分離} +% \changes{v1.1f}{2017/11/11}{\LaTeX{}のバナーを保存するコードを +% \file{platex.ltx}から\file{plcore.ltx}へ移動} +% \changes{v1.1g}{2017/12/04}{\pLaTeX{}のバナーの定義時に +% \cs{pfmtname}, \cs{pfmtversion}, \cs{ppatch@level}を展開しないように} +% \changes{v1.1g-u01}{2017/12/04}{p\LaTeX{}の変更に追随。} % \fi % % \iffalse %<*driver> % \fi -\ProvidesFile{uplvers.dtx}[2017/09/24 v1.1d-u01 upLaTeX Kernel (Version Info)] +\ProvidesFile{uplvers.dtx}[2017/12/04 v1.1g-u01 upLaTeX Kernel (Version Info)] % \iffalse \documentclass{jltxdoc} \GetFileInfo{uplvers.dtx} @@ -90,10 +97,9 @@ % % \fi % -% \section{バージョンの設定} +% \section{up\LaTeXe{}のバージョンの設定} % まず、このディストリビューションでのup\LaTeXe{}の日付とバージョン番号 -% を定義します。また、up\LaTeXe{}が起動されたときに表示される文字列の -% 設定もします。 +% を定義します。 % % \changes{v1.0}{1995/05/16}{p\LaTeXe\ 用に\file{ltvers.dtx}を修正} % \changes{v1.0a}{1995/08/30}{\LaTeX\ \texttt{!<1995/06/01!>}版用に修正} @@ -145,13 +151,60 @@ {2017/10/28u01} % %<*plcore> -\def\ppatch@level{2} +\def\ppatch@level{3} % % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % +% \subsection{\LaTeXe{}のバージョンの取得} +% このファイルの直前で\LaTeXe{}の\file{latex.ltx}が読み込まれているはず +% なので、その起動時のバナーを保存します。 +% +% 2016/05/07の実装では、\file{platex.ltx}のなかで +%\begin{verbatim} +% \edef\platexBANNER{\the\everyjob} +%\end{verbatim} +% としてバナーを保存し、この内容が +%\begin{verbatim} +% \typeout{LaTeX2e version}\typeout{Babel version} +%\end{verbatim} +% という4つのトークンから成ると仮定して、\file{plcore.ltx}のなかで +%\begin{verbatim} +% \def\parse@@BANNER#1#2#3#4{#2} +%\end{verbatim} +% のようにパースしていました。ところが、この「4つのトークンから成る」と +% いう仮定はBabel由来の\file{hyphen.cfg}を使用した場合のみ成り立ち、 +% それ以外の特別な\file{hyphen.cfg}や\file{hyphen.ltx}を使用した場合に +% エラーになってしまいます。 +% そこで、新たに2016/09/14の実装では、\file{platex.ltx}のなかで +%\begin{verbatim} +% \edef\platexBANNER{\the\everyjob\noexpand\typeout{}\relax} +%\end{verbatim} +% としてダミーを追加します(|\relax|はただの区切りトークンの役割)。 +% こうすると、|\platexBANNER|の内容は、Babelの\file{hyphen.cfg}のとき +%\begin{verbatim} +% \typeout{LaTeX2e version}\typeout{Babel version}\typeout{}\relax +%\end{verbatim} +% となり、それ以外のとき +%\begin{verbatim} +% \typeout{LaTeX2e version}\typeout{}\relax +%\end{verbatim} +% となるはずです。このように、少なくとも|\typeout|が2回含まれています +% ので、\file{plcore.ltx}のなかで +%\begin{verbatim} +% \def\parse@@BANNER\typeout#1\typeout#2#3\relax{#1} +%\end{verbatim} +% とパースすることができるようになります。 +% \changes{v1.1f}{2017/11/11}{\LaTeX{}のバナーを保存するコードを +% \file{platex.ltx}から\file{plcore.ltx}へ移動} +% \begin{macrocode} +%<*plcore> +\edef\platexBANNER{\the\everyjob\noexpand\typeout{}\relax}% save LaTeX banner +% +% \end{macrocode} +% % \subsection{\LaTeX~2.09互換モードの抑制} % % \begin{macro}{\documentstyle} @@ -173,6 +226,7 @@ New documents should use Standard LaTeX conventions, and start\MessageBreak with the \noexpand\documentclass command.}% \documentclass} +% % \end{macrocode} % \end{macro} % @@ -184,6 +238,7 @@ % パッチファイルをロードするコードはコメントアウトしました。 % \changes{v1.0v}{2016/05/07}{パッチファイルをロードするのをやめた。} % \begin{macrocode} +%<*plfinal> %\IfFileExists{uplpatch.ltx} % {\typeout{************************************^^J% % * Appliying patch file uplpatch.ltx *^^J% @@ -221,18 +276,16 @@ % \subsection{起動時に表示するバナー} % % \begin{macro}{\everyjob} -% 起動時に表示される文字列です。 -% \LaTeX{}にパッチがあてられている場合は、それも表示します。 -% -%\iffalse -% この実装については\file{uplatex.dtx}のコメントを参照。(2016/09/14) -%\fi +% up\LaTeXe{}が起動されたときに表示される文字列です。 +% \LaTeXe{}のバージョンも併せて表示します。 % % \changes{v1.0v}{2016/05/07}{起動時の文字列を最新の\LaTeX{}に合わせた。} % \changes{v1.0w}{2016/05/12}{起動時の文字列に入れる\LaTeX{}のバージョンを % 元の\LaTeX{}のバナーから引き継ぐように改良} % \changes{v1.1}{2016/09/14}{起動時のバナーを取得するコードを改良} % \changes{v1.1d}{2017/09/24}{パッチレベルが負の数の場合をpre-release扱いへ} +% \changes{v1.1g}{2017/12/04}{\pLaTeX{}のバナーの定義時に +% \cs{pfmtname}, \cs{pfmtversion}, \cs{ppatch@level}を展開しないように} % \begin{macrocode} \ifx\patch@level\@undefined % fallback if undefined in LaTeX \def\patch@level{0}\fi @@ -240,23 +293,19 @@ \def\ppatch@level{0}\fi \begingroup \def\parse@@BANNER\typeout#1\typeout#2#3\relax{#1} - \edef\platexTMP{% - \ifnum\ppatch@level=0 - \everyjob{\noexpand\typeout{% - \pfmtname\space<\pfmtversion>\space - (based on \expandafter\parse@@BANNER\platexBANNER)}}% - \else\ifnum\ppatch@level>0 - \everyjob{\noexpand\typeout{% - \pfmtname\space<\pfmtversion>+\ppatch@level\space - (based on \expandafter\parse@@BANNER\platexBANNER)}}% - \else - \everyjob{\noexpand\typeout{% - \pfmtname\space<\pfmtversion>-pre\ppatch@level\space - (based on \expandafter\parse@@BANNER\platexBANNER)}}% - \fi\fi - } -\expandafter -\endgroup \platexTMP + \toks0=\expandafter\expandafter\expandafter{% + \expandafter\parse@@BANNER\platexBANNER} + \ifnum\ppatch@level=0 + \toks2={\pfmtname\space<\pfmtversion>\space}% + \else\ifnum\ppatch@level>0 + \toks2={\pfmtname\space<\pfmtversion>+\ppatch@level\space}% + \else + \toks2={\pfmtname\space<\pfmtversion>-pre\ppatch@level\space}% + \fi\fi + \edef\platexBANNER{\the\toks2 (based on \the\toks0)} + \global\everyjob\expandafter{% + \expandafter\typeout\expandafter{\platexBANNER}}% +\endgroup % \end{macrocode} % % p\LaTeX{}やup\LaTeX{}は、独自のハイフネーション・パターンを定義していません。 @@ -265,25 +314,17 @@ % \file{hyphen.cfg}のバージョンを反映します(Babelパッケージの % \file{hyphen.cfg}でない場合は、何も表示されず空行になるはずです)。 % -%\iffalse -% この実装については\file{uplatex.dtx}のコメントを参照。(2016/09/14) -%\fi -% % \changes{v1.0w-u00}{2016/05/12}{起動時の文字列に入れるBabelのバージョンを % 元の\LaTeX{}のバナーから取得するコードを\file{uplatex.ini}から取り入れた} % \begin{macrocode} \begingroup \def\parse@@BANNER\typeout#1\typeout#2#3\relax{#2} - \edef\platexTMP{% - \the\everyjob\noexpand\typeout{\expandafter\parse@@BANNER\platexBANNER}% - } - \everyjob=\expandafter{\platexTMP}% - \edef\platexTMP{% - \noexpand\let\noexpand\platexBANNER=\noexpand\@undefined - \noexpand\everyjob={\the\everyjob}% - } - \expandafter -\endgroup \platexTMP + \toks0=\expandafter\expandafter\expandafter{% + \expandafter\parse@@BANNER\platexBANNER} + \edef\platexBANNER{\the\everyjob \noexpand\typeout{\the\toks0}} + \global\everyjob\expandafter{\platexBANNER}% +\endgroup +\let\platexBANNER=\@undefined % % \end{macrocode} % \end{macro} @@ -334,6 +375,8 @@ % \begin{macro}{\plIncludeInRelease} % \changes{v1.0t}{2016/02/03}{\cs{plIncludeInRelease}と % \cs{plEndIncludeInRelease}を新設。} +% \changes{v1.1e}{2017/11/09}{\file{latexrelease}と +% \cs{platexrelease}のエミュレート内部処理を分離} % \begin{macrocode} %<*plcore|platexrelease> \def\plIncludeInRelease#1{\kernel@ifnextchar[% @@ -348,14 +391,14 @@ % \begin{macrocode} \def\@plIncludeInRele@se#1#2#3{% \toks@{[#1] #3}% - \expandafter\ifx\csname\string#2+\@currname+IIR\endcsname\relax + \expandafter\ifx\csname\string#2+\@currname+plIIR\endcsname\relax \ifnum\expandafter\@parse@version#1//00\@nil >\expandafter\@parse@version\pfmtversion//00\@nil \GenericInfo{}{Skipping: \the\toks@}% \expandafter\expandafter\expandafter\@gobble@plIncludeInRelease \else \GenericInfo{}{Applying: \the\toks@}% - \expandafter\let\csname\string#2+\@currname+IIR\endcsname\@empty + \expandafter\let\csname\string#2+\@currname+plIIR\endcsname\@empty \fi \else \GenericInfo{}{Already applied: \the\toks@}% -- cgit v1.2.3