From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 2 Sep 2019 13:46:59 +0900 Subject: Initial commit --- language/japanese/platex/LICENSE | 28 + language/japanese/platex/Makefile | 171 ++ language/japanese/platex/README.md | 66 + language/japanese/platex/exppl2e.pdf | Bin 0 -> 172427 bytes language/japanese/platex/exppl2e.sty | 405 +++ language/japanese/platex/jclasses.dtx | 4523 ++++++++++++++++++++++++++++ language/japanese/platex/jltxdoc.dtx | 205 ++ language/japanese/platex/kinsoku.dtx | 395 +++ language/japanese/platex/pl209.dtx | 240 ++ language/japanese/platex/pl209.ins | 32 + language/japanese/platex/platex-en.pdf | Bin 0 -> 149713 bytes language/japanese/platex/platex.dtx | 1793 +++++++++++ language/japanese/platex/platex.ini | 9 + language/japanese/platex/platex.pdf | Bin 0 -> 288279 bytes language/japanese/platex/platexrelease.dtx | 384 +++ language/japanese/platex/platexrelease.ins | 25 + language/japanese/platex/platexrelease.pdf | Bin 0 -> 121553 bytes language/japanese/platex/plcls.ins | 48 + language/japanese/platex/plcore.dtx | 2474 +++++++++++++++ language/japanese/platex/pldoc.pdf | Bin 0 -> 841630 bytes language/japanese/platex/pldocs.ins | 24 + language/japanese/platex/plext.dtx | 1457 +++++++++ language/japanese/platex/plfmt.ins | 35 + language/japanese/platex/plfonts.dtx | 2803 +++++++++++++++++ language/japanese/platex/plnews.cls | 100 + language/japanese/platex/plnews01.tex | 234 ++ language/japanese/platex/plnews02.tex | 122 + language/japanese/platex/plnews03.tex | 80 + language/japanese/platex/plnews04.tex | 85 + language/japanese/platex/plnews05.tex | 67 + language/japanese/platex/plnews06.tex | 137 + language/japanese/platex/plnews07.tex | 106 + language/japanese/platex/plnews08.tex | 111 + language/japanese/platex/plnewsc01.tex | 150 + language/japanese/platex/plnewsc02.tex | 79 + language/japanese/platex/plnewsc03.tex | 78 + language/japanese/platex/plnewsc04.tex | 113 + language/japanese/platex/plnewsc05.tex | 87 + language/japanese/platex/plnewsc06.tex | 134 + language/japanese/platex/plnewsc07.tex | 274 ++ language/japanese/platex/plnewsc08.tex | 96 + language/japanese/platex/plnewsc09.tex | 81 + language/japanese/platex/plnewsc10.tex | 77 + language/japanese/platex/plnewsc11.tex | 94 + language/japanese/platex/plnewsc12.tex | 69 + language/japanese/platex/plvers.dtx | 462 +++ 46 files changed, 17953 insertions(+) create mode 100644 language/japanese/platex/LICENSE create mode 100644 language/japanese/platex/Makefile create mode 100644 language/japanese/platex/README.md create mode 100644 language/japanese/platex/exppl2e.pdf create mode 100644 language/japanese/platex/exppl2e.sty create mode 100644 language/japanese/platex/jclasses.dtx create mode 100644 language/japanese/platex/jltxdoc.dtx create mode 100644 language/japanese/platex/kinsoku.dtx create mode 100644 language/japanese/platex/pl209.dtx create mode 100644 language/japanese/platex/pl209.ins create mode 100644 language/japanese/platex/platex-en.pdf create mode 100644 language/japanese/platex/platex.dtx create mode 100644 language/japanese/platex/platex.ini create mode 100644 language/japanese/platex/platex.pdf create mode 100644 language/japanese/platex/platexrelease.dtx create mode 100644 language/japanese/platex/platexrelease.ins create mode 100644 language/japanese/platex/platexrelease.pdf create mode 100644 language/japanese/platex/plcls.ins create mode 100644 language/japanese/platex/plcore.dtx create mode 100644 language/japanese/platex/pldoc.pdf create mode 100644 language/japanese/platex/pldocs.ins create mode 100644 language/japanese/platex/plext.dtx create mode 100644 language/japanese/platex/plfmt.ins create mode 100644 language/japanese/platex/plfonts.dtx create mode 100644 language/japanese/platex/plnews.cls create mode 100644 language/japanese/platex/plnews01.tex create mode 100644 language/japanese/platex/plnews02.tex create mode 100644 language/japanese/platex/plnews03.tex create mode 100644 language/japanese/platex/plnews04.tex create mode 100644 language/japanese/platex/plnews05.tex create mode 100644 language/japanese/platex/plnews06.tex create mode 100644 language/japanese/platex/plnews07.tex create mode 100644 language/japanese/platex/plnews08.tex create mode 100644 language/japanese/platex/plnewsc01.tex create mode 100644 language/japanese/platex/plnewsc02.tex create mode 100644 language/japanese/platex/plnewsc03.tex create mode 100644 language/japanese/platex/plnewsc04.tex create mode 100644 language/japanese/platex/plnewsc05.tex create mode 100644 language/japanese/platex/plnewsc06.tex create mode 100644 language/japanese/platex/plnewsc07.tex create mode 100644 language/japanese/platex/plnewsc08.tex create mode 100644 language/japanese/platex/plnewsc09.tex create mode 100644 language/japanese/platex/plnewsc10.tex create mode 100644 language/japanese/platex/plnewsc11.tex create mode 100644 language/japanese/platex/plnewsc12.tex create mode 100644 language/japanese/platex/plvers.dtx (limited to 'language/japanese/platex') diff --git a/language/japanese/platex/LICENSE b/language/japanese/platex/LICENSE new file mode 100644 index 0000000000..5c1490cdb8 --- /dev/null +++ b/language/japanese/platex/LICENSE @@ -0,0 +1,28 @@ +Copyright (c) 2010 ASCII MEDIA WORKS +Copyright (c) 2016-2019 Japanese TeX Development Community +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + +* Neither the name of the copyright holder nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/language/japanese/platex/Makefile b/language/japanese/platex/Makefile new file mode 100644 index 0000000000..ac45cee9c1 --- /dev/null +++ b/language/japanese/platex/Makefile @@ -0,0 +1,171 @@ +STRIPTARGET = platex.ltx jarticle.cls pl209.def platexrelease.sty \ + jltxdoc.cls +DOCTARGET = platex platexrelease pldoc exppl2e \ + platex-en #pldoc-en +PDFTARGET = $(addsuffix .pdf,$(DOCTARGET)) +DVITARGET = $(addsuffix .dvi,$(DOCTARGET)) +KANJI = -kanji=jis +FONTMAP = -f ipaex.map -f ptex-ipaex.map +TEXMF = $(shell kpsewhich -var-value=TEXMFHOME) + +default: $(STRIPTARGET) $(DVITARGET) +strip: $(STRIPTARGET) +all: $(STRIPTARGET) $(PDFTARGET) + +PLFMT = platex.ltx plcore.ltx kinsoku.tex pldefs.ltx \ + jy1mc.fd jy1gt.fd jt1mc.fd jt1gt.fd plext.sty \ + ptrace.sty pfltrace.sty + +PLFMT_SRC = platex.dtx plvers.dtx plfonts.dtx plcore.dtx \ + kinsoku.dtx plext.dtx + +PLCLS = jarticle.cls jreport.cls jbook.cls jsize10.clo \ + jsize11.clo jsize12.clo jbk10.clo jbk11.clo jbk12.clo \ + tarticle.cls treport.cls tbook.cls tsize10.clo \ + tsize11.clo tsize12.clo tbk10.clo tbk11.clo tbk12.clo + +PLCLS_SRC = jclasses.dtx + +PL209 = pl209.def oldpfont.sty jarticle.sty tarticle.sty \ + jbook.sty tbook.sty jreport.sty treport.sty + +PL209_SRC = pl209.dtx + +PLREL = platexrelease.sty + +PLREL_SRC = platexrelease.dtx $(PLFMT_SRC) + +INTRODOC_SRC = platex.dtx + +PLRELDOC_SRC = platexrelease.dtx + +PLDOC_SRC = platex.dtx plvers.dtx plfonts.dtx plcore.dtx plext.dtx \ + pl209.dtx kinsoku.dtx jclasses.dtx jltxdoc.dtx + +platex.ltx: $(PLFMT_SRC) + rm -f $(PLFMT) + platex $(KANJI) plfmt.ins + rm plfmt.log + +jarticle.cls: $(PLCLS_SRC) + rm -f $(PLCLS) + platex $(KANJI) plcls.ins + rm plcls.log + +pl209.def: $(PL209_SRC) + rm -f $(PL209) + platex $(KANJI) pl209.ins + rm pl209.log + +platexrelease.sty: $(PLREL_SRC) + rm -f $(PLREL) + platex $(KANJI) platexrelease.ins + rm platexrelease.log + +jltxdoc.cls: jltxdoc.dtx + rm -f jltxdoc.cls pldoc.tex Xins.ins + platex $(KANJI) pldocs.ins + rm pldocs.log pldoc.tex Xins.ins + +platex.dvi: $(INTRODOC_SRC) + rm -f platex.cfg + platex $(KANJI) platex.dtx + mendex -J -f -s gglo.ist -o platex.gls platex.glo + platex $(KANJI) platex.dtx + rm platex.aux platex.log + rm platex.glo platex.gls platex.ilg + +platexrelease.dvi: $(PLRELDOC_SRC) + rm -f platex.cfg + platex $(KANJI) platexrelease.dtx + platex $(KANJI) platexrelease.dtx + rm platexrelease.aux platexrelease.log + +pldoc.dvi: $(PLDOC_SRC) + rm -f platex.cfg + rm -f jltxdoc.cls pldoc.tex Xins.ins + platex $(KANJI) pldocs.ins + rm -f mkpldoc*.sh dstcheck.pl + platex $(KANJI) Xins.ins + sh mkpldoc.sh + rm *.aux *.log pldoc.toc pldoc.idx pldoc.ind pldoc.ilg + rm pldoc.glo pldoc.gls pldoc.tex Xins.ins + rm ltxdoc.cfg pldoc.dic mkpldoc*.sh dstcheck.pl + +exppl2e.dvi: exppl2e.sty + rm -f platex.cfg + platex $(KANJI) exppl2e.sty + platex $(KANJI) exppl2e.sty + rm exppl2e.aux exppl2e.log + +platex-en.dvi: $(INTRODOC_SRC) + # built-in echo in shell is troublesome, so use perl instead + perl -e "print \"\\\\newif\\\\ifJAPANESE\\n"\" >platex.cfg + platex -jobname=platex-en $(KANJI) platex.dtx + mendex -J -f -s gglo.ist -o platex-en.gls platex-en.glo + platex -jobname=platex-en $(KANJI) platex.dtx + rm platex-en.aux platex-en.log + rm platex-en.glo platex-en.gls platex-en.ilg + rm platex.cfg + +pldoc-en.dvi: $(PLDOC_SRC) + # built-in echo in shell is troublesome, so use perl instead + perl -e "print \"\\\\newif\\\\ifJAPANESE\\n"\" >platex.cfg + rm -f jltxdoc.cls pldoc.tex Xins.ins + platex $(KANJI) pldocs.ins + rm -f mkpldoc*.sh dstcheck.pl + platex $(KANJI) Xins.ins + sh mkpldoc-en.sh + rm *.aux *.log pldoc-en.toc pldoc-en.idx pldoc-en.ind pldoc-en.ilg + rm pldoc-en.glo pldoc-en.gls pldoc.tex Xins.ins + rm ltxdoc.cfg pldoc.dic mkpldoc*.sh dstcheck.pl + rm platex.cfg + +platex.pdf: platex.dvi + dvipdfmx $(FONTMAP) $< +platexrelease.pdf: platexrelease.dvi + dvipdfmx $(FONTMAP) $< +pldoc.pdf: pldoc.dvi + dvipdfmx $(FONTMAP) $< +exppl2e.pdf: exppl2e.dvi + dvipdfmx $(FONTMAP) $< +platex-en.pdf: platex-en.dvi + dvipdfmx $(FONTMAP) $< +pldoc-en.pdf: pldoc-en.dvi + dvipdfmx $(FONTMAP) $< + +.PHONY: install clean cleanstrip cleanall cleandoc +install: + mkdir -p ${TEXMF}/doc/platex/base + cp ./LICENSE ${TEXMF}/doc/platex/base/ + cp ./README.md ${TEXMF}/doc/platex/base/ + cp ./*.pdf ${TEXMF}/doc/platex/base/ +# cp ./*.txt ${TEXMF}/doc/platex/base/ + mkdir -p ${TEXMF}/source/platex/base + cp ./Makefile ${TEXMF}/source/platex/base/ + cp ./plnews*.tex ${TEXMF}/source/platex/base/ + cp ./*.dtx ${TEXMF}/source/platex/base/ + cp ./*.ins ${TEXMF}/source/platex/base/ + mkdir -p ${TEXMF}/tex/platex/base + cp ./kinsoku.tex ${TEXMF}/tex/platex/base/ + cp ./*.clo ${TEXMF}/tex/platex/base/ + cp ./*.cls ${TEXMF}/tex/platex/base/ + cp ./*.def ${TEXMF}/tex/platex/base/ + cp ./*.fd ${TEXMF}/tex/platex/base/ + cp ./*.ltx ${TEXMF}/tex/platex/base/ + cp ./*.sty ${TEXMF}/tex/platex/base/ + mkdir -p ${TEXMF}/tex/platex/config + cp ./platex.ini ${TEXMF}/tex/platex/config/ +clean: + rm -f $(PLFMT) $(PLCLS) $(PL209) $(PLREL) \ + $(DVITARGET) \ + jltxdoc.cls pldoc.tex Xins.ins +cleanstrip: + rm -f $(PLFMT) $(PLCLS) $(PL209) $(PLREL) \ + jltxdoc.cls pldoc.tex Xins.ins +cleanall: + rm -f $(PLFMT) $(PLCLS) $(PL209) $(PLREL) \ + $(DVITARGET) $(PDFTARGET) \ + jltxdoc.cls pldoc.tex Xins.ins +cleandoc: + rm -f $(DVITARGET) $(PDFTARGET) diff --git a/language/japanese/platex/README.md b/language/japanese/platex/README.md new file mode 100644 index 0000000000..652a868b46 --- /dev/null +++ b/language/japanese/platex/README.md @@ -0,0 +1,66 @@ +# platex + +The bundle provides pLaTeX2e and miscellaneous macros for pTeX and e-pTeX. + +The bundle is a community edition forked from the original ASCII edition +(ptex-texmf-2.5). The GitHub repository + +- https://github.com/texjporg/platex + +is now maintained by [Japanese TeX Development Community](http://texjp.org). + +The original ASCII edition can be obtained from: + +- https://ctan.org/pkg/ptex-texmf + +## Changes from the original ASCII edition + +See the documents (platex.pdf, pldoc.pdf, platexrelease.pdf) for more information. + +- Fix macros which are inconsistent with the latest e-pTeX + (e.g. \footnote, tabular, \parbox, \underline). +- Fix several bugs in pLaTeX2e format and packages. +- Add platexrelease.sty. As with the latexrelease package, this + package enables us to use the old versions of pLaTeX2e (from + 2006/11/10 the ASCII edition). + +## Documentation + +A brief exposition of pLaTeX2e is provided in platex.pdf. +The document can be obtained by executing the following commands: + + platex platex.dtx + dvipdfmx platex.dvi + +The comprehensive explanation of pLaTeX2e source is included in +pldoc.pdf. If you are interested in typesetting pldoc.tex yourself, +the following commands will be helpful: + + platex pldocs.ins + platex Xins.ins + sh mkpldoc.sh + dvipdfmx pldoc.dvi + +## Character encoding + +All the text files containing Japanese characters in this repository +are encoded in ISO-2022-JP. This is because ISO-2022-JP encoded +texts are most suitable for the traditional pTeX engine. + +## Repository + +The bundle is maintained on GitHub: +https://github.com/texjporg/platex + +If you have issues, please let us know from the above page. + +## License + +The bundle may be distributed and/or modified under the terms of +the 3-clause BSD license (see [LICENSE](./LICENSE)). + +## Release Date + +2019-04-06 + +Japanese TeX Development Community diff --git a/language/japanese/platex/exppl2e.pdf b/language/japanese/platex/exppl2e.pdf new file mode 100644 index 0000000000..f9d04581f3 Binary files /dev/null and b/language/japanese/platex/exppl2e.pdf differ diff --git a/language/japanese/platex/exppl2e.sty b/language/japanese/platex/exppl2e.sty new file mode 100644 index 0000000000..b4eadb7226 --- /dev/null +++ b/language/japanese/platex/exppl2e.sty @@ -0,0 +1,405 @@ +% \iffalse meta-comment +% +% This is file `exppl2e.sty', for experimental pLaTeX2e. +% +% Copyright (c) 2016-2018 Japanese TeX Development Community +% +% This file is part of the pLaTeX2e system (community edition). +% ------------------------------------------------------------- +% +% ==================================================================== +% 開発者の方へ (2016-06-29 aminophen) +% +% このファイルのコードを実際にカーネルに取り入れるとき、単純にカット・ +% ペーストで dtx ファイルへ挿入します。ペーストした dtx ファイルから +% ltx / sty ファイル等を生成したあとには、必ず +% * フォーマット作成に使われる ltx ファイルが意図どおり変更されたか +% * platexrelease.sty に新たなブロックが一つだけ追加されたか +% (例外的に 0000/00/00 の日付が含まれる場合は、ブロックが二つか) +% を確認します。 +% ==================================================================== +% +%%%%%%%% ^^A driver-like trick using catcode difference +% +% This file `exppl2e.sty' is a normal LaTeX package, so +% \RequirePackage{exppl2e} +% and +% \usepackage{exppl2e} +% works. However, it can also be typeset alone: +% platex exppl2e.sty +% for convenience. +% +%<*hack> +\ifx\undefined\@undefined\relax +% case 1: This file must be a normal package + \NeedsTeXFormat{pLaTeX2e} + \ProvidesPackage{exppl2e} + [2018/12/02 v1.1c Experimental pLaTeX2e features] + \PackageWarningNoLine{exppl2e}{% + This is the unstable, experimental part of pLaTeX2e.\MessageBreak + This package may contain:\MessageBreak + * future patches to pLaTeX\MessageBreak + * experimental new features\MessageBreak + Please note that these can be removed without any\MessageBreak + announcement at some point in the future, and may\MessageBreak + also have some critical bugs. We appreciate any\MessageBreak + reports and comments. Thank you for your cooperation} + \RequirePackage[latest]{platexrelease} +\else +% case 2: This file pretends to be a document + \documentclass{jltxdoc} + \title{Experimental p\LaTeXe} + \author{Japanese \TeX\ Development Community} + \begin{document} + \maketitle + \DocInput{exppl2e.sty} + \end{document} +\fi % ^^A In case 2, this \fi comes after \end{document} +% ^^A so it has no effect. +% \fi ^^A This \fi corresponds to \iffalse, and another +% ^^A \fi is required for \ifx, see below;) +% +%%%%%%%% ^^A trick end +% +% \fi +% +% +% \emph{注意}:これはExperimentalなp\LaTeXe{}、すなわちunstableな +% 実験的p\LaTeX{}コードを提供するパッケージです。 +% +% +% \section{このパッケージの目的} +% +% コードの不用意な改変は即エンバグにつながり、利用者の多いp\LaTeX{}や +% up\LaTeX{}では特に影響が大きいと思われます。その一方で、unstableなもの +% もなるべく手軽にテストして頂きたいとも考えます。 +% +% このパッケージ\file{exppl2e.sty}は、カーネル(stable)に将来含める +% ことを想定したunstableな実験的コードを配布することを目的に作成しました。 +% テストをよろしくお願いします。 +% +% +% \section{実験的コードの読みこみかた} +% +% デフォルトの配布では、実験的なコードは無効化されています。 +% 実験的なp\LaTeXe{}を試したい場合は、以下のいずれかの方法を使います: +% +% \subsection{少しだけ試してみたい場合} +% +% パッケージ\file{exppl2e.sty}を読み込みます。ただし、|\usepackage|命令 +% を使うのではなく、文書クラスより\emph{前}に読み込んでおくのが無難です。 +%\begin{verbatim} +% \RequirePackage{exppl2e} +% \documentclass{article} +%\end{verbatim} +% +% \subsection{常に実験的コードを使用したい場合} +% +% このパッケージと一緒にインストールされる新しいp\LaTeX{}は、お使いの +% \texttt{platex}などのプログラムが見つけることのできる場所(簡単なの +% はカレントディレクトリ、あるいは|$TEXMFLOCAL/tex|以下の適切な場所) +% に\file{platex.cfg}というファイルがあれば、起動時にそれを読み込み +% ます。この機能を利用すると、以下の内容の\file{platex.cfg}を用意し +% ておくだけで、自動的に毎回\file{exppl2e.sty}が読み込まれます。 +%\begin{verbatim} +% \RequirePackage{exppl2e} +%\end{verbatim} +% +% +% \section{このドキュメントについて} +% +% コミュニティ版p\LaTeX{}が配布するほかのstyファイルとは異なり、 +% 実質的には\file{exppl2e.sty}はdtxファイルと同等です。すなわち、 +% コードと一緒にdtx互換ドキュメントが含まれています。このドキュメント +% を組版するには +%\begin{verbatim} +% # platex exppl2e.sty +%\end{verbatim} +% を実行します。 +% +% +% \section{コード} +% +% ここからp\LaTeXe{}のexperimentalコード本体です。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{改行} +% +% 強制改行|\\|と|\par|が連続した場合の挙動については以下のとおり保留中。 +% 参考:GitHub:texjporg/platex\#27 +% +% \begin{macro}{\@gnewline} +% \changes{v1.1c}{1995/08/25}{行頭禁則文字の直前での改行での不具合の修正} +% 日本語\TeX{}の行頭禁則処理は、禁則対象文字の直前に、 +% |\prebreakpenalty|で指定されたペナルティの値を挿入することで +% 行なっています。 +% ところが、改行コマンドは負のペナルティの値を挿入することで改行を行ないます。 +% そのために、禁則ペナルティの値が$10000$の文字の直後では、ペナルティの値が +% 相殺され、改行することができません。 +% +%\begin{verbatim} +% あいうえお\\ +% !かきくけこ +%\end{verbatim} +% +% したがって、|\newline|マクロに|\mbox{}|を入れることによって、 +% |\newline|マクロのペナルティ$-10000$と行頭文字のペナルティ$10000$が +% 加算されないようにします。|\\|は|\newline|マクロを呼び出しています。 +% +% なお、|\newline|マクロは\file{ltspaces.dtx}で定義されています。 +% +% \changes{v1.1j}{1999/04/05}{オプションを付けた場合に、余計な空白 +% が入ってしまうのを修正。ありがとう、鈴木隆志@京都大学さん。} +% \changes{v1.1h}{1997/06/25}{\LaTeX\ の改行マクロの変更に対応。 +% ありがとう、奥村さん。} +% \LaTeX\ \texttt{<1996/12/01>}で改行マクロが変更され、|\\|が +% |\newline|を呼び出さなくなったため、変更された改行マクロに対応しまし +% た。|\null|の挿入位置は同じです。 +% \file{ltspace.dtx}の定義を上記に合わせて、定義しなおしました。 +% +% \emph{日本語\TeX{}開発コミュニティによる補足}: +% アスキーによるp\LaTeX{}では、行頭禁則文字の直前で|\\|による強制改行を +% 行えるようにするという目的で +% |\null|を|\@gnewline|マクロ内に挿入していました。 +% しかし、これでは|\\\par|と書いた場合にUnderfull警告が出なくなって +% います(|tests/newline_par.tex|を\texttt{latex}と\texttt{platex}で +% 処理してみてください)。 +% +% もし|\null|の代わりに|\hskip\z@|を挿入すれば、\LaTeX{}と同様に +% Underfull警告を出すことができます。 +% ただし、|\null|を挿入した場合と異なり、強制改行後の行頭に +% JFMグル―が入らなくなります。これはむしろ、奥村さんのjsclassesで +% 行頭を天ツキに直しているのと同じですが、p\LaTeX{}としては挙動が +% 変化してしまいますので、現時点では|\null|→|\hskip\z@|への変更を +% 見送っています。 +% \changes{v1.2n}{2017/04/23}{ドキュメントの追加} +% +% もし変更するならば、以下のコードを有効にします。 +% \begin{macrocode} +%\plIncludeInRelease{????/??/??}{\@gnewline} +% {Restore Underfull warning for |\\\par|}% +%<*plcore|platexrelease> +%\def\@gnewline #1{% +% \ifvmode +% \@nolnerr +% \else +% \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \hskip \z@ +% \ignorespaces +% \fi} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@gnewline} +% {Restore Underfull warning for |\\\par|}% +%\def\@gnewline #1{% +% \ifvmode +% \@nolnerr +% \else +% \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null +% \ignorespaces +% \fi} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% |\linebreak|の挙動の修正は、バグが相次いだため取りやめています。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{相互参照} +% +% p\LaTeXe{}カーネル(2017/10/28)の修正に加え、以下の修正を検討中ですが、 +% 現時点では保留しています。 +% 参考:GitHub:texjporg/platex\#57 +% +% \begin{macro}{\@setref@} +% さらに、参照した結果が「空」の場合 +%\begin{verbatim} +% \documentclass{article} +% \pagenumbering{gobble} +% \begin{document} +% \pageref{a}\label{a} +% \end{document} +%\end{verbatim} +% に相互参照が収束しなくなる\footnote{奇数回コンパイルすると +% Output written on test.dvi (1 page, 212 bytes). +% となり、偶数回コンパイルすると +% No pages of output. +% となります。}のを防ぐため、水平モード以外では +% やはり|\null|を発行してみます。 +% \begin{macrocode} +%\def\@setref@{\ifhmode\spacefactor\@m\else\null\fi} +% \end{macrocode} +% \end{macro} +% このコードは、emathの|\marusuuref|のような +% 「|\ref|を使って参照先の番号だけを取得する」 +% というマクロの動作に(垂直モードで使う場合など)影響するため、 +% ひとまずコメントアウトしておきます。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{空のページ} +% +% 現時点では保留しています。 +% 参考:GitHub:texjporg/platex\#78 +% +% \LaTeXe\ 2017/01/01以降では、例えば +%\begin{verbatim} +% \documentclass{tarticle} +% \begin{document} +% \begin{figure} +% \end{figure} +% \clearpage +% a +% \end{document} +%\end{verbatim} +% のようにすると「空のフロート」だけの空白ページを発生させることが +% できます。この場合、縦組クラスを用いているとフッタが持ち上がります。 +% +% なお、\LaTeXe\ 2015/01/01〜2016/03/31 patch level 3では +%\begin{verbatim} +% ! Output loop---100 consecutive dead cycles. +%\end{verbatim} +% のエラーが出て、それ以前では空白ページは発生しません。 +% +% フロートでない空白ページでページフッタが持ち上がる問題へは、 +% |\@makecol|の|\iftdir\vbox{\hskip\z@}\fi|で対処してありますが、 +% フロートがある空白ページでは|\@makecol|が呼ばれないことから +% 対策が効いていません。ただ、フロートが空である状況は +% 元々不自然なので、現在はサポートしていません。 +% +% もし対策することになれば、下記のコードを使用します。 +% \begin{macro}{\@vtryfc} +% \file{ltoutput.dtx}で定義されている|\@vtryfc|に +% |\iftdir\hskip\z@\fi|を追加してあります。 +% \begin{macrocode} +\def\@vtryfc #1{% + \global\setbox\@outputbox\vbox{\iftdir\hskip\z@\fi}% + \let\@elt\@wtryfc + \@flsucceed + \global\setbox\@outputbox \vbox to\@colht{% + \vskip \@fptop + \vskip -\@fpsep + \unvbox \@outputbox + \vskip \@fpbot}% + \let\@elt\relax + \xdef #1{\@failedlist\@flfail}% + \xdef\@freelist{\@freelist\@flsucceed}} +% \end{macrocode} +% \end{macro} +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{支柱} +% +% \begin{macro}{\strut} +% \cs{strut}を縦数式ディレクションで使った場合への修正。 +% \begin{macrocode} +%% \strut の改良版 +\def\strut{\relax + \iftdir + \ifmdir + %% [縦数式ディレクション] + %% テキストモードの場合は \zstrutbox でなければならない気がする。 + %% (下線 \underline で使う場合に横組の 90 度回転にならない) + %% 数式モードの場合は \zstrutbox に変えるとかえってバランスが崩れるが, + %% これは \copy したボックスにベースライン補正が効かないためであり, + %% その分 \lower で下げる。 + \ifmmode \lower \tbaselineshift \copy \zstrutbox \else \unhcopy \zstrutbox \fi + \else + %% [縦ディレクション] + %% テキストモードの場合は \tstrutbox で良い。 + %% 数式モードに入ると自動的に [縦数式ディレクション] に入るので分岐不要。 + \unhcopy \tstrutbox + \fi + \else + %% [横ディレクション] + %% テキストモードの場合は \(y)strutbox で良い。 + %% 数式モードではベースライン補正分だけ \lower で下げる。 + \ifmmode \lower \ybaselineshift \copy \ystrutbox \else \unhcopy \ystrutbox \fi + \fi} +%% \strutbox は \zstrutbox を使うとまずそうなので 2017-04-08 のままとする。 +%% 以下のコードは使わない。 +%\def\strutbox{% +% \iftdir \ifmdir \zstrutbox \else \tstrutbox \fi +% \else \ystrutbox \fi} +% \end{macrocode} +% \end{macro} +% +% \cs{strutbox}の変更は2017/04/08に導入済み。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{脚注の合印直後での改行を許可} +% +% 2016/09/03に導入済み。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{e-p\TeX{}でのFAM256パッチの利用} +% +% 2016/11/29に導入済み。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{脚注とボトムフロートの順序および垂直位置} +% +% 2017/04/08に導入済み。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{\cs{textunderscore}のベースライン補正} +% +% 2017/04/08に導入済み。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{verbatimとハイフネーション} +% +% 2017/04/08に導入済み。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{\cs{verb}の冒頭のスペース} +% +% 2017/10/28に導入済み。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{tabbing環境の行冒頭のJFMグル―} +% +% 2017/10/28に導入済み。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{\cs{inhibitglue}の簡略形} +% +% 2017/10/28に導入済み。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{イタリック補正と\cs{xkanjiskip}} +% +% 2017/10/28に導入済み。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \subsection{直前のJFM由来スペースの削除【コミュニティ版独自】} +% +% 2018/03/09に導入済み。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{tabular環境のセル内のJFMグル―} +% +% 2018/03/09に導入済み。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +% \section{PDFのブックマークとアクセント文字} +% +% 2018/07/28に導入済み。 +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% +\endinput diff --git a/language/japanese/platex/jclasses.dtx b/language/japanese/platex/jclasses.dtx new file mode 100644 index 0000000000..04c939bacb --- /dev/null +++ b/language/japanese/platex/jclasses.dtx @@ -0,0 +1,4523 @@ +% \iffalse meta-comment +%% File: jclasses.dtx +% +% Copyright 1995-2001 ASCII Corporation. +% Copyright (c) 2010 ASCII MEDIA WORKS +% Copyright (c) 2016-2019 Japanese TeX Development Community +% +% This file is part of the pLaTeX2e system (community edition). +% ------------------------------------------------------------- +% +% \fi +% +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0}{1995/04/19}{first edition} +% \changes{v1.0a}{1995/08/30}{ページスタイル部分の調整} +% \changes{v1.0b}{1995/11/08}{ページスタイル部分の調整} +% \changes{v1.0c}{1996/01/30}{\LaTeX\ \texttt{!<1995/12/01!>}での修正を反映} +% \changes{v1.0d}{1996/02/29}{デフォルトページスタイルの修正} +% \changes{v1.0e}{1996/03/14}{itemize, enumerate環境の修正} +% \changes{v1.0f}{1996/07/10}{面付けオプションを追加} +% \changes{v1.0g}{1996/09/03}{トンボの横に作成日時を出力するようにした} +% \changes{v1.1}{1997/01/16}{\LaTeX\ \texttt{!<1996/06/01!>}版に対応} +% \changes{v1.1a}{1997/01/23}{\LaTeX\ \texttt{!<1996/12/01!>}版に対応} +% \changes{v1.1a}{1997/01/25}{互換モードでp\LaTeX~2.09のa4jなどの +% 用紙オプションに対応} +% \changes{v1.1b}{1997/01/28}{日本語ファミリの宣言を再度、実装} +% \changes{v1.1d}{1997/01/29}{2eモードでa4jなどのオプションに対応} +% \changes{v1.1e}{1997/04/08}{トップマージンの値を修正} +% \changes{v1.1f}{1997/07/08}{縦組クラスでベースラインがおかしいのを修正} +% \changes{v1.1g}{1997/08/25}{片面印刷のとき、sectionレベルが出力されない +% のを修正} +% \changes{v1.1h}{1997/09/03}{landscape指定時の値を修正} +% \changes{v1.1i}{1997/12/12}{report, bookクラスで片面印刷時に、 +% bothstyleスタイルにすると、コンパイルエラーになるのを修正} +% \changes{v1.1j}{1998/02/03}{互換モード時のa5pのトップマージンを0.7in増加} +% \changes{v1.1k}{1998/03/23}{reportとbookクラスで番号を付けない見出しの +% ペナルティが\cs{M@}だったのを\cs{@M}に修正} +% \changes{v1.1m}{1998/04/07}{\cs{today}の計算手順を変更} +% \changes{v1.1n}{1998/10/13}{report,bookクラスの表番号が +% 見出しレベルに関係なくchapter番号が出力されてしまうのを修正} +% \changes{v1.1n}{1998/10/13}{mentukeオプションがエラーになっていたのを修正} +% \changes{v1.1o}{1998/12/24}{secnumdepthカウンタを$-1$以下にすると、 +% 見出し文字列も消えてしまうのを修正} +% \changes{v1.1p}{1999/1/6}{\cs{oddsidemargin}のポイントへの変換を後ろに} +% \changes{v1.1q}{1999/05/18}{縦組時のみに設定するようにした} +% \changes{v1.1r}{1999/08/09}{トップマージンの計算式を修正} +% \changes{v1.2}{2001/09/04}{\cs{chapter}の出力位置がアスタリスク形式と +% そうでないときと違うのを修正(ありがとう、鈴木@津さん)} +% \changes{v1.3}{2001/10/04}{目次のページ番号の書体を\cs{rmfamily}から +% \cs{normalfont}に変更(ありがとう、鈴木た@MILNさん)} +% \changes{v1.4}{2002/04/09}{縦組スタイルで\cs{flushbottom}しないようにした} +% \changes{v1.5}{2004/01/15}{\cs{part},\cs{chapter}の\cs{@afterindentfalse}を +% \cs{@afterindenttrue}に変更。 +% \cs{section},\cs{subsection},\cs{subsubsection}の前後空きの伸縮幅を修正。 +% (ありがとうございます、鈴木た@MILNさん)} +% \changes{v1.6}{2006/06/27}{フォントコマンドを修正。ありがとう、ymtさん。} +% \changes{v1.7}{2016/11/12}{ドキュメントに反して\cs{@maketitle}が +% 空になっていなかったのを修正} +% \changes{v1.7}{2016/11/12}{use \cs{@width} (sync with classes.dtx v1.3a)} +% \changes{v1.7}{2016/11/12}{Replaced all \cs{hbox to} by +% \cs{hb@xt@} (sync with classes.dtx v1.3a)} +% \changes{v1.7}{2016/11/12}{Moved \cs{@mkboth} out of heading +% arg (sync with classes.dtx v1.4c)} +% \changes{v1.7}{2016/11/12}{\cs{columnsep}と\cs{columnseprule}の +% 変更を後ろに移動(sync with classes.dtx v1.4f)} +% \changes{v1.7a}{2016/11/16}{Check \texttt{@noskipsec} switch and +% possibly force horizontal mode (sync with classes.dtx v1.4a)} +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} +% \changes{v1.7a}{2016/11/16}{Added \cs{nobreak} for +% latex/2343 (sync with ltsect.dtx v1.0z)} +% \changes{v1.7a}{2016/11/16}{Use \cs{expandafter} +% (sync with ltlists.dtx v1.0j)} +% \changes{v1.7b}{2016/11/22}{補足ドキュメントを追加} +% \changes{v1.7c}{2016/12/18}{Only add empty page after part if +% twoside and openright (sync with classes.dtx v1.4b)} +% \changes{v1.7c}{2016/12/18}{奇妙なarticleガードとコードを削除して +% ドキュメントを追加} +% \changes{v1.7d}{2017/02/15}{\cs{if@openleft}スイッチ追加} +% \changes{v1.7d}{2017/02/15}{openleftオプション追加} +% \changes{v1.7d}{2017/02/15}{\cs{cleardoublepage}の代用となる命令群を追加} +% \changes{v1.7d}{2017/02/15}{bookクラスでtitlepageを必ず奇数ページ +% に送るように変更} +% \changes{v1.7d}{2017/02/15}{titlepageのページ番号を奇数ならば1に、 +% 偶数ならば0にリセットするように変更} +% \changes{v1.7d}{2017/02/15}{縦組クラスの所属表示の番号を直立にした} +% \changes{v1.7e}{2017/03/05}{トンボに表示するジョブ情報の書式を変更} +% \changes{v1.7e}{2017/03/05}{\cs{frontmatter}と\cs{mainmatter}を +% 奇数ページに送るように変更} +% \changes{v1.7f}{2017/08/31}{和文書体の基準を全角空白から「漢」に変更} +% \changes{v1.7g}{2017/09/19}{内部処理で使ったボックス0を空にした} +% \changes{v1.7h}{2018/02/04}{和文スケール値\cs{Cjascale}を定義} +% \changes{v1.8}{2018/07/03}{\cs{today}のデフォルトを和暦から西暦に変更} +% \changes{v1.8a}{2018/10/25}{ファイル書き出し時の行末文字対策 +% (sync with ltsect.dtx 2018/09/26 v1.1c)} +% \changes{v1.8b}{2019/04/02}{新元号対応} +% \fi +% +% \iffalse +\NeedsTeXFormat{pLaTeX2e} +%<*driver> +\ProvidesFile{jclasses.dtx} +% +%<*yoko> +%
\ProvidesClass{jarticle} +%\ProvidesClass{jreport} +%\ProvidesClass{jbook} +%<10pt&!bk>\ProvidesFile{jsize10.clo} +%<11pt&!bk>\ProvidesFile{jsize11.clo} +%<12pt&!bk>\ProvidesFile{jsize12.clo} +%<10pt&bk>\ProvidesFile{jbk10.clo} +%<11pt&bk>\ProvidesFile{jbk11.clo} +%<12pt&bk>\ProvidesFile{jbk12.clo} +% +%<*tate> +%
\ProvidesClass{tarticle} +%\ProvidesClass{treport} +%\ProvidesClass{tbook} +%<10pt&!bk>\ProvidesFile{tsize10.clo} +%<11pt&!bk>\ProvidesFile{tsize11.clo} +%<12pt&!bk>\ProvidesFile{tsize12.clo} +%<10pt&bk>\ProvidesFile{tbk10.clo} +%<11pt&bk>\ProvidesFile{tbk11.clo} +%<12pt&bk>\ProvidesFile{tbk12.clo} +% + [2019/04/02 v1.8b +% Standard pLaTeX class] +%<10pt|11pt|12pt> Standard pLaTeX file (size option)] +%<*driver> +] +\documentclass{jltxdoc} +\GetFileInfo{jclasses.dtx} +\title{p\LaTeXe{}の標準クラス\space\fileversion} +\author{Ken Nakano} +\date{作成日:\filedate} +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% このファイルは、p\LaTeXe{}の標準クラスファイルです。 +% \dst{}プログラムによって、横組用のクラスファイルと縦組用のクラスファイル +% を作成することができます。 +% +% 次に\dst{}プログラムのためのオプションを示します。 +% +% \DeleteShortVerb{\|} +% \begin{center} +% \begin{tabular}{l|l} +% \emph{オプション} & \emph{意味}\\\hline +% article & articleクラスを生成\\ +% report & reportクラスを生成\\ +% book & bookクラスを生成\\ +% 10pt & 10ptサイズの設定を生成\\ +% 11pt & 11ptサイズの設定を生成\\ +% 12pt & 12ptサイズの設定を生成\\ +% bk & bookクラス用のサイズの設定を生成\\ +% tate & 縦組用の設定を生成\\ +% yoko & 横組用の設定を生成\\ +% \end{tabular} +% \end{center} +% \MakeShortVerb{\|} +% +% +% \section{オプションスイッチ} +% ここでは、後ほど使用するいくつかのコマンドやスイッチを定義しています。 +% +% \begin{macro}{\c@@paper} +% 用紙サイズを示すために使います。 +% A4, A5, B4, B5用紙はそれぞれ、1, 2, 3, 4として表されます。 +% \begin{macrocode} +%<*article|report|book> +\newcounter{@paper} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@landscape} +% 用紙を横向きにするかどうかのスイッチです。デフォルトは、縦向きです。 +% \begin{macrocode} +\newif\if@landscape \@landscapefalse +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@ptsize} +% 組版をするポイント数の一の位を保存するために使います。 +% 0, 1, 2のいずれかです。 +% \begin{macrocode} +\newcommand{\@ptsize}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@restonecol} +% 二段組時に用いるテンポラリスイッチです。 +% \begin{macrocode} +\newif\if@restonecol +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@titlepage} +% タイトルページやアブストラクト(概要)を +% 独立したページにするかどうかのスイッチです。 +% reportとbookスタイルのデフォルトでは、独立したページになります。 +% \begin{macrocode} +\newif\if@titlepage +%
\@titlepagefalse +%\@titlepagetrue +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@openright} +% chapterレベルを右ページからはじめるかどうかのスイッチです。 +% 横組では奇数ページ、縦組では偶数ページから始まることになります。 +% reportクラスのデフォルトは、``no''です。 +% bookクラスのデフォルトは、``yes''です。 +% \begin{macrocode} +%\newif\if@openright +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@openleft} +% chapterレベルを左ページからはじめるかどうかのスイッチです。 +% 日本語\TeX{}開発コミュニティ版で新たに追加されました。 +% 横組では偶数ページ、縦組では奇数ページから始まることになります。 +% reportクラスとbookクラスの両方で、デフォルトは``no''です。 +% \changes{v1.7d}{2017/02/15}{\cs{if@openleft}スイッチ追加} +% \begin{macrocode} +%\newif\if@openleft +% \end{macrocode} +% \end{macro} +% +% \changes{v1.0c}{1995/12/25}{Macro \cs{if@openbib} removed} +% +% \begin{macro}{\if@mainmatter} +% スイッチ|\@mainmatter|が真の場合、本文を処理しています。 +% このスイッチが偽の場合は、|\chapter|コマンドは見出し番号を出力しません。 +% \begin{macrocode} +%\newif\if@mainmatter \@mainmattertrue +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\hour} +% \begin{macro}{\minute} +% \begin{macrocode} +\hour\time \divide\hour by 60\relax +\@tempcnta\hour \multiply\@tempcnta 60\relax +\minute\time \advance\minute-\@tempcnta +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\if@stysize} +% \changes{v1.1a}{1997/01/25}{Add \cs{if@stysize}.} +% p\LaTeXe~2.09互換モードで、スタイルオプションにa4j,a5pなどが指定された +% ときの動作をエミュレートするためのフラグです。 +% \begin{macrocode} +\newif\if@stysize \@stysizefalse +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\if@enablejfam} +% \changes{v1.1b}{1997/01/28}{\break Add \cs{if@enablejfam}} +% 日本語ファミリを宣言するために用いるフラグです。 +% \begin{macrocode} +\newif\if@enablejfam \@enablejfamtrue +% \end{macrocode} +% 和欧文両対応の数式文字コマンドを有効にするときに用いるフラグです。 +% マクロの展開順序が複雑になるのを避けるため、 +% デフォルトではfalseとしてあります。 +% \begin{macrocode} +\newif\if@mathrmmc \@mathrmmcfalse +% \end{macrocode} +% \end{macro} +% +% \section{オプションの宣言} +% ここでは、クラスオプションの宣言を行なっています。 +% +% \subsection{用紙オプション} +% 用紙サイズを指定するオプションです。 +% \begin{macrocode} +\DeclareOption{a4paper}{\setcounter{@paper}{1}% + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5paper}{\setcounter{@paper}{2}% + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4paper}{\setcounter{@paper}{3}% + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5paper}{\setcounter{@paper}{4}% + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +% \end{macrocode} +% \changes{v1.0a}{1995/09/26}{Change b4paper width/height 352x250 to 364x257} +% \changes{v1.0a}{1995/09/26}{Change b5paper width/height 250x176 to 257x182} +% ドキュメントクラスに、以下のオプションを指定すると、通常よりもテキストを +% 組み立てる領域の広いスタイルとすることができます。 +% \begin{macrocode} +% +\DeclareOption{a4j}{\setcounter{@paper}{1}\@stysizetrue + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5j}{\setcounter{@paper}{2}\@stysizetrue + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4j}{\setcounter{@paper}{3}\@stysizetrue + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5j}{\setcounter{@paper}{4}\@stysizetrue + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +% +\DeclareOption{a4p}{\setcounter{@paper}{1}\@stysizetrue + \setlength\paperheight {297mm}% + \setlength\paperwidth {210mm}} +\DeclareOption{a5p}{\setcounter{@paper}{2}\@stysizetrue + \setlength\paperheight {210mm} + \setlength\paperwidth {148mm}} +\DeclareOption{b4p}{\setcounter{@paper}{3}\@stysizetrue + \setlength\paperheight {364mm} + \setlength\paperwidth {257mm}} +\DeclareOption{b5p}{\setcounter{@paper}{4}\@stysizetrue + \setlength\paperheight {257mm} + \setlength\paperwidth {182mm}} +% \end{macrocode} +% +% \subsection{サイズオプション} +% 基準となるフォントの大きさを指定するオプションです。 +% \begin{macrocode} +\if@compatibility + \renewcommand{\@ptsize}{0} +\else + \DeclareOption{10pt}{\renewcommand{\@ptsize}{0}} +\fi +\DeclareOption{11pt}{\renewcommand{\@ptsize}{1}} +\DeclareOption{12pt}{\renewcommand{\@ptsize}{2}} +% \end{macrocode} +% +% \subsection{横置きオプション} +% このオプションが指定されると、用紙の縦と横の長さを入れ換えます。 +% \changes{v1.1h}{1997/09/03}{オプションの処理時に縦横の値を交換} +% \changes{v1.1h}{1997/09/03}{landscapeオプションを互換モードでも有効に} +% \begin{macrocode} +\DeclareOption{landscape}{\@landscapetrue + \setlength\@tempdima{\paperheight}% + \setlength\paperheight{\paperwidth}% + \setlength\paperwidth{\@tempdima}} +% \end{macrocode} +% +% \subsection{トンボオプション} +% |tombow|オプションが指定されると、用紙サイズに合わせてトンボを出力します。 +% このとき、トンボの脇にDVIを作成した日付が出力されます。 +% 作成日付の出力を抑制するには、|tombow|ではなく、|tombo|と指定をします。 +% +% ジョブ情報の書式は元々|filename : 2017/3/5(13:3)|のような書式でしたが、 +% jsclassesにあわせて桁数固定の|filename (2017-03-05 13:03)|に直しました。 +% \changes{v1.0g}{1996/09/03}{Add to \cs{@bannertoken}.} +% \changes{v1.1a}{1997/01/23}{日付出力オプション} +% \changes{v1.7e}{2017/03/05}{トンボに表示するジョブ情報の書式を変更} +% \begin{macrocode} +\DeclareOption{tombow}{% + \tombowtrue \tombowdatetrue + \setlength{\@tombowwidth}{.1\p@}% + \@bannertoken{% + \jobname\space(\number\year-\two@digits\month-\two@digits\day + \space\two@digits\hour:\two@digits\minute)}% + \maketombowbox} +\DeclareOption{tombo}{% + \tombowtrue \tombowdatefalse + \setlength{\@tombowwidth}{.1\p@}% + \maketombowbox} +% \end{macrocode} +% +% \subsection{面付けオプション} +% このオプションが指定されると、トンボオプションを指定したときと同じ +% 位置に文章を出力します。作成したDVIをフィルムに面付け出力する場合など +% に指定をします。 +% \changes{v1.0f}{1996/07/10}{面付けオプションを追加} +% \changes{v1.1n}{1998/10/13} +% {動作していなかったのを修正。ありがとう、刀祢さん} +% \begin{macrocode} +\DeclareOption{mentuke}{% + \tombowtrue \tombowdatefalse + \setlength{\@tombowwidth}{\z@}% + \maketombowbox} +% \end{macrocode} +% +% \subsection{組方向オプション} +% このオプションが指定されると、縦組で組版をします。 +% \changes{v1.0g}{1997/01/25}{Insert \cs{hbox}, to switch tate-mode.} +% \changes{v1.1d}{1997/02/05}{開始ページがおかしくなるのを修正} +% \changes{v1.1f}{1997/07/08}{縦組時にベースラインがおかしくなるのを修正} +% \begin{macrocode} +\DeclareOption{tate}{% + \AtBeginDocument{\tate\message{《縦組モード》}% + \adjustbaseline}% +} +% \end{macrocode} +% +% \subsection{両面、片面オプション} +% twosideオプションが指定されると、両面印字出力に適した整形を行ないます。 +% \begin{macrocode} +\DeclareOption{oneside}{\@twosidefalse} +\DeclareOption{twoside}{\@twosidetrue} +% \end{macrocode} +% +% \subsection{二段組オプション} +% 二段組にするかどうかのオプションです。 +% \begin{macrocode} +\DeclareOption{onecolumn}{\@twocolumnfalse} +\DeclareOption{twocolumn}{\@twocolumntrue} +% \end{macrocode} +% +% \subsection{表題ページオプション} +% |@titlepage|が真の場合、表題を独立したページに出力します。 +% \begin{macrocode} +\DeclareOption{titlepage}{\@titlepagetrue} +\DeclareOption{notitlepage}{\@titlepagefalse} +% \end{macrocode} +% +% \subsection{右左起こしオプション} +% chapterを右ページあるいは左ページから +% はじめるかどうかを指定するオプションです。 +% |openleft|オプションは日本語\TeX{}開発コミュニティによって追加されました。 +% \changes{v1.7d}{2017/02/15}{openleftオプション追加} +% \begin{macrocode} +%\if@compatibility +%\@openrighttrue +%\else +%\DeclareOption{openright}{\@openrighttrue\@openleftfalse} +%\DeclareOption{openleft}{\@openlefttrue\@openrightfalse} +%\DeclareOption{openany}{\@openrightfalse\@openleftfalse} +%\fi +% \end{macrocode} +% +% \subsection{数式のオプション} +% \Lopt{leqno}を指定すると、数式番号を数式の左側に出力します。 +% \Lopt{fleqn}を指定するとディスプレイ数式を左揃えで出力します。 +% \begin{macrocode} +\DeclareOption{leqno}{\input{leqno.clo}} +\DeclareOption{fleqn}{\input{fleqn.clo}} +% \end{macrocode} +% +% \subsection{参考文献のオプション} +% 参考文献一覧を``オープンスタイル''の書式で出力します。 +% これは各ブロックが改行で区切られ、|\bibindent|のインデントが付く書式です。 +% \changes{v1.0c}{1995/12/25}{openbibオプションを再実装} +% \begin{macrocode} +\DeclareOption{openbib}{% +% \end{macrocode} +% 参考文献環境内の最初のいくつかのフックを満たします。 +% \begin{macrocode} + \AtEndOfPackage{% + \renewcommand\@openbib@code{% + \advance\leftmargin\bibindent + \itemindent -\bibindent + \listparindent \itemindent + \parsep \z@ + }% +% \end{macrocode} +% そして、|\newblock|を再定義します。 +% \begin{macrocode} + \renewcommand\newblock{\par}}} +% \end{macrocode} +% +% \subsection{日本語ファミリ宣言の抑制、和欧文両対応の数式文字} +% p\LaTeXe{}は、このあと、数式モードで直接、日本語を記述できるように +% 数式ファミリを宣言します。しかし、\TeX{}で扱える数式ファミリの数が +% 16個なので、その他のパッケージと組み合わせた場合、 +% 数式ファミリを宣言する領域を超えてしまう場合があるかもしれません。 +% そのときには、残念ですが、そのパッケージか、数式内に直接、 +% 日本語を記述するのか、どちらかを断念しなければなりません。 +% このクラスオプションは、 +% 数式内に日本語を記述するのをあきらめる場合に用います。 +% +% |disablejfam|オプションを指定しても|\textmc|や|\textgt|などを用いて、 +% 数式内に日本語を記述することは可能です。 +% +% \noindent\emph{日本語\TeX{}開発コミュニティによる補足}: +% コミュニティ版p\LaTeX{}の2016/11/29以降の版では、e-p\TeX{}の拡張機能 +% (通称「旧FAM256パッチ」)が利用可能な場合に、\LaTeX{}の機能で宣言 +% できる数式ファミリ(数式アルファベット)の上限を256個に増やしています。 +% したがって、新しい環境では|disablejfam|を指定しなくても上限を超える +% ことが起きにくくなっています。 +% +% |mathrmmc|オプションは、 +% |\mathrm|と|\mathbf|を和欧文両対応にするためのクラスオプションです。 +% \changes{v1.1d}{1992/02/04}{disablejfamの判断を間違えてたのを修正} +% \begin{macrocode} +\if@compatibility + \@mathrmmctrue +\else + \DeclareOption{disablejfam}{\@enablejfamfalse} + \DeclareOption{mathrmmc}{\@mathrmmctrue} +\fi +% \end{macrocode} +% +% +% \subsection{ドラフトオプション} +% |draft|オプションを指定すると、オーバフルボックスの起きた箇所に、 +% 5ptの罫線が引かれます。 +% \begin{macrocode} +\DeclareOption{draft}{\setlength\overfullrule{5pt}} +\DeclareOption{final}{\setlength\overfullrule{0pt}} +% +% \end{macrocode} +% +% \subsection{オプションの実行} +% オプションの実行、およびサイズクラスのロードを行ないます。 +% \begin{macrocode} +%<*article|report|book> +%<*article> +%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,tate} +%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final} +%
+%<*report> +%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany,tate} +%\ExecuteOptions{a4paper,10pt,oneside,onecolumn,final,openany} +%
+%<*book> +%\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright,tate} +%\ExecuteOptions{a4paper,10pt,twoside,onecolumn,final,openright} +% +\ProcessOptions\relax +%\input{tbk1\@ptsize.clo} +%\input{tsize1\@ptsize.clo} +%\input{jbk1\@ptsize.clo} +%\input{jsize1\@ptsize.clo} +% \end{macrocode} +% 縦組用クラスファイルの場合は、ここで\file{plext.sty}も読み込みます。 +% \changes{v1.0e}{1996/03/21}{\cs{usepackage} to \cs{RequirePackage}} +% \begin{macrocode} +%\RequirePackage{plext} +% +% \end{macrocode} +% +% \section{フォント} +% +% ここでは、\LaTeX{}のフォントサイズコマンドの定義をしています。 +% フォントサイズコマンドの定義は、次のコマンドを用います。 +% +% |\@setfontsize||\size|\meta{font-size}\meta{baselineskip} +% +% \begin{description} +% \item[\meta{font-size}] これから使用する、フォントの実際の大きさです。 +% \item[\meta{baselineskip}] 選択されるフォントサイズ用の通常の +% |\baselineskip|の値です(実際は、|\baselinestretch| * \meta{baselineskip} +% の値です)。 +% \end{description} +% +% 数値コマンドは、次のように\LaTeX{}カーネルで定義されています。 +% \begin{center} +% \begin{tabular}{ll@{\qquad}ll@{\qquad}ll} +% \verb=\@vpt= & 5 & \verb=\@vipt= & 6 & \verb=\@viipt= & 7 \\ +% \verb=\@viiipt= & 8 & \verb=\@ixpt= & 9 & \verb=\@xpt= & 10 \\ +% \verb=\@xipt= & 10.95 & \verb=\@xiipt= & 12 & \verb=\@xivpt= & 14.4\\ +% ... +% \end{tabular} +% \end{center} +% +% \begin{macro}{\normalsize} +% \begin{macro}{\@normalsize} +% 基本サイズとするユーザレベルのコマンドは|\normalsize|です。 +% \LaTeX{}の内部では|\@normalsize|を使用します。 +% +% |\normalsize|マクロは、|\abovedisplayskip|と +% |\abovedisplayshortskip|、および|\belowdisplayshortskip|の値も設定をします。 +% |\belowdisplayskip|は、つねに|\abovedisplayskip|と同値です。 +% +% また、リスト環境のトップレベルのパラメータは、つねに|\@listI|で与えられます。 +% \begin{macrocode} +%<*10pt|11pt|12pt> +\renewcommand{\normalsize}{% +%<10pt&yoko> \@setfontsize\normalsize\@xpt{15}% +%<11pt&yoko> \@setfontsize\normalsize\@xipt{15.5}% +%<12pt&yoko> \@setfontsize\normalsize\@xiipt{16.5}% +%<10pt&tate> \@setfontsize\normalsize\@xpt{17}% +%<11pt&tate> \@setfontsize\normalsize\@xipt{17}% +%<12pt&tate> \@setfontsize\normalsize\@xiipt{18}% +%<*10pt> + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ +% +%<*11pt> + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ +% +%<*12pt> + \abovedisplayskip 12\p@ \@plus3\p@ \@minus7\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ +% + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +% \end{macrocode} +% +% ここで、ノーマルフォントを選択し、初期化をします。 +% このとき、縦組モードならば、デフォルトのエンコードを変更します。 +% \begin{macrocode} +%\def\kanjiencodingdefault{JT1}% +%\kanjiencoding{\kanjiencodingdefault}% +\normalsize +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cht} +% \begin{macro}{\Cdp} +% \begin{macro}{\Cwd} +% \begin{macro}{\Cvs} +% \begin{macro}{\Chs} +% 基準となる長さの設定をします。これらのパラメータは\file{plfonts.dtx}で定義 +% されています。基準とする文字を「全角空白」(EUCコード\texttt{0xA1A1})から +% 「漢」(JISコード\texttt{0x3441})へ変更しました。 +% \changes{v1.7f}{2017/08/31}{和文書体の基準を全角空白から「漢」に変更} +% \changes{v1.7g}{2017/09/19}{内部処理で使ったボックス0を空にした} +% \begin{macrocode} +\setbox0\hbox{\char\jis"3441}% +\setlength\Cht{\ht0} +\setlength\Cdp{\dp0} +\setlength\Cwd{\wd0} +\setlength\Cvs{\baselineskip} +\setlength\Chs{\wd0} +\setbox0=\box\voidb@x +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\small} +% |\small|コマンドの定義は、|\normalsize|に似ています。 +% \begin{macrocode} +\newcommand{\small}{% +%<*10pt> + \@setfontsize\small\@ixpt{11}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% +% +%<*11pt> + \@setfontsize\small\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% +% +%<*12pt> + \@setfontsize\small\@xipt{13.6}% + \abovedisplayskip 11\p@ \@plus3\p@ \@minus6\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6.5\p@ \@plus3.5\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% +% + \belowdisplayskip \abovedisplayskip} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\footnotesize} +% |\footnotesize|コマンドの定義は、|\normalsize|に似ています。 +% \begin{macrocode} +\newcommand{\footnotesize}{% +%<*10pt> + \@setfontsize\footnotesize\@viiipt{9.5}% + \abovedisplayskip 6\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 3\p@ \@plus\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 3\p@ \@plus\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% +% +%<*11pt> + \@setfontsize\footnotesize\@ixpt{11}% + \abovedisplayskip 8\p@ \@plus2\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% +% +%<*12pt> + \@setfontsize\footnotesize\@xpt\@xiipt + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 6\p@ \@plus2\p@ \@minus2\p@ + \parsep 3\p@ \@plus2\p@ \@minus\p@ + \itemsep \parsep}% +% + \belowdisplayskip \abovedisplayskip} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\scriptsize} +% \begin{macro}{\tiny} +% \begin{macro}{\large} +% \begin{macro}{\Large} +% \begin{macro}{\LARGE} +% \begin{macro}{\huge} +% \begin{macro}{\Huge} +% これらは先ほどのマクロよりも簡単です。これらはフォントサイズを変更する +% だけで、リスト環境とディスプレイ数式のパラメータは変更しません。 +% \begin{macrocode} +%<*10pt> +\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt} +\newcommand{\tiny}{\@setfontsize\tiny\@vpt\@vipt} +\newcommand{\large}{\@setfontsize\large\@xiipt{17}} +\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} +\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} +% +%<*11pt> +\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}} +\newcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt} +\newcommand{\large}{\@setfontsize\large\@xiipt{17}} +\newcommand{\Large}{\@setfontsize\Large\@xivpt{21}} +\newcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{25}} +\newcommand{\huge}{\@setfontsize\huge\@xxpt{28}} +\newcommand{\Huge}{\@setfontsize\Huge\@xxvpt{33}} +% +%<*12pt> +\newcommand{\scriptsize}{\@setfontsize\scriptsize\@viiipt{9.5}} +\newcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt} +\newcommand{\large}{\@setfontsize\large\@xivpt{21}} +\newcommand{\Large}{\@setfontsize\Large\@xviipt{25}} +\newcommand{\LARGE}{\@setfontsize\LARGE\@xxpt{28}} +\newcommand{\huge}{\@setfontsize\huge\@xxvpt{33}} +\let\Huge=\huge +% +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cjascale} +% このクラスファイルが意図する和文スケール値 +% ($1\,\mathrm{zw} \div \textmc{要求サイズ}$)を +% 表す実数値マクロ|\Cjascale|を定義します。 +% このp\LaTeXe{}の標準クラスでは、フォーマット作成時に読み込まれた +% フォント定義ファイル(\file{jy1mc.fd} / \file{jy1gt.fd} / +% \file{jt1mc.fd} / \file{jt1gt.fd})での和文スケール値がそのまま +% 有効ですので、これは0.962216です。 +% \changes{v1.7h}{2018/02/04}{和文スケール値\cs{Cjascale}を定義} +% \begin{macrocode} +%<*article|report|book> +\def\Cjascale{0.962216} +% +% \end{macrocode} +% \end{macro} +% +% +% +% \section{レイアウト} +% +% \subsection{用紙サイズの決定} +% +% \begin{macro}{\columnsep} +% \begin{macro}{\columnseprule} +% |\columnsep|は、二段組のときの、左右(あるいは上下)の段間の幅です。 +% このスペースの中央に|\columnseprule|の幅の罫線が引かれます。 +% \changes{v1.0g}{1997/01/25}{\cs{columnsep}: 10pt to 3\cs{Cwd} or 2\cs{Cwd}.} +% \begin{macrocode} +%<*article|report|book> +\if@stysize +% \setlength\columnsep{3\Cwd} +% \setlength\columnsep{2\Cwd} +\else + \setlength\columnsep{10\p@} +\fi +\setlength\columnseprule{0\p@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{段落の形} +% +% \begin{macro}{\lineskip} +% \begin{macro}{\normallineskip} +% これらの値は、行が近付き過ぎたときの\TeX の動作を制御します。 +% \begin{macrocode} +\setlength\lineskip{1\p@} +\setlength\normallineskip{1\p@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\baselinestretch} +% これは、|\baselineskip|の倍率を示すために使います。 +% デフォルトでは、\emph{何もしません}。このコマンドが``empty''でない場合、 +% |\baselineskip|の指定の\texttt{plus}や\texttt{minus}部分は無視される +% ことに注意してください。 +% \begin{macrocode} +\renewcommand{\baselinestretch}{} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\parskip} +% \begin{macro}{\parindent} +% |\parskip|は段落間に挿入される、縦方向の追加スペースです。 +% |\parindent|は段落の先頭の字下げ幅です。 +% \begin{macrocode} +\setlength\parskip{0\p@ \@plus \p@} +\setlength\parindent{1\Cwd} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\smallskipamount} +% \begin{macro}{\medskipamount} +% \begin{macro}{\bigskipamount} +% これら3つのパラメータの値は、\LaTeX{}カーネルの中で設定されています。 +% これらはおそらく、サイズオプションの指定によって変えるべきです。 +% しかし、\LaTeX~2.09や\LaTeXe{}の以前のリリースの両方との互換性を保つために、 +% これらはまだ同じ値としています。 +% \begin{macrocode} +%<*10pt|11pt|12pt> +\setlength\smallskipamount{3\p@ \@plus 1\p@ \@minus 1\p@} +\setlength\medskipamount{6\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\bigskipamount{12\p@ \@plus 4\p@ \@minus 4\p@} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@lowpenalty} +% \begin{macro}{\@medpenalty} +% \begin{macro}{\@highpenalty} +% |\nopagebreak|と|\nolinebreak|コマンドは、これらのコマンドが置かれた場所に、 +% ペナルティを起いて、分割を制御します。 +% 置かれるペナルティは、コマンドの引数によって、 +% |\@lowpenalty|, |\@medpenalty|, |\@highpenalty|のいずれかが使われます。 +% \begin{macrocode} +\@lowpenalty 51 +\@medpenalty 151 +\@highpenalty 301 +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{ページレイアウト} +% +% \subsubsection{縦方向のスペース} +% +% \begin{macro}{\headheight} +% \begin{macro}{\headsep} +% \begin{macro}{\topskip} +% |\headheight|は、ヘッダが入るボックスの高さです。 +% |\headsep|は、ヘッダの下端と本文領域との間の距離です。 +% |\topskip|は、本文領域の上端と1行目のテキストのベースラインとの距離です。 +% \begin{macrocode} +%<*10pt|11pt|12pt> +\setlength\headheight{12\p@} +%<*tate> +\if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\headsep{6mm} + \else % A4, B4, B5 and other + \setlength\headsep{8mm} + \fi +\else + \setlength\headsep{8mm} +\fi +% +%<*yoko> +%\setlength\headsep{25\p@} +%<10pt&bk>\setlength\headsep{.25in} +%<11pt&bk>\setlength\headsep{.275in} +%<12pt&bk>\setlength\headsep{.275in} +% +\setlength\topskip{1\Cht} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\footskip} +% |\footskip|は、本文領域の下端とフッタの下端との距離です。 +% フッタのボックスの高さを示す、|\footheight|は削除されました。 +% \begin{macrocode} +%\setlength\footskip{14mm} +%<*yoko> +%\setlength\footskip{30\p@} +%<10pt&bk>\setlength\footskip{.35in} +%<11pt&bk>\setlength\footskip{.38in} +%<12pt&bk>\setlength\footskip{30\p@} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\maxdepth} +% \changes{v1.1c}{1995/12/25}{\cs{@maxdepth}の設定を除外した} +% \TeX のプリミティブレジスタ|\maxdepth|は、|\topskip|と同じような +% 働きをします。|\@maxdepth|レジスタは、つねに|\maxdepth|のコピーでなくては +% いけません。これは|\begin{document}|の内部で設定されます。 +% \TeX{}と\LaTeX~2.09では、|\maxdepth|は\texttt{4pt}に固定です。 +% \LaTeXe{}では、|\maxdepth|$+$|\topskip|を基本サイズの1.5倍にしたいので、 +% |\maxdepth|を|\topskip|の半分の値で設定します。 +% \begin{macrocode} +\if@compatibility + \setlength\maxdepth{4\p@} +\else + \setlength\maxdepth{.5\topskip} +\fi +% \end{macrocode} +% \end{macro} +% +% \subsubsection{本文領域} +% |\textheight|と|\textwidth|は、本文領域の通常の高さと幅を示します。 +% 縦組でも横組でも、``高さ''は行数を、``幅''は字詰めを意味します。 +% 後ほど、これらの長さに|\topskip|の値が加えられます。 +% +% \begin{macro}{\textwidth} +% 基本組の字詰めです。 +% +% 互換モードの場合: +% \begin{macrocode} +\if@compatibility +% \end{macrocode} +% \changes{v1.1a}{1997/01/25}{Add paper option with compatibility mode.} +% \changes{v1.1h}{1997/09/03}{landscapeでの指定を追加} +% 互換モード:|a4j|や|b5j|のクラスオプションが指定された場合の設定: +% \begin{macrocode} + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape +%<10pt&yoko> \setlength\textwidth{47\Cwd} +%<11pt&yoko> \setlength\textwidth{42\Cwd} +%<12pt&yoko> \setlength\textwidth{40\Cwd} +%<10pt&tate> \setlength\textwidth{27\Cwd} +%<11pt&tate> \setlength\textwidth{25\Cwd} +%<12pt&tate> \setlength\textwidth{23\Cwd} + \else +%<10pt&yoko> \setlength\textwidth{28\Cwd} +%<11pt&yoko> \setlength\textwidth{25\Cwd} +%<12pt&yoko> \setlength\textwidth{24\Cwd} +%<10pt&tate> \setlength\textwidth{46\Cwd} +%<11pt&tate> \setlength\textwidth{42\Cwd} +%<12pt&tate> \setlength\textwidth{38\Cwd} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape +%<10pt&yoko> \setlength\textwidth{75\Cwd} +%<11pt&yoko> \setlength\textwidth{69\Cwd} +%<12pt&yoko> \setlength\textwidth{63\Cwd} +%<10pt&tate> \setlength\textwidth{53\Cwd} +%<11pt&tate> \setlength\textwidth{49\Cwd} +%<12pt&tate> \setlength\textwidth{44\Cwd} + \else +%<10pt&yoko> \setlength\textwidth{60\Cwd} +%<11pt&yoko> \setlength\textwidth{55\Cwd} +%<12pt&yoko> \setlength\textwidth{50\Cwd} +%<10pt&tate> \setlength\textwidth{85\Cwd} +%<11pt&tate> \setlength\textwidth{76\Cwd} +%<12pt&tate> \setlength\textwidth{69\Cwd} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape +%<10pt&yoko> \setlength\textwidth{60\Cwd} +%<11pt&yoko> \setlength\textwidth{55\Cwd} +%<12pt&yoko> \setlength\textwidth{50\Cwd} +%<10pt&tate> \setlength\textwidth{34\Cwd} +%<11pt&tate> \setlength\textwidth{31\Cwd} +%<12pt&tate> \setlength\textwidth{28\Cwd} + \else +%<10pt&yoko> \setlength\textwidth{37\Cwd} +%<11pt&yoko> \setlength\textwidth{34\Cwd} +%<12pt&yoko> \setlength\textwidth{31\Cwd} +%<10pt&tate> \setlength\textwidth{55\Cwd} +%<11pt&tate> \setlength\textwidth{51\Cwd} +%<12pt&tate> \setlength\textwidth{47\Cwd} + \fi + \else % A4 ant other + \if@landscape +%<10pt&yoko> \setlength\textwidth{73\Cwd} +%<11pt&yoko> \setlength\textwidth{68\Cwd} +%<12pt&yoko> \setlength\textwidth{61\Cwd} +%<10pt&tate> \setlength\textwidth{41\Cwd} +%<11pt&tate> \setlength\textwidth{38\Cwd} +%<12pt&tate> \setlength\textwidth{35\Cwd} + \else +%<10pt&yoko> \setlength\textwidth{47\Cwd} +%<11pt&yoko> \setlength\textwidth{43\Cwd} +%<12pt&yoko> \setlength\textwidth{40\Cwd} +%<10pt&tate> \setlength\textwidth{67\Cwd} +%<11pt&tate> \setlength\textwidth{61\Cwd} +%<12pt&tate> \setlength\textwidth{57\Cwd} + \fi + \fi\fi\fi + \else +% \end{macrocode} +% 互換モード:デフォルト設定 +% \begin{macrocode} + \if@twocolumn + \setlength\textwidth{52\Cwd} + \else +%<10pt&!bk&yoko> \setlength\textwidth{327\p@} +%<11pt&!bk&yoko> \setlength\textwidth{342\p@} +%<12pt&!bk&yoko> \setlength\textwidth{372\p@} +%<10pt&bk&yoko> \setlength\textwidth{4.3in} +%<11pt&bk&yoko> \setlength\textwidth{4.8in} +%<12pt&bk&yoko> \setlength\textwidth{4.8in} +%<10pt&tate> \setlength\textwidth{67\Cwd} +%<11pt&tate> \setlength\textwidth{61\Cwd} +%<12pt&tate> \setlength\textwidth{57\Cwd} + \fi + \fi +% \end{macrocode} +% 2eモードの場合: +% \begin{macrocode} +\else +% \end{macrocode} +% 2eモード:|a4j|や|b5j|のクラスオプションが指定された場合の設定: +% 二段組では用紙サイズの8割、一段組では用紙サイズの7割を版面の幅として +% 設定します。 +% \begin{macrocode} + \if@stysize + \if@twocolumn +% \setlength\textwidth{.8\paperwidth} +% \setlength\textwidth{.8\paperheight} + \else +% \setlength\textwidth{.7\paperwidth} +% \setlength\textwidth{.7\paperheight} + \fi + \else +% \end{macrocode} +% 2eモード:デフォルト設定 +% \begin{macrocode} +% \setlength\@tempdima{\paperheight} +% \setlength\@tempdima{\paperwidth} + \addtolength\@tempdima{-2in} +% \addtolength\@tempdima{-1.3in} +% \setlength\@tempdimb{327\p@} +% \setlength\@tempdimb{342\p@} +% \setlength\@tempdimb{372\p@} +% \setlength\@tempdimb{67\Cwd} +% \setlength\@tempdimb{61\Cwd} +% \setlength\@tempdimb{57\Cwd} + \if@twocolumn + \ifdim\@tempdima>2\@tempdimb\relax + \setlength\textwidth{2\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \else + \ifdim\@tempdima>\@tempdimb\relax + \setlength\textwidth{\@tempdimb} + \else + \setlength\textwidth{\@tempdima} + \fi + \fi + \fi +\fi +\@settopoint\textwidth +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textheight} +% 基本組の行数です。 +% +% 互換モードの場合: +% \begin{macrocode} +\if@compatibility +% \end{macrocode} +% \changes{v1.1a}{1997/01/25}{Add paper option with compatibility mode.} +% \changes{v1.1f}{1997/09/03}{landscapeでの指定を追加} +% 互換モード:|a4j|や|b5j|のクラスオプションが指定された場合の設定: +% \begin{macrocode} + \if@stysize + \ifnum\c@@paper=2 % A5 + \if@landscape +%<10pt&yoko> \setlength\textheight{17\Cvs} +%<11pt&yoko> \setlength\textheight{17\Cvs} +%<12pt&yoko> \setlength\textheight{16\Cvs} +%<10pt&tate> \setlength\textheight{26\Cvs} +%<11pt&tate> \setlength\textheight{26\Cvs} +%<12pt&tate> \setlength\textheight{25\Cvs} + \else +%<10pt&yoko> \setlength\textheight{28\Cvs} +%<11pt&yoko> \setlength\textheight{25\Cvs} +%<12pt&yoko> \setlength\textheight{24\Cvs} +%<10pt&tate> \setlength\textheight{16\Cvs} +%<11pt&tate> \setlength\textheight{16\Cvs} +%<12pt&tate> \setlength\textheight{15\Cvs} + \fi + \else\ifnum\c@@paper=3 % B4 + \if@landscape +%<10pt&yoko> \setlength\textheight{38\Cvs} +%<11pt&yoko> \setlength\textheight{36\Cvs} +%<12pt&yoko> \setlength\textheight{34\Cvs} +%<10pt&tate> \setlength\textheight{48\Cvs} +%<11pt&tate> \setlength\textheight{48\Cvs} +%<12pt&tate> \setlength\textheight{45\Cvs} + \else +%<10pt&yoko> \setlength\textheight{57\Cvs} +%<11pt&yoko> \setlength\textheight{55\Cvs} +%<12pt&yoko> \setlength\textheight{52\Cvs} +%<10pt&tate> \setlength\textheight{33\Cvs} +%<11pt&tate> \setlength\textheight{33\Cvs} +%<12pt&tate> \setlength\textheight{31\Cvs} + \fi + \else\ifnum\c@@paper=4 % B5 + \if@landscape +%<10pt&yoko> \setlength\textheight{22\Cvs} +%<11pt&yoko> \setlength\textheight{21\Cvs} +%<12pt&yoko> \setlength\textheight{20\Cvs} +%<10pt&tate> \setlength\textheight{34\Cvs} +%<11pt&tate> \setlength\textheight{34\Cvs} +%<12pt&tate> \setlength\textheight{32\Cvs} + \else +%<10pt&yoko> \setlength\textheight{35\Cvs} +%<11pt&yoko> \setlength\textheight{34\Cvs} +%<12pt&yoko> \setlength\textheight{32\Cvs} +%<10pt&tate> \setlength\textheight{21\Cvs} +%<11pt&tate> \setlength\textheight{21\Cvs} +%<12pt&tate> \setlength\textheight{20\Cvs} + \fi + \else % A4 and other + \if@landscape +%<10pt&yoko> \setlength\textheight{27\Cvs} +%<11pt&yoko> \setlength\textheight{26\Cvs} +%<12pt&yoko> \setlength\textheight{25\Cvs} +%<10pt&tate> \setlength\textheight{41\Cvs} +%<11pt&tate> \setlength\textheight{41\Cvs} +%<12pt&tate> \setlength\textheight{38\Cvs} + \else +%<10pt&yoko> \setlength\textheight{43\Cvs} +%<11pt&yoko> \setlength\textheight{42\Cvs} +%<12pt&yoko> \setlength\textheight{39\Cvs} +%<10pt&tate> \setlength\textheight{26\Cvs} +%<11pt&tate> \setlength\textheight{26\Cvs} +%<12pt&tate> \setlength\textheight{22\Cvs} + \fi + \fi\fi\fi +% \addtolength\textheight{\topskip} +% \addtolength\textheight{\baselineskip} +% \addtolength\textheight{\Cht} +% \addtolength\textheight{\Cdp} +% \end{macrocode} +% 互換モード:デフォルト設定 +% \begin{macrocode} + \else +%<10pt&!bk&yoko> \setlength\textheight{578\p@} +%<10pt&bk&yoko> \setlength\textheight{554\p@} +%<11pt&yoko> \setlength\textheight{580.4\p@} +%<12pt&yoko> \setlength\textheight{586.5\p@} +%<10pt&tate> \setlength\textheight{26\Cvs} +%<11pt&tate> \setlength\textheight{25\Cvs} +%<12pt&tate> \setlength\textheight{24\Cvs} + \fi +% \end{macrocode} +% 2eモードの場合: +% \begin{macrocode} +\else +% \end{macrocode} +% 2eモード:|a4j|や|b5j|のクラスオプションが指定された場合の設定: +% 縦組では用紙サイズの70\%(book)か78\%(ariticle,report)、 +% 横組では70\%(book)か75\%(article,report)を版面の高さに設定します。 +% \begin{macrocode} + \if@stysize +% \setlength\textheight{.75\paperwidth} +% \setlength\textheight{.78\paperwidth} +% \setlength\textheight{.70\paperheight} +% \setlength\textheight{.75\paperheight} +% \end{macrocode} +% 2eモード:デフォルト値 +% \begin{macrocode} + \else +% \setlength\@tempdima{\paperwidth} +% \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-2in} +% \addtolength\@tempdima{-1.5in} + \divide\@tempdima\baselineskip + \@tempcnta\@tempdima + \setlength\textheight{\@tempcnta\baselineskip} + \fi +\fi +% \end{macrocode} +% 最後に、|\textheight|に|\topskip|の値を加えます。 +% \begin{macrocode} +\addtolength\textheight{\topskip} +\@settopoint\textheight +% \end{macrocode} +% \end{macro} +% +% \subsubsection{マージン} +% +% \begin{macro}{\topmargin} +% |\topmargin|は、``印字可能領域''---用紙の上端から1インチ内側---% +% の上端からヘッダ部分の上端までの距離です。 +% +% 2.09互換モードの場合: +% \begin{macrocode} +\if@compatibility +%<*yoko> + \if@stysize + \setlength\topmargin{-.3in} + \else +% \setlength\topmargin{27\p@} +%<10pt&bk> \setlength\topmargin{.75in} +%<11pt&bk> \setlength\topmargin{.73in} +%<12pt&bk> \setlength\topmargin{.73in} + \fi +% +%<*tate> + \if@stysize + \ifnum\c@@paper=2 % A5 + \setlength\topmargin{.8in} + \else % A4, B4, B5 and other + \setlength\topmargin{32mm} + \fi + \else + \setlength\topmargin{32mm} + \fi + \addtolength\topmargin{-1in} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} +% +% \end{macrocode} +% 2eモードの場合: +% \begin{macrocode} +\else + \setlength\topmargin{\paperheight} + \addtolength\topmargin{-\headheight} + \addtolength\topmargin{-\headsep} +% \addtolength\topmargin{-\textwidth} +% \addtolength\topmargin{-\textheight} + \addtolength\topmargin{-\footskip} +% \end{macrocode} +% \changes{v1.1e}{1997/04/08}{横組クラスでの調整量を +% -2.4インチから-2.0インチにした。} +% \changes{v1.1j}{1998/02/03}{互換モード時のa5pのトップマージンを0.7in増加} +% \begin{macrocode} + \if@stysize + \ifnum\c@@paper=2 % A5 + \addtolength\topmargin{-1.3in} + \else + \addtolength\topmargin{-2.0in} + \fi + \else +% \addtolength\topmargin{-2.0in} +% \addtolength\topmargin{-2.8in} + \fi +% \end{macrocode} +% \changes{v1.1d}{1997/02/05}{\cs{tompargin}を半分にするのはアキ領域の計算後} +% \changes{v1.1r}{1999/08/09}{\cs{if@stysize}フラグに限らず半分にする} +% \begin{macrocode} + \addtolength\topmargin{-.5\topmargin} +\fi +\@settopoint\topmargin +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\marginparsep} +% \begin{macro}{\marginparpush} +% |\marginparsep|は、本文と傍注の間にあけるスペースの幅です。 +% 横組では本文の左(右)端と傍注、 +% 縦組では本文の下(上)端と傍注の間になります。 +% |\marginparpush|は、傍注と傍注との間のスペースの幅です。 +% \begin{macrocode} +\if@twocolumn + \setlength\marginparsep{10\p@} +\else +% \setlength\marginparsep{15\p@} +% \setlength\marginparsep{10\p@} +\fi +%\setlength\marginparpush{7\p@} +%<*yoko> +%<10pt>\setlength\marginparpush{5\p@} +%<11pt>\setlength\marginparpush{5\p@} +%<12pt>\setlength\marginparpush{7\p@} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\oddsidemargin} +% \begin{macro}{\evensidemargin} +% \begin{macro}{\marginparwidth} +% まず、互換モードでの長さを示します。 +% +% 互換モード、縦組の場合: +% \begin{macrocode} +\if@compatibility +% \setlength\oddsidemargin{0\p@} +% \setlength\evensidemargin{0\p@} +% \end{macrocode} +% 互換モード、横組、bookクラスの場合: +% \begin{macrocode} +%<*yoko> +%<*bk> +%<10pt> \setlength\oddsidemargin {.5in} +%<11pt> \setlength\oddsidemargin {.25in} +%<12pt> \setlength\oddsidemargin {.25in} +%<10pt> \setlength\evensidemargin {1.5in} +%<11pt> \setlength\evensidemargin {1.25in} +%<12pt> \setlength\evensidemargin {1.25in} +%<10pt> \setlength\marginparwidth {.75in} +%<11pt> \setlength\marginparwidth {1in} +%<12pt> \setlength\marginparwidth {1in} +% +% \end{macrocode} +% 互換モード、横組、reportとarticleクラスの場合: +% \begin{macrocode} +%<*!bk> + \if@twoside +%<10pt> \setlength\oddsidemargin {44\p@} +%<11pt> \setlength\oddsidemargin {36\p@} +%<12pt> \setlength\oddsidemargin {21\p@} +%<10pt> \setlength\evensidemargin {82\p@} +%<11pt> \setlength\evensidemargin {74\p@} +%<12pt> \setlength\evensidemargin {59\p@} +%<10pt> \setlength\marginparwidth {107\p@} +%<11pt> \setlength\marginparwidth {100\p@} +%<12pt> \setlength\marginparwidth {85\p@} + \else +%<10pt> \setlength\oddsidemargin {60\p@} +%<11pt> \setlength\oddsidemargin {54\p@} +%<12pt> \setlength\oddsidemargin {39.5\p@} +%<10pt> \setlength\evensidemargin {60\p@} +%<11pt> \setlength\evensidemargin {54\p@} +%<12pt> \setlength\evensidemargin {39.5\p@} +%<10pt> \setlength\marginparwidth {90\p@} +%<11pt> \setlength\marginparwidth {83\p@} +%<12pt> \setlength\marginparwidth {68\p@} + \fi +% +% \end{macrocode} +% 互換モード、横組、二段組の場合: +% \begin{macrocode} + \if@twocolumn + \setlength\oddsidemargin {30\p@} + \setlength\evensidemargin {30\p@} + \setlength\marginparwidth {48\p@} + \fi +% +% \end{macrocode} +% 縦組、横組にかかわらず、スタイルオプション設定ではゼロです。 +% \changes{v1.0g}{1997/01/25}{\cs{oddsidemargin}, \cs{evensidemagin}: +% 0pt if specified papersize at \cs{documentstyle} option.} +% \begin{macrocode} + \if@stysize + \if@twocolumn\else + \setlength\oddsidemargin{0\p@} + \setlength\evensidemargin{0\p@} + \fi + \fi +% \end{macrocode} +% +% 互換モードでない場合: +% \begin{macrocode} +\else + \setlength\@tempdima{\paperwidth} +% \addtolength\@tempdima{-\textheight} +% \addtolength\@tempdima{-\textwidth} +% \end{macrocode} +% +% |\oddsidemargin|を計算します。 +% \begin{macrocode} + \if@twoside +% \setlength\oddsidemargin{.6\@tempdima} +% \setlength\oddsidemargin{.4\@tempdima} + \else + \setlength\oddsidemargin{.5\@tempdima} + \fi + \addtolength\oddsidemargin{-1in} +% \end{macrocode} +% \changes{v1.1p}{1999/1/6}{\cs{oddsidemargin}のポイントへの変換を後ろに} +% |\evensidemargin|を計算します。 +% \begin{macrocode} + \setlength\evensidemargin{\paperwidth} + \addtolength\evensidemargin{-2in} +% \addtolength\evensidemargin{-\textheight} +% \addtolength\evensidemargin{-\textwidth} + \addtolength\evensidemargin{-\oddsidemargin} + \@settopoint\oddsidemargin % 1999.1.6 + \@settopoint\evensidemargin +% \end{macrocode} +% |\marginparwidth|を計算します。 +% ここで、|\@tempdima|の値は、\linebreak +% |\paperwidth| $-$ |\textwidth|です。 +% \changes{v1.1d}{1995/11/24}{\break typo: \cs{marginmarwidth} to \cs{marginparwidth}} +% \begin{macrocode} +%<*yoko> + \if@twoside + \setlength\marginparwidth{.6\@tempdima} + \addtolength\marginparwidth{-.4in} + \else + \setlength\marginparwidth{.5\@tempdima} + \addtolength\marginparwidth{-.4in} + \fi + \ifdim \marginparwidth >2in + \setlength\marginparwidth{2in} + \fi +% +% \end{macrocode} +% +% 縦組の場合は、少し複雑です。 +% \begin{macrocode} +%<*tate> + \setlength\@tempdima{\paperheight} + \addtolength\@tempdima{-\textwidth} + \addtolength\@tempdima{-\topmargin} + \addtolength\@tempdima{-\headheight} + \addtolength\@tempdima{-\headsep} + \addtolength\@tempdima{-\footskip} + \setlength\marginparwidth{.5\@tempdima} +% + \@settopoint\marginparwidth +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsection{脚注} +% +% \begin{macro}{\footnotesep} +% |\footnotesep|は、それぞれの脚注の先頭に置かれる``支柱''の高さです。 +% このクラスでは、通常の|\footnotesize|の支柱と同じ長さですので、 +% 脚注間に余計な空白は入りません。 +% \begin{macrocode} +%<10pt>\setlength\footnotesep{6.65\p@} +%<11pt>\setlength\footnotesep{7.7\p@} +%<12pt>\setlength\footnotesep{8.4\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\footins} +% |\skip\footins|は、本文の最終行と最初の脚注との間の距離です。 +% \begin{macrocode} +%<10pt>\setlength{\skip\footins}{9\p@ \@plus 4\p@ \@minus 2\p@} +%<11pt>\setlength{\skip\footins}{10\p@ \@plus 4\p@ \@minus 2\p@} +%<12pt>\setlength{\skip\footins}{10.8\p@ \@plus 4\p@ \@minus 2\p@} +% \end{macrocode} +% \end{macro} +% +% \subsection{フロート} +% すべてのフロートパラメータは、\LaTeX{}のカーネルでデフォルトが定義 +% されています。そのため、カウンタ以外のパラメータは|\renewcommand|で +% 設定する必要があります。 +% +% \subsubsection{フロートパラメータ} +% +% \begin{macro}{\floatsep} +% \begin{macro}{\textfloatsep} +% \begin{macro}{\intextsep} +% フロートオブジェクトが本文のあるページに置かれるとき、 +% フロートとそのページにある別のオブジェクトの距離は、 +% これらのパラメータで制御されます。これらのパラメータは、一段組モードと +% 二段組モードの段抜きでないフロートの両方で使われます。 +% +% |\floatsep|は、ページ上部あるいは下部のフロート間の距離です。 +% +% |\textfloatsep|は、ページ上部あるいは下部のフロートと本文との距離です。 +% +% |\intextsep|は、本文の途中に出力されるフロートと本文との距離です。 +% \begin{macrocode} +%<*10pt> +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +% +%<*11pt> +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {12\p@ \@plus 2\p@ \@minus 2\p@} +% +%<*12pt> +\setlength\floatsep {12\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\textfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\intextsep {14\p@ \@plus 4\p@ \@minus 4\p@} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\dblfloatsep} +% \begin{macro}{\dbltextfloatsep} +% 二段組モードで、|\textwidth|の幅を持つ、段抜きのフロートオブジェクトが +% 本文と同じページに置かれるとき、本文とフロートとの距離は、 +% |\dblfloatsep|と|\dbltextfloatsep|によって制御されます。 +% +% |\dblfloatsep|は、ページ上部あるいは下部のフロートと本文との距離です。 +% +% |\dbltextfloatsep|は、ページ上部あるいは下部のフロート間の距離です。 +% \begin{macrocode} +%<*10pt> +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +% +%<*11pt> +\setlength\dblfloatsep {12\p@ \@plus 2\p@ \@minus 2\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +% +%<*12pt> +\setlength\dblfloatsep {14\p@ \@plus 2\p@ \@minus 4\p@} +\setlength\dbltextfloatsep{20\p@ \@plus 2\p@ \@minus 4\p@} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@fptop} +% \begin{macro}{\@fpsep} +% \begin{macro}{\@fpbot} +% フロートオブジェクトが、独立したページに置かれるとき、 +% このページのレイアウトは、次のパラメータで制御されます。 +% これらのパラメータは、一段組モードか、二段組モードでの一段出力の +% フロートオブジェクトに対して使われます。 +% +% ページ上部では、|\@fptop|の伸縮長が挿入されます。 +% ページ下部では、|\@fpbot|の伸縮長が挿入されます。 +% フロート間には|\@fpsep|が挿入されます。 +% +% なお、そのページを空白で満たすために、|\@fptop|と|\@fpbot|の +% 少なくともどちらか一方に、|plus ...fil|を含めてください。 +% \begin{macrocode} +%<*10pt> +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{8\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +% +%<*11pt> +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{8\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +% +%<*12pt> +\setlength\@fptop{0\p@ \@plus 1fil} +\setlength\@fpsep{10\p@ \@plus 2fil} +\setlength\@fpbot{0\p@ \@plus 1fil} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@dblfptop} +% \begin{macro}{\@dblfpsep} +% \begin{macro}{\@dblfpbot} +% 二段組モードでの二段抜きのフロートに対しては、 +% これらのパラメータが使われます。 +% \begin{macrocode} +%<*10pt> +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{8\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +% +%<*11pt> +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{8\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +% +%<*12pt> +\setlength\@dblfptop{0\p@ \@plus 1fil} +\setlength\@dblfpsep{10\p@ \@plus 2fil} +\setlength\@dblfpbot{0\p@ \@plus 1fil} +% +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection{フロートオブジェクトの上限値} +% +% \begin{macro}{\c@topnumber} +% \Lcount{topnumber}は、本文ページの上部に出力できるフロートの最大数です。 +% \begin{macrocode} +%<*article|report|book> +\setcounter{topnumber}{2} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@bottomnumber} +% \Lcount{bottomnumber}は、本文ページの下部に出力できるフロートの最大数です。 +% \begin{macrocode} +\setcounter{bottomnumber}{1} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@totalnumber} +% \Lcount{totalnumber}は、本文ページに出力できるフロートの最大数です。 +% \begin{macrocode} +\setcounter{totalnumber}{3} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@dbltopnumber} +% \Lcount{dbltopnumber}は、二段組時における、本文ページの上部に出力できる +% 段抜きのフロートの最大数です。 +% \begin{macrocode} +\setcounter{dbltopnumber}{2} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\topfraction} +% これは、本文ページの上部に出力されるフロートが占有できる最大の割り合いです。 +% \begin{macrocode} +\renewcommand{\topfraction}{.7} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\bottomfraction} +% これは、本文ページの下部に出力されるフロートが占有できる最大の割り合いです。 +% \begin{macrocode} +\renewcommand{\bottomfraction}{.3} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\textfraction} +% これは、本文ページに最低限、入らなくてはならない本文の割り合いです。 +% \begin{macrocode} +\renewcommand{\textfraction}{.2} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\floatpagefraction} +% これは、フロートだけのページで最低限、入らなくてはならない +% フロートの割り合いです。 +% \begin{macrocode} +\renewcommand{\floatpagefraction}{.5} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\dbltopfraction} +% これは、2段組時における本文ページに、 +% 2段抜きのフロートが占めることができる最大の割り合いです。 +% \begin{macrocode} +\renewcommand{\dbltopfraction}{.7} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\dblfloatpagefraction} +% これは、2段組時におけるフロートだけのページに最低限、 +% 入らなくてはならない2段抜きのフロートの割り合いです。 +% \begin{macrocode} +\renewcommand{\dblfloatpagefraction}{.5} +% \end{macrocode} +% \end{macro} +% +% +% \section{改ページ(日本語\TeX{}開発コミュニティ版のみ)}\label{sec:cleardoublepage} +% +% \begin{macro}{\pltx@cleartorightpage} +% \begin{macro}{\pltx@cleartoleftpage} +% \begin{macro}{\pltx@cleartooddpage} +% \begin{macro}{\pltx@cleartoevenpage} +% |\cleardoublepage|命令は、\LaTeX{}カーネルでは「奇数ページになるまでページを +% 繰る命令」として定義されています。しかしp\LaTeX{}カーネルでは、アスキーの方針 +% により「横組では奇数ページになるまで、縦組では偶数ページになるまでページを +% 繰る命令」に再定義されています。すなわち、p\LaTeX{}では縦組でも横組でも +% 右ページになるまでページを繰ることになります。 +% +% p\LaTeX{}標準クラスのbookは、横組も縦組も|openright|がデフォルトになっていて、 +% これは従来p\LaTeX{}カーネルで定義された|\cleardoublepage|を利用していました。 +% しかし、縦組で奇数ページ始まりの文書を作りたい場合もあるでしょうから、 +% コミュニティ版クラスでは以下の(非ユーザ向け)命令を追加します。 +% \begin{enumerate} +% \item|\pltx@cleartorightpage|:右ページになるまでページを繰る命令 +% \item|\pltx@cleartoleftpage|:左ページになるまでページを繰る命令 +% \item|\pltx@cleartooddpage|:奇数ページになるまでページを繰る命令 +% \item|\pltx@cleartoevenpage|:偶数ページになるまでページを繰る命令 +% \end{enumerate} +% \changes{v1.7d}{2017/02/15}{\cs{cleardoublepage}の代用となる命令群を追加} +% \begin{macrocode} +\def\pltx@cleartorightpage{\clearpage\if@twoside + \ifodd\c@page + \iftdir + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi + \else + \ifydir + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi + \fi\fi} +\def\pltx@cleartoleftpage{\clearpage\if@twoside + \ifodd\c@page + \ifydir + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi + \else + \iftdir + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi + \fi\fi} +% \end{macrocode} +% +% |\pltx@cleartooddpage|は\LaTeX{}の|\cleardoublepage|に似ていますが、 +% 上の2つに合わせるため|\thispagestyle{empty}|を追加してあります。 +% \begin{macrocode} +\def\pltx@cleartooddpage{\clearpage\if@twoside + \ifodd\c@page\else + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi\fi} +\def\pltx@cleartoevenpage{\clearpage\if@twoside + \ifodd\c@page + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\cleardoublepage} +% そしてreportとbookクラスの場合は、ユーザ向け命令である|\cleardoublepage|を、 +% |openright|オプションが指定されている場合は|\pltx@cleartorightpage|に、 +% |openleft|オプションが指定されている場合は|\pltx@cleartoleftpage|に、 +% それぞれ|\let|します。|openany|の場合はp\LaTeX{}カーネルの定義のままです。 +% \begin{macrocode} +%<*!article> +\if@openleft + \let\cleardoublepage\pltx@cleartoleftpage +\else\if@openright + \let\cleardoublepage\pltx@cleartorightpage +\fi\fi +% +% \end{macrocode} +% \end{macro} +% +% +% +% \section{ページスタイル}\label{sec:pagestyle} +% p\LaTeXe{}では、つぎの6種類のページスタイルを使用できます。 +% \pstyle{empty}は\file{ltpage.dtx}で定義されています。 +% +% \begin{tabular}{ll} +% empty & ヘッダにもフッタにも出力しない\\ +% plain & フッタにページ番号のみを出力する\\ +% headnombre & ヘッダにページ番号のみを出力する\\ +% footnombre & フッタにページ番号のみを出力する\\ +% headings & ヘッダに見出しとページ番号を出力する\\ +% bothstyle & ヘッダに見出し、フッタにページ番号を出力する\\ +% \end{tabular} +% +% ページスタイル\pstyle{foo}は、|\ps@foo|コマンドとして定義されます。 +% +% \begin{macro}{\@evenhead} +% \begin{macro}{\@oddhead} +% \begin{macro}{\@evenfoot} +% \begin{macro}{\@oddfoot} +% これらは|\ps@...|から呼び出され、ヘッダとフッタを出力するマクロです。 +% +% \DeleteShortVerb{\|} +% \begin{tabular}{ll} +% \cs{@oddhead} & 奇数ページのヘッダを出力\\ +% \cs{@oddfoot} & 奇数ページのフッタを出力\\ +% \cs{@evenhead} & 偶数ページのヘッダを出力\\ +% \cs{@evenfoot} & 偶数ページのフッタを出力\\ +% \end{tabular} +% \MakeShortVerb{\|} +% +% これらの内容は、横組の場合は|\textwidth|の幅を持つ|\hbox|に入れられ、 +% 縦組の場合は|\textheight|の幅を持つ|\hbox|に入れられます。 +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{マークについて} +% ヘッダに入る章番号や章見出しは、見出しコマンドで実行されるマークコマンドで +% 決定されます。ここでは、実行されるマークコマンドの定義を行なっています。 +% これらのマークコマンドは、\TeX{}の|\mark|機能を用いて、 +% `left'と`right'の2種類のマークを生成するように定義しています。 +% +% \begin{flushleft} +% |\markboth{|\meta{LEFT}|}{|\meta{RIGHT}|}|: 両方のマークに追加します。 +% +% |\markright{|\meta{RIGHT}|}|: `右'マークに追加します。 +% +% |\leftmark|: |\@oddhead|, |\@oddfoot|, |\@evenhead|, |\@evenfoot|マクロで +% 使われ、現在の``左''マークを出力します。 +% |\leftmark|は\TeX{}の|\botmark|コマンドのような働きをします。 +% 初期値は空でなくてはいけません。 +% +% |\rightmark|: |\@oddhead|, |\@oddfoot|, |\@evenhead|, |\@evenfoot|マクロで +% 使われ、現在の``右''マークを出力します。 +% |\rightmark|は\TeX{}の|\firstmark|コマンドのような働きをします。 +% 初期値は空でなくてはいけません。 +% \end{flushleft} +% +% マークコマンドの動作は、左マークの`範囲内の'右マークのために +% 合理的になっています。たとえば、左マークは|\chapter|コマンドによって +% 変更されます。そして右マークは|\section|コマンドによって変更されます。 +% しかし、同一ページに複数の|\markboth|コマンドが現れたとき、 +% おかしな結果となることがあります。 +% +% |\tableofcontents|のようなコマンドは、|\@mkboth|コマンドを用いて、 +% あるページスタイルの中でマークを設定しなくてはなりません。 +% |\@mkboth|は、|\ps@...|コマンドによって、|\markboth|(ヘッダを設定する)か、 +% |\@gobbletwo|(何もしない)に|\let|されます。 +% +% \changes{v1.0a}{1995/08/30}{柱の書体がノンブルに影響するバグの修正} +% +% \subsection{plainページスタイル} +% +% \begin{macro}{\ps@plain} +% \pstyle{jpl@in}に|\let|するために、ここで定義をします。 +% \begin{macrocode} +\def\ps@plain{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@plain + \let\@oddhead\@empty + \def\@oddfoot{\reset@font\hfil\thepage\hfil}% + \let\@evenhead\@empty + \let\@evenfoot\@oddfoot} +% \end{macrocode} +% \end{macro} +% +% \subsection{jpl@inページスタイル} +% +% \begin{macro}{\ps@jpl@in} +% \changes{v1.0d}{1996/02/29}{\pstyle{jpl@in}の初期値を定義} +% +% \pstyle{jpl@in}スタイルは、クラスファイル内部で使用するものです。 +% \LaTeX{}では、bookクラスを\pstyle{headings}としています。 +% しかし、\cs{tableofcontents}コマンドの内部では\pstyle{plain}として +% 設定されるため、一つの文書でのページ番号の位置が上下に出力される +% ことになります。 +% +% そこで、p\LaTeXe{}では、\cs{tableofcontents}や\cs{theindex}のページスタイル +% を\pstyle{jpl@in}にし、実際に出力される形式は、ほかのページスタイル +% で|\let|をしています。したがって、\pstyle{headings}のとき、目次ページの +% ページ番号はヘッダ位置に出力され、\pstyle{plain}のときには、フッタ位置に +% 出力されます。 +% +% ここで、定義をしているのは、その初期値です。 +% \begin{macrocode} +\let\ps@jpl@in\ps@plain +% \end{macrocode} +% \end{macro} +% +% \subsection{headnombreページスタイル} +% +% \begin{macro}{\ps@headnombre} +% \pstyle{headnombre}スタイルは、ヘッダにページ番号のみを出力します。 +% \begin{macrocode} +\def\ps@headnombre{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@headnombre +% \def\@evenhead{\thepage\hfil}% +% \def\@oddhead{\hfil\thepage}% +% \def\@evenhead{\hfil\thepage}% +% \def\@oddhead{\thepage\hfil}% + \let\@oddfoot\@empty\let\@evenfoot\@empty} +% \end{macrocode} +% \end{macro} +% +% \subsection{footnombreページスタイル} +% +% \begin{macro}{\ps@footnombre} +% \pstyle{footnombre}スタイルは、フッタにページ番号のみを出力します。 +% \begin{macrocode} +\def\ps@footnombre{\let\@mkboth\@gobbletwo + \let\ps@jpl@in\ps@footnombre +% \def\@evenfoot{\thepage\hfil}% +% \def\@oddfoot{\hfil\thepage}% +% \def\@evenfoot{\hfil\thepage}% +% \def\@oddfoot{\thepage\hfil}% + \let\@oddhead\@empty\let\@evenhead\@empty} +% \end{macrocode} +% \end{macro} +% +% \subsection{headingsスタイル} +% \pstyle{headings}スタイルは、ヘッダに見出しとページ番号を出力します。 +% +% \begin{macro}{\ps@headings} +% このスタイルは、両面印刷と片面印刷とで形式が異なります。 +% \begin{macrocode} +\if@twoside +% \end{macrocode} +% 横組の場合は、奇数ページが右に、偶数ページが左にきます。 +% 縦組の場合は、奇数ページが左に、偶数ページが右にきます。 +% \begin{macrocode} + \def\ps@headings{\let\ps@jpl@in\ps@headnombre + \let\@oddfoot\@empty\let\@evenfoot\@empty +% \def\@evenhead{\thepage\hfil\leftmark}% +% \def\@oddhead{{\rightmark}\hfil\thepage}% +% \def\@evenhead{{\leftmark}\hfil\thepage}% +% \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\markboth +%<*article> + \def\sectionmark##1{\markboth{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1zw\fi + ##1}{}}% + \def\subsectionmark##1{\markright{% + \ifnum \c@secnumdepth >\@ne \thesubsection.\hskip1zw\fi + ##1}}% +%
+%<*report|book> + \def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne +% \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1zw +% \fi + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1zw\fi + ##1}}% +% + } +% \end{macrocode} +% 片面印刷の場合: +% \changes{v1.1g}{1997/08/25}{片面印刷のとき、sectionレベルが出力されない +% のを修正} +% \begin{macrocode} +\else % if not twoside + \def\ps@headings{\let\ps@jpl@in\ps@headnombre + \let\@oddfoot\@empty +% \def\@oddhead{{\rightmark}\hfil\thepage}% +% \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\markboth +%<*article> + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne \thesection.\hskip1zw\fi + ##1}}% +%
+%<*report|book> +\def\chaptermark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne +% \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1zw +% \fi + \fi + ##1}}% +% + } +\fi +% \end{macrocode} +% \end{macro} +% +% \subsection{bothstyleスタイル} +% +% \begin{macro}{\ps@bothstyle} +% \pstyle{bothstyle}スタイルは、 +% ヘッダに見出しを、フッタにページ番号を出力します。 +% +% このスタイルは、両面印刷と片面印刷とで形式が異なります。 +% \changes{v1.0d}{1995/08/23}{横組のevenfootが中央揃えになっていたのを修正} +% \changes{v1.0d}{1996/03/05}{横組で偶数ページと奇数ページの設定が逆なのを修正} +% \begin{macrocode} +\if@twoside + \def\ps@bothstyle{\let\ps@jpl@in\ps@footnombre +%<*yoko> + \def\@evenhead{\leftmark\hfil}% right page + \def\@evenfoot{\thepage\hfil}% right page + \def\@oddhead{\hfil\rightmark}% left page + \def\@oddfoot{\hfil\thepage}% left page +% +%<*tate> + \def\@evenhead{\hfil\leftmark}% right page + \def\@evenfoot{\hfil\thepage}% right page + \def\@oddhead{\rightmark\hfil}% left page + \def\@oddfoot{\thepage\hfil}% left page +% + \let\@mkboth\markboth +%<*article> + \def\sectionmark##1{\markboth{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1zw\fi + ##1}{}}% + \def\subsectionmark##1{\markright{% + \ifnum \c@secnumdepth >\@ne \thesubsection.\hskip1zw\fi + ##1}}% +% +%<*report|book> +\def\chaptermark##1{\markboth{% + \ifnum \c@secnumdepth >\m@ne +% \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1zw +% \fi + \fi + ##1}{}}% + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\z@ \thesection.\hskip1zw\fi + ##1}}% +% + } +% \end{macrocode} +% \changes{v1.1g}{1997/08/25}{片面印刷のとき、sectionレベルが出力されない +% のを修正} +% \changes{v1.1i}{1997/12/12}{report, bookクラスで片面印刷時に、 +% bothstyleスタイルにすると、コンパイルエラーになるのを修正} +% \begin{macrocode} +\else % if one column + \def\ps@bothstyle{\let\ps@jpl@in\ps@footnombre +% \def\@oddhead{\hfil\rightmark}% +% \def\@oddfoot{\hfil\thepage}% +% \def\@oddhead{\rightmark\hfil}% +% \def\@oddfoot{\thepage\hfil}% + \let\@mkboth\markboth +%<*article> + \def\sectionmark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne \thesection.\hskip1zw\fi + ##1}}% +% +%<*report|book> + \def\chaptermark##1{\markright{% + \ifnum \c@secnumdepth >\m@ne +% \if@mainmatter + \@chapapp\thechapter\@chappos\hskip1zw +% \fi + \fi + ##1}}% +% + } +\fi +% \end{macrocode} +% \end{macro} +% +% \subsection{myheadingスタイル} +% +% \begin{macro}{\ps@myheadings} +% \changes{v1.0d}{1995/08/23}{横組モードの左右が逆であったのを修正} +% \pstyle{myheadings}ページスタイルは簡潔に定義されています。 +% ユーザがページスタイルを設計するときのヒナ型として使用することができます。 +% \begin{macrocode} +\def\ps@myheadings{\let\ps@jpl@in\ps@plain% + \let\@oddfoot\@empty\let\@evenfoot\@empty +% \def\@evenhead{\thepage\hfil\leftmark}% +% \def\@oddhead{{\rightmark}\hfil\thepage}% +% \def\@evenhead{{\leftmark}\hfil\thepage}% +% \def\@oddhead{\thepage\hfil\rightmark}% + \let\@mkboth\@gobbletwo +% \let\chaptermark\@gobble + \let\sectionmark\@gobble +%
\let\subsectionmark\@gobble +} +% \end{macrocode} +% \end{macro} +% +% +% \section{文書コマンド} +% +% \subsection{表題} +% +% \begin{macro}{\title} +% \begin{macro}{\author} +% \begin{macro}{\date} +% 文書のタイトル、著者、日付の情報のための、 +% これらの3つのコマンドは\file{ltsect.dtx}で提供されています。 +% これらのコマンドは次のように定義されています。 +% \begin{macrocode} +%\newcommand*{\title}[1]{\gdef\@title{#1}} +%\newcommand*{\author}[1]{\gdef\@author{#1}} +%\newcommand*{\date}[1]{\gdef\@date{#1}} +% \end{macrocode} +% |\date|マクロのデフォルトは、今日の日付です。 +% \begin{macrocode} +%\date{\today} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{titlepage} +% 通常の環境では、ページの最初と最後を除き、タイトルページ環境は何もしません。 +% また、ページ番号の出力を抑制します。レポートスタイルでは、 +% ページ番号を1にリセットし、そして最後で1に戻します。 +% 互換モードでは、ページ番号はゼロに設定されますが、 +% 右起こしページ用のページパラメータでは誤った結果になります。 +% 二段組スタイルでも一段組のページが作られます。 +% +% \noindent\emph{日本語\TeX{}開発コミュニティによる変更}: +% 上にあるのはアスキー版の説明です。改めてアスキー版の挙動を整理すると、 +% 以下のようになります。 +% \begin{enumerate} +% \item アスキー版では、タイトルページの番号を必ず1にリセットしていましたが、 +% これは正しくありません。これは、タイトルページが奇数ページ目か偶数ページ目 +% かにかかわらず、レイアウトだけ奇数ページ用が適用されてしまうからです。 +% さらに、タイトルの次のページも偶数のページ番号を持ってしまうため、両面印刷 +% で奇数ページと偶数ページが交互に出なくなるという問題もあります。 +% \item アスキー版bookクラスは、タイトルページを必ず|\cleardoublepage|で始めて +% いました。p\LaTeX{}カーネルでの|\cleardoublepage|の定義から、縦組の既定では +% タイトルが偶数ページ目に出ることになります。これ自体が正しくないと断定する +% ことはできませんが、タイトルのページ番号を1にリセットすることと合わさって、 +% 偶数ページに送ったタイトルに奇数ページ用レイアウトが適用されてしまうという +% 結果は正しくありません。 +% \end{enumerate} +% そこで、コミュニティ版ではタイトルのレイアウトが必ず奇数ページ用になるという +% 挙動を支持し、bookクラスではタイトルページを奇数ページ目に送ることにしました。 +% これでタイトルページが表紙らしく見えるようになります。また、reportクラスの +% ようなタイトルが成り行きに従って出る場合には +% \begin{itemize} +% \item 奇数ページ目に出る場合、ページ番号を1(奇数)にリセット +% \item 偶数ページ目に出る場合、ページ番号を0(偶数)にリセット +% \end{itemize} +% としました。 +% +% 一つめの例を考えます。 +%\begin{verbatim} +% \documentclass{tbook} +% \title{タイトル}\author{著者} +% \begin{document} +% \maketitle +% \chapter{チャプター} +% \end{document} +%\end{verbatim} +% アスキー版tbookクラスでの結果は +%\begin{verbatim} +% 1ページ目:空白(ページ番号1は非表示) +% 2ページ目:タイトル(奇数レイアウト、ページ番号1は非表示) +% 3ページ目:チャプター(偶数レイアウト、ページ番号2) +%\end{verbatim} +% ですが、仮に最初の空白ページさえなければ +%\begin{verbatim} +% 1ページ目:タイトルすなわち表紙(奇数レイアウト、ページ番号1は非表示) +% 2ページ目:チャプター(偶数レイアウト、ページ番号2) +%\end{verbatim} +% とみなせるため、コミュニティ版では空白ページを発生させないようにしました。 +% +% 二つめの例を考えます。 +%\begin{verbatim} +% \documentclass{tbook} +% \title{タイトル}\author{著者} +% \begin{document} +% テスト文章 +% \maketitle +% \chapter{チャプター} +% \end{document} +%\end{verbatim} +% アスキー版tbookクラスでの結果は +%\begin{verbatim} +% 1ページ目:テスト文章(奇数レイアウト、ページ番号1) +% 2ページ目:タイトル(奇数レイアウト、ページ番号1は非表示) +% 3ページ目:チャプター(偶数レイアウト、ページ番号2) +%\end{verbatim} +% ですが、これでは奇数と偶数のページ番号が交互になっていないので正しく +% ありません。そこで、コミュニティ版では +%\begin{verbatim} +% 1ページ目:テスト文章(奇数レイアウト、ページ番号1) +% 2ページ目:空白ページ(ページ番号2は非表示) +% 3ページ目:タイトル(奇数レイアウト、ページ番号1は非表示) +% 4ページ目:チャプター(偶数レイアウト、ページ番号2) +%\end{verbatim} +% と直しました。 +% +% なお、p\LaTeX~2.09互換モードはアスキー版のまま、すなわち「ページ番号をゼロに +% 設定」としてあります。これは、横組の右起こしの挙動としては誤りですが、縦組の +% 右起こしの挙動としては一応正しくなっているといえます。 +% +% 最初に互換モードの定義を作ります。 +% \begin{macrocode} +\if@compatibility +\newenvironment{titlepage} + {% +% \cleardoublepage + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\newpage\fi + \thispagestyle{empty}% + \setcounter{page}\z@ + }% + {\if@restonecol\twocolumn\else\newpage\fi + } +% \end{macrocode} +% +% そして、\LaTeX{}ネイティブのための定義です。 +% \changes{v1.7d}{2017/02/15}{bookクラスでtitlepageを必ず奇数ページ +% に送るように変更} +% \changes{v1.7d}{2017/02/15}{titlepageのページ番号を奇数ならば1に、 +% 偶数ならば0にリセットするように変更} +% \begin{macrocode} +\else +\newenvironment{titlepage} + {% +% \pltx@cleartooddpage %% 2017/02/15 + \if@twocolumn + \@restonecoltrue\onecolumn + \else + \@restonecolfalse\newpage + \fi + \thispagestyle{empty}% + \ifodd\c@page\setcounter{page}\@ne\else\setcounter{page}\z@\fi %% 2017/02/15 + }% + {\if@restonecol\twocolumn \else \newpage \fi +% \end{macrocode} +% 両面モードでなければ、タイトルページの直後のページのページ番号も1に +% します。 +% \begin{macrocode} + \if@twoside\else + \setcounter{page}\@ne + \fi + } +\fi +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\maketitle} +% このコマンドは、表題を作成し、出力します。 +% 表題ページを独立させるかどうかによって定義が異なります。 +% reportとbookクラスのデフォルトは独立した表題です。 +% articleクラスはオプションで独立させることができます。 +% +% \begin{macro}{\p@thanks} +% 縦組のときは、|\thanks|コマンドを|\p@thanks|に|\let|します。 +% このコマンドは|\footnotetext|を使わず、直接、文字を|\@thanks|に格納 +% していきます。 +% +% 著者名の脇に表示される合印は直立した数字、注釈側は横に寝た数字となっていまし +% たが、不自然なので|\hbox{\yoko ...}|を追加し、両方とも直立するようにしました。 +% \changes{v1.7d}{2017/02/15}{縦組クラスの所属表示の番号を直立にした} +% \begin{macrocode} +\def\p@thanks#1{\footnotemark + \protected@xdef\@thanks{\@thanks + \protect{\noindent\hbox{\yoko$\m@th^\thefootnote$}#1\protect\par}}} +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +\if@titlepage + \newcommand{\maketitle}{\begin{titlepage}% + \let\footnotesize\small + \let\footnoterule\relax +% \let\thanks\p@thanks + \let\footnote\thanks +% \end{macrocode} +% \changes{v1.1d}{1997/02/12}{縦組クラスの表紙を縦書きにするようにした} +% \begin{macrocode} +% \vbox to\textheight\bgroup\tate\hsize\textwidth + \null\vfil + \vskip 60\p@ + \begin{center}% + {\LARGE \@title \par}% + \vskip 3em% + {\Large + \lineskip .75em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1.5em% + {\large \@date \par}% % Set date in \large size. + \end{center}\par +% \vfil{\centering\@thanks}\vfil\null +% \egroup +% \@thanks\vfil\null + \end{titlepage}% +% \end{macrocode} +% \Lcount{footnote}カウンタをリセットし、|\thanks|と|\maketitle|コマンドを +% 無効にし、いくつかの内部マクロを空にして格納領域を節約します。 +% \begin{macrocode} + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\p@thanks\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty +% \end{macrocode} +% タイトルが組版されたら、|\title|コマンドなどの宣言を無効にできます。 +% |\and|の定義は、|\author|の引数でのみ使用しますので、破棄します。 +% \begin{macrocode} + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + }% +\else + \newcommand{\maketitle}{\par + \begingroup + \renewcommand{\thefootnote}{\fnsymbol{footnote}}% + \def\@makefnmark{\hbox{\ifydir $\m@th^{\@thefnmark}$ + \else\hbox{\yoko$\m@th^{\@thefnmark}$}\fi}}% +%<*tate> + \long\def\@makefntext##1{\parindent 1zw\noindent + \hb@xt@ 2zw{\hss\@makefnmark}##1}% +% +%<*yoko> + \long\def\@makefntext##1{\parindent 1em\noindent + \hb@xt@1.8em{\hss$\m@th^{\@thefnmark}$}##1}% +% + \if@twocolumn + \ifnum \col@number=\@ne \@maketitle + \else \twocolumn[\@maketitle]% + \fi + \else + \newpage + \global\@topnum\z@ % Prevents figures from going at top of page. + \@maketitle + \fi + \thispagestyle{jpl@in}\@thanks +% \end{macrocode} +% ここでグループを閉じ、\Lcount{footnote}カウンタをリセットし、 +% |\thanks|, |\maketitle|, |\@maketitle|を無効にし、 +% いくつかの内部マクロを空にして格納領域を節約します。 +% \changes{v1.7}{2016/11/12}{ドキュメントに反して\cs{@maketitle}が +% 空になっていなかったのを修正} +% \begin{macrocode} + \endgroup + \setcounter{footnote}{0}% + \global\let\thanks\relax + \global\let\maketitle\relax + \global\let\@maketitle\relax + \global\let\p@thanks\relax + \global\let\@thanks\@empty + \global\let\@author\@empty + \global\let\@date\@empty + \global\let\@title\@empty + \global\let\title\relax + \global\let\author\relax + \global\let\date\relax + \global\let\and\relax + } +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@maketitle} +% 独立した表題ページを作らない場合の、表題の出力形式です。 +% \begin{macrocode} + \def\@maketitle{% + \newpage\null + \vskip 2em% + \begin{center}% +% \let\footnote\thanks +% \let\footnote\p@thanks + {\LARGE \@title \par}% + \vskip 1.5em% + {\large + \lineskip .5em% + \begin{tabular}[t]{c}% + \@author + \end{tabular}\par}% + \vskip 1em% + {\large \@date}% + \end{center}% + \par\vskip 1.5em} +\fi +% \end{macrocode} +% \end{macro} +% +% \subsection{概要} +% +% \begin{environment}{abstract} +% 要約文のための環境です。bookクラスでは使えません。 +% reportスタイルと、|titlepage|オプションを指定したarticleスタイルでは、 +% 独立したページに出力されます。 +% \begin{macrocode} +%<*article|report> +\if@titlepage + \newenvironment{abstract}{% + \titlepage + \null\vfil + \@beginparpenalty\@lowpenalty + \begin{center}% + {\bfseries\abstractname}% + \@endparpenalty\@M + \end{center}}% + {\par\vfil\null\endtitlepage} +\else + \newenvironment{abstract}{% + \if@twocolumn + \section*{\abstractname}% + \else + \small + \begin{center}% + {\bfseries\abstractname\vspace{-.5em}\vspace{\z@}}% + \end{center}% + \quotation + \fi}{\if@twocolumn\else\endquotation\fi} +\fi +% +% \end{macrocode} +% \end{environment} +% +% +% \subsection{章見出し} +% +% \subsubsection{マークコマンド} +% +% \begin{macro}{\chaptermark} +% \begin{macro}{\sectionmark} +% \begin{macro}{\subsectionmark} +% \begin{macro}{\subsubsectionmark} +% \begin{macro}{\paragraphmark} +% \begin{macro}{\subparagraphmark} +% |\...mark|コマンドを初期化します。これらのコマンドはページスタイルの +% 定義で使われます(第\ref{sec:pagestyle}節参照)。 +% これらのたいていのコマンドは\file{ltsect.dtx}ですでに定義されています。 +% \begin{macrocode} +%\newcommand*{\chaptermark}[1]{} +%\newcommand*{\sectionmark}[1]{} +%\newcommand*{\subsectionmark}[1]{} +%\newcommand*{\subsubsectionmark}[1]{} +%\newcommand*{\paragraphmark}[1]{} +%\newcommand*{\subparagraphmark}[1]{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection{カウンタの定義} +% +% \begin{macro}{\c@secnumdepth} +% \Lcount{secnumdepth}には、番号を付ける、見出しコマンドのレベルを設定します。 +% \begin{macrocode} +%
\setcounter{secnumdepth}{3} +%\setcounter{secnumdepth}{2} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@chapter} +% \begin{macro}{\c@section} +% \begin{macro}{\c@subsection} +% \begin{macro}{\c@subsubsection} +% \begin{macro}{\c@paragraph} +% \begin{macro}{\c@subparagraph} +% これらのカウンタは見出し番号に使われます。 +% 最初の引数は、二番目の引数が増加するたびにリセットされます。 +% 二番目のカウンタはすでに定義されているものでなくてはいけません。 +% \begin{macrocode} +\newcounter{part} +%<*book|report> +\newcounter{chapter} +\newcounter{section}[chapter] +% +%
\newcounter{section} +\newcounter{subsection}[section] +\newcounter{subsubsection}[subsection] +\newcounter{paragraph}[subsubsection] +\newcounter{subparagraph}[paragraph] +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\thepart} +% \begin{macro}{\thechapter} +% \begin{macro}{\thesection} +% \begin{macro}{\thesubsection} +% \begin{macro}{\thesubsubsection} +% \begin{macro}{\theparagraph} +% \begin{macro}{\thesubparagraph} +% |\theCTR|が実際に出力される形式の定義です。 +% +% |\arabic{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を +% 算用数字で出力します。 +% +% |\roman{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を +% 小文字のローマ数字で出力します。 +% +% |\Roman{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を +% 大文字のローマ数字で出力します。 +% +% |\alph{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を +% $1=$~a, $2=$~b のようにして出力します。 +% +% |\Alph{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を +% $1=$~A, $2=$~B のようにして出力します。 +% +% |\Kanji{|\Lcount{COUNTER}|}|は、\Lcount{COUNTER}の値を +% 漢数字で出力します。 +% +% |\rensuji{|\meta{obj}|}|は、\meta{obj}を横に並べて出力します。 +% したがって、横組のときには、何も影響しません。 +% +% \begin{macrocode} +%<*tate> +\renewcommand{\thepart}{\rensuji{\@Roman\c@part}} +%
\renewcommand{\thesection}{\rensuji{\@arabic\c@section}} +%<*report|book> +\renewcommand{\thechapter}{\rensuji{\@arabic\c@chapter}} +\renewcommand{\thesection}{\thechapter・\rensuji{\@arabic\c@section}} +% +\renewcommand{\thesubsection}{\thesection・\rensuji{\@arabic\c@subsection}} +\renewcommand{\thesubsubsection}{% + \thesubsection・\rensuji{\@arabic\c@subsubsection}} +\renewcommand{\theparagraph}{% + \thesubsubsection・\rensuji{\@arabic\c@paragraph}} +\renewcommand{\thesubparagraph}{% + \theparagraph・\rensuji{\@arabic\c@subparagraph}} +% +%<*yoko> +\renewcommand{\thepart}{\@Roman\c@part} +%
\renewcommand{\thesection}{\@arabic\c@section} +%<*report|book> +\renewcommand{\thechapter}{\@arabic\c@chapter} +\renewcommand{\thesection}{\thechapter.\@arabic\c@section} +% +\renewcommand{\thesubsection}{\thesection.\@arabic\c@subsection} +\renewcommand{\thesubsubsection}{% + \thesubsection.\@arabic\c@subsubsection} +\renewcommand{\theparagraph}{% + \thesubsubsection.\@arabic\c@paragraph} +\renewcommand{\thesubparagraph}{% + \theparagraph.\@arabic\c@subparagraph} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@chapapp} +% \begin{macro}{\@chappos} +% |\@chapapp|の初期値は`|\prechaptername|'です。 +% +% |\@chappos|の初期値は`|\postchaptername|'です。 +% +% |\appendix|コマンドは|\@chapapp|を`|\appendixname|'に、 +% |\@chappos|を空に再定義します。 +% \begin{macrocode} +%<*report|book> +\newcommand{\@chapapp}{\prechaptername} +\newcommand{\@chappos}{\postchaptername} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsubsection{前付け、本文、後付け} +% +% \begin{macro}{\frontmatter} +% \begin{macro}{\mainmatter} +% \begin{macro}{\backmatter} +% \changes{v1.1}{1997/01/15}{\cs{frontmatter}, \cs{mainmatter}, \cs{backmatter} +% を\LaTeX{}の定義に修正} +% 一冊の本は論理的に3つに分割されます。 +% 表題や目次や「はじめに」あるいは権利などの前付け、 +% そして本文、それから用語集や索引や奥付けなどの後付けです。 +% +% \emph{日本語\TeX{}開発コミュニティによる補足}: +% \LaTeX{}のclasses.dtxは、1996/05/26 (v1.3r)と1998/05/05 (v1.3y)の +% 計2回、|\frontmatter|と|\mainmatter|の定義を修正しています。一回目は +% これらの命令を|openany|オプションに応じて切り替え、二回目はそれを +% 元に戻しています。アスキーによるjclasses.dtxは、1997/01/15に +% 一回目の修正に追随しましたが、二回目の修正には追随していません。 +% コミュニティ版では、一旦はアスキーによる仕様を維持しようと考え +% ました(2016/11/22)が、以下の理由により二回目の修正にも追随する +% ことにしました(2017/03/05)。 +% +% アスキー版での|\frontmatter|と|\mainmatter|の改ページ挙動は +%\begin{quote} +% |openright|なら|\cleardoublepage|、|openany|なら|\clearpage|を実行 +%\end{quote} +% というものでした。しかし、|\frontmatter|及び|\mainmatter|はノンブルを +% 1にリセットしますから、改ページの結果が偶数ページ目になる場合 +% \footnote{縦tbookのデフォルト(openright)が該当するほか、横jbookと +% 縦tbookのopenanyのときには成り行き次第で該当する可能性があります。}に +% ノンブルが偶奇逆転してしまいました。このままでは|openany|の場合に両面 +% 印刷がうまくいかないため、新しいコミュニティ版では +%\begin{quote} +% 必ず|\pltx@cleartooddpage|を実行 +%\end{quote} +% としました。これは両面印刷(twoside)の場合は奇数ページに送り、 +% 片面印刷(oneside)の場合は単に改ページとなります。(参考:latex/2754) +% \changes{v1.7b}{2016/11/22}{補足ドキュメントを追加} +% \changes{v1.7e}{2017/03/05}{\cs{frontmatter}と\cs{mainmatter}を +% 奇数ページに送るように変更} +% \begin{macrocode} +%<*book> +\newcommand{\frontmatter}{% + \pltx@cleartooddpage + \@mainmatterfalse\pagenumbering{roman}} +\newcommand{\mainmatter}{% + \pltx@cleartooddpage + \@mainmattertrue\pagenumbering{arabic}} +\newcommand{\backmatter}{% + \if@openleft \cleardoublepage \else + \if@openright \cleardoublepage \else \clearpage \fi \fi + \@mainmatterfalse} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection{ボックスの組み立て} +% クラスファイル定義の、この部分では、|\@startsection|と|\secdef|の +% 二つの内部マクロを使います。これらの構文を次に示します。 +% +% |\@startsection|マクロは6つの引数と1つのオプション引数`*'を取ります。 +% +% |\@startsection|\meta{name}\meta{level}\meta{indent}^^A +% \meta{beforeskip}\meta{afterskip}\meta{style} +% optional *\\ +% \null\hphantom{\bslash @startsection}^^A +% |[|\meta{altheading}|]|\meta{heading} +% +% それぞれの引数の意味は、次のとおりです。 +% +% \begin{description} +% \item[\meta{name}] レベルコマンドの名前です(例:section)。 +% \item[\meta{level}] 見出しの深さを示す数値です(chapter=1, section=2, +% $\ldots$)。``\meta{level}$<=$カウンタ\Lcount{secnumdepth}の値''のとき、 +% 見出し番号が出力されます。 +% \item[\meta{indent}] 見出しに対する、左マージンからのインデント量です。 +% \item[\meta{beforeskip}] 見出しの上に置かれる空白の絶対値です。 +% 負の場合は、見出しに続くテキストのインデントを抑制します。 +% \item[\meta{afterskip}] 正のとき、見出しの後の垂直方向のスペースとなります。 +% 負の場合は、見出しの後の水平方向のスペースとなります。 +% \item[\meta{style}] 見出しのスタイルを設定するコマンドです。 +% \item[\meta{$*$}] 見出し番号を付けないとき、対応するカウンタは増加します。 +% \item[\meta{heading}] 新しい見出しの文字列です。 +% \end{description} +% +% 見出しコマンドは通常、|\@startsection|と6つの引数で定義されています。 +% +% |\secdef|マクロは、 +% 見出しコマンドを|\@startsection|を用いないで定義するときに使います。 +% このマクロは、2つの引数を持ちます。 +% +% |\secdef|\meta{unstarcmds}\meta{starcmds} +% +% \begin{description} +% \item[\meta{unstarcmds}] 見出しコマンドの普通の形式で使われます。 +% \item[\meta{starcmds}] $*$形式の見出しコマンドで使われます。 +% \end{description} +% +% |\secdef|は次のようにして使うことができます。 +%\begin{verbatim} +% \def\chapter {... \secdef \CMDA \CMDB } +% \def\CMDA [#1]#2{....} % \chapter[...]{...} の定義 +% \def\CMDB #1{....} % \chapter*{...} の定義 +%\end{verbatim} +% +% +% \subsubsection{partレベル} +% +% \begin{macro}{\part} +% このコマンドは、新しいパート(部)をはじめます。 +% +% articleクラスの場合は、簡単です。 +% +% 新しい段落を開始し、小さな空白を入れ、段落後のインデントを行い、 +% |\secdef|で作成します。(アスキーによる元のドキュメントには +% 「段落後のインデントをしないようにし」と書かれていましたが、 +% 実際のコードでは段落後のインデントを行っていました。そこで +% 日本語\TeX{}開発コミュニティは、ドキュメントをコードに合わせて +% 「段落後のインデントを行い」へと修正しました。) +% \changes{v1.7a}{2016/11/16}{Check \texttt{@noskipsec} switch and +% possibly force horizontal mode (sync with classes.dtx v1.4a)} +% \begin{macrocode} +%<*article> +\newcommand{\part}{% + \if@noskipsec \leavevmode \fi + \par\addvspace{4ex}% + \@afterindenttrue + \secdef\@part\@spart} +%
+% \end{macrocode} +% reportとbookスタイルの場合は、少し複雑です。 +% +% まず、右ページからはじまるように改ページをします。 +% そして、部扉のページスタイルを\pstyle{empty}にします。 +% 2段組の場合でも、1段組で作成しますが、後ほど2段組に戻すために、 +% |\@restonecol|スイッチを使います。 +% \changes{v1.1}{1997/01/15}{\cs{part}を\LaTeX\ の定義に修正} +% \begin{macrocode} +%<*report|book> +\newcommand{\part}{% + \if@openleft \cleardoublepage \else + \if@openright \cleardoublepage \else \clearpage \fi \fi + \thispagestyle{empty}% + \if@twocolumn\onecolumn\@tempswatrue\else\@tempswafalse\fi + \null\vfil + \secdef\@part\@spart} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@part} +% このマクロが実際に部レベルの見出しを作成します。 +% このマクロも文書クラスによって定義が異なります。 +% +% articleクラスの場合は、\Lcount{secnumdepth}が$-1$よりも大きいとき、 +% 見出し番号を付けます。このカウンタが$-1$以下の場合には付けません。 +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} +% \begin{macrocode} +%<*article> +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >\m@ne + \refstepcounter{part}% + \addcontentsline{toc}{part}{% + \prepartname\thepart\postpartname\hspace{1zw}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\parindent\z@\raggedright + \interlinepenalty\@M\normalfont + \ifnum \c@secnumdepth >\m@ne + \Large\bfseries\prepartname\thepart\postpartname + \par\nobreak + \fi + \huge\bfseries#2\par}% + \nobreak\vskip3ex\@afterheading} +%
+% \end{macrocode} +% +% reportとbookクラスの場合は、\Lcount{secnumdepth}が$-2$よりも大きいときに、 +% 見出し番号を付けます。$-2$以下では付けません。 +% +% \begin{macrocode} +%<*report|book> +\def\@part[#1]#2{% + \ifnum \c@secnumdepth >-2\relax + \refstepcounter{part}% + \addcontentsline{toc}{part}{% + \prepartname\thepart\postpartname\hspace{1em}#1}% + \else + \addcontentsline{toc}{part}{#1}% + \fi + \markboth{}{}% + {\centering + \interlinepenalty\@M\normalfont + \ifnum \c@secnumdepth >-2\relax + \huge\bfseries\prepartname\thepart\postpartname + \par\vskip20\p@ + \fi + \Huge\bfseries#2\par}% + \@endpart} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@spart} +% このマクロは、番号を付けないときの体裁です。 +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} +% \begin{macrocode} +%<*article> +\def\@spart#1{{% + \parindent\z@\raggedright + \interlinepenalty\@M\normalfont + \huge\bfseries#1\par}% + \nobreak\vskip3ex\@afterheading} +%
+% \end{macrocode} +% \changes{v1.1k}{1998/03/23}{reportとbookクラスで番号を付けない見出しの +% ペナルティが\cs{M@}だったのを\cs{@M}に修正} +% \begin{macrocode} +%<*report|book> +\def\@spart#1{{% + \centering + \interlinepenalty\@M\normalfont + \Huge\bfseries#1\par}% + \@endpart} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@endpart} +% |\@part|と|\@spart|の最後で実行されるマクロです。 +% 両面印刷モードのときは、白ページを追加します。 +% 二段組モードのときには、これ以降のページを二段組に戻します。 +% 2016年12月から、|openany| のときに白ページを追加するのをやめました。 +% このバグは\LaTeX{}ではclasses.dtx v1.4b (2000/05/19)で修正されていました。 +% (参考:latex/3155、texjporg/jsclasses\#48) +% \changes{v1.7c}{2016/12/18}{Only add empty page after part if +% twoside and openright (sync with classes.dtx v1.4b)} +% \begin{macrocode} +%<*report|book> +\def\@endpart{\vfil\newpage + \if@twoside + \if@openleft %% \if@openleft added (2017/02/15) + \null\thispagestyle{empty}\newpage + \else\if@openright %% \if@openright added (2016/12/18) + \null\thispagestyle{empty}\newpage + \fi\fi %% added (2016/12/18, 2017/02/15) + \fi +% \end{macrocode} +% 二段組文書のとき、スイッチを二段組モードに戻す必要があります。 +% \begin{macrocode} + \if@tempswa\twocolumn\fi} +% +% \end{macrocode} +% \end{macro} +% +% \subsubsection{chapterレベル} +% +% \begin{macro}{chapter} +% 章レベルは、必ずページの先頭から開始します。 +% |openright|オプションが指定されている場合は、右ページからはじまる +% ように|\cleardoublepage|を呼び出します。 +% そうでなければ、|\clearpage|を呼び出します。 +% なお、縦組の場合でも右ページからはじまるように、 +% フォーマットファイルで|\clerdoublepage|が定義されています。 +% +% \emph{日本語\TeX{}開発コミュニティによる補足}:コミュニティ版の実装では、 +% |openright|と|openleft|の場合に|\cleardoublepage|をクラスファイルの中で +% 再々定義しています。\ref{sec:cleardoublepage}を参照してください。 +% +% 章見出しが出力されるページのスタイルは、\pstyle{jpl@in}になります。 +% \pstyle{jpl@in}は、\pstyle{headnomble}か\pstyle{footnomble}のいずれかです。 +% 詳細は、第\ref{sec:pagestyle}節を参照してください。 +% +% また、|\@topnum|をゼロにして、 +% 章見出しの上にトップフロートが置かれないようにしています。 +% \begin{macrocode} +%<*report|book> +\newcommand{\chapter}{% + \if@openleft \cleardoublepage \else + \if@openright \cleardoublepage \else \clearpage \fi \fi + \thispagestyle{jpl@in}% + \global\@topnum\z@ + \@afterindenttrue + \secdef\@chapter\@schapter} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@chapter} +% このマクロは、章見出しに番号を付けるときに呼び出されます。 +% \Lcount{secnumdepth}が$-1$よりも大きく、 +% |\@mainmatter|が真(bookクラスの場合)のときに、番号を出力します。 +% +% \emph{日本語\TeX{}開発コミュニティによる補足}:本家\LaTeX{}の +% \file{classes}では、二段組のときチャプタータイトルは一段組に戻され +% ますが、アスキーによる\file{jclasses}では二段組のままにされています。 +% したがって、チャプタータイトルより高い位置に右カラムの始点が来るという +% 挙動になっていますが、コミュニティ版でもアスキー版の挙動を維持しています。 +% \begin{macrocode} +\def\@chapter[#1]#2{% + \ifnum \c@secnumdepth >\m@ne +% \if@mainmatter + \refstepcounter{chapter}% + \typeout{\@chapapp\space\thechapter\space\@chappos}% + \addcontentsline{toc}{chapter}% + {\protect\numberline{\@chapapp\thechapter\@chappos}#1}% +% \else\addcontentsline{toc}{chapter}{#1}\fi + \else + \addcontentsline{toc}{chapter}{#1}% + \fi + \chaptermark{#1}% + \addtocontents{lof}{\protect\addvspace{10\p@}}% + \addtocontents{lot}{\protect\addvspace{10\p@}}% + \@makechapterhead{#2}\@afterheading} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makechapterhead} +% このマクロが実際に章見出しを組み立てます。 +% \changes{v1.1o}{1998/12/24}{secnumdepthカウンタを$-1$以下にすると、 +% 見出し文字列も消えてしまうのを修正} +% \changes{v1.2}{2001/09/04}{\cs{chapter}の出力位置がアスタリスク形式と +% そうでないときと違うのを修正(ありがとう、鈴木@津さん)} +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} +% \begin{macrocode} +\def\@makechapterhead#1{\hbox{}% + \vskip2\Cvs + {\parindent\z@ + \raggedright + \normalfont\huge\bfseries + \leavevmode + \ifnum \c@secnumdepth >\m@ne + \setlength\@tempdima{\linewidth}% +% \if@mainmatter + \setbox\z@\hbox{\@chapapp\thechapter\@chappos\hskip1zw}% + \addtolength\@tempdima{-\wd\z@}% + \unhbox\z@\nobreak +% \fi + \vtop{\hsize\@tempdima#1}% + \else + #1\relax + \fi}\nobreak\vskip3\Cvs} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@schapter} +% このマクロは、章見出しに番号を付けないときに呼び出されます。 +% +% \emph{日本語\TeX{}開発コミュニティによる補足}:やはり二段組でチャプター +% タイトルより高い位置に右カラムの始点が来るという挙動を維持してあります。 +% \changes{v1.7c}{2016/12/18}{奇妙なarticleガードとコードを削除して +% ドキュメントを追加} +% \begin{macrocode} +\def\@schapter#1{% + \@makeschapterhead{#1}\@afterheading +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makeschapterhead} +% 番号を付けない場合の形式です。 +% \changes{v1.2}{2001/09/04}{\cs{chapter}の出力位置がアスタリスク形式と +% そうでないときと違うのを修正(ありがとう、鈴木@津さん)} +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} +% \begin{macrocode} +\def\@makeschapterhead#1{\hbox{}% + \vskip2\Cvs + {\parindent\z@ + \raggedright + \normalfont\huge\bfseries + \leavevmode + \setlength\@tempdima{\linewidth}% + \vtop{\hsize\@tempdima#1}}\vskip3\Cvs} +% +% \end{macrocode} +% \end{macro} +% +% \subsubsection{下位レベルの見出し} +% +% \begin{macro}{\section} +% 見出しの前後に空白を付け、|\Large\bfseries|で出力をします。 +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} +% \begin{macrocode} +\newcommand{\section}{\@startsection{section}{1}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\normalfont\Large\bfseries}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\subsection} +% 見出しの前後に空白を付け、|\large\bfseries|で出力をします。 +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} +% \begin{macrocode} +\newcommand{\subsection}{\@startsection{subsection}{2}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\normalfont\large\bfseries}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\subsubsection} +% 見出しの前後に空白を付け、|\normalsize\bfseries|で出力をします。 +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} +% \begin{macrocode} +\newcommand{\subsubsection}{\@startsection{subsubsection}{3}{\z@}% + {1.5\Cvs \@plus.5\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}% + {\normalfont\normalsize\bfseries}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\paragraph} +% 見出しの前に空白を付け、|\normalsize\bfseries|で出力をします。 +% 見出しの後ろで改行されません。 +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} +% \begin{macrocode} +\newcommand{\paragraph}{\@startsection{paragraph}{4}{\z@}% + {3.25ex \@plus 1ex \@minus .2ex}% + {-1em}% + {\normalfont\normalsize\bfseries}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\subparagraph} +% 見出しの前に空白を付け、|\normalsize\bfseries|で出力をします。 +% 見出しの後ろで改行されません。 +% \changes{v1.7a}{2016/11/16}{replace \cs{reset@font} with +% \cs{normalfont} (sync with classes.dtx v1.3c)} +% \begin{macrocode} +\newcommand{\subparagraph}{\@startsection{subparagraph}{5}{\z@}% + {3.25ex \@plus 1ex \@minus .2ex}% + {-1em}% + {\normalfont\normalsize\bfseries}} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{付録} +% +% \begin{macro}{\appendix} +% articleクラスの場合、|\appendix|コマンドは次のことを行ないます。 +% +% \begin{itemize} +% \item \Lcount{section}と\Lcount{subsection}カウンタをリセットする。 +% \item |\thesection|を英小文字で出力するように再定義する。 +% \end{itemize} +% +% \begin{macrocode} +%<*article> +\newcommand{\appendix}{\par + \setcounter{section}{0}% + \setcounter{subsection}{0}% +% \renewcommand{\thesection}{\rensuji{\@Alph\c@section}}} +% \renewcommand{\thesection}{\@Alph\c@section}} +%
+% \end{macrocode} +% +% reportとbookクラスの場合、|\appendix|コマンドは次のことを行ないます。 +% +% \begin{itemize} +% \item \Lcount{chapter}と\Lcount{section}カウンタをリセットする。 +% \item |\@chapapp|を|\appendixname|に設定する。 +% \item |\@chappos|を空にする。 +% \item |\thechapter|を英小文字で出力するように再定義する。 +% \end{itemize} +% +% \begin{macrocode} +%<*report|book> +\newcommand{\appendix}{\par + \setcounter{chapter}{0}% + \setcounter{section}{0}% + \renewcommand{\@chapapp}{\appendixname}% + \renewcommand{\@chappos}\space% +% \renewcommand{\thechapter}{\rensuji{\@Alph\c@chapter}}} +% \renewcommand{\thechapter}{\@Alph\c@chapter}} +% +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{リスト環境} +% ここではリスト環境について説明をしています。 +% +% リスト環境のデフォルトは次のように設定されます。 +% +% まず、|\rigtmargin|, |\listparindent|, |\itemindent|をゼロにします。 +% そして、K番目のレベルのリストは|\@listK|で示されるマクロが呼び出されます。 +% ここで`K'は小文字のローマ数字で示されます。たとえば、3番目のレベルのリスト +% として|\@listiii|が呼び出されます。 +% |\@listK|は|\leftmargin|を|\leftmarginK|に設定します。 +% +% \begin{macro}{\leftmargin} +% \begin{macro}{\leftmargini} +% \begin{macro}{\leftmarginii} +% \begin{macro}{\leftmarginiii} +% \begin{macro}{\leftmarginiv} +% \begin{macro}{\leftmarginv} +% \begin{macro}{\leftmarginvi} +% 二段組モードのマージンは少しだけ小さく設定してあります。 +% \begin{macrocode} +\if@twocolumn + \setlength\leftmargini {2em} +\else + \setlength\leftmargini {2.5em} +\fi +% \end{macrocode} +% 次の3つの値は、|\labelsep|とデフォルトラベル(`(m)', `vii.', `M.')の +% 幅の合計よりも大きくしてあります。 +% \begin{macrocode} +\setlength\leftmarginii {2.2em} +\setlength\leftmarginiii {1.87em} +\setlength\leftmarginiv {1.7em} +\if@twocolumn + \setlength\leftmarginv {.5em} + \setlength\leftmarginvi{.5em} +\else + \setlength\leftmarginv {1em} + \setlength\leftmarginvi{1em} +\fi +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\labelsep} +% \begin{macro}{\labelwidth} +% |\labelsep|はラベルとテキストの項目の間の距離です。 +% |\labelwidth|はラベルの幅です。 +% \begin{macrocode} +\setlength \labelsep {.5em} +\setlength \labelwidth{\leftmargini} +\addtolength\labelwidth{-\labelsep} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@beginparpenalty} +% \begin{macro}{\@endparpenalty} +% これらのペナルティは、リストや段落環境の前後に挿入されます。 +% \begin{macro}{\@itempenalty} +% このペナルティは、リスト項目の間に挿入されます。 +% \begin{macrocode} +\@beginparpenalty -\@lowpenalty +\@endparpenalty -\@lowpenalty +\@itempenalty -\@lowpenalty +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\partopsep} +% リスト環境の前に空行がある場合、|\parskip|と|\topsep|に|\partopsep|が +% 加えられた値の縦方向の空白が取られます。 +% \begin{macrocode} +%<10pt>\setlength\partopsep{2\p@ \@plus 1\p@ \@minus 1\p@} +%<11pt>\setlength\partopsep{3\p@ \@plus 1\p@ \@minus 1\p@} +%<12pt>\setlength\partopsep{3\p@ \@plus 2\p@ \@minus 2\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@listi} +% \begin{macro}{\@listI} +% |\@listi|は、|\leftmargin|, |\parsep|, |\topsep|, |\itemsep|などの +% トップレベルの定義をします。 +% この定義は、フォントサイズコマンドによって変更されます(たとえば、 +% |\small|の中では``小さい''リストパラメータになります)。 +% +% このため、|\normalsize|がすべてのパラメータを戻せるように、 +% |\@listI|は|\@listi|のコピーを保存するように定義されています。 +% \begin{macrocode} +%<*10pt|11pt|12pt> +\def\@listi{\leftmargin\leftmargini +%<*10pt> + \parsep 4\p@ \@plus2\p@ \@minus\p@ + \topsep 8\p@ \@plus2\p@ \@minus4\p@ + \itemsep4\p@ \@plus2\p@ \@minus\p@} +% +%<*11pt> + \parsep 4.5\p@ \@plus2\p@ \@minus\p@ + \topsep 9\p@ \@plus3\p@ \@minus5\p@ + \itemsep4.5\p@ \@plus2\p@ \@minus\p@} +% +%<*12pt> + \parsep 5\p@ \@plus2.5\p@ \@minus\p@ + \topsep 10\p@ \@plus4\p@ \@minus6\p@ + \itemsep5\p@ \@plus2.5\p@ \@minus\p@} +% +\let\@listI\@listi +% \end{macrocode} +% ここで、パラメータを初期化しますが、厳密には必要ありません。 +% \begin{macrocode} +\@listi +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@listii} +% \begin{macro}{\@listiii} +% \begin{macro}{\@listiv} +% \begin{macro}{\@listv} +% \begin{macro}{\@listvi} +% 下位レベルのリスト環境のパラメータの設定です。 +% これらは保存用のバージョンを持たないことと、 +% フォントサイズコマンドによって変更されないことに注意をしてください。 +% 言い換えれば、このクラスは、本文サイズが +% |\normalsize|で現れるリストの入れ子についてだけ考えています。 +% \begin{macrocode} +\def\@listii{\leftmargin\leftmarginii + \labelwidth\leftmarginii \advance\labelwidth-\labelsep +%<*10pt> + \topsep 4\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ +% +%<*11pt> + \topsep 4.5\p@ \@plus2\p@ \@minus\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ +% +%<*12pt> + \topsep 5\p@ \@plus2.5\p@ \@minus\p@ + \parsep 2.5\p@ \@plus\p@ \@minus\p@ +% + \itemsep\parsep} +\def\@listiii{\leftmargin\leftmarginiii + \labelwidth\leftmarginiii \advance\labelwidth-\labelsep +%<10pt> \topsep 2\p@ \@plus\p@\@minus\p@ +%<11pt> \topsep 2\p@ \@plus\p@\@minus\p@ +%<12pt> \topsep 2.5\p@\@plus\p@\@minus\p@ + \parsep\z@ + \partopsep \p@ \@plus\z@ \@minus\p@ + \itemsep\topsep} +\def\@listiv {\leftmargin\leftmarginiv + \labelwidth\leftmarginiv + \advance\labelwidth-\labelsep} +\def\@listv {\leftmargin\leftmarginv + \labelwidth\leftmarginv + \advance\labelwidth-\labelsep} +\def\@listvi {\leftmargin\leftmarginvi + \labelwidth\leftmarginvi + \advance\labelwidth-\labelsep} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsubsection{enumerate環境} +% enumerate環境は、カウンタ\Lcount{enumi}, \Lcount{enumii}, \Lcount{enumiii}, +% \Lcount{enumiv}を使います。\Lcount{enumN}はN番目のレベルの番号を制御します。 +% +% \begin{macro}{\theenumi} +% \begin{macro}{\theenumii} +% \begin{macro}{\theenumiii} +% \begin{macro}{\theenumiv} +% 出力する番号の書式を設定します。 +% これらは、すでに\file{ltlists.dtx}で定義されています。 +% \begin{macrocode} +%<*article|report|book> +%<*tate> +\renewcommand{\theenumi}{\rensuji{\@arabic\c@enumi}} +\renewcommand{\theenumii}{\rensuji{(\@alph\c@enumii)}} +\renewcommand{\theenumiii}{\rensuji{\@roman\c@enumiii}} +\renewcommand{\theenumiv}{\rensuji{\@Alph\c@enumiv}} +% +%<*yoko> +\renewcommand{\theenumi}{\@arabic\c@enumi} +\renewcommand{\theenumii}{\@alph\c@enumii} +\renewcommand{\theenumiii}{\@roman\c@enumiii} +\renewcommand{\theenumiv}{\@Alph\c@enumiv} +%
+% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\labelenumi} +% \begin{macro}{\labelenumii} +% \begin{macro}{\labelenumiii} +% \begin{macro}{\labelenumiv} +% enumerate環境のそれぞれの項目のラベルは、 +% |\labelenumi| \ldots\ |\labelenumiv|で生成されます。 +% \begin{macrocode} +%<*tate> +\newcommand{\labelenumi}{\theenumi} +\newcommand{\labelenumii}{\theenumii} +\newcommand{\labelenumiii}{\theenumiii} +\newcommand{\labelenumiv}{\theenumiv} +%
+%<*yoko> +\newcommand{\labelenumi}{\theenumi.} +\newcommand{\labelenumii}{(\theenumii)} +\newcommand{\labelenumiii}{\theenumiii.} +\newcommand{\labelenumiv}{\theenumiv.} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\p@enumii} +% \begin{macro}{\p@enumiii} +% \begin{macro}{\p@enumiv} +% |\ref|コマンドによって、 +% enumerate環境のN番目のリスト項目が参照されるときの書式です。 +% \begin{macrocode} +\renewcommand{\p@enumii}{\theenumi} +\renewcommand{\p@enumiii}{\theenumi(\theenumii)} +\renewcommand{\p@enumiv}{\p@enumiii\theenumiii} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{enumerate} +% \changes{v1.1q}{1999/05/18}{縦組時のみに設定するようにした} +% トップレベルで使われたときに、最初と最後に半行分のスペースを開けるように、 +% 変更します。この環境は、\file{ltlists.dtx}で定義されています。 +% \changes{v1.7a}{2016/11/16}{Use \cs{expandafter} +% (sync with ltlists.dtx v1.0j)} +% +% \begin{macrocode} +\renewenvironment{enumerate} + {\ifnum \@enumdepth >\thr@@\@toodeep\else + \advance\@enumdepth\@ne + \edef\@enumctr{enum\romannumeral\the\@enumdepth}% + \expandafter \list \csname label\@enumctr\endcsname{% + \iftdir + \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip + \else\topsep\z@\fi + \parskip\z@ \itemsep\z@ \parsep\z@ + \labelwidth1zw \labelsep.3zw + \ifnum \@enumdepth=\@ne \leftmargin1zw\relax + \else\leftmargin\leftskip\fi + \advance\leftmargin 1zw + \fi + \usecounter{\@enumctr}% + \def\makelabel##1{\hss\llap{##1}}}% + \fi}{\endlist} +% \end{macrocode} +% \end{environment} +% +% +% \subsubsection{itemize環境} +% +% \begin{macro}{\labelitemi} +% \begin{macro}{\labelitemii} +% \begin{macro}{\labelitemiii} +% \begin{macro}{\labelitemiv} +% itemize環境のそれぞれの項目のラベルは、 +% |\labelenumi| \ldots\ |\labelenumiv|で生成されます。 +% \changes{v1.1a}{1997/01/28}{Bug fix: \cs{labelitemii}.} +% \begin{macrocode} +\newcommand{\labelitemi}{\textbullet} +\newcommand{\labelitemii}{% + \iftdir + {\textcircled{~}} + \else + {\normalfont\bfseries\textendash} + \fi +} +\newcommand{\labelitemiii}{\textasteriskcentered} +\newcommand{\labelitemiv}{\textperiodcentered} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{itemize} +% \changes{v1.0e}{1996/03/14}{縦組時のみに設定するようにした} +% トップレベルで使われたときに、最初と最後に半行分のスペースを開けるように、 +% 変更します。この環境は、\file{ltlists.dtx}で定義されています。 +% \changes{v1.7a}{2016/11/16}{Use \cs{expandafter} +% (sync with ltlists.dtx v1.0j)} +% \begin{macrocode} +\renewenvironment{itemize} + {\ifnum \@itemdepth >\thr@@\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter \list \csname \@itemitem\endcsname{% + \iftdir + \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip + \else\topsep\z@\fi + \parskip\z@ \itemsep\z@ \parsep\z@ + \labelwidth1zw \labelsep.3zw + \ifnum \@itemdepth =\@ne \leftmargin1zw\relax + \else\leftmargin\leftskip\fi + \advance\leftmargin 1zw + \fi + \def\makelabel##1{\hss\llap{##1}}}% + \fi}{\endlist} +% \end{macrocode} +% \end{environment} +% +% +% \subsubsection{description環境} +% +% \begin{environment}{description} +% \changes{v1.0e}{1996/03/14}{\cs{topskip}や\cs{parkip}などの値を縦組時のみに +% 設定するようにした} +% description環境を定義します。 +% 縦組時には、インデントが3字分だけ深くなります。 +% \begin{macrocode} +\newenvironment{description} + {\list{}{\labelwidth\z@ \itemindent-\leftmargin + \iftdir + \leftmargin\leftskip \advance\leftmargin3\Cwd + \rightmargin\rightskip + \labelsep=1zw \itemsep\z@ + \listparindent\z@ \topskip\z@ \parskip\z@ \partopsep\z@ + \fi + \let\makelabel\descriptionlabel}}{\endlist} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\descriptionlabel} +% ラベルの形式を変更する必要がある場合は、|\descriptionlabel|を +% 再定義してください。 +% \begin{macrocode} +\newcommand{\descriptionlabel}[1]{% + \hspace\labelsep\normalfont\bfseries #1} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{verse環境} +% +% \begin{environment}{verse} +% verse環境は、リスト環境のパラメータを使って定義されています。 +% 改行をするには|\\|を用います。|\\|は|\@centercr|に|\let|されています。 +% \begin{macrocode} +\newenvironment{verse} + {\let\\\@centercr + \list{}{\itemsep\z@ \itemindent -1.5em% + \listparindent\itemindent + \rightmargin\leftmargin \advance\leftmargin 1.5em}% + \item\relax}{\endlist} +% \end{macrocode} +% \end{environment} +% +% \subsubsection{quotation環境} +% +% \begin{environment}{quotation} +% quotation環境もまた、list環境のパラメータを使用して定義されています。 +% この環境の各行は、|\textwidth|よりも小さく設定されています。 +% この環境における、段落の最初の行はインデントされます。 +% \begin{macrocode} +\newenvironment{quotation} + {\list{}{\listparindent 1.5em% + \itemindent\listparindent + \rightmargin\leftmargin + \parsep\z@ \@plus\p@}% + \item\relax}{\endlist} +% \end{macrocode} +% \end{environment} +% +% \subsubsection{quote環境} +% +% \begin{environment}{quote} +% quote環境は、段落がインデントされないことを除き、quotation環境と同じです。 +% \begin{macrocode} +\newenvironment{quote} + {\list{}{\rightmargin\leftmargin}% + \item\relax}{\endlist} +% \end{macrocode} +% \end{environment} +% +% +% +% \subsection{フロート} +% +% \file{ltfloat.dtx}では、フロートオブジェクトを操作するためのツールしか +% 定義していません。タイプが\texttt{TYPE}のフロートオブジェクトを +% 扱うマクロを定義するには、次の変数が必要です。 +% +% \begin{description} +% \item[\texttt{\bslash fps@TYPE}] +% タイプ\texttt{TYPE}のフロートを置くデフォルトの位置です。 +% +% \item[\texttt{\bslash ftype@TYPE}] +% タイプ\texttt{TYPE}のフロートの番号です。 +% 各\texttt{TYPE}には、一意な、2の倍数の\texttt{TYPE}番号を割り当てます。 +% たとえば、図が番号1ならば、表は2です。次のタイプは4となります。 +% +% \item[\texttt{\bslash ext@TYPE}] +% タイプ\texttt{TYPE}のフロートの目次を出力するファイルの拡張子です。 +% たとえば、|\ext@figure|は`lot'です。 +% +% \item[\texttt{\bslash fnum@TYPE}] +% キャプション用の図番号を生成するマクロです。 +% たとえば、|\fnum@figure|は`図|\thefigure|'を作ります。 +% \end{description} +% +% \subsubsection{figure環境} +% ここでは、figure環境を実装しています。 +% +% \begin{macro}{\c@figure} +% \begin{macro}{\thefigure} +% 図番号です。 +% \begin{macrocode} +%
\newcounter{figure} +%\newcounter{figure}[chapter] +%<*tate> +%
\renewcommand{\thefigure}{\rensuji{\@arabic\c@figure}} +% \end{macrocode} +% \changes{v1.1d}{1997/02/14}{\cs{ifnum}文の構文エラーを訂正。} +% \begin{macrocode} +%<*report|book> +\renewcommand{\thefigure}{% + \ifnum\c@chapter>\z@\thechapter{}・\fi\rensuji{\@arabic\c@figure}} +% +% +%<*yoko> +%
\renewcommand{\thefigure}{\@arabic\c@figure} +%<*report|book> +\renewcommand{\thefigure}{% + \ifnum\c@chapter>\z@\thechapter.\fi\@arabic\c@figure} +% +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\fps@figure} +% \begin{macro}{\ftype@figure} +% \begin{macro}{\ext@figure} +% \begin{macro}{\fnum@figure} +% フロートオブジェクトタイプ``figure''のためのパラメータです。 +% \begin{macrocode} +\def\fps@figure{tbp} +\def\ftype@figure{1} +\def\ext@figure{lof} +%\def\fnum@figure{\figurename\thefigure} +%\def\fnum@figure{\figurename~\thefigure} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{figure} +% \begin{environment}{figure*} +% |*|形式は2段抜きのフロートとなります。 +% \begin{macrocode} +\newenvironment{figure} + {\@float{figure}} + {\end@float} +\newenvironment{figure*} + {\@dblfloat{figure}} + {\end@dblfloat} +% \end{macrocode} +% \end{environment} +% \end{environment} +% +% \subsubsection{table環境} +% ここでは、table環境を実装しています。 +% +% \begin{macro}{\c@table} +% \begin{macro}{\thetable} +% \changes{v1.1n}{1998/10/13} +% {report, bookクラスでchapterカウンタを考慮していなかったのを修正。 +% ありがとう、平川@慶應大さん。} +% 表番号です。 +% \begin{macrocode} +%
\newcounter{table} +%\newcounter{table}[chapter] +%<*tate> +%
\renewcommand{\thetable}{\rensuji{\@arabic\c@table}} +%<*report|book> +\renewcommand{\thetable}{% + \ifnum\c@chapter>\z@\thechapter{}・\fi\rensuji{\@arabic\c@table}} +% +% +%<*yoko> +%
\renewcommand{\thetable}{\@arabic\c@table} +%<*report|book> +\renewcommand{\thetable}{% + \ifnum\c@chapter>\z@\thechapter.\fi\@arabic\c@table} +% +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\fps@table} +% \begin{macro}{\ftype@table} +% \begin{macro}{\ext@table} +% \begin{macro}{\fnum@table} +% フロートオブジェクトタイプ``table''のためのパラメータです。 +% \begin{macrocode} +\def\fps@table{tbp} +\def\ftype@table{2} +\def\ext@table{lot} +%\def\fnum@table{\tablename\thetable} +%\def\fnum@table{\tablename~\thetable} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{environment}{table} +% \begin{environment}{table*} +% |*|形式は2段抜きのフロートとなります。 +% \begin{macrocode} +\newenvironment{table} + {\@float{table}} + {\end@float} +\newenvironment{table*} + {\@dblfloat{table}} + {\end@dblfloat} +% \end{macrocode} +% \end{environment} +% \end{environment} +% +% \subsection{キャプション} +% +% \begin{macro}{\@makecaption} +% |\caption|コマンドは、キャプションを組み立てるために|\@mkcaption|を呼出ます。 +% このコマンドは二つの引数を取ります。 +% 一つは、\meta{number}で、フロートオブジェクトの番号です。 +% もう一つは、\meta{text}でキャプション文字列です。 +% \meta{number}には通常、`図 3.2'のような文字列が入っています。 +% このマクロは、|\parbox|の中で呼び出されます。書体は|\normalsize|です。 +% +% \begin{macro}{\abovecaptionskip} +% \begin{macro}{\belowcaptionskip} +% これらの長さはキャプションの前後に挿入されるスペースです。 +% \begin{macrocode} +\newlength\abovecaptionskip +\newlength\belowcaptionskip +\setlength\abovecaptionskip{10\p@} +\setlength\belowcaptionskip{0\p@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% キャプション内で複数の段落を作成することができるように、 +% このマクロは|\long|で定義をします。 +% \begin{macrocode} +\long\def\@makecaption#1#2{% + \vskip\abovecaptionskip + \iftdir\sbox\@tempboxa{#1\hskip1zw#2}% + \else\sbox\@tempboxa{#1: #2}% + \fi + \ifdim \wd\@tempboxa >\hsize + \iftdir #1\hskip1zw#2\relax\par + \else #1: #2\relax\par\fi + \else + \global \@minipagefalse + \hb@xt@\hsize{\hfil\box\@tempboxa\hfil}% + \fi + \vskip\belowcaptionskip} +% \end{macrocode} +% \end{macro} +% +% \subsection{コマンドパラメータの設定} +% +% \subsubsection{arrayとtabular環境} +% +% \begin{macro}{\arraycolsep} +% array環境のカラムは2|\arraycolsep|で分離されます。 +% \begin{macrocode} +\setlength\arraycolsep{5\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tabcolsep} +% tabular環境のカラムは2|\tabcolsep|で分離されます。 +% \begin{macrocode} +\setlength\tabcolsep{6\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\arrayrulewidth} +% arrayとtabular環境内の罫線の幅です。 +% \begin{macrocode} +\setlength\arrayrulewidth{.4\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\doublerulesep} +% arrayとtabular環境内の罫線間を調整する空白です。 +% \begin{macrocode} +\setlength\doublerulesep{2\p@} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{tabbing環境} +% +% \begin{macro}{\tabbingsep} +% |\'|コマンドで置かれるスペースを制御します。 +% \begin{macrocode} +\setlength\tabbingsep{\labelsep} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{minipage環境} +% +% \begin{macro}{\@mpfootins} +% minipageにも脚注を付けることができます。 +% |\skip||\@mpfootins|は、通常の|\skip||\footins|と同じような動作をします。 +% \begin{macrocode} +\skip\@mpfootins = \skip\footins +% \end{macrocode} +% \end{macro} +% +% \subsubsection{framebox環境} +% +% \begin{macro}{\fboxsep} +% \begin{macro}{\fboxrule} +% |\fboxsep|は、|\fbox|と|\framebox|での、 +% テキストとボックスの間に入る空白です。 +% |\fboxrule|は|\fbox|と|\framebox|で作成される罫線の幅です。 +% \begin{macrocode} +\setlength\fboxsep{3\p@} +\setlength\fboxrule{.4\p@} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsubsection{equationとeqnarray環境} +% +% \begin{macro}{\theequation} +% equationカウンタは、新しい章の開始でリセットされます。 +% また、equation番号には、章番号が付きます。 +% +% このコードは|\chapter|定義の後、より正確にはchapterカウンタの定義の後、 +% でなくてはいけません。 +% \begin{macrocode} +%
\renewcommand{\theequation}{\@arabic\c@equation} +%<*report|book> +\@addtoreset{equation}{chapter} +\renewcommand{\theequation}{% + \ifnum\c@chapter>\z@\thechapter.\fi \@arabic\c@equation} +% +% \end{macrocode} +% \end{macro} +% +% +% \section{フォントコマンド} +% |disablejfam|オプションが指定されていない場合には、以下の設定がなさ +% れます。 +% まず、数式内に日本語を直接、記述するために数式記号用文字に +% ``JY1/mc/m/n''を登録します。数式バージョンがboldの場合は、 +% ``JY1/gt/m/n''を用います。 +% これらは、|\mathmc|, |\mathgt|として登録されます。 +% また、日本語数式ファミリとして|\symmincho|がこの段階で設定されます。 +% |mathrmmc|オプションが指定されていた場合には、これに引き続き +% |\mathrm|と|\mathbf|を和欧文両対応にするための作業がなされます。この際、 +% 他のマクロとの衝突を避けるため|\AtBeginDocument| +% を用いて展開順序を遅らせる必要があります。 +% +% |disablejfam|オプションが指定されていた場合には、 +% |\mathmc|と|\mathgt|に対してエラーを出すだけのダミーの定義を +% 与える設定のみが行われます。 +% +% \textbf{変更} +% +% \changes{v1.6}{2006/06/27}{フォントコマンドを修正。ありがとう、ymtさん。} +% p\LaTeX{} 2.09 +% compatibility modeでは和文数式フォントfamが2重定義されていた +% ので、その部分を変更しました。 +% \begin{macrocode} +\if@enablejfam + \if@compatibility\else + \DeclareSymbolFont{mincho}{JY1}{mc}{m}{n} + \DeclareSymbolFontAlphabet{\mathmc}{mincho} + \SetSymbolFont{mincho}{bold}{JY1}{gt}{m}{n} + \jfam\symmincho + \DeclareMathAlphabet{\mathgt}{JY1}{gt}{m}{n} + \fi + \if@mathrmmc + \AtBeginDocument{% + \reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc} + \reDeclareMathAlphabet{\mathbf}{\mathbf}{\mathgt} + }% + \fi +\else + \DeclareRobustCommand{\mathmc}{% + \@latex@error{Command \noexpand\mathmc invalid with\space + `disablejfam' class option.}\@eha + } + \DeclareRobustCommand{\mathgt}{% + \@latex@error{Command \noexpand\mathgt invalid with\space + `disablejfam' class option.}\@eha + } +\fi +% \end{macrocode} +% +% ここでは\LaTeX~2.09で一般的に使われていたコマンドを定義しています。 +% これらのコマンドはテキストモードと数式モードの\emph{どちらでも}動作します。 +% これらは互換性のために提供をしますが、できるだけ|\text...|と|\math...|を +% 使うようにしてください。 +% +% \begin{macro}{\mc} +% \begin{macro}{\gt} +% \begin{macro}{\rm} +% \begin{macro}{\sf} +% \begin{macro}{\tt} +% これらのコマンドはフォントファミリを変更します。 +% 互換モードの同名コマンドと異なり、すべてのコマンドがデフォルトフォントに +% リセットしてから、対応する属性を変更することに注意してください。 +% \begin{macrocode} +\DeclareOldFontCommand{\mc}{\normalfont\mcfamily}{\mathmc} +\DeclareOldFontCommand{\gt}{\normalfont\gtfamily}{\mathgt} +\DeclareOldFontCommand{\rm}{\normalfont\rmfamily}{\mathrm} +\DeclareOldFontCommand{\sf}{\normalfont\sffamily}{\mathsf} +\DeclareOldFontCommand{\tt}{\normalfont\ttfamily}{\mathtt} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\bf} +% このコマンドはボールド書体にします。ノーマル書体に変更するには、 +% |\mdseries|と指定をします。 +% \begin{macrocode} +\DeclareOldFontCommand{\bf}{\normalfont\bfseries}{\mathbf} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\it} +% \begin{macro}{\sl} +% \begin{macro}{\sc} +% これらのコマンドはフォントシェイプを切替えます。 +% スラント体とスモールキャップの数式アルファベットはありませんので、 +% 数式モードでは何もしませんが、警告メッセージを出力します。 +% |\upshape|コマンドで通常のシェイプにすることができます。 +% \begin{macrocode} +\DeclareOldFontCommand{\it}{\normalfont\itshape}{\mathit} +\DeclareOldFontCommand{\sl}{\normalfont\slshape}{\@nomath\sl} +\DeclareOldFontCommand{\sc}{\normalfont\scshape}{\@nomath\sc} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\cal} +% \begin{macro}{\mit} +% これらのコマンドは数式モードでだけ使うことができます。 +% 数式モード以外では何もしません。 +% 現在のNFSSは、これらのコマンドが警告を生成するように定義していますので、 +% `手ずから'定義する必要があります。 +% \begin{macrocode} +\DeclareRobustCommand*{\cal}{\@fontswitch\relax\mathcal} +\DeclareRobustCommand*{\mit}{\@fontswitch\relax\mathnormal} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% +% \section{相互参照} +% +% \subsection{目次} +% |\section|コマンドは、\file{.toc}ファイルに、次のような行を出力します。 +% +% |\contentsline{section}{|\meta{title}|}{|\meta{page}|}| +% +% \meta{title}には項目が、\meta{page}にはページ番号が入ります。 +% |\section|に見出し番号が付く場合は、\meta{title}は、 +% |\numberline{|\meta{num}|}{|\meta{heading}|}|となります。 +% \meta{num}は|\thesection|コマンドで生成された見出し番号です。 +% \meta{heading}は見出し文字列です。この他の見出しコマンドも同様です。 +% +% figure環境での|\caption|コマンドは、\file{.lof}ファイルに、 +% 次のような行を出力します。 +% +% |\contentsline{figure}{\numberline{|\meta{num}|}{|% +% \meta{caption}|}}{|\meta{page}|}| +% +% \meta{num}は、|\thefigure|コマンドで生成された図番号です。 +% \meta{caption}は、キャプション文字列です。table環境も同様です。 +% +% |\contentsline{|\meta{name}|}|コマンドは、|\l@|\meta{name}に展開されます。 +% したがって、目次の体裁を記述するには、|\l@chapter|, |\l@section|などを +% 定義します。図目次のためには|\l@figure|です。 +% これらの多くのコマンドは|\@dottedtocline|コマンドで定義されています。 +% このコマンドは次のような書式となっています。 +% +% |\@dottedtocline{|\meta{level}|}{|\meta{indent}|}{|^^A +% \meta{numwidth}|}{|\meta{title}|}{|\meta{page}|}| +% +% \begin{description} +% \item[\meta{level}] ``\meta{level} $<=$ \Lcount{tocdepth}''のときにだけ、 +% 生成されます。|\chapter|はレベル0、|\section|はレベル1、$\ldots$ です。 +% \item[\meta{indent}] 一番外側からの左マージンです。 +% \item[\meta{numwidth}] 見出し番号(|\numberline|コマンドの\meta{num})が +% 入るボックスの幅です。 +% \end{description} +% +% \begin{macro}{\c@tocdepth} +% \Lcount{tocdepth}は、目次ページに出力をする見出しレベルです。 +% \begin{macrocode} +%
\setcounter{tocdepth}{3} +%\setcounter{tocdepth}{2} +% \end{macrocode} +% \end{macro} +% +% また、目次を生成するために次のパラメータも使います。 +% +% \begin{macro}{\@pnumwidth} +% ページ番号の入るボックスの幅です。 +% \begin{macrocode} +\newcommand{\@pnumwidth}{1.55em} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@tocrmarg} +% 複数行にわたる場合の右マージンです。 +% \begin{macrocode} +\newcommand{\@tocrmarg}{2.55em} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@dotsep} +% ドットの間隔(mu単位)です。2や1.7のように指定をします。 +% \begin{macrocode} +\newcommand{\@dotsep}{4.5} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\toclineskip} +% この長さ変数は、目次項目の間に入るスペースの長さです。 +% デフォルトはゼロとなっています。縦組のとき、スペースを少し広げます。 +% \begin{macrocode} +\newdimen\toclineskip +%\setlength\toclineskip{\z@} +%\setlength\toclineskip{2\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\numberline} +% \begin{macro}{\@lnumwidth} +% |\numberline|マクロの定義を示します。オリジナルの定義では、ボックスの幅を +% |\@tempdima|にしていますが、この変数はいろいろな箇所で使われますので、 +% 期待した値が入らない場合があります。 +% +% ^^A たとえば、p\LaTeXe{}での|\selectfont|は、和欧文のベースラインを調整する +% ^^A ために|\@tempdima|変数を用いています。そのため、|\l@...|マクロの中で +% ^^A フォントを切替えると、|\numberline|マクロのボックス +% ^^A の幅が、ベースラインを調整するときに計算した値になってしまいます。 +% ^^A →修正(texjporg):最近の|\adjustbaseline|では|\adjust@dimen|が使われて +% ^^A いるため、記述をコメントアウトしました。 +% +% フォント選択コマンドの後、あるいは|\numberline|マクロの中でフォントを +% 切替えてもよいのですが、一時変数を意識したくないので、 +% 見出し番号の入るボックスを|\@lnumwidth|変数を用いて組み立てるように +% |\numberline|マクロを再定義します。 +% \begin{macrocode} +\newdimen\@lnumwidth +\def\numberline#1{\hb@xt@\@lnumwidth{#1\hfil}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@dottedtocline} +% 目次の各行間に|\toclineskip|を入れるように変更します。 +% このマクロは\file{ltsect.dtx}で定義されています。 +% \changes{v1.3}{2001/10/04}{第5引数の書体を\cs{rmfamily}から\cs{normalfont}に変更} +% \changes{v1.7a}{2016/11/16}{Added \cs{nobreak} for +% latex/2343 (sync with ltsect.dtx v1.0z)} +% \begin{macrocode} +\def\@dottedtocline#1#2#3#4#5{% + \ifnum #1>\c@tocdepth \else + \vskip\toclineskip \@plus.2\p@ + {\leftskip #2\relax \rightskip \@tocrmarg \parfillskip -\rightskip + \parindent #2\relax\@afterindenttrue + \interlinepenalty\@M + \leavevmode + \@lnumwidth #3\relax + \advance\leftskip \@lnumwidth \null\nobreak\hskip -\leftskip + {#4}\nobreak + \leaders\hbox{$\m@th \mkern \@dotsep mu.\mkern \@dotsep mu$}% + \hfill\nobreak + \hb@xt@\@pnumwidth{\hss\normalfont \normalcolor #5}% + \par}% + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\addcontentsline} +% 縦組の場合にページ番号を|\rensuji|で囲むように変更します。 +% ^^A 横組のときにも`|\rensuji|'コマンドが出力されますが、 +% ^^A このコマンドによる影響はありません。 +% +% このマクロは\file{ltsect.dtx}で定義されています。 +% \changes{v1.8a}{2018/10/25}{ファイル書き出し時の行末文字対策 +% (sync with ltsect.dtx 2018/09/26 v1.1c)} +% \begin{macrocode} +\providecommand*\protected@file@percent{} +\def\addcontentsline#1#2#3{% + \protected@write\@auxout + {\let\label\@gobble \let\index\@gobble \let\glossary\@gobble +% \@temptokena{\rensuji{\thepage}}}% +% \@temptokena{\thepage}}% + {\string\@writefile{#1}% + {\protect\contentsline{#2}{#3}{\the\@temptokena}% + \protected@file@percent}}% +} +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{本文目次} +% +% \begin{macro}{\tableofcontents} +% 目次を生成します。 +% \begin{macrocode} +\newcommand{\tableofcontents}{% +%<*report|book> + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi +% +%
\section*{\contentsname +% \chapter*{\contentsname +% \end{macrocode} +% |\tableofcontents|では、|\@mkboth|はheadingの中に入れてあります。 +% ほかの命令(|\listoffigures|など)については、|\@mkboth|はheadingの +% 外に出してあります。これは\LaTeX の\file{classes.dtx}に合わせています。 +% \begin{macrocode} + \@mkboth{\contentsname}{\contentsname}% + }\@starttoc{toc}% +% \if@restonecol\twocolumn\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@part} +% partレベルの目次です。 +% \begin{macrocode} +\newcommand*{\l@part}[2]{% + \ifnum \c@tocdepth >-2\relax +%
\addpenalty{\@secpenalty}% +% \addpenalty{-\@highpenalty}% + \addvspace{2.25em \@plus\p@}% + \begingroup + \parindent\z@\rightskip\@pnumwidth + \parfillskip-\@pnumwidth + {\leavevmode\large\bfseries + \setlength\@lnumwidth{4zw}% + #1\hfil\nobreak + \hb@xt@\@pnumwidth{\hss#2}}\par + \nobreak +%
\if@compatibility + \global\@nobreaktrue + \everypar{\global\@nobreakfalse\everypar{}}% +%
\fi + \endgroup + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@chapter} +% chapterレベルの目次です。 +% \begin{macrocode} +%<*report|book> +\newcommand*{\l@chapter}[2]{% + \ifnum \c@tocdepth >\m@ne + \addpenalty{-\@highpenalty}% + \addvspace{1.0em \@plus\p@}% + \begingroup + \parindent\z@ \rightskip\@pnumwidth \parfillskip-\rightskip + \leavevmode\bfseries + \setlength\@lnumwidth{4zw}% + \advance\leftskip\@lnumwidth \hskip-\leftskip + #1\nobreak\hfil\nobreak\hb@xt@\@pnumwidth{\hss#2}\par + \penalty\@highpenalty + \endgroup + \fi} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@section} +% sectionレベルの目次です。 +% \begin{macrocode} +%<*article> +\newcommand*{\l@section}[2]{% + \ifnum \c@tocdepth >\z@ + \addpenalty{\@secpenalty}% + \addvspace{1.0em \@plus\p@}% + \begingroup + \parindent\z@ \rightskip\@pnumwidth \parfillskip-\rightskip + \leavevmode\bfseries + \setlength\@lnumwidth{1.5em}% + \advance\leftskip\@lnumwidth \hskip-\leftskip + #1\nobreak\hfil\nobreak\hb@xt@\@pnumwidth{\hss#2}\par + \endgroup + \fi} +%
+% \end{macrocode} +% +% \begin{macrocode} +%<*report|book> +%\newcommand*{\l@section}{\@dottedtocline{1}{1zw}{4zw}} +%\newcommand*{\l@section}{\@dottedtocline{1}{1.5em}{2.3em}} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@subsection} +% \begin{macro}{\l@subsubsection} +% \begin{macro}{\l@paragraph} +% \begin{macro}{\l@subparagraph} +% 下位レベルの目次項目の体裁です。 +% \begin{macrocode} +%<*tate> +%<*article> +\newcommand*{\l@subsection} {\@dottedtocline{2}{1zw}{4zw}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{2zw}{6zw}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{3zw}{8zw}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{4zw}{9zw}} +%
+%<*report|book> +\newcommand*{\l@subsection} {\@dottedtocline{2}{2zw}{6zw}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{3zw}{8zw}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{4zw}{9zw}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{5zw}{10zw}} +% +% +%<*yoko> +%<*article> +\newcommand*{\l@subsection} {\@dottedtocline{2}{1.5em}{2.3em}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{3.8em}{3.2em}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{7.0em}{4.1em}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{10em}{5em}} +%
+%<*report|book> +\newcommand*{\l@subsection} {\@dottedtocline{2}{3.8em}{3.2em}} +\newcommand*{\l@subsubsection}{\@dottedtocline{3}{7.0em}{4.1em}} +\newcommand*{\l@paragraph} {\@dottedtocline{4}{10em}{5em}} +\newcommand*{\l@subparagraph} {\@dottedtocline{5}{12em}{6em}} +%
+% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsubsection{図目次と表目次} +% +% \begin{macro}{\listoffigures} +% 図の一覧を作成します。 +% \changes{v1.7}{2016/11/12}{Moved \cs{@mkboth} out of heading +% arg (sync with classes.dtx v1.4c)} +% \begin{macrocode} +\newcommand{\listoffigures}{% +%<*report|book> + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\listfigurename}% +% +%
\section*{\listfigurename}% + \@mkboth{\listfigurename}{\listfigurename}% + \@starttoc{lof}% +% \if@restonecol\twocolumn\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@figure} +% 図目次の体裁です。 +% \begin{macrocode} +%\newcommand*{\l@figure}{\@dottedtocline{1}{1zw}{4zw}} +%\newcommand*{\l@figure}{\@dottedtocline{1}{1.5em}{2.3em}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\listoftables} +% \changes{v1.0c}{1995/12/28}{fix the \cs{listoftable} typo.} +% 表の一覧を作成します。 +% \changes{v1.7}{2016/11/12}{Moved \cs{@mkboth} out of heading +% arg (sync with classes.dtx v1.4c)} +% \begin{macrocode} +\newcommand{\listoftables}{% +%<*report|book> + \if@twocolumn\@restonecoltrue\onecolumn + \else\@restonecolfalse\fi + \chapter*{\listtablename}% +% +%
\section*{\listtablename}% + \@mkboth{\listtablename}{\listtablename}% + \@starttoc{lot}% +% \if@restonecol\twocolumn\fi +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\l@table} +% 表目次の体裁は、図目次と同じにします。 +% \begin{macrocode} +\let\l@table\l@figure +% \end{macrocode} +% \end{macro} +% +% +% \subsection{参考文献} +% +% \begin{macro}{\bibindent} +% オープンスタイルの参考文献で使うインデント幅です。 +% \begin{macrocode} +\newdimen\bibindent +\setlength\bibindent{1.5em} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\newblock} +% |\newblock|のデフォルト定義は、小さなスペースを生成します。 +% \begin{macrocode} +\newcommand{\newblock}{\hskip .11em\@plus.33em\@minus.07em} +% \end{macrocode} +% \end{macro} +% +% \begin{environment}{thebibliography} +% 参考文献や関連図書のリストを作成します。 +% \changes{v1.7}{2016/11/12}{Moved \cs{@mkboth} out of heading +% arg (sync with classes.dtx v1.4c)} +% \begin{macrocode} +\newenvironment{thebibliography}[1] +%
{\section*{\refname}\@mkboth{\refname}{\refname}% +%{\chapter*{\bibname}\@mkboth{\bibname}{\bibname}% + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy +% \end{macrocode} +% \changes{v1.1a}{1997/01/23}{\break\LaTeX\ \texttt{!<1996/12/01!>}に合わせて修正} +% \begin{macrocode} + \clubpenalty4000 + \@clubpenalty\clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} + {\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\@openbib@code} +% |\@openbib@code|のデフォルト定義は何もしません。 +% この定義は、\Lopt{openbib}オプションによって変更されます。 +% \begin{macrocode} +\let\@openbib@code\@empty +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@biblabel} +% The label for a |\bibitem[...]| command is produced by this +% macro. The default from \file{latex.dtx} is used. +% \begin{macrocode} +% \renewcommand*{\@biblabel}[1]{[#1]\hfill} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@cite} +% The output of the |\cite| command is produced by this macro. The +% default from \file{ltbibl.dtx} is used. +% \begin{macrocode} +% \renewcommand*{\@cite}[1]{[#1]} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{索引} +% +% \begin{environment}{theindex} +% 2段組の索引を作成します。 +% 索引の先頭のページのスタイルは\pstyle{jpl@in}とします。したがって、 +% \pstyle{headings}と\pstyle{bothstyle}に適した位置に出力されます。 +% \begin{macrocode} +\newenvironment{theindex} + {\if@twocolumn\@restonecolfalse\else\@restonecoltrue\fi +%
\twocolumn[\section*{\indexname}]% +% \twocolumn[\@makeschapterhead{\indexname}]% + \@mkboth{\indexname}{\indexname}% + \thispagestyle{jpl@in}\parindent\z@ +% \end{macrocode} +% パラメータ|\columnseprule|と|\columnsep|の変更は、|\twocolumn|が +% 実行された後でなければなりません。そうしないと、索引の前のページ +% にも影響してしまうためです。 +% \changes{v1.7}{2016/11/12}{\cs{columnsep}と\cs{columnseprule}の +% 変更を後ろに移動(sync with classes.dtx v1.4f)} +% \begin{macrocode} + \parskip\z@ \@plus .3\p@\relax + \columnseprule\z@ \columnsep 35\p@ + \let\item\@idxitem} + {\if@restonecol\onecolumn\else\clearpage\fi} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\@idxitem} +% \begin{macro}{\subitem} +% \begin{macro}{\subsubitem} +% 索引項目の字下げ幅です。|\@idxitem|は|\item|の項目の字下げ幅です。 +% \begin{macrocode} +\newcommand{\@idxitem}{\par\hangindent 40\p@} +\newcommand{\subitem}{\@idxitem \hspace*{20\p@}} +\newcommand{\subsubitem}{\@idxitem \hspace*{30\p@}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\indexspace} +% 索引の``文字''見出しの前に入るスペースです。 +% \begin{macrocode} +\newcommand{\indexspace}{\par \vskip 10\p@ \@plus5\p@ \@minus3\p@\relax} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{脚注} +% +% \begin{macro}{\footnoterule} +% 本文と脚注の間に引かれる罫線です。 +% \changes{v1.7}{2016/11/12}{use \cs{@width} (sync with classes.dtx v1.3a)} +% \begin{macrocode} +\renewcommand{\footnoterule}{% + \kern-3\p@ + \hrule\@width.4\columnwidth + \kern2.6\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@footnote} +% reportとbookクラスでは、chapterレベルでリセットされます。 +% \begin{macrocode} +%\@addtoreset{footnote}{chapter} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makefntext} +% このマクロにしたがって脚注が組まれます。 +% +% |\@makefnmark|は脚注記号を組み立てるマクロです。 +% \changes{v1.7}{2016/11/12}{Replaced all \cs{hbox to} by +% \cs{hb@xt@} (sync with classes.dtx v1.3a)} +% \begin{macrocode} +%<*tate> +\newcommand\@makefntext[1]{\parindent 1zw + \noindent\hb@xt@ 2zw{\hss\@makefnmark}#1} +% +%<*yoko> +\newcommand\@makefntext[1]{\parindent 1em + \noindent\hb@xt@ 1.8em{\hss\@makefnmark}#1} +% +% \end{macrocode} +% \end{macro} +% +% +% \section{今日の日付} +% 組版時における現在の日付を出力します。 +% +% \iffalse meta-comment! +% 注意:ここで \DisableCrossrefs, \EnableCrossrefs をしているのは、 +% platex jclasses.dtx で dvi を作るときにエラーになるため。 +% \fi +% \DisableCrossrefs +% \begin{macro}{\if西暦} +% \begin{macro}{\西暦} +% \begin{macro}{\和暦} +% \changes{v1.0h}{1996/12/17}{Typo:和歴 to 和暦} +% |\today|コマンドの`年'を、 +% 西暦か和暦のどちらで出力するかを指定するコマンドです。 +% 2018年7月以降の日本語\TeX{}開発コミュニティ版(v1.8)では、 +% デフォルトを和暦ではなく西暦に設定しています。 +% \changes{v1.8}{2018/07/03}{\cs{today}のデフォルトを和暦から西暦に変更} +% \begin{macrocode} +\newif\if西暦 \西暦true +\def\西暦{\西暦true} +\def\和暦{\西暦false} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \EnableCrossrefs +% +% \begin{macro}{\heisei} +% \changes{v1.1m}{1998/04/07}{\cs{today}の計算手順を変更} +% \changes{v1.8b}{2019/04/02}{\cs{heisei}の値は$\mbox{西暦}-1988$で固定} +% |\today|コマンドを|\rightmark|で指定したとき、|\rightmark|を出力する部分 +% で和暦のための計算ができないので、クラスファイルを読み込む時点で計算して +% おきます。 +% \begin{macrocode} +\newcount\heisei \heisei\year \advance\heisei-1988\relax +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\today} +% \begin{macro}{\pltx@today@year} +% \changes{v1.8b}{2019/04/02}{\cs{today}の計算・出力方法を変更。} +% 縦組の場合は、漢数字で出力します +% \pLaTeX\ 2018-12-01以前では縦数式ディレクション時でも漢数字で出力していましたが、 +% \pLaTeX\ 2019-04-06以降からはそうしなくなりました。 +% \begin{macrocode} +\def\pltx@today@year@#1{% + \ifnum\numexpr\year-#1=1 元\else + \ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi + \kansuji\number\numexpr\year-#1\relax + \else + \number\numexpr\year-#1\relax\nobreak + \fi + \fi 年 +} +\def\pltx@today@year{% + \ifnum\numexpr\year*10000+\month*100+\day<19890108 + 昭和\pltx@today@year@{1925}% + \else\ifnum\numexpr\year*10000+\month*100+\day<20190501 + 平成\pltx@today@year@{1988}% + \else + 令和\pltx@today@year@{2018}% + \fi\fi} +\def\today{{% + \if西暦 + \ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi\kansuji\number\year + \else\number\year\nobreak\fi 年 + \else + \pltx@today@year + \fi + \ifnum1=\iftdir\ifmdir0\else1\fi\else0\fi + \kansuji\number\month 月 + \kansuji\number\day 日 + \else + \number\month\nobreak 月 + \number\day\nobreak 日 + \fi}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% +% +% \section{初期設定} +% +% \begin{macro}{\prepartname} +% \begin{macro}{\postpartname} +% \begin{macro}{\prechaptername} +% \begin{macro}{\postchaptername} +% \begin{macrocode} +\newcommand{\prepartname}{第} +\newcommand{\postpartname}{部} +%\newcommand{\prechaptername}{第} +%\newcommand{\postchaptername}{章} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\contentsname} +% \begin{macro}{\listfigurename} +% \begin{macro}{\listtablename} +% \begin{macrocode} +\newcommand{\contentsname}{目 次} +\newcommand{\listfigurename}{図 目 次} +\newcommand{\listtablename}{表 目 次} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\refname} +% \begin{macro}{\bibname} +% \begin{macro}{\indexname} +% \begin{macrocode} +%
\newcommand{\refname}{参考文献} +%\newcommand{\bibname}{関連図書} +\newcommand{\indexname}{索 引} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\figurename} +% \begin{macro}{\tablename} +% \begin{macrocode} +\newcommand{\figurename}{図} +\newcommand{\tablename}{表} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\appendixname} +% \begin{macro}{\abstractname} +% \begin{macrocode} +\newcommand{\appendixname}{付 録} +%\newcommand{\abstractname}{概 要} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \changes{v1.0d}{1996/02/29}{articleとreportのデフォルトを +% \pstyle{plain}に修正} +% \changes{v1.4}{2002/04/09}{縦組スタイルで\cs{flushbottom}しないようにした} +% \begin{macrocode} +%\pagestyle{headings} +%\pagestyle{plain} +\pagenumbering{arabic} +\raggedbottom +\if@twocolumn + \twocolumn + \sloppy +\else + \onecolumn +\fi +% \end{macrocode} +% |\@mparswitch|は傍注を左右(縦組では上下)どちらのマージンに +% 出力するかの指定です。偽の場合、傍注は一方の側にしか出力されません。 +% このスイッチを真とすると、とくに縦組の場合、奇数ページでは本文の上に、 +% 偶数ページでは本文の下に傍注が出力されますので、おかしなことになります。 +% +% また、縦組のときには、傍注を本文の下に出すようにしています。 +% |\reversemarginpar|とすると本文の上側に出力されます。 +% ただし、二段組の場合は、つねに隣接するテキスト側のマージンに出力されます。 +% \begin{macrocode} +%<*tate> +\normalmarginpar +\@mparswitchfalse +% +%<*yoko> +\if@twoside + \@mparswitchtrue +\else + \@mparswitchfalse +\fi +% +% +% \end{macrocode} +% +% +% +% \Finale +% +\endinput diff --git a/language/japanese/platex/jltxdoc.dtx b/language/japanese/platex/jltxdoc.dtx new file mode 100644 index 0000000000..3bd8d7e00d --- /dev/null +++ b/language/japanese/platex/jltxdoc.dtx @@ -0,0 +1,205 @@ +% \iffalse meta-comment +%% File: jltxdoc.dtx +% +% Copyright 1995,1996,1997 ASCII Corporation. +% Copyright (c) 2010 ASCII MEDIA WORKS +% Copyright (c) 2016-2017 Japanese TeX Development Community +% +% This file is part of the pLaTeX2e system (community edition). +% ------------------------------------------------------------- +% +% \fi +% +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0a}{1997/01/23}{\LaTeX \texttt{!<1996/12/01!>}への対応に +% 合わせて修正} +% \changes{v1.0b}{1997/07/29}{\cs{}と\texttt{"}の\cs{xspcode}を変更} +% \changes{v1.0c}{2016/07/25}{docパッケージが上書きする\cs{verb}を再々定義} +% \changes{v1.0d}{2017/09/24}{\cs{vadjust\{\}}を追加} +% \fi +% +% \iffalse +%\NeedsTeXFormat{pLaTeX2e} +%\ProvidesClass{jltxdoc}[2017/09/24 v1.0d Standard pLaTeX file] +%<*driver> +\documentclass{jltxdoc} +\GetFileInfo{jltxdoc.cls} +\title{p\LaTeXe{}ドキュメント記述用クラス\space\fileversion} +\author{Ken Nakano} +\date{作成日:\filedate} +\begin{document} + \maketitle + \DocInput{jltxdoc.dtx} +\end{document} +% +% \fi +% +% \file{jltxdoc}クラスは、\file{ltxdoc}をテンプレートにして、日本語用の +% 修正を加えています。 +% \begin{macrocode} +%<*class> +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{ltxdoc}} +\ProcessOptions +\LoadClass{ltxdoc} +% \end{macrocode} +% +% \begin{macro}{\normalsize} +% \begin{macro}{\small} +% \begin{macro}{\parindent} +% \changes{v1.0a}{1997/01/23}{\cs{normalsize}, \cs{small}などの再定義} +% \file{ltxdoc}からロードされる\file{article}クラスでの行間などの設定値で、 +% 日本語の文章を組版すると、行間が狭いように思われるので、多少広くするように +% 再設定します。また、段落先頭での字下げ量を全角一文字分とします。 +% \begin{macrocode} +\renewcommand{\normalsize}{% + \@setfontsize\normalsize\@xpt{15}% + \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ + \abovedisplayshortskip \z@ \@plus3\p@ + \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ + \belowdisplayskip \abovedisplayskip + \let\@listi\@listI} +\renewcommand{\small}{% + \@setfontsize\small\@ixpt{11}% + \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ + \abovedisplayshortskip \z@ \@plus2\p@ + \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ + \def\@listi{\leftmargin\leftmargini + \topsep 4\p@ \@plus2\p@ \@minus2\p@ + \parsep 2\p@ \@plus\p@ \@minus\p@ + \itemsep \parsep}% + \belowdisplayskip \abovedisplayskip} +\normalsize +\setlength\parindent{1zw} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\file} +% |\file|マクロは、ファイル名を示すのに用います。 +% \begin{macrocode} +\providecommand*{\file}[1]{\texttt{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pstyle} +% |\pstyle|マクロは、ページスタイル名を示すのに用います。 +% \begin{macrocode} +\providecommand*{\pstyle}[1]{\textsl{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Lcount} +% |\Lcount|マクロは、カウンタ名を示すのに用います。 +% \begin{macrocode} +\providecommand*{\Lcount}[1]{\textsl{\small#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\Lopt} +% |\Lopt|マクロは、クラスオプションやパッケージオプションを示すのに用います。 +% \begin{macrocode} +\providecommand*{\Lopt}[1]{\textsf{#1}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\dst} +% |\dst|マクロは、``\dst''を出力する。 +% \begin{macrocode} +\providecommand\dst{{\normalfont\scshape docstrip}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\NFSS} +% |\NFSS|マクロは、``\NFSS''を出力します。 +% \begin{macrocode} +\providecommand\NFSS{\textsf{NFSS}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\c@clineno} +% \begin{macro}{\mlineplus} +% |\mlineplus|マクロは、その時点でのマクロコードの行番号に、引数に指定された +% 行数だけを加えた数値を出力します。たとえば|\mlineplus{3}|とすれば、 +% 直前のマクロコードの行番号(\arabic{CodelineNo})に3を加えた数、 +% ``\mlineplus{3}''が出力されます。 +% \begin{macrocode} +\newcounter{@clineno} +\def\mlineplus#1{\setcounter{@clineno}{\arabic{CodelineNo}}% + \addtocounter{@clineno}{#1}\arabic{@clineno}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{environment}{tsample} +% |tsample|環境は、環境内に指定された内容を罫線で囲って出力をします。 +% 第一引数は、出力するボックスの高さです。 +% \file{plext.dtx}の中で使用しています。 +% このマクロ内では縦組になることに注意してください。 +% \begin{macrocode} +\def\tsample#1{% + \hbox to\linewidth\bgroup\vrule width.1pt\hss + \vbox\bgroup\hrule height.1pt + \vskip.5\baselineskip + \vbox to\linewidth\bgroup\tate\hsize=#1\relax\vss} +\def\endtsample{% + \vss\egroup + \vskip.5\baselineskip + \hrule height.1pt\egroup + \hss\vrule width.1pt\egroup} +% \end{macrocode} +% \end{environment} +% +% \begin{macro}{\DisableCrossrefs} +% \begin{macro}{\EnableCrossrefs} +% \file{jclasses.dtx}を処理するときに、|\if西暦|の部分でエラーになるため、 +% 一時的にクロスリファレンスの機能をオフにします。 +% しかし、デフォルトの定義では完全に制御できないので、ここで再定義をします。 +% \begin{macrocode} +\def\DisableCrossrefs{\@bsphack\scan@allowedfalse\@esphack} +\def\EnableCrossrefs{\@bsphack\scan@allowedtrue + \def\DisableCrossrefs{\@bsphack\scan@allowedfalse\@esphack}\@esphack} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\verb} +% p\LaTeX{}では、|\verb|コマンドを修正して直前に|\xkanjiskip|が入るように +% しています。しかし、\file{ltxdoc.cls}が読み込む\file{doc.sty}が上書き +% してしまいますので、これを再々定義します。\file{doc.sty}での定義は +%\begin{verbatim} +% \def\verb{\relax\ifmmode\hbox\else\leavevmode\null\fi +% \bgroup \let\do\do@noligs \verbatim@nolig@list +% \ttfamily \verb@eol@error \let\do\@makeother \dospecials +% \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}} +%\end{verbatim} +% となっていますので、\file{plcore.dtx}と同様に|\null|を外して|\vadjust{}|を +% 入れます。 +% \changes{v1.0c}{2016/07/25}{docパッケージが上書きする\cs{verb}を再々定義} +% \changes{v1.0d}{2017/09/24}{\cs{vadjust\{\}}を追加} +% \begin{macrocode} +\def\verb{\relax\ifmmode\hbox\else\leavevmode\vadjust{}\fi + \bgroup \let\do\do@noligs \verbatim@nolig@list + \ttfamily \verb@eol@error \let\do\@makeother \dospecials + \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\xspcode} +% コマンド名の|\|と16進数を示すための|"|の前にもスペースが入るよう、 +% これらの|\xspcode|の値を変更します。 +% \changes{v1.0b}{1997/07/29}{\cs{}と\texttt{"}の\cs{xspcode}を変更} +% \begin{macrocode} +\xspcode"5C=3 %% \ +\xspcode"22=3 %% " +% +% \end{macrocode} +% \end{macro} +% +% \Finale +% +\endinput diff --git a/language/japanese/platex/kinsoku.dtx b/language/japanese/platex/kinsoku.dtx new file mode 100644 index 0000000000..e59aa35056 --- /dev/null +++ b/language/japanese/platex/kinsoku.dtx @@ -0,0 +1,395 @@ +% \iffalse meta-comment +%% File: kinsoku.dtx +% +% Copyright 1995 ASCII Corporation. +% Copyright (c) 2010 ASCII MEDIA WORKS +% Copyright (c) 2016-2017 Japanese TeX Development Community +% +% This file is part of the pLaTeX2e system (community edition). +% ------------------------------------------------------------- +% +% \fi +% +% +% \iffalse +% \changes{v1.0}{1995/04/01}{first edition} +% \changes{v1.0a}{2016/06/08}{T1などの8ビットフォントエンコーディング +% のために128--256の文字を\texttt{\cs{xspcode}=3}に設定} +% \changes{v1.0b}{2017/08/05}{%、&、\%、\&の禁則ペナルティが +% 誤っていたのを修正(post $\rightarrow$ pre)} +% \fi +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +%<*driver> +\NeedsTeXFormat{pLaTeX2e} +% \fi +\ProvidesFile{kinsoku.dtx}[2017/08/05 v1.0b pLaTeX Kernel (community edition)] +% \iffalse +\documentclass{jltxdoc} +\GetFileInfo{kinsoku.dtx} +\title{禁則パラメータ\space\fileversion} +\author{Ken Nakano} +\date{作成日:\filedate} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% このファイルは、禁則と文字間スペースの設定について説明をしています。 +% 日本語\TeX{}の機能についての詳細は、『日本語\TeX テクニカルブックI』を +% 参照してください。 +% +% なお、このファイルのコード部分は、 +% 以前のバージョンで配布された\file{kinsoku.tex}と同一です。 +% +% \begin{macrocode} +%<*plcore> +% \end{macrocode} +% +% \section{禁則} +% +% ある文字を行頭禁則の対象にするには、|\prebreakpenalty|に正の値を指定します。 +% ある文字を行末禁則の対象にするには、|\postbreakpenalty|に正の値を指定します。 +% 数値が大きいほど、行頭、あるいは行末で改行されにくくなります。 +% +% \subsection{半角文字に対する禁則} +% ここでは、半角文字に対する禁則の設定を行なっています。 +% \changes{v1.0b}{2017/08/05}{%、&、\%、\&の禁則ペナルティが +% 誤っていたのを修正(post $\rightarrow$ pre)} +% +% \begin{macrocode} +\prebreakpenalty`!=10000 +\prebreakpenalty`"=10000 +\postbreakpenalty`\#=500 +\postbreakpenalty`\$=500 +\prebreakpenalty`\%=500 +\prebreakpenalty`\&=500 +\postbreakpenalty`\`=10000 +\prebreakpenalty`'=10000 +\prebreakpenalty`)=10000 +\postbreakpenalty`(=10000 +\prebreakpenalty`*=500 +\prebreakpenalty`+=500 +\prebreakpenalty`-=10000 +\prebreakpenalty`.=10000 +\prebreakpenalty`,=10000 +\prebreakpenalty`/=500 +\prebreakpenalty`;=10000 +\prebreakpenalty`?=10000 +\prebreakpenalty`:=10000 +\prebreakpenalty`]=10000 +\postbreakpenalty`[=10000 +% \end{macrocode} +% +% \subsection{全角文字に対する禁則} +% ここでは、全角文字に対する禁則の設定を行なっています。 +% +% \begin{macrocode} +\prebreakpenalty`、=10000 +\prebreakpenalty`。=10000 +\prebreakpenalty`,=10000 +\prebreakpenalty`.=10000 +\prebreakpenalty`・=10000 +\prebreakpenalty`:=10000 +\prebreakpenalty`;=10000 +\prebreakpenalty`?=10000 +\prebreakpenalty`!=10000 +\prebreakpenalty\jis"212B=10000 +\prebreakpenalty\jis"212C=10000 +\prebreakpenalty\jis"212D=10000 +\postbreakpenalty\jis"212E=10000 +\prebreakpenalty\jis"2139=10000 +\prebreakpenalty\jis"2144=250 +\prebreakpenalty\jis"2145=250 +\postbreakpenalty\jis"2146=10000 +\prebreakpenalty\jis"2147=5000 +\postbreakpenalty\jis"2148=5000 +\prebreakpenalty\jis"2149=5000 +\prebreakpenalty`)=10000 +\postbreakpenalty`(=10000 +\prebreakpenalty`}=10000 +\postbreakpenalty`{=10000 +\prebreakpenalty`]=10000 +\postbreakpenalty`[=10000 +\postbreakpenalty`‘=10000 +\prebreakpenalty`’=10000 +\postbreakpenalty\jis"214C=10000 +\prebreakpenalty\jis"214D=10000 +\postbreakpenalty\jis"2152=10000 +\prebreakpenalty\jis"2153=10000 +\postbreakpenalty\jis"2154=10000 +\prebreakpenalty\jis"2155=10000 +\postbreakpenalty\jis"2156=10000 +\prebreakpenalty\jis"2157=10000 +\postbreakpenalty\jis"2158=10000 +\prebreakpenalty\jis"2159=10000 +\postbreakpenalty\jis"215A=10000 +\prebreakpenalty\jis"215B=10000 +\prebreakpenalty`ー=10000 +\prebreakpenalty`+=200 +\prebreakpenalty`−=200 +\prebreakpenalty`==200 +\postbreakpenalty`#=200 +\postbreakpenalty`$=200 +\prebreakpenalty`%=200 +\prebreakpenalty`&=200 +\prebreakpenalty`ぁ=150 +\prebreakpenalty`ぃ=150 +\prebreakpenalty`ぅ=150 +\prebreakpenalty`ぇ=150 +\prebreakpenalty`ぉ=150 +\prebreakpenalty`っ=150 +\prebreakpenalty`ゃ=150 +\prebreakpenalty`ゅ=150 +\prebreakpenalty`ょ=150 +\prebreakpenalty\jis"246E=150 +\prebreakpenalty`ァ=150 +\prebreakpenalty`ィ=150 +\prebreakpenalty`ゥ=150 +\prebreakpenalty`ェ=150 +\prebreakpenalty`ォ=150 +\prebreakpenalty`ッ=150 +\prebreakpenalty`ャ=150 +\prebreakpenalty`ュ=150 +\prebreakpenalty`ョ=150 +\prebreakpenalty\jis"256E=150 +\prebreakpenalty\jis"2575=150 +\prebreakpenalty\jis"2576=150 +% \end{macrocode} +% +% \section{文字間のスペース} +% +% ある英字の前後と、その文字に隣合う漢字に挿入されるスペースを制御するには、 +% |\xspcode|を用います。 +% +% ある漢字の前後と、その文字に隣合う英字に挿入されるスペースを制御するには、 +% |\inhibitxspcode|を用います。 +% +% \subsection{ある英字と前後の漢字の間の制御} +% ここでは、英字に対する設定を行なっています。 +% +% 指定する数値とその意味は次のとおりです。 +% +% \begin{center} +% \begin{tabular}{ll} +% 0 & 前後の漢字の間での処理を禁止する。\\ +% 1 & 直前の漢字との間にのみ、スペースの挿入を許可する。\\ +% 2 & 直後の漢字との間にのみ、スペースの挿入を許可する。\\ +% 3 & 前後の漢字との間でのスペースの挿入を許可する。\\ +% \end{tabular} +% \end{center} +% +% \begin{macrocode} +\xspcode`(=1 +\xspcode`)=2 +\xspcode`[=1 +\xspcode`]=2 +\xspcode``=1 +\xspcode`'=2 +\xspcode`;=2 +\xspcode`,=2 +\xspcode`.=2 +% \end{macrocode} +% +% +% T1などの8ビットフォントエンコーディングで128--255の文字は欧文文字ですので、 +% 周囲の和文文字との間に|\xkanjiskip|が挿入される必要があります。そこで、 +% 奥村さんの\file{jsclasses}や田中さんのup\LaTeX{}と同等の対処をします。 +% \changes{v1.0a}{2016/06/08}{T1などの8ビットフォントエンコーディング +% のために128--256の文字を\texttt{\cs{xspcode}=3}に設定} +% +% \begin{macrocode} +\xspcode"80=3 +\xspcode"81=3 +\xspcode"82=3 +\xspcode"83=3 +\xspcode"84=3 +\xspcode"85=3 +\xspcode"86=3 +\xspcode"87=3 +\xspcode"88=3 +\xspcode"89=3 +\xspcode"8A=3 +\xspcode"8B=3 +\xspcode"8C=3 +\xspcode"8D=3 +\xspcode"8E=3 +\xspcode"8F=3 +\xspcode"90=3 +\xspcode"91=3 +\xspcode"92=3 +\xspcode"93=3 +\xspcode"94=3 +\xspcode"95=3 +\xspcode"96=3 +\xspcode"97=3 +\xspcode"98=3 +\xspcode"99=3 +\xspcode"9A=3 +\xspcode"9B=3 +\xspcode"9C=3 +\xspcode"9D=3 +\xspcode"9E=3 +\xspcode"9F=3 +\xspcode"A0=3 +\xspcode"A1=3 +\xspcode"A2=3 +\xspcode"A3=3 +\xspcode"A4=3 +\xspcode"A5=3 +\xspcode"A6=3 +\xspcode"A7=3 +\xspcode"A8=3 +\xspcode"A9=3 +\xspcode"AA=3 +\xspcode"AB=3 +\xspcode"AC=3 +\xspcode"AD=3 +\xspcode"AE=3 +\xspcode"AF=3 +\xspcode"B0=3 +\xspcode"B1=3 +\xspcode"B2=3 +\xspcode"B3=3 +\xspcode"B4=3 +\xspcode"B5=3 +\xspcode"B6=3 +\xspcode"B7=3 +\xspcode"B8=3 +\xspcode"B9=3 +\xspcode"BA=3 +\xspcode"BB=3 +\xspcode"BC=3 +\xspcode"BD=3 +\xspcode"BE=3 +\xspcode"BF=3 +\xspcode"C0=3 +\xspcode"C1=3 +\xspcode"C2=3 +\xspcode"C3=3 +\xspcode"C4=3 +\xspcode"C5=3 +\xspcode"C6=3 +\xspcode"C7=3 +\xspcode"C8=3 +\xspcode"C9=3 +\xspcode"CA=3 +\xspcode"CB=3 +\xspcode"CC=3 +\xspcode"CD=3 +\xspcode"CE=3 +\xspcode"CF=3 +\xspcode"D0=3 +\xspcode"D1=3 +\xspcode"D2=3 +\xspcode"D3=3 +\xspcode"D4=3 +\xspcode"D5=3 +\xspcode"D6=3 +\xspcode"D7=3 +\xspcode"D8=3 +\xspcode"D9=3 +\xspcode"DA=3 +\xspcode"DB=3 +\xspcode"DC=3 +\xspcode"DD=3 +\xspcode"DE=3 +\xspcode"DF=3 +\xspcode"E0=3 +\xspcode"E1=3 +\xspcode"E2=3 +\xspcode"E3=3 +\xspcode"E4=3 +\xspcode"E5=3 +\xspcode"E6=3 +\xspcode"E7=3 +\xspcode"E8=3 +\xspcode"E9=3 +\xspcode"EA=3 +\xspcode"EB=3 +\xspcode"EC=3 +\xspcode"ED=3 +\xspcode"EE=3 +\xspcode"EF=3 +\xspcode"F0=3 +\xspcode"F1=3 +\xspcode"F2=3 +\xspcode"F3=3 +\xspcode"F4=3 +\xspcode"F5=3 +\xspcode"F6=3 +\xspcode"F7=3 +\xspcode"F8=3 +\xspcode"F9=3 +\xspcode"FA=3 +\xspcode"FB=3 +\xspcode"FC=3 +\xspcode"FD=3 +\xspcode"FE=3 +\xspcode"FF=3 +% \end{macrocode} +% +% \subsection{ある漢字と前後の英字の間の制御} +% ここでは、漢字に対する設定を行なっています。 +% +% 指定する数値とその意味は次のとおりです。 +% +% \begin{center} +% \begin{tabular}{ll} +% 0 & 前後の英字との間にスペースを挿入することを禁止する。\\ +% 1 & 直前の英字との間にスペースを挿入することを禁止する。\\ +% 2 & 直後の英字との間にスペースを挿入することを禁止する。\\ +% 3 & 前後の英字との間でのスペースの挿入を許可する。\\ +% \end{tabular} +% \end{center} +% +% \begin{macrocode} +\inhibitxspcode`、=1 +\inhibitxspcode`。=1 +\inhibitxspcode`,=1 +\inhibitxspcode`.=1 +\inhibitxspcode`;=1 +\inhibitxspcode`?=1 +\inhibitxspcode`)=1 +\inhibitxspcode`(=2 +\inhibitxspcode`]=1 +\inhibitxspcode`[=2 +\inhibitxspcode`}=1 +\inhibitxspcode`{=2 +\inhibitxspcode`‘=2 +\inhibitxspcode`’=1 +\inhibitxspcode`“=2 +\inhibitxspcode`”=1 +\inhibitxspcode`〔=2 +\inhibitxspcode`〕=1 +\inhibitxspcode`〈=2 +\inhibitxspcode`〉=1 +\inhibitxspcode`《=2 +\inhibitxspcode`》=1 +\inhibitxspcode`「=2 +\inhibitxspcode`」=1 +\inhibitxspcode`『=2 +\inhibitxspcode`』=1 +\inhibitxspcode`【=2 +\inhibitxspcode`】=1 +\inhibitxspcode`―=0 +\inhibitxspcode`〜=0 +\inhibitxspcode`…=0 +\inhibitxspcode`¥=0 +\inhibitxspcode`°=1 +\inhibitxspcode`′=1 +\inhibitxspcode`″=1 +% \end{macrocode} +% +% \begin{macrocode} +% +% \end{macrocode} +% +% \Finale +% +\endinput diff --git a/language/japanese/platex/pl209.dtx b/language/japanese/platex/pl209.dtx new file mode 100644 index 0000000000..104ff0ea6c --- /dev/null +++ b/language/japanese/platex/pl209.dtx @@ -0,0 +1,240 @@ +% \iffalse meta-comment +%% File: pl209.dtx +% +% Copyright 1995,1996,1997 ASCII Corporation. +% Copyright (c) 2010 ASCII MEDIA WORKS +% Copyright (c) 2016 Japanese TeX Development Community +% +% This file is part of the pLaTeX2e system (community edition). +% ------------------------------------------------------------- +% +% \fi +% +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0}{1995/03/28}{Based on latex209.dtx v0.39} +% \changes{v1.0b}{1995/08/30}{Based on latex209.dtx v0.46} +% \changes{v1.0c}{1995/11/21}{Add footnote relatex commands.} +% \changes{v1.0d}{1997/01/17}{Only define for p\LaTeXe relatex codes.} +% \changes{v1.0e}{1997/01/28}{書体変更の二文字コマンドを旧版互換にした。} +% \changes{v1.0f}{1997/06/25}{\cs{em}で和文を強調書体に} +% \fi +% +% \iffalse +%<*package> +\NeedsTeXFormat{pLaTeX2e} +\ProvidesFile{pl209.dtx}[1997/06/25 v1.0f Standard pLaTeX file] +% +%<*driver> +\documentclass{jltxdoc} +\GetFileInfo{pl209.dtx} +\title{p\LaTeXe\\2.09互換モード用マクロ\space\fileversion} +\author{Ken Nakano \& Hideaki Togashi} +\date{作成日:\filedate} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \section{\dst 用モジュール} +% \dst で以下のモジュール名を指定することで、対象となる部分を取り出す +% ことができます。 +% +% \begin{center} +% \begin{tabular}{ll} +% pl209 & \file{pl209.def}ファイルを生成\\ +% oldfonts & \file{oldpfont.sty}を生成\\ +% style & +% \begin{tabular}[t]{ll} +% jarticle & \file{jarticle.sty}ファイルを生成 \\ +% jbook & \file{jbook.sty}ファイルを生成\\ +% jreport & \file{jreport.sty}ファイルを生成\\ +% tarticle & \file{tarticle.sty}ファイルを生成 \\ +% tbook & \file{tbook.sty}ファイルを生成\\ +% treport & \file{treport.sty}ファイルを生成 +% \end{tabular} +% \end{tabular} +% \end{center} +% +% +% \section{2.09互換マクロ} +% 2.09用のコマンド定義ファイルがロードされたとき、メッセージを出力します。 +% また、\LaTeX{}の2.09コマンドマクロ定義をロードします。 +% \begin{macrocode} +%<*pl209> +\typeout{Entering pLaTeX 2.09 compatibility mode.} +\input{latex209.def} +% +% \end{macrocode} +% フォント選択コマンドのトレースのために\file{ptrace}パッケージをロードします。 +% \changes{v1.0e}{1997/02/20}{Typemiss:oldlfont from oldlfonts} +% \begin{macrocode} +%\RequirePackage{oldlfont} +%\RequirePackage{ptrace} +% \end{macrocode} +% +% \begin{macro}{\Rensuji} +% \begin{macro}{\prensuji} +% p\LaTeXe{}では、|\Rensuji|, |\prensuji|の動作を|\rensuji|コマンドが +% カバーしています。 +% \begin{macrocode} +%<*pl209> +\let\Rensuji\rensuji +\let\prensuji\rensuji +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@footnotemark} +% \begin{macro}{\@makefnmark} +% 脚注の印を出力するマクロを、組み方向に応じて、脚注の方向が変わるように +% します。 +% \begin{macrocode} +%<*pl209> +\def\@footnotemark{\leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\fi + \ifydir\@makefnmark + \else\hbox to\z@{\hskip-.25zw\raise2\cht\@makefnmark\hss}\fi + \ifhmode\spacefactor\@x@sf\fi\relax} +\def\@makefnmark{\hbox{\ifydir $\m@th^{\@thefnmark}$ + \else\hbox{\yoko$\m@th^{\@thefnmark}$}\fi}} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macrocode} +%<*pl209> +\fontencoding{JY1} +\fontfamily{mc} +\fontsize{10}{15} +% +% \end{macrocode} +% +% \begin{macrocode} +%<*pl209|oldfonts> +\DeclareSymbolFont{mincho}{JY1}{mc}{m}{n} +\DeclareSymbolFont{gothic}{JY1}{gt}{m}{n} +\DeclareSymbolFontAlphabet\mathmc{mincho} +\DeclareSymbolFontAlphabet\mathgt{gothic} +\SetSymbolFont{mincho}{bold}{JY1}{gt}{m}{n} +\jfam\symmincho +% \end{macrocode} +% \changes{v1.0e}{1997/01/29}{二文字書体変更コマンドの動作を旧版と同等にした。} +% |\mc|と|\gt|は、和文フォントを変更しますが、欧文フォントには影響しません。 +% \begin{macrocode} +\DeclareRobustCommand\mc{% + \kanjiencoding{\kanjiencodingdefault}% + \kanjifamily{\mcdefault}% + \kanjiseries{\kanjiseriesdefault}% + \kanjishape{\kanjishapedefault}% + \selectfont\mathgroup\symmincho} +\DeclareRobustCommand\gt{% + \kanjiencoding{\kanjiencodingdefault}% + \kanjifamily{\gtdefault}% + \kanjiseries{\kanjiseriesdefault}% + \kanjishape{\kanjishapedefault}% + \selectfont\mathgroup\symgothic} +% \end{macrocode} +% |\bf|コマンドは、和文フォントをゴシックにし、欧文フォントをボールドに +% します。 +% \begin{macrocode} +\DeclareRobustCommand\bf{\normalfont\bfseries\mathgroup\symbold\jfam\symgothic} +% \end{macrocode} +% |\rm|, |\sf|, |\sl|, |\sc|, |\it|, |\tt|の各コマンドを、欧文ファミリだけを +% デフォルトフォントから属性を変更するようにし、和文フォントは影響を +% 受けないように修正します。 +% \begin{macrocode} +\DeclareRobustCommand\roman@normal{% + \romanencoding{\encodingdefault}% + \romanfamily{\familydefault}% + \romanseries{\seriesdefault}% + \romanshape{\shapedefault}% + \selectfont\ignorespaces} +\DeclareRobustCommand\rm{\roman@normal\rmfamily\mathgroup\symoperators} +\DeclareRobustCommand\sf{\roman@normal\sffamily\mathgroup\symsans} +\DeclareRobustCommand\sl{\roman@normal\slshape\mathgroup\symslanted} +\DeclareRobustCommand\sc{\roman@normal\scshape\mathgroup\symsmallcaps} +\DeclareRobustCommand\it{\roman@normal\itshape\mathgroup\symitalic} +\DeclareRobustCommand\tt{\roman@normal\ttfamily\mathgroup\symtypewriter} +% \end{macrocode} +% +% \begin{macro}{\em} +% \changes{v1.0f}{1997/06/25}{\cs{em}で和文を強調書体に} +% |\em|コマンドで、和文フォントも|\gt|に切り替えるようにしました。 +% \begin{macrocode} +\DeclareRobustCommand\em{% + \@nomath\em + \ifdim \fontdimen\@ne\font>\z@\mc\rm\else\gt\it\fi} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macrocode} +%<*pl209> +\let\mcfam\symmincho +\let\gtfam\symgothic +\renewcommand\vpt {\edef\f@size{\@vpt}\rm\mc} +\renewcommand\vipt {\edef\f@size{\@vipt}\rm\mc} +\renewcommand\viipt {\edef\f@size{\@viipt}\rm\mc} +\renewcommand\viiipt{\edef\f@size{\@viiipt}\rm\mc} +\renewcommand\ixpt {\edef\f@size{\@ixpt}\rm\mc} +\renewcommand\xpt {\edef\f@size{\@xpt}\rm\mc} +\renewcommand\xipt {\edef\f@size{\@xipt}\rm\mc} +\renewcommand\xiipt {\edef\f@size{\@xiipt}\rm\mc} +\renewcommand\xivpt {\edef\f@size{\@xivpt}\rm\mc} +\renewcommand\xviipt{\edef\f@size{\@xviipt}\rm\mc} +\renewcommand\xxpt {\edef\f@size{\@xxpt}\rm\mc} +\renewcommand\xxvpt {\edef\f@size{\@xxvpt}\rm\mc} +% +% \end{macrocode} +% そして、最後に\file{pl209.cfg}というファイルがあれば、それをロードします。 +% \begin{macrocode} +%\InputIfFileExists{pl209.cfg}{}{} +% \end{macrocode} +% +% +% \section{スタイルファイル} +% 以下は、p\LaTeX~2.09での標準スタイルファイルです。 +% p\LaTeXe{}のクラスファイルをロードするようにしています。 +% \begin{macrocode} +%<*style> +%<*jarticle|jbook|jreport|tarticle|tbook|treport> +\NeedsTeXFormat{pLaTeX2e} +% +%<*jarticle> +\@obsoletefile{jarticle.cls}{jarticle.sty} +\LoadClass{jarticle} +% +%<*tarticle> +\@obsoletefile{tarticle.cls}{tarticle.sty} +\LoadClass{tarticle} +% +%<*jbook> +\@obsoletefile{jbook.cls}{jbook.sty} +\LoadClass{jbook} +% +%<*tbook> +\@obsoletefile{tbook.cls}{tbook.sty} +\LoadClass{tbook} +% +%<*jreport> +\@obsoletefile{jreport.cls}{jreport.sty} +\LoadClass{jreport} +% +%<*treport> +\@obsoletefile{treport.cls}{treport.sty} +\LoadClass{treport} +% +% +% \end{macrocode} +% +% \Finale +% +\endinput diff --git a/language/japanese/platex/pl209.ins b/language/japanese/platex/pl209.ins new file mode 100644 index 0000000000..c4ba0d8393 --- /dev/null +++ b/language/japanese/platex/pl209.ins @@ -0,0 +1,32 @@ +\input docstrip +\keepsilent +\ifToplevel{\askonceonly} +\usedir{tex/platex/base} + +\Msg{*** Generating the pLaTeX compatibility mode files ***} + +\preamble + +Copyright (c) 2010 ASCII MEDIA WORKS +Copyright (c) 2016-2018 Japanese TeX Development Community + +This file is part of the pLaTeX2e system (community edition). +------------------------------------------------------------- + +\endpreamble + +\generate{ + \file{pl209.def}{\from{pl209.dtx}{pl209}} + \file{oldpfont.sty}{\from{pl209.dtx}{oldfonts}} +} + +\generate{ + \file{jarticle.sty}{\from{pl209.dtx}{style,jarticle}} + \file{tarticle.sty}{\from{pl209.dtx}{style,tarticle}} + \file{jbook.sty}{\from{pl209.dtx}{style,jbook}} + \file{tbook.sty}{\from{pl209.dtx}{style,tbook}} + \file{jreport.sty}{\from{pl209.dtx}{style,jreport}} + \file{treport.sty}{\from{pl209.dtx}{style,treport}} +} + +\endbatchfile diff --git a/language/japanese/platex/platex-en.pdf b/language/japanese/platex/platex-en.pdf new file mode 100644 index 0000000000..99c3e7200e Binary files /dev/null and b/language/japanese/platex/platex-en.pdf differ diff --git a/language/japanese/platex/platex.dtx b/language/japanese/platex/platex.dtx new file mode 100644 index 0000000000..e559bdc473 --- /dev/null +++ b/language/japanese/platex/platex.dtx @@ -0,0 +1,1793 @@ +% \iffalse meta-comment +%% File: platex.dtx +% +% Copyright 1995,1996 ASCII Corporation. +% Copyright (c) 2010 ASCII MEDIA WORKS +% Copyright (c) 2016-2018 Japanese TeX Development Community +% +% This file is part of the pLaTeX2e system (community edition). +% ------------------------------------------------------------- +% +% \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 +% +% \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} +% +% \fi +% +% \StopEventually{} +% +% \iffalse +%\ifJAPANESE +% \changes{v1.0}{1995/05/08}{最初のバージョン} +% \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}{\dst{}にともなう変更} +% \changes{v1.0c}{1997/01/23}{\LaTeX\ \textt{!<1996/12/01!>}に合わせて修正} +% \changes{v1.0c}{1997/01/23}{gind.istとgglo.istを +% \$TEXMF/tex/latex2e/baseディレクトリからコピーしないようにした} +% \changes{v1.0c}{1997/01/25}{pldoc.dicをfilecontents環境により作成} +% \changes{v1.0c}{1997/01/29}{\file{pltpatch.ltx}を\file{plpatch.ltx}に名称変更} +% \changes{v1.0d}{2016/01/27}{\pLaTeXe{}に付属するファイルの説明を更新} +% \changes{v1.0d}{2016/01/27}{rmコマンド実行前に存在確認するようにした} +% \changes{v1.0e}{2016/02/16}{platexreleaseの説明を追加} +% \changes{v1.0f}{2016/04/12}{ドキュメントを更新} +% \changes{v1.0g}{2016/05/07}{フォーマット作成時に\LaTeX{}のバナーを一旦保存} +% \changes{v1.0h}{2016/05/08}{ドキュメントから\file{plpatch.ltx}を除外} +% \changes{v1.0i}{2016/05/12}{一時コマンド\cs{orgdump}を最終的に未定義へ} +% \changes{v1.0j}{2016/05/20}{pfltraceの説明を追加} +% \changes{v1.0k}{2016/05/21}{変更履歴も出力するようにした} +% \changes{v1.0l}{2016/06/19}{パッチレベルを\file{plvers.dtx}から取得} +% \changes{v1.0m}{2016/08/26}{\file{platex.cfg}の読み込みを +% \file{plcore.ltx}から\file{platex.ltx}へ移動} +% \changes{v1.0n}{2016/09/14}{\LaTeX{}のバナーの保存しかたを改良} +% \changes{v1.0o}{2017/09/24}{パッチレベルが負の数の場合をpre-release扱いへ} +% \changes{v1.0p}{2017/11/11}{\LaTeX{}のバナーを保存するコードを +% \file{platex.ltx}から\file{plcore.ltx}へ移動} +% \changes{v1.0q}{2017/11/29}{英語版ドキュメントを追加} +% \changes{v1.0r}{2017/12/02}{英語の参考文献も追加} +% \changes{v1.0s}{2017/12/05}{デフォルト設定ファイルの読み込みを +% \file{plcore.ltx}から\file{platex.ltx}へ移動} +% \changes{v1.0t}{2018/02/07}{ascmacパッケージを独立させた} +% \changes{v1.0u}{2018/02/18}{nidanfloatパッケージを独立させた} +% \changes{v1.0v}{2018/04/06}{最新のsource2eへの追随} +% \changes{v1.0w}{2018/04/08}{安全のためフォーマット作成時の +% バナー表示をやめた} +% \changes{v1.0x}{2018/09/03}{ドキュメントを更新} +% \changes{v1.0x}{2018/09/03}{platexcheatに言及} +% \changes{v1.0x}{2018/09/03}{plautopatchに言及} +% \changes{v1.0y}{2018/09/22}{最終更新日を\file{pldoc.pdf}に表示} +%\else +% \changes{v1.0}{1995/05/08}{first edition} +% \changes{v1.0a}{1995/08/25}{Added 'Compatibility', `Usage of \dst{}' +% and `References'} +% \changes{v1.0b}{1996/02/01}{Adjusted for the latest +% \dst\ (\file{omake-sh.ins} and \file{omake-pl.ins}.} +% \changes{v1.0c}{1997/01/23}{Adjusted for the latest \dst.} +% \changes{v1.0c}{1997/01/23}{Adjusted for \LaTeX\ \textt{!<1996/12/01!>}.} +% \changes{v1.0c}{1997/01/23}{Don't copy gind.ist and gglo.ist from +% \$TEXMF/tex/latex2e/base directory.} +% \changes{v1.0c}{1997/01/25}{Add to filecontents environment for pldoc.dic.} +% \changes{v1.0c}{1997/01/29}{Rename \file{pltpatch.ltx} to \file{plpatch.ltx}.} +% \changes{v1.0d}{2016/01/27}{Updated descriptions of \pLaTeXe\ files} +% \changes{v1.0d}{2016/01/27}{Add -e test before rm command} +% \changes{v1.0e}{2016/02/16}{Add a description of platexrelease} +% \changes{v1.0f}{2016/04/12}{Update document.} +% \changes{v1.0g}{2016/05/07}{Save \LaTeX\ banner} +% \changes{v1.0h}{2016/05/08}{Exclude \file{plpatch.ltx} from the document} +% \changes{v1.0i}{2016/05/12}{Undefine temporary command +% \cs{orgdump} in the end.} +% \changes{v1.0j}{2016/05/20}{Add description of `pfltrace'} +% \changes{v1.0k}{2016/05/21}{Print also changes.} +% \changes{v1.0l}{2016/06/19}{Get the patch level from \file{plvers.dtx}} +% \changes{v1.0m}{2016/08/26}{Moved loading \file{platex.cfg} +% from \file{plcore.ltx} to \file{platex.ltx}} +% \changes{v1.0n}{2016/09/14}{Improved banner saving method} +% \changes{v1.0o}{2017/09/24}{Allow negative patch level for pre-release} +% \changes{v1.0p}{2017/11/11}{Moved banner saving code from +% \file{platex.ltx} to \file{plcore.ltx}} +% \changes{v1.0q}{2017/11/29}{New English documentation added!} +% \changes{v1.0r}{2017/12/02}{English references added} +% \changes{v1.0s}{2017/12/05}{Moved loading default settings +% from \file{plcore.ltx} to \file{platex.ltx}} +% \changes{v1.0t}{2018/02/07}{Moved ascmac package to separate bundle} +% \changes{v1.0u}{2018/02/18}{Moved nidanfloat package to separate bundle} +% \changes{v1.0v}{2018/04/06}{Sync with the latest \file{source2e.tex}} +% \changes{v1.0w}{2018/04/08}{Stop showing banner during +% format generation for safety} +% \changes{v1.0x}{2018/09/03}{Update document.} +% \changes{v1.0x}{2018/09/03}{Mention platexcheat (Japanese only).} +% \changes{v1.0x}{2018/09/03}{Mention plautopatch.} +% \changes{v1.0y}{2018/09/22}{Show last update info on \file{pldoc.pdf}} +%\fi +% \fi +% +% \iffalse +%<*driver> +\NeedsTeXFormat{pLaTeX2e} +% \fi +\ProvidesFile{platex.dtx}[2018/09/22 v1.0y pLaTeX document file] +% \iffalse +\documentclass{jltxdoc} +\usepackage{plext} +\GetFileInfo{platex.dtx} +\ifJAPANESE +\title{\pLaTeXe{}について} +\author{中野 賢 \& 日本語\TeX{}開発コミュニティ} +\date{作成日:\filedate} +\renewcommand{\refname}{参考文献} +\GlossaryPrologue{\section*{変更履歴}% + \markboth{変更履歴}{変更履歴}% + \addcontentsline{toc}{section}{変更履歴}} +\else +\title{About \pLaTeXe{}} +\author{Ken Nakano \& Japanese \TeX\ Development Community} +\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 (platex.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} +% +% \fi +% +% +%\ifJAPANESE +% \changes{v1.0f}{2016/04/12}{ドキュメントを更新} +% \changes{v1.0k}{2016/05/21}{変更履歴も出力するようにした} +% \changes{v1.0q}{2017/11/29}{英語版ドキュメントを追加} +% \changes{v1.0x}{2018/09/03}{ドキュメントを更新} +%\else +% \changes{v1.0f}{2016/04/12}{Update document.} +% \changes{v1.0k}{2016/05/21}{Print also changes.} +% \changes{v1.0q}{2017/11/29}{New English documentation added!} +% \changes{v1.0x}{2018/09/03}{Update document.} +%\fi +%\ifJAPANESE +% \begin{chuui} +% この文書では「コミュニティ版\pLaTeXe{}」について簡単に説明します。 +% 株式会社アスキー(現アスキー・メディアワークス +% \footnote{アスキー日本語\TeX{}(\pTeX{})、 +% \texttt{http://ascii.asciimw.jp/pb/ptex/}})が配布している +% \pLaTeXe{}(以下、アスキー版\pLaTeXe{})とは異なる内容ですので、 +% 注意してください。 +% \end{chuui} +%\else +% \begin{chuui}[] +% This document provides a brief description of \pLaTeXe, the Japanese +% extended version of \LaTeXe. Current maintainer of +% \pLaTeXe\ is Japanese \TeX\ Development Community. +% \end{chuui} +%\fi +% +%\ifJAPANESE +% 2010年以降、アスキー\pTeX{}は、国際的に広く使われている\TeX\ Liveという +% ディストリビューションに取り込まれ、そこで独自の改良や仕様変更が加えられ +% てきました。最近(2011年以降)の\TeX\ LiveやW32\TeX{}では、\pLaTeX{}も +% 元々の\pTeX{}ではなく、その拡張版\epTeX{}をエンジンに用いるようになって +% います。また、\pLaTeX{}のベースである\LaTeX{}も更新が進められています。 +% +% こうした流れにあわせた新しい\pLaTeX{}として、アスキー版からforkして +% 日本語\TeX{}開発コミュニティ (Japanese \TeX\ Development Community) が +% 配布しているものが、コミュニティ版\pLaTeX{}です。開発中の版はGitHubの +% リポジトリ\footnote{\texttt{https://github.com/texjporg/platex}}で +% 管理しています。コミュニティ版\pLaTeX{}はアスキー版とは異なりますので、 +% バグレポートはアスキー宛てではなく、日本語\TeX{}開発コミュニティに報告 +% してください。\TeX\ ForumやGitHubのIssueシステムが利用できます。 +% +% この文書(platex.pdf)はコミュニティ版\pLaTeX{}の概要を説明したものです +% が、内容はアスキー版(1995年頃)からほとんど変わっていませんので、 +% 今では歴史的な文書ということにしておきます。 +% 最近の\pLaTeX{}の更新内容は\pLaTeX{}ニュース(アスキー版:plnews*.pdf、 +% コミュニティ版:plnewsc*.pdf)を参照してください。また、 +% 実際の\pLaTeX{}のソースコードはpldoc.pdfで説明しています。 +%\else +% \def\JLaTeX{\leavevmode\lower.5ex\hbox{J}\kern-.15em\LaTeX} +% \pLaTeX\ is a Japanese \LaTeX\ format, which is adjusted/extended +% to be more suitable for writing Japanese documents. +% It requires \pTeX, a \TeX\ engine with extensions for +% Japanese typesetting, which is designed for high-quality +% Japanese book ``p''ublishing.\footnote{There is another +% old implementation of Japanese \LaTeX, called +% \JLaTeX\ (not available in \TeX\ Live). +% Also, MiK\TeX\ has another program \texttt{platex}, but +% it has nothing to do with our Japanese \pLaTeX!} The developent of +% both \pTeX\ and \pLaTeX\ was done by ASCII Corporation (and its +% successor ASCII Media Works\footnote{The \pTeX\ website: +% \texttt{http://ascii.asciimw.jp/pb/ptex/} (closed in 2016).}), +% so they are often refered to as ``ASCII \pTeX'' and ``ASCII \pLaTeX'' +% respectively. +% +% In 2010, ASCII \pTeX\ was incorporated into the +% world-wide \TeX\ distribution, \TeX\ Live. Since then, \pTeX\ has +% been maintained/improved/changed along with \TeX\ Live sources. +% In recent versions of \TeX\ Live and W32\TeX\ (arround 2011), +% the default engine of \pLaTeX\ changed from original \pTeX\ to +% \epTeX\ (\pTeX\ with \eTeX\ extension). +% Also, the original \LaTeX\ itself is also frequently updated. +% On the other hand, \pLaTeX\ remained unchanged since 2006, +% which resulted in some incompatibility and limitations. +% +% To follow these upstream changes, we (Japanese \TeX\ Development +% Community\footnote{\texttt{https://texjp.org}}) decided to fork +% ASCII \pLaTeX\ and distribute the ``community edition.'' +% The development version is available from +% GitHub repository\footnote{\texttt{https://github.com/texjporg/platex}}. +% The forked community edition is different from the original ASCII +% edition, so any bug reports and requests should be sent to +% Japanese \TeX\ Development Community, using GitHub Issue system. +% +% This document (platex-en.pdf) is a brief explanation of +% the \pLaTeXe\ community edition. It is somewhat of a historical +% document now, since \pLaTeXe\ came into existence in 1995 +% (although the English translation has been done by +% Japanese \TeX\ Development Community since 2017). +% The detail of source codes are described separately in pldoc-en.pdf. +%\fi +% +% +% \clearpage +% +%\ifJAPANESE +% \section{この文書について}\label{platex:intro} +% この文書は\pLaTeXe{}の概要を示していますが、使い方のガイドではありません。 +% \pLaTeXe{}の機能全般については、\cite{platex2e-book}を参照してください。 +% また、\cite{tate-book}で説明されていた縦組向けの拡張コマンドに +% ついては、\file{pldoc.pdf}の中の\file{plext.dtx}の項目を参照してください。 +% +% 日本語の組版処理については、 +% \pTeX{}(あるいはその前身の「日本語\TeX{}」)に関する文献 +% \cite{jtex-tech}や\cite{ajt2008okumura}(英語), \cite{tb29hamano}(英語)も +% 併せてご参照ください。 +% +% \LaTeX{}の機能については、\cite{latex-book2}や\cite{latex-comp}などを +% 参照してください。新しい機能については\file{usrguide.tex}を参照してください。 +% \pLaTeX{}のコマンド一覧は「\pLaTeXe{}チートシート」(platexsheet.pdf) または +% その\textsf{jsclasses}版 (platexsheet-jsclasses.pdf) が参考に +% なるでしょう\footnote{両者のPDFとも、コマンドラインで +% \texttt{texdoc -l platexcheat}を実行すると表示されます。}。 +% \changes{v1.0}{1995/05/08}{最初のバージョン} +% \changes{v1.0a}{1995/08/25}{互換性について、\dst{}の使い方、参考文献を追加} +% \changes{v1.0r}{2017/12/02}{英語の参考文献も追加} +% \changes{v1.0x}{2018/09/03}{platexcheatに言及} +%\else +% \section{Introduction to this document}\label{platex:intro} +% This document briefly describes \pLaTeXe, but is not a manual of \pLaTeXe. +% For the basic functions of \pLaTeXe, see \cite{platex2e-book} (in Japanese). +% For extensions of some commands for vertical writing (which were first +% described in \cite{tate-book} in Japanese), see \file{plext.dtx} section +% in \file{pldoc-en.pdf}. +% +% For Japanese typesetting, please refer to the documentation of \pTeX\ (or +% ``Japanese \TeX''; the preliminary version of \pTeX), +% \cite{jtex-tech} (in Japanese), \cite{ajt2008okumura} (in English) +% and \cite{tb29hamano} (in English). +% \changes{v1.0}{1995/05/08}{first edition} +% \changes{v1.0a}{1995/08/25}{Added 'Compatibility', `Usage of \dst{}' +% and `References'} +% \changes{v1.0r}{2017/12/02}{English references added} +% \changes{v1.0x}{2018/09/03}{Mention platexcheat (Japanese only).} +%\fi +% +%\ifJAPANESE +% この文書の構成は次のようになっています。 +% +% \begin{quote} +% \begin{description} +% \item[第\ref{platex:intro}節] +% この節です。この文書についての概要を述べています。 +% +% \item[第\ref{platex:plcore}節] +% \pLaTeXe{}で拡張した機能についての概要です。 +% 付属のクラスファイルやパッケージファイルについても簡単に +% 説明しています。 +% +% \item[第\ref{platex:compatibility}節] +% 現在のバージョンの\pLaTeX{}と旧バージョン、あるいは元となっている +% \LaTeX{}との互換性について述べています。 +% +% \item[付録\ref{app:dst}] +% この文書ソース(platex.dtx)の +% \dst{}のためのオプションについて述べています。 +% +% \item[付録\ref{app:pldoc}] +% \pLaTeXe{}のdtxファイルをまとめて、一つのソースコード説明書に +% するための文書ファイルの説明をしています。 +% +% \item[付録\ref{app:omake}] +% 付録\ref{app:pldoc}で説明した文書ファイルを処理するshスクリプト(手順)、 +% \dst{}文書ファイル内の入れ子の対応を調べるperlスクリプトなどについて +% 説明しています。 +% \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 \pLaTeXe. +% Also describes the standard classes and packages. +% +% \item[Section \ref{platex:compatibility}] +% The compatibility note for users of the old version of +% \pLaTeXe\ or those of the original \LaTeXe. +% +% \item[Appendix \ref{app:dst}] +% Describes \dst\ Options for this document. +% +% \item[Appendix \ref{app:pldoc}] +% Description of `pldoc.tex' (counterpart for `source2e.tex' in \LaTeXe). +% +% \item[Appendix \ref{app:omake}] +% Description of a shell script to process `pldoc.tex', and +% a tiny perl program to check \dst\ guards, etc. +% \end{description} +% \end{quote} +%\fi +% +% +%\ifJAPANESE +% \section{\pLaTeXe{}の機能について}\label{platex:plcore} +% \pLaTeXe{}が提供するファイルは、次の3種類に分類することができます。 +% +% \begin{itemize} +% \item フォーマットファイル +% \item クラスファイル +% \item パッケージファイル +% \end{itemize} +% +% フォーマットファイルには、基本的な機能が定義されており、 +% \pLaTeXe{}の核となるファイルです。 +% このファイルに定義されているマクロは、実行時の速度を高めるために、 +% あらかじめ\TeX{}の内部形式の形で保存されています。 +% +% クラスファイルは文書のレイアウトを設定するファイル、 +% パッケージファイルはマクロの拡張を定義するファイルです。 +% 前者は|\documentclass|コマンドを用いて読み込み、 +% 後者は|\usepackage|コマンドを用いて読み込みます。 +% +% \begin{chuui}[古い\pLaTeX~2.09ユーザへの注意:]\normalfont +% クラスファイルとパッケージファイルは、従来、スタイルファイルと呼ばれていた +% ものです。\LaTeXe{}ではそれらを、レイアウトに関するものをクラスファイルと +% 呼び、マクロの拡張をするものをパッケージファイルと呼んで区別するように +% なりました。 +% \end{chuui} +%\else +% \section{About Functions of \pLaTeXe}\label{platex:plcore} +% The structure of \pLaTeXe\ is similar to that of \LaTeXe; +% it consists of 3 types of files: a format (platex.ltx), +% classes and packages. +%\fi +% +%\ifJAPANESE +% \subsection{フォーマットファイル} +% \pLaTeX{}のフォーマットファイルを作成するには、 +% ソースファイル``platex.ltx''を\epTeX{}のINIモードで処理します +% \footnote{2016年以前は\pTeX{}と\epTeX{}のどちらでもフォーマットを作成する +% ことができましたが、2017年に\LaTeX{}が\eTeX{}必須となったことに伴い、 +% \pLaTeX{}も\epTeX{}が必須となりました。}。 +% ただし、\TeX\ LiveやW32\TeX{}ではこの処理を簡単にする|fmtutil-sys|あるいは +% |fmtutil|というプログラムが用意されています。 +% 以下を実行すれば、フォーマットファイル\file{platex.fmt}が作成されます。 +%\else +% \subsection{About the Format} +% To make a format for \pLaTeX, +% process ``platex.ltx'' with INI mode of \epTeX.\footnote{Formerly +% both \pTeX\ and \epTeX\ can make the format file for \pLaTeX, 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{platex.fmt}. +%\fi +%\begin{verbatim} +% fmtutil-sys --byfmt platex +%\end{verbatim} +% +%\ifJAPANESE +% 次のリストが、\file{platex.ltx}の内容です。 +% ただし、このバージョンでは、\LaTeX{}から\pLaTeX{}への拡張を +% \file{plcore.ltx}をロードすることで行ない、 +% \file{latex.ltx}には直接、手を加えないようにしています。 +% したがって\file{platex.ltx}はとても短いものとなっています。 +% \file{latex.ltx}には\LaTeX{}のコマンドが、 +% \file{plcore.ltx}には\pLaTeX{}で拡張したコマンドが定義されています。 +%\else +% The content of \file{platex.ltx} is shown below. +% In the current version of \pLaTeX, +% first we simply load \file{latex.ltx} and +% modify/extend some definitions by loading \file{plcore.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}が読み込まれるはずです。 +% \changes{v1.0g}{2016/05/07}{フォーマット作成時に\LaTeX{}のバナーを一旦保存} +% \changes{v1.0n}{2016/09/14}{\LaTeX{}のバナーの保存しかたを改良} +% \changes{v1.0p}{2017/11/11}{\LaTeX{}のバナーを保存するコードを +% \file{platex.ltx}から\file{plcore.ltx}へ移動} +%\else +% Load \file{latex.ltx} here. +% Within the standard installation of \TeX\ Live, \file{hyphen.cfg} +% provided by ``Babel'' package will be used. +% \changes{v1.0g}{2016/05/07}{Save \LaTeX\ banner} +% \changes{v1.0n}{2016/09/14}{Improved banner saving method} +% \changes{v1.0p}{2017/11/11}{Moved banner saving code from +% \file{platex.ltx} to \file{plcore.ltx}} +%\fi +% \begin{macrocode} +\input latex.ltx +% \end{macrocode} +% +%\ifJAPANESE +% \file{plcore.ltx}を読み込みます。 +%\else +% Load \file{plcore.ltx}. +%\fi +% \begin{macrocode} +\typeout{**************************^^J% + *^^J% + * making pLaTeX format^^J% + *^^J% + **************************} +\makeatletter +\input plcore.ltx +% \end{macrocode} +% +%\ifJAPANESE +% フォント関連のデフォルト設定ファイルである、 +% \file{pldefs.ltx}を読み込みます。 +% \TeX{}の入力ファイル検索パスに設定されている +% ディレクトリに\file{pldefs.cfg}ファイルがある場合は、 +% そのファイルを使います。 +% \changes{v1.0s}{2017/12/05}{デフォルト設定ファイルの読み込みを +% \file{plcore.ltx}から\file{platex.ltx}へ移動} +%\else +% Load font-related default settings, \file{pldefs.ltx}. +% If a file \file{pldefs.cfg} is found, then that file will be +% used instead. +% \changes{v1.0s}{2017/12/05}{Moved loading default settings +% from \file{plcore.ltx} to \file{platex.ltx}} +%\fi +% \begin{macrocode} +\InputIfFileExists{pldefs.cfg} + {\typeout{*************************************^^J% + * Local config file pldefs.cfg used^^J% + *************************************}}% + {\input{pldefs.ltx}} +% \end{macrocode} +% +%\ifJAPANESE +% 以前のバージョンでは、フォーマット作成時に\pLaTeX{}のバージョンが +% わかるように、端末に表示していましたが、|\everyjob| にバナー表示 +% 以外のコードが含まれる可能性を考慮し、安全のためやめました。 +% \changes{v1.0w}{2018/04/08}{安全のためフォーマット作成時の +% バナー表示をやめた} +%\else +% In the previous version, we displayed \pLaTeX\ 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}{2018/04/08}{Stop showing banner during +% format generation for safety} +%\fi +% \begin{macrocode} +%\the\everyjob +% \end{macrocode} +% +%\ifJAPANESE +% \pLaTeXe{}の起動時に\file{platex.cfg}がある場合、それを読み込む +% ようにします。 +% バージョン2016/07/01ではコードを\file{plcore.ltx}に入れていました +% が、\file{platex.ltx}へ移動しました。 +% \changes{v1.0m}{2016/08/26}{\file{platex.cfg}の読み込みを +% \file{plcore.ltx}から\file{platex.ltx}へ移動} +%\else +% Load \file{platex.cfg} if it exists at runtime. +% \changes{v1.0m}{2016/08/26}{Moved loading \file{platex.cfg} +% from \file{plcore.ltx} to \file{platex.ltx}} +%\fi +% \begin{macrocode} +\everyjob\expandafter{% + \the\everyjob + \IfFileExists{platex.cfg}{% + \typeout{*************************^^J% + * Loading platex.cfg.^^J% + *************************}% + \input{platex.cfg}}{}% +} +% \end{macrocode} +% +%\ifJAPANESE +% フォーマットファイルにダンプします。 +% \changes{v1.0i}{2016/05/12}{一時コマンド\cs{orgdump}を最終的に未定義へ} +%\else +% Dump to the format file. +% \changes{v1.0i}{2016/05/12}{Undefine temporary command +% \cs{orgdump} in the end.} +%\fi +% \begin{macrocode} +\let\dump\orgdump +\let\orgdump\@undefined +\makeatother +\dump +%\endinput +% \end{macrocode} +% +% \begin{macrocode} +% +% \end{macrocode} +% +%\ifJAPANESE +% 実際に\pLaTeXe{}への拡張を行なっている\file{plcore.ltx}は、 +% \dst{}プログラムによって、次のファイルの断片が連結されたものです。 +% +% \begin{itemize} +% \item \file{plvers.dtx}は、\pLaTeXe{}のフォーマットバージョンを +% 定義しています。 +% \item \file{plfonts.dtx}は、\NFSS2を拡張しています。 +% \item \file{plcore.dtx}は、上記以外のコマンドでフォーマットファイルに +% 格納されるコマンドを定義しています。 +% \end{itemize} +% +% また、プリロードフォントや組版パラメータなどのデフォルト設定は、 +% \file{platex.ltx}の中で\file{pldefs.ltx}をロードすることにより行います +% \footnote{アスキー版では\file{plcore.ltx}の中でロードしていましたが、 +% 2018年以降の新しいコミュニティ版\pLaTeX{}では +% \file{platex.ltx}から読み込むことにしました。}。 +% このファイル\file{pldefs.ltx}も\file{plfonts.dtx}から生成されます。 +% \begin{chuui} +% このファイルに記述されている設定を変更すれば +% \pLaTeXe{}をカスタマイズすることができますが、 +% その場合は\file{pldefs.ltx}を直接修正するのではなく、いったん +% \file{pldefs.cfg}という名前でコピーして、そのファイルを編集してください。 +% フォーマット作成時に\file{pldefs.cfg}が存在した場合は、そちらが +% \file{pldefs.ltx}の代わりに読み込まれます。 +% \end{chuui} +%\else +% The file \file{plcore.ltx}, which provides modifications/extensions +% to make \pLaTeXe, is a concatenation of stripped files below +% using \dst\ program. +% +% \begin{itemize} +% \item \file{plvers.dtx} defines the format version of \pLaTeXe. +% \item \file{plfonts.dtx} extends \NFSS2 for Japanese font selection. +% \item \file{plcore.dtx} defines other modifications to \LaTeXe. +% \end{itemize} +% +% Moreover, default settings of pre-loaded fonts and typesetting parameters +% are done by loading \file{pldefs.ltx} inside +% \file{platex.ltx}.\footnote{ASCII \pLaTeX\ loaded \file{pldefs.ltx} +% inside \file{plcore.ltx}; however, \pLaTeX\ community edition newer than +% 2018 loads \file{pldefs.ltx} inside \file{platex.ltx}.} +% This file \file{pldefs.ltx} is also stripped from \file{plfonts.dtx}. +% \begin{chuui} +% You can customize \pLaTeXe\ by tuning these settings. +% If you need to do that, copy/rename it as \file{pldefs.cfg} and edit it, +% instead of overwriting \file{pldefs.ltx} itself. +% If a file named \file{pldefs.cfg} is found at a format creation +% time, it will be read as a substitute of \file{pldefs.ltx}. +% \end{chuui} +%\fi +% +% +%\ifJAPANESE +% \subsubsection{バージョン} +% \pLaTeXe{}のバージョンやフォーマットファイル名は、 +% \file{plvers.dtx}で定義しています。 +%\else +% \subsubsection{Version} +% The version (like ``\pfmtversion'') and the format name +% (``\pfmtname'') of \pLaTeXe\ are defined in \file{plvers.dtx}. +%\fi +% +% +%\ifJAPANESE +% \subsubsection{\NFSS2コマンド} +% \LaTeXe{}では、フォント選択機構として\NFSS2を用いています。 +% \pLaTeXe{}では、オリジナルの\NFSS2と同様のインターフェイスで、 +% 和文フォントを選択できるように、\file{plfonts.dtx}で\NFSS2を拡張しています。 +% +% \pLaTeXe{}の\NFSS2は、フォントを切替えるコマンドを指定するときに、 +% それが欧文書体か和文書体のいずれかを対象とするものかを、 +% できるだけ意識しないようにする方向で拡張しています。 +% いいかえれば、コマンドが(可能な限りの)判断をします。 +% したがって数多くある英語版のクラスファイルやパッケージファイルなどで +% 書体の変更を行っている箇所を修正する必要はあまりありません。 +% +% \NFSS2についての詳細は、\LaTeXe{}に付属の\file{fntguide.tex}を参照して +% ください。 +%\else +% \subsubsection{\NFSS2 Commands} +% \LaTeXe\ uses \NFSS2 as a font selection scheme, however, it +% supports only alphabetic fonts. +% \pLaTeXe\ extends \NFSS2 to enable selection of Japanese fonts in +% a consistent manner with the original \NFSS2. +% +% Most of the interface commands are defined to be clever enough, +% so that it can automatically judge whether it is going to +% change alphpabetic fonts or Japanese fonts. +% It works almost fine with most of the widely used classes and +% packages, without any modification. +% +% For the defail of (the original) \NFSS2, please refer to +% \file{fntguide.tex} in \LaTeXe. +%\fi +% +% +%\ifJAPANESE +% \subsubsection{出力ルーチンとフロート} +% \file{plcore.dtx}は、次の項目に関するコマンドを日本語処理用に修正や拡張 +% をしています。 +% +% \begin{itemize} +% \item プリアンブルコマンド +% \item 改ページ +% \item 改行 +% \item オブジェクトの出力順序 +% \item トンボ +% \item 脚注マクロ +% \item 相互参照 +% \item 疑似タイプ入力 +% \end{itemize} +%\else +% \subsubsection{Output Routine and Floats} +% \file{plcore.dtx} modifies and extends some \LaTeXe\ commands +% for Japanese processing. +% +% \begin{itemize} +% \item Preamble commands +% \item Page breaking +% \item Line breaking +% \item The order of float objects +% \item Crop marks (``tombow'') +% \item Footnote macros +% \item Cross-referencing +% \item Verbatim +% \end{itemize} +%\fi +% +% +%\ifJAPANESE +% \subsection{クラスファイルとパッケージファイル} +% +% \pLaTeXe{}が提供をするクラスファイルやパッケージファイルは、 +% オリジナルのファイルを基にしています。 +% +% \pLaTeXe{}に付属のクラスファイルは、次のとおりです。 +% +% \begin{itemize} +% \item jarticle.cls, jbook.cls, jreport.cls\par +% 横組用の標準クラスファイル。 +% \file{jclasses.dtx}から作成される。 +% +% \item tarticle.cls, tbook.cls, treport.cls\par +% 縦組用の標準クラスファイル。 +% \file{jclasses.dtx}から作成される。 +% +% \item jltxdoc.cls\par +% 日本語の\file{.dtx}ファイルを組版するためのクラスファイル。 +% \file{jltxdoc.dtx}から作成される。 +% \end{itemize} +%\else +% \subsection{Classes and Packages} +% +% Classes and packages bundled with \pLaTeXe\ are based on +% those in original \LaTeXe, with some Japanese localization. +% +% \pLaTeXe\ classes: +% +% \begin{itemize} +% \item jarticle.cls, jbook.cls, jreport.cls\par +% Standard \emph{yoko-kumi} (horizontal writing) classes; +% stripped from \file{jclasses.dtx}. +% +% \item tarticle.cls, tbook.cls, treport.cls\par +% Standard \emph{tate-kumi} (vertical writing) classes; +% stripped from \file{jclasses.dtx}. +% +% \item jltxdoc.cls\par +% Class for typesetting Japanese \file{.dtx} file; +% stripped from \file{jltxdoc.dtx}. +% \end{itemize} +%\fi +% +%\ifJAPANESE +% また、\pLaTeXe{}に付属のパッケージファイルは、次のとおりです。 +% \changes{v1.0d}{2016/01/27}{\pLaTeXe{}に付属するファイルの説明を更新} +% \changes{v1.0j}{2016/05/20}{pfltraceの説明を追加} +% +% \begin{itemize} +% \item plext.sty\par +% 縦組用の拡張コマンドなどが定義されているファイル。 +% \file{plext.dtx}から作成される。 +% +% \item ptrace.sty\par +% \LaTeX{}でフォント選択コマンドのトレースに使う\file{tracefnt.sty}が +% 再定義してしまう\NFSS2コマンドを、\pLaTeXe{}用に再々定義するための +% パッケージ。 +% \file{plfonts.dtx}から作成される。 +% +% \item pfltrace.sty\par +% \LaTeX{}でフロート関連コマンドのトレースに使う\file{fltrace.sty}% +% \footnote{\LaTeXe\ 2014/05/01で追加されました。参考: +% \LaTeXe\ News Issue 21 (ltnews21.tex)}が再定義してしまうコマンド +% を、\pLaTeXe{}用に再々定義するためのパッケージ。 +% \file{plcore.dtx}から作成される。 +% +% \item oldpfont.sty\par +% \pLaTeX~2.09のフォントコマンドを提供するパッケージ。 +% \file{pl209.dtx}から作成される。 +% \end{itemize} +% +% なお、以前のバージョンに同梱していたascmacパッケージと +% nidanfloatパッケージは、別のバンドルとして独立させました。 +% \changes{v1.0t}{2018/02/07}{ascmacパッケージを独立させた} +% \changes{v1.0u}{2018/02/18}{nidanfloatパッケージを独立させた} +%\else +% \pLaTeXe\ packages: +% \changes{v1.0d}{2016/01/27}{Updated descriptions of \pLaTeXe\ files} +% \changes{v1.0j}{2016/05/20}{Add description of `pfltrace'} +% +% \begin{itemize} +% \item plext.sty\par +% Useful macros and extensions for vertical writing; +% stripped from \file{plext.dtx}. +% +% \item ptrace.sty\par +% \pLaTeXe\ version of \file{tracefnt.sty}; +% the package \file{tracefnt.sty} overwrites \pLaTeXe-style \NFSS2 +% commands, so \file{ptrace.sty} provides redefinitions to recover +% \pLaTeXe\ extensions. +% Stripped from \file{plfonts.dtx}. +% +% \item pfltrace.sty\par +% \pLaTeXe\ version of \file{fltrace.sty} (introduced in +% \LaTeXe\ 2014/05/01); +% stripped from \file{plcore.dtx}. +% +% \item oldpfont.sty\par +% Provides \pLaTeX~2.09 font commands; +% stripped from \file{pl209.dtx}. +% \end{itemize} +% +% The packages ``ascmac.sty'' and ``nidanfloat.sty'', +% which had been included in previous versions of \pLaTeX, +% is now distributed as a separate bundle. +% \changes{v1.0t}{2018/02/07}{Moved ascmac package to separate bundle} +% \changes{v1.0u}{2018/02/18}{Moved nidanfloat package to separate bundle} +%\fi +% +% +%\ifJAPANESE +% \section{他のフォーマット・旧バージョンとの互換性} +% \label{platex:compatibility} +% ここでは、この\pLaTeXe{}のバージョンと以前のバージョン、あるいは +% \LaTeXe{}との互換性について説明をしています。 +% +% \subsection{\LaTeXe{}との互換性} +% \pLaTeXe{}は、\LaTeXe{}の上位互換という形を取っていますが、 +% いくつかの命令の定義やパラメータなども変更しています。 +% したがって英文書など、\LaTeXe{}でも処理できるファイルを +% \pLaTeXe{}で処理しても、完全に同じ結果になるとは限りません。 +% +% \LaTeXe{}向けに書かれた多くのクラスファイルやパッケージファイルは、 +% そのまま使えると思います。 +% ただし、それらが\pLaTeXe{}で拡張しているコマンドと同じ名前の +% コマンドを再定義している場合は、 +% その拡張の仕方によってはエラーになることもあります。 +% 用いようとしているクラスファイルやパッケージファイルが +% うまく動くかどうかを、完全に確かめる方法は残念ながらありません。 +% 一番簡単なのは、動かしてみることです。不幸にもうまく動かない場合は、 +% ログファイルや付属の文書ファイルを参考に原因を調べてください。 +% +% なお、いくつかの\LaTeX{}パッケージについては、\pLaTeX{}向けの +% パッチが用意されています。その一覧は、 +% \texttt{plautopatch}パッケージ(Hironobu Yamashita作)の +% ドキュメント(日本語版はplautopatch-ja.pdf)に記載されています。 +% \changes{v1.0x}{2018/09/03}{plautopatchに言及} +%\else +% \section{Compatibility with Other Formats and Older Versions} +% \label{platex:compatibility} +% Here we provide some information about the compatibility between +% current \pLaTeXe\ and older versions or original \LaTeXe. +% +% \subsection{Compatibility with \LaTeXe} +% \pLaTeXe\ is in most part upper compatible with \LaTeXe, +% but some parameters are adjusted to be suitable for Japanese. +% Therefore, you should not expect identical output, even though +% the same source can be processed on both \LaTeXe\ and \pLaTeXe. +% +% We hope that most classes and packages meant for \LaTeXe\ works +% also for \pLaTeXe\ without any modification. However for example, +% if a class or a package redefines a command which is already +% modified by \pLaTeXe, it might cause an error at the worst case. +% We cannot tell whether a class or a package works fine with +% \pLaTeXe\ beforehand; the easiest way is to try to use it. +% If it fails, please refer to the log file or a package manual. +% +% Some \LaTeX\ packages are known to be incompatible with \pLaTeX. +% For those packages, \pLaTeX-specific patches might be available. +% Please refer to the documentation of the \texttt{plautopatch} +% package (by Hironobu Yamashita). +% \changes{v1.0x}{2018/09/03}{Mention plautopatch.} +%\fi +% +%\ifJAPANESE +% \subsection{\pLaTeX~2.09との互換性} +% \pLaTeXe{}では、文書が使用するクラスを、 +% プリアンブルで|\documentclass|コマンドにより指定します。 +% ここで|\documentclass|の代わりに|\documentstyle|を +% 用いると、\pLaTeXe{}は自動的に\emph{2.09互換モード}に入ります。 +% これは\LaTeXe{}が\LaTeX~2.09互換モードに入るのと同様で、 +% 互換モードは古い文書を組版するためだけに作られています。 +% 新しく文書を作成する場合は、|\documentclass|コマンドを用いてください。 +% +% 互換モードでは(p)\LaTeXe{}の新しい機能を利用できず、 +% また古いネイティブな\pLaTeX~2.09環境と微妙に異なる結果になる +% 可能性もあるという点は、英語版の\LaTeXe{}でも同じです。 +% 詳細は、\LaTeXe に付属の\file{usrguide.tex}を参照してください。 +%\else +% \subsection{Compatibility with \pLaTeX~2.09} +% \pLaTeXe\ has `\pLaTeX~2.09 compatibility mode'; use +% |\documentstyle| to enter it, but the support might be limited. +% Note that the 2.09 compatibility mode is provided solely to +% allow you to process very old documents, +% which were written for a very old system. +%\fi +% +% +%\ifJAPANESE +% \subsection{latexreleaseパッケージへの対応} +% \changes{v1.0e}{2016/02/16}{platexreleaseの説明を追加} +% \LaTeX\ \texttt{<2015/01/01>}で導入されたlatexreleaseパッケージを +% もとに、新しい\pLaTeX{}ではplatexreleaseパッケージを用意しました。 +% platexreleaseパッケージを用いると、過去の\pLaTeX{}をエミュレート +% したり、フォーマットを作り直すことなく新しい\pLaTeX{}を試したりする +% ことができます。詳細はplatexreleaseのドキュメントを参照してください。 +%\else +% \subsection{Support for Package `latexrelease'} +% \changes{v1.0e}{2016/02/16}{Add a description of platexrelease} +% \pLaTeX\ provides `platexrelease' package, which is based on +% `latexrelease' package (introduced in \LaTeX\ \texttt{<2015/01/01>}). +% It may be used to ensure stability where needed, by emulating +% the specified format date without regenerating the format file. +% For more detail, please refer to its documentation. +%\fi +% +% +% +% \appendix +% +%\ifJAPANESE +% \section{\dst{}プログラムのためのオプション}\label{app:dst} +% この文書のソース(\file{platex.dtx})を\dst{}プログラムで +% 処理することによって、 +% いくつかの異なるファイルを生成することができます。 +% \dst{}プログラムの詳細は、\file{docstrip.dtx}を参照してください。 +% +% この文書の\dst{}プログラムのためのオプションは、次のとおりです。 +% +% \DeleteShortVerb{\|} +% \begin{center} +% \begin{tabular}{l|p{.8\linewidth}} +% \emph{オプション} & \emph{意味}\\\hline +% plcore & フォーマットファイルを作るためのファイルを生成\\ +% pldoc & \pLaTeXe{}のソースファイルをまとめて組版するための +% 文書ファイル(pldoc.tex)を生成\\[2mm] +% shprog & 上記のファイルを作成するためのshスクリプトを生成\\ +% plprog & 入れ子構造を調べる簡単なperlスクリプトを生成\\ +% Xins & 上記のshスクリプトやperlスクリプトを取り出すための +% \dst{}バッチファイル(Xins.ins)を生成\\ +% \end{tabular} +% \end{center} +% \MakeShortVerb{\|} +%\else +% \section{\dst\ Options}\label{app:dst} +% By processing \file{platex.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 `pldoc.tex' for typesetting +% \pLaTeXe\ sources\\[2mm] +% shprog & Generates a shell script to process `pldoc.tex'\\ +% plprog & Generates a tiny perl program to check +% \dst\ guards nesting\\ +% Xins & Generates a \dst\ batch file `Xins.ins' for +% generating the above shell/perl scripts\\ +% \end{tabular} +% \end{center} +% \MakeShortVerb{\|} +%\fi +% +%\ifJAPANESE +% \subsection{ファイルの取り出し方} +% +% たとえば、この文書の``plcore''の部分を``\file{platex.ltx}''という +% ファイルにするときの手順はつぎのようになります。 +% +% \begin{enumerate} +% \item platex docstrip +% \item 入力ファイルの拡張子(dtx)を入力する。 +% \item 出力ファイルの拡張子(ltx)を入力する。 +% \item \dst{}オプション(plcore)を入力する。 +% \item 入力ファイル名(platex)を入力する。 +% \item \file{platex.ltx}が存在する場合は、確認を求めてくるので、 +% ``y''を入力する。 +% \item 別の処理を行なうかを問われるので、``n''を入力する。 +% \end{enumerate} +% これで、\file{platex.ltx}が作られます。 +% +% あるいは、次のような内容のファイル\file{fmt.ins}を作成し、 +% |platex fmt.ins|することでも\file{platex.ltx}を作ることができます。 +% +%\begin{verbatim} +% \def\batchfile{fmt.ins} +% \input docstrip.tex +% \generateFile{platex.ltx}{t}{\from{platex.dtx}{plcore}} +%\end{verbatim} +%\else +% ^^A (- English version omitted, not so useful -) +%\fi +% +% +%\ifJAPANESE +% \section{文書ファイル}\label{app:pldoc} +% \changes{v1.0c}{1997/01/25}{pldoc.dicをfilecontents環境により作成} +% ここでは、このパッケージに含まれているdtxファイルをまとめて組版し、 +% ソースコード説明書を得るための文書ファイル\file{pldoc.tex}について +% 説明をしています。個別に処理した場合と異なり、 +% 変更履歴や索引も付きます。全体で、およそ200ページ程度になります。 +% +% デフォルトではソースコードの説明が日本語で書かれます。 +% もし英語の説明書を読みたい場合は、\par\medskip +% \begin{minipage}{.5\textwidth}\ttfamily +% | |\cs{newif}\cs{ifJAPANESE} +% \end{minipage}\par\medskip\noindent +% という内容の\file{platex.cfg}を予め用意してから\file{pldoc.tex}を +% 処理してください(2016年7月1日以降のコミュニティ版\pLaTeXe{}が必要)。 +%\else +% \section{Documentation of \pLaTeXe\ sources}\label{app:pldoc} +% \changes{v1.0c}{1997/01/25}{Add to filecontents environment for pldoc.dic.} +% The contents of `pldoc.tex' for typesetting \pLaTeXe\ sources +% is described here. Compared to individual processings, +% batch processing using `pldoc.tex' prints also changes and an index. +% The whole document will have about 200 pages. +% +% By default, the description of \pLaTeXe\ 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{platex.cfg}, and process \file{pldoc.tex} +% (\pLaTeXe\ Community Edition newer than July 2016 is required). +%\fi +% +%\ifJAPANESE +% |filecontents|環境は、引数に指定されたファイルが存在するときは何も +% しませんが、存在しないときは、環境内の内容でファイルを作成します。 +% \file{pldoc.dic}ファイルは、mendexプログラムで索引を処理するときに +% \cs{西暦}, \cs{和暦}に対する「読み」を付けるために必要です。 +%\else +% First, create \file{pldoc.dic}; it serves as a dictionary +% for `mendex' (Japanese index processor\footnote{Developed by +% ASCII Corporation; the program `makeindex' cannot handle +% Japanese characters properly, especially Kanji characters +% which should be sorted by its readings.}), which is necessary +% for indexing control sequences containing Japanese characters +% (\cs{西暦} and \cs{和暦}). +%\fi +% \begin{macrocode} +%<*pldoc> +\begin{filecontents}{pldoc.dic} +西暦 せいれき +和暦 われき +\end{filecontents} +% \end{macrocode} +% +%\ifJAPANESE +% 文書クラスには、\file{jltxdoc}クラスを用います。 +% \file{plext.dtx}の中でサンプルを組み立てていますので、 +% \file{plext}パッケージが必要です。 +%\else +% We use \file{jltxdoc} class; we also require \file{plext} package, +% since \file{plext.dtx} contains several examples of partial +% vertical writing. +%\fi +% \begin{macrocode} +\documentclass{jltxdoc} +\usepackage{plext} +\listfiles + +% \end{macrocode} +%\ifJAPANESE +% いくつかの\TeX{}プリミティブとplain \TeX{}コマンドを +% 索引に出力しないようにします。 +%\else +% Do not index some \TeX\ primitives, and some common +% plain \TeX\ commands. +%\fi +% \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} +\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} + +% \end{macrocode} +%\ifJAPANESE +% 索引と変更履歴の見出しに|\part|を用いるように設定をします。 +%\else +% Set up the Index and Change History to use |\part|. +%\fi +% \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} +%\ifJAPANESE +% 標準の|\changes|コマンドを、複数ファイルの文書に合うように修正しています。 +%\else +% Modify the standard |\changes| command slightly, to better cope with +% this multiple file document. +%\fi +% \begin{macrocode} +\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} +% \end{macrocode} +%\ifJAPANESE +% コード行では、少しのOverfullを警告無しに許容します。 +% \changes{v1.0v}{2018/04/06}{最新のsource2eへの追随} +%\else +% Codelines are allowed to run over a bit without +% showing up as overfull. +% \changes{v1.0v}{2018/04/06}{Sync with the latest \file{source2e.tex}} +%\fi +% \begin{macrocode} +\renewcommand*\MacroFont{\fontencoding\encodingdefault + \fontfamily\ttdefault + \fontseries\mddefault + \fontshape\updefault + \small + \hfuzz 6pt\relax} +% \end{macrocode} +%\ifJAPANESE +% 章番号の桁数が多い場合を考慮し、目次でのスペースを少し増やします。 +%\else +% Section numbers now reach eg 19.12 which need more space. +%\fi +% \begin{macrocode} +\renewcommand*\l@subsection{\@dottedtocline{2}{1.5em}{2.8em}} +\renewcommand*\l@subsubsection{\@dottedtocline{3}{3.8em}{3.4em}} +\makeatother +% \end{macrocode} +%\ifJAPANESE +% 変更履歴と2段組の索引を作成します。 +%\else +% Produce a Change Log and (2 column) Index. +%\fi +% \begin{macrocode} +\RecordChanges +\CodelineIndex +\EnableCrossrefs +\setcounter{IndexColumns}{2} +\settowidth\MacroIndent{\ttfamily\scriptsize 000\ } +% \end{macrocode} +%\ifJAPANESE +% この文書のタイトル・著者・日付を設定します。 +% \changes{v1.0c}{1997/01/29}{\file{pltpatch.ltx}を\file{plpatch.ltx}に名称変更} +% \changes{v1.0h}{2016/05/08}{ドキュメントから\file{plpatch.ltx}を除外} +% \changes{v1.0l}{2016/06/19}{パッチレベルを\file{plvers.dtx}から取得} +% \changes{v1.0o}{2017/09/24}{パッチレベルが負の数の場合をpre-release扱いへ} +% \changes{v1.0y}{2018/09/22}{最終更新日を\file{pldoc.pdf}に表示} +%\else +% Set the title, authors and the date for this document. +% \changes{v1.0c}{1997/01/29}{Rename \file{pltpatch.ltx} to \file{plpatch.ltx}.} +% \changes{v1.0h}{2016/05/08}{Exclude \file{plpatch.ltx} from the document} +% \changes{v1.0l}{2016/06/19}{Get the patch level from \file{plvers.dtx}} +% \changes{v1.0o}{2017/09/24}{Allow negative patch level for pre-release} +% \changes{v1.0y}{2018/09/22}{Show last update info on \file{pldoc.pdf}} +%\fi +% \begin{macrocode} + \title{The \pLaTeXe\ Sources} + \author{Ken Nakano \& Japanese \TeX\ Development Community} + +% Get the date and patch level from plvers.dtx +\makeatletter +\let\patchdate=\@empty +\begingroup + \def\ProvidesFile#1\pfmtversion#2#3\ppatch@level#4{% + \date{#2}\xdef\patchdate{#4}\endinput} + \input{plvers.dtx} +\endgroup + +% Add the patch version if available. +\def\Xpatch{0} +\ifx\patchdate\Xpatch\else +% number is assumed +\ifnum\patchdate>0 + \edef\@date{\@date\space Patch level\space\patchdate} +\else + \edef\@date{\@date\space Pre-Release\patchdate} +\fi\fi + +% Add the last update info, in case formate date unchanged +% Note: \@ifl@t@r can be used only in preamble. +\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{plvers.dtx} + \input{plfonts.dtx} + \input{plcore.dtx} + \input{plext.dtx} + \input{pl209.dtx} + \input{kinsoku.dtx} + \input{jclasses.dtx} + \input{jltxdoc.cls} +\endgroup +\@ifl@t@r{\lastupd@te}{\pfmtversion}{% + \edef\@date{\@date\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{plvers} % pLaTeX version + +\DocInclude{plfonts} % NFSS2 commands + +\DocInclude{plcore} % kernel commands + +\DocInclude{plext} % external commands + +\DocInclude{pl209} % 2.09 compatibility mode commands + +\DocInclude{kinsoku} % kinsoku parameter + +\DocInclude{jclasses} % Standard class + +\DocInclude{jltxdoc} % dtx documents class + +% \end{macrocode} +%\ifJAPANESE +% \file{ltxdoc.cfg}に|\AtEndOfClass{\OnlyDescription}|が指定されている場合は、 +% ここで終了します。 +%\else +% Stop here if \file{ltxdoc.cfg} says |\AtEndOfClass{\OnlyDescription}|. +%\fi +% \begin{macrocode} +\StopEventually{\end{document}} + +% \end{macrocode} +%\ifJAPANESE +% 変更履歴と索引を組版します。 +% 変更履歴ファイルと索引の作り方の詳細については、 +% おまけ\ref{app:shprog}を参照してください。 +%\else +% Print Change History and Index. +% Please refer to Appendix \ref{app:shprog} for +% processing of Change History and Index. +%\fi +% \begin{macrocode} +\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 +% \end{macrocode} +%\ifJAPANESE +% \file{ltxdoc.cfg}に2度目の|\PrintIndex|が指定されているかもしれません。 +% そこで、最後に、変更履歴や索引が2度組版されないように|\PrintChanges|および +% |\PrintIndex|コマンドを何も実行しないようにします。 +%\else +% Make sure that the index is not printed twice +% (ltxdoc.cfg might have a second \PrintIndex command). +%\fi +% \begin{macrocode} +\let\PrintChanges\relax +\let\PrintIndex\relax +\end{document} +% +% \end{macrocode} +% +% +% +%\ifJAPANESE +% \section{おまけプログラム}\label{app:omake} +% +% \subsection{シェルスクリプト\file{mkpldoc.sh}}\label{app:shprog} +% \pLaTeXe{}のマクロ定義ファイルをまとめて組版し、変更履歴と索引も +% 付けるときに便利なシェルスクリプトです。 +% このシェルスクリプト\footnote{このシェルスクリプトはUNIX用です。 +% しかしrmコマンドをdeleteコマンドにするなどすれば、簡単にDOSなどのバッチ +% ファイルに修正することができます。}の使用方法は次のとおりです。 +%\begin{verbatim} +% sh mkpldoc.sh +%\end{verbatim} +%\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. +%\fi +% +%\ifJAPANESE +% \subsubsection{\file{mkpldoc.sh}の内容} +% まず、以前に\file{pldoc.tex}を処理したときに作成された、 +% 目次ファイルや索引ファイルなどを削除します。 +% \changes{v1.0c}{1997/01/23}{gind.istとgglo.istを +% \$TEXMF/tex/latex2e/baseディレクトリからコピーしないようにした} +% \changes{v1.0d}{2016/01/27}{rmコマンド実行前に存在確認するようにした} +%\else +% \subsubsection{Content of \file{mkpldoc.sh}} +% First, delete auxiliary files which might be created in the +% previous runs. +% \changes{v1.0c}{1997/01/23}{Don't copy gind.ist and gglo.ist from +% \$TEXMF/tex/latex2e/base directory.} +% \changes{v1.0d}{2016/01/27}{Add -e test before rm command} +%\fi +% \begin{macrocode} +%<*shprog> +%rm -f pldoc.toc pldoc.idx pldoc.glo +%rm -f pldoc-en.toc pldoc-en.idx pldoc-en.glo +% \end{macrocode} +%\ifJAPANESE +% そして、\file{ltxdoc.cfg}を空にします。 +% このファイルは、\file{jltxdoc.cls}の定義を変更するものですが、 +% ここでは、変更されたくありません。 +%\else +% First run: empty the config file \file{ltxdoc.cfg}. +%\fi +% \begin{macrocode} +echo "" > ltxdoc.cfg +% \end{macrocode} +%\ifJAPANESE +% そして、\file{pldoc.tex}を処理します。 +%\else +% Now process \file{pldoc.tex}. +%\fi +% \begin{macrocode} +%platex pldoc.tex +%platex -jobname=pldoc-en pldoc.tex +% \end{macrocode} +%\ifJAPANESE +% 索引と変更履歴を作成します。 +% このスクリプトでは、変更履歴や索引を生成するのにmendexプログラムを用いて +% います。mendexはmakeindexの上位互換のファイル整形コマンドで、 +% 索引語の読みを自動的に付けるなどの機能があります。 +% +% |-s|オプションは、索引ファイルを整形するためのスタイルオプションです。 +% 索引用の\file{gind.ist}と変更履歴用の\file{gglo.ist}は、 +% \LaTeX{}のディストリビューションに付属しています。 +% +% |-o|は、出力するファイル名を指定するオプションです。 +% +% |-f|は、項目に``読み''がなくてもエラーとしないオプションです。 +% makeindexコマンドには、このオプションがありません。 +%\else +% Make the Change log and Glossary (Change History) using mendex. +% `Mendex' is a Japanese index processor, which is mostly upper +% compatible with `makeindex' and automatically handles readings +% of Kanji words. +% +% Option |-s| employs a style file for formatting. +% Here we use \file{gind.ist} and \file{gglo.ist} from \LaTeXe. +% +% Option |-o| specifies output index file name. +% +% Option |-f| forces to output Kanji characters even non-existent +% in dictionaries. (Makeindex does not have this option.) +%\fi +% \begin{macrocode} +%mendex -s gind.ist -d pldoc.dic -o pldoc.ind pldoc.idx +%mendex -s gind.ist -d pldoc.dic -o pldoc-en.ind pldoc-en.idx +%mendex -f -s gglo.ist -o pldoc.gls pldoc.glo +%mendex -f -s gglo.ist -o pldoc-en.gls pldoc-en.glo +% \end{macrocode} +%\ifJAPANESE +% \file{ltxdoc.cfg}の内容を|\includeonly{}|にし、\file{pldoc.tex}を処理します。 +% このコマンドは、引数に指定されたファイルだけを``|\include|''するための +% コマンドですが、ここでは何も|\include|したく\emph{ない}ので、 +% 引数には何も指定をしません。 +% しかし、|\input|で指定されているファイルは読み込まれます。 +% したがって、目次や索引や変更履歴のファイルが処理されます。 +% この処理は、主に、これらでエラーが出るかどうかの確認です。 +%\else +% Second run: append |\includeonly{}| to \file{ltxdoc.cfg} to +% speed up things. This run is needed only to get changes and index +% listed in \file{.toc} file. +%\fi +% \begin{macrocode} +echo "\includeonly{}" > ltxdoc.cfg +%platex pldoc.tex +%platex -jobname=pldoc-en pldoc.tex +% \end{macrocode} +%\ifJAPANESE +% 最後に、再び\file{ltxdoc.cfg}を空にして、\file{pldoc.tex}を処理をします。 +% 本文を1ページから開始していますので、この後、もう一度処理をする +% 必要はありません。 +%\else +% Third and final run: restore the cfg file to put +% everything together. +%\fi +% \begin{macrocode} +echo "" > ltxdoc.cfg +%platex pldoc.tex +%platex -jobname=pldoc-en pldoc.tex +# EOT +% +% \end{macrocode} +% +% +%\ifJAPANESE +% \subsection{Perlスクリプト\file{dstcheck.pl}}\label{app:plprog} +% \dst{}文書ファイルは、\LaTeX{}のソースとその文書を同時に管理する方法として、 +% とてもすぐれていると思います。しかし、たとえば\file{jclasses.dtx}のように、 +% 条件が多くなると、入れ子構造がわからなくなってしまいがちです。 +% \LaTeX{}で処理すれば、エラーによってわかりますが、 +% 文書ファイルが大きくなると面倒です。 +% +% ここでは、\dst{}文書ファイルの入れ子構造を調べるのに便利な、 +% perlスクリプトについて説明をしています。 +% +% このperlスクリプトの使用方法は次のとおりです。 +%\else +% \subsection{Perl Script \file{dstcheck.pl}}\label{app:plprog} +% Here we provide a perl script which helps checking the nested +% \dst\ guards. Usage: +%\fi +% +%\begin{verbatim} +% perl dstcheck.pl +%\end{verbatim} +% +%\ifJAPANESE +%\else +% The description of this script itself is available only in Japanese. +%\fi +% +%\ifJAPANESE +% \subsubsection{\file{dstcheck.pl}の内容} +% 最初に、このperlスクリプトが何をするのかを簡単に記述したコメントを +% 付けます。 +%\fi +% \begin{macrocode} +%<*plprog> +## +## DOCSTRIP 文書内の環境や条件の入れ子を調べる perl スクリプト +## +% \end{macrocode} +%\ifJAPANESE +% このスクリプトは、入れ子の対応を調べるために、次のスタックを用います。 +% \meta{条件}あるいは\meta{環境}を開始するコードが現れたときに、 +% それらはスタックにプッシュされ、終了するコードでポップされます。 +% したがって、現在の\meta{条件}あるいは\meta{環境}と、 +% スタックから取り出した\meta{条件}あるいは\meta{環境}と一致すれば、 +% 対応が取れているといえます。そうでなければエラーです。 +% +% |@dst|スタックには、\meta{条件}が入ります。 +% 条件の開始は、``|%<*|\meta{条件}|>|''です。 +% 条件の終了は、``|%|''です。 +% \meta{条件}には、|>|文字が含まれません。 +% |@env|スタックには、\meta{環境}が入ります。 +% +% 先頭を明示的に示すために、ダミーの値を初期値として用います。 +% スタックは、\meta{条件}あるいは\meta{環境}の名前と、その行番号をペアにして +% 操作をします。 +%\fi +% \begin{macrocode} +push(@dst,"DUMMY"); push(@dst,"000"); +push(@env,"DUMMY"); push(@env,"000"); +% \end{macrocode} +%\ifJAPANESE +% この|while|ループの中のスクリプトは、文書ファイルの1行ごとに実行をします。 +%\fi +% \begin{macrocode} +while (<>) { +% \end{macrocode} +%\ifJAPANESE +% 入力行が条件を開始する行なのかを調べます。 +% 条件の開始行ならば、|@dst|スタックに\meta{条件}と行番号をプッシュします。 +%\fi +% \begin{macrocode} + if (/^%<\*([^>]+)>/) { # check conditions + push(@dst,$1); + push(@dst,$.); +% \end{macrocode} +%\ifJAPANESE +% そうでなければ、条件の終了行なのかを調べます。 +% 現在行が条件の終了を示している場合は、|@dst|スタックをポップします。 +%\fi +% \begin{macrocode} + } elsif (/^%<\/([^>]+)>/) { + $linenum = pop(@dst); + $conditions = pop(@dst); +% \end{macrocode} +%\ifJAPANESE +% 現在行の\meta{条件}と、スタックから取り出した\meta{条件}が一致しない場合、 +% その旨のメッセージを出力します。 +% +% なお、|DUMMY|と一致した場合は、一番外側のループが合っていないと +% いうことを示しています。このとき、これらのダミー値をスタックに戻します。 +% いつでもスタックの先頭をダミー値にするためです。 +%\fi +% \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} +%\ifJAPANESE +% 環境の入れ子も条件と同じように調べます。 +% +% verbatim環境のときに、その内側をスキップしていることに注意をしてください。 +%\fi +% \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} +%\ifJAPANESE +% ここまでが、最初の|while|ループです。 +%\fi +% \begin{macrocode} +} +% \end{macrocode} +%\ifJAPANESE +% 文書ファイルを読み込んだ後、終了していない条件があるかどうかを確認します。 +% すべての条件の対応がとれていれば、この時点での|@dst|スタックには +% ダミー値しか入っていません。したがって、対応が取れている場合は、 +% 最初の2つのポップによって、ダミー値が設定されます。 +% ダミー値でなければ、ダミー値になるまで、取り出した値を出力します。 +%\fi +% \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} +%\ifJAPANESE +% 環境の入れ子についても、条件の入れ子と同様に確認をします。 +%\fi +% \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{}バッチファイル} +% \changes{v1.0b}{1996/02/01}{\file{omake-sh.ins}, \file{omake-pl.ins}を +% \dst{}の変更にともなう変更をした} +% \changes{v1.0c}{1997/01/23}{\dst{}にともなう変更} +% ここでは、付録\ref{app:shprog}と付録\ref{app:plprog}で説明をした二つの +% スクリプトを、このファイルから取り出すための\dst{}バッチファイルについて +% 説明をしています。 +%\else +% \subsection{\dst{} Batch file} +% \changes{v1.0b}{1996/02/01}{Adjusted for the latest +% \dst\ (\file{omake-sh.ins} and \file{omake-pl.ins}.} +% \changes{v1.0c}{1997/01/23}{Adjusted for the latest \dst.} +% Here we introduce a \dst\ batch file `Xins.ins,' which generates the +% scripts described in Appendix \ref{app:shprog} and \ref{app:plprog}. +%\fi +% +%\ifJAPANESE +% まず、\dst{}パッケージをロードします。 +% また、実行経過のメッセージを出力しないようにしています。 +%\fi +% \begin{macrocode} +%<*Xins> +\input docstrip +\keepsilent +% \end{macrocode} +%\ifJAPANESE +% \dst{}プログラムは、連続する二つのパーセント記号(\%\%)ではじまる行を +% メタコメントとみなし、条件によらず出力をします。 +% しかし、``\%''は\TeX{}ではコメントであっても、shやperlにとってはコメント +% ではありません。そこで、メタコメントとして出力する文字を``\#\#''と +% 変更します。 +%\fi +% \begin{macrocode} +{\catcode`#=12 \gdef\MetaPrefix{## }} +% \end{macrocode} +%\ifJAPANESE +% そして、プリアンブルに出力されるメッセージを宣言します。 +% ここでは、とくに何も指定していませんが、宣言をしないとデフォルトの記述が +% `\%\%'付きで出力されてしまうため、それを抑制する目的で使用しています。 +%\fi +% \begin{macrocode} +\declarepreamble\thispre +\endpreamble +\usepreamble\thispre +% \end{macrocode} +%\ifJAPANESE +% ポストアンブルも同様に、宣言をしないと`|\endinput|'が出力されます。 +%\fi +% \begin{macrocode} +\declarepostamble\thispost +\endpostamble +\usepostamble\thispost +% \end{macrocode} +%\ifJAPANESE +% |\generate|コマンドで、どのファイルに、どのファイルのどの部分を出力するのか +% を指定します。 +%\fi +% \begin{macrocode} +\generate{ + \file{dstcheck.pl}{\from{platex.dtx}{plprog}} + \file{mkpldoc.sh}{\from{platex.dtx}{shprog,ja}} + \file{mkpldoc-en.sh}{\from{platex.dtx}{shprog,en}} +} +\endbatchfile +% +% \end{macrocode} +% +% \newpage +% \begin{thebibliography}{99} +% \bibitem{platex2e-book} +% 中野 賢 +% \newblock 『日本語\LaTeXe ブック』 +% \newblock アスキー, 1996. +% +% \bibitem{tate-book} +% インプレス・ラボ監修, アスキー書籍編集部編 +% \newblock 『縦組対応 パーソナル日本語\TeX{}』 +% \newblock アスキー出版局, 1994 +% +% \bibitem{jtex-tech} +% アスキー出版技術部責任編集 +% \newblock 『日本語\TeX テクニカルブックI』 +% \newblock アスキー, 1990. +% +% \bibitem{ajt2008okumura} +% Haruhiko Okumura, +% \newblock \pTeX\ and Japanese Typesetting +% \newblock The Asian Journal of \TeX, Volume~2, No.~1, 2008.\\ +% (\texttt{http://ajt.ktug.org/2008/0201okumura.pdf}) +% +% \bibitem{tb29hamano} +% Hisato Hamano, +% \newblock Vertical Typesetting with \TeX. +% \newblock TUGboat issue 11:3, 1990.\\ +% (\texttt{https://tug.org/TUGboat/tb11-3/tb29hamano.pdf}) +% +% \bibitem{tex-book} +% Donald~E. Knuth. +% \newblock ``{\em The \TeX book}''. +% \newblock Addison-Wesley, 1984. +% \newblock (邦訳:斎藤信男監修, 鷺谷好輝訳, +% \TeX ブック 改訂新版, アスキー出版局, 1989) +% +% \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{latex-comp} +% Michel Goossens, Frank Mittelbach, Alexander Samarin. +% \newblock ``{\em The {\LaTeX} Companion}''. +% \newblock Addison-Wesley, 1994. +% +% \bibitem{perl} +% 河野 真治 +% \newblock 『入門Perl』 +% \newblock アスキー出版局, 1994 +% \end{thebibliography} +% +% \iffalse +% ここで、このあとに組版されるかもしれない文書のために、 +% 節見出しの番号を算用数字に戻します。 +% \fi +% +% \renewcommand{\thesection}{\arabic{section}} +% +% \Finale +% +\endinput diff --git a/language/japanese/platex/platex.ini b/language/japanese/platex/platex.ini new file mode 100644 index 0000000000..3ac0f71b23 --- /dev/null +++ b/language/japanese/platex/platex.ini @@ -0,0 +1,9 @@ +%% for pLaTeX (ASCII Nihongo LaTeX) +%% written by Tono san (modified by texjporg 2016/05/12) +%% +\begingroup \catcode`\{=1 \catcode`\}=2% + \immediate\write20{<<< making "platex with Babel" format >>>} +\endgroup +\scrollmode +\input platex.ltx +\endinput diff --git a/language/japanese/platex/platex.pdf b/language/japanese/platex/platex.pdf new file mode 100644 index 0000000000..5cb716ebaf Binary files /dev/null and b/language/japanese/platex/platex.pdf differ diff --git a/language/japanese/platex/platexrelease.dtx b/language/japanese/platex/platexrelease.dtx new file mode 100644 index 0000000000..2defdcf948 --- /dev/null +++ b/language/japanese/platex/platexrelease.dtx @@ -0,0 +1,384 @@ +% \iffalse meta-comment +%% File: platexrelease.dtx +% +% Copyright (c) 2016-2019 Japanese TeX Development Community +% +% This file is part of the pLaTeX2e system (community edition). +% ------------------------------------------------------------- +% +% \fi +% +% +% \iffalse +% \changes{v1.0}{2016/02/01}{first edition} +% \changes{v1.0a}{2016/02/03}{latexreleaseをもとにplatexreleaseとして拡張} +% \changes{v1.0b}{2016/02/16}{latexreleaseのバージョン確認を導入} +% \changes{v1.0c}{2016/04/12}{ドキュメントを更新} +% \changes{v1.0d}{2016/06/08}{p\LaTeX\ \texttt{!<2016/04/17!>}版と +% p\LaTeX\ \texttt{!<2016/05/07!>}版に警告} +% \changes{v1.0e}{2016/06/30}{p\LaTeX\ \texttt{!<2016/06/10!>}版に警告} +% \changes{v1.0f}{2016/07/05}{古いplatexreleaseの警告に\cs{pfmtversion}で +% なく\cs{platexreleaseversion}を使用(\LaTeXe\ r1207)} +% \changes{v1.0g}{2016/09/08}{p\LaTeX\ \texttt{!<2016/09/03!>}版に警告} +% \changes{v1.0h}{2017/09/26}{p\LaTeX\ \texttt{!<2017/07/29!>}版に警告} +% \changes{v1.0i}{2017/12/06}{タイポ修正} +% \changes{v1.0j}{2018/01/27}{p\LaTeX\ \texttt{!<2017/09/26!>}版に警告} +% \changes{v1.0k}{2018/01/27}{Add \cs{platexreleaseversion} info +% to \cs{ProvidesPackage} output +% (sync with latexrelease.dtx 2017/12/17 v1.0i)} +% \changes{v1.0l}{2018/04/06}{Drop an extra period in warning message +% (sync with latexrelease.dtx 2018/02/18 v1.0j)} +% \changes{v1.0m}{2018/05/22}{reset \cs{\requestedLaTeXdate} for +% current and latest options +% (sync with latexrelease.dtx 2018/05/08 v1.0k)} +% \fi +% +% \iffalse +\NeedsTeXFormat{pLaTeX2e} +%<*driver> +\def\platexreleaseversion{} +\ProvidesFile{platexrelease.dtx} +% +%\ProvidesPackage{platexrelease} + [2018/05/22 v1.0m latexrelease support for pLaTeX Kernel + (including releases up to \platexreleaseversion)] +%<*driver> +\documentclass{jltxdoc} +\GetFileInfo{platexrelease.dtx} +\author{Japanese \TeX\ Development Community} +\title{The \textsf{platexrelease} package} +\date{作成日:\filedate} +\begin{document} + \newcommand\Lpack[1]{\textsf{#1}} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \changes{v1.0}{2016/02/01}{p\LaTeXe 用に\file{latexrelease.dtx}を修正} +% \changes{v1.0a}{2016/02/03}{latexreleaseをもとにplatexreleaseとして拡張} +% +% p\LaTeXe{}がベースにしている\LaTeXe{}は、2015年より前まではカーネルの +% 互換性を失わせる大きな変更は加えられず、修正は\Lpack{fixltx2e}パッケージ +% で提供されていました。しかし、2015年以降は\Lpack{fixltx2e}の変更点が +% すべて\LaTeXe{}のカーネルに取り込まれ、代わりに過去のバージョンの +% \LaTeXe{}をエミュレートするための\Lpack{latexrelease}パッケージが提供 +% されるようになりました。 +% +% この\Lpack{platexrelease}パッケージは、p\LaTeXe{}で\Lpack{latexrelease}に +% 相当する機能を提供するためのパッケージです。 +% 基本的な使い方は +%\begin{verbatim} +% \RequirePackage[2015/01/01]{platexrelease} +% \documentclass{jarticle} +% .... +%\end{verbatim} +% です。\Lpack{latexrelease}の代わりに\Lpack{platexrelease}を読み込まな +% いと、p\LaTeXe{}で日本語用に加えた\LaTeXe{}へのパッチがキャンセルされ +% てしまう場合がありますので注意してください。このことをユーザに知らせる +% ため、p\LaTeX{}のカーネルは、「\Lpack{latexrelease}パッケージが読み込 +% まれたのに\Lpack{platexrelease}パッケージが読み込まれなかった場合」に +% 警告を出し、\Lpack{platexrelease}パッケージの利用を推奨します。また、 +% 「読み込まれた\Lpack{latexrelease}について\Lpack{platexrelease}が +% 未知である」場合も、\Lpack{platexrelease}が万全ではありませんので警告 +% を出します。\Lpack{latexrelease}の使いかたについては、 +% \Lpack{latexrelease}のドキュメントを参照してください。 +% +% \section{パッケージオプション} +% +% \Lpack{latexrelease}パッケージと同様です。\Lpack{platexrelease}に +% 指定されたオプションは、内部で読み込まれる\Lpack{latexrelease}にも +% そのまま渡ります。\Lpack{platexrelease}と\Lpack{latexrelease} +% の間の関係もここで具体的に説明します。 +% \begin{itemize} +% \item |\RequirePackage[|\emph{yyyy/mm/dd}|]{platexrelease}| \par +% p\LaTeXe{}のフォーマットの日付を指定します。任意の日付を指定できます +% が、パッケージよりも未来の日付が指定された場合は警告します。このオプ +% ションが指定されると、「\emph{yyyy/mm/dd}時点の\LaTeX{}カーネルを読み +% 込んだ後に、同じく\emph{yyyy/mm/dd}時点のp\LaTeX{}カーネルを読み込ん +% だもの」をエミュレートします。 +% \item |\RequirePackage[current]{platexrelease}| \par +% これはデフォルトの挙動です。フォーマットの日付は実効的に変更しません +% が、|\plIncludeInRelease|コマンドが定義されることを保証します。 +% 具体的には\LaTeX{}のフォーマットは |\fmtversion| に、% p\LaTeX{}の +% フォーマットは |\pfmtversion| になります。 +% \item |\RequirePackage[latest]{platexrelease}| \par +% p\LaTeX{}のフォーマットの日付を、このファイルのリリース日に設定します。 +% したがって、古いフォーマットを使っている場合は現在利用可能なすべての +% パッチが適用されます。具体的には、「\Lpack{latexrelease}が知っている +% 最新の\LaTeX{}カーネルを読み込んだ後に、\Lpack{platexrelease}が知って +% いる最新のp\LaTeX{}カーネルを読み込んだもの」をエミュレートします。 +% \end{itemize} +% +% \section{p\LaTeX{}カーネルやパッケージ開発者向け} +% +% \subsection{フォーマット作成にかかわるファイルを変更する場合} +% +% p\LaTeX{}のフォーマットplatex.fmtのソースを変更する場合は、大まかに +% 以下のようにガードを付けます。 +% \begin{enumerate} +% \item 古いコードを \par +% |\plIncludeInRelease{日付}{ラベル}{メッセージ}| … +% |\plEndIncludeInRelease| \par +% に挟み、全体を || ガードの下に置きます。新しいコードと +% 区別がつくように、すべての行にガードを付けます。 +% \item 新しいコードは \par +% |\plIncludeInRelease{日付}{ラベル}{メッセージ}| … +% |\plEndIncludeInRelease| \par +% に挟みます。コード部分は \verb+<*plナントカ|platexrelease>+ ガードの中、 +% |\plIncludeInRelease| と |\plEndIncludeInRelease| には || +% ガードを付けます。 +% \item すべてのコードはもともと |<*plナントカ>| ガードの中にあるはずです +% ので、|\begin{macrocode}| 直後にいったん |<*plナントカ>| ガードを終了し、 +% |\end{macrocode}| 直前にもう一度 |<*plナントカ>| ガードを開始します。 +% \end{enumerate} +% 日付は2006/11/10時点のアスキー版のコードなら「0000/00/00」とし、 +% その後なら「次回リリース(予定)日」とします。すべての日付ブロックは +% 降順に並べるとよいようです。 +% +% 典型例を示します。 +%\begin{verbatim} +% % \begin{macro}{\em} +% % \begin{macro}{\emph} +% % \begin{macro}{\eminnershape} +% % \changes{v1.3d}{1997/06/25}{\cs{em},\cs{emph}で和文を強調書体に} +% % \changes{v1.6}{2016/02/01}{\LaTeX\ \texttt{!<2015/01/01!>}での\cs{em}の +% % 定義変更に対応。\cs{eminnershape}を追加。} +% % 従来は|\em|, |\emph|で和文フォントの切り替えは行っていませんでしたが、 +% % 和文フォントも|\gtfamily|に切り替えるようにしました。 +% % \LaTeX\ \texttt{<2015/01/01>}で追加された|\eminnershape|も取り入れ、 +% % 強調コマンドを入れ子にする場合の書体を自由に再定義できるようになりました。 +% % \begin{macrocode} +% % +% %\plIncludeInRelease{2016/04/17}{\eminnershape}{\eminnershape}% +% %<*pldefs|platexrelease> +% \DeclareRobustCommand\em +% {\@nomath\em \ifdim \fontdimen\@ne\font >\z@ +% \eminnershape \else \gtfamily \itshape \fi}% +% \def\eminnershape{\mcfamily \upshape}% +% % +% %\plEndIncludeInRelease +% %\plIncludeInRelease{0000/00/00}{\eminnershape}{\eminnershape}% +% %\DeclareRobustCommand\em +% % {\@nomath\em \ifdim \fontdimen\@ne\font >\z@ +% % \mcfamily \upshape \else \gtfamily \itshape \fi} +% %\let\eminnershape\@undefined +% %\plEndIncludeInRelease +% %<*pldefs> +% % \end{macrocode} +% % \end{macro} +% % \end{macro} +% % \end{macro} +%\end{verbatim} +% +% あとは、|\ProvidesFile|のバージョン番号、|\CheckSum|、|\changes|と +% いった従来と同じ変更を行います。 +% +% \subsection{パッケージ作成にかかわるファイルを変更する場合} +% +% フォーマットにかかわる場合と異なる点は、|| ガードが +% 不要であるという点です。 +% \begin{enumerate} +% \item 古いコードを \par +% |\plIncludeInRelease{日付}[フォーマットの日付]{ラベル}{メッセージ}| +% … |\plEndIncludeInRelease| \par +% に挟みます。 +% \item 新しいコードを \par +% |\plIncludeInRelease{日付}[フォーマットの日付]{ラベル}{メッセージ}| +% … |\plEndIncludeInRelease| \par +% に挟みます。 +% \end{enumerate} +% 日付は2006/11/10時点のアスキー版のコードなら「0000/00/00」とし、 +% その後なら「次回リリース(予定)日」とします。すべての日付ブロックは +% 降順に並べるとよいようです。 +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \section{コード} +% +% 最初に\Lpack{latexrelease}パッケージを読み込みます。 +% \begin{macrocode} +%<*platexrelease> +\RequirePackageWithOptions{latexrelease} +% \end{macrocode} +% +% 読み込んだ\Lpack{latexrelease}パッケージのバージョンを確認し、 +% \Lpack{platexrelease}が未対応の新しいものであった場合に警告します。 +% \changes{v1.0b}{2016/02/16}{latexreleaseのバージョン確認を導入} +% \begin{macrocode} +\ifnum\expandafter\@parse@version\latexreleaseversion//00\@nil + >\expandafter\@parse@version\p@known@latexreleaseversion//00\@nil + \PackageWarningNoLine{platexrelease}{% + Version of `latexrelease' is newer than\MessageBreak + what `platexrelease' knows} +\fi +% \end{macrocode} +% +% \Lpack{platexrelease}パッケージのオプションを定義します。コードは +% \Lpack{latexrelease}のものをp\LaTeXe{}用に書き換えたものです。 +% \changes{v1.0m}{2018/05/22}{reset \cs{\requestedLaTeXdate} for +% current and latest options +% (sync with latexrelease.dtx 2018/05/08 v1.0k)} +% \begin{macrocode} +\DeclareOption*{% + \def\@plIncludeInRelease#1[#2]{\@plIncludeInRele@se{#1}}% + \let\requestedplpatchdate\CurrentOption} +\DeclareOption{latest}{% + \let\requestedplpatchdate\platexreleaseversion + \AtEndOfPackage{\def\requestedpLaTeXdate{0}}} +\DeclareOption{current}{% + \let\requestedplpatchdate\pfmtversion + \AtEndOfPackage{\def\requestedpLaTeXdate{0}}} +% \end{macrocode} +% +% \begin{macrocode} +\let\requestedplpatchdate\pfmtversion +\ProcessOptions\relax +% \end{macrocode} +% +% \begin{macrocode} +\def\reserved@a{% +\edef\requestedpLaTeXdate{\the\count@}% +\reserved@b} +\def\reserved@b#1\\{% +\def\reserved@b{#1}% +\ifx\reserved@b\@empty\else +\PackageError{platexrelease}% + {Unexpected option \requestedplpatchdate}% + {The option must be of the form yyyy/mm/dd or yyyy-mm-dd}% +\fi} +\afterassignment\reserved@a +\count@\expandafter + \@parse@version\expandafter0\requestedplpatchdate//00\@nil\\ +% \end{macrocode} +% +% \begin{macrocode} +\edef\currentpLaTeXdate{% + \expandafter\@parse@version\pfmtversion//00\@nil} +% \end{macrocode} +% +% \begin{macrocode} +\ifnum\requestedpLaTeXdate=\currentpLaTeXdate +\PackageWarningNoLine{platexrelease}{% + Current format date selected, no patches applied} +\expandafter\endinput +\fi +% \end{macrocode} +% +% より新しいフォーマットに対しては、より新しいバージョンの +% \Lpack{platexrelease}が提供されているはずです。 +% \changes{v1.0f}{2016/07/05}{古いplatexreleaseの警告に\cs{pfmtversion}で +% なく\cs{platexreleaseversion}を使用(\LaTeXe\ r1207)} +% \begin{macrocode} +\ifnum\currentpLaTeXdate + >\expandafter\@parse@version\platexreleaseversion//00\@nil +\PackageWarningNoLine{platexrelease}{% +The current package is for an older pLaTeX format:\MessageBreak +pLaTeX \platexreleaseversion\space\MessageBreak +Obtain a newer version of this package!} +\expandafter\endinput +\fi +% \end{macrocode} +% +% 将来のp\LaTeXe{}をつくりだすパッチはありませんが、オプションは +% 現時点では受け入れます。 +% \begin{macrocode} +\ifnum\requestedpLaTeXdate + >\expandafter\@parse@version\platexreleaseversion//00\@nil +\PackageWarningNoLine{platexrelease}{% +The current package is for pLaTeX \platexreleaseversion:\MessageBreak +It has no patches beyond that date\MessageBreak +There may be an updated version\MessageBreak +of this package available from CTAN} +\expandafter\endinput +\fi +% \end{macrocode} +% +% フォーマットのバージョンを要求されている日付に更新します。 +% \begin{macrocode} +\let\pfmtversion\requestedplpatchdate +\let\currentpLaTeXdate\requestedpLaTeXdate +% +% \end{macrocode} +% +% このあとは、p\LaTeXe{}のカーネルの変更点を示すコードが入ります。 +% +% \section{注意:p\LaTeXe{}のバグ情報} +% +% 以下の日付のp\LaTeXe{}にはcriticalなバグがあることを、 +% 日本語\TeX{}開発コミュニティが把握しています。 +% エミュレートしようと考えている場合は、注意してください。 +% \changes{v1.0d}{2016/06/08}{p\LaTeX\ \texttt{!<2016/04/17!>}版と +% p\LaTeX\ \texttt{!<2016/05/07!>}版に警告} +% \changes{v1.0e}{2016/06/30}{p\LaTeX\ \texttt{!<2016/06/10!>}版に警告} +% \changes{v1.0g}{2016/09/08}{p\LaTeX\ \texttt{!<2016/09/03!>}版に警告} +% \changes{v1.0h}{2017/09/26}{p\LaTeX\ \texttt{!<2017/07/29!>}版に警告} +% \changes{v1.0i}{2017/12/06}{タイポ修正} +% \changes{v1.0j}{2018/01/27}{p\LaTeX\ \texttt{!<2017/09/26!>}版に警告} +% \begin{macrocode} +\def\pliirpkg@ver@warn{% + You selected pLaTeX2e <\pfmtversion>, but\MessageBreak + this version of pLaTeX2e is known to have\MessageBreak + some critical bugs. We advise you to\MessageBreak + select another format date} +\plIncludeInRelease{2017/10/28}{\PackageWarning}{pLaTeX Info}% + % * <2019-04-06> + % * <2018-12-01> + % * <2018-07-28>+1 + % * <2018-07-28> + % * <2018-05-20> + % * <2018-04-01>+2 + % * <2018-04-01>+1 + % * <2018-04-01> + % * <2018/03/09>+1 + % * <2018/03/09> + % * <2017/10/28>+4 +\plEndIncludeInRelease +\plIncludeInRelease{2017/07/29}{\PackageWarning}{pLaTeX Info}% + % * <2017/10/28>+3 + % * <2017/10/28>+2 + % * <2017/10/28>+1 + % * <2017/10/28> + % * <2017/09/26> + % * <2017/07/29>+1 + % - Enabling \linebreak before prebreakpenalty caused + % ineffective \nolinebreak (fixed in <2017/10/28>+4) + % * <2017/07/29> + % - Inhibit JFM glue in tabular cells resulted in + % misplaced right alignment (fixed in <2017/09/26>) + \PackageWarningNoLine{platexrelease}{\pliirpkg@ver@warn} +\plEndIncludeInRelease +\plIncludeInRelease{2016/09/08}{\PackageWarning}{pLaTeX Info}% + % * <2017/05/05> + % * <2017/04/08> + % * <2016/11/29> + % * <2016/09/08> +\plEndIncludeInRelease +\plIncludeInRelease{2016/09/03}{\PackageWarning}{pLaTeX Info}% + % * <2016/09/03> + % - \footnotetext in vertical mode resulted in extra + % vertical space (fixed in <2016/09/08>) + \PackageWarningNoLine{platexrelease}{\pliirpkg@ver@warn} +\plEndIncludeInRelease +\plIncludeInRelease{2016/07/01}{\PackageWarning}{pLaTeX Info}% + % * <2016/07/01> +\plEndIncludeInRelease +\plIncludeInRelease{2016/04/17}{\PackageWarning}{pLaTeX Info}% + % * <2016/06/10>+1 + % * <2016/06/10> + % * <2016/05/07> + % * <2016/04/17> + % - Fix for non-zero baselineshift in accent composition + % was problematic (fixed in <2016/07/01>) + \PackageWarningNoLine{platexrelease}{\pliirpkg@ver@warn} +\plEndIncludeInRelease +\plIncludeInRelease{0000/00/00}{\PackageWarning}{pLaTeX Info}% + % * <2006/11/10> +\plEndIncludeInRelease +% \end{macrocode} +% +% \Finale +% +\endinput diff --git a/language/japanese/platex/platexrelease.ins b/language/japanese/platex/platexrelease.ins new file mode 100644 index 0000000000..d7b49dc39b --- /dev/null +++ b/language/japanese/platex/platexrelease.ins @@ -0,0 +1,25 @@ +\input docstrip +\keepsilent +\ifToplevel{\askonceonly} +\usedir{tex/platex/base} + +\Msg{*** Generating the pLaTeX files for supporting latexrelease ***} + +\preamble + +Copyright (c) 2016-2018 Japanese TeX Development Community + +This file is part of the pLaTeX2e system (community edition). +------------------------------------------------------------- + +\endpreamble + +\generate{ + \file{platexrelease.sty}{ + \from{plvers.dtx}{platexrelease} + \from{platexrelease.dtx}{platexrelease} + \from{plfonts.dtx}{platexrelease} + \from{plcore.dtx}{platexrelease}} +} + +\endbatchfile diff --git a/language/japanese/platex/platexrelease.pdf b/language/japanese/platex/platexrelease.pdf new file mode 100644 index 0000000000..df2e838e32 Binary files /dev/null and b/language/japanese/platex/platexrelease.pdf differ diff --git a/language/japanese/platex/plcls.ins b/language/japanese/platex/plcls.ins new file mode 100644 index 0000000000..6993d136ba --- /dev/null +++ b/language/japanese/platex/plcls.ins @@ -0,0 +1,48 @@ +\input docstrip +\keepsilent +\ifToplevel{\askonceonly} +\usedir{tex/platex/base} + +\Msg{*** Generating the pLaTeX class files ***} + +\preamble + +Copyright (c) 2010 ASCII MEDIA WORKS +Copyright (c) 2016-2019 Japanese TeX Development Community + +This file is part of the pLaTeX2e system (community edition). +------------------------------------------------------------- + +\endpreamble + +% +% 横組用クラスファイル +% +\generate{ + \file{jarticle.cls}{\from{jclasses.dtx}{article,yoko}} + \file{jreport.cls}{\from{jclasses.dtx}{report,yoko}} + \file{jbook.cls}{\from{jclasses.dtx}{book,yoko}} + \file{jsize10.clo}{\from{jclasses.dtx}{10pt,yoko}} + \file{jsize11.clo}{\from{jclasses.dtx}{11pt,yoko}} + \file{jsize12.clo}{\from{jclasses.dtx}{12pt,yoko}} + \file{jbk10.clo}{\from{jclasses.dtx}{10pt,bk,yoko}} + \file{jbk11.clo}{\from{jclasses.dtx}{11pt,bk,yoko}} + \file{jbk12.clo}{\from{jclasses.dtx}{12pt,bk,yoko}} +} + +% +% 縦組用クラスファイル +% +\generate{ + \file{tarticle.cls}{\from{jclasses.dtx}{article,tate}} + \file{treport.cls}{\from{jclasses.dtx}{report,tate}} + \file{tbook.cls}{\from{jclasses.dtx}{book,tate}} + \file{tsize10.clo}{\from{jclasses.dtx}{10pt,tate}} + \file{tsize11.clo}{\from{jclasses.dtx}{11pt,tate}} + \file{tsize12.clo}{\from{jclasses.dtx}{12pt,tate}} + \file{tbk10.clo}{\from{jclasses.dtx}{10pt,bk,tate}} + \file{tbk11.clo}{\from{jclasses.dtx}{11pt,bk,tate}} + \file{tbk12.clo}{\from{jclasses.dtx}{12pt,bk,tate}} +} + +\endbatchfile diff --git a/language/japanese/platex/plcore.dtx b/language/japanese/platex/plcore.dtx new file mode 100644 index 0000000000..d71af9c45f --- /dev/null +++ b/language/japanese/platex/plcore.dtx @@ -0,0 +1,2474 @@ +% \iffalse meta-comment +%% File: plcore.dtx +% +% Copyright 1994-2001 ASCII Corporation. +% Copyright (c) 2010 ASCII MEDIA WORKS +% Copyright (c) 2016-2019 Japanese TeX Development Community +% +% This file is part of the pLaTeX2e system (community edition). +% ------------------------------------------------------------- +% +% \fi +% +% \iffalse +%<*driver> +\ifx\JAPANESEtrue\undefined + \expandafter\newif\csname ifJAPANESE\endcsname + \JAPANESEtrue +\fi +\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} +% +% \fi +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0}{1994/09/16}{first edition} +% \changes{v1.1}{1995/04/12}{脚注マクロ修正} +% \changes{v1.1a}{1995/11/10}{\cs{topmargin}が反映されないバグを修正} +% \changes{v1.1b}{1996/01/26}{脚注マークの後ろに余計なスペースが入るのを修正} +% \changes{v1.1c}{1996/01/30}{ファイル名を\file{ploutput.dtx}から +% \file{plcore.dtx}とした。キャプション拡張を\file{plext.dtx}に移動。 +% プリアンブルコマンドを追加} +% \changes{v1.1d}{1996/02/17}{\cs{printglossary}を追加} +% \changes{v1.1e}{1996/03/12}{tabbing環境での和欧文間スペース} +% \changes{v1.1f}{1996/07/10}{トンボまわりを修正} +% \changes{v1.1g}{1997/01/16}{\LaTeX\ \textt{!<1996/06/01!>}に対応} +% \changes{v1.1h}{1997/06/25}{\LaTeX{}の改行マクロの変更に対応。 +% ありがとう、奥村さん。} +% \changes{v1.1i}{1998/02/03}{\cs{@shipoutsetup}を\cs{@outputpage}内に入れた} +% \changes{v1.1j}{2001/05/10}{\cs{@makecol}で組み立てられる +% \cs{@outputbox}の大きさが、縦組で中身が空のボックスだけの場合も適正になる +% ように修正} +% \changes{v1.2}{2001/09/04}{本文と\cs{footnoterule}が重なってしまうのを修正} +% \changes{v1.2a}{2001/09/26}{\LaTeX\ \texttt{!<2001/06/01!>}に対応} +% \changes{v1.2b}{2016/01/26}{2013年以降のp\TeX\ (r28720)で脚注番号の前後の和文文字 +% との間にxkanjiskipが入ってしまう問題に対応。 +% \cs{@outputbox}の深さが他のものの位置に影響を与えない +% ようにする\texttt{\cs{vskip}~-\cs{dimen@}}が縦組モードでは無効になっていたので修正} +% \changes{v1.2c}{2016/02/28}{1.2bと同様の修正をtabular環境にも行った} +% \changes{v1.2c}{2016/02/28}{1.2bと同様の修正を\cs{parbox}命令にも行った} +% \changes{v1.2c}{2016/02/28}{1.2bと同様の修正を\cs{underline}命令にも行った} +% \changes{v1.2d}{2016/04/01}{multicolパッケージを使うとトンボの下端が縮む問題を修正} +% \changes{v1.2e}{2016/05/20}{\file{fltrace}パッケージのp\LaTeX{}版 +% として\file{pfltrace}パッケージを新設} +% \changes{v1.2f}{2016/06/30}{\cs{@begindvibox}を常に横組に} +% \changes{v1.2g}{2016/08/25}{カウンタ\cs{pltx@foot@penalty}を追加} +% \changes{v1.2g}{2016/08/25}{合印の前の文字と合印の間をベタ組に} +% \changes{v1.2g}{2016/08/25}{閉じ括弧類の直後に\cs{footnotetext}が続く +% 場合に改行が起きることがある問題に対処} +% \changes{v1.2g}{2016/08/25}{脚注の合印直後での改行が禁止されてしまう +% 問題に対処} +% \changes{v1.2h}{2016/09/01}{縦組でlongtableパッケージを使って表組の途中で改ページ +% するとき無限ループが起こる問題に対処(Issue 21)} +% \changes{v1.2i}{2016/09/08}{v1.2gの修正で入れた\cs{null}がまずかったので +% 水平モードのときだけ発行することにした(Issue 23)} +% \changes{v1.2j}{2016/11/09}{FAM256パッチ適用e-p\TeX{}に対応} +% \changes{v1.2k}{2017/02/20}{目次で\cs{ref}を使った場合に後ろの空白が消える +% 現象に対処するため、\cs{relax}のあとに\{\}を追加} +% \changes{v1.2l}{2017/02/25}{脚注とボトムフロートの順序を入れ替えたことで +% 版面全体の垂直位置がずれていたのを修正(Issue 32)} +% \changes{v1.2l}{2017/02/25}{\cs{@makecol}を変更したのに +% \cs{@makespecialcolbox}を変更しない、という判断について明文化} +% \changes{v1.2m}{2017/03/19}{\cs{language}をリセット +% (sync with ltoutput.dtx 2017/03/10 v1.3c)} +% \changes{v1.2m}{2017/03/19}{\cs{verb}の途中でハイフネーションが起きない +% ように\cs{language}を設定(sync with ltmiscen.dtx 2017/03/09 v1.1m)} +% \changes{v1.2n}{2017/04/23}{ドキュメントの追加} +% \changes{v1.2o}{2017/05/03}{行頭禁則文字の直前でも改行するようにした} +% \changes{v1.2p}{2017/07/21}{tabular環境のセル内のJFMグル―を削除} +% \changes{v1.2q}{2017/08/25}{\cs{nolinebreak}の場合に\cs{(x)kanjiskip}が +% 入らなくなっていたのを修正} +% \changes{v1.2r}{2017/09/26}{tabular環境の右揃え(r)で罫線がずれるように +% なっていたバグを修正} +% \changes{v1.2s}{2017/09/27}{相互参照のスペースファクターを補正} +% \changes{v1.2s}{2017/09/27}{\cs{verb}の冒頭の半角空白を保持} +% \changes{v1.2s}{2017/09/27}{tabbing環境の行冒頭のJFMグル―を削除} +% \changes{v1.2t}{2017/10/31}{v1.2sの変更に伴い、\cs{ref}が数式モードで +% エラーになっていたのを修正} +% \changes{v1.2u}{2017/11/04}{emathの\cs{marusuuref}対策} +% \changes{v1.2v}{2018/01/27}{v1.2oとv1.2qの修正で\cs{nolinebreak}が +% 効かない場合があったので、元に戻した} +% \changes{v1.2w}{2018/02/24}{e-up\TeX{}でも\cs{omathchardef}を使用} +% \changes{v1.2x}{2018/03/01}{JFMグルーノードを削除するマクロ追加} +% \changes{v1.2x}{2018/03/01}{\cs{removejfmglue}があれば利用するようにした} +% \changes{v1.2x}{2018/03/01}{セル最初の\cs{par}で空行が入らないようにした} +% \changes{v1.2x}{2018/03/01}{\cs{everypar}に\cs{inhibitglue}を仕込むマクロ追加} +% \changes{v1.2y}{2018/03/12}{\cs{inhibitglue}を\cs{everypar}の末尾に移動} +% \changes{v1.2z}{2018/05/13}{\cs{@tombowbleed}マクロ追加} +% \changes{v1.2z}{2018/05/13}{\cs{@tombowcolor}マクロ追加} +% \changes{v1.2z}{2018/05/13}{bleed幅を\cs{@tombowbleed}に切り出し} +% \changes{v1.2z}{2018/05/13}{色の付いたテキストの途中で改ページすると +% トンボにも色が付く現象に対処、さらにトンボの色を\cs{@tombowcolor}へ・ +% bleed幅を\cs{@tombowbleed}に切り出し} +% \changes{v1.2z}{2018/05/13}{コマンドに分離、さらに +% bleed幅を\cs{@tombowbleed}に切り出し} +% \changes{v1.2z}{2018/05/13}{\cs{@tombowreset@@paper}コマンドに分離} +% \changes{v1.3}{2018/09/02}{\cs{removejfmglue}の挙動を明文化} +% \changes{v1.3}{2018/09/02}{\file{platexrelease}バグ修正} +% \changes{v1.3a}{2018/10/31}{\LaTeXe{}とp\LaTeXe{}の更新タイミングずれ対策を +% \file{plvers.dtx} (plfinal) から\file{plcore.dtx}へ移動、latexrelease対策 +% (sync with ltfinal 2018/08/24 v2.1f)} +% \changes{v1.3b}{2019/02/08}{中央揃えのセルでの\cs{unskip}対策 +% (sync with lttab 2018/12/30 v1.1p)} +% \fi +% +% \iffalse +%<*driver> +\NeedsTeXFormat{pLaTeX2e} +% \fi +\ProvidesFile{plcore.dtx}[2019/02/08 v1.3b pLaTeX core file] +% \iffalse +\documentclass{jltxdoc} +\GetFileInfo{plcore.dtx} +\title{p\LaTeXe{}の拡張\space\fileversion} +\author{Ken Nakano \& Hideaki Togashi} +\date{作成日:\filedate} +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% +% \section{概要}\label{plcore:intro} +% このファイルでは、つぎの機能の拡張や修正を行っています。 +% 詳細は、それぞれの項目の説明を参照してください。 +% +% \begin{itemize} +% \item プリアンブルコマンド +% \item 改ページ +% \item 改行 +% \item オブジェクトの出力順序 +% \item トンボ +% \item 脚注マクロ +% \item 相互参照 +% \item 疑似タイプ入力 +% \item tabbing環境 +% \item 用語集の出力 +% \item 時分を示すカウンタ +% \end{itemize} +% +% +% \section{コード} +% +% このファイルの内容は、p\LaTeXe{}のコア部分です。 +% \begin{macrocode} +%<*plcore> +% \end{macrocode} +% +% \subsection{プリアンブルコマンド} +% 文書ファイルが必要とするフォーマットファイルの指定をするコマンドを +% 拡張し、p\LaTeXe{}フォーマットファイルも認識するようにします。 +% +% \begin{macro}{\NeedsTeXFormat} +% \begin{macro}{\@needsPformat} +% \begin{macro}{\@needsPf@rmat} +% |\NeedsTeXFormats|に``pLaTeX2e''を指定すると、 +% ``LaTeX2e''フォーマットを必要とする英語版のクラスファイルや +% パッケージファイルなどが使えなくなってしまうために再定義します。 +% このコマンドは\file{ltclass.dtx}で定義されています。 +% \begin{macrocode} +\def\NeedsTeXFormat#1{% + \def\reserved@a{#1}% + \ifx\reserved@a\pfmtname + \expandafter\@needsPformat + \else + \ifx\reserved@a\fmtname + \expandafter\expandafter\expandafter\@needsformat + \else + \@latex@error{This file needs format `\reserved@a'% + \MessageBreak but this is `\pfmtname'}{% + The current input file will not be processed + further,\MessageBreak + because it was written for some other flavor of + TeX.\MessageBreak\@ehd}% + \endinput + \fi + \fi} +% +\def\@needsPformat{\@ifnextchar[\@needsPf@rmat{}} +% +\def\@needsPf@rmat[#1]{% + \@ifl@t@r\pfmtversion{#1}{}% + {\@latex@warning@no@line + {You have requested release `#1' of pLaTeX,\MessageBreak + but only release `\pfmtversion' is available}}} +% +\@onlypreamble\@needsPformat +\@onlypreamble\@needsPf@rmat +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\documentstyle} +% |\documentclass|の代わりに|\documentstyle|が使われると、 +% \LaTeX~2.09互換モードに入ります。このとき、 +% オリジナルの\LaTeX{}では\file{latex209.def}を読み込みますが、 +% p\LaTeXe{}では\file{pl209.def}を読み込みます。 +% このコマンドは\file{ltclass.dtx}で定義されています。 +% \begin{macrocode} +\def\documentstyle{% + \makeatletter\input{pl209.def}\makeatother + \documentclass} +% +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{直前のJFM由来スペースの削除【コミュニティ版独自】} +% 現状のp\TeX{}(\TeX\ Live 2017時点)では、 +% |\inhibitglue|プリミティブは「JFM由来のスペース(グルー・カーン)挿入 +% ルーチンを抑制する」働きをします。しかし、既に挿入されてしまった +% JFMグルーやカーンを削除することはできません。 +% +% \begin{macro}{\removejfmglue} +% そこで、「最後のノードがJFMグルーであった場合にそれを削除する」という +% ユーザ向け命令を定義します。この機能にはe-p\TeX{} 180226以降の +% |\lastnodesubtype|プリミティブが必要です。 +% この命令はあくまで「\verb+\removejfmglue+の展開時点で +% 既にp\TeX{}によって挿入完了しているJFMグルー」だけを +% 削除し、「これから挿入されようとするJFMグルー」は抑制しません。例えば +%\begin{verbatim} +% 始)\removejfmglue 中)\relax\removejfmglue 終 +%\end{verbatim} +% という入力からは +% \begin{quote} +% 始)\removejfmglue 中)\relax\removejfmglue 終 +% \end{quote} +% が得られます(最初の\verb+\removejfmglue+は結果的に何もしていません)。 +% \changes{v1.2x}{2018/03/01}{JFMグルーノードを削除するマクロ追加} +% \changes{v1.3}{2018/09/02}{\cs{removejfmglue}の挙動を明文化} +% \begin{macrocode} +%\plIncludeInRelease{2018/03/09}% +% {\removejfmglue}{Macro added}% +%<*plcore|platexrelease> +% \end{macrocode} +% \begin{macrocode} +\ifx\lastnodesubtype\@undefined + \let\removejfmglue\@undefined +\else + \setbox0\hbox{% + \ifdefined\ucs %% upTeX check + \jfont\tenmin=upjisr-h at 9.62216pt + \else + \jfont\tenmin=min10 + \fi\tenmin + \char\jis"214B\null\setbox0\lastbox + \global\chardef\pltx@gluetype\lastnodetype + \global\chardef\pltx@jfmgluesubtype\lastnodesubtype + } + \setbox0=\box\voidb@x + \protected\def\removejfmglue{% + \ifnum\lastnodetype=\pltx@gluetype\relax + \ifnum\lastnodesubtype=\pltx@jfmgluesubtype\relax + \unskip + \fi + \fi} +\fi +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}% +% {\removejfmglue}{Macro added}% +%\let\removejfmglue\@undefined +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% +% \subsection{改ページ} +% 縦組のとき、改ページ後の内容が偶数ページ(右ページ)からはじまるようにします。 +% 横組のときには、奇数ページ(右ページ)からはじまります。 +% +% \begin{macro}{\cleardoublepage} +% このコマンドによって出力される、白ページのページスタイルを +% \pstyle{empty}にし、ヘッダとフッタが入らないようにしています。 +% \file{ltoutput.dtx}の定義を、縦組、横組に合わせて、定義しなおしたものです。 +% \begin{macrocode} +%<*plcore> +\def\cleardoublepage{\clearpage\if@twoside + \ifodd\c@page + \iftdir + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi + \else + \ifydir + \hbox{}\thispagestyle{empty}\newpage + \if@twocolumn\hbox{}\newpage\fi + \fi + \fi\fi} +% \end{macrocode} +% \end{macro} +% +% \subsection{改行} +% +% \begin{macro}{\@gnewline} +% \changes{v1.1c}{1995/08/25}{行頭禁則文字の直前での改行での不具合の修正} +% 日本語\TeX{}の行頭禁則処理は、禁則対象文字の直前に、 +% |\prebreakpenalty|で指定されたペナルティの値を挿入することで +% 行なっています。 +% ところが、改行コマンドは負のペナルティの値を挿入することで改行を行ないます。 +% そのために、禁則ペナルティの値が$10000$の文字の直後では、ペナルティの値が +% 相殺され、改行することができません。 +% +%\begin{verbatim} +% あいうえお\\ +% !かきくけこ +%\end{verbatim} +% +% したがって、|\newline|マクロに|\mbox{}|を入れることによって、 +% |\newline|マクロのペナルティ$-10000$と行頭文字のペナルティ$10000$が +% 加算されないようにします。|\\|は|\newline|マクロを呼び出しています。 +% +% なお、|\newline|マクロは\file{ltspaces.dtx}で定義されています。 +% +% \changes{v1.1j}{1999/04/05}{オプションを付けた場合に、余計な空白 +% が入ってしまうのを修正。ありがとう、鈴木隆志@京都大学さん。} +% \changes{v1.1h}{1997/06/25}{\LaTeX{}の改行マクロの変更に対応。 +% ありがとう、奥村さん。} +% \LaTeX\ \texttt{<1996/12/01>}で改行マクロが変更され、|\\|が +% |\newline|を呼び出さなくなったため、変更された改行マクロに対応しまし +% た。|\null|の挿入位置は同じです。 +% \file{ltspace.dtx}の定義を上記に合わせて、定義しなおしました。 +% +% \emph{日本語\TeX{}開発コミュニティによる補足}: +% アスキーによるp\LaTeX{}では、行頭禁則文字の直前で|\\|による強制改行を +% 行えるようにするという目的で +% |\null|を|\@gnewline|マクロ内に挿入していました。 +% しかし、これでは|\\\par|と書いた場合にUnderfull警告が出なくなって +% います(|tests/newline_par.tex|を\texttt{latex}と\texttt{platex}で +% 処理してみてください)。 +% +% もし|\null|の代わりに|\hskip\z@|を挿入すれば、\LaTeX{}と同様に +% Underfull警告を出すことができます。 +% ただし、|\null|を挿入した場合と異なり、強制改行後の行頭に +% JFMグル―が入らなくなります。これはむしろ、奥村さんのjsclassesで +% 行頭を天ツキに直しているのと同じですが、p\LaTeX{}としては挙動が +% 変化してしまいますので、現時点では|\null|→|\hskip\z@|への変更を +% 見送っています。 +% \changes{v1.2n}{2017/04/23}{ドキュメントの追加} +% +% \begin{macrocode} +\def\@gnewline #1{% + \ifvmode + \@nolnerr + \else + \unskip \reserved@e {\reserved@f#1}\nobreak \hfil \break \null + \ignorespaces + \fi} +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@no@lnbk} +% \emph{日本語\TeX{}開発コミュニティによる追加}: +% さらに、|\\|だけでなく|\linebreak|についても同様の対処をします。 +% \LaTeX{}の定義のままではマクロによるペナルティ$-10000$と +% 行頭文字のペナルティ$10000$が加算されてしまうため、 +% |\hskip\z@\relax|を入れておきます。なお、|\linebreak|を発行して +% 行分割が起きた場合、新しい行頭のJFMグル―は消えるという従来の +% p\LaTeX{}の挙動も維持しています。 +% \changes{v1.2o}{2017/05/03}{行頭禁則文字の直前でも改行するようにした} +% +% 前回の|\hskip\z@\relax|の追加では、|\nolinebreak|の場合に|\kanjiskip|や +% |\xkanjiskip|が入らない問題が起きてしまいました。そこで、 +% |\penalty\z@\relax|に変更しました。これは、明示的な|\penalty|プリミティブ +% 同士の合算は行われないことを利用しています。 +% \changes{v1.2q}{2017/08/25}{\cs{nolinebreak}の場合に\cs{(x)kanjiskip}が +% 入らなくなっていたのを修正} +% +% ところが、その変更によってそもそも|\nolinebreak|が効かない場合が +% 生じたので、変更全体をいったんキャンセルして元に戻します。 +% \changes{v1.2v}{2018/01/27}{v1.2oとv1.2qの修正で\cs{nolinebreak}が +% 効かない場合があったので、元に戻した} +% \begin{macrocode} +%\plIncludeInRelease{2017/10/28}{\@no@lnbk} +% {Break before prebreakpenalty (revert)}% +%\def\@no@lnbk #1[#2]{% +% \ifvmode +% \@nolnerr +% \else +% \@tempskipa\lastskip +% \unskip +% \penalty #1\@getpen{#2}% +% \ifdim\@tempskipa>\z@ +% \hskip\@tempskipa +% \ignorespaces +% \fi +% \fi} +%\plEndIncludeInRelease +%\plIncludeInRelease{2017/07/29}{\@no@lnbk} +% {Break before prebreakpenalty (another)}% +%\def\@no@lnbk #1[#2]{% +% \ifvmode +% \@nolnerr +% \else +% \@tempskipa\lastskip +% \unskip +% \penalty #1\@getpen{#2}% +% \penalty\z@\relax %% added (2017/08/25) +% \ifdim\@tempskipa>\z@ +% \hskip\@tempskipa +% \ignorespaces +% \fi +% \fi} +%\plEndIncludeInRelease +%\plIncludeInRelease{2017/05/05}{\@no@lnbk} +% {Break before prebreakpenalty}% +%\def\@no@lnbk #1[#2]{% +% \ifvmode +% \@nolnerr +% \else +% \@tempskipa\lastskip +% \unskip +% \penalty #1\@getpen{#2}% +% \hskip\z@\relax %% added (2017/05/03) +% \ifdim\@tempskipa>\z@ +% \hskip\@tempskipa +% \ignorespaces +% \fi +% \fi} +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@no@lnbk} +% {LaTeX2e original}% +%\def\@no@lnbk #1[#2]{% +% \ifvmode +% \@nolnerr +% \else +% \@tempskipa\lastskip +% \unskip +% \penalty #1\@getpen{#2}% +% \ifdim\@tempskipa>\z@ +% \hskip\@tempskipa +% \ignorespaces +% \fi +% \fi} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% なお、\LaTeX{}用の命令である|\\|と|\linebreak|には上記のような +% 禁則文字への対策を入れていますが、plain \TeX{}互換のシンプルな +% 命令である|\break|や|\nobreak|には、対策を行いません。 +% +% \subsection{オブジェクトの出力順序} +% オリジナルの\LaTeX{}は、トップフロート、本文、脚注、ボトムフロート +% の順番で出力しますけれども、日本語組版では、トップフロート、本文、 +% ボトムフロート、脚注という順番の方が一般的ですので、 +% このような順番になるよう修正をします。 +% +% したがって、文書ファイルによっては\LaTeX{}の組版結果と異なる場合が +% ありますので、注意をしてください。 +% +% 2014年に\LaTeX{}に\file{fltrace}パッケージが追加されましたので、 +% そのp\LaTeX{}版として\file{pfltrace}パッケージを追加します。 +% この\file{pfltrace}パッケージは\LaTeX{}の\file{fltrace}パッケージに +% 依存します。 +% \changes{v1.2e}{2016/05/20}{\file{fltrace}パッケージのp\LaTeX{}版 +% として\file{pfltrace}パッケージを新設} +% \begin{macrocode} +%<*fltrace> +\NeedsTeXFormat{pLaTeX2e} +\ProvidesPackage{pfltrace} + [2016/05/20 v1.2e Standard pLaTeX package (float tracing)] +\RequirePackageWithOptions{fltrace} +% +% \end{macrocode} +% +% \begin{macro}{\@makecol} +% このマクロが組み立てる部分の中心となります。 +% \file{ltoutput.dtx}で定義されているものです。 +% \begin{macrocode} +%\plIncludeInRelease{2017/04/08}{\@makecol} +% {Take into account depth of footnote}% +%<*plcore|platexrelease> +\gdef\@makecol{% + \setbox\@outputbox\box\@cclv% + \let\@elt\relax % added on LaTeX (ltoutput.dtx 2003/12/16 v1.2k) + \xdef\@freelist{\@freelist\@midlist}% + \global \let \@midlist \@empty + \@combinefloats +% \end{macrocode} +% オリジナルの\LaTeX{}は、トップフロート、本文、脚注、ボトムフロートの順番で +% 出力します。一方p\LaTeX{}は、トップフロート、本文、ボトムフロート、脚注の +% 順番で出力します。 +% ところが、アスキー版のコードは順番を入れ替えるだけでなく、脚注のあるページの +% 版面全体の垂直位置が(特に縦組で顕著に)ずれてしまっていました。 +% これは補正量|\dp\@outputbox|の取得を\emph{脚注挿入より前}に行っていたためで、 +% コミュニティ版p\LaTeX{}ではこの問題に対処してあります。 +% 結果的に、fnposパッケージ(yafoot)の +% |\makeFNbottom|かつ|\makeFNbelow|な状態と完全に等価になりました。 +% \changes{v1.2l}{2017/02/25}{脚注とボトムフロートの順序を入れ替えたことで +% 版面全体の垂直位置がずれていたのを修正(Issue 32)} +% \begin{macrocode} + \let\pltx@textbottom\@textbottom % save (pLaTeX 2017/02/25) + \ifvoid\footins\else % changed (pLaTeX 2017/02/25) + \setbox\@outputbox \vbox {% + \boxmaxdepth \@maxdepth + \unvbox \@outputbox + \@textbottom % inserted here (pLaTeX 2017/02/25) + \vskip \skip\footins + \color@begingroup + \normalcolor + \footnoterule + \unvbox \footins + \color@endgroup + }% + \let\@textbottom\relax % disable temporarily (pLaTeX 2017/02/25) + \fi + \ifvbox\@kludgeins + \@makespecialcolbox + \else + \setbox\@outputbox \vbox to\@colht {% + %\boxmaxdepth \@maxdepth % comment out on LaTeX 1997/12/01 + \@texttop + \dimen@ \dp\@outputbox + \unvbox \@outputbox +% \end{macrocode} +% 縦組の際に|\@outputbox|の内容が空のボックスだけの場合に、|\wd\@outputbox|が +% 0ptになってしまい、結果としてフッタの位置がくるってしまっていた。 +% 0の|\hskip|を発生させると|\wd\@outputbox|の値が期待したものとなるので、 +% 縦組の場合はその方法で対処する。 +% +% ただし、0の|\hskip|を発生させるとき、水平モードに入ってしまうと、たとえば +% longtableパッケージを使用して表組途中で改ページするときに|\par -> {\vskip}|の +% 無限ループが起きてしまいます。そこで、|\vbox|の中で発生させます。 +% \changes{v1.1j}{2001/05/10}{\cs{@makecol}で組み立てられる +% \cs{@outputbox}の大きさが、縦組で中身が空のボックスだけの場合も適正になる +% ように修正} +% \changes{v1.2b}{2016/01/26}{\cs{@outputbox}の深さが他のものの位置に影響を与えない +% ようにする\texttt{\cs{vskip}~-\cs{dimen@}}が縦組モードでは無効になっていたので修正} +% \changes{v1.2h}{2016/09/01}{縦組でlongtableパッケージを使って表組の途中で改ページ +% するとき無限ループが起こる問題に対処(Issue 21)} +% \begin{macrocode} + \iftdir\vbox{\hskip\z@}\fi + \vskip -\dimen@ + \@textbottom + }% + \fi + \let\@textbottom\pltx@textbottom % restore (pLaTeX 2017/02/25) + \global \maxdepth \@maxdepth +} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{2016/09/03}{\@makecol} +% {Avoid infinite loop}% +%\gdef\@makecol{% +% \setbox\@outputbox\box\@cclv% +% \xdef\@freelist{\@freelist\@midlist}% +% \global \let \@midlist \@empty +% \@combinefloats +% \ifvbox\@kludgeins +% \@makespecialcolbox +% \else +% \setbox\@outputbox \vbox to\@colht {% +% %\boxmaxdepth \@maxdepth % comment out on LaTeX 1997/12/01 +% \@texttop +% \dimen@ \dp\@outputbox +% \unvbox \@outputbox +% \iftdir\vbox{\hskip\z@}\fi +% \vskip -\dimen@ +% \@textbottom +% \ifvoid\footins\else % for pLaTeX +% \vskip \skip\footins +% \color@begingroup +% \normalcolor +% \footnoterule +% \unvbox \footins +% \color@endgroup +% \fi +% }% +% \fi +% \global \maxdepth \@maxdepth +%} +%\plEndIncludeInRelease +%\plIncludeInRelease{2016/04/17}{\@makecol} +% {Adjust for \dp\@outputbox in tate mode}% +%\gdef\@makecol{% +% \setbox\@outputbox\box\@cclv% +% \xdef\@freelist{\@freelist\@midlist}% +% \global \let \@midlist \@empty +% \@combinefloats +% \ifvbox\@kludgeins +% \@makespecialcolbox +% \else +% \setbox\@outputbox \vbox to\@colht {% +% %\boxmaxdepth \@maxdepth % comment out on LaTeX 1997/12/01 +% \@texttop +% \dimen@ \dp\@outputbox +% \unvbox \@outputbox +% \iftdir\hskip\z@\fi +% \vskip -\dimen@ +% \@textbottom +% \ifvoid\footins\else % for pLaTeX +% \vskip \skip\footins +% \color@begingroup +% \normalcolor +% \footnoterule +% \unvbox \footins +% \color@endgroup +% \fi +% }% +% \fi +% \global \maxdepth \@maxdepth +%} +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@makecol} +% {ASCII Corporation original}% +%\gdef\@makecol{% +% \setbox\@outputbox\box\@cclv% +% \xdef\@freelist{\@freelist\@midlist}% +% \global \let \@midlist \@empty +% \@combinefloats +% \ifvbox\@kludgeins +% \@makespecialcolbox +% \else +% \setbox\@outputbox \vbox to\@colht {% +% %\boxmaxdepth \@maxdepth % comment out on LaTeX 1997/12/01 +% \@texttop +% \dimen@ \dp\@outputbox +% \unvbox \@outputbox +% \iftdir\hskip\z@ +% \else\vskip -\dimen@\fi +% \@textbottom +% \ifvoid\footins\else % for pLaTeX +% \vskip \skip\footins +% \color@begingroup +% \normalcolor +% \footnoterule +% \unvbox \footins +% \color@endgroup +% \fi +% }% +% \fi +% \global \maxdepth \@maxdepth +%} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@makespecialcolbox} +% 本文(あるいはボトムフロート)と脚注の間に|\@textbottom|を入れたいので、 +% |\@makespecialcolbox|コマンドも修正をします。 +% やはり、\file{ltoutput.dtx}で定義されているものです。 +% +% このマクロは、|\enlargethispage|が使われたときに、 +% |\@makecol|マクロから呼び出されます。 +% +% \noindent\emph{日本語\TeX{}開発コミュニティによる補足(2017/02/25)}: +% 2016/11/29以前のp\LaTeX{}では、|\@makecol|はボトムフロートを挿入した後、 +% すぐに|\@kludgeins|が空かどうか判定し +% \begin{itemize} +% \item 空の場合は、残りすべての処理を|\@makespecialcolbox|に任せる +% \item 空でない場合は、|\@makecol|自身で残りすべての処理を行う +% \end{itemize} +% としていました。しかし2017/04/08以降のp\LaTeX{}では、|\@makecol|はボトム +% フロートと脚注を挿入してから|\@kludgeins|の判定に移るようにしています。 +% したがって、新しい|\@makecol|から以下に記す|\@makespecialcolbox|が呼び +% 出される場合は、|\ifvoid\footins|(二箇所)の判定は常に真となるはずです。 +% 要するに「つぎの部分がp\LaTeX{}用の修正です。」という二箇所のコードは +% 実質的に不要となりました。 +% +% しかし、だからといって消してしまうと、古いp\LaTeX{}の|\@makecol|を +% ベースに作られた外部パッケージから|\@makespecialcolbox|が呼び出される +% 場合に脚注が消滅するおそれがあります。このため、|\@makespecialcolbox|は +% 従来のコードのまま維持してあります(害はありません)。 +% \changes{v1.2l}{2017/02/25}{\cs{@makecol}を変更したのに +% \cs{@makespecialcolbox}を変更しない、という判断について明文化} +% \begin{macrocode} +%<*plcore|fltrace> +\gdef\@makespecialcolbox{% +%<*trace> + \fl@trace{Krudgeins ht \the\ht\@kludgeins\space + dp \the\dp\@kludgeins\space + wd \the\wd\@kludgeins}% +% + \setbox\@outputbox \vbox {% + \@texttop + \dimen@ \dp\@outputbox + \unvbox\@outputbox + \vskip-\dimen@ + }% + \@tempdima \@colht + \ifdim \wd\@kludgeins>\z@ + \advance \@tempdima -\ht\@outputbox + \advance \@tempdima \pageshrink +%<*trace> + \fl@trace {Natural ht of col: \the\ht\@outputbox}% + \fl@trace {\string \@colht: \the\@colht}% + \fl@trace {Pageshrink added: \the\pageshrink}% + \fl@trace {Hence, space added: \the\@tempdima}% +% + \setbox\@outputbox \vbox to \@colht {% +% \boxmaxdepth \maxdepth + \unvbox\@outputbox + \vskip \@tempdima + \@textbottom +% \end{macrocode} +% つぎの部分がp\LaTeX{}用の修正です。 +% \changes{v1.2}{2001/09/04}{本文と\cs{footnoterule}が重なってしまうのを修正} +% \begin{macrocode} + \ifvoid\footins\else % for pLaTeX + \vskip\skip\footins + \color@begingroup + \normalcolor + \footnoterule + \unvbox \footins + \color@endgroup + \fi + }% + \else + \advance \@tempdima -\ht\@kludgeins +%<*trace> + \fl@trace {Natural ht of col: \the\ht\@outputbox}% + \fl@trace {\string \@colht: \the\@colht}% + \fl@trace {Extra size added: -\the \ht \@kludgeins}% + \fl@trace {Hence, height of inner box: \the\@tempdima}% + \fl@trace {Max? pageshrink available: \the\pageshrink}% +% + \setbox \@outputbox \vbox to \@colht {% + \vbox to \@tempdima {% + \unvbox\@outputbox + \@textbottom +% \end{macrocode} +% つぎの部分がp\LaTeX{}用の修正です。 +% 脚注があれば、ここでそれを出力します。 +% \changes{v1.2}{2001/09/04}{本文と\cs{footnoterule}が重なってしまうのを修正} +% \begin{macrocode} + \ifvoid\footins\else % for pLaTeX + \vskip\skip\footins + \color@begingroup + \normalcolor + \footnoterule + \unvbox \footins + \color@endgroup + \fi + }\vss}% + \fi + {\setbox \@tempboxa \box \@kludgeins}% +%<*trace> + \fl@trace {kludgeins box made void}% +% +} +% +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@reinserts} +% このマクロは、|\@specialoutput|マクロから呼び出されます。 +% ボックス|footins|が組み立てられたモードに合わせて +% 縦モードか横モードで|\unvbox|をします。 +% \begin{macrocode} +%<*plcore> +\def\@reinserts{% + \ifvoid\footins\else\insert\footins{% + \iftbox\footins\tate\else\yoko\fi + \unvbox\footins}\fi + \ifvbox\@kludgeins\insert\@kludgeins{\unvbox\@kludgeins}\fi +} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{トンボ} +% ここではトンボを出力するためのマクロを定義しています。 +% +% \begin{macro}{\iftombow} +% \begin{macro}{\iftombowdate} +% |\iftombow|はトンボを出力するかどうか、|\iftombowdate|はDVIを作成した +% 日付をトンボの脇に出力するかどうかを示すために用います。 +% \begin{macrocode} +\newif\iftombow \tombowfalse +\newif\iftombowdate \tombowdatetrue +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@tombowwidth} +% |\@tombowwidth|には、トンボ用罫線の太さを指定します。 +% デフォルトは0.1ポイントです。 +% この値を変更し、|\maketombowbox|コマンドを実行することにより、トンボの +% 罫線太さを変更して出力することができます。通常の使い方では、 +% トンボの罫線を変更する必要はありません。DVIをフィルムに面付け出力する +% とき、トンボをつけずに位置はそのままにする必要があるときに、この太さを +% ゼロポイントにします。 +% \begin{macrocode} +\newdimen\@tombowwidth +\setlength{\@tombowwidth}{.1\p@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@tombowbleed} +% |\@tombowbleed|は、bleed幅を指定します。 +% デフォルトは3mmです。 +% \changes{v1.2z}{2018/05/13}{\cs{@tombowbleed}マクロ追加} +% \begin{macrocode} +% +%\plIncludeInRelease{2018/05/20}{\@tombowbleed}{Macro added}% +%<*plcore|platexrelease> +\def\@tombowbleed{3mm} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@tombowbleed}{Macro added}% +%\let\@tombowbleed\@undefined +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@tombowcolor} +% |\@tombowcolor|は、トンボの色です。 +% デフォルトは|\normalcolor|です。 +% \changes{v1.2z}{2018/05/13}{\cs{@tombowcolor}マクロ追加} +% \begin{macrocode} +% +%\plIncludeInRelease{2018/05/20}{\@tombowcolor}{Macro added}% +%<*plcore|platexrelease> +\def\@tombowcolor{\normalcolor} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@tombowcolor}{Macro added}% +%\let\@tombowcolor\@undefined +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% トンボ用の罫線を定義します。 +% +% \begin{macro}{\@TL} +% \begin{macro}{\@Tl} +% \begin{macro}{\@TC} +% \begin{macro}{\@TR} +% \begin{macro}{\@Tr} +% |\@TL|と|\@Tl|はページ上部の左側、 +% |\@TC|はページ上部の中央、 +% |\@TR|と|\@Tr|はページ上部の左側のトンボとなるボックスです。 +% \begin{macrocode} +\newbox\@TL\newbox\@Tl +\newbox\@TC +\newbox\@TR\newbox\@Tr +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@BL} +% \begin{macro}{\@Bl} +% \begin{macro}{\@BC} +% \begin{macro}{\@BR} +% \begin{macro}{\@Br} +% |\@BL|と|\@Bl|はページ下部の左側、 +% |\@BC|はページ下部の中央、 +% |\@BR|と|\@Br|はページ下部の左側のトンボとなるボックスです。 +% \begin{macrocode} +\newbox\@BL\newbox\@Bl +\newbox\@BC +\newbox\@BR\newbox\@Br +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@CL} +% \begin{macro}{\@CR} +% |\@CL|はページ左側の中央、|\@CR|はページ右側の中央のトンボとなる +% ボックスです。 +% \begin{macrocode} +\newbox\@CL +\newbox\@CR +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@bannertoken} +% \begin{macro}{\@bannerfont} +% |\@bannertoken|トークンは、トンボの横に出力する文字列を入れます。 +% デフォルトでは何も出力しません。 +% |\@bannerfont|フォントは、その文字列を出力するためのフォントです。 +% 9ポイントのタイプライタ体としています。 +% \changes{v1.1f}{1996/09/03}{Add \cs{@bannertoken}.} +% \begin{macrocode} +\font\@bannerfont=cmtt9 +\newtoks\@bannertoken +\@bannertoken{} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\maketombowbox} +% |\maketombowbox|コマンドは、トンボとなるボックスを作るために用います。 +% このコマンドは、トンボとなるボックスを作るだけで、それらのボックスを +% 出力するのではないことに注意をしてください。 +% \changes{v1.2z}{2018/05/13}{bleed幅を\cs{@tombowbleed}に切り出し} +% \begin{macrocode} +% +%\plIncludeInRelease{2018/05/20}{\maketombowbox} +% {Use \@tombowbleed}% +%<*plcore|platexrelease> +\def\maketombowbox{% + \setbox\@TL\hbox to\z@{\yoko\hss + \vrule width\dimexpr 10mm+\@tombowbleed\relax height\@tombowwidth depth\z@ + \vrule height10mm width\@tombowwidth depth\z@ +% \end{macrocode} +% \changes{v1.0f}{1996/07/10}{トンボの横にDVIファイルの作成日を出力する +% ようにした。} +% \changes{v1.0g}{1997/01/23}{作成日の出力をするかどうかをフラグで指定する +% ようにした。} +% \begin{macrocode} + \iftombowdate + \raise4pt\hbox to\z@{\hskip5mm\@bannerfont\the\@bannertoken\hss}% + \fi}% + \setbox\@Tl\hbox to\z@{\yoko\hss + \vrule width10mm height\@tombowwidth depth\z@ + \vrule height\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth depth\z@}% + \setbox\@TC\hbox{\yoko + \vrule width10mm height\@tombowwidth depth\z@ + \vrule height10mm width\@tombowwidth depth\z@ + \vrule width10mm height\@tombowwidth depth\z@}% + \setbox\@TR\hbox to\z@{\yoko + \vrule height10mm width\@tombowwidth depth\z@ + \vrule width\dimexpr 10mm+\@tombowbleed\relax height\@tombowwidth depth\z@\hss}% + \setbox\@Tr\hbox to\z@{\yoko + \vrule height\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth depth\z@ + \vrule width10mm height\@tombowwidth depth\z@\hss}% +% + \setbox\@BL\hbox to\z@{\yoko\hss + \vrule width\dimexpr 10mm+\@tombowbleed\relax depth\@tombowwidth height\z@ + \vrule depth10mm width\@tombowwidth height\z@}% + \setbox\@Bl\hbox to\z@{\yoko\hss + \vrule width10mm depth\@tombowwidth height\z@ + \vrule depth\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth height\z@}% + \setbox\@BC\hbox{\yoko + \vrule width10mm depth\@tombowwidth height\z@ + \vrule depth10mm width\@tombowwidth height\z@ + \vrule width10mm depth\@tombowwidth height\z@}% + \setbox\@BR\hbox to\z@{\yoko + \vrule depth10mm width\@tombowwidth height\z@ + \vrule width\dimexpr 10mm+\@tombowbleed\relax depth\@tombowwidth height\z@\hss}% + \setbox\@Br\hbox to\z@{\yoko + \vrule depth\dimexpr 10mm+\@tombowbleed\relax width\@tombowwidth height\z@ + \vrule width10mm depth\@tombowwidth height\z@\hss}% +% + \setbox\@CL\hbox to\z@{\yoko\hss + \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth + \vrule height10mm depth10mm width\@tombowwidth}% + \setbox\@CR\hbox to\z@{\yoko + \vrule height10mm depth10mm width\@tombowwidth + \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss}% +} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\maketombowbox} +% {ASCII Corporation original}% +%\def\maketombowbox{% +% \setbox\@TL\hbox to\z@{\yoko\hss +% \vrule width13mm height\@tombowwidth depth\z@ +% \vrule height10mm width\@tombowwidth depth\z@ +% \iftombowdate +% \raise4pt\hbox to\z@{\hskip5mm\@bannerfont\the\@bannertoken\hss}% +% \fi}% +% \setbox\@Tl\hbox to\z@{\yoko\hss +% \vrule width10mm height\@tombowwidth depth\z@ +% \vrule height13mm width\@tombowwidth depth\z@}% +% \setbox\@TC\hbox{\yoko +% \vrule width10mm height\@tombowwidth depth\z@ +% \vrule height10mm width\@tombowwidth depth\z@ +% \vrule width10mm height\@tombowwidth depth\z@}% +% \setbox\@TR\hbox to\z@{\yoko +% \vrule height10mm width\@tombowwidth depth\z@ +% \vrule width13mm height\@tombowwidth depth\z@\hss}% +% \setbox\@Tr\hbox to\z@{\yoko +% \vrule height13mm width\@tombowwidth depth\z@ +% \vrule width10mm height\@tombowwidth depth\z@\hss}% +% \setbox\@BL\hbox to\z@{\yoko\hss +% \vrule width13mm depth\@tombowwidth height\z@ +% \vrule depth10mm width\@tombowwidth height\z@}% +% \setbox\@Bl\hbox to\z@{\yoko\hss +% \vrule width10mm depth\@tombowwidth height\z@ +% \vrule depth13mm width\@tombowwidth height\z@}% +% \setbox\@BC\hbox{\yoko +% \vrule width10mm depth\@tombowwidth height\z@ +% \vrule depth10mm width\@tombowwidth height\z@ +% \vrule width10mm depth\@tombowwidth height\z@}% +% \setbox\@BR\hbox to\z@{\yoko +% \vrule depth10mm width\@tombowwidth height\z@ +% \vrule width13mm depth\@tombowwidth height\z@\hss}% +% \setbox\@Br\hbox to\z@{\yoko +% \vrule depth13mm width\@tombowwidth height\z@ +% \vrule width10mm depth\@tombowwidth height\z@\hss}% +% \setbox\@CL\hbox to\z@{\yoko\hss +% \vrule width10mm height.5\@tombowwidth depth.5\@tombowwidth +% \vrule height10mm depth10mm width\@tombowwidth}% +% \setbox\@CR\hbox to\z@{\yoko +% \vrule height10mm depth10mm width\@tombowwidth +% \vrule height.5\@tombowwidth depth.5\@tombowwidth width10mm\hss}% +%} +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@outputtombow} +% |\@outputtombow|コマンドは、トンボを出力するのに用います。 +% コミュニティ版では、「色付きテキストの途中で改ページが起きた場合に、 +% トンボにも色が付いてしまう」という現象を防ぎ、さらにトンボの色を +% 簡単に変えられるよう、|\@tombowcolor|というマクロに切り出しています。 +% \changes{v1.2d}{2016/04/01}{multicolパッケージを使うとトンボの下端が縮む問題を修正} +% \changes{v1.2z}{2018/05/13}{色の付いたテキストの途中で改ページすると +% トンボにも色が付く現象に対処、さらにトンボの色を\cs{@tombowcolor}へ・ +% bleed幅を\cs{@tombowbleed}に切り出し} +% \changes{v1.3}{2018/09/02}{\file{platexrelease}バグ修正} +% \begin{macrocode} +% +%\plIncludeInRelease{2018/05/20}{\@outputtombow} +% {Use \@tombowcolor and \@tombowbleed}% +%<*plcore|platexrelease> +\def\@outputtombow{% + \iftombow + \vbox to\z@{\kern-\dimexpr 10mm+\@tombowbleed\relax\relax + \boxmaxdepth\maxdimen + \moveleft\@tombowbleed \vbox to\@@paperheight{% + \color@begingroup + \@tombowcolor + \hbox to\@@paperwidth{\hskip\@tombowbleed\relax + \copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip\@tombowbleed}% + \kern-10mm + \hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}% + \vfill + \hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}% + \vfill + \hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}% + \kern-10mm + \hbox to\@@paperwidth{\hskip\@tombowbleed\relax + \copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip\@tombowbleed}% + \color@endgroup + }\vss + }% + \fi +} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{2016/04/17}{\@outputtombow} +% {Safe \boxmaxdepth}% +%\def\@outputtombow{% +% \iftombow +% \vbox to\z@{\kern-13mm\relax +% \boxmaxdepth\maxdimen +% \moveleft3mm\vbox to\@@paperheight{% +% \hbox to\@@paperwidth{\hskip3mm\relax +% \copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip3mm}% +% \kern-10mm +% \hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}% +% \vfill +% \hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}% +% \vfill +% \hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}% +% \kern-10mm +% \hbox to\@@paperwidth{\hskip3mm\relax +% \copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip3mm}% +% }\vss +% }% +% \fi +%} +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@outputtombow} +% {ASCII Corporation original}% +%\def\@outputtombow{% +% \iftombow +% \vbox to\z@{\kern-13mm\relax +% \moveleft3mm\vbox to\@@paperheight{% +% \hbox to\@@paperwidth{\hskip3mm\relax +% \copy\@TL\hfill\copy\@TC\hfill\copy\@TR\hskip3mm}% +% \kern-10mm +% \hbox to\@@paperwidth{\copy\@Tl\hfill\copy\@Tr}% +% \vfill +% \hbox to\@@paperwidth{\copy\@CL\hfill\copy\@CR}% +% \vfill +% \hbox to\@@paperwidth{\copy\@Bl\hfill\copy\@Br}% +% \kern-10mm +% \hbox to\@@paperwidth{\hskip3mm\relax +% \copy\@BL\hfill\copy\@BC\hfill\copy\@BR\hskip3mm}% +% }\vss +% }% +% \fi +%} +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@paperheight} +% \begin{macro}{\@@paperwidth} +% \begin{macro}{\@@topmargin} +% |\@@paperheight|は、用紙の縦の長さにトンボの長さを加えた長さになります。 +% +% |\@@paperwidth|は、用紙の横の長さにトンボの長さを加えた長さになります。 +% +% |\@@topmargin|は、現在のトップマージンに1インチ加えた長さになります。 +% \begin{macrocode} +\newdimen\@@paperheight +\newdimen\@@paperwidth +\newdimen\@@topmargin +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@tombowreset@@paper} +% トンボ出力オプションが指定されている場合に +% 用紙サイズを再設定する命令です。 +% |\@outputpage|へ加える変更を簡潔にするため、分離した上で +% |\@tombowbleed|を使うようにしました。 +% \changes{v1.2z}{2018/05/13}{コマンドに分離、さらに +% bleed幅を\cs{@tombowbleed}に切り出し} +% \begin{macrocode} +% +%\plIncludeInRelease{2018/05/20}{\@tombowreset@@paper} +% {Macro separated}% +%<*plcore|platexrelease> +\def\@tombowreset@@paper{% + \@@topmargin\topmargin + \iftombow + \@@paperwidth\paperwidth + \advance\@@paperwidth 2\dimexpr\@tombowbleed\relax + \@@paperheight\paperheight \advance\@@paperheight 10mm\relax + \advance\@@paperheight 2\dimexpr\@tombowbleed\relax + \advance\@@topmargin 1in\relax \advance\@themargin 1in\relax + \fi +} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@tombowreset@@paper} +% {Macro separated}% +%\let\@tombowreset@@paper\@undefined +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@shipoutsetup} +% \changes{v1.1i}{1998/02/03}{Command removed} +% |\@outputpage|内に挿入したので削除しました。 +% \end{macro} +% +% \begin{macro}{\@outputpage} +% |\textwidth|と|\textheight|の交換は、|\@shipoutsetup|内では行ないません。 +% なぜなら、|\@shipoutsetup|マクロが実行されるときは、 +% |\shipout|されるvboxの中であり、このときは横組モードですので、 +% つねに|\iftdir|は偽と判断され、縦と横のサイズを交換できないからです。 +% +% なお、この変更をローカルなものにするために、 +% |\begingroup|と|\endgroup|で囲みます。 +% \changes{v1.2a}{2001/09/26}{\LaTeX\ \texttt{!<2001/06/01!>}に対応} +% \begin{macrocode} +% +%\plIncludeInRelease{2018/05/20}{\@outputpage} +% {Use \@tombowreset@@paper}% +%<*plcore|platexrelease> +\def\@outputpage{% +\begingroup % the \endgroup is put in by \aftergroup + \iftdir + \dimen\z@\textwidth \textwidth\textheight \textheight\dimen\z@ + \fi + \let \protect \noexpand +% \end{macrocode} +% \LaTeXe\ 2017-04-15ではverbatim環境内でハイフネーションが起きないように +% 修正されましたが、verbatim環境の途中で改ページが起きた場合にヘッダで +% ハイフネーションが抑制されるのは正しくないので、|\language|を +% |\begin{document}|での値にリセットします(参考:latex2e svn r1407)。 +% プリアンブルで特別に設定されればその値、設定されなければ0です(万が一 +% |\document|の定義が古い場合\footnote{\LaTeXe\ 2017/01/01以前を使って +% p\LaTeXe{}のフォーマットを作成した場合や、dinbrief.clsのように独自の +% 再定義を行うクラスやパッケージを使った場合に起こるかもしれません。}は +% $-1$になりますが、これは0と同じはたらきをするので問題は起きません)。 +% \changes{v1.2m}{2017/03/19}{\cs{language}をリセット +% (sync with ltoutput.dtx 2017/03/10 v1.3c)} +% \begin{macrocode} + \language\document@default@language + \@resetactivechars + \global\let\@@if@newlist\if@newlist + \global\@newlistfalse + \@parboxrestore + \shipout\vbox{\yoko + \set@typeset@protect + \aftergroup\endgroup + \aftergroup\set@typeset@protect +% \end{macrocode} +% \changes{v1.1g}{1998/02/03}{\cs{@shipoutsetup}を\cs{@outputpage}内に入れた} +% ここから|\@shipoutsetup|の内容。 +% \begin{macrocode} + \if@specialpage + \global\@specialpagefalse\@nameuse{ps@\@specialstyle}% + \fi +% \end{macrocode} +% \changes{v1.1c}{1995/02/05}{\cs{oddsidemargin}と\cs{evensidemargin}が +% 逆だったのを修正} +% \begin{macrocode} + \if@twoside + \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot + \iftdir\let\@themargin\evensidemargin + \else\let\@themargin\oddsidemargin\fi + \else \let\@thehead\@evenhead + \let\@thefoot\@evenfoot + \iftdir\let\@themargin\oddsidemargin + \else\let\@themargin\evensidemargin\fi + \fi\fi +% \end{macrocode} +% トンボ出力オプションが指定されている場合、ここで用紙サイズを再設定します。 +% \TeX の加える左と上部の1インチは、トンボの内側に入ります。 +% \changes{v1.1a}{1995/11/10}{\cs{topmargin}が反映されないバグを修正} +% \changes{v1.2z}{2018/05/13}{\cs{@tombowreset@@paper}コマンドに分離} +% \begin{macrocode} + \@tombowreset@@paper +% \end{macrocode} +% \begin{macrocode} + \reset@font + \normalsize + \normalsfcodes + \let\label\@gobble + \let\index\@gobble + \let\glossary\@gobble + \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@ +% \end{macrocode} +% ここまでが|\@shipoutsetup|の内容。 +% \begin{macrocode} + \@begindvi + \@outputtombow + \vskip \@@topmargin + \moveright\@themargin\vbox{% + \setbox\@tempboxa \vbox to\headheight{% + \vfil + \color@hbox + \normalcolor + \hb@xt@\textwidth{\@thehead}% + \color@endbox + }% %% 22 Feb 87 + \dp\@tempboxa \z@ + \box\@tempboxa + \vskip \headsep + \box\@outputbox + \baselineskip \footskip + \color@hbox + \normalcolor + \hb@xt@\textwidth{\@thefoot}% + \color@endbox + }% + }% +% \endgroup now inserted by \aftergroup +% \end{macrocode} +% |\if@newlist|を初期化。 +% \begin{macrocode} + \global\let\if@newlist\@@if@newlist + \global \@colht \textheight + \stepcounter{page}% + \let\firstmark\botmark +} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{2017/04/08}{\@outputpage} +% {Reset language for hyphenation}% +%\def\@outputpage{% +%\begingroup % the \endgroup is put in by \aftergroup +% \iftdir +% \dimen\z@\textwidth \textwidth\textheight \textheight\dimen\z@ +% \fi +% \let \protect \noexpand +% \language\document@default@language +% \@resetactivechars +% \global\let\@@if@newlist\if@newlist +% \global\@newlistfalse +% \@parboxrestore +% \shipout\vbox{\yoko +% \set@typeset@protect +% \aftergroup\endgroup +% \aftergroup\set@typeset@protect +% \if@specialpage +% \global\@specialpagefalse\@nameuse{ps@\@specialstyle}% +% \fi +% \if@twoside +% \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot +% \iftdir\let\@themargin\evensidemargin +% \else\let\@themargin\oddsidemargin\fi +% \else \let\@thehead\@evenhead +% \let\@thefoot\@evenfoot +% \iftdir\let\@themargin\oddsidemargin +% \else\let\@themargin\evensidemargin\fi +% \fi\fi +% \@@topmargin\topmargin +% \iftombow +% \@@paperwidth\paperwidth \advance\@@paperwidth 6mm\relax +% \@@paperheight\paperheight \advance\@@paperheight 16mm\relax +% \advance\@@topmargin 1in\relax \advance\@themargin 1in\relax +% \fi +% \reset@font +% \normalsize +% \normalsfcodes +% \let\label\@gobble +% \let\index\@gobble +% \let\glossary\@gobble +% \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@ +% \@begindvi +% \@outputtombow +% \vskip \@@topmargin +% \moveright\@themargin\vbox{% +% \setbox\@tempboxa \vbox to\headheight{% +% \vfil +% \color@hbox +% \normalcolor +% \hb@xt@\textwidth{\@thehead}% +% \color@endbox +% }% %% 22 Feb 87 +% \dp\@tempboxa \z@ +% \box\@tempboxa +% \vskip \headsep +% \box\@outputbox +% \baselineskip \footskip +% \color@hbox +% \normalcolor +% \hb@xt@\textwidth{\@thefoot}% +% \color@endbox +% }% +% }% +% \global\let\if@newlist\@@if@newlist +% \global \@colht \textheight +% \stepcounter{page}% +% \let\firstmark\botmark +%} +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@outputpage} +% {ASCII Corporation original}% +%\def\@outputpage{% +%\begingroup % the \endgroup is put in by \aftergroup +% \iftdir +% \dimen\z@\textwidth \textwidth\textheight \textheight\dimen\z@ +% \fi +% \let \protect \noexpand +% \@resetactivechars +% \global\let\@@if@newlist\if@newlist +% \global\@newlistfalse +% \@parboxrestore +% \shipout\vbox{\yoko +% \set@typeset@protect +% \aftergroup\endgroup +% \aftergroup\set@typeset@protect +% \if@specialpage +% \global\@specialpagefalse\@nameuse{ps@\@specialstyle}% +% \fi +% \if@twoside +% \ifodd\count\z@ \let\@thehead\@oddhead \let\@thefoot\@oddfoot +% \iftdir\let\@themargin\evensidemargin +% \else\let\@themargin\oddsidemargin\fi +% \else \let\@thehead\@evenhead +% \let\@thefoot\@evenfoot +% \iftdir\let\@themargin\oddsidemargin +% \else\let\@themargin\evensidemargin\fi +% \fi\fi +% \@@topmargin\topmargin +% \iftombow +% \@@paperwidth\paperwidth \advance\@@paperwidth 6mm\relax +% \@@paperheight\paperheight \advance\@@paperheight 16mm\relax +% \advance\@@topmargin 1in\relax \advance\@themargin 1in\relax +% \fi +% \reset@font +% \normalsize +% \normalsfcodes +% \let\label\@gobble +% \let\index\@gobble +% \let\glossary\@gobble +% \baselineskip\z@skip \lineskip\z@skip \lineskiplimit\z@ +% \@begindvi +% \@outputtombow +% \vskip \@@topmargin +% \moveright\@themargin\vbox{% +% \setbox\@tempboxa \vbox to\headheight{% +% \vfil +% \color@hbox +% \normalcolor +% \hb@xt@\textwidth{\@thehead}% +% \color@endbox +% }% %% 22 Feb 87 +% \dp\@tempboxa \z@ +% \box\@tempboxa +% \vskip \headsep +% \box\@outputbox +% \baselineskip \footskip +% \color@hbox +% \normalcolor +% \hb@xt@\textwidth{\@thefoot}% +% \color@endbox +% }% +% }% +% \global\let\if@newlist\@@if@newlist +% \global \@colht \textheight +% \stepcounter{page}% +% \let\firstmark\botmark +%} +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\AtBeginDvi} +% p\LaTeX{}の出力ルーチンの|\@outputpage|では、|\shipout|するvboxの中身に +% |\yoko|を指定しています。このため、|\AtBeginDocument{\AtBeginDvi{}}|という +% コードを書くと\texttt{Incompatible direction list can't be unboxed.}という +% エラーが出てしまいます。 +% +% そこで、コミュニティ版p\LaTeX{}では「|\shipout|で|\yoko|が指定されている」 +% ことを根拠として +% \begin{center} +% |\@begindvibox|は(空でない限り)常に横組でなければならない +% \end{center} +% と仮定します。この仮定に従い、|\AtBeginDvi|を再定義します。 +% \changes{v1.2f}{2016/06/30}{\cs{@begindvibox}を常に横組に} +% \begin{macrocode} +% +%\plIncludeInRelease{2016/07/01}{\AtBeginDvi} +% {Fix for incompatible direction}% +%<*plcore|platexrelease> +\def \AtBeginDvi #1{% + \global \setbox \@begindvibox + \vbox{\yoko \unvbox \@begindvibox #1}% +} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\AtBeginDvi} +% {LaTeX2e original}% +%\def \AtBeginDvi #1{% +% \global \setbox \@begindvibox +% \vbox{\unvbox \@begindvibox #1}% +%} +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% +% \subsection{脚注マクロ} +% 脚注を組み立てる部分のマクロを再定義します。 +% 主な修正点は、縦組モードでの動作の追加です。 +% +% これらのマクロは、\file{ltfloat.dtx}で定義されていたものです。 +% +% \begin{macro}{\thempfn} +% 本文で使われる脚注記号です。 +% +% |\@footnotemark|で縦横の判断をするようにしたため、削除。 +% +% \changes{v1.0a}{1995/04/12}{Removed \texttt{\protect\bslash thempfn}} +% \begin{macrocode} +%\def\thempfn{% +% \ifydir\thefootnote\else\hbox{\yoko\thefootnote}\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\thempfootnote} +% minipage環境で使われる脚注記号です。 +% +% \changes{v1.0a}{1995/04/12}{Removed \texttt{\protect\bslash thempfootnote}} +% \begin{macrocode} +%\def\thempfootnote{% +% \ifydir\alph{mpfootnote}\else\hbox{\yoko\alph{mpfootnote}}\fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@makefnmark} +% 脚注記号を作成するマクロです。 +% +% \changes{v1.0a}{1995/04/12}{縦組でも上付き数字を使うように修正} +% \changes{v1.1b}{1996/01/26}{脚注マークの後ろに余計なスペースが入るのを修正} +% \changes{v1.1g}{1997/02/14}{縦組時に脚注マークの書体が正しくないのを修正} +% \changes{v1.2b}{2016/01/26}{2013年以降のp\TeX\ (r28720)で脚注番号の前後の和文文字 +% との間にxkanjiskipが入ってしまう問題に対応} +% \begin{macrocode} +% +%\plIncludeInRelease{2016/04/17}{\@makefnmark} +% {Remove extra \xkanjiskip}% +%<*plcore|platexrelease> +\renewcommand\@makefnmark{% + \ifydir \hbox{}\hbox{\@textsuperscript{\normalfont\@thefnmark}}\hbox{}% + \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@makefnmark} +% {ASCII Corporation original}% +%\renewcommand\@makefnmark{\hbox{% +% \ifydir \@textsuperscript{\normalfont\@thefnmark}% +% \else\hbox{\yoko\@textsuperscript{\normalfont\@thefnmark}}\fi}} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pltx@foot@penalty} +% 開き括弧類の直後に|\footnotetext|が続いた場合、|\footnotetext|の前での改行は +% 望ましくありません。このような場合に対処するために、|\pltx@foot@penalty|という +% カウンタを用意しました。|\footnotetext|の最初で「直前のペナルティ値」 +% としてこのカウンタが初期化されます。 +% |\footnotemark|,~|\footnote|では使わないので0に設定しています。 +% \changes{v1.2g}{2016/08/25}{カウンタ\cs{pltx@foot@penalty}を追加} +% \begin{macrocode} +%\plIncludeInRelease{2016/09/03}{\pltx@foot@penalty} +% {Add new counter \pltx@foot@penalty}% +%<*plcore|platexrelease> +\ifx\@undefined\pltx@foot@penalty \newcount\pltx@foot@penalty \fi +\pltx@foot@penalty\z@ +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\pltx@foot@penalty} +% {Add new counter \pltx@foot@penalty}% +%\let\pltx@foot@penalty\@undefined +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\footnotemark} +% \begin{macro}{\footnote} +% また、合印の前の文字と合印の間は原則ベタ組です(但し、JIS~X~4051には例外有り)。 +% そのため、合印を出力する|\footnotemark|,~|\footnote|の最初で|\inhibitglue|を +% 実行しておくことにします(|\@makefnmark|の中に置いても効力がありません)。 +% \changes{v1.2g}{2016/08/25}{合印の前の文字と合印の間をベタ組に} +% \begin{macrocode} +%\plIncludeInRelease{2016/09/03}{\footnote} +% {Append \inhibitglue in \footnotemark}% +%<*plcore|platexrelease> +% \end{macrocode} +% \begin{macrocode} +\def\footnote{\inhibitglue + \@ifnextchar[\@xfootnote{\stepcounter\@mpfn + \protected@xdef\@thefnmark{\thempfn}% + \@footnotemark\@footnotetext}} +\def\footnotemark{\inhibitglue + \@ifnextchar[\@xfootnotemark + {\stepcounter{footnote}% + \protected@xdef\@thefnmark{\thefootnote}% + \@footnotemark}} +% \end{macrocode} +% \begin{macrocode} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\footnote} +% {LaTeX2e original}% +%\def\footnote{\@ifnextchar[\@xfootnote{\stepcounter\@mpfn +% \protected@xdef\@thefnmark{\thempfn}% +% \@footnotemark\@footnotetext}} +%\def\footnotemark{% +% \@ifnextchar[\@xfootnotemark +% {\stepcounter{footnote}% +% \protected@xdef\@thefnmark{\thefootnote}% +% \@footnotemark}} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\footnotetext} +% |\footnotetext|の直前のペナルティ値を保持します。 +% \changes{v1.2g}{2016/08/25}{閉じ括弧類の直後に\cs{footnotetext}が続く +% 場合に改行が起きることがある問題に対処} +% \begin{macrocode} +%\plIncludeInRelease{2016/09/03}{\footnotetext} +% {Preserve penalty before \footnotetext}% +%<*plcore|platexrelease> +% \end{macrocode} +% \begin{macrocode} +\def\footnotetext{% + \ifhmode\pltx@foot@penalty\lastpenalty\unpenalty\fi% + \@ifnextchar [\@xfootnotenext + {\protected@xdef\@thefnmark{\thempfn}% + \@footnotetext}} +% \end{macrocode} +% \begin{macrocode} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\footnotetext} +% {LaTeX2e original}% +%\def\footnotetext{% +% \@ifnextchar [\@xfootnotenext +% {\protected@xdef\@thefnmark{\thempfn}% +% \@footnotetext}} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@footnotetext} +% インサートボックス|\footins|に脚注のテキストを入れます。 +% コミュニティ版p\LaTeX{}では|\footnotetext|,~|\footnote|の直後で +% 改行を可能にします。jsclassesではこの変更に加え、脚注で|\verb|が +% 使えるように再定義されます。 +% +% \changes{v1.0a}{1995/04/07}{組方向の判定をボックスの外でするようにした} +% \begin{macrocode} +%\plIncludeInRelease{2016/09/08}{\@footnotetext} +% {Allow break after \footnote (more fix)}% +%<*plcore|platexrelease> +% \end{macrocode} +% \begin{macrocode} +\long\def\@footnotetext#1{% + \ifydir\def\@tempa{\yoko}\else\def\@tempa{\tate}\fi + \insert\footins{\@tempa% + \reset@font\footnotesize + \interlinepenalty\interfootnotelinepenalty + \splittopskip\footnotesep + \splitmaxdepth \dp\strutbox \floatingpenalty \@MM + \hsize\columnwidth \@parboxrestore + \protected@edef\@currentlabel{% + \csname p@footnote\endcsname\@thefnmark + }% + \color@begingroup + \@makefntext{% + \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% +% \end{macrocode} +% +% p\TeX{}では|\insert|の直後に和文文字が来た場合、そこでの改行は許されない +% という挙動になっています。このため、従来は脚注番号(合印)の直後の改行が +% 抑制されていました。しかし、|\hbox|の直後に和文文字が来た場合は、そこで +% の改行は許されますから、最後に|\null|を追加します。 +% また、|\pltx@foot@penalty|の値が0ではなかった場合、 +% 脚注の前にペナルティがあったということですから、復活させておきます。 +% \changes{v1.2g}{2016/08/25}{脚注の合印直後での改行が禁止されてしまう +% 問題に対処} +% \changes{v1.2i}{2016/09/08}{v1.2gの修正で入れた\cs{null}がまずかったので +% 水平モードのときだけ発行することにした(Issue 23)} +% \begin{macrocode} + \color@endgroup}\ifhmode\null\fi + \ifnum\pltx@foot@penalty=\z@\else + \penalty\pltx@foot@penalty + \pltx@foot@penalty\z@ + \fi} +% \end{macrocode} +% \begin{macrocode} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{2016/09/03}{\@footnotetext} +% {Allow break after \footnote}% +%\long\def\@footnotetext#1{% +% \ifydir\def\@tempa{\yoko}\else\def\@tempa{\tate}\fi +% \insert\footins{\@tempa% +% \reset@font\footnotesize +% \interlinepenalty\interfootnotelinepenalty +% \splittopskip\footnotesep +% \splitmaxdepth \dp\strutbox \floatingpenalty \@MM +% \hsize\columnwidth \@parboxrestore +% \protected@edef\@currentlabel{% +% \csname p@footnote\endcsname\@thefnmark +% }% +% \color@begingroup +% \@makefntext{% +% \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% +% \color@endgroup}\null +% \ifnum\pltx@foot@penalty=\z@\else +% \penalty\pltx@foot@penalty +% \pltx@foot@penalty\z@ +% \fi} +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@footnotetext} +% {ASCII Corporation original}% +%\long\def\@footnotetext#1{% +% \ifydir\def\@tempa{\yoko}\else\def\@tempa{\tate}\fi +% \insert\footins{\@tempa% +% \reset@font\footnotesize +% \interlinepenalty\interfootnotelinepenalty +% \splittopskip\footnotesep +% \splitmaxdepth \dp\strutbox \floatingpenalty \@MM +% \hsize\columnwidth \@parboxrestore +% \protected@edef\@currentlabel{% +% \csname p@footnote\endcsname\@thefnmark +% }% +% \color@begingroup +% \@makefntext{% +% \rule\z@\footnotesep\ignorespaces#1\@finalstrut\strutbox}% +% \color@endgroup}} +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@footnotemark} +% \changes{v1.0a}{1995/04/12}{脚注記号の出力位置の調整} +% \changes{v1.1g}{1997/02/14}{縦組時の位置調整を2\cs{cht}から.9zhに変更} +% 脚注記号を出力します。 +% \begin{macrocode} +\def\@footnotemark{\leavevmode + \ifhmode\edef\@x@sf{\the\spacefactor}\nobreak\fi + \ifydir\@makefnmark + \else\hbox to\z@{\hskip-.25zw\raise.9zh\@makefnmark\hss}\fi + \ifhmode\spacefactor\@x@sf\fi\relax} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{相互参照} +% +% \begin{macro}{\@setref} +% \changes{v1.1c}{1995/09/07}{change \cs{null} to \cs{relax} in \cs{@setref}.} +% \changes{v1.2k}{2017/02/20}{目次で\cs{ref}を使った場合に後ろの空白が消える +% 現象に対処するため、\cs{relax}のあとに\{\}を追加} +% |\ref|コマンドや|\pageref|コマンドで参照したとき、これらのコマンドに +% よって出力された番号と続く2バイト文字との間に|\xkanjiskip|が入りません。 +% これは、|\null|が|\hbox{}|と定義されているためです。 +% そこで|\null|を取り除きます。 +% このコマンドは、\file{ltxref.dtx}で定義されているものです。 +% +% しかし、単に|\null|を|\relax|に置き換えるだけでは、|\section|のような +% 「動く引数」で|\ref|などを使った場合に、目次で後ろの空白が消えてしまいます。 +% そこで、|\relax|のあとに|{}|を追加しました。従来も|\protect\ref|のように使えば +% 問題ありませんでしたが、\LaTeX{}では展開されても問題が起きないrobustな実装に +% なっていますので、これに従います。 +% +% さらに、例えば``see Appendix A.''のような記述が文末にあり、かつ +% ``A''を相互参照で取得した場合のスペースファクターを補正するため、 +% |\spacefactor\@m{}|に修正しました。これで、``A.''の後のスペースが +% 文末として扱われます。 +% 「\LaTeXe{}マクロ\&クラス プログラミング実践解説」のコードを参考に +% しましたが、数式モード内でもエラーにならないように改良しています。 +% \changes{v1.2s}{2017/09/27}{相互参照のスペースファクターを補正} +% \changes{v1.2t}{2017/10/31}{v1.2sの変更に伴い、\cs{ref}が数式モードで +% エラーになっていたのを修正} +% \changes{v1.2u}{2017/11/04}{emathの\cs{marusuuref}対策} +% \begin{macrocode} +% +%\plIncludeInRelease{2017/10/28}{\@setref} +% {Space factor after \ref}% +%<*plcore|platexrelease> +\def\@setref#1#2#3{% + \ifx#1\relax + \protect\G@refundefinedtrue + \nfss@text{\reset@font\bfseries ??}% + \@latex@warning{Reference `#3' on page \thepage \space + undefined}% + \else + \expandafter#2#1\protect\@setref@{}% change \null to \protect\@setref@{} + \fi} +\def\@setref@{\ifhmode\spacefactor\@m\fi} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{2017/04/08}{\@setref} +% {Spacing after \ref in moving arguments}% +%\def\@setref#1#2#3{% +% \ifx#1\relax +% \protect\G@refundefinedtrue +% \nfss@text{\reset@font\bfseries ??}% +% \@latex@warning{Reference `#3' on page \thepage \space +% undefined}% +% \else +% \expandafter#2#1\relax{}% change \null to \relax{} +% \fi} +%\let\@setref@\@undefined +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@setref} +% {ASCII Corporation original}% +%\def\@setref#1#2#3{% +% \ifx#1\relax +% \protect\G@refundefinedtrue +% \nfss@text{\reset@font\bfseries ??}% +% \@latex@warning{Reference `#3' on page \thepage \space +% undefined}% +% \else +% \expandafter#2#1\relax% change \null to \relax +% \fi} +%\let\@setref@\@undefined +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% +% \subsection{疑似タイプ入力} +% +% \begin{macro}{\verb} +% \changes{v1.1b}{1995/04/05}{互換モードのときは、pl209.defの定義を使う} +% \changes{v1.1g}{1997/01/16} +% {\cs{verb}コマンドを\LaTeX\ \texttt{!<1996/06/01!>}に合わせて修正} +% \LaTeX{}の|\verb|コマンドでは、数式モードでないときは、 +% |\leavevmode|で水平モードに入ったあと、|\null|を出力しています。 +% マクロ|\null|は|\hbox{}|として定義されていますので、 +% ここには和欧文間スペース(|\xkanjiskip|)が入りません。 +% +% しかし、単に|\null|を除いてしまうと、今度は|\verb+ abc+|のように +% |\verb|の冒頭に半角空白がある場合にこれが消えてしまいます(TeX.SX 170245)。 +% そこで、p\LaTeX{}では|\null|の代わりに +% \begin{enumerate} +% \item 和欧文間スペースの挿入処理は透過する +% \item 行分割時に消える(discardable)ノードではない +% \end{enumerate} +% の両条件を満たすノードを挿入します。ここでは|\vadjust{}|としました。 +% +% このマクロは、\file{ltmiscen.dtx}で定義されています。 +% \changes{v1.2s}{2017/09/27}{\cs{verb}の冒頭の半角空白を保持} +% \begin{macrocode} +% +%\plIncludeInRelease{2017/10/28}{\verb} +% {Preserve beginning space characters}% +%<*plcore|platexrelease> +\if@compatibility\else +\def\verb{\relax\ifmmode\hbox\else\leavevmode\vadjust{}\fi + \bgroup + \verb@eol@error \let\do\@makeother \dospecials + \verbatim@font\@noligs +% \end{macrocode} +% \LaTeXe\ 2017-04-15に追随して、|\verb|の途中でハイフネーションが起きない +% ように|\language|を設定します(参考:latex2e svn r1405)。 +% \changes{v1.2m}{2017/03/19}{\cs{verb}の途中でハイフネーションが起きない +% ように\cs{language}を設定(sync with ltmiscen.dtx 2017/03/09 v1.1m)} +% \begin{macrocode} + \language\l@nohyphenation + \@ifstar\@sverb\@verb} +\fi +% +%\plEndIncludeInRelease +%\plIncludeInRelease{2017/04/08}{\verb} +% {Disable hyphenation in verb}% +%\if@compatibility\else +%\def\verb{\relax\ifmmode\hbox\else\leavevmode\fi +% \bgroup +% \verb@eol@error \let\do\@makeother \dospecials +% \verbatim@font\@noligs +% \language\l@nohyphenation +% \@ifstar\@sverb\@verb} +%\fi +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\verb} +% {ASCII Corporation original}% +%\if@compatibility\else +%\def\verb{\relax\ifmmode\hbox\else\leavevmode\fi +% \bgroup +% \verb@eol@error \let\do\@makeother \dospecials +% \verbatim@font\@noligs +% \@ifstar\@sverb\@verb} +%\fi +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% +% \subsection{tabbing環境} +% +% \begin{macro}{\@startline} +% tabbing環境の行で、中身が始め括弧類などで始まる場合、 +% 最初の項目だけJFMグルーが消えない現象に対処します。 +% \changes{v1.2s}{2017/09/27}{tabbing環境の行冒頭のJFMグル―を削除} +% \begin{macrocode} +% +%\plIncludeInRelease{2017/10/28}{\@startline} +% {Inhibit JFM glue at the beginning}% +%<*plcore|platexrelease> +\gdef\@startline{% + \ifnum \@nxttabmar >\@hightab + \@badtab + \global\@nxttabmar \@hightab + \fi + \global\@curtabmar \@nxttabmar + \global\@curtab \@curtabmar + \global\setbox\@curline \hbox {}% + \@startfield + \strut\inhibitglue} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@startline} +% {LaTeX2e original}% +%\gdef\@startline{% +% \ifnum \@nxttabmar >\@hightab +% \@badtab +% \global\@nxttabmar \@hightab +% \fi +% \global\@curtabmar \@nxttabmar +% \global\@curtab \@curtabmar +% \global\setbox\@curline \hbox {}% +% \@startfield +% \strut} +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@stopfield} +% \changes{v1.1d}{1996/03/12}{\cs{=}の後ろに和欧文間スペースが入るのを修正} +% 相互参照や疑似タイプ入力では、和欧文間スペースが入らないので、|\null|を +% 取り除きましたが、|tabbing|環境では、逆に|\null|がないため、 +% 和欧文間スペースが入ってしまうので、それを追加します。 +% \file{lttab.dtx}で定義されているものです。 +% \begin{macrocode} +\gdef\@stopfield{\null\color@endgroup\egroup} +% \end{macrocode} +% \end{macro} +% +% \subsection{用語集の出力} +% \LaTeX{}には、なぜか用語集を出力するためのコマンドがありませんので、 +% 追加をします。 +% \changes{v1.1e}{1996/02/17}{\cs{printglossary}を追加} +% +% \begin{macro}{\printglossary} +% \cs{printglossary}コマンドは、単に拡張子が\texttt{gls}のファイルを +% 読み込むだけです。このファイルの生成には、mendexなどを用います。 +% \begin{macrocode} +\newcommand\printglossary{\@input@{\jobname.gls}} +% \end{macrocode} +% \end{macro} +% +% \subsection{時分を示すカウンタ} +% \TeX には、年月日を示す数値を保持しているカウンタとして、それぞれ +% |\year|, |\month|, |\day|がプリミティブとして存在します。しかし、 +% 時分については、深夜の零時からの経過時間を示す|\time|カウンタしか存在 +% していません。そこで、p\LaTeXe{}では、時分を示すためのカウンタ|\hour|と +% |\minute|を作成しています。 +% +% \begin{macro}{\hour} +% \begin{macro}{\minute} +% 何時か(|\hour|)を得るには、|\time|を60で割った商をそのまま用います。 +% 何分か(|\minute|)は、|\hour|に60を掛けた値を|\time|から引いて算出します。 +% ここではカウンタを宣言するだけです。実際の計算は、クラスやパッケージの中 +% で行なっています。 +% \begin{macrocode} +\newcount\hour +\newcount\minute +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsection{tabular環境} +% \LaTeX{}カーネル(lttab.dtx)の命令群を修正します。 +% +% \begin{macro}{\@tabclassz} +% \LaTeX{}カーネルは、アラインメント文字|&|の周囲に半角空白を書いたかどうかに +% かかわらず余分なスペースを出力しないように、|\ignorespaces|と|\unskip|を +% 発行しています(lttab.dtx)。しかし、これだけではJFMグルーが消えずに残って +% しまうので、p\LaTeX{}では追加の対処を入れます。 +% +% まず、|l|, |c|, |r|の場合です。 +% 2017/09/26の修正では「セルの要素を|\mbox|に入れ、 +% その最初で|\inhibitglue|を発行する」という方針でしたが、 +% 2018/03/09の修正では「|\removejfmglue|マクロが定義されている場合は +% 最初に|\inhibitglue|を発行し、最後に|\removejfmglue|を発行する」という +% 方針にします。こうすれば少々\LaTeX{}との互換性が向上します。 +% \changes{v1.2p}{2017/07/21}{tabular環境のセル内のJFMグル―を削除} +% \changes{v1.2r}{2017/09/26}{tabular環境の右揃え(r)で罫線がずれるように +% なっていたバグを修正} +% \changes{v1.2x}{2018/03/01}{\cs{removejfmglue}があれば利用するようにした} +% \changes{v1.3b}{2019/02/08}{中央揃えのセルでの\cs{unskip}対策 +% (sync with lttab 2018/12/30 v1.1p)} +% ^^A なぜか v1.3b の変更は本家 latexrelease に含まれないのでそれに合わせた +% \begin{macrocode} +% +%\plIncludeInRelease{2018/03/09}{\@tabclassz} +% {Inhibit JFM glue in tabular cells (better)}% +%<*plcore|platexrelease> +\ifx\removejfmglue\@undefined +\def\@tabclassz{% + \ifcase\@lastchclass + \@acolampacol + \or + \@ampacol + \or + \or + \or + \@addamp + \or + \@acolampacol + \or + \@firstampfalse\@acol + \fi + \edef\@preamble{% + \@preamble{% + \ifcase\@chnum + \hfil\mbox{\inhibitglue\ignorespaces\@sharp\unskip}\hfil % c + \or + \hskip1sp\mbox{\inhibitglue\ignorespaces\@sharp\unskip}\hfil % l + \or + \hfil\hskip1sp\mbox{\inhibitglue\ignorespaces\@sharp\unskip}% % r + \fi}}} +\else +\def\@tabclassz{% + \ifcase\@lastchclass + \@acolampacol + \or + \@ampacol + \or + \or + \or + \@addamp + \or + \@acolampacol + \or + \@firstampfalse\@acol + \fi + \edef\@preamble{% + \@preamble{% + \ifcase\@chnum + \hfil\hskip1sp\inhibitglue + \ignorespaces\@sharp\unskip\removejfmglue\hfil % c + \or + \hskip1sp\inhibitglue + \ignorespaces\@sharp\unskip\removejfmglue\hfil % l + \or + \hfil\hskip1sp\inhibitglue + \ignorespaces\@sharp\unskip\removejfmglue % r + \fi}}} +\fi +% +%\plEndIncludeInRelease +%\plIncludeInRelease{2017/09/26}{\@tabclassz} +% {Inhibit JFM glue in tabular cells}% +%\def\@tabclassz{% +% \ifcase\@lastchclass +% \@acolampacol +% \or +% \@ampacol +% \or +% \or +% \or +% \@addamp +% \or +% \@acolampacol +% \or +% \@firstampfalse\@acol +% \fi +% \edef\@preamble{% +% \@preamble{% +% \ifcase\@chnum +% \hfil\mbox{\inhibitglue +% \ignorespaces\@sharp\unskip}\hfil % c +% \or +% \hskip1sp\mbox{\inhibitglue +% \ignorespaces\@sharp\unskip}\hfil % l +% \or +% \hfil\hskip1sp\mbox{\inhibitglue +% \ignorespaces\@sharp\unskip}% % r +% \fi}}} +%\plEndIncludeInRelease +%\plIncludeInRelease{2017/07/29}{\@tabclassz} +% {Inhibit JFM glue in tabular cells (wrong)}% +%\def\@tabclassz{% +% \ifcase\@lastchclass +% \@acolampacol +% \or +% \@ampacol +% \or +% \or +% \or +% \@addamp +% \or +% \@acolampacol +% \or +% \@firstampfalse\@acol +% \fi +% \edef\@preamble{% +% \@preamble{% +% \ifcase\@chnum +% \hfil\inhibitglue +% \ignorespaces\@sharp\unskip\unskip\hfil % c +% \or +% \hskip1sp\inhibitglue +% \ignorespaces\@sharp\unskip\unskip\hfil % l +% \or +% \hfil\hskip1sp\inhibitglue +% \ignorespaces\@sharp\unskip\unskip % r +% \fi}}} +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@tabclassz} +% {LaTeX2e original}% +%\def\@tabclassz{% +% \ifcase\@lastchclass +% \@acolampacol +% \or +% \@ampacol +% \or +% \or +% \or +% \@addamp +% \or +% \@acolampacol +% \or +% \@firstampfalse\@acol +% \fi +% \edef\@preamble{% +% \@preamble{% +% \ifcase\@chnum +% \hfil\ignorespaces\@sharp\unskip\hfil +% \or +% \hskip1sp\ignorespaces\@sharp\unskip\hfil +% \or +% \hfil\hskip1sp\ignorespaces\@sharp\unskip +% \fi}}} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@classv} +% 次に、|p|の場合です。 +% 2017/07/29の修正では|\mbox{}\inhibitglue|と|\unskip|を追加していましたが、 +% 以下のように|p|指定のセルの最初で|\par|として +% 改段落を発行すると、一行空いてしまうという症状が起きてしまいます(platex/\#63)。 +%\begin{verbatim} +% \begin{tabular}{p{5cm}} +% A\\ +% \relax\par +% A +% \end{tabular} +%\end{verbatim} +% ここでは、2017/07/29の修正から方針を改め、|\everypar|内に|\inhibitglue|を +% 仕込むという方針で対応します。 +% \changes{v1.2p}{2017/07/21}{tabular環境のセル内のJFMグル―を削除} +% \changes{v1.2x}{2018/03/01}{セル最初の\cs{par}で空行が入らないようにした} +% \begin{macrocode} +%\plIncludeInRelease{2018/03/09}{\@classv} +% {Inhibit JFM glue in tabular cells (better)}% +%<*plcore|platexrelease> +\def\@classv{\@addtopreamble{\@startpbox{\@nextchar}\pltx@next@inhibitglue\ignorespaces +\@sharp\unskip\@endpbox}} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{2017/07/29}{\@classv} +% {Inhibit JFM glue in tabular cells}% +%\def\@classv{\@addtopreamble{\@startpbox{\@nextchar}\mbox{}\inhibitglue\ignorespaces +%\@sharp\unskip\@endpbox}} +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@classv} +% {LaTeX2e original}% +%\def\@classv{\@addtopreamble{\@startpbox{\@nextchar}\ignorespaces +%\@sharp\@endpbox}} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pltx@next@inhibitglue} +% 水平モードであればそのまま|\inhibitglue|を発行し、それ以外であれば +% |\everypar|内に|\inhibitglue|を仕込みます。 +% \changes{v1.2x}{2018/03/01}{\cs{everypar}に\cs{inhibitglue}を仕込むマクロ追加} +% \changes{v1.2y}{2018/03/12}{\cs{inhibitglue}を\cs{everypar}の末尾に移動} +% \begin{macrocode} +%\plIncludeInRelease{2018/03/09}{\pltx@next@inhibitglue} +% {Add \pltx@next@inhibitglue}% +%<*plcore|platexrelease> +\protected\def\pltx@next@inhibitglue{% + \ifhmode\inhibitglue\else + \edef\@tempa{\everypar{% + \everypar{\unexpanded\expandafter{\the\everypar}}% + \unexpanded\expandafter{\the\everypar}\inhibitglue}}% + \@tempa\fi} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\pltx@next@inhibitglue} +% {Add \pltx@next@inhibitglue}% +%\let\pltx@next@inhibitglue\@undefined +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% +% \section{2013年以降の新しいp\TeX{}対応} +% \LaTeXe{}のカーネルのコードをそのまま使うと、2013年以降のp\TeX{}では +% |\xkanjiskip|由来のアキが前後に入ってしまうことがありました。 +% そうした命令にパッチをあてます。なお、既に出てきた|\footnote|の内部命令 +% (|\@makefnmark|)には同様のパッチがもうあててあります。 +% +% \begin{macro}{\@tabular} +% tabular環境の内部命令です。もとは\file{lttab.dtx}で定義されています。 +% \changes{v1.2c}{2016/02/28}{1.2bと同様の修正をtabular環境にも行った} +% \begin{macrocode} +%\plIncludeInRelease{2016/04/17}{\@tabular} +% {Remove extra \xkanjiskip}% +%<*plcore|platexrelease> +\def\@tabular{\leavevmode \null\hbox \bgroup $\let\@acol\@tabacol + \let\@classz\@tabclassz + \let\@classiv\@tabclassiv \let\\\@tabularcr\@tabarray} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@tabular} +% {LaTeX2e original}% +%\def\@tabular{\leavevmode \hbox \bgroup $\let\@acol\@tabacol +% \let\@classz\@tabclassz +% \let\@classiv\@tabclassiv \let\\\@tabularcr\@tabarray} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\endtabular} +% \begin{macro}{\endtabular*} +% \begin{macrocode} +%\plIncludeInRelease{2016/04/17}{\endtabular} +% {Remove extra \xkanjiskip}% +%<*plcore|platexrelease> +\def\endtabular{\crcr\egroup\egroup $\egroup\null} +\expandafter \let \csname endtabular*\endcsname = \endtabular +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\endtabular} +% {LaTeX2e original}% +%\def\endtabular{\crcr\egroup\egroup $\egroup} +%\expandafter \let \csname endtabular*\endcsname = \endtabular +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@iiiparbox} +% |\parbox|の内部命令です。もとは\file{ltboxes.dtx}で定義されています。 +% \changes{v1.2c}{2016/02/28}{1.2bと同様の修正を\cs{parbox}命令にも行った} +% \begin{macrocode} +%\plIncludeInRelease{2016/04/17}{\@iiiparbox} +% {Remove extra \xkanjiskip}% +%<*plcore|platexrelease> +\let\@parboxto\@empty +\long\def\@iiiparbox#1#2[#3]#4#5{% + \leavevmode + \@pboxswfalse + \setlength\@tempdima{#4}% + \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}% + \ifx\relax#2\else + \setlength\@tempdimb{#2}% + \edef\@parboxto{to\the\@tempdimb}% + \fi + \if#1b\vbox + \else\if #1t\vtop + \else\ifmmode\vcenter + \else\@pboxswtrue\null$\vcenter% !!! + \fi\fi\fi + \@parboxto{\let\hss\vss\let\unhbox\unvbox + \csname bm@#3\endcsname}% + \if@pboxsw \m@th$\null\fi% !!! + \@end@tempboxa} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@iiiparbox} +% {LaTeX2e original}% +%\let\@parboxto\@empty +%\long\def\@iiiparbox#1#2[#3]#4#5{% +% \leavevmode +% \@pboxswfalse +% \setlength\@tempdima{#4}% +% \@begin@tempboxa\vbox{\hsize\@tempdima\@parboxrestore#5\@@par}% +% \ifx\relax#2\else +% \setlength\@tempdimb{#2}% +% \edef\@parboxto{to\the\@tempdimb}% +% \fi +% \if#1b\vbox +% \else\if #1t\vtop +% \else\ifmmode\vcenter +% \else\@pboxswtrue $\vcenter +% \fi\fi\fi +% \@parboxto{\let\hss\vss\let\unhbox\unvbox +% \csname bm@#3\endcsname}% +% \if@pboxsw \m@th$\fi +% \@end@tempboxa} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\underline} +% 下線を引く命令です。もとは\file{ltboxes.dtx}で定義されています。 +% \changes{v1.2c}{2016/02/28}{1.2bと同様の修正を\cs{underline}命令にも行った} +% \begin{macrocode} +%\plIncludeInRelease{2016/04/17}{\underline} +% {Remove extra \xkanjiskip}% +%<*plcore|platexrelease> +\def\underline#1{% + \relax + \ifmmode\@@underline{#1}% + \else \leavevmode\null$\@@underline{\hbox{#1}}\m@th$\null\relax\fi} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\underline} +% {LaTeX2e original}% +%\def\underline#1{% +% \relax +% \ifmmode\@@underline{#1}% +% \else $\@@underline{\hbox{#1}}\m@th$\relax\fi} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% +% \section{e-p\TeX{}でのFAM256パッチの利用} +% +% \begin{macro}{\e@alloc@chardef} +% \begin{macro}{\e@alloc@top} +% \LaTeXe\ 2015/01/01以降、拡張レジスタがあれば利用するようになっています +% ので、e-p\TeX{}の拡張レジスタを利用できるように設定します。 +% \changes{v1.2j}{2016/11/09}{FAM256パッチ適用e-p\TeX{}に対応} +% \begin{macrocode} +%\plIncludeInRelease{2018/03/09}% +% {\e@alloc@chardef}{Extended Allocation (FAM256)}% +%<*plcore|platexrelease> +% \end{macrocode} +% \begin{macrocode} +\ifx\omathchar\@undefined + \ifx\widowpenalties\@undefined +% \end{macrocode} +% オリジナルの\TeX{}の場合(拡張なしのアスキーp\TeX{}の場合)。 +% \begin{macrocode} + \mathchardef\e@alloc@top=255 + \let\e@alloc@chardef\chardef + \else +% \end{macrocode} +% e-\TeX{}拡張で$2^{15}$個のレジスタが利用できます。 +% ^^A 備忘録:「FAM256なしのe-(u)p\TeX{}」は事実上存在しないはず。 +% ^^A ただし、たとえばe-(u)p\TeX{}をベースにした +% ^^A p\TeX{}-ng (Asiatic pTeX)はe-\TeX{}拡張を持っていて、 +% ^^A FAM256パッチは適用されていないため、ここに該当する。 +% ^^A cf: https://github.com/clerkma/ptex-ng +% ^^A なお、p\TeX{}-ngはe-p\TeX{}と同様にpdf\TeX{}拡張の +% ^^A 一部(e-p\TeX{}と範囲が一致しない)を持っていること、 +% ^^A また|\epTeXinputencoding|などのe-p\TeX{}独自のプリミティブを +% ^^A 持っていないことにも注意。 +% ^^A (|\lastnodechar|もe-p\TeX{}独自だったが、2017/09/06付で +% ^^A p\TeX{}-ngにも追加されている。) +% \begin{macrocode} + \mathchardef\e@alloc@top=32767 + \let\e@alloc@chardef\mathchardef + \fi +\else +% \end{macrocode} +% FAM256パッチが適用されたe-p\TeX{}の場合は、$2^{16}$個のレジスタが利用できます。 +% \changes{v1.2w}{2018/02/24}{e-up\TeX{}でも\cs{omathchardef}を使用} +% ^^A 備忘録:up\TeX{}では|\omathchardef|でなく|\chardef|も可だが、 +% ^^A フォーマット作成時に|-kanji-internal=euc|が指定される可能性が +% ^^A ないとは言い切れないので、FAM256パッチ適用済e-(u)p\TeX{}ならば +% ^^A 常に|\omathchardef|を用いることにする。 +% \begin{macrocode} + \omathchardef\e@alloc@top=65535 + \let\e@alloc@chardef\omathchardef +\fi +% \end{macrocode} +% \begin{macrocode} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{2016/11/29}% +% {\e@alloc@chardef}{Extended Allocation (FAM256)}% +%\ifx\omathchar\@undefined +% \ifx\widowpenalties\@undefined +% \mathchardef\e@alloc@top=255 +% \let\e@alloc@chardef\chardef +% \else +% \mathchardef\e@alloc@top=32767 +% \let\e@alloc@chardef\mathchardef +% \fi +%\else +% \ifx\enablecjktoken\@undefined % pTeX +% \omathchardef\e@alloc@top=65535 +% \let\e@alloc@chardef\omathchardef +% \else % upTeX +% \chardef\e@alloc@top=65535 +% \let\e@alloc@chardef\chardef +% \fi +%\fi +%\plEndIncludeInRelease +%\plIncludeInRelease{2015/01/01}% +% {\e@alloc@chardef}{LaTeX2e original}% +%\ifx\widowpenalties\@undefined +% \mathchardef\e@alloc@top=255 +% \let\e@alloc@chardef\chardef +%\else +% \mathchardef\e@alloc@top=32767 +% \let\e@alloc@chardef\mathchardef +%\fi +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}% +% {\e@alloc@chardef}{LaTeX2e original}% +%\let\e@alloc@top\@undefined +%\let\e@alloc@chardef\@undefined +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\e@mathgroup@top} +% 2015/01/01以降の\LaTeXe{}カーネルは、Xe\TeX{}とLua\TeX{}に対して数式famの +% 上限を16から256に増やしています(|\Umathcode| で判定)。 +% FAM256パッチが適用されたe-p\TeX{}でも同様に上限を16から256に増やします。 +% これで +%\begin{verbatim} +% ! LaTeX Error: Too many math alphabets used in version normal. +%\end{verbatim} +% が出にくくなるはずです。 +% \changes{v1.2j}{2016/11/09}{FAM256パッチ適用e-p\TeX{}に対応} +% \begin{macrocode} +%\plIncludeInRelease{2016/11/29}% +% {\e@mathgroup@top}{Extended Allocation (FAM256)}% +%<*plcore|platexrelease> +% \end{macrocode} +% \begin{macrocode} +\ifx\omathchar\@undefined + \chardef\e@mathgroup@top=16 % LaTeX2e kernel standard +\else + \mathchardef\e@mathgroup@top=256 % for e-pTeX FAM256 patched +\fi +% \end{macrocode} +% \begin{macrocode} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{2015/01/01}% +% {\e@mathgroup@top}{LaTeX2e original}% +%\chardef\e@mathgroup@top=16 +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}% +% {\e@mathgroup@top}{LaTeX2e original}% +%\let\e@mathgroup@top\@undefined +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% +% \section{\LaTeXe{}とp\LaTeXe{}の更新タイミングずれ対策} +% \changes{v1.3a}{2018/10/31}{\LaTeXe{}とp\LaTeXe{}の更新タイミングずれ対策を +% \file{plvers.dtx} (plfinal) から\file{plcore.dtx}へ移動、latexrelease対策 +% (sync with ltfinal 2018/08/24 v2.1f)} +% +% \begin{macro}{\l@nohyphenation} +% 通常はBabelのハイフネーション定義により提供されるパラメータです。 +% しかし、\LaTeXe\ 2017-04-15以降・p\LaTeXe\ 2017-04-08以降では、 +% |\verb|の途中でハイフネーションが起きないようにするために必須の +% ものとなりました。 +% \LaTeXe{}は特殊な状況も想定してltfinal.dtxで対策しているようですので、 +% p\LaTeXe{}も念のためここで対策します(参考:latex2e svn r1405)。 +% \begin{macrocode} +%<*plcore> +\ifx\l@nohyphenation \@undefined + \newlanguage\l@nohyphenation +\fi +% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\document@default@language} +% \LaTeXe\ 2017-04-15で導入されたパラメータですが、これに先立ち +% p\LaTeXe\ 2017-04-08でも使用しています。 +% verbatim環境の途中で +% 改ページが起きた場合にヘッダでハイフネーションが抑制されないように、 +% |\@outputpage|で|\language|をリセットするときに使われます +% (参考:latex2e svn r1407)。 +% \begin{macrocode} +%\plIncludeInRelease{2017/04/08}{\document@default@language}% +% {Save language for hyphenation}% +%<*plcore|platexrelease> +\ifx\document@default@language \@undefined + \let\document@default@language\m@ne +\fi +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\document@default@language}% +% {Save language for hyphenation}% +%\let\document@default@language\@undefined +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \Finale +\endinput diff --git a/language/japanese/platex/pldoc.pdf b/language/japanese/platex/pldoc.pdf new file mode 100644 index 0000000000..2d845301aa Binary files /dev/null and b/language/japanese/platex/pldoc.pdf differ diff --git a/language/japanese/platex/pldocs.ins b/language/japanese/platex/pldocs.ins new file mode 100644 index 0000000000..f5ad788c1f --- /dev/null +++ b/language/japanese/platex/pldocs.ins @@ -0,0 +1,24 @@ +\input docstrip +\keepsilent +\ifToplevel{\askonceonly} +\usedir{tex/platex/base} + +\Msg{*** Generating the pLaTeX files for making the documents ***} + +\preamble + +Copyright (c) 2010 ASCII MEDIA WORKS +Copyright (c) 2016-2018 Japanese TeX Development Community + +This file is part of the pLaTeX2e system (community edition). +------------------------------------------------------------- + +\endpreamble + +\generate{ + \file{jltxdoc.cls}{\from{jltxdoc.dtx}{class}} + \file{pldoc.tex}{\from{platex.dtx}{pldoc}} + \file{Xins.ins}{\from{platex.dtx}{Xins}} +} + +\endbatchfile diff --git a/language/japanese/platex/plext.dtx b/language/japanese/platex/plext.dtx new file mode 100644 index 0000000000..8dbce77002 --- /dev/null +++ b/language/japanese/platex/plext.dtx @@ -0,0 +1,1457 @@ +% \iffalse meta-comment +%% File: plext.dtx +% +% Copyright 2001 ASCII Corporation. +% Copyright (c) 2010 ASCII MEDIA WORKS +% Copyright (c) 2016-2018 Japanese TeX Development Community +% +% This file is part of the pLaTeX2e system (community edition). +% ------------------------------------------------------------- +% +% \fi +% +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0}{1994/09/16}{first edition} +% \changes{v1.1a}{1995/03/11}{縦組マクロ実装} +% \changes{v1.1b}{1995/04/01}{互換モード部分を別ファイルに移動} +% \changes{v1.1c}{1995/08/25}{\cs{newline}, \cs{strut}の修正} +% \changes{v1.1d}{1995/11/10}{オリジナルとのコマンド名バッティングをやめた} +% \changes{v1.1d}{1995/11/21}{\cs{Rensuji}, \cs{prensuji}を作成} +% \changes{v1.1e}{1995/11/21}{プリアンブルコマンドを\file{plcore}に移動} +% \changes{v1.1f}{1996/01/09}{縦組に依存しないコマンドを分離し、このファイルを +% 拡張パッケージとした} +% \changes{v1.1g}{1996/01/12}{minipage環境の中で\cs{parbox}を回転オプション +% 付きで使用するとエラーとなるバグを修正} +% \changes{v1.1h}{1996/01/30}{キャプション拡張マクロを追加} +% \changes{v1.1i}{2001/05/10}{縦組でzを指定するとエラーになるのを修正。 +% ありがとう、大石さん} +% \changes{v1.2}{2001/09/26}{タグ名をplcoreからpackageに変更した} +% \changes{v1.2a}{2016/08/20}{tabular環境前の余分な\cs{xkanjiskip}を削除} +% \changes{v1.2a}{2016/08/20}{tabular環境後の余分な\cs{xkanjiskip}を削除} +% \changes{v1.2a}{2016/08/20}{\cs{parbox}前後の余分な\cs{xkanjiskip}を削除} +% \changes{v1.2a}{2016/08/20}{横組で\texttt{}を指定した場合に +% \cs{@arstrutbox}を余計に\cs{hbox}に入れていたのを修正} +% \changes{v1.2b}{2016/11/07}{横組で段落の頭に\cs{rensuji}を使える +% ように\cs{leavevmode}を追加して修正} +% \changes{v1.2c}{2016/11/19}{Use \cs{setlength}, so that +% calc extensions apply (sync with lttab.dtx v1.1j)} +% \changes{v1.2c}{2016/11/19}{Use \cs{@setminpage} +% (sync with ltboxes v1.1a)} +% \changes{v1.2c}{2016/11/19}{put \cs{global} into definition +% of \cs{@minipagefalse} (sync with ltboxes v1.0z)} +% \changes{v1.2c}{2016/11/19}{Changed \cs{endgraf} to +% \cs{@@par} (sync with ltboxes.dtx v1.0y)} +% \changes{v1.2c}{2016/11/19}{Changed \cs{@empty} to \cs{relax} as +% flag for natural width: pr/2975 (sync with ltboxes.dtx v1.1f)} +% \changes{v1.2c}{2016/11/19}{Ensure \cs{@parboxto} holds the value +% of \cs{@tempdimb} not the register itself (pr/3867) +% (sync with ltboxes.dtx v1.1g)} +% \changes{v1.2d}{2017/02/04}{\cs{Kanji}の引数だけでなく後に連続する +% 数字も漢数字になってしまうバグを修正} +% \changes{v1.2e}{2017/03/02}{Make \cs{parbox} Robust +% (sync with ltboxes 2015/01/08 v1.1h)} +% \changes{v1.2f}{2017/03/28}{表と周囲との揃え位置を修正} +% \changes{v1.2f}{2017/03/28}{段落の箱と周囲との揃え位置を修正} +% \changes{v1.2g}{2017/05/04}{Make \cs{pbox} Robust} +% \changes{v1.2g}{2017/05/04}{Use \cs{setlength}, so that +% calc extensions apply} +% \changes{v1.2h}{2017/07/21}{表と周囲との揃え位置をさらに修正} +% \changes{v1.2i}{2018/09/09}{Made caption an error outside a float: latex/2815 +% (sync with ltfloat 1999/04/19 v1.1u)} +% \changes{v1.2i}{2018/09/09}{縦数式ディレクションの連数字} +% \changes{v1.2i}{2018/09/09}{Moved the code associated with +% \cs{@mkpream} into the group provided by the box, +% for robustness (latex/2183) +% (sync with lttab.dtx 1996/10/21 v1.1i)} +% \changes{v1.2i}{2018/09/09}{Use \cs{set@typeset@protect} +% (sync with lttab.dtx 1996/10/21 v1.1i)} +% \changes{v1.2i}{2018/09/09}{Check for hmode to see if something +% went wrong during parsing (pr/2884) +% (sync with lttab.dtx 1998/11/13 v1.1m)} +% \changes{v1.2i}{2018/09/09}{安全のため、\cs{DeclareLayoutCaption}で +% 定義する内部命令を\cs{...@layoutcaption}から +% \cs{...@layoutc@ption}へ変更} +% \changes{v1.2j}{2018/09/20}{Change \cs{@stabular} to \cs{p@stabular}, +% to avoid conflict with \textsf{stabular} package} +% \changes{v1.2k}{2018/10/07}{キャプションのデフォルトの組方向をyからnへ +% 変更 (forum:2506, issue~76)} +% \changes{v1.2k}{2018/10/07}{キャプションの組み方向が基本組の組み方向と +% 直交する場合に、深さを忘れていたバグ修正 (forum:2506, issue~76)} +% \fi +% +% \iffalse +\NeedsTeXFormat{pLaTeX2e} +%<*driver> +\ProvidesFile{plext.dtx} +% +%\ProvidesPackage{plext} + [2018/10/07 v1.2k pLaTeX package file (community edition)] +%<*driver> +\documentclass{jltxdoc} +\usepackage{plext} +\GetFileInfo{plext.dtx} +\title{p\LaTeXe{}拡張パッケージ\space\fileversion} +\author{Ken Nakano} +\date{作成日:\filedate} +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% +% \section{概要}\label{plext:intro} +% このパッケージは、以下の項目に関する機能を拡張するものです。 +% +% \begin{itemize} +% \item 表組環境 +% \item フロートとキャプションの出力位置 +% \item 段落ボックス環境 +% \item 作図環境 +% \item 連数字、漢数字、傍点、下線 +% \item 参照番号 +% \end{itemize} +% +% このパッケージは縦組用クラス(tarticle, tbook, treport)のときには、 +% 自動的に読み込まれます。横組用クラス(jarticle, jbook, jreport)で +% 拡張機能を使いたい場合は、文書ファイルのプリアンブルに以下の一行を +% 記述してください。 +% +%\begin{verbatim} +% \usepackage{plext} +%\end{verbatim} +% +% \section{組方向オプションについて} +% つぎの環境やコマンドは、組方向オプションが追加され、拡張されています。 +% +% \begin{itemize} +% \item tabular環境、array環境 +% \item |\layoutcaption|コマンド +% \item minipage環境、|\parbox|コマンド、|\pbox|コマンド +% \item picture環境 +% \end{itemize} +% +% 組方向オプションは、コマンド名や環境の後ろで|<|と|>|で囲って、 +% ``y'', ``t'', ``z''のいずれかを指定します。 +% それぞれのオプションの意味はつぎのとおりです。 +% デフォルトの組み方向は、横組のときは``y''、縦組のときは``t''です。 +% +% \medskip +% \DeleteShortVerb{\|} +% \begin{center} +% \begin{tabular}{c|l} +% \emph{オプション} & \emph{意味}\\\hline +% \texttt{y}& 横組で出力(横組モードでは何もしない)\\ +% \texttt{t}& 縦組で出力(縦組モードでは何もしない)\\ +% \texttt{z}& 90度回転して出力(横組モードでは何もしない)\\ +% \end{tabular} +% \end{center} +% \MakeShortVerb{\|} +% +% 組方向オプションを用いたサンプルを図\ref{fig:diroption}に示します。 +% 左から、``y'', ``t'', ``z''オプションを指定してあります。 +% +% \begin{figure}[htb] +% \begin{small} +% \begin{tsample}{10zw} +% \vfil +% \parbox{10zw}{たとえば、これはいったい何、いったいどうして、 +% などと思えるようなことが世の中にはたくさんあります!}\par +% \vfil +% \parbox{10zw}{たとえば、これはいったい何、いったいどうして、 +% などと思えるようなことが世の中にはたくさんあります?}\par +% \vfil +% \parbox{10zw}{たとえば、これはいったい何、いったいどうして、 +% などと思えるようなことが世の中にはたくさんあります。} +% \vfil +% \end{tsample} +% \end{small} +% \caption{組方向オプションの使用例\label{fig:diroption}} +% \end{figure} +% +% +% \section{コード} +% +% \begin{macro}{\if@rotsw} +% このスイッチは、縦組モードで90度回転させるかどうかを示すのに使います。 +% \begin{macrocode} +%<*package> +\newif\if@rotsw +% \end{macrocode} +% \end{macro} +% +% +% \subsection{表組環境} +% tabular環境とarray環境は、組方向を指定するオプションを追加しました。 +% これらのコマンドは、\file{lttab.dtx}で定義されています。 +% +% \begin{macro}{\array} +% \begin{macro}{\tabular} +% \begin{macro}{\tabular*} +% array環境とtabular環境を開始するコマンドです。 +% tabular環境にはアスタリスク形式があります。 +% \begin{macrocode} +\def\array{\let\@acol\@arrayacol \let\@classz\@arrayclassz + \let\@classiv\@arrayclassiv + \let\\\@arraycr\let\@halignto\@empty\X@tabarray} +% +\def\tabular{\let\@halignto\@empty\X@tabular} +\@namedef{tabular*}{\@ifnextchar<%> + {\p@stabular}{\p@stabular}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\X@tabarray} +% \begin{macro}{\X@tabular} +% 組方向オプションを調べます。 +% \changes{v1.1c}{1995/08/11}{\cs{tabarray}のタイプミス修正} +% \changes{v1.1d}{1995/11/10}{\cs{@tabarray} to \cs{p@tabarray}} +% \changes{v1.1d}{1995/11/10}{\cs{@tabular} to \cs{p@tabular}} +% \begin{macrocode} +\def\X@tabarray{\@ifnextchar<%> + {\p@tabarray}{\p@tabarray}} +\def\X@tabular{\@ifnextchar<%> + {\p@tabular}{\p@tabular}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\p@stabular} +% \begin{macro}{\p@tabular} +% アスタリスク形式の場合は、組方向オプションの後ろに幅を指定します。 +% \changes{v1.1d}{1995/11/10}{\cs{@tabular} to \cs{p@tabular}} +% \changes{v1.2a}{2016/08/20}{tabular環境前の余分な\cs{xkanjiskip}を削除} +% \changes{v1.2c}{2016/11/19}{Use \cs{setlength}, so that +% calc extensions apply (sync with lttab.dtx v1.1j)} +% \changes{v1.2j}{2018/09/20}{Change \cs{@stabular} to \cs{p@stabular}, +% to avoid conflict with \textsf{stabular} package} +% \begin{macrocode} +\def\p@stabular<#1>#2{% + \setlength\dimen@{#2}% + \edef\@halignto{to\the\dimen@}\p@tabular<#1>} +\def\p@tabular<#1>{\leavevmode \null\hbox \bgroup $\let\@acol\@tabacol + \let\@classz\@tabclassz + \let\@classiv\@tabclassiv \let\\\@tabularcr\p@tabarray<#1>} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\p@tabarray} +% 位置オプションを調べます。 +% \changes{v1.1d}{1995/11/10}{\cs{@tabarray} to \cs{p@tabarray}} +% \begin{macrocode} +\def\p@tabarray<#1>{\m@th\@ifnextchar[%] + {\p@array<#1>}{\p@array<#1>[c]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\p@array} +% tabular環境とarray環境の内部形式です。 +% \changes{v1.1c}{1995/09/11}{Add \cs{adjustbaseline}.} +% \changes{v1.1d}{1995/11/10}{\cs{@array} to \cs{p@array}} +% \changes{v1.2a}{2016/08/20}{横組で\texttt{}を指定した場合に +% \cs{@arstrutbox}を余計に\cs{hbox}に入れていたのを修正} +% \changes{v1.2i}{2018/09/09}{Moved the code associated with +% \cs{@mkpream} into the group provided by the box, +% for robustness (latex/2183) +% (sync with lttab.dtx 1996/10/21 v1.1i)} +% \begin{macrocode} +\def\p@array<#1>[#2]#3{% + \fork@array@option<#1>[#2]\@begin@alignbox + \bgroup\box@dir\adjustbaseline + \setbox\@arstrutbox\hbox{% + \iftdir + \if #1y\relax\yoko + \vrule\@height\arraystretch\ht\strutbox + \@depth\arraystretch\dp\strutbox \@width\z@ + \else\if #1z\relax\@rotswtrue + \vrule\@height\arraystretch\ht\zstrutbox + \@depth\arraystretch\dp\zstrutbox \@width\z@ + \else + \vrule\@height\arraystretch\ht\tstrutbox + \@depth\arraystretch\dp\tstrutbox \@width\z@ + \fi\fi + \else + \if #1t\relax\tate + \vrule\@height\arraystretch\ht\tstrutbox + \@depth\arraystretch\dp\tstrutbox \@width\z@ + \else + \vrule\@height\arraystretch\ht\strutbox + \@depth\arraystretch\dp\strutbox \@width\z@ + \fi + \fi}% + \@mkpream{#3}\edef\@preamble{\ialign \noexpand\@halignto + \bgroup \tabskip\z@skip \@arstrut \@preamble \tabskip\z@skip \cr}% + \let\@startpbox\@@startpbox \let\@endpbox\@@endpbox + \let\tabularnewline\\% +% \end{macrocode} +% \changes{v1.2i}{2018/09/09}{Use \cs{set@typeset@protect} +% (sync with lttab.dtx 1996/10/21 v1.1i)} +% \begin{macrocode} + \let\par\@empty + \let\@sharp##% + \set@typeset@protect + \lineskip\z@skip\baselineskip\z@skip +% \end{macrocode} +% \changes{v1.2i}{2018/09/09}{Check for hmode to see if something +% went wrong during parsing (pr/2884) +% (sync with lttab.dtx 1998/11/13 v1.1m)} +% \begin{macrocode} + \ifhmode \@preamerr\z@ \@@par\fi + \@preamble} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\endarray} +% \begin{macro}{\endtabular} +% array環境とtabular環境の終了コマンドです。 +% |\@end@alignbox|は|\p@array|から呼び出される|\fork@array@option|によって +% 設定されます。 +% \changes{v1.2a}{2016/08/20}{tabular環境後の余分な\cs{xkanjiskip}を削除} +% \begin{macrocode} +\def\endarray{\crcr\egroup\egroup\@end@alignbox} +\def\endtabular{\crcr\egroup\egroup\@end@alignbox $\egroup\null} +\expandafter \let \csname endtabular*\endcsname = \endtabular +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\fork@array@option} +% array環境とtabular環境で与えられた +% 第一引数と第二引数の組合せの分岐を行ないます。 +% +% コミュニティ版では、アスキー版で不自然だった表組(array環境およびtabular環境)と +% 周囲の本文との揃え位置を修正し、以下のように設計しました。 +% \begin{itemize} +% \item 周囲の組方向が横組かつ組方向が||, ||指定の場合 +% \begin{itemize} +% \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置) +% \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) +% \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置) +% \end{itemize} +% \item 周囲の組方向が横組かつ組方向が||指定の場合 +% \begin{itemize} +% \item |[t]|指定のとき\\表組の上端が周囲の和文ベースラインと一致 +% \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) +% \item |[b]|指定のとき\\表組の下端が周囲の和文ベースラインと一致 +% \end{itemize} +% \item 周囲の組方向が縦組かつ組方向が||指定の場合 +% \begin{itemize} +% \item |[t]|指定のとき\\表組の上端が周囲の和文ベースラインと一致 +% \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) +% \item |[b]|指定のとき\\表組の下端が周囲の和文ベースラインと一致 +% \end{itemize} +% \item 周囲の組方向が縦組かつ組方向が||指定の場合 +% \begin{itemize} +% \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置) +% \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) +% \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致(罫線の場合は和文ベースラインの位置) +% \end{itemize} +% \item 周囲の組方向が縦組かつ組方向が||指定の場合 +% \begin{itemize} +% \item |[t]|指定のとき\\一行目の欧文ベースラインが周囲のそれと一致 +% \item |[c]|指定のとき\\表組の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) +% \item |[b]|指定のとき\\最終行の欧文ベースラインが周囲のそれと一致 +% \end{itemize} +% \end{itemize} +% \changes{v1.2f}{2017/03/28}{表と周囲との揃え位置を修正} +% \changes{v1.2h}{2017/07/21}{表と周囲との揃え位置をさらに修正} +% \begin{macrocode} +\def\fork@array@option<#1>[#2]{% +\@rotswfalse +% \end{macrocode} +% 縦組モードのとき: +% \begin{macrocode} +\iftdir +\if #1y\relax\let\box@dir\yoko + \if #2t\relax + \def\@begin@alignbox{% + \@tempdima=\tbaselineshift + \advance\@tempdima-\ybaselineshift + \raise\@tempdima\vtop\bgroup\kern\z@\vtop}% + \let\@end@alignbox\egroup + \else\if #2b\relax + \def\@begin@alignbox{% + \@tempdima=\tbaselineshift + \advance\@tempdima-\ybaselineshift + \raise\@tempdima\vbox\bgroup\vbox}% + \def\@end@alignbox{\kern\z@\egroup}% + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi +\else\if #1z\relax\let\box@dir\relax\@rotswtrue + \if #2t\relax + \def\@begin@alignbox{% + \@tempdima=\tbaselineshift + \advance\@tempdima-\ybaselineshift + \advance\@tempdima\ht\tstrutbox + \raise\arraystretch\@tempdima\vtop\bgroup\kern\z@\vtop}% + \let\@end@alignbox\egroup + \else\if #2b\relax + \def\@begin@alignbox{% + \@tempdima=\tbaselineshift + \advance\@tempdima-\ybaselineshift + \advance\@tempdima-\dp\tstrutbox + \raise\arraystretch\@tempdima\vbox\bgroup\vbox}% + \def\@end@alignbox{\kern\z@\egroup}% + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi +\else\let\box@dir\tate + \if #2t\relax + \let\@begin@alignbox\vtop + \let\@end@alignbox\relax + \else\if #2b\relax + \let\@begin@alignbox\vbox + \let\@end@alignbox\relax + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi +\fi\fi +% \end{macrocode} +% 横組モードのとき: +% \begin{macrocode} +\else +\if #1t\relax\let\box@dir\tate + \if #2t\relax + \def\@begin@alignbox{\vtop\bgroup\kern\z@\vbox}% + \let\@end@alignbox\egroup + \else\if #2b\relax + \def\@begin@alignbox{\vbox\bgroup\vbox}% + \def\@end@alignbox{\kern\z@\egroup}% + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi +\else\let\box@dir\yoko + \if #2t\relax + \let\@begin@alignbox\vtop + \let\@end@alignbox\relax + \else\if #2b\relax + \let\@begin@alignbox\vbox + \let\@end@alignbox\relax + \else + \let\@begin@alignbox\vcenter + \let\@end@alignbox\relax + \fi\fi +\fi\fi} +% \end{macrocode} +% \end{macro} +% +% +% \subsection{フロートとキャプションの出力位置} +% キャプションとフロートは、 +% 出力位置の指定や大きさの指定などができるように拡張しています。 +% 詳細は、『日本語\LaTeXe{}ブック』を参照してください。 +% +% |\layoutfloat|コマンドで作られるボックスです。 +% \begin{macrocode} +\newbox\@floatbox +% \end{macrocode} +% フロートオブジェクトの幅と高さです。 +% \begin{macrocode} +\newdimen\floatwidth +\newdimen\floatheight +% \end{macrocode} +% フロートオブジェクトのまわりに引かれる罫線の太さです。 +% \begin{macrocode} +\newdimen\floatruletick \floatruletick=0.4pt +% \end{macrocode} +% フロートオブジェクトとキャプションの間のアキです。 +% \begin{macrocode} +\newdimen\captionfloatsep \captionfloatsep=10pt +% \end{macrocode} +% |\caption@dir|には、キャプションを組む方向を示すオプションが格納されます。 +% |\captiondir|は|\caption@dir|の値と現在の組み方向によって、 +% |\yoko|, |\tate|, |\relax|のいずれかに設定されます。 +% \begin{macrocode} +\def\caption@dir{Z} +\let\captiondir\relax +% \end{macrocode} +% キャプションの幅です。 +% \begin{macrocode} +\newdimen\captionwidth \captionwidth\z@ +% \end{macrocode} +% キャプションを付ける位置を指定します。 +% \begin{macrocode} +\def\caption@posa{Z} +\def\caption@posb{Z} +% \end{macrocode} +% 組み立てられたキャプションが格納されるボックスです。 +% \begin{macrocode} +\newbox\@captionbox +% \end{macrocode} +% キャプションに使われる文字です。 +% \begin{macrocode} +\def\captionfontsetup{\normalfont\normalsize} +% \end{macrocode} +% +% \begin{macro}{\layoutfloat} +% \begin{macro}{\X@layoutfloat} +% \begin{macro}{\@layoutfloat} +% |\layoutfloat|は図表類の大きさと位置を指定するのに使います。 +% 大きさを省略するか、負の値を指定すると、 +% そのオブジェクトの自然な長さになります。このときは、罫が引かれません。 +% 正の大きさを指定すると、|\floatruletick|の太さの罫で囲まれます。 +% +% 位置指定を省略した場合、中央揃えになるようにしています。 +% \begin{macrocode} +\def\layoutfloat{\@ifnextchar(%) + {\X@layoutfloat}{\X@layoutfloat(-5\p@,-5\p@)}} +% +\def\X@layoutfloat(#1,#2){\@ifnextchar[%] + {\@layoutfloat(#1,#2)}{\@layoutfloat(#1,#2)[c]}} +% +\long\def\@layoutfloat(#1,#2)[#3]#4{% + \setbox\z@\hbox{#4}% + \floatwidth=#1 \floatheight=#2 \edef\float@pos{#3}% + \ifdim\floatwidth<\z@ + \floatwidth\wd\z@\floatruletick\z@ + \fi + \ifdim\floatheight<\z@ + \floatheight\ht\z@\advance\floatheight\dp\z@\relax + \floatruletick\z@ + \fi + \setbox\@floatbox\vbox to\floatheight{\offinterlineskip + \hrule width\floatwidth height\floatruletick depth\z@ + \vss\hbox to\floatwidth{% + \vrule width\floatruletick height\floatheight depth\z@ + \hss\vbox to\floatheight{\hsize\floatwidth\vss#4\vss}\hss + \vrule width\floatruletick height\floatheight depth\z@ + }\hrule width\floatwidth height\floatruletick depth\z@}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\DeclareLayoutCaption} +% |\DeclareLayoutCaption|コマンドは、キャプションの組方向、付ける位置や幅の +% デフォルトをフロートのタイプごとに設定することができます。 +% このコマンドでデフォルト値が設定されていないと、 +% |\pcaption|コマンドでエラーが発せられます。 +% このコマンドはプリアンブルでのみ、使用できます。 +% +% |\DeclareLayoutCaption|\meta{type}^^A +% |<|\meta{dir}|>(|\meta{width}|)[|\meta{pos1}\meta{pos2}|]| +% +% コマンド引数を省略することはできません。 +% \meta{dir}には、`|y|', `|t|', `|z|', `|n|'のいずれかを指定します。 +% `|n|'と指定をすると、本文の組み方向と同じ方向でキャプションが組まれます。 +% これがデフォルトです。(補足:2018/09/20 v1.2jまでは、この説明に反して +% 実際のコードは`|y|'がデフォルトになっており、 +% 「日本語\LaTeXe{}ブック」にも`|y|'と書かれていましたが、 +% 後述の★のバグ修正に合わせ、2018/10/07 v1.2kで`|n|'に直しました。) +% +% \meta{width}には、キャプションを折り返す長さを指定します。 +% `|(12zw)|'と指定をすると、漢字12文字分の長さで折り返されます。 +% デフォルトは|(.8\linewidth)|です。 +% ^^A (補足:2018/09/20 v1.2jまでは、ここの説明文だけ +% ^^A `|(\floatwidth)|'がデフォルトと書かれていましたが、 +% ^^A 実際のコード及び「日本語\LaTeXe{}ブック」に合わせました。) +% なお、キャプションの幅をフロートオブジェクトの幅に合わせる場合は +% `|(\floatwidth)|'と指定し、高さに合わせる場合は`|(\floatheight)|'と +% 指定します。 +% +% \meta{pos1}と\meta{pos2}には、キャプションを出力する位置を指定します。 +% \meta{pos1}は、`|c|', `|t|', `|b|'のいずれかです。 +% \meta{pos2}は、`|u|', `|d|', `|l|', `|r|'のいずれかです。 +% デフォルトは、|figure|タイプが`|cd|'、|table|タイプは`|cu|'です。 +% \changes{v1.2i}{2018/09/09}{安全のため、\cs{DeclareLayoutCaption}で +% 定義する内部命令を\cs{...@layoutcaption}から +% \cs{...@layoutc@ption}へ変更} +% \begin{macrocode} +\def\DeclareLayoutCaption#1<#2>(#3)[#4#5]{% + \expandafter + \ifx\csname #1@layoutc@ption\endcsname\relax \else + \@latex@info{Redeclaring capiton layout setting of '#1'}% + \fi + \expandafter + \gdef\csname #1@layoutc@ption\endcsname{% + \if Z\caption@dir\def\caption@dir{#2}\fi + \ifdim\captionwidth=\z@ \captionwidth=#3\relax\fi + \if Z\caption@posa\def\caption@posa{#4}\fi + \if Z\caption@posb\def\caption@posb{#5}\fi}} +\@onlypreamble\DeclareLayoutCaption +% \end{macrocode} +% \changes{v1.0h}{1996/03/13}{キャプション出力位置の初期値を設定} +% \changes{v1.2k}{2018/10/07}{キャプションのデフォルトの組方向をyからnへ +% 変更 (forum:2506, issue~76)} +% \begin{macrocode} +\DeclareLayoutCaption{figure}(.8\linewidth)[cd] +\DeclareLayoutCaption{table}(.8\linewidth)[cu] +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\layoutcaption} +% \begin{macro}{\X@layoutcaption} +% \begin{macro}{\@ilayoutcaption} +% \begin{macro}{\@iilayoutcaption} +% |\DeclareLayoutCaption|コマンドで設定をした、デフォルト値とは異なる設定で +% 組みたい場合は、|\layoutcaption|コマンドを使用します。 +% +% |\layoutcaption<|\meta{dir}|>(|\meta{width}|)[|\meta{pos}|]| +% +% なお、|\layoutcaption|に組み方向オプションを付けましたので、 +% |\captiondir|で組み方向を指定する必要はありません。 +% また、|\captiondir|で指定をしても、その値は無視されます。 +% \begin{macrocode} +\def\layoutcaption{\def\caption@dir{Z}\captionwidth\z@ + \def\caption@posa{Z}\def\caption@posb{Z}% + \@ifnextchar<\X@layoutcaption{% + \@ifnextchar(\@ilayoutcaption{% + \@ifnextchar[\@iilayoutcaption\relax}}} +% +\def\X@layoutcaption<#1>{\def\caption@dir{#1}% + \@ifnextchar(\@ilayoutcaption{% + \@ifnextchar[\@iilayoutcaption\relax}} +% +\def\@ilayoutcaption(#1){\setlength\captionwidth{#1}% + \@ifnextchar[{\@iilayoutcaption}{\relax}} +% +\def\@iilayoutcaption[#1#2]{% + \def\caption@posa{#1}\def\caption@posb{#2}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\pcaption} +% \begin{macro}{\@pcaption} +% キャプションを図表類の天地左右の指定箇所に付けるには|\pcaption|コマンドで +% 指定をします。位置の指定は|\layoutcaption|コマンドで行ないます。 +% |\layoutcaption|コマンドが省略された場合は、|\DeclareLayoutCaption|コマンド +% で設定されているデフォルト値が使われます。 +% \changes{v1.2i}{2018/09/09}{Made caption an error outside a float: latex/2815 +% (sync with ltfloat 1999/04/19 v1.1u)} +% \begin{macrocode} +\def\pcaption{% + \ifx\@captype\@undefined + \@latex@error{\noexpand\pcaption outside float}\@ehd + \expandafter\@gobble + \else + \refstepcounter\@captype + \expandafter\@firstofone + \fi + {\@dblarg{\@pcaption\@captype}}% +} +% +\long\def\@pcaption#1[#2]#3{% + \addcontentsline{\csname ext@#1\endcsname}{#1}{% + \protect\numberline{\csname the#1\endcsname}{\ignorespaces#2}}% + \ifvoid\@floatbox + \@latex@error{Use \noexpand\pcaption with `\string\layoutfloat'}\@eha + \fi + \make@pcaptionbox{#3}% + \@pboxswfalse + \setbox\@tempboxa\vbox{\hbox to\hsize{\if l\float@pos\else\hss\fi + \if l\caption@posb\box\@captionbox\kern\captionfloatsep\fi + \if t\caption@posa\vtop + \else\if b\caption@posa\vbox + \else\@pboxswtrue $\vcenter \fi\fi + {\if u\caption@posb\box\@captionbox\kern\captionfloatsep\fi + \unvbox\@floatbox + \if d\caption@posb\kern\captionfloatsep\box\@captionbox\fi}% + \if@pboxsw \m@th$\fi + \if r\caption@posb\kern\captionfloatsep\box\@captionbox\fi + \if r\float@pos\else\hss\fi}}% + \par\vskip.25\baselineskip + \box\@tempboxa} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\make@pcaptionbox} +% キャプションを組み立て、|\@captionbox|を作成します。 +% \begin{macrocode} +\def\make@pcaptionbox#1{% +% \end{macrocode} +% まず、デフォルトの設定がされているかを確認します。 +% 設定されていない場合は、警告メッセージを出力し、 +% 現在の組モードでのデフォルト値を使用します。 +% 設定されていれば、そのデフォルト値にします。 +% +% \changes{v1.1h}{1996/03/13}{typo: \cs{@latex@warning}.} +% \begin{macrocode} + \expandafter + \ifx\csname\@captype @layoutc@ption\endcsname\relax + \@latex@warning{Default caption layout of `\@captype' unknown}% + \def\caption@dir{Z}\captionwidth\z@ + \def\caption@posa{Z}\def\caption@posb{Z}% + \else + \csname \@captype @layoutc@ption\endcsname + \fi +% \end{macrocode} +% 次に、組み方向を設定します。 +% 基本組の組み方向とキャプションの組み方向を変える場合には、 +% |\@tempswa|を真とします。文字を回転させるときは|\@rotsw|を真にします。 +% \begin{macrocode} + \@rotswfalse \@tempswafalse + \iftdir\if y\caption@dir \let\captiondir\yoko \@tempswatrue + \else\if z\caption@dir \let\captiondir\relax \@rotswtrue + \else\let\captiondir\tate\fi\fi + \else\if t\caption@dir\let\captiondir\tate \@tempswatrue + \else\let\captiondir\yoko\fi + \fi +% \end{macrocode} +% キャプションを組み立てる前に、まず、キャプション文字列がどの程度の長さを +% 持っているのかを確認するために、|\hbox|に入れます。 +% \begin{macrocode} + \setbox0\hbox{\if@rotsw $\fi\hbox{\captiondir + \captionfontsetup\parindent\z@\inhibitglue + \csname fnum@\@captype\endcsname\char\euc"A1A1\relax#1}% + \if@rotsw \m@th$\fi}% +% \end{macrocode} +% キャプションの幅に合わせるため、再び、ボックスを組み立てます。 +% +% キャプションを折り返さなくてもよい場合、|\@tempdima|をキャプションの長さに +% します。ただし、キャプションの組み方向が基本組の組み方向と異なる場合 +% (|\@tempswa|が真)は、ボックス0の幅ではなく、高さに設定をします +% (p\TeX{}では同じボックスでも、組方向によって |\wd| と |\ht|+|\wd| の +% 返す寸法が異なることに注意)。 +% |\captionwidth|の値が、キャプションの幅よりも長い場合、 +% 折り返さなくてはなりませんので、|\@tempdima|を|\captionwidth|にします。 +% +% \noindent\emph{日本語\TeX{}開発コミュニティによる修正}: +% 2018/09/20 v1.2jまでは、キャプションの組方向が基本組の組み方向と +% 直交する場合に深さを考慮するのを忘れていたために、 +% 本来は折り返さずに済むはずの短いキャプションが、必ず折り返されて +% しまうというバグ(★)がありました。2018/10/07 v1.2kでこのバグを +% 修正したため、組版結果が大きく変わる場合があります。 +% \changes{v1.2k}{2018/10/07}{キャプションの組み方向が基本組の組み方向と +% 直交する場合に、深さを忘れていたバグ修正 (forum:2506, issue~76)} +% \begin{macrocode} + \if@tempswa \@tempdima\ht0 \advance\@tempdima\dp0 + \else \@tempdima\wd0 \fi + \ifdim\@tempdima>\captionwidth \@tempdima\captionwidth \fi + \@pboxswfalse + \setbox0\hbox{\if@rotsw $\fi + \if u\caption@posb\vbox + \else\if d\caption@posb\vbox + \else\if t\caption@posa\vtop + \else\if b\caption@posa\vbox + \else\ifmmode\vcenter\else\@pboxswtrue $\vcenter\fi + \fi\fi\fi\fi + {\hsize\@tempdima\kern\z@ + \vbox{\captiondir\hsize\@tempdima + \captionfontsetup\parindent\z@\inhibitglue + \csname fnum@\@captype\endcsname\char\euc"A1A1\relax#1}\kern\z@ + }\if@pboxsw \m@th$\fi \if@rotsw \m@th$\fi}% +% \end{macrocode} +% 最後に|\@captionbox|を組み立てます。 +% +% 位置2オプションが`|u|'か`|d|'の場合、 +% このボックスの幅をフロートオブジェクトの幅と同じ長さにし、 +% 位置1オプションでの揃えに組み立てます。 +% +% 位置2オプションが`|l|'か`|r|'の場合は、キャプションの幅です。 +% このときの位置1オプションの揃えは、この前の段階で準備をしておき、 +% |\@pcaption|で最終的にフロートオブジェクトと組み合わせるときになされます。 +% \begin{macrocode} + \let\to@captionboxwidth\relax + \if l\caption@posb \else\if r\caption@posb\else + \def\to@captionboxwidth{to\floatwidth}\fi\fi + \setbox\@captionbox\hbox\to@captionboxwidth{% + \if t\caption@posa\else\hss\fi + \unhbox0\relax + \if b\caption@posa\else\hss\fi}} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{段落ボックス環境} +% minipage環境と|\parbox|コマンドも、tabular環境と同じように、 +% 組方向を指定するオプションを追加してあります。 +% これらのコマンドは、\file{ltboxes.dtx}で定義されています。 +% +% |\parbox|コマンドは幅だけでなく高さも指定できるようになっています。 +% 新しい|\parbox|コマンドについての詳細は、\file{usrguide.tex}を参照 +% してください。 +% +% \subsubsection*{minipage環境} +% +% \begin{macro}{\minipage} +% 組方向オプションを調べます。 +% \begin{macrocode} +\def\minipage{\@ifnextchar<%> + {\X@minipage}{\X@minipage}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\X@minipage} +% 位置オプションを調べます。 +% \changes{v1.2c}{2016/11/19}{Changed \cs{@empty} to \cs{relax} as +% flag for natural width: pr/2975 (sync with ltboxes.dtx v1.1f)} +% \begin{macrocode} +\def\X@minipage<#1>{\@ifnextchar[%] + {\@iminipage<#1>}{\@iiiminipage<#1>{c}\relax[s]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iminipage} +% 高さオプションを調べます。 +% \changes{v1.2c}{2016/11/19}{Changed \cs{@empty} to \cs{relax} as +% flag for natural width: pr/2975 (sync with ltboxes.dtx v1.1f)} +% \begin{macrocode} +\def\@iminipage<#1>[#2]{\@ifnextchar[%] + {\@iiminipage<#1>{#2}}{\@iiiminipage<#1>{#2}\relax[s]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iiminipage} +% 内部位置オプションを調べます。 +% \begin{macrocode} +\def\@iiminipage<#1>#2[#3]{\@ifnextchar[%] + {\@iiiminipage<#1>{#2}{#3}}{\@iiiminipage<#1>{#2}{#3}[#2]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iiiminipage} +% minipage環境の内部形式です。 +% \changes{v1.1g}{1996/01/12}{\break Grouping \cs{@iiiminipage}} +% \cs{leavevmode}の後の\cs{bgroup}は、 +% 回転オプションが指定されたときのフラグ|\if@rotsw|が、このマクロの内部だけ +% で有効になるようにするためです。この括弧は、\cs{endminipage}コマンドで +% 閉じます。 +% \begin{macrocode} +\def\@iiiminipage<#1>#2#3[#4]#5{% + \leavevmode\bgroup + \setlength\@tempdima{#5}% + \def\@mpargs{<#1>{#2}{#3}[#4]{#5}}% + \@rotswfalse + \iftdir + \if #1y\relax\let\box@dir\yoko + \else\if #1z\relax\@rotswtrue \let\box@dir\relax + \else\let\box@dir\tate + \fi\fi + \else + \if #1t\relax\let\box@dir\tate + \else\let\box@dir\yoko + \fi + \fi + \setbox\@tempboxa\vbox\bgroup\box@dir + \if@rotsw \hsize\@tempdima\hbox\bgroup$\vbox\bgroup\fi +% \end{macrocode} +% \changes{v1.1c}{1995/09/11}{Add \cs{adjustbaseline}.} +% \changes{v1.2c}{2016/11/19}{Use \cs{@setminpage} +% (sync with ltboxes v1.1a)} +% \begin{macrocode} + \adjustbaseline + \color@begingroup + \hsize\@tempdima + \textwidth\hsize \columnwidth\hsize + \@parboxrestore + \def\@mpfn{mpfootnote}\def\thempfn{\thempfootnote}% + \c@mpfootnote\z@ + \let\@footnotetext\@mpfootnotetext + \let\@listdepth\@mplistdepth \@mplistdepth\z@ + \@minipagerestore + \@setminipage} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\endminipage} +% minipage環境の終了コマンドです。 +% \changes{v1.2c}{2016/11/19}{put \cs{global} into definition +% of \cs{@minipagefalse} (sync with ltboxes v1.0z)} +% \begin{macrocode} +\def\endminipage{% + \par + \unskip + \ifvoid\@mpfootins\else + \vskip\skip\@mpfootins + \normalcolor + \footnoterule + \unvbox\@mpfootins + \fi + \@minipagefalse %% added 24 May 89 + \color@endgroup + \if@rotsw \egroup\m@th$\egroup\fi +% \end{macrocode} +% \cs{@iiiminipage}で開始したグループを閉じるための\cs{egroup}です。 +% \begin{macrocode} + \egroup + \expandafter\@iiiparbox\@mpargs{\unvbox\@tempboxa}\egroup} +% \end{macrocode} +% \end{macro} +% +% \subsubsection*{\cs{parbox}コマンド} +% +% \begin{macro}{\parbox} +% 組方向オプションを調べます。 +% \changes{v1.2e}{2017/03/02}{Make \cs{parbox} Robust +% (sync with ltboxes 2015/01/08 v1.1h)} +% \begin{macrocode} +\DeclareRobustCommand\parbox{\@ifnextchar<%> + {\X@parbox}{\X@parbox}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\X@parbox} +% 位置オプションを調べます。 +% \changes{v1.2c}{2016/11/19}{Changed \cs{@empty} to \cs{relax} as +% flag for natural width: pr/2975 (sync with ltboxes.dtx v1.1f)} +% \begin{macrocode} +\def\X@parbox<#1>{\@ifnextchar[%] + {\@iparbox<#1>}{\@iiiparbox<#1>{c}\relax[s]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iparbox} +% 高さオプションを調べます。 +% \changes{v1.2c}{2016/11/19}{Changed \cs{@empty} to \cs{relax} as +% flag for natural width: pr/2975 (sync with ltboxes.dtx v1.1f)} +% \begin{macrocode} +\def\@iparbox<#1>[#2]{\@ifnextchar[%] + {\@iiparbox<#1>{#2}}{\@iiiparbox<#1>{#2}\relax[s]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iiparbox} +% 内部位置オプションを調べます。 +% \begin{macrocode} +\def\@iiparbox<#1>#2[#3]{\@ifnextchar[%]% + {\@iiiparbox<#1>{#2}{#3}}{\@iiiparbox<#1>{#2}{#3}[#2]}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@iiiparbox} +% |parbox|の内部形式です。 +% \changes{v1.1c}{1995/09/11}{Add \cs{adjustbaseline}.} +% \changes{v1.1c}{1995/10/24}{\break typo \cs{adjustbaesline}.} +% \changes{v1.1g}{1996/01/12}{\break Grouping \cs{@iiiparbox}} +% minipage環境と同じようにグルーピングをします。 +% この括弧と対になるのは、このマクロの最後の\cs{egroup}です。 +% \changes{v1.2a}{2016/08/20}{\cs{parbox}前後の余分な\cs{xkanjiskip}を削除} +% \changes{v1.2c}{2016/11/19}{Changed \cs{endgraf} to +% \cs{@@par} (sync with ltboxes.dtx v1.0y)} +% \changes{v1.2c}{2016/11/19}{Changed \cs{@empty} to \cs{relax} as +% flag for natural width: pr/2975 (sync with ltboxes.dtx v1.1f)} +% \changes{v1.2c}{2016/11/19}{Ensure \cs{@parboxto} holds the value +% of \cs{@tempdimb} not the register itself (pr/3867) +% (sync with ltboxes.dtx v1.1g)} +% \begin{macrocode} +\long\def\@iiiparbox<#1>#2#3[#4]#5#6{% + \leavevmode\null\bgroup + \setlength\@tempdima{#5}% + \fork@parbox@option<#1>[#2]% +\if@rotsw + \@begin@tempboxa\vbox{\box@dir\hsize\@tempdima + \hbox{$\vbox{\@parboxrestore\adjustbaseline#6\@@par}\m@th$}}% +\else + \@begin@tempboxa\vbox{\box@dir + \hsize\@tempdima\@parboxrestore\adjustbaseline#6\@@par}% +\fi + \ifx\relax#3\relax\else + \setlength\@tempdimb{#3}% + \edef\@parboxto{to\the\@tempdimb}% + \fi + \@begin@parbox\@parboxto{\box@dir\adjustbaseline + \let\hss\vss\let\unhbox\unvbox + \csname bm@#4\endcsname}\@end@parbox + \@end@tempboxa\egroup\null} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\fork@parbox@option} +% |\parbox|で与えられた第一引数と第二引数の組合せの分岐を行ないます。 +% +% コミュニティ版では、アスキー版で不自然だった|\parbox|の箱と +% 周囲の本文との揃え位置を修正し、以下のように設計しました。 +% \begin{itemize} +% \item 周囲の組方向が横組かつ組方向が||, ||指定の場合 +% \begin{itemize} +% \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致 +% \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) +% \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致 +% \end{itemize} +% \item 周囲の組方向が横組かつ組方向が||指定の場合 +% \begin{itemize} +% \item |[t]|指定のとき\\箱の上端が周囲の和文文字の高さと一致 +% \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) +% \item |[b]|指定のとき\\箱の下端が周囲の和文文字の深さと一致 +% \end{itemize} +% \item 周囲の組方向が縦組かつ組方向が||指定の場合 +% \begin{itemize} +% \item |[t]|指定のとき\\箱の上端が周囲の和文文字の高さと一致 +% \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) +% \item |[b]|指定のとき\\箱の下端が周囲の和文文字の深さと一致 +% \end{itemize} +% \item 周囲の組方向が縦組かつ組方向が||指定の場合 +% \begin{itemize} +% \item |[t]|指定のとき\\一行目のベースラインが周囲のそれと一致 +% \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) +% \item |[b]|指定のとき\\最終行のベースラインが周囲のそれと一致 +% \end{itemize} +% \item 周囲の組方向が縦組かつ組方向が||指定の場合 +% \begin{itemize} +% \item |[t]|指定のとき\\箱の上端が周囲の和文文字の高さと一致 +% \item |[c]|指定のとき\\箱の中心が周囲の数式軸を通る(欧文ベースラインシフトの影響下) +% \item |[b]|指定のとき\\箱の下端が周囲の和文文字の深さと一致 +% \end{itemize} +% \end{itemize} +% \changes{v1.2f}{2017/03/28}{段落の箱と周囲との揃え位置を修正} +% \begin{macrocode} +\def\fork@parbox@option<#1>[#2]{% +\@rotswfalse +% \end{macrocode} +% 縦組モードのとき: +% \begin{macrocode} +\iftdir +\if #1y\relax\let\box@dir\yoko + \if #2t\relax + \def\@begin@parbox{\raise\cht\vtop\bgroup\kern\z@\vtop}% + \let\@end@parbox\egroup + \else\if #2b\relax + \def\@begin@parbox{\lower\cdp\vbox\bgroup\vbox}% + \def\@end@parbox{\kern\z@\egroup}% + \else\ifmmode + \let\@begin@parbox\vcenter + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi\fi +\else\if #1z\relax\@rotswtrue \let\box@dir\relax + \if #2t\relax + \def\@begin@parbox{\raise\cht\vtop\bgroup\kern\z@\vtop}% + \let\@end@parbox\egroup + \else\if #2b\relax + \def\@begin@parbox{\lower\cdp\vbox\bgroup\vbox}% + \def\@end@parbox{\kern\z@\egroup}% + \else\ifmmode + \let\@begin@parbox\vcenter + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi\fi +\else\let\box@dir\tate + \if #2t\relax + \let\@begin@parbox\vtop + \let\@end@parbox\relax + \else\if #2b\relax + \let\@begin@parbox\vbox + \let\@end@parbox\relax + \else\ifmmode + \let\@begin@parbox\vcenter + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi\fi +\fi\fi +% \end{macrocode} +% 横組モードのとき: +% \begin{macrocode} +\else +\if #1t\relax\let\box@dir\tate + \if #2t\relax + \def\@begin@parbox{\raise\cht\vtop\bgroup\kern\z@\vtop}% + \let\@end@parbox\egroup + \else\if #2b\relax + \def\@begin@parbox{\lower\cdp\vbox\bgroup\vbox}% + \def\@end@parbox{\kern\z@\egroup}% + \else\ifmmode + \let\@begin@parbox\vcenter + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi\fi +\else\let\box@dir\yoko + \if #2t\relax + \let\@begin@parbox\vtop + \let\@end@parbox\relax + \else\if #2b\relax + \let\@begin@parbox\vbox + \let\@end@parbox\relax + \else\ifmmode + \let\@begin@parbox\vcenter + \let\@end@parbox\relax + \else + \def\@begin@parbox{$\vcenter}% + \def\@end@parbox{\m@th$}% + \fi\fi\fi +\fi\fi} +% \end{macrocode} +% \end{macro} +% +% \subsubsection*{\cs{pbox}コマンド} +% +% |\pbox|は組み方向を指定できるボックスコマンドです。 +% 次のような構文となっています。 +% +% |\pbox<|\meta{dir}|>[|\meta{width}|][|\meta{pos}|]{|\meta{obj}|}| +% +% \begin{macro}{\pbox} +% オプションを調べます。 +% \changes{v1.2g}{2017/05/04}{Make \cs{pbox} Robust} +% \begin{macrocode} +\DeclareRobustCommand\pbox{\leavevmode\@ifnextchar<{\X@makePbox}{\X@makePbox}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\X@makepbox} +% \begin{macro}{\@imakepbox} +% \begin{macrocode} +\def\X@makePbox<#1>{% + \@ifnextchar[{\@imakePbox<#1>}{\@imakePbox<#1>[-5\p@]}} +% +\def\@imakePbox<#1>[#2]{\@ifnextchar[%] + {\@iimakePbox<#1>{#2}}{\@iimakePbox<#1>{#2}[c]}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@iimakePbox} +% |\pbox|の内部形式です。 +% \changes{v1.1i}{2001/05/10}{縦組でzを指定するとエラーになるのを修正。} +% \changes{v1.2g}{2017/05/04}{Use \cs{setlength}, so that +% calc extensions apply} +% \begin{macrocode} +\def\@iimakePbox<#1>#2[#3]#4{% + \bgroup \@rotswfalse \@pboxswfalse + \iftdir + \if #1y\relax\let\box@dir\yoko + \else\if #1z\relax\@rotswtrue \let\box@dir\relax + \else\let\box@dir\tate + \fi\fi + \else + \if #1t\relax\let\box@dir\tate + \else\let\box@dir\yoko + \fi + \fi + \ifmmode\else\if@rotsw\@pboxswtrue\hbox\bgroup$\fi\fi + \setlength{\@tempdima}{#2}% + \ifdim\@tempdima<\z@ \hbox{\box@dir#4}\else + \hb@xt@\@tempdima{\box@dir + \if #3l\relax\else\hss\fi + #4\relax + \if #3r\relax\else\hss\fi}\fi + \if@pboxsw \m@th$\egroup\fi\egroup} +% \end{macrocode} +% \end{macro} +% +% \subsection{作図環境} +% picture環境も、組方向を指定するオプションを追加してあります。 +% なお、これらのコマンドは、\file{ltpictur.dtx}で定義されています。 +% +% \begin{macro}{\picture} +% 組方向オプションを調べます。 +% \begin{macrocode} +\def\picture{\@ifnextchar<%> + {\X@picture}{\X@picture}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\X@picture} +% 図形領域オプションを調べます。 +% \begin{macrocode} +\def\X@picture<#1>(#2,#3){\@ifnextchar(%) + {\@@picture<#1>(#2,#3)}{\@@picture<#1>(#2,#3)(0,0)}} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@@picture} +% picture環境の内部ではベースラインシフトの値をゼロにします。 +% 以前に設定されていた値は、それぞれ保存され、終了時に、その値に戻されます。 +% \begin{macrocode} +\newdimen\save@ybaselineshift +\newdimen\save@tbaselineshift +\newdimen\@picwd +% \end{macrocode} +% |\picture|の内部形式です。3組目の引数は、原点座標です。 +% \begin{macrocode} +\def\@@picture<#1>(#2,#3)(#4,#5){% + \save@ybaselineshift\ybaselineshift + \save@tbaselineshift\tbaselineshift + \iftdir + \if#1y\let\box@dir\yoko + \@picwd=#3\unitlength \@picht=#2\unitlength + \@tempdima=#5\unitlength \@tempdimb=#4\unitlength + \else\let\box@dir\tate + \@picwd=#2\unitlength \@picht=#3\unitlength + \@tempdima=#4\unitlength \@tempdimb=#5\unitlength + \fi + \else + \if#1t\let\box@dir\tate + \@picwd=#3\unitlength \@picht=#2\unitlength + \@tempdima=#5\unitlength \@tempdimb=#4\unitlength + \else\let\box@dir\yoko + \@picwd=#2\unitlength \@picht=#3\unitlength + \@tempdima=#4\unitlength \@tempdimb=#5\unitlength + \fi + \fi + \setbox\@picbox\hbox to\@picwd\bgroup\box@dir + \hskip-\@tempdima\lower\@tempdimb\hbox\bgroup + \ybaselineshift\z@ \tbaselineshift\z@ + \ignorespaces} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\endpicture} +% 図形領域の幅と高さを指定の大きさにしてから、出力をします。 +% そして、最後にベースラインシフトの値を元に戻します。 +% \begin{macrocode} +\def\endpicture{% + \egroup\hss\egroup + \ht\@picbox\@picht \wd\@picbox\@picwd \dp\@picbox\z@ + \mbox{\box\@picbox}% + \ybaselineshift\save@ybaselineshift + \tbaselineshift\save@tbaselineshift} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\put} +% \begin{macro}{\line} +% \begin{macro}{\vector} +% \begin{macro}{\dashbox} +% \begin{macro}{\oval} +% \begin{macro}{\circle} +% picture環境の内部で、フォントサイズ変更コマンドなどが使用された場合、 +% ベースラインシフト量が新たに設定されてしまうため、 +% これらのコマンドがベースラインシフトの影響を受けないように再定義をします。 +% ベースラインシフトを有効にしたい場合は、|\pbox|コマンドを使用してください。 +% \begin{macrocode} +\let\org@put\put +\def\put{\ybaselineshift\z@\tbaselineshift\z@\org@put} +% +\let\org@line\line +\def\line{\ybaselineshift\z@\tbaselineshift\z@\org@line} +% +\let\org@vector\vector +\def\vector{\ybaselineshift\z@\tbaselineshift\z@\org@vector} +% +\let\org@dashbox\dashbox +\def\dashbox{\ybaselineshift\z@\tbaselineshift\z@\org@dashbox} +% +\let\org@oval\oval +\def\oval{\ybaselineshift\z@\tbaselineshift\z@\org@oval} +% +\let\org@circle\circle +\def\circle{\ybaselineshift\z@\tbaselineshift\z@\org@circle} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% +% \subsection{連数字/漢数字/傍点/下線} +% ここでは、連数字、漢数字、傍点、下線について説明をしています。 +% +% 連数字と漢数字、および傍点と下線についての詳細は、 +% 『日本語\LaTeXe{}ブック』を参照してください。 +% なお、傍点に使う文字は\file{pldefs.ltx}で定義されています。 +% +% なお、連数字コマンドは3種類ありましたが、 +% |\rensuji|コマンド一つにまとめました。 +% 新しい連数字コマンドは次の構文となります。 +% +% \medskip +% |\rensuji[|\meta{pos}|]|\meta{横に並べる半角文字} +% +% |\rensuji*[|\meta{pos}|]|\meta{横に並べる半角文字} +% \medskip +% +% アスタリスク形式の場合は、行間を連数字の幅に合わせて広げません。 +% \meta{pos}は、連数字を揃える位置です。 +% `|c|'(中央揃え)、`|r|'(右寄せ)、`|l|'(左寄せ)を指定できます。 +% デフォルトでは、中央に揃えます。 +% +% 次のフラグが真の場合には、連数字の幅に合わせて行間を広げ\emph{ません}。 +% アスタリスク形式の場合に真になります。 +% \begin{macrocode} +\newif\ifnot@advanceline +% \end{macrocode} +% +% |\rensujiskip|は連数字の前後に入るアキです。 +% デフォルトは、現在の文字の幅の4分の1を基準にしています。 +% \begin{macrocode} +\newskip\rensujiskip +\rensujiskip=0.25\chs plus.25zw minus.25zw +% \end{macrocode} +% +% \subsubsection*{連数字} +% +% \begin{macro}{\rensuji} +% \begin{macro}{\@rensuji} +% \begin{macro}{\@@rensuji} +% |\rensuji|は、|*|形式かどうかを調べます。 +% |\@rensuji|は、位置オプションを調べます。 +% |\@@rensuji|が|\rensuji|の内部形式です。 +% \changes{v1.2b}{2016/11/07}{横組で段落の頭に\cs{rensuji}を使える +% ように\cs{leavevmode}を追加して修正} +% \changes{v1.2i}{2018/09/09}{縦数式ディレクションの連数字} +% \begin{macrocode} +\DeclareRobustCommand\rensuji{% + \@ifstar{\not@advancelinetrue\@rensuji}{\@rensuji}} +\def\@rensuji{\@ifnextchar[{\@@rensuji}{\@@rensuji[c]}} +\def\@@rensuji[#1]#2{% + \ifvmode\leavevmode\fi + \iftdir\ifmdir\hbox{#2}\else + \hskip\rensujiskip + \ifnot@advanceline\not@advancelinefalse\else + \setbox\z@\hbox{\yoko#2}% + \@tempdima\ht\z@ \advance\@tempdima\dp\z@ + \if #1c\relax\vrule\@width\z@ \@height.5\@tempdima \@depth.5\@tempdima + \else\if #1r\relax\vrule\@width\z@\@height\z@ \@depth\@tempdima + \else\vrule\@width\z@ \@height\@tempdima \@depth\z@ + \fi\fi + \fi + \if #1c\relax\hbox to1zw{\yoko\hss#2\hss}% + \else\if #1r\relax\vbox{\hbox to1zw{\yoko\hss#2}}% + \else\vtop{\hbox to1zw{\yoko#2\hss}}% + \fi\fi + \hskip\rensujiskip + \fi\else\hbox{#2}\fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Rensuji} +% \begin{macro}{\prensuji} +% \changes{v1.1d}{1995/11/21}{\cs{Rensuji}, \cs{prensuji}を作成} +% |\Rensuji|コマンドと|\prensuji|コマンドは、|\rensuji|コマンドで代用でき +% ます。 +% \begin{macrocode} +\let\Rensuji\rensuji +\let\prensuji\rensuji +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \subsubsection*{漢数字} +% +% \begin{macro}{\Kanji} +% \begin{macro}{\@Kanji} +% \begin{macro}{\kanji} +% |\Kanji|コマンドを定義します。|\Kanji|コマンドは|\Alph|と同じように、 +% カウンタに対してのみ使用することができます。 +% +% |\kanji|コマンドは、後続の半角数字を漢数字にします。 +% |\kanji 1989|のように指定をします。 +% ただし、横組モードのときには、何もしません。 +% つねに漢数字にしたい場合は、|\kansuji|プリミティブを使ってください。 +% +% 後続の数字まで漢数字になってしまうバグを修正しました(Issue~\#33)。 +% \changes{v1.0h}{1996/03/13}{\cs{@Kanji}を追加。英語版と同様にした。} +% \changes{v1.2d}{2017/02/04}{\cs{Kanji}の引数だけでなく後に連続する +% 数字も漢数字になってしまうバグを修正} +% \begin{macrocode} +\def\Kanji#1{\expandafter\@Kanji\csname c@#1\endcsname} +\def\@Kanji#1{\kansuji #1} +\def\kanji{\iftdir\expandafter\kansuji\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsubsection*{傍点} +% +% \begin{macro}{\boutenchar} +% \begin{macro}{\bou} +% |\bou|は、傍点を付けるコマンドです。 +% +% 傍点として出力する文字は|\boutenchar|に指定します。 +% この文字は、いつでも、横組用フォントが使われます。 +% デフォルトは、EUCコード|A1A2|(\hbox{\yoko 、})です。 +% \begin{macrocode} +\def\boutenchar{\char\euc"A1A2} +% \end{macrocode} +% +% \begin{macrocode} +\def\bou#1{\ifvmode\leavevmode\fi\@bou#1\end} +\def\@bou#1{% + \ifx#1\end \let\next=\relax + \else + \iftdir\if@rotsw + \hbox to\z@{\vbox to\z@{\boxmaxdepth\maxdimen + \vss\moveleft-0.2zw\hbox{\boutenchar}\nointerlineskip + \hbox{\char\euc"A1A1}}\hss}\nobreak#1\relax + \else + \hbox to\z@{\vbox to\z@{\boxmaxdepth\maxdimen + \vss\moveleft0.2zw\hbox{\yoko\boutenchar}\nointerlineskip + \hbox{\char\euc"A1A1}}\hss}\nobreak#1\relax + \fi\else + \hbox to\z@{\vbox to\z@{% + \vss\moveleft-0.2zw\hbox{\yoko\boutenchar}\nointerlineskip + \hbox{\char\euc"A1A1}}\hss}\nobreak#1\relax + \fi + \let\next=\@bou + \fi\next} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \subsubsection*{下線} +% +% \begin{macro}{\kasen} +% 下線を引くコマンドです。 +% 横組モードのときは、引数を|\underline|に渡します。 +% 縦組モードでも、回転モードの|\parbox|などで使われたときには、 +% やはり引数を|\underline|に渡します。 +% これ以外の場合は、引数の上に直線を引きます。 +% \begin{macrocode} +\def\kasen#1{% + \ifydir\underline{#1}% + \else\if@rotsw\underline{#1}\else + \setbox\z@\hbox{#1}\leavevmode\raise.7zw + \hbox to\z@{\vrule\@width\wd\z@ \@depth\z@ \@height.4\p@\hss}% + \box\z@ + \fi\fi} +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{参照番号} +% 参照番号の類を連数字で出力するように再定義します。 +% itemize環境などのリスト型のラベルについては、jarticleなどの +% パッケージで定義しています。詳細は、\file{jclasses.dtx}を参照してください。 +% +% \begin{macro}{\@eqnnum} +% \begin{macro}{\@thecounter} +% これらは|\equation|コマンドで作成された数式に付加される番号です。 +% \file{ltmath.dtx}で定義されています。 +% \begin{macrocode} +\def\@eqnnum{{\reset@font\rmfamily \normalcolor + \iftdir\raise.25zh\hbox{\yoko(\theequation)}% + \else (\theequation)\fi}} +\def\@thecounter#1{\noexpand\rensuji{\noexpand\arabic{#1}}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@thmcounter} +% |\newtheorem|コマンドで作成した環境で参照されるラベルです。 +% \file{ltthm.dtx}で定義されています。 +% \begin{macrocode} +\def\@thmcounter#1{\noexpand\rensuji{\noexpand\arabic{#1}}} +% +% \end{macrocode} +% \end{macro} +% +% +% \Finale +\endinput diff --git a/language/japanese/platex/plfmt.ins b/language/japanese/platex/plfmt.ins new file mode 100644 index 0000000000..bd64099ef5 --- /dev/null +++ b/language/japanese/platex/plfmt.ins @@ -0,0 +1,35 @@ +\input docstrip +\keepsilent +\ifToplevel{\askonceonly} +\usedir{tex/platex/base} + +\Msg{*** Generating the pLaTeX files for making the documents ***} + +\preamble + +Copyright (c) 2010 ASCII MEDIA WORKS +Copyright (c) 2016-2018 Japanese TeX Development Community + +This file is part of the pLaTeX2e system (community edition). +------------------------------------------------------------- + +\endpreamble + +\generate{ + \file{platex.ltx}{\from{platex.dtx}{plcore}} + \file{plcore.ltx}{\from{plvers.dtx}{plcore} + \from{plfonts.dtx}{plcore} + \from{plcore.dtx}{plcore} + \from{plvers.dtx}{plfinal}} + \file{kinsoku.tex}{\from{kinsoku.dtx}{plcore}} + \file{pldefs.ltx}{\from{plfonts.dtx}{pldefs,xpt}} + \file{jy1mc.fd}{\from{plfonts.dtx}{JY1mc}} + \file{jy1gt.fd}{\from{plfonts.dtx}{JY1gt}} + \file{jt1mc.fd}{\from{plfonts.dtx}{JT1mc}} + \file{jt1gt.fd}{\from{plfonts.dtx}{JT1gt}} + \file{plext.sty}{\from{plext.dtx}{package}} + \file{ptrace.sty}{\from{plfonts.dtx}{trace}} + \file{pfltrace.sty}{\from{plcore.dtx}{fltrace,trace}} +} + +\endbatchfile diff --git a/language/japanese/platex/plfonts.dtx b/language/japanese/platex/plfonts.dtx new file mode 100644 index 0000000000..78f54e1e6a --- /dev/null +++ b/language/japanese/platex/plfonts.dtx @@ -0,0 +1,2803 @@ +% \iffalse meta-comment +%% File: plfonts.dtx +% +% Copyright 1994-2006 ASCII Corporation. +% Copyright (c) 2010 ASCII MEDIA WORKS +% Copyright (c) 2016-2018 Japanese TeX Development Community +% +% This file is part of the pLaTeX2e system (community edition). +% ------------------------------------------------------------- +% +% \fi +% +% \iffalse +%<*driver> +\ifx\JAPANESEtrue\undefined + \expandafter\newif\csname ifJAPANESE\endcsname + \JAPANESEtrue +\fi +\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} +% +% \fi +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0}{1994/09/16}{first edition} +% \changes{v1.1}{1995/02/21}{\cs{selectfont}アルゴリズム変更} +% \changes{v1.1b}{1995/04/25}{\cs{selectfont}修正} +% \changes{v1.1c}{1995/08/22}{縦横フォント同時切り替え} +% \changes{v1.2}{1995/11/09}{\cs{DeclareFixedFont}の日本語化} +% \changes{v1.3}{1996/03/25}{数式ファミリの定義変更} +% \changes{v1.3a}{1997/01/25}{\LaTeX\ \texttt{!<1996/12/01!>に対応}} +% \changes{v1.3b}{1997/01/28}{\cs{textmc}, \cs{textgt}の動作修正} +% \changes{v1.3c}{1997/04/08}{和文エンコード関連の修正} +% \changes{v1.3d}{1997/06/25}{\cs{em},\cs{emph}で和文を強調書体に} +% \changes{v1.3e}{1997/07/10}{fdファイル名の小文字化が効いていなかったのを修正} +% \changes{v1.3f}{1998/08/10}{\cs{DeclareFixedCommand}を\cs{@onlypreamble}に +% してしまっていたのを修正} +% \changes{v1.3g}{1999/04/05}{plpatch.ltxの内容を反映} +% \changes{v1.3h}{1999/08/09}{\cs{strut}の改善} +% \changes{v1.3i}{2000/07/13}{\cs{text..}コマンドの左側に\cs{xkanjiskip}が +% 入らないのを修正} +% \changes{v1.3j}{2000/10/24}{\cs{adjustbaseline}で余分なアキが入らない +% ようにした} +% \changes{v1.3k}{2001/05/10}{欧文書体の基準を再び`/`から`M'に変更} +% \changes{v1.3l}{2002/04/05}{\cs{adjustbaseline}でフォントの基準値が縦書き +% 以外では設定されないのを修正} +% \changes{v1.3m}{2004/06/14}{\cs{fontfamily}コマンド内部フラグ変更} +% \changes{v1.3n}{2004/08/10}{和文エンコーディングの切り替えを有効化} +% \changes{v1.3o}{2005/01/04}{\cs{fontfamily}中のフラグ修正} +% \changes{v1.3p}{2006/01/04}{\cs{DeclareFontEncoding@}中で +% \cs{LastDeclaredEncodeng}の再定義が抜けていたので追加} +% \changes{v1.4}{2006/06/27}{\cs{reDeclareMathAlphabet}を修正。 +% ありがとう、ymtさん。} +% \changes{v1.5}{2006/11/10}{\cs{reDeclareMathAlphabet}を修正。 +% ありがとう、ymtさん。} +% \changes{v1.6}{2016/02/01}{\LaTeX\ \texttt{!<2015/01/01!>}での\cs{em}の +% 定義変更に対応。\cs{eminnershape}を追加。} +% \changes{v1.6a}{2016/04/01}{ベースライン補正量が0でないときに +% \cs{AA}など一部の合成文字がおかしくなることへの対応。} +% \changes{v1.6b}{2016/04/30}{ptrace.styの冒頭でtracefnt.styを +% \cs{RequirePackageWithOptions}するようにした} +% \changes{v1.6c}{2016/06/06}{v1.6aでの修正で\'e など全てのアクセント付き文字で +% 周囲に\cs{xkanjiskip}が入らなくなっていたのを修正。} +% \changes{v1.6d}{2016/06/19}{アクセント付き文字をさらに修正(forum:1951)} +% \changes{v1.6e}{2016/06/26}{v1.6a以降の修正で全てのアクセント付き文字で +% トラブルが相次いだため、いったんパッチを除去。} +% \changes{v1.6f}{2017/02/20}{ptrace.styのplatexrelease対応} +% \changes{v1.6f}{2017/02/20}{\cs{ystrutbox}を追加} +% \changes{v1.6f}{2017/02/20}{\cs{strutbox}を縦横両対応に} +% \changes{v1.6f}{2017/02/20}{\cs{strutbox}の代わりに\cs{ystrutbox}を使用} +% \changes{v1.6f}{2017/02/20}{\cs{ystrut}を追加} +% \changes{v1.6f}{2017/02/20}{\cs{ystrutbox}を組み立てるように} +% \changes{v1.6g}{2017/03/07}{ベースライン補正量を修正} +% \changes{v1.6h}{2017/08/05}{和文書体の基準を全角空白から「漢」に変更} +% \changes{v1.6h}{2017/08/05}{traceのコードの\texttt{\%}忘れを修正} +% \changes{v1.6i}{2017/09/24}{2010年のp\TeX{}本体の修正により、v1.3iで入れた +% 対処が不要になっていたので削除} +% \changes{v1.6i}{2017/09/24}{\cs{<}が段落頭でも効くようにした} +% \changes{v1.6j}{2017/11/06}{\cs{cy@encoding}と\cs{ct@encoding}を +% 具体的な値ではなく「空」で初期化} +% \changes{v1.6j}{2017/11/06}{縦横のエンコーディングのセット化を +% plcoreからpldefsへ移動} +% \changes{v1.6k}{2017/12/05}{デフォルト設定ファイルの読み込みを +% \file{plcore.ltx}から\file{platex.ltx}へ移動} +% \changes{v1.6l}{2018/02/04}{和文スケール値を明文化} +% \changes{v1.6m}{2018/03/31}{\file{utf8.def}由来のコードを追加} +% \changes{v1.6n}{2018/04/06}{\cs{UseRawInputEncoding}で使われる +% \cs{DeclareFontEncoding@}の保存版も定義 +% (sync with ltfinal.dtx 2018/04/06 v2.1b)} +% \changes{v1.6o}{2018/04/08}{Delay full UTF-8 handling to \cs{everyjob} +% (sync with ltfinal.dtx 2018/04/08 v2.1d)} +% \changes{v1.6p}{2018/04/09}{v1.6oで加えた対策を削除。 +% 参考:plvers.dtx 2018/04/09 v1.1lの\cs{everyjob}} +% \changes{v1.6q}{2018/07/03}{シリーズbがbxと等価になるように宣言} +% \changes{v1.6r}{2018/07/25}{PDFのしおりにアクセント文字が含まれる場合に対応} +% \changes{v1.6r}{2018/07/25}{\cs{[no]fixcompositeaccent}マクロ追加} +% \changes{v1.6r}{2018/07/25}{コード整理} +% \fi +% +% \iffalse +%<*driver> +\NeedsTeXFormat{pLaTeX2e} +% \fi +\ProvidesFile{plfonts.dtx}[2018/07/25 v1.6r pLaTeX New Font Selection Scheme] +% \iffalse +\documentclass{jltxdoc} +\GetFileInfo{plfonts.dtx} +\title{p\LaTeXe{}のフォントコマンド\space\fileversion} +\author{Ken Nakano \& Hideaki Togashi} +\date{作成日:\filedate} +\begin{document} + \maketitle + \tableofcontents + \DocInput{\filename} +\end{document} +% +% \fi +% +% \section{概要}\label{plfonts:intro} +% ここでは、和文書体を\NFSS2のインターフェイスで選択するための +% コマンドやマクロについて説明をしています。 +% また、フォント定義ファイルや初期設定ファイルなどの説明もしています。 +% 新しいフォント選択コマンドの使い方については、\file{fntguide.tex}や +% \file{usrguide.tex}を参照してください。 +% +% \begin{description} +% \item[第\ref{plfonts:intro}節] この節です。このファイルの概要と +% \dst{}プログラムのためのオプションを示しています。 +% \item[第\ref{plfonts:codes}節] 実際のコードの部分です。 +% \item[第\ref{plfonts:pldefs}節] プリロードフォントやエラーフォントなどの +% 初期設定について説明をしています。 +% \item[第\ref{plfonts:fontdef}節] フォント定義ファイルについて +% 説明をしています。 +% \end{description} +% +% +% \subsection{\dst{}プログラムのためのオプション} +% \dst{}プログラムのためのオプションを次に示します。 +% +% \DeleteShortVerb{\|} +% \begin{center} +% \begin{tabular}{l|p{0.7\linewidth}} +% \emph{オプション} & \emph{意味}\\\hline +% plcore & \file{plcore.ltx}の断片を生成します。\\ +% trace & \file{ptrace.sty}を生成します。\\ +% JY1mc & 横組用、明朝体のフォント定義ファイルを生成します。\\ +% JY1gt & 横組用、ゴシック体のフォント定義ファイルを生成します。\\ +% JT1mc & 縦組用、明朝体のフォント定義ファイルを生成します。\\ +% JT1gt & 縦組用、ゴシック体のフォント定義ファイルを生成します。\\ +% pldefs & \file{pldefs.ltx}を生成します。次の4つのオプションを付加する +% ことで、プリロードするフォントを選択することができます。 +% デフォルトは10ptです。\\ +% xpt & 10pt プリロード\\ +% xipt & 11pt プリロード\\ +% xiipt & 12pt プリロード\\ +% ori & \file{plfonts.tex}に似たプリロード\\ +% \end{tabular} +% \end{center} +% \MakeShortVerb{\|} +% +% +% +% \section{コード}\label{plfonts:codes} +% この節で、具体的に\NFSS2を拡張するコマンドやマクロの定義を行なっています。 +% +% \subsection{準備} +% \NFSS2を拡張するための準備です。 +% 和文フォントの属性を格納するオブジェクトや長さ変数、 +% 属性を切替える際の判断材料として使うリストなどを定義しています。 +% +% \file{ptrace}パッケージは\LaTeX{}の\file{tracefnt}パッケージに依存します。 +% \changes{v1.6b}{2016/04/30}{ptrace.styの冒頭でtracefnt.styを +% \cs{RequirePackageWithOptions}するようにした} +% \begin{macrocode} +%<*trace> +\NeedsTeXFormat{pLaTeX2e} +\ProvidesPackage{ptrace} + [2017/08/05 v1.6h Standard pLaTeX package (font tracing)] +\RequirePackageWithOptions{tracefnt} +% +% \end{macrocode} +% +% \subsubsection{和文フォント属性} +% ここでは、和文フォントの属性を格納するためのオブジェクトについて +% 説明をしています。 +% +% \begin{macro}{\k@encoding} +% \begin{macro}{\ck@encoding} +% \begin{macro}{\cy@encoding} +% \begin{macro}{\ct@encoding} +% 和文エンコードを示すオブジェクトです。 +% |\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 +\let\cy@encoding\@empty +\let\ct@encoding\@empty +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\k@family} +% 和文書体のファミリを示すオブジェクトです。 +% \begin{macrocode} +\let\k@family\@empty +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\k@series} +% 和文書体のシリーズを示すオブジェクトです。 +% \begin{macrocode} +\let\k@series\@empty +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\k@shape} +% 和文書体のシェイプを示すオブジェクトです。 +% \begin{macrocode} +\let\k@shape\@empty +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\curr@kfontshape} +% 現在の和文フォント名を示すオブジェクトです。 +% \begin{macrocode} +\def\curr@kfontshape{\k@encoding/\k@family/\k@series/\k@shape} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\rel@fontshape} +% 関連付けされたフォント名を示すオブジェクトです。 +% \begin{macrocode} +\def\rel@fontshape{\f@encoding/\f@family/\f@series/\f@shape} +% \end{macrocode} +% \end{macro} +% +% \subsubsection{長さ変数} +% ここでは、和文フォントの幅や高さなどを格納する変数について説明をしています。 +% +% 頭文字が大文字の変数は、ノーマルサイズの書体の大きさで、基準値となります。 +% これらは、\file{jart10.clo}などの補助クラスファイルで設定されます。 +% +% 小文字だけからなる変数は、 +% フォントが変更されたときに(|\selectfont|内で)更新されます。 +% +% \begin{macro}{\Cht} +% \begin{macro}{\cht} +% |\Cht|は基準となる和文フォントの文字の高さを示します。 +% |\cht|は現在の和文フォントの文字の高さを示します。 +% なお、この``高さ''はベースラインより上の長さです。 +% \begin{macrocode} +\newdimen\Cht +\newdimen\cht +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cdp} +% \begin{macro}{\cdp} +% |\Cdp|は基準となる和文フォントの文字の深さを示します。 +% |\cdp|は現在の和文フォントの文字の深さを示します。 +% なお、この``深さ''はベースラインより下の長さです。 +% \begin{macrocode} +\newdimen\Cdp +\newdimen\cdp +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cwd} +% \begin{macro}{\cwd} +% |\Cwd|は基準となる和文フォントの文字の幅を示します。 +% |\cwd|は現在の和文フォントの文字の幅を示します。 +% \begin{macrocode} +\newdimen\Cwd +\newdimen\cwd +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Cvs} +% \begin{macro}{\cvs} +% |\Cvs|は基準となる行送りを示します。 +% ノーマルサイズの|\baselineskip|と同値です。 +% |\cvs|は現在の行送りを示します。 +% \begin{macrocode} +\newdimen\Cvs +\newdimen\cvs +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\Chs} +% \begin{macro}{\chs} +% |\Chs|は基準となる字送りを示します。|\Cwd|と同値です。 +% |\chs|は現在の字送りを示します。 +% \begin{macrocode} +\newdimen\Chs +\newdimen\chs +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\cHT} +% |\cHT|は、現在のフォントの高さに深さを加えた長さを示します。 +% |\set@fontsize|コマンド(実際は|\size@update|)で更新されます。 +% \begin{macrocode} +\newdimen\cHT +% \end{macrocode} +% \end{macro} +% +% \subsubsection{一時コマンド} +% +% \begin{macro}{\afont} +% \LaTeX{}内部の|\do@subst@correction|マクロでは、 +% |\fontname\font|で返される外部フォント名を用いて、 +% \LaTeX{}フォント名を定義しています。したがって、|\font|をそのまま使うと、 +% 和文フォント名に欧文の外部フォントが登録されたり、 +% 縦組フォント名に横組用の外部フォントが割り付けられたりしますので、 +% |\jfont|か|\tfont|を用いるようにします。 +% |\afont|は、|\font|コマンドの保存用です。 +% \begin{macrocode} +\let\afont\font +% \end{macrocode} +% \end{macro} +% +% +% \subsubsection{フォントリスト} +% ここでは、フォントのエンコードやファミリの名前を登録するリストについて +% 説明をしています。 +% +% p\LaTeXe{}の\NFSS2では、一つのコマンドで和文か欧文のいずれか、あるいは両方を +% 変更するため、コマンドに指定された引数が何を示すのかを判断しなくては +% なりません。この判断材料として、リストを用います。 +% +% このときの具体的な判断手順については、エンコード選択コマンドや +% ファミリ選択コマンドなどの定義を参照してください。 +% +% \begin{macro}{\inlist@} +% 次のコマンドは、エンコードやファミリのリスト内に第二引数で指定された文字列 +% があるかどうかを調べるマクロです。 +% \begin{macrocode} +\def\inlist@#1#2{% + \def\in@@##1<#1>##2##3\in@@{% + \ifx\in@##2\in@false\else\in@true\fi}% + \in@@#2<#1>\in@\in@@} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\enc@elt} +% \begin{macro}{\fam@elt} +% |\enc@elt|と|\fam@elt|は、登録されているエンコードに対して、 +% なんらかの処理を逐次的に行ないたいときに使用することができます。 +% \begin{macrocode} +\def\fam@elt{\noexpand\fam@elt} +\def\enc@elt{\noexpand\enc@elt} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\fenc@list} +% \begin{macro}{\kenc@list} +% \begin{macro}{\kyenc@list} +% \begin{macro}{\ktenc@list} +% |\fenc@list|には、|\DeclareFontEncoding|コマンドで宣言されたエンコード名が +% 格納されていきます。 +% +% |\kyenc@list|には、|\DeclareYokoKanjiEncoding|コマンドで宣言された +% エンコード名が格納されていきます。 +% |\ktenc@list|には、|\DeclareTateKanjiEncoding|コマンドで宣言された +% エンコード名が格納されていきます。 +% +% \changes{v1.1b}{1995/03/28}{リストの初期値を変更} +% \changes{v1.1b}{1995/05/10}{リスト内の空白を削除} +% +% ここで、これらのリストに具体的な値を入れて初期化をするのは、 +% リストにエンコードの登録をするように|\DeclareFontEncoding|を再定義 +% する前に、欧文エンコードが宣言されるため、リストに登録されないからです。 +% \changes{v1.1}{1997/01/25}{Add TS1 encoding to the starting member of +% \cs{fenc@list}.} +% \begin{macrocode} +\def\fenc@list{\enc@elt\enc@elt\enc@elt\enc@elt% + \enc@elt\enc@elt\enc@elt} +\let\kenc@list\@empty +\let\kyenc@list\@empty +\let\ktenc@list\@empty +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\kfam@list} +% \begin{macro}{\ffam@list} +% \begin{macro}{\notkfam@list} +% \begin{macro}{\notffam@list} +% |\kfam@list|には、|\DeclareKanjiFamily|コマンドで宣言されたファミリ名が +% 格納されていきます。 +% +% |\ffam@list|には、|\DeclareFontFamily|コマンドで宣言されたファミリ名が +% 格納されていきます。 +% +% |\notkfam@list|には、和文ファミリではないと推測されたファミリ名が +% 格納されていきます。このリストは|\fontfamily|コマンドで作成されます。 +% +% |\notffam@list|には欧文ファミリではないと推測されたファミリ名が +% 格納されていきます。このリストは|\fontfamily|コマンドで作成されます。 +% +% \changes{v1.1b}{1995/03/28}{リストの初期値を変更} +% \changes{v1.1b}{1995/05/10}{リスト内の空白を削除} +% +% ここで、これらのリストに具体的な値を入れて初期化をするのは、 +% リストにファミリの登録をするように、|\DeclareFontFamily|が +% 再定義される前に、このコマンドが使用されるため、 +% リストに登録されないからです。 +% \begin{macrocode} +\def\kfam@list{\fam@elt\fam@elt} +\def\ffam@list{\fam@elt\fam@elt\fam@elt% + \fam@elt\fam@elt\fam@elt} +% \end{macrocode} +% \changes{v1.1c}{1996/03/06}{\cs{notkfam@list}と\cs{notffam@list}の +% 初期値を変更} +% つぎの二つのリストの初期値として、上記の値を用います。 +% これらのファミリ名は、和文でないこと、欧文でないことがはっきりしています。 +% \begin{macrocode} +\let\notkfam@list\ffam@list +\let\notffam@list\kfam@list +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \subsubsection{支柱} +% 行間の調整などに用いる支柱です。 +% 支柱のもととなるボックスの大きさは、フォントサイズが変更されるたびに、 +% |\set@fontsize|コマンドによって変化します。 +% +% フォントサイズが変更されたときに、|\set@fontsize|コマンドで更新されます。 +% +% 従来、横組ボックス用の支柱は|\strutbox|で、高さと深さが7対3となっていました。 +% これはp\LaTeX{}単体では問題になりませんでしたが、海外製の\LaTeX{}パッケージを +% 縦組で使用した場合に、意図しない幅や高さが取得されることがありました。 +% この不都合を回避するため、コミュニティ版p\LaTeX{}では次の方法をとります。 +% \begin{itemize} +% \item |\ystrutbox|(新設):高さと深さが7対3の横組ボックス用の支柱 +% \item |\tstrutbox|:高さと深さが5対5の縦組ボックス用の支柱 +% \item |\zstrutbox|:高さと深さが7対3の縦組ボックス用の支柱 +% \item |\strutbox|(仕様変更):縦横のディレクションに応じて +% |\tstrutbox|または|\ystrutbox|に展開されるマクロ +% \end{itemize} +% すなわち、従来のp\LaTeX{}における|\strutbox|と同じ挙動を示すのが、 +% 新設された|\ystrutbox|ということになります。 +% +% \begin{macro}{\tstrutbox} +% \begin{macro}{\zstrutbox} +% |\tstrutbox|は高さと深さが5対5、 +% |\zstrutbox|は高さと深さが7対3の支柱ボックスとなります。 +% これらは縦組ボックスの行間の調整などに使います。 +% \begin{macrocode} +\newbox\tstrutbox +\newbox\zstrutbox +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ystrutbox} +% |\ystrutbox|は高さと深さが7対3の横組ボックス用の支柱です。 +% \changes{v1.6f}{2017/02/20}{\cs{ystrutbox}を追加} +% \begin{macrocode} +% +%\plIncludeInRelease{2017/04/08}{\ystrutbox} +% {Add \ystrutbox}% +%<*plcore|platexrelease> +\newbox\ystrutbox +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\ystrutbox} +% {Add \ystrutbox}% +%\let\ystrutbox\@undefined +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\strutbox} +% |\strutbox|は縦横両対応です。 +% \changes{v1.6f}{2017/02/20}{\cs{strutbox}を縦横両対応に} +% \begin{macrocode} +%\plIncludeInRelease{2017/04/08}{\strutbox} +% {Add \strutbox}% +%<*plcore|platexrelease> +\def\strutbox{\iftdir\tstrutbox\else\ystrutbox\fi} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\strutbox} +% {Add \strutbox}% +%\newbox\strutbox % emulation purpose only +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\strut} +% ディレクションに応じて|\ystrutbox|と|\tstrutbox|を使い分けます。 +% ^^A |\strutbox|は|\yoko|ディレクションで組まれていますので、 +% ^^A 縦組ボックス内で|\unhcopy|をするとエラーとなります。 +% 元々このマクロは\file{ltplain.dtx}で定義されています。 +% +% \changes{v1.1c}{1995/08/24}{``\cs{centerling}~\cs{strut}''の幅がゼロに +% なってしまうのを修正} +% \changes{v1.3h}{1999/08/09}{縦組のとき、幅のあるボックスになってしまう +% のを修正} +% \changes{v1.6f}{2017/02/20}{\cs{strutbox}の代わりに\cs{ystrutbox}を使用} +% \begin{macrocode} +%\plIncludeInRelease{2017/04/08}{\strut} +% {Use \ystrutbox}% +%<*plcore|platexrelease> +\def\strut{\relax + \ifydir + \ifmmode\copy\ystrutbox\else\unhcopy\ystrutbox\fi + \else + \ifmmode\copy\tstrutbox\else\unhcopy\tstrutbox\fi + \fi} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\strut} +% {Use \ystrutbox}% +%\def\strut{\relax +% \ifydir +% \ifmmode\copy\strutbox\else\unhcopy\strutbox\fi +% \else +% \ifmmode\copy\tstrutbox\else\unhcopy\tstrutbox\fi +% \fi} +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\tstrut} +% \begin{macro}{\zstrut} +% \begin{macrocode} +\def\tstrut{\relax\hbox{\tate + \ifmmode\copy\tstrutbox\else\unhcopy\tstrutbox\fi}} +\def\zstrut{\relax\hbox{\tate + \ifmmode\copy\zstrutbox\else\unhcopy\zstrutbox\fi}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\ystrut} +% \changes{v1.6f}{2017/02/20}{\cs{ystrut}を追加} +% \begin{macrocode} +% +%\plIncludeInRelease{2017/04/08}{\ystrut} +% {Add \ystrut}% +%<*plcore|platexrelease> +\def\ystrut{\relax\hbox{\yoko + \ifmmode\copy\ystrutbox\else\unhcopy\ystrutbox\fi}} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\ystrut} +% {Add \ystrut}% +%\let\ystrut\@undefined +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% +% +% \subsection{コマンド} +% 次のコマンドの定義をしています。 +% +% \DeleteShortVerb{\|} +% \MakeShortVerb{\+} +% \begin{center} +% \begin{tabular}{l|l} +% \emph{コマンド} & \emph{意味}\\\hline +% +\Declare{Font|YokoKanji|TateKanji}Encoding+ & エンコードの宣言\\ +% +\Declare{Yoko|Tate}KanjiEncodingDefaults+ & +% デフォルトの和文エンコードの宣言\\ +% +\Declare{Font|Kanji}Family+ & ファミリの宣言\\ +% +\DeclareKanjiSubstitution+ & 和文の代用フォントの宣言\\ +% +\DeclareErrorKanjiFont+ & 和文のエラーフォントの宣言 \\ +% +\DeclareFixedFont+ & フォントの名前の宣言 \\ +% +\reDeclareMathAlphabet+ & 和欧文を同時に切り替えるコマンド宣言\\ +% +\{Declare|Set}RelationFont+ & 従属書体の宣言\\ +% +\userelfont+ & 欧文書体を従属書体にする\\ +% +\selectfont+ & フォントを切り替える\\ +% +\set@fontsize+ & フォントサイズの変更\\ +% +\adjustbaseline+ & ベースラインシフト量の設定\\ +% +\{font|roman|kanji}encoding+ & エンコードの指定\\ +% +\{font|roman|kanji}family+ & ファミリの指定\\ +% +\{font|roman|kanji}series+ & シリーズの指定\\ +% +\{font|roman|kanji}shape+ & シェイプの指定\\ +% +\use{font|roman|kanji}+ & 書体の切り替え\\ +% +\normalfont+ & デフォルト値の設定に切り替える\\ +% +\mcfamily+,+\gtfamily+ & 和文書体を明朝体、ゴシック体にする\\ +% +\textunderscore+ & テキストモードでの下線マクロ\\ +% \end{tabular} +% \end{center} +% \DeleteShortVerb{\+} +% \MakeShortVerb{\|} +% +% +% \begin{macro}{\DeclareFontEncoding} +% \begin{macro}{\DeclareFontEncoding@} +% 欧文エンコードを宣言するためのコマンドです。 +% \file{ltfssbas.dtx}で定義されているものを、 +% |\fenc@list|を作るように再定義をしています。 +% \changes{v1.3p}{2006/01/04}{\break\cs{DeclareFontEncoding@}中で +% \cs{LastDeclaredEncodeng}の再定義が抜けていたので追加} +% \begin{macrocode} +\def\DeclareFontEncoding{% + \begingroup + \nfss@catcodes + \expandafter\endgroup + \DeclareFontEncoding@} +% +%\plIncludeInRelease{2018/04/01}{\DeclareFontEncoding@} +% {UTF-8 Encoding}% +%<*plcore|platexrelease> +% \end{macrocode} +% +% まず、\LaTeXe\ 2017-04-15以前の場合のコードです。このコードは、 +% |\UseRawInputEncoding|の内部でも使われます。 +% \changes{v1.6n}{2018/04/06}{\cs{UseRawInputEncoding}で使われる +% \cs{DeclareFontEncoding@}の保存版(従来の定義)を準備 +% (sync with ltfinal.dtx 2018/04/06 v2.1b)} +% \begin{macrocode} +% for compatibility with LaTeX2e 2017-04-15 or earlier. +% this code is used if MLTeX is enabled +\def\DeclareFontEncoding@#1#2#3{% + \expandafter + \ifx\csname T@#1\endcsname\relax + \def\cdp@elt{\noexpand\cdp@elt}% + \xdef\cdp@list{\cdp@list\cdp@elt{#1}% + {\default@family}{\default@series}% + {\default@shape}}% + \expandafter\let\csname#1-cmd\endcsname\@changed@cmd +% \end{macrocode} +% 以下の2行がp\LaTeXe{}による追加部分です。 +% \begin{macrocode} + \def\enc@elt{\noexpand\enc@elt}% + \xdef\fenc@list{\fenc@list\enc@elt<#1>}% +% \end{macrocode} +% \begin{macrocode} + \else + \@font@info{Redeclaring font encoding #1}% + \fi + \global\@namedef{T@#1}{#2}% + \global\@namedef{M@#1}{\default@M#3}% + \xdef\LastDeclaredEncoding{#1}% + } +\let\DeclareFontEncoding@saved\DeclareFontEncoding@ +% \end{macrocode} +% +% 次に、\LaTeXe\ 2018-04-01以降の場合のコードです。 +% \begin{macrocode} +\ifx\IeC\@undefined\else +% for LaTeX2e with UTF-8 input. +\def\DeclareFontEncoding@#1#2#3{% + \expandafter + \ifx\csname T@#1\endcsname\relax + \def\cdp@elt{\noexpand\cdp@elt}% + \xdef\cdp@list{\cdp@list\cdp@elt{#1}% + {\default@family}{\default@series}% + {\default@shape}}% + \expandafter\let\csname#1-cmd\endcsname\@changed@cmd +% \end{macrocode} +% \LaTeXe\ 2018-04-01で、既定の欧文入力エンコーディングが +% UTF-8になりました。これは、\file{latex.ltx}が\file{utf8.def}(従来は +% \LaTeX{}ソースに |\usepackage[utf8]{inputenc}| と書いたときに +% 読み込まれていたもの)を読み込むことで実現されています。 +% \file{utf8.def}は |\DeclareFontEncoding@| を再定義するので、 +% これに合わせるためのコードを追加します。 +% \changes{v1.6m}{2018/03/31}{\file{utf8.def}由来のコードを追加} +% \begin{macrocode} + \begingroup + \wlog{Now handling font encoding #1 ...}% + \lowercase{% + \InputIfFileExists{#1enc.dfu}}% + {\wlog{... processing UTF-8 mapping file for font % + encoding #1}}% + {\wlog{... no UTF-8 mapping file for font encoding #1}}% + \endgroup +% \end{macrocode} +% 以下の2行がp\LaTeXe{}による追加部分です。 +% \begin{macrocode} + \def\enc@elt{\noexpand\enc@elt}% + \xdef\fenc@list{\fenc@list\enc@elt<#1>}% +% \end{macrocode} +% \begin{macrocode} + \else + \@font@info{Redeclaring font encoding #1}% + \fi + \global\@namedef{T@#1}{#2}% + \global\@namedef{M@#1}{\default@M#3}% + \xdef\LastDeclaredEncoding{#1}% + } +% \end{macrocode} +% ^^A pLaTeX2e <2018-04-01>+1では一時的に、この場所で +% ^^A \LaTeXe\ 2018-04-01 Patch level 2で導入された +% ^^A 「コマンドライン引数にUnicode文字が使われた場合への対処」 +% ^^A への対策を実行していましたが、 +% ^^A pLaTeX2e <2018-04-01>+2を以って、\file{plvers.dtx}側が +% ^^A 対応完了したため削除しました。 +% \changes{v1.6o}{2018/04/08}{Delay full UTF-8 handling to \cs{everyjob} +% (sync with ltfinal.dtx 2018/04/08 v2.1d)} +% \changes{v1.6p}{2018/04/09}{v1.6oで加えた対策を削除。 +% 参考:plvers.dtx 2018/04/09 v1.1lの\cs{everyjob}} +% \begin{macrocode} +\fi +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\DeclareFontEncoding@} +% {UTF-8 Encoding}% +%\def\DeclareFontEncoding@#1#2#3{% +% \expandafter +% \ifx\csname T@#1\endcsname\relax +% \def\cdp@elt{\noexpand\cdp@elt}% +% \xdef\cdp@list{\cdp@list\cdp@elt{#1}% +% {\default@family}{\default@series}% +% {\default@shape}}% +% \expandafter\let\csname#1-cmd\endcsname\@changed@cmd +% \def\enc@elt{\noexpand\enc@elt}% +% \xdef\fenc@list{\fenc@list\enc@elt<#1>}% +% \else +% \@font@info{Redeclaring font encoding #1}% +% \fi +% \global\@namedef{T@#1}{#2}% +% \global\@namedef{M@#1}{\default@M#3}% +% \xdef\LastDeclaredEncoding{#1}% +% } +%\let\DeclareFontEncoding@saved\@undefined +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\DeclareKanjiEncoding} +% \begin{macro}{\DeclareYokoKanjiEncoding} +% \begin{macro}{\DeclareYokoKanjiEncoding@} +% \begin{macro}{\DeclareTateKanjiEncoding} +% \begin{macro}{\DeclareTateKanjiEncoding@} +% 和文エンコードの宣言をするコマンドです。 +% \changes{v1.3c}{1997/04/08}{和文エンコード宣言コマンドを縦組用と横組用で +% 分けるようにした。} +% \begin{macrocode} +\def\DeclareKanjiEncoding#1{% + \@latex@warning{% + The \string\DeclareKanjiEncoding\space is obsoleted command. Please use + \MessageBreak + the \string\DeclareTateKanjiEncoding\space for `Tate-kumi' encoding, and + \MessageBreak + the \string\DeclareYokoKanjiEncoding\space for `Yoko-kumi' encoding. + \MessageBreak + I treat the `#1' encoding as `Yoko-kumi'.} + \DeclareYokoKanjiEncoding{#1}% +} +\def\DeclareYokoKanjiEncoding{% + \begingroup + \nfss@catcodes + \expandafter\endgroup + \DeclareYokoKanjiEncoding@} +% +\def\DeclareYokoKanjiEncoding@#1#2#3{% + \expandafter + \ifx\csname T@#1\endcsname\relax + \def\cdp@elt{\noexpand\cdp@elt}% + \xdef\cdp@list{\cdp@list\cdp@elt{#1}% + {\default@k@family}{\default@k@series}% + {\default@k@shape}}% + \expandafter\let\csname#1-cmd\endcsname\@changed@kcmd + \def\enc@elt{\noexpand\enc@elt}% + \xdef\kyenc@list{\kyenc@list\enc@elt<#1>}% + \xdef\kenc@list{\kenc@list\enc@elt<#1>}% + \else + \@font@info{Redeclaring KANJI (yoko) font encoding #1}% + \fi + \global\@namedef{T@#1}{#2}% + \global\@namedef{M@#1}{\default@KM#3}% + } +% +\def\DeclareTateKanjiEncoding{% + \begingroup + \nfss@catcodes + \expandafter\endgroup + \DeclareTateKanjiEncoding@} +% +\def\DeclareTateKanjiEncoding@#1#2#3{% + \expandafter + \ifx\csname T@#1\endcsname\relax + \def\cdp@elt{\noexpand\cdp@elt}% + \xdef\cdp@list{\cdp@list\cdp@elt{#1}% + {\default@k@family}{\default@k@series}% + {\default@k@shape}}% + \expandafter\let\csname#1-cmd\endcsname\@changed@kcmd + \def\enc@elt{\noexpand\enc@elt}% + \xdef\ktenc@list{\ktenc@list\enc@elt<#1>}% + \xdef\kenc@list{\kenc@list\enc@elt<#1>}% + \else + \@font@info{Redeclaring KANJI (tate) font encoding #1}% + \fi + \global\@namedef{T@#1}{#2}% + \global\@namedef{M@#1}{\default@KM#3}% + } +% +\@onlypreamble\DeclareKanjiEncoding +\@onlypreamble\DeclareYokoKanjiEncoding +\@onlypreamble\DeclareYokoKanjiEncoding@ +\@onlypreamble\DeclareTateKanjiEncoding +\@onlypreamble\DeclareTateKanjiEncoding@ +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\DeclareKanjiEncodingDefaults} +% 和文エンコードのデフォルト値を宣言するコマンドです。 +% \begin{macrocode} +\def\DeclareKanjiEncodingDefaults#1#2{% + \ifx\relax#1\else + \ifx\default@KT\@empty\else + \@font@info{Overwriting KANJI encoding scheme text defaults}% + \fi + \gdef\default@KT{#1}% + \fi + \ifx\relax#2\else + \ifx\default@KM\@empty\else + \@font@info{Overwriting KANJI encoding scheme math defaults}% + \fi + \gdef\default@KM{#2}% + \fi} +\let\default@KT\@empty +\let\default@KM\@empty +\@onlypreamble\DeclareKanjiEncodingDefaults +% \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}} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\DeclareFontFamily} +% 欧文ファミリを宣言するためのコマンドです。 +% |\ffam@list|を作るように再定義をします。 +% \begin{macrocode} +\def\DeclareFontFamily#1#2#3{% + \@ifundefined{T@#1}% + {\@latex@error{Encoding scheme `#1' unknown}\@eha}% + {\edef\tmp@item{{#2}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\ffam@list}% + \ifin@ \else + \def\fam@elt{\noexpand\fam@elt}% + \xdef\ffam@list{\ffam@list\fam@elt<#2>}% + \fi + \def\reserved@a{#3}% + \global + \expandafter\let\csname #1+#2\expandafter\endcsname + \ifx \reserved@a\@empty + \@empty + \else \reserved@a + \fi + }% +} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\DeclareKanjiFamily} +% 和文ファミリを宣言するためのコマンドです。 +% \begin{macrocode} +\def\DeclareKanjiFamily#1#2#3{% + \@ifundefined{T@#1}% + {\@latex@error{KANJI Encoding scheme `#1' unknown}\@eha}% + {\edef\tmp@item{{#2}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kfam@list}% + \ifin@ \else + \def\fam@elt{\noexpand\fam@elt}% + \xdef\kfam@list{\kfam@list\fam@elt<#2>}% + \fi + \def\reserved@a{#3}% + \global + \expandafter\let\csname #1+#2\expandafter\endcsname + \ifx \reserved@a\@empty + \@empty + \else \reserved@a + \fi + }% +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\DeclareKanjiSubstitution} +% \begin{macro}{\DeclareErrorKanjiFont} +% 目的の和文フォントが見つからなかったときに使うフォントの宣言をする +% コマンドです。 +% それぞれ、|\DeclareFontSubstitution|と|\DeclareErrorFont|に対応します。 +% \begin{macrocode} +\def\DeclareKanjiSubstitution#1#2#3#4{% + \expandafter\ifx\csname T@#1\endcsname\relax + \@latex@error{KANJI Encoding scheme `#1' unknown}\@eha + \else + \begingroup + \def\reserved@a{#1}% + \toks@{}% + \def\cdp@elt##1##2##3##4{% + \def\reserved@b{##1}% + \ifx\reserved@a\reserved@b + \addto@hook\toks@{\cdp@elt{#1}{#2}{#3}{#4}}% + \else + \addto@hook\toks@{\cdp@elt{##1}{##2}{##3}{##4}}% + \fi}% + \cdp@list + \xdef\cdp@list{\the\toks@}% + \endgroup + \global\@namedef{D@#1}{\def\default@family{#2}% + \def\default@series{#3}% + \def\default@shape{#4}}% + \fi} +% +\def\DeclareErrorKanjiFont#1#2#3#4#5{% + \xdef\error@kfontshape{% + \noexpand\expandafter\noexpand\split@name\noexpand\string + \expandafter\noexpand\csname#1/#2/#3/#4/#5\endcsname + \noexpand\@nil}% + \gdef\default@k@family{#2}% + \gdef\default@k@series{#3}% + \gdef\default@k@shape{#4}% + \global\let\k@family\default@k@family + \global\let\k@series\default@k@series + \global\let\k@shape\default@k@shape + \gdef\f@size{#5}% + \gdef\f@baselineskip{#5pt}} +% +\@onlypreamble\DeclareKanjiSubstitution +\@onlypreamble\DeclareErrorKanjiFont +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\DeclareFixedFont} +% フォント名を宣言するコマンドです。 +% +% \changes{v1.2}{1995/11/09}{\break\cs{DeclareFixedFont}の日本語化} +% \changes{v1.3c}{1997/04/09}{縦横エンコード・リストの分離による拡張} +% \changes{v1.3f}{1998/08/10}{プリアンブル・コマンドにしてしまっていたのを解除} +% \begin{macrocode} +\def\DeclareFixedFont#1#2#3#4#5#6{% + \begingroup + \let\afont\font + \math@fontsfalse + \every@math@size{}% + \fontsize{#6}\z@ + \edef\tmp@item{{#2}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kyenc@list}% + \ifin@ + \usekanji{#2}{#3}{#4}{#5}% + \let\font\jfont + \else + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\ktenc@list}% + \ifin@ + \usekanji{#2}{#3}{#4}{#5}% + \let\font\tfont + \else + \useroman{#2}{#3}{#4}{#5}% + \let\font\afont + \fi + \fi + \global\expandafter\let\expandafter#1\the\font + \let\font\afont + \endgroup + } +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\reDeclareMathAlphabet} +% \changes{v1.0}{1997/01/30}{\break\cs{reDeclareMathAlphabet}を追加。 +% ありがとう、ymtさん。} +% \changes{v1.4}{2006/06/27}{\break\cs{reDeclareMathAlphabet}を修正。 +% ありがとう、ymtさん。} +% \changes{v1.5}{2006/11/10}{\break\cs{reDeclareMathAlphabet}を修正。 +% ありがとう、ymtさん。} +% 数式モード内で、数式文字用の和欧文フォントを同時に切り替えるコマンドです。 +% +% p\LaTeXe{}には、本来の動作モードと2.09互換モードの二つがあり、 +% 両モードで数式文字を変更するコマンドや動作が異なります。 +% 本来の動作モードでは、|\mathrm{...}|のように|\math??|に引数を指定して +% 使います。このときは引数にだけ影響します。2.09互換モードでは、|\rm|の +% ような二文字コマンドを使います。このコマンドには引数を取らず、書体は +% グルーピングの範囲で反映されます。二文字コマンドは、ネイティブモード +% でも使えるようになっていて、動作も2.09互換モードのコマンドと同じです。 +% +% しかし、内部的には|\math??|という一つのコマンドがすべての動作を受け持ち、 +% |\math??|コマンドや|\??|コマンドから呼び出された状態に応じて、動作を変え +% ています。したがって、欧文フォントと和文フォントの両方を一度に変更する、 +% 数式文字変更コマンドを作るとき、それぞれの状態に合った動作で動くように +% フォント切り替えコマンドを実行させる必要があります。 +% +% \textbf{使い方} +%\begin{verbatim} +% usage: \reDeclareMathAlphabet{\mathAA}{\mathBB}{\mathCC} +%\end{verbatim} +% 欧文・和文両用の数式文字変更コマンド |\mathAA| を(再)定義します。 +% 欧文用のコマンド |\mathBB| と、和文用の |\mathCC| を (p)\LaTeX{} 標準の +% 方法で定義しておいた後、上のように記述します。なお、|{\mathBB}{\mathCC}| +% の部分については |{\@mathBB}{\@mathCC}| のように @ をつけた記述 +% をしてもかまいません(互換性のため)。上のような命令を発行すると、 +% |\mathAA| が、欧文に対しては |\mathBB|、 和文に対しては |\mathCC| の意味を +% 持つようになります。 +% 通常は、|\reDeclareMathAlphabet{\mathrm}{\mathrm}{\mathmc}| のように +% |AA=BB| として用います。また、|\mathrm| は \LaTeX{} kernel において +% 標準のコマンドとして既に定義されているので、この場合は |\mathrm| の +% 再定義となります。native mode での |\rm| のような two letter command +% (old font command) に対しても同様なことが引きおこります。つまり、 +% 数式モードにおいて、新たな |\rm| は、\LaTeX{} original の |\rm| と |\mc| +% (正確に言えば |\mathrm| と |\mathmc| であるが)の意味を合わせ持つように +% なります。 +% +% \textbf{補足} +% \begin{itemize} +% \item +% |\mathAA| を再定義する他の命令(|\DeclareSymbolFontAlphabet| を用いる +% パッケージの使用等)との衝突を避けるためには、|\AtBeginDocument| を併用 +% するなどして展開位置の制御を行ってください。 +% \item +% テキストモード時のエラー表示用に |\mathBB| のみを用いることを除いて、 +% |\mathBB| と |\mathCC| の順は実際には意味を持ちません。和文、欧文の順に +% 定義しても問題はありません。 +% \item +% 第2,3引き数には |{\@mathBB}{\@mathCC}| のように |@| をつけた記述も +% 行えます。ただし、形式は統一してください。判断は第2引き数で行って +% いるため、 |{\@mathBB}{\mathCC}| のような記述ではうまく動作しません。 +% また、|\makeatletter| な状態で |{\@mathBB }{\@mathCC }| のような |@| と +% 余分なスペースをつけた場合には無限ループを引き起こすことがあります。 +% このような記述は避けるようにして下さい。 +% \item +% |\reDeclareMathAlphabet| を実行する際には、|\mathBB|, |\mathCC| が定義 +% されている必要はありません。実際に |\mathAA| を用いる際にはこれらの +% |\mathBB|, |\mathCC| が (p)\LaTeX{}標準の方法で定義されている必要があります。 +% \item +% 他の部分で |\mathAA| を全く定義しない場合を除き、|\mathAA| は +% |\reDeclareMathAlphabet| を実行する以前で (p)\LaTeX{}標準の方法で定義され +% ている必要があります(|\mathrm| や |\mathbf| の標準的なコマンドは、 +% \LaTeX{} kernel で既に定義されています)。 +% |\DeclareMathAlphabet| の場合には、|\reDeclareMathAlphabet| よりも前で1度 +% |\mathAA| を定義してあれば、|\reDeclareMathAlphabet| の後ろで再度 +% |\DeclareMathAlphabet| を用いて |\mathAA| の内部の定義内容を変更すること +% には問題ありません。 +% |\DeclareSymbolFontAlphabet| の場合、再定義においても |\mathAA| が直接 +% 定義されるので、|\mathAA| に対する最後の |\DeclareSymbolFontAlphabet| の +% さらに後で |\reDeclareMathAlphabet| を実行しなければ有効とはなりません。 +% \item +% |\documentstyle| の互換モードの場合、|\rm| 等の two letter command +% (old font command) は、|\reDeclareMathAlphabet| とは関連することのない +% 別個のコマンドとして定義されます。従って、この場合には +% |\reDeclareMathAlphabet| を用いても |\rm| 等は数式モードにおいて +% 欧文・和文両用のものとはなりません。 +% \end{itemize} +% \begin{macrocode} +\def\reDeclareMathAlphabet#1#2#3{% + \edef#1{\noexpand\protect\expandafter\noexpand\csname% + \expandafter\@gobble\string#1\space\space\endcsname}% + \edef\@tempa{\expandafter\@gobble\string#2}% + \edef\@tempb{\expandafter\@gobble\string#3}% + \edef\@tempc{\string @\expandafter\@gobbletwo\string#2}% + \ifx\@tempc\@tempa% + \edef\@tempa{\expandafter\@gobbletwo\string#2}% + \edef\@tempb{\expandafter\@gobbletwo\string#3}% + \fi + \expandafter\edef\csname\expandafter\@gobble\string#1\space\space\endcsname% + {\noexpand\DualLang@mathalph@bet% + {\expandafter\noexpand\csname\@tempa\space\endcsname}% + {\expandafter\noexpand\csname\@tempb\space\endcsname}% + }% +} +\@onlypreamble\reDeclareMathAlphabet +\def\DualLang@mathalph@bet#1#2{% + \relax\ifmmode + \ifx\math@bgroup\bgroup% 2e normal style (\mathrm{...}) + \bgroup\let\DualLang@Mfontsw\DLMfontsw@standard + \else + \ifx\math@bgroup\relax% 2e two letter style (\rm->\mathrm) + \let\DualLang@Mfontsw\DLMfontsw@oldstyle + \else + \ifx\math@bgroup\@empty% 2.09 oldlfont style ({\mathrm ...}) + \let\DualLang@Mfontsw\DLMfontsw@oldlfont + \else% panic! assume 2e normal style + \bgroup\let\DualLang@Mfontsw\DLMfontsw@standard + \fi + \fi + \fi + \else + \let\DualLang@Mfontsw\@firstoftwo + \fi + \DualLang@Mfontsw{#1}{#2}% +} +\def\DLMfontsw@standard#1#2#3{#1{#2{#3}}\egroup} +\def\DLMfontsw@oldstyle#1#2{#1\relax\@fontswitch\relax{#2}} +\def\DLMfontsw@oldlfont#1#2{#1\relax#2\relax} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\DeclareRelationFont} +% \begin{macro}{\SetRelationFont} +% 和文書体に対する従属書体を宣言するコマンドです。\emph{従属書体}とは、 +% ある和文書体とペアになる欧文書体のことです。 +% 主に多書体パッケージ|skfonts|を用いるための仕組みです。 +% +% |\DeclareRelationFont|コマンドの最初の4つの引数の組が和文書体の属性、 +% その後の4つの引数の組が従属書体の属性です。 +%\begin{verbatim} +% \DeclareRelationFont{JY1}{mc}{m}{n}{OT1}{cmr}{m}{n} +% \DeclareRelationFont{JY1}{gt}{m}{n}{OT1}{cmr}{bx}{n} +%\end{verbatim} +% 上記の例は、明朝体の従属書体としてコンピュータモダンローマン、 +% ゴシック体の従属書体としてコンピュータモダンボールドを宣言しています。 +% カレント和文書体が|\JY1/mc/m/n|となると、 +% 自動的に欧文書体が|\OT1/cmr/m/n|になります。 +% また、和文書体が|\JY1/gt/m/n|になったときは、 +% 欧文書体が|\OT1/cmr/bx/n|になります。 +% +% 和文書体のシェイプ指定を省略するとエンコード/ファミリ/シリーズの組合せで +% 従属書体が使われます。このときは、|\selectfont|が呼び出された時点での +% シェイプ(|\f@shape|)の値が使われます。 +% +% |\DeclareRelationFont|の設定値はグローバルに有効です。 +% |\SetRelationFont|の設定値はローカルに有効です。 +% フォント定義ファイルで宣言をする場合は、 +% |\DeclareRelationFont|を使ってください。 +% \begin{macrocode} +\def\all@shape{all}% +\def\DeclareRelationFont#1#2#3#4#5#6#7#8{% + \def\rel@shape{#4}% + \ifx\rel@shape\@empty + \global + \expandafter\def\csname rel@#1/#2/#3/all\endcsname{% + \romanencoding{#5}\romanfamily{#6}% + \romanseries{#7}}% + \else + \global + \expandafter\def\csname rel@#1/#2/#3/#4\endcsname{% + \romanencoding{#5}\romanfamily{#6}% + \romanseries{#7}\romanshape{#8}}% + \fi +} +\def\SetRelationFont#1#2#3#4#5#6#7#8{% + \def\rel@shape{#4}% + \ifx\rel@shape\@empty + \expandafter\def\csname rel@#1/#2/#3/all\endcsname{% + \romanencoding{#5}\romanfamily{#6}% + \romanseries{#7}}% + \else + \expandafter\def\csname rel@#1/#2/#3/#4\endcsname{% + \romanencoding{#5}\romanfamily{#6}% + \romanseries{#7}\romanshape{#8}}% + \fi +} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\if@knjcmd} +% \begin{macro}{\userelfont} +% |\if@knjcmd|は欧文書体を従属書体にするかどうかのフラグです。 +% このフラグが真になると、欧文書体に従属書体が使われます。 +% このフラグは|\userelfont|コマンドによって、\emph{真}となります。 +% そして|\selectfont|実行後には\emph{偽}に初期化されます。 +% \begin{macrocode} +\newif\if@knjcmd +\def\userelfont{\@knjcmdtrue} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\selectfont} +% |\selectfont|のオリジナルからの変更部分は、次の3点です。 +% \begin{itemize} +% \item 和文書体を変更する部分 +% \item 従属書体に変更する部分 +% \item 和欧文のベースラインを調整する部分 +% \end{itemize} +% +% \changes{v1.0c}{1995/08/22}{縦横両方のフォントを切り替えるようにした} +% \changes{v1.2}{1995/11/22}{エラーフォントに対応した} +% \changes{v1.3n}{2004/08/10}{和文エンコーディングの切り替えを有効化} +% |\selectfont|コマンドは、まず、和文フォントを切り替えます。 +% \begin{macrocode} +% +%<*plcore|trace> +\DeclareRobustCommand\selectfont{% + \let\tmp@error@fontshape\error@fontshape + \let\error@fontshape\error@kfontshape + \edef\tmp@item{{\k@encoding}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kyenc@list}% + \ifin@ + \let\cy@encoding\k@encoding + \edef\ct@encoding{\csname t@enc@\k@encoding\endcsname}% + \else + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\ktenc@list}% + \ifin@ + \let\ct@encoding\k@encoding + \edef\cy@encoding{\csname y@enc@\k@encoding\endcsname}% + \else + \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha + \fi + \fi + \let\font\tfont + \let\k@encoding\ct@encoding + \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}% + \pickup@font + \font@name + \let\font\jfont + \let\k@encoding\cy@encoding + \xdef\font@name{\csname\curr@kfontshape/\f@size\endcsname}% + \pickup@font + \font@name + \expandafter\def\expandafter\k@encoding\tmp@item + \kenc@update + \let\error@fontshape\tmp@error@fontshape +% \end{macrocode} +% 次に、|\if@knjcmd|が真の場合、 +% 欧文書体を現在の和文書体に関連付けされたフォントに変えます。 +% このフラグは|\userelfont|コマンドによって\emph{真}となります。 +% このフラグはここで再び、\emph{偽}に設定されます。 +% \begin{macrocode} + \if@knjcmd \@knjcmdfalse + \expandafter\ifx + \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname\relax + \expandafter\ifx + \csname rel@\k@encoding/\k@family/\k@series/all\endcsname\relax + \else + \csname rel@\k@encoding/\k@family/\k@series/all\endcsname + \fi + \else + \csname rel@\k@encoding/\k@family/\k@series/\k@shape\endcsname + \fi + \fi +% \end{macrocode} +% そして、欧文フォントを切り替えます。 +% \begin{macrocode} + \let\font\afont + \xdef\font@name{\csname\curr@fontshape/\f@size\endcsname}% + \pickup@font + \font@name +% \ifnum \tracingfonts>\tw@ +% \@font@info{Roman:Switching to \font@name}\fi + \enc@update +% \end{macrocode} +% 最後に、サイズが変更されていれば、ベースラインの調整などを行ないます。 +% 英語版の|\selectfont|では最初に行なっていますが、 +% p\LaTeXe{}ではベースラインシフトの調整をするために、 +% 書体を確定しなければならないため、一番最後に行ないます +% +% \changes{v1.1b}{1995/04/26}{ベースラインの調整をサイズ変更時に +% 行なうようにした} +% \begin{macrocode} + \ifx\f@linespread\baselinestretch \else + \set@fontsize\baselinestretch\f@size\f@baselineskip + \fi + \size@update} +% +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\set@fontsize} +% |\fontsize|コマンドの内部形式です。 +% ベースラインの設定と、支柱の設定を行ないます。 +% \begin{macrocode} +% +%\plIncludeInRelease{2017/04/08}{\set@fontsize} +% {Construct \ystrutbox}% +%<*plcore|platexrelease|trace> +\def\set@fontsize#1#2#3{% + \@defaultunits\@tempdimb#2pt\relax\@nnil + \edef\f@size{\strip@pt\@tempdimb}% + \@defaultunits\@tempskipa#3pt\relax\@nnil + \edef\f@baselineskip{\the\@tempskipa}% + \edef\f@linespread{#1}% + \let\baselinestretch\f@linespread + \def\size@update{% + \baselineskip\f@baselineskip\relax + \baselineskip\f@linespread\baselineskip + \normalbaselineskip\baselineskip +% \end{macrocode} +% ここで、ベースラインシフトの調整と支柱を組み立てます。 +% \changes{v1.6f}{2017/02/20}{\cs{ystrutbox}を組み立てるように} +% \begin{macrocode} + \adjustbaseline + \setbox\ystrutbox\hbox{\yoko + \vrule\@width\z@ + \@height.7\baselineskip \@depth.3\baselineskip}% + \setbox\tstrutbox\hbox{\tate + \vrule\@width\z@ + \@height.5\baselineskip \@depth.5\baselineskip}% + \setbox\zstrutbox\hbox{\tate + \vrule\@width\z@ + \@height.7\baselineskip \@depth.3\baselineskip}% +% \end{macrocode} +% フォントサイズとベースラインに関する診断情報を出力します。 +% \begin{macrocode} +%<*trace> + \ifnum \tracingfonts>\tw@ + \ifx\f@linespread\@empty + \let\reserved@a\@empty + \else + \def\reserved@a{\f@linespread x}% + \fi + \@font@info{Changing size to\space + \f@size/\reserved@a \f@baselineskip}% + \aftergroup\type@restoreinfo + \fi +% + \let\size@update\relax}} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\set@fontsize} +% {Construct \ystrutbox}% +%\def\set@fontsize#1#2#3{% +% \@defaultunits\@tempdimb#2pt\relax\@nnil +% \edef\f@size{\strip@pt\@tempdimb}% +% \@defaultunits\@tempskipa#3pt\relax\@nnil +% \edef\f@baselineskip{\the\@tempskipa}% +% \edef\f@linespread{#1}% +% \let\baselinestretch\f@linespread +% \def\size@update{% +% \baselineskip\f@baselineskip\relax +% \baselineskip\f@linespread\baselineskip +% \normalbaselineskip\baselineskip +% \adjustbaseline +% \setbox\strutbox\hbox{\yoko +% \vrule\@width\z@ +% \@height.7\baselineskip \@depth.3\baselineskip}% +% \setbox\tstrutbox\hbox{\tate +% \vrule\@width\z@ +% \@height.5\baselineskip \@depth.5\baselineskip}% +% \setbox\zstrutbox\hbox{\tate +% \vrule\@width\z@ +% \@height.7\baselineskip \@depth.3\baselineskip}% +%<*trace> +% \ifnum \tracingfonts>\tw@ +% \ifx\f@linespread\@empty +% \let\reserved@a\@empty +% \else +% \def\reserved@a{\f@linespread x}% +% \fi +% \@font@info{Changing size to\space +% \f@size/\reserved@a \f@baselineskip}% +% \aftergroup\type@restoreinfo +% \fi +% +% \let\size@update\relax}} +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\adjustbaseline} +% 現在の和文フォントの空白(EUCコード\texttt{0xA1A1})の中央に +% 現在の欧文フォントの``/''の中央がくるようにベースラインシフトを設定します。 +% \changes{v1.0c}{1995/08/31}{欧文書体の基準を`M'から`/'に変更} +% \changes{v1.2}{1995/11/21}{縦組時のみ調整するようにした} +% +% 当初はまずベースラインシフト量をゼロにしていましたが、 +% \cs{tbaselineshift}を連続して変更した後に鈎括弧類を使うと余計なアキが +% でる問題が起こるため、\cs{tbaselineshift}をゼロクリアする処理を削除し +% ました。 +% \changes{v1.3j}{2000/10/24}{文頭に鈎括弧などがあるときに余計なアキがで +% る問題に対処} +% +% しかし、それではベースラインシフトを調整済みの欧文ボックスと比較して +% しまうため、計算した値が大きくなってしまいます。そこで、このボックス +% の中でゼロにするようにしました。また、``/''と比較していたのを``M''に +% しました。 +% \changes{v1.3k}{2001/05/10}{欧文書体の基準を再び`/`から`M'に変更} +% \changes{v1.3l}{2002/04/05}{\cs{adjustbaseline}でフォントの基準値が縦書き +% 以外では設定されないのを修正} +% +% 全角空白(EUCコード\texttt{0xA1A1})はJFMで特殊なタイプに分類される可能性 +% があるため、和文書体の基準を「漢」(JISコード\texttt{0x3441})へ変更しました。 +% \changes{v1.6h}{2017/08/05}{和文書体の基準を全角空白から「漢」に変更} +% +% \begin{macrocode} +\newbox\adjust@box +\newdimen\adjust@dimen +% \end{macrocode} +% +% \begin{macrocode} +% +%\plIncludeInRelease{2017/07/29}{\adjustbaseline} +% {Change zenkaku reference}% +%<*plcore|platexrelease|trace> +\def\adjustbaseline{% +% \end{macrocode} +% 和文フォントの基準値を設定します。 +% \begin{macrocode} + \setbox\adjust@box\hbox{\char\jis"3441}%" + \cht\ht\adjust@box + \cdp\dp\adjust@box + \cwd\wd\adjust@box + \cvs\normalbaselineskip + \chs\cwd + \cHT\cht \advance\cHT\cdp +% \end{macrocode} +% 基準となる欧文フォントの文字を含んだボックスを作成し、 +% ベースラインシフト量の計算を行ないます。 +% 計算式は次のとおりです。 +% +% \begin{eqnarray*} +% \textmc{ベースラインシフト量} &=& +% \{ (\textmc{漢の深さ}) - (\textmc{Mの深さ}) \} \\ +% &&- \frac{(\textmc{漢の高さ$+$深さ}) +% - (\textmc{Mの高さ$+$深さ})}{2} +% \end{eqnarray*} +% \changes{v1.6h}{2017/08/05}{traceのコードの\texttt{\%}忘れを修正} +% +% \begin{macrocode} + \iftdir + \setbox\adjust@box\hbox{\tbaselineshift\z@ M}% + \adjust@dimen\ht\adjust@box + \advance\adjust@dimen\dp\adjust@box + \advance\adjust@dimen-\cHT + \divide\adjust@dimen\tw@ + \advance\adjust@dimen\cdp + \advance\adjust@dimen-\dp\adjust@box + \tbaselineshift\adjust@dimen +% \ifnum \tracingfonts>\tw@ +% \typeout{baselineshift:\the\tbaselineshift}% +% \fi + \fi} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\adjustbaseline} +% {Change zenkaku reference}% +%\def\adjustbaseline{% +% \setbox\adjust@box\hbox{\char\euc"A1A1}%" +% \cht\ht\adjust@box +% \cdp\dp\adjust@box +% \cwd\wd\adjust@box +% \cvs\normalbaselineskip +% \chs\cwd +% \cHT\cht \advance\cHT\cdp +% \iftdir +% \setbox\adjust@box\hbox{\tbaselineshift\z@ M}% +% \adjust@dimen\ht\adjust@box +% \advance\adjust@dimen\dp\adjust@box +% \advance\adjust@dimen-\cHT +% \divide\adjust@dimen\tw@ +% \advance\adjust@dimen\cdp +% \advance\adjust@dimen-\dp\adjust@box +% \tbaselineshift\adjust@dimen +%<*trace> +% \ifnum \tracingfonts>\tw@ +% \typeout{baselineshift:\the\tbaselineshift} +% \fi +% +% \fi} +%\plEndIncludeInRelease +%<*plcore> +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\romanencoding} +% \begin{macro}{\kanjiencoding} +% \begin{macro}{\fontencoding} +% 書体のエンコードを指定するコマンドです。 +% |\fontencoding|コマンドは和欧文のどちらかに影響します。 +% |\DeclareKanjiEncoding|で指定されたエンコードは和文エンコードとして、 +% |\DeclareFontEncoding|で指定されたエンコードは欧文エンコードとして +% 認識されます。 +% +% |\kanjiencoding|と|\romanencoding|は与えられた引数が、 +% エンコードとして登録されているかどうかだけを確認し、 +% それが和文か欧文かのチェックは行なっていません。 +% そのため、高速に動作をしますが、|\kanjiencoding|に欧文エンコードを指定したり、 +% 逆に|\romanencoding|に和文エンコードを指定した場合はエラーとなります。 +% \begin{macrocode} +\DeclareRobustCommand\romanencoding[1]{% + \expandafter\ifx\csname T@#1\endcsname\relax + \@latex@error{Encoding scheme `#1' unknown}\@eha + \else + \edef\f@encoding{#1}% + \ifx\cf@encoding\f@encoding + \let\enc@update\relax + \else + \let\enc@update\@@enc@update + \fi + \fi +} +\DeclareRobustCommand\kanjiencoding[1]{% + \expandafter\ifx\csname T@#1\endcsname\relax + \@latex@error{KANJI Encoding scheme `#1' unknown}\@eha + \else + \edef\k@encoding{#1}% + \ifx\ck@encoding\k@encoding + \let\kenc@update\relax + \else + \let\kenc@update\@@kenc@update + \fi + \fi +} +\DeclareRobustCommand\fontencoding[1]{% + \edef\tmp@item{{#1}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kenc@list}% + \ifin@ \kanjiencoding{#1}\else\romanencoding{#1}\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@@kenc@update} +% |\kanjiencoding|コマンドのコードからもわかるように、 +% |\ck@encoding|と|\k@encoding|が異なる場合、 +% |\kenc@update|コマンドは|\@@kenc@update|コマンドと等しくなります。 +% +% |\@@kenc@update|コマンドは、そのエンコードでのデフォルト値を設定するための +% コマンドです。欧文用の|\@@enc@update|コマンドでは、 +% \mlineplus{2}行目と\mlineplus{3}行目のような代入もしていますが、 +% 和文用にはコメントにしてあります。 +% これらは|\DeclareTextCommand|や|\ProvideTextCommand|などで +% エンコードごとに設定されるコマンドを使うための仕組みです。 +% しかし、和文エンコードに依存するようなコマンドやマクロを作成することは、 +% 現時点では、ないと思います。 +% +% \changes{v1.0c}{1995/08/22}{縦横用エンコードの保存} +% \begin{macrocode} +\def\@@kenc@update{% +% \expandafter\let\csname\ck@encoding -cmd\endcsname\@changed@kcmd +% \expandafter\let\csname\k@encoding-cmd\endcsname\@current@cmd + \default@KT + \csname T@\k@encoding\endcsname + \csname D@\k@encoding\endcsname + \let\kenc@update\relax + \let\ck@encoding\k@encoding + \edef\tmp@item{{\k@encoding}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kyenc@list}% + \ifin@ \let\cy@encoding\k@encoding + \else + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\ktenc@list}% + \ifin@ \let\ct@encoding\k@encoding + \else + \@latex@error{KANJI Encoding scheme `\k@encoding' unknown}\@eha + \fi + \fi +} +\let\kenc@update\relax +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@changed@kcmd} +% |\@changed@cmd|の和文エンコーディングバージョン。 +% \changes{v1.3n}{2004/08/10}{和文エンコーディングの切り替えを有効化} +% \begin{macrocode} +\def\@changed@kcmd#1#2{% + \ifx\protect\@typeset@protect + \@inmathwarn#1% + \expandafter\ifx\csname\ck@encoding\string#1\endcsname\relax + \expandafter\ifx\csname ?\string#1\endcsname\relax + \expandafter\def\csname ?\string#1\endcsname{% + \TextSymbolUnavailable#1% + }% + \fi + \global\expandafter\let + \csname\cf@encoding \string#1\expandafter\endcsname + \csname ?\string#1\endcsname + \fi + \csname\ck@encoding\string#1% + \expandafter\endcsname + \else + \noexpand#1% + \fi} +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@notkfam} +% \begin{macro}{\@notffam} +% |\fontfamily|コマンド内で使用するフラグです。 +% |@notkfam|フラグは和文ファミリでなかったことを、 +% |@notffam|フラグは欧文ファミリでなかったことを示します。 +% +% \changes{v1.2}{1995/11/21}{\cs{fontfamily}コマンド用のフラグ追加} +% \begin{macrocode} +\newif\if@notkfam +\newif\if@notffam +% \end{macrocode} +% \changes{v1.3m}{2004/06/14}{\cs{fontfamily}コマンド内部フラグ変更} +% \begin{macrocode} +\newif\if@tempswz +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\romanfamily} +% \begin{macro}{\kanjifamily} +% \begin{macro}{\fontfamily} +% 書体のファミリを指定するコマンドです。 +% +% |\kanjifamily|と|\romanfamily|は与えられた引数が、 +% 和文あるいは欧文のファミリとして正しいかのチェックは行なっていません。 +% そのため、高速に動作をしますが、|\kanjifamily|に欧文ファミリを指定したり、 +% 逆に|\romanfamily|に和文ファミリを指定した場合は、エラーとなり、 +% 代用フォントかエラーフォントが使われます。 +% \begin{macrocode} +\DeclareRobustCommand\romanfamily[1]{\edef\f@family{#1}} +\DeclareRobustCommand\kanjifamily[1]{\edef\k@family{#1}} +% \end{macrocode} +% +% |\fontfamily|は、指定された値によって、和文ファミリか欧文ファミリ、 +% \emph{あるいは両方}のファミリを切り替えます。 +% 和欧文ともに無効なファミリ名が指定された場合は、和欧文ともに代替書体が +% 使用されます。 +% +% 引数が|\rmfamily|のような名前で与えられる可能性があるため、 +% まず、これを展開したものを作ります。 +% +% また、和文ファミリと欧文ファミリのそれぞれになかったことを示すフラグを +% 偽にセットします。 +% +% \changes{v1.2}{1995/11/21}{代用フォントが使われないバグを修正} +% \changes{v1.3m}{2004/06/14}{\cs{fontfamily}コマンド内部フラグ変更} +% \changes{v1.3o}{2005/01/04}{\cs{fontfamily}中のフラグ修正} +% \begin{macrocode} +\DeclareRobustCommand\fontfamily[1]{% + \edef\tmp@item{{#1}}% + \@notkfamfalse + \@notffamfalse +% \end{macrocode} +% 次に、この引数が|\kfam@list|に登録されているかどうかを調べます。 +% 登録されていれば、|\k@family|にその値を入れます。 +% \begin{macrocode} + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kfam@list}% + \ifin@ \edef\k@family{#1}% +% \end{macrocode} +% そうでないときは、|\notkfam@list|に登録されているかどうかを調べます。 +% 登録されていれば、この引数は和文ファミリではありませんので、 +% |\@notkfam|フラグを真にして、欧文ファミリのルーチンに移ります。 +% +% このとき、|\efam@list|を調べるのではないことに注意をしてください。 +% |\efam@list|を調べ、これにないファミリを和文ファミリであるとすると、 +% たとえば、欧文ナールファミリが定義されているけれども、和文ナールファミリ +% が未定義の場合、|\fontfamily{nar}|という指定は、|nar|が|\efam@list|にだけ、 +% 登録されているため、和文書体をナールにすることができません。 +% +% 逆に、|\kfam@list|に登録されていないからといって、|\k@family|に|nar|を設定 +% すると、|cmr|のようなファミリも|\k@family|に設定される可能性があります。 +% したがって、「欧文でない」を明示的に示す|\notkfam@list|を見る必要があります。 +% \begin{macrocode} + \else + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\notkfam@list}% + \ifin@ \@notkfamtrue +% \end{macrocode} +% |\notkfam@list|に登録されていない場合は、 +% フォント定義ファイルが存在するかどうかを調べます。 +% ファイルが存在する場合は、|\k@family|を変更します。 +% ファイルが存在しない場合は、|\notkfam@list|に登録します。 +% +% |\kenc@list|に登録されているエンコードと、指定された和文ファミリの +% 組合せのフォント定義ファイルが存在する場合は、|\k@family|に指定された +% 値を入れます。 +% \changes{v1.3c}{1997/04/24}% +% {フォント定義ファイル名を小文字に変換してから探すようにした。} +% \changes{v1.3e}{1997/07/10}{fdファイル名の小文字化が効いていなかったのを +% 修正。ありがとう、大岩さん} +% \begin{macrocode} + \else + \@tempswzfalse + \def\fam@elt{\noexpand\fam@elt}% + \message{(I search kanjifont definition file:}% + \def\enc@elt<##1>{\message{.}% + \edef\reserved@a{\lowercase{\noexpand\IfFileExists{##1#1.fd}}}% + \reserved@a{\@tempswztrue}{}\relax}% + \kenc@list + \message{)}% + \if@tempswz + \edef\k@family{#1}% +% \end{macrocode} +% つぎの部分が実行されるのは、和文ファミリとして認識できなかった場合です。 +% この場合は、|\@notkfam|フラグを真にして、|\notkfam@list|に登録します。 +% \changes{v1.1b}{1995/05/10}{\cs{notkfam@list}に、 +% エンコードごとに登録されてしまうのを修正した。欧文についても同様。} +% \begin{macrocode} + \else + \@notkfamtrue + \xdef\notkfam@list{\notkfam@list\fam@elt<#1>}% + \fi +% \end{macrocode} +% |\kfam@list|と|\notkfam@list|に登録されているかどうかを +% 調べた|\ifin@|を閉じます。 +% \begin{macrocode} + \fi\fi +% \end{macrocode} +% 欧文ファミリの場合も、和文ファミリと同様の方法で確認をします。 +% \changes{v1.3e}{1997/07/10}{fdファイル名の小文字化が効いていなかったのを修正} +% \begin{macrocode} + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\ffam@list}% + \ifin@ \edef\f@family{#1}\else + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\notffam@list}% + \ifin@ \@notffamtrue \else + \@tempswzfalse + \def\fam@elt{\noexpand\fam@elt}% + \message{(I search font definition file:}% + \def\enc@elt<##1>{\message{.}% + \edef\reserved@a{\lowercase{\noexpand\IfFileExists{##1#1.fd}}}% + \reserved@a{\@tempswztrue}{}\relax}% + \fenc@list + \message{)}% + \if@tempswz + \edef\f@family{#1}% + \else + \@notffamtrue + \xdef\notffam@list{\notffam@list\fam@elt<#1>}% + \fi + \fi\fi +% \end{macrocode} +% 最後に、指定された文字列が、和文ファミリと欧文ファミリのいずれか、 +% あるいは両方として認識されたかどうかを確認します。 +% +% どちらとも認識されていない場合は、ファミリの指定ミスですので、 +% 代用フォントを使うために、故意に指定された文字列をファミリに +% 入れます。 +% \begin{macrocode} + \if@notkfam\if@notffam + \edef\k@family{#1}\edef\f@family{#1}% + \fi\fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\romanseries} +% \begin{macro}{\kanjiseries} +% \begin{macro}{\fontseries} +% 書体のシリーズを指定するコマンドです。 +% |\fontseries|コマンドは和欧文の両方に影響します。 +% \begin{macrocode} +\DeclareRobustCommand\romanseries[1]{\edef\f@series{#1}} +\DeclareRobustCommand\kanjiseries[1]{\edef\k@series{#1}} +\DeclareRobustCommand\fontseries[1]{\kanjiseries{#1}\romanseries{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\romanshape} +% \begin{macro}{\kanjishape} +% \begin{macro}{\fontshape} +% 書体のシェイプを指定するコマンドです。 +% |\fontshape|コマンドは和欧文の両方に影響します。 +% \begin{macrocode} +\DeclareRobustCommand\romanshape[1]{\edef\f@shape{#1}} +\DeclareRobustCommand\kanjishape[1]{\edef\k@shape{#1}} +\DeclareRobustCommand\fontshape[1]{\kanjishape{#1}\romanshape{#1}} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\usekanji} +% \begin{macro}{\useroman} +% \begin{macro}{\usefont} +% 書体属性を一度に指定するコマンドです。 +% 和文書体には|\usekanji|を、欧文書体には|\useroman|を指定してください。 +% +% |\usefont|コマンドは、第一引数で指定されるエンコードによって、 +% 和文または欧文フォントを切り替えます。 +% \begin{macrocode} +\def\usekanji#1#2#3#4{% + \kanjiencoding{#1}\kanjifamily{#2}\kanjiseries{#3}\kanjishape{#4}% + \selectfont\ignorespaces} +\def\useroman#1#2#3#4{% + \romanencoding{#1}\romanfamily{#2}\romanseries{#3}\romanshape{#4}% + \selectfont\ignorespaces} +\def\usefont#1#2#3#4{% + \edef\tmp@item{{#1}}% + \expandafter\expandafter\expandafter + \inlist@\expandafter\tmp@item\expandafter{\kenc@list}% + \ifin@ \usekanji{#1}{#2}{#3}{#4}% + \else\useroman{#1}{#2}{#3}{#4}% + \fi} +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\normalfont} +% 書体をデフォルト値にするコマンドです。 +% 和文書体もデフォルト値になるように再定義しています。 +% ただし高速化のため、|\usekanji|と|\useroman|を展開し、 +% |\selectfont|を一度しか呼び出さないようにしています。 +% \begin{macrocode} +\DeclareRobustCommand\normalfont{% + \kanjiencoding{\kanjiencodingdefault}% + \kanjifamily{\kanjifamilydefault}% + \kanjiseries{\kanjiseriesdefault}% + \kanjishape{\kanjishapedefault}% + \romanencoding{\encodingdefault}% + \romanfamily{\familydefault}% + \romanseries{\seriesdefault}% + \romanshape{\shapedefault}% + \selectfont\ignorespaces} +\adjustbaseline +\let\reset@font\normalfont +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\mcfamily} +% \begin{macro}{\gtfamily} +% 和文書体を明朝体にする|\mcfamily|とゴシック体にする|\gtfamily|を定義します。 +% これらは、|\rmfamily|などに対応します。 +% |\mathmc|と|\mathgt|は数式内で用いるときのコマンド名です。 +% \begin{macrocode} +\DeclareRobustCommand\mcfamily + {\not@math@alphabet\mcfamily\mathmc + \kanjifamily\mcdefault\selectfont} +\DeclareRobustCommand\gtfamily + {\not@math@alphabet\gtfamily\mathgt + \kanjifamily\gtdefault\selectfont} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% +% \begin{macro}{\romanprocess@table} +% \begin{macro}{\kanjiprocess@table} +% \begin{macro}{\process@table} +% 文書の先頭で、和文デフォルトフォントの変更が反映されないのを修正します。 +% \changes{v1.3g}{1999/04/05}{plpatch.ltxの内容を反映。 +% ありがとう、山本さん。} +% \begin{macrocode} +\let\romanprocess@table\process@table +\def\kanjiprocess@table{% + \kanjiencoding{\kanjiencodingdefault}% + \kanjifamily{\kanjifamilydefault}% + \kanjiseries{\kanjiseriesdefault}% + \kanjishape{\kanjishapedefault}% +} +\def\process@table{% + \romanprocess@table + \kanjiprocess@table +} +\@onlypreamble\romanprocess@table +\@onlypreamble\kanjiprocess@table +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% +% \begin{macro}{\textunderscore} +% \changes{v1.1b}{1995/04/12}{下線マクロを追加} +% このコマンドはテキストモードで指定された|\_|の内部コマンドです。 +% 縦組での位置を調整するように再定義をします。 +% もとは\file{ltoutenc.dtx}で定義されています。 +% +% なお、|\_|を数式モードで使うと|\mathunderscore|が実行されます。 +% +% コミュニティ版では縦数式ディレクションでベースライン補正量が +% 変だったのを直しました。あわせて横ディレクションでもベースライン +% 補正に追随するようにしています。 +% \changes{v1.6g}{2017/03/07}{ベースライン補正量を修正} +% \begin{macrocode} +% +%\plIncludeInRelease{2017/04/08}{\textunderscore} +% {Baseline shift for \textunderscore}% +%<*plcore|platexrelease> +\DeclareTextCommandDefault{\textunderscore}{% + \leavevmode\kern.06em + \raise-\iftdir\ifmdir\ybaselineshift + \else\tbaselineshift\fi + \else\ybaselineshift\fi + \vbox{\hrule\@width.3em}} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\textunderscore} +% {Baseline shift for \textunderscore}% +%\DeclareTextCommandDefault{\textunderscore}{% +% \leavevmode\kern.06em +% \iftdir\raise-\tbaselineshift\fi +% \vbox{\hrule\@width.3em}} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% +% \subsection{合成文字} +% \LaTeXe{}のカーネルのコードをそのまま使うと、p\TeX{}のベースライン +% 補正量がゼロでないときに合成文字がおかしくなっていたため、対策します。 +% +% \begin{macro}{\pltx@saved@oalign} +% |\b{...}|, |\c{...}|, |\d{...}|, |\k{...}|などの合成文字を修正するため、 +% \file{ltplain.dtx}の|\oalign|を上書きします。 +% \begin{macrocode} +%%\plIncludeInRelease{0000/00/00}{\pltx@saved@oalign} +%% {Special case! (This block is required for any emulation date)}% +%<*plcore|platexrelease> +% \end{macrocode} +% まず、元の\LaTeX{}のコードをコピーしたものです。 +% 接頭辞|\pltx@saved...|を付けておきます。 +% \changes{v1.6r}{2018/07/25}{コード追加} +% \begin{macrocode} +\def\pltx@saved@oalign#1{\leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex% + \ialign{##\crcr#1\crcr}}} +% +%%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pltx@oalign} +% 次に、\pLaTeX{}の新しいコードです。 +% \changes{v1.6r}{2018/07/25}{コード追加} +% \begin{macrocode} +%\plIncludeInRelease{2018/07/28}{\pltx@oalign} +% {Fix for non-zero baselineshift}% +%<*plcore|platexrelease> +\def\pltx@oalign#1{\ifmmode + \leavevmode\vtop{\baselineskip\z@skip \lineskip.25ex% + \ialign{##\crcr#1\crcr}}% +\else + \iftdir\ybaselineshift\tbaselineshift\fi + \m@th$\hbox{\vtop{\baselineskip\z@skip \lineskip.25ex% + \ialign{##\crcr#1\crcr}}}$% +\fi} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\pltx@oalign} +% {Fix for non-zero baselineshift}% +%\let\pltx@oalign\@undefined +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pltx@saved@ltx@sh@ft} +% |\b{...}|と|\d{...}|の合成文字を修正するため、 +% \file{ltplain.dtx}の|\ltx@sh@ft|を上書きします。 +% \begin{macrocode} +%%\plIncludeInRelease{0000/00/00}{\pltx@saved@ltx@sh@ft} +%% {Special case! (This block is required for any emulation date)}% +%<*plcore|platexrelease> +% \end{macrocode} +% まず、元の\LaTeX{}のコードをコピーしたものです。 +% 接頭辞|\pltx@saved...|を付けておきます。 +% \changes{v1.6r}{2018/07/25}{コード追加} +% \begin{macrocode} +\def\pltx@saved@ltx@sh@ft #1{% + \dimen@ #1% + \kern \strip@pt + \fontdimen1\font \dimen@ + } % kern by #1 times the current slant +% +%%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pltx@ltx@sh@ft} +% 次に、\pLaTeX{}の新しいコードです。 +% \changes{v1.6r}{2018/07/25}{コード追加} +% \begin{macrocode} +%\plIncludeInRelease{2018/07/28}{\pltx@ltx@sh@ft} +% {Fix for non-zero baselineshift}% +%<*plcore|platexrelease> +\def\pltx@ltx@sh@ft #1{% + \ybaselineshift\z@ + \dimen@ #1% + \kern \strip@pt + \fontdimen1\font \dimen@ + } % kern by #1 times the current slant +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\pltx@ltx@sh@ft} +% {Fix for non-zero baselineshift}% +%\let\pltx@ltx@sh@ft\@undefined +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\g@tlastchart@} +% \TeX\ Live 2015で追加された\cs{lastnodechar}を利用して、 +% 「直前の文字」の符号位置を得るコードです。 +% \cs{lastnodechar}が未定義の場合は$-1$が返ります。 +% \changes{v1.6c}{2016/06/06}{マクロ追加} +% \begin{macrocode} +%\plIncludeInRelease{2016/06/10}{\g@tlastchart@} +% {Added \g@tlastchart@}% +%<*plcore|platexrelease> +\def\g@tlastchart@#1{#1\ifx\lastnodechar\@undefined\m@ne\else\lastnodechar\fi} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\g@tlastchart@} +% {Added \g@tlastchart@}% +%\let\g@tlastchart@\@undefined +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pltx@isletter} +% 第一引数のマクロ(|#1|)の置換テキストが、カテゴリコード11か12の文字トークン1文字であった +% 場合に第二引数の内容に展開され、そうでない場合は第三引数の内容に展開されます。 +% \changes{v1.6c}{2016/06/06}{マクロ追加} +% \changes{v1.6d}{2016/06/19}{アクセント付き文字をさらに修正(forum:1951)} +% \changes{v1.6r}{2018/07/25}{PDFのしおりにアクセント文字が含まれる場合に対応} +% \begin{macrocode} +%\plIncludeInRelease{2018/07/28}{\pltx@isletter} +% {Support PD1 encoding}% +%<*plcore|platexrelease> +\def\pltx@mark{\pltx@mark@} +\let\pltx@scanstop\relax +\long\def\pltx@cond#1\fi{% + #1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} +\def\pltx@pdfencA{PD1} +\def\pltx@composite@chkenc{% + \ifx\pltx@pdfencA\f@encoding + \expandafter\@firstoftwo + \else + \expandafter\@secondoftwo + \fi} +\long\def\pltx@isletter#1{% + \expandafter\pltx@isletter@i#1\pltx@scanstop} +\long\def\pltx@isletter@i#1\pltx@scanstop{% + \pltx@cond\ifx\pltx@mark#1\pltx@mark\fi{\@firstoftwo}% + {\pltx@isletter@ii\pltx@scanstop#1\pltx@scanstop{}#1\pltx@mark}} +\long\def\pltx@isletter@ii#1\pltx@scanstop#{% + \pltx@cond\ifx\pltx@mark#1\pltx@mark\fi% + {\pltx@isletter@iii}{\pltx@isletter@iv}} +\long\def\pltx@isletter@iii#1\pltx@mark{\@secondoftwo} +\long\def\pltx@isletter@iv#1#2#3\pltx@mark{% + \pltx@cond\ifx\pltx@mark#3\pltx@mark\fi{% + \pltx@cond{\ifnum0\ifcat A\noexpand#21\fi\ifcat=\noexpand#21\fi>\z@}\fi + {\@firstoftwo}{\pltx@composite@chkenc}% + }{\pltx@composite@chkenc}} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{2016/06/10}{\pltx@isletter} +% {Added \pltx@isletter}% +%\def\pltx@mark{\pltx@mark@} +%\let\pltx@scanstop\relax +%\long\def\pltx@cond#1\fi{% +% #1\expandafter\@firstoftwo\else\expandafter\@secondoftwo\fi} +%\long\def\pltx@isletter#1{% +% \expandafter\pltx@isletter@i#1\pltx@scanstop} +%\long\def\pltx@isletter@i#1\pltx@scanstop{% +% \pltx@cond\ifx\pltx@mark#1\pltx@mark\fi{\@firstoftwo}% +% {\pltx@isletter@ii\pltx@scanstop#1\pltx@scanstop{}#1\pltx@mark}} +%\long\def\pltx@isletter@ii#1\pltx@scanstop#{% +% \pltx@cond\ifx\pltx@mark#1\pltx@mark\fi% +% {\pltx@isletter@iii}{\pltx@isletter@iv}} +%\long\def\pltx@isletter@iii#1\pltx@mark{\@secondoftwo} +%\long\def\pltx@isletter@iv#1#2#3\pltx@mark{% +% \pltx@cond\ifx\pltx@mark#3\pltx@mark\fi{% +% \pltx@cond{\ifnum0\ifcat A\noexpand#21\fi\ifcat=\noexpand#21\fi>\z@}\fi +% {\@firstoftwo}{\@secondoftwo}% +% }{\@secondoftwo}} +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\pltx@isletter} +% {Added \pltx@isletter}% +%\let\pltx@isletter\@undefined +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\@text@composite} +% 合成文字の内部命令です。 +% v1.6aで誤って\LaTeX{}の定義を上書きしてしまいましたが、v1.6cで外しました。 +% \changes{v1.6a}{2016/04/01}{ベースライン補正量が0でないときに +% \cs{AA}など一部の合成文字がおかしくなることに対応するため再定義} +% \changes{v1.6c}{2016/06/06}{v1.6aでの誤った再定義を削除(forum:1941)} +% \begin{macrocode} +%\plIncludeInRelease{2016/06/10}{\@text@composite} +% {Fix for non-zero baselineshift (wrong)}% +%\def\@text@composite#1#2#3\@text@composite{% +% \expandafter\@text@composite@x +% \csname\string#1-\string#2\endcsname} +%\plEndIncludeInRelease +%\plIncludeInRelease{2016/04/17}{\@text@composite} +% {Fix for non-zero baselineshift (wrong)}% +%\def\@text@composite#1#2#3#{% +% \begingroup +% \setbox\z@=\hbox\bgroup% +% \ybaselineshift\z@\tbaselineshift\z@ +% \expandafter\@text@composite@x +% \csname\string#1-\string#2\endcsname} +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\@text@composite} +% {Fix for non-zero baselineshift (wrong)}% +%\def\@text@composite#1#2#3\@text@composite{% +% \expandafter\@text@composite@x +% \csname\string#1-\string#2\endcsname} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pltx@saved@text@composite@x} +% 合成文字の内部命令|\@text@composite@x|のために、2通りの定義を準備します。 +% \begin{macrocode} +%%\plIncludeInRelease{0000/00/00}{\pltx@saved@text@composite@x} +%% {Special case! (This block is required for any emulation date)}% +%<*plcore|platexrelease> +% \end{macrocode} +% まず、元の\LaTeX{}のコードをコピーしたものです。 +% 接頭辞|\pltx@saved...|を付けておきます。 +% \changes{v1.6r}{2018/07/25}{コード整理} +% \begin{macrocode} +\def\pltx@saved@text@composite@x#1{% + \ifx#1\relax + \expandafter\@secondoftwo + \else + \expandafter\@firstoftwo + \fi + #1} +% +%%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\pltx@text@composite@x} +% 次に、\pLaTeX{}の新しいコードです。|\g@tlastchart@|と|\pltx@isletter|を使います。 +% \changes{v1.6r}{2018/07/25}{コード整理} +% \begin{macrocode} +%\plIncludeInRelease{2018/07/28}{\pltx@text@composite@x} +% {Fix for non-zero baselineshift}% +%<*plcore|platexrelease> +\def\pltx@text@composite@x#1#2{% + \ifx#1\relax + #2% + \else\pltx@isletter{#1}{#1}{% + \begingroup +% \end{macrocode} +% |#1|を実際に組んでみて、符号位置の取得を試みます。 +% 結果は|\@tempcntb|に保存されます。取得に失敗した場合は$-1$です。 +% \begin{macrocode} + \setbox\z@\hbox\bgroup + \ybaselineshift\z@\tbaselineshift\z@ + #1% + \g@tlastchart@\@tempcntb + \xdef\pltx@composite@temp{\noexpand\@tempcntb=\the\@tempcntb\relax}% + \aftergroup\pltx@composite@temp + \egroup +% \end{macrocode} +% アクセントが付く「本体の文字」が欧文文字と推測される場合には、 +% 一旦数式モードに入ることによって|\xkanjiskip|が前後に入るようにします。 +% ここでは、取得に失敗した場合も欧文文字であると仮定しています。 +% また、符号位置の取得に成功していた場合は、その|\xspcode|の状態に応じて、 +% 数式モードの前後に|\null|を補って|\xkanjiskip|の挿入を抑制します。 +% \begin{macrocode} + \ifnum\@tempcntb<\@cclvi + \ifnum\@tempcntb>\m@ne + \ifodd\xspcode\@tempcntb\else\leavevmode\null\fi + \fi + \begingroup\m@th$% + \ifx\textbaselineshiftfactor\@undefined\else + \textbaselineshiftfactor\z@\fi + \box\z@ + $\endgroup + \ifnum\@tempcntb>\m@ne + \ifnum\xspcode\@tempcntb<2\null\fi + \fi +% \end{macrocode} +% アクセントが付く「本体の文字」が和文文字と推測される場合には、 +% ベースライン補正を行わずに出力します。 +% \begin{macrocode} + \else + {\ybaselineshift\z@\tbaselineshift\z@#1}% + \fi + \endgroup}% + \fi +} +% +%\plEndIncludeInRelease +%\plIncludeInRelease{2016/06/10}{\pltx@text@composite@x} +% {Fix for non-zero baselineshift}% +%\def\pltx@text@composite@x#1#2{% +% \ifx#1\relax +% #2% +% \else\pltx@isletter{#1}{#1}{% +% \begingroup +% \setbox\z@\hbox\bgroup% +% \ybaselineshift\z@\tbaselineshift\z@ +% #1% +% \g@tlastchart@\@tempcntb +% \xdef\pltx@composite@temp{\noexpand\@tempcntb=\the\@tempcntb\relax}% +% \aftergroup\pltx@composite@temp +% \egroup +% \ifnum\@tempcntb<\z@ +% \@tempdima=\iftdir +% \ifmdir +% \ifmmode\tbaselineshift\else\ybaselineshift\fi +% \else +% \tbaselineshift +% \fi +% \else +% \ybaselineshift +% \fi +% \@tempcntb=\@cclvi +% \else\@tempdima=\z@ +% \fi +% \ifnum\@tempcntb<\@cclvi +% \ifnum\@tempcntb>\m@ne\ifnum\@tempcntb<\@cclvi +% \ifodd\xspcode\@tempcntb\else\leavevmode\hbox{}\fi +% \fi\fi +% \begingroup\mathsurround\z@$% +% \ifx\textbaselineshiftfactor\@undefined\else +% \textbaselineshiftfactor\z@\fi +% \box\z@ +% $\endgroup% +% \ifnum\@tempcntb>\m@ne\ifnum\@tempcntb<\@cclvi +% \ifnum\xspcode\@tempcntb<2\hbox{}\fi +% \fi\fi +% \else +% \ifdim\@tempdima=\z@{\ybaselineshift\z@\tbaselineshift\z@#1}% +% \else\leavevmode\lower\@tempdima\box\z@\fi +% \fi +% \endgroup}% +% \fi +%} +%\plEndIncludeInRelease +%\plIncludeInRelease{2016/04/17}{\pltx@text@composite@x} +% {Fix for non-zero baselineshift}% +%\def\pltx@text@composite@x#1#2{% +% \ifx#1\relax +% \expandafter\@secondoftwo +% \else +% \expandafter\@firstoftwo +% \fi +% #1{#2}\egroup +% \leavevmode +% \expandafter\lower +% \iftdir +% \ifmdir +% \ifmmode\tbaselineshift\else\ybaselineshift\fi +% \else +% \tbaselineshift +% \fi +% \else +% \ybaselineshift +% \fi +% \box\z@ +% \endgroup} +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\pltx@text@composite@x} +% {Fix for non-zero baselineshift}% +%\let\pltx@text@composite@x\@undefined +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\fixcompositeaccent} +% \begin{macro}{\nofixcompositeaccent} +% \begin{macro}{\@text@composite@x} +% 上記2通りの定義のうち、本当は\pLaTeX{}の定義を用いたいのですが、 +% 想定外のエラーが発生するのを防ぐため、 +% デフォルトでは\LaTeX{}の定義のままとしておきます。 +% そして、|\fixcompositeaccent|が有効な時だけ\pLaTeX{}の定義を用います。 +% |\nofixcompositeaccent|はこの否定です。 +% \changes{v1.6r}{2018/07/25}{\cs{[no]fixcompositeaccent}マクロ追加} +% \begin{macrocode} +%%\plIncludeInRelease{0000/00/00}{\@text@composite@x} +%% {Special case! (This block is required for any emulation date)}% +%<*plcore|platexrelease> +\DeclareRobustCommand\fixcompositeaccent{% + \let\oalign\pltx@oalign + \let\ltx@sh@ft\pltx@ltx@sh@ft + \let\@text@composite@x\pltx@text@composite@x +} +\DeclareRobustCommand\nofixcompositeaccent{% + \let\oalign\pltx@saved@oalign + \let\ltx@sh@ft\pltx@saved@ltx@sh@ft + \let\@text@composite@x\pltx@saved@text@composite@x +} +\nofixcompositeaccent +% +%%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\@text@composite@x} +% エミュレーション専用のコードです。 +% \changes{v1.6a}{2016/04/01}{ベースライン補正量が0でないときに +% \cs{AA}など一部の合成文字がおかしくなることへの対応。} +% \changes{v1.6c}{2016/06/06}{v1.6aでの修正で\'e など全てのアクセント付き文字で +% 周囲に\cs{xkanjiskip}が入らなくなっていたのを修正。} +% \changes{v1.6e}{2016/06/26}{v1.6a以降の修正で全てのアクセント付き文字で +% トラブルが相次いだため、いったんパッチを除去。} +% \changes{v1.6r}{2018/07/25}{コード整理} +% \begin{macrocode} +%\plIncludeInRelease{2018/07/28}{\fixcompositeaccent} +% {Fix for non-zero baselineshift}% +%\nofixcompositeaccent % force LaTeX original (conditional default) +%% other commands are actually defined for pLaTeX2e 2018-07-28 +%\plEndIncludeInRelease +%\plIncludeInRelease{2016/07/01}{\fixcompositeaccent} +% {Fix for non-zero baselineshift}% +%\nofixcompositeaccent % force LaTeX original (always) +%\let\fixcompositeaccent\@undefined +%\let\nofixcompositeaccent\@undefined +%\let\pltx@saved@oalign\@undefined +%\let\pltx@oalign\@undefined +%\let\pltx@saved@ltx@sh@ft\@undefined +%\let\pltx@ltx@sh@ft\@undefined +%\let\pltx@saved@text@composite@x\@undefined +%\let\pltx@text@composite@x\@undefined +%\plEndIncludeInRelease +%\plIncludeInRelease{2016/04/17}{\fixcompositeaccent} +% {Fix for non-zero baselineshift}% +%\fixcompositeaccent % force pLaTeX definition (always) +%\let\oalign\pltx@saved@oalign % no fix at that time +%\let\ltx@sh@ft\pltx@saved@ltx@sh@ft % no fix at that time +%\let\fixcompositeaccent\@undefined +%\let\nofixcompositeaccent\@undefined +%\let\pltx@saved@oalign\@undefined +%\let\pltx@oalign\@undefined +%\let\pltx@saved@ltx@sh@ft\@undefined +%\let\pltx@ltx@sh@ft\@undefined +%\let\pltx@saved@text@composite@x\@undefined +%\let\pltx@text@composite@x\@undefined +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\fixcompositeaccent} +% {Fix for non-zero baselineshift}% +%\nofixcompositeaccent % force LaTeX original (always) +%\let\fixcompositeaccent\@undefined +%\let\nofixcompositeaccent\@undefined +%\let\pltx@saved@oalign\@undefined +%\let\pltx@oalign\@undefined +%\let\pltx@saved@ltx@sh@ft\@undefined +%\let\pltx@ltx@sh@ft\@undefined +%\let\pltx@saved@text@composite@x\@undefined +%\let\pltx@text@composite@x\@undefined +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% +% \subsection{イタリック補正と\cs{xkanjiskip}} +% +% \begin{macro}{\check@nocorr@} +% 「\verb|あ\texttt{abc}い|」としたとき、書体の変更を指定された欧文の左側に +% 和欧文間スペースが入らないのを修正します。 +% \changes{v1.3i}{2000/07/13}{\cs{text..}コマンドの左側に\cs{xkanjiskip}が +% 入らないのを修正(ありがとう、乙部@東大さん)} +% +% コミュニティ版の修正:p\TeX{}のバージョンp3.1.11以前は、イタリック補正 +% (以下|\/|と記す)と|\xkanjiskip|の挿入が衝突\footnote{和文のイタリック +% 補正用kernが、通常のexplicitな(\cs{kern}による)kernと同じ扱いを受けて +% いたため。}し +% \begin{enumerate} +% \item 「欧文文字 → |\/|」の場合には|\/|を無視する +% (つまり後に|\xkanjiskip|挿入可能) +% \item 「和文文字 → |\/|」の場合にはこの後に|\xkanjiskip|は挿入できない +% \end{enumerate} +% という挙動になっていました。p3.2(2010年)の修正で +% \begin{itemize} +% \item |\xkanjiskip|挿入時にはいかなる場合も|\/|を無視する +% \end{itemize} +% という挙動に変更されました。p\LaTeX{}カーネルの|\check@nocorr@|の修正は、 +% p3.1.11以前の2.への対処でしたが、これは「|\text...{}|の左への|\/|挿入」を +% 無効化しているので、|\textit{f\textup{a}}|で本来入るべきイタリック補正が +% 入りませんでした。p3.2以降ではp\TeX{}の|\xkanjiskip|対策が不要になって +% いますので、コミュニティ版では削除しました。 +% \changes{v1.6i}{2017/09/24}{2010年のp\TeX{}本体の修正により、v1.3iで入れた +% 対処が不要になっていたので削除} +% \begin{macrocode} +%\plIncludeInRelease{2017/10/28}{\check@nocorr@} +% {Italic correction before \textt...}% +%\def \check@nocorr@ #1#2\nocorr#3\@nil {% +% \let \check@icl \maybe@ic +% \def \check@icr {\ifvmode \else \aftergroup \maybe@ic \fi}% +% \def \reserved@a {\nocorr}% +% \def \reserved@b {#1}% +% \def \reserved@c {#3}% +% \ifx \reserved@a \reserved@b +% \ifx \reserved@c \@empty +% \let \check@icl \@empty +% \else +% \let \check@icl \@empty +% \let \check@icr \@empty +% \fi +% \else +% \ifx \reserved@c \@empty +% \else +% \let \check@icr \@empty +% \fi +% \fi +%} +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\check@nocorr@} +% {Italic correction before \textt...}% +%\def \check@nocorr@ #1#2\nocorr#3\@nil {% +% \let \check@icl \relax % changed from \maybe@ic +% \def \check@icr {\ifvmode \else \aftergroup \maybe@ic \fi}% +% \def \reserved@a {\nocorr}% +% \def \reserved@b {#1}% +% \def \reserved@c {#3}% +% \ifx \reserved@a \reserved@b +% \ifx \reserved@c \@empty +% \let \check@icl \@empty +% \else +% \let \check@icl \@empty +% \let \check@icr \@empty +% \fi +% \else +% \ifx \reserved@c \@empty +% \else +% \let \check@icr \@empty +% \fi +% \fi +%} +%\plEndIncludeInRelease +% \end{macrocode} +% \end{macro} +% +% +% \subsection{デフォルト設定ファイルの読み込み} +% デフォルト設定ファイル\file{pldefs.ltx}は、もともと\file{plcore.ltx}の途中で +% 読み込んでいましたが、2018年以降の新しいコミュニティ版\pLaTeX{}では +% \file{platex.ltx}から読み込むことにしました。 +% 実際の中身については、第\ref{plfonts:pldefs}節を参照してください。 +% \changes{v1.6k}{2017/12/05}{デフォルト設定ファイルの読み込みを +% \file{plcore.ltx}から\file{platex.ltx}へ移動} +% +% +% +% +% \section{デフォルト設定ファイル}\label{plfonts:pldefs} +% ここでは、フォーマットファイルに読み込まれるデフォルト値を設定しています。 +% この節での内容は\file{pldefs.ltx}に出力されます。 +% このファイルの内容を\file{plcore.ltx}に含めてもよいのですが、 +% デフォルトの設定を参照しやすいように、別ファイルにしてあります。 +% +% プリロードサイズは、\dst{}プログラムのオプションで変更することができます。 +% これ以外の設定を変更したい場合は、\file{pldefs.ltx}を +% 直接、修正するのではなく、このファイルを\file{pldefs.cfg}という名前で +% コピーをして、そのファイルに対して修正を加えるようにしてください。 +% \begin{macrocode} +%<*pldefs> +\ProvidesFile{pldefs.ltx} + [2018/02/04 v1.6l pLaTeX Kernel (Default settings)] +% +% \end{macrocode} +% +% \subsection{テキストフォント} +% テキストフォントのための属性やエラー書体などの宣言です。 +% p\LaTeX{}のデフォルトの横組エンコードはJY1、縦組エンコードはJT1とします。 +% \noindent +% 縦横エンコード共通: +% \begin{macrocode} +%<*pldefs> +\DeclareKanjiEncodingDefaults{}{} +\DeclareErrorKanjiFont{JY1}{mc}{m}{n}{10} +% \end{macrocode} +% 横組エンコード: +% \begin{macrocode} +\DeclareYokoKanjiEncoding{JY1}{}{} +\DeclareKanjiSubstitution{JY1}{mc}{m}{n} +% \end{macrocode} +% 縦組エンコード: +% \begin{macrocode} +\DeclareTateKanjiEncoding{JT1}{}{} +\DeclareKanjiSubstitution{JT1}{mc}{m}{n} +% \end{macrocode} +% 縦横のエンコーディングのセット化: +% \changes{v1.6j}{2017/11/06}{縦横のエンコーディングのセット化を +% plcoreからpldefsへ移動} +% \begin{macrocode} +\KanjiEncodingPair{JY1}{JT1} +% \end{macrocode} +% フォント属性のデフォルト値: +% \begin{macrocode} +\newcommand\mcdefault{mc} +\newcommand\gtdefault{gt} +\newcommand\kanjiencodingdefault{JY1} +\newcommand\kanjifamilydefault{\mcdefault} +\newcommand\kanjiseriesdefault{\mddefault} +\newcommand\kanjishapedefault{\updefault} +% \end{macrocode} +% 和文エンコードの指定: +% \begin{macrocode} +\kanjiencoding{JY1} +% \end{macrocode} +% フォント定義: +% これらの具体的な内容は第\ref{plfonts:fontdef}節を参照してください。 +% \changes{v1.3}{1997/01/24}{Rename font definition filename.} +% \begin{macrocode} +\input{jy1mc.fd} +\input{jy1gt.fd} +\input{jt1mc.fd} +\input{jt1gt.fd} +% \end{macrocode} +% フォントを有効にします。 +% \begin{macrocode} +\fontencoding{JT1}\selectfont +\fontencoding{JY1}\selectfont +% \end{macrocode} +% +% \begin{macro}{\textmc} +% \begin{macro}{\textgt} +% \changes{v1.3b}{1997/01/28}{\cs{textmc}, \cs{textgt}の動作修正} +% テキストファミリを切り替えるためのコマンドです。 +% \file{ltfntcmd.dtx}で定義されている|\textrm|などに対応します。 +% \begin{macrocode} +\DeclareTextFontCommand{\textmc}{\mcfamily} +\DeclareTextFontCommand{\textgt}{\gtfamily} +% \end{macrocode} +% \end{macro} +% \end{macro} +% +% \begin{macro}{\em} +% \begin{macro}{\emph} +% \begin{macro}{\eminnershape} +% \changes{v1.3d}{1997/06/25}{\cs{em},\cs{emph}で和文を強調書体に} +% \changes{v1.6}{2016/02/01}{\LaTeX\ \texttt{!<2015/01/01!>}での\cs{em}の +% 定義変更に対応。\cs{eminnershape}を追加。} +% 従来は|\em|, |\emph|で和文フォントの切り替えは行っていませんでしたが、 +% 和文フォントも|\gtfamily|に切り替えるようにしました。 +% \LaTeX\ \texttt{<2015/01/01>}で追加された|\eminnershape|も取り入れ、 +% 強調コマンドを入れ子にする場合の書体を自由に再定義できるようになりました。 +% \begin{macrocode} +% +%\plIncludeInRelease{2016/04/17}{\eminnershape}{\eminnershape}% +%<*pldefs|platexrelease> +\DeclareRobustCommand\em + {\@nomath\em \ifdim \fontdimen\@ne\font >\z@ + \eminnershape \else \gtfamily \itshape \fi}% +\def\eminnershape{\mcfamily \upshape}% +% +%\plEndIncludeInRelease +%\plIncludeInRelease{2015/01/01}{\eminnershape}{\eminnershape}% +%\DeclareRobustCommand\em +% {\@nomath\em \ifdim \fontdimen\@ne\font >\z@ +% \mcfamily \upshape \else \gtfamily \itshape \fi} +%\def\eminnershape{\upshape}% defined by LaTeX, but not used by pLaTeX +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\eminnershape}{\eminnershape}% +%\DeclareRobustCommand\em +% {\@nomath\em \ifdim \fontdimen\@ne\font >\z@ +% \mcfamily \upshape \else \gtfamily \itshape \fi} +%\let\eminnershape\@undefined +%\plEndIncludeInRelease +%<*pldefs> +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% +% \changes{v1.3b}{1997/01/30}{数式用フォントの宣言をクラスファイルに移動した} +% +% +% \subsection{プリロードフォント} +% あらかじめフォーマットファイルにロードされるフォントの宣言です。 +% \dst{}プログラムのオプションでロードされるフォントのサイズを +% 変更することができます。\file{plfmt.ins}では|xpt|を指定しています。 +% \begin{macrocode} +%<*xpt> +\DeclarePreloadSizes{JY1}{mc}{m}{n}{5,7,10,12} +\DeclarePreloadSizes{JY1}{gt}{m}{n}{5,7,10,12} +\DeclarePreloadSizes{JT1}{mc}{m}{n}{5,7,10,12} +\DeclarePreloadSizes{JT1}{gt}{m}{n}{5,7,10,12} +% +%<*xipt> +\DeclarePreloadSizes{JY1}{mc}{m}{n}{5,7,10.95,12} +\DeclarePreloadSizes{JY1}{gt}{m}{n}{5,7,10.95,12} +\DeclarePreloadSizes{JT1}{mc}{m}{n}{5,7,10.95,12} +\DeclarePreloadSizes{JT1}{gt}{m}{n}{5,7,10.95,12} +% +%<*xiipt> +\DeclarePreloadSizes{JY1}{mc}{m}{n}{7,9,12,14.4} +\DeclarePreloadSizes{JY1}{gt}{m}{n}{7,9,12,14.4} +\DeclarePreloadSizes{JT1}{mc}{m}{n}{7,9,12,14.4} +\DeclarePreloadSizes{JT1}{gt}{m}{n}{7,9,12,14.4} +% +%<*ori> +\DeclarePreloadSizes{JY1}{mc}{m}{n} + {5,6,7,8,9,10,10.95,12,14.4,17.28,20.74,24.88} +\DeclarePreloadSizes{JY1}{gt}{m}{n} + {5,6,7,8,9,10,10.95,12,14.4,17.28,20.74,24.88} +\DeclarePreloadSizes{JT1}{mc}{m}{n} + {5,6,7,8,9,10,10.95,12,14.4,17.28,20.74,24.88} +\DeclarePreloadSizes{JT1}{gt}{m}{n} + {5,6,7,8,9,10,10.95,12,14.4,17.28,20.74,24.88} +% +% \end{macrocode} +% +% +% \subsection{組版パラメータ} +% 禁則パラメータや文字間へ挿入するスペースの設定などです。 +% 実際の各文字への禁則パラメータおよびスペースの挿入の許可設定などは、 +% \file{kinsoku.tex}で行なっています。 +% 具体的な設定については、\file{kinsoku.dtx}を参照してください。 +% \begin{macrocode} +\InputIfFileExists{kinsoku.tex}% + {\message{Loading kinsoku patterns for japanese.}} + {\errhelp{The configuration for kinsoku is incorrectly installed.^^J% + If you don't understand this error message you need + to seek^^Jexpert advice.}% + \errmessage{OOPS! I can't find any kinsoku patterns for japanese^^J% + \space Think of getting some or the + platex2e setup will never succeed}\@@end} +% \end{macrocode} +% +% 組版パラメータの設定をします。 +% |\kanjiskip|は、漢字と漢字の間に挿入されるグルーです。 +% |\noautospacing|で、挿入を中止することができます。 +% デフォルトは|\autospacing|です。 +% \begin{macrocode} +\kanjiskip=0pt plus .4pt minus .5pt +\autospacing +% \end{macrocode} +% |\xkanjiskip|は、和欧文間に自動的に挿入されるグルーです。 +% |\noautoxspacing|で、挿入を中止することができます。 +% デフォルトは|\autoxspacing|です。 +% \changes{v1.1c}{1995/09/12}{\cs{xkanjiskip}のデフォルト値} +% \begin{macrocode} +\xkanjiskip=.25zw plus1pt minus1pt +\autoxspacing +% \end{macrocode} +% |\jcharwidowpenalty|は、パラグラフに対する禁則です。 +% パラグラフの最後の行が1文字だけにならないように調整するために使われます。 +% \begin{macrocode} +\jcharwidowpenalty=500 +% \end{macrocode} +% +% \begin{macro}{\<} +% 最後に、|\inhibitglue|の簡略形を定義します。 +% このコマンドは、和文フォントのメトリック情報から、自動的に挿入される +% グルーの挿入を禁止します。 +% +% 2014年のp\TeX{}の|\inhibitglue|のバグ修正に伴い、 +% |\inhibitglue|が垂直モードでは効かなくなりました。 +% \LaTeX{}では垂直モードと水平モードの区別が隠されていますので、 +% p\LaTeX{}の追加命令である|\<|は段落頭でも効くように修正します。 +% +% |\DeclareRobustCommand|を使うと|\protect|の影響で前方の文字に対する +% |\inhibitglue|が効かなくなるので、e-\TeX{}の|\protected|が必要です。 +% \changes{v1.6i}{2017/09/24}{\cs{<}が段落頭でも効くようにした} +% \begin{macrocode} +% +%\plIncludeInRelease{2017/10/28}{\<} +% {\inhibitglue in vertical mode}% +%<*pldefs|platexrelease> +\ifx\protected\@undefined +\def\<{\inhibitglue} +\else +\protected\def\<{\ifvmode\leavevmode\fi\inhibitglue} +\fi +% +%\plEndIncludeInRelease +%\plIncludeInRelease{0000/00/00}{\<} +% {\inhibitglue in vertical mode}% +%\def\<{\inhibitglue} +%\plEndIncludeInRelease +%<*pldefs> +% \end{macrocode} +% \end{macro} +% +% ここまでが、\file{pldefs.ltx}の内容です。 +% \begin{macrocode} +% +% \end{macrocode} +% +% +% +% \section{フォント定義ファイル}\label{plfonts:fontdef} +% \changes{v1.3}{1997/01/24}{Rename provided font definition filename.} +% ここでは、フォント定義ファイルの設定をしています。フォント定義ファイルは、 +% \LaTeX{}のフォント属性を\TeX{}フォントに置き換えるためのファイルです。 +% 記述方法についての詳細は、|fntguide.tex|を参照してください。 +% +% 欧文書体の設定については、 +% \file{cmfonts.fdd}や\file{slides.fdd}などを参照してください。 +% \file{skfonts.fdd}には、写研代用書体を使うためのパッケージと +% フォント定義が記述されています。 +% \begin{macrocode} +%\ProvidesFile{jy1mc.fd} +%\ProvidesFile{jy1gt.fd} +%\ProvidesFile{jt1mc.fd} +%\ProvidesFile{jt1gt.fd} +% [2018/07/03 v1.6q 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}{すべてのサイズをロード可能にした} +% また、シリーズ|b|は同じ書体の|bx|と等価になるように宣言します。 +% \changes{v1.6q}{2018/07/03}{シリーズbがbxと等価になるように宣言} +% +% p\LaTeX{}では従属書体にOT1エンコーディングを指定しています。 +% また、要求サイズ(指定されたフォントサイズ)が10ptのとき、 +% 全角幅の実寸が9.62216ptとなるようにしますので、 +% 和文スケール値($1\,\mathrm{zw} \div \textmc{要求サイズ}$)は +% $9.62216\,\mathrm{pt}/10\,\mathrm{pt}=0.962216$です。 +% min10系のメトリックは全角幅が9.62216ptでデザインされているので、 +% これを1倍で読込みます。 +% \changes{v1.6l}{2018/02/04}{和文スケール値を明文化} +% \begin{macrocode} +%<*JY1mc> +\DeclareKanjiFamily{JY1}{mc}{} +\DeclareRelationFont{JY1}{mc}{m}{}{OT1}{cmr}{m}{} +\DeclareRelationFont{JY1}{mc}{bx}{}{OT1}{cmr}{bx}{} +\DeclareFontShape{JY1}{mc}{m}{n}{<5> <6> <7> <8> <9> <10> sgen*min + <10.95><12><14.4><17.28><20.74><24.88> min10 + <-> min10 + }{} +\DeclareFontShape{JY1}{mc}{bx}{n}{<->ssub*gt/m/n}{} +\DeclareFontShape{JY1}{mc}{b}{n}{<->ssub*mc/bx/n}{} +% +%<*JT1mc> +\DeclareKanjiFamily{JT1}{mc}{} +\DeclareRelationFont{JT1}{mc}{m}{}{OT1}{cmr}{m}{} +\DeclareRelationFont{JT1}{mc}{bx}{}{OT1}{cmr}{bx}{} +\DeclareFontShape{JT1}{mc}{m}{n}{<5> <6> <7> <8> <9> <10> sgen*tmin + <10.95><12><14.4><17.28><20.74><24.88> tmin10 + <-> tmin10 + }{} +\DeclareFontShape{JT1}{mc}{bx}{n}{<->ssub*gt/m/n}{} +\DeclareFontShape{JT1}{mc}{b}{n}{<->ssub*mc/bx/n}{} +% +%<*JY1gt> +\DeclareKanjiFamily{JY1}{gt}{} +\DeclareRelationFont{JY1}{gt}{m}{}{OT1}{cmr}{bx}{} +\DeclareFontShape{JY1}{gt}{m}{n}{<5> <6> <7> <8> <9> <10> sgen*goth + <10.95><12><14.4><17.28><20.74><24.88> goth10 + <-> goth10 + }{} +\DeclareFontShape{JY1}{gt}{bx}{n}{<->ssub*gt/m/n}{} +\DeclareFontShape{JY1}{gt}{b}{n}{<->ssub*gt/bx/n}{} +% +%<*JT1gt> +\DeclareKanjiFamily{JT1}{gt}{} +\DeclareRelationFont{JT1}{gt}{m}{}{OT1}{cmr}{bx}{} +\DeclareFontShape{JT1}{gt}{m}{n}{<5> <6> <7> <8> <9> <10> sgen*tgoth + <10.95><12><14.4><17.28><20.74><24.88> tgoth10 + <-> tgoth10 + }{} +\DeclareFontShape{JT1}{gt}{bx}{n}{<->ssub*gt/m/n}{} +\DeclareFontShape{JT1}{gt}{b}{n}{<->ssub*gt/bx/n}{} +% +% \end{macrocode} +% +% +% \Finale +% +\endinput diff --git a/language/japanese/platex/plnews.cls b/language/japanese/platex/plnews.cls new file mode 100644 index 0000000000..a39b6cbb99 --- /dev/null +++ b/language/japanese/platex/plnews.cls @@ -0,0 +1,100 @@ +\NeedsTeXFormat{pLaTeX2e} +\ProvidesClass{plnews}[1997/02/01 v1.0a Standard pLaTeX class] + +\InputIfFileExists{polnews.cfg}% + {\ClassInfo{plnews}{Using local configuration file}}% + {\ClassInfo{plnews}{No local configuration file}} + +\DeclareOption*{\PassOptionsToClass{\CurrentOption}{plnews}} +\ProcessOptions +\LoadClass[a4j,twocolumn,oneside]{jarticle} +\RequirePackage{shortvrb} +\MakeShortVerb{\|} +\setlength{\footskip}{15mm} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% \maketitle parameters. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\title{p\LaTeX~ニュース} +\newcommand{\@titlefont}{\normalfont\Huge} + +\newcommand{\publicationmonth}{\renewcommand{\@month}} +\newcommand{\@month}{\ClassError{ltnews} + {No \protect\publicationmonth~given}\@eha} + +\newcommand{\publicationyear}{\renewcommand{\@year}} +\newcommand{\@year}{\ClassError{ltnews} + {No \protect\publicationyear~given}\@eha} + +\newcommand{\publicationissue}{\renewcommand{\@issue}} +\newcommand{\@issue}{\ClassError{ltnews} + {No \protect\publicationissue~given}\@eha} +\newcommand{\issuename}{Issue} + +\renewcommand{\maketitle}{% + \twocolumn[{% + \parbox[t][7\baselineskip]{\textwidth}{% + \@titlefont\@title\hspace{3mm}% + \normalsize 第{\@issue}号\\[\medskipamount] + \normalfont{\@year}年{\@month}月~発行\\ + 作成者:\begin{tabular}[t]{l} + \@author + \end{tabular}% + }% + }]% +} + +\newcommand{\ps@titlepage}{% + \renewcommand{\@oddhead}{\hfill}% + \renewcommand{\@evenhead}{\hfill}% + \renewcommand{\@oddfoot}{\@title~第{\@issue}号\hfil\thepage}% + \renewcommand{\@evenfoot}{\@title~第{\@issue}号\hfil\thepage}% +} +\pagestyle{titlepage} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Sectioning +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewcommand{\section}{% + \@startsection{section}{1}{\z@} + {1.5\Cvs \@plus.6\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}{\reset@font\Large\bfseries} +} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% Page Layout +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\setlength{\topmargin}{0pt} +\setlength{\headheight}{0pt} +\setlength{\headsep}{0pt} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% itemize +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\renewenvironment{itemize} + {\ifnum \@itemdepth >3\relax\@toodeep\else + \advance\@itemdepth\@ne + \edef\@itemitem{labelitem\romannumeral\the\@itemdepth}% + \expandafter + \list{\csname \@itemitem\endcsname}{% + \iftdir + \ifnum \@listdepth=\@ne \topsep.5\normalbaselineskip + \else\topsep\z@\fi + \labelwidth1zw \labelsep.3zw + \ifnum \@itemdepth =\@ne \leftmargin1zw\relax + \else\leftmargin\leftskip\fi + \advance\leftmargin 1zw + \fi + \parskip\z@ \itemsep\z@ \parsep\z@ % KN 1998/08/10 + \def\makelabel##1{\hss\llap{##1}}}% + \fi}{\endlist} + +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +% misc. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\def\file#1{\textsf{#1}} +\def\option#1{\texttt{#1}} +\xspcode"5C=3 % \ +\xspcode"3C=3 % < +\xspcode"3E=3 % > + +\endinput diff --git a/language/japanese/platex/plnews01.tex b/language/japanese/platex/plnews01.tex new file mode 100644 index 0000000000..76b77c02ec --- /dev/null +++ b/language/japanese/platex/plnews01.tex @@ -0,0 +1,234 @@ +%% <1997/02/04> +\documentclass{plnews} + +\publicationmonth{2} +\publicationyear{1997} +\publicationissue{1} +\author{中野 賢(\texttt{ken-na at ascii.co.jp})} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}の以前のバージョンからの更新箇所をまとめたものです。 + +現在のp\LaTeXe{}は、\LaTeX{}\texttt{<1996/12/01>}版に対応しています。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属のltnewsファイルを +参照してください。 + +\section{docstripバッチファイル} +p\LaTeXe{}の.dtxファイルから内容を取り出すための +\textsf{docstrip}用バッチファイルをいくつかのファイルに分割しました。 + +.insファイルと作成されるファイルの関係は、つぎのとおりです。 + +\begin{quote} +\begin{description} +\item[plcore.ins]\mbox{}\\ + 全体を展開するときに用いる。 + 以下の{.ins}ファイルを展開するのと同等。 +\item[plfmt.ins]\mbox{}\\ + カーネル部分や付属パッケージファイルを作成するのに用いる。 +\item[plcls.ins]\mbox{}\\ + 標準クラスファイルを作成するのに用いる。 +\item[pldocs.ins]\mbox{}\\ + 付属の文書ファイルを処理するためのファイルを作成するのに用いる。 +\item[pl209.ins]\mbox{}\\ + 2.09互換モードで用いるファイルを作成するのに用いる。 +\end{description} +\end{quote} + +たとえば、クラスファイルだけを再度、作成したい場合は、つぎのように +platexコマンドでplcls.insファイルを処理します。 + +\begin{verbatim} + platex plcls.ins +\end{verbatim} + +すると、jarticle.clsやtarticle.clsなどの標準クラスファイルと、 +jsize10.cloなどの補助クラスファイルがカレントディレクトリに作成されます。 + + +\section{クラスファイル} +標準クラスファイル\{j,t\}\{aritlce,book,report\}クラスに対して行なわれた +変更はつぎのとおりです。 + +\subsection{本文領域の広いレイアウト} +j\LaTeX~2.09やp\LaTeX~2.09とともに使われていた、 +|a4j|, |a5j|, |b4j|,|b5j|, |a4p|, |a5p|, |b4p|,|b5p|のスタイルファイルと +同等のレイアウトをするためのクラスオプションを追加しました。 +これらのオプションを指定すると、デフォルトで設定されている本文領域よりも +広いレイアウトで文章を作成することができます。 + +オプション名は、以前のスタイルファイル名と同じです。 +最後が``j''で終わるものは横組専用、``p''で終わるものは縦横両用のスタイル +でしたが、p\LaTeXe{}ではとくに区別をしていません。 +``j''で終わるオプションも``p''で終わるオプションも縦横両用です。 + +上記の8つのクラスオプションは、用紙サイズの設定も含んでいます。 +つまり``b5j''を指定したときには用紙サイズがB5になります。 +これらのクラスオプションを指定するときは、p\LaTeXe{}で標準の|b5paper|など +の用紙サイズを指定するクラスオプションを省略することができます。 + +なお、上記のスタイルファイルでサポートしていた、ランドスケープ時の指定は +まだサポートしていません。 + +\subsection{数式内での日本語文字} +フォントファミリに日本語フォントを用いないようにするための +クラスオプション|disablejfam|を導入しました。 +ただし、p\LaTeX~2.09互換モードでは|disablejfam|オプションを認識しません。 +指定した場合はエラーになります。 + +このオプションを指定すると、数式内に日本語を直接、記述できなくなります。 +また、数式文字を切り替える|\mathmc|と|\mathgt|コマンドが宣言されませんので、 +これらのコマンドを使うとエラーになります。|disablejfam|を指定した状態で、 +数式内に日本語を記述する場合は|\textmc|や|\textgt|コマンドを用いてください。 +|\textmc|と|\textgt|はp\LaTeXe{}のフォーマットファイル内で宣言されています。 + +p\LaTeXe{}では、article, book, reportクラスなど、\LaTeX{}のクラスを用いても +文書を作成することもできますが、これらのクラスには数式内に日本語を直接記述 +する仕組みが用意されていません。 +これはp\LaTeXe{}のクラスで|disablejfam|を指定したのと同じ状態です。 +この場合も、|\textmc|や|\textgt|コマンドを用いれば数式内に日本語を記述する +ことはできます。ただし、日本語を用いた文書ファイルはp\LaTeXe{}以外では +処理できませんので、その文書ファイルの配布には注意してください。 + +|disablejfam|オプションを設けた意味の詳細については、 +「フォントファミリ」を参照してください。 + +\subsection{トンボ} +p\LaTeXe{}\texttt{<1996/03/05>}版でも、|tombow|オプションによって、 +裁断用のトンボを出力することができました。 +p\LaTeXe{}\texttt{<1997/02/01>}版では、トンボの脇にDVIファイルの作成日付 +を出力するように拡張しています。 +作成日付を出力したくない場合は、|tombow|オプションではなく、 +(最後の``w''のない)|tombo|オプションを指定してください。 + +また、p\LaTeX~2.09互換モードでトンボオプションを指定したときに、トンボが +おかしな場所に出力されるバグを修正してあります。 + + +\section{書体変更コマンド} +書体変更コマンドにもいくつかの修正が加えられました。 + +\subsection{互換モードでのコマンド} +p\LaTeX~2.09互換モードで用いられる|\rm|コマンドや|\it|コマンド +などの書体変更コマンドを欧文フォントだけを切り替えるようにしました。 +ただし|\mc|コマンドと|\gt|コマンドは和文フォントだけを切り替えます。 +また|\bf|コマンドは和文と欧文フォントの両方を切り替えます。 +これは、j\LaTeX~2.09やp\LaTeX~2.09での動作と完全に同じです。 + +p\LaTeXe{}の本来のモードで、従来の二文字コマンドを用いた場合は動作が +異なりますの 注意してください。互換モード以外のとき、二文字コマンドは、 +一度、|\normalfont|にリセットしてから、そのコマンドに対応する属性を +切り替えます。したがって、|\it\tt|という指定は|\tt|だけが有効 +であり、|\tt\it|という指定は|\it|の指定が有効です。 + +この動作は和文フォントに対してもあてはまります。すなわち|\it\gt|と +しても、和文フォントがゴシック体になるだけで、|\it|の影響は何も +受けません。ただし|gt|コマンド内で実行される|\normalfont|の影響で +欧文フォントは欧文のデフォルトフォントになります。 +逆に|\gt\it|の場合、欧文フォントはイタリック体になりますが、 +和文フォントは何も変わりません。この場合も|\it|コマンド内の +|\normalfont|により、和文フォントは和文デフォルトフォントになります。 + +p\LaTeXe{}の本来のモードで、 +和文フォントをゴシック体、欧文フォントをイタリック体にしたい場合は、 +|\gtfamily\itfamily|か|\itfamily\gtfamily|とします。 + +\subsection{数式文字フォント} +|\rm|コマンドで欧文フォントがローマン体の正体にならないバグを修正しました。 +|\bf|コマンドについても同様の修正がなされています。 + +|\section|や|\caption|で|\rm|や|\bf|を用いたとき、 +目次ファイルや図表目次ファイルなどに、コマンドが展開された +コードで出力されてしまうバグを修正しました。 + + +\subsection{フォントファミリ} +p\LaTeXe{}の特徴の一つに、数式内にも直接、日本語を記述することができる +ことが挙げられます。しかしAMSのパッケージやPostScript用のパッケージを +用いた場合、 +\begin{verbatim} + No room for a new \mathgroup . +\end{verbatim} +や +\begin{verbatim} + Too many math alphabets used in version + normal. +\end{verbatim} +などのエラーが表示される場合があります。 + +これらのエラーは、数式内に直接、記述できるフォントファミリとして\TeX{}が +扱えるのが最大16個ということから起こっています。このエラーを回避するには、 +用いるフォントファミリの数を16個以内にするしかありません。 + +そこで、p\LaTeXe{}では、日本語を数式内に直接記述はできなくなるけれども、 +必要なパッケージをロードできる(かもしれない)ようにするためのオプション +|disablejfam|をクラスファイルに用意しました。 +|disablejfam|オプションを指定すれば、フォントファミリを節約する +ことができます。ただし、宣言している数は一つだけですので、用いるパッケージ +によっては効果がないかもしれないことに注意をしてください。 + +参考に表\ref{famlist}に\LaTeX{}やp\LaTeX{}やパッケージ類で用いる +フォントファミリの一覧を示します。\LaTeX{}の4つは必須です。 + +同じ名前のファミリ名は重複して宣言されませんので、 +p\LaTeXe{}の2.09互換モードでも``mincho''と``gothic''の二つだけが宣言 +されることになります。``mincho'', ``mincho'', ``gothic''の三つではありません。 + +p\LaTeX~2.09互換モード時には、\LaTeX~2.09互換モード +の設定もロードするため、合計で$4+7+2=13$個を使うことになります。 + +psnfssのLucidaフォント関連パッケージは、noexpertオプションで2,~3個、 +抑制することができます。詳細はpsnfssのドキュメントを参照してください。 + +\begin{table*}[htb] +\caption{\label{famlist}フォントファミリの宣言箇所} +\begin{tabbing} +MMM\=p\LaTeX~2.09互換モード \=: クラスファイル :\=\+\kill +\LaTeX カーネル + \>: \>: operators, letters, symbols, largesymbols\\ +\LaTeX~2.09互換モード + \>: latex209.def \>: bold, sans, typewriter, italic, smallcaps, slanted\\ + \>: latexsym.sty \>: lasy\\ +p\LaTeXe + \>: クラスファイル \>: mincho\\ +p\LaTeX~2.09互換モード + \>: pl209.def \>: mincho, gothic\\ +AMSのパッケージ + \>: amsmath.sty \>: (none)\\ + \>: amstex.sty \>: AMSa, AMSb\\ + \>: amsfonts.sty\>: AMSa, AMSb\\ +balelパッケージ + \>: cyrmath.sty \>: cyrletters\\ +psnfssパッケージ + \>: mathptm.sty \>: operators, letters, symbols, largesymbols, bold, italic\\ + \>: lucbmath.sty\>: letters, mathupright, symbols, largesymbols, italics,\\ + \>\>: arrows, boldarrows, operators\\ + \>: lucbr.sty \>: letters, mathupright, symbols, largesymbols, italics,\\ + \>\>: arrows, boldarrows, operators\\ + \>: lucmath.sty \>: operators, letters, symbols, largesymbols, italics,\\ + \>\>: letters, mathupright, arrows, boldarrows\\ + \>: lucmtime.sty\>: letters, operators, mathupright, symbols, largesymbols,\\ + \>\>: italics, arrows, boldarrows +\end{tabbing} +\end{table*} + + + +\section{その他の情報} +最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +p\LaTeXe{}についてのお問い合わせやバグレポートなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/language/japanese/platex/plnews02.tex b/language/japanese/platex/plnews02.tex new file mode 100644 index 0000000000..b0326548b8 --- /dev/null +++ b/language/japanese/platex/plnews02.tex @@ -0,0 +1,122 @@ +%% <1997/07/02> +\documentclass{plnews} + +\publicationmonth{7} +\publicationyear{1997} +\publicationissue{2} +\author{中野 賢(\texttt{}) + \& 富樫 秀昭(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<1997/02/01>+2}からの更新箇所をまとめたものです。 + +このp\LaTeXe{}は、\LaTeX{}\texttt{<1997/06/01>}版に対応しています。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属のltnewsファイルを +参照してください。 + +\section{クラスファイル} +日本語クラスファイルに関して、以下の変更を加えました。 + +\begin{itemize} +\item 縦組クラスで|\maketitle|によるタイトルを縦組で出力するようにした。 +\item 横組クラスで|a4j|や|b5j|などのオプションを指定したときの + トップマージンを大きくした。 +\item treport, tbookクラスで|\thefigure|コマンドが構文エラーになるのを + 修正した。 +\end{itemize} + +\section{フォント・セレクション} +日本語NFSS2における、 +\begin{itemize} +\item 縦組時に|\bfseries|を使うと後続の|\textgt|や|\gtfamily|などの + ゴシック切り替え命令が効かない +\end{itemize} +というバグを修正するために、以下のようにしました。 +\begin{itemize} +\item 和文エンコードの宣言を縦組用と横組用とで別のコマンドで行う +\end{itemize} +具体的には、つぎのコマンドで宣言をします。 + +\begin{tabbing} +****\=12345678\=12345678901234567890\kill +\>|\DeclareYokoKanjiEncoding|\\ +\> \> 横組用和文エンコードの宣言\\ +\>|\DeclareTateKanjiEncoding|\\ +\> \> 縦組用和文エンコードの宣言\\ +\end{tabbing} + +以前のバージョンからの|\DeclareKanjiEncoding|コマンドは +横組用和文エンコード宣言コマンドと同じ動作をします。 +|\DeclareKanjiEncoding|コマンドで縦組用和文エンコードを宣言している箇所は +|\DeclareTateKanjiEncoding|コマンドを用いて宣言するように修正してください。 + + +\section{強調コマンドでゴシックに} +従来、|\emph|や|\em|では和文フォントを切り替えることはしていませんでしたが、 +今回の版から強調時に|\gtfamily|にするようにしました。 +入れ子となった|\emph|や|\em|の中では|\mcfamily|を使います。 + +\section{改行マクロの変更に対応} +日本語\TeX{}の行頭禁則処理は、禁則対象文字の直前に、 +|\prekinsokupenalty|で指定されたペナルティの値を挿入することで行なっています。 +一方、改行コマンドは負のペナルティ($-10,000$)の値を挿入することで +改行を行なっています。このため、改行コマンドの直後に禁則文字があり、 +その禁則ペナルティの値が$10,000$の文字のとき、改行のためのペナルティと +禁則ペナルティの値が相殺されてしまい、改行されません。 + +\begin{quote} +\begin{verbatim} +あいうえお\\ +!かきくけこ +\end{verbatim} +\end{quote} + +そこでp\LaTeXe{}では、\LaTeXe{}の改行マクロに|\mbox{}|を入れることによって、 +改行マクロのペナルティと行頭禁則文字のペナルティが加算されることを防いで +いました。 + +ところが、\LaTeXe\ \texttt{<1996/12/01>}で改行コマンドが大幅に変更されて +いたため、p\LaTeXe{}で加えた処理が無効になっていました。 +今回の版で\LaTeXe{}の改行マクロ変更に対応しました。 + +また、以前の\LaTeXe{}の改行マクロでは、改行コマンドで|\mbox{}|が置かれて +いたので、 +\begin{quote} +\begin{verbatim} +\verb|*****|\\ +\verb| aiueo| +\end{verbatim} +\end{quote} +と書いた場合も正しく処理されていましたが、 +\LaTeXe\ \texttt{<1996/12/01>}以降の改行コマンドでは|\mbox{}|が置かれないため、 +|\\|の次の行の|\verb|の行頭の空白が無視されるという現象がおきていました。 + +\LaTeXe{}で正しく処理されるのは、|\verb|コマンドの最初に|\hbox{}|を入れている +からです。しかし、このボックスがあると|\xkanjiskip|が入らないため、 +p\LaTeXe{}では|\verb|の直後に|\hbox{}|を入れないようにしています。 + +|\verb|で|\hbox{}|が入らなくても、改行コマンドによって行頭に|\mbox{}|が入る +場合は、先頭の空白は空白として認識されていたのですが、 +\LaTeXe{}の改行マクロ変更によって、行頭の|\mbox{}|が挿入されなくなったために、 +\TeX{}が無視すべき行頭の空白と解釈される結果となっていました。 +今回の対応で、この問題も同時に解決されています。 + +\section{その他の情報} +最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +p\LaTeXe{}についてのバグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/language/japanese/platex/plnews03.tex b/language/japanese/platex/plnews03.tex new file mode 100644 index 0000000000..59d5fed3c1 --- /dev/null +++ b/language/japanese/platex/plnews03.tex @@ -0,0 +1,80 @@ +%% <1998/02/17> +\documentclass{plnews} + +\publicationyear{1998} +\publicationmonth{2} +\publicationissue{3} +\author{中野 賢(\texttt{}) + \& 富樫 秀昭(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<1998/02/01>}版について、 +p\LaTeXe{}\texttt{<1997/07/02>}版からの更新箇所をまとめたものです。 + +このp\LaTeXe{}は、\LaTeX{}\texttt{<1997/12/01>}版に対応しています。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属のltnewsファイルを +参照してください。 + +\section{パッチの取り込み} +plpatch.ltxで提供していた、つぎの修正を取り込みました。 + +\begin{itemize} +\item 小文字のファイル名のフォント定義ファイル(.fdファイル)をロードする +ための修正。 +\item |\\|コマンドの直前の空白を無視するための修正。 +\end{itemize} + +\section{クラスファイルの修正} +日本語クラスファイル(1.1e)に対して、以下の変更を加えました。 + +\begin{itemize} +\item 縦組クラスで書体の大きさを変更したとき、ベースラインがずれる(1.1f)。 +\item onesideオプションを指定したとき、section レベルの文字列が柱に + 出力されない(1.1g)。 +\item landscapeオプション指定時のレイアウトパラメータの修正(1.1h)。 +\item jreport, jbookクラスで、onesideオプションを指定し、ページスタイルを + bothstyleにすると、コンパイルエラーになる(1.1i)。 +\end{itemize} + +\section{フォーマットファイル作成時の注意} +現在のp\TeX{}(p2.1.5)では、8ビットコードの連続を16ビットコードと認識して +しまう場合があります。そのため、フランス語やキリル文字などの +8ビットコードが連続するハイフンパターンはまず使えせん。 +例えばcmcyraltパッケージでは、途中でつぎのようなエラーになります。 + +\begin{verbatim} +(/usr/local/share/texmf/tex/latex/contrib/ +other/cmcyralt/rhyphen.tex Russian hyphena +tion +! Bad \patterns. +l.107 . え + 2 +? +\end{verbatim} + +このときは、``|?|''のプロンプトに対して``|x|''で終了してください。 +残念ながら、このハイフンパターンをp\TeX{}で利用することはできません。 + +p\LaTeXe{}では|$TEXMF/tex/platex/base/|ディレクトリにhyphen.cfgを +用意して、不用意に他のハイフンパターンを読み込まないようにしてあります。 + + +\section{その他} +p\TeX{}やp\LaTeXe{}に関する最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +バグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/language/japanese/platex/plnews04.tex b/language/japanese/platex/plnews04.tex new file mode 100644 index 0000000000..0f7a1a283f --- /dev/null +++ b/language/japanese/platex/plnews04.tex @@ -0,0 +1,85 @@ +%% <1998/09/01> +\documentclass{plnews} + +\publicationyear{1998}% 発行年 +\publicationmonth{9}% 発行月 +\publicationissue{4}% 番号 +\author{中野 賢(\texttt{}) + \& 富樫 秀昭(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<1998/09/01>}版について、 +p\LaTeXe{}\texttt{<1998/02/17>}版からの更新箇所をまとめたものです。 +これまでの変更点については、\textsf{plnews*.tex}やChanges.txtを +参照してください。 + +このp\LaTeXe{}は、\LaTeX{}\texttt{<1998/06/01>}版に対応しています。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属のltnewsファイルを +参照してください。 + +\section{NFSS2関連} +\begin{itemize} +\item |DeclareFixedCommand|をプリアンブル部でしか使えないようにしていたのを +修正しました。 +\end{itemize} + +\section{パッチの取り込み} +\texttt{<1998/02/17>}版へのパッチとして提供していた、 +つぎの修正を取り込みました。 +\begin{itemize} +\item \textsf{jclasses.dtx}: + \verb|\rightmark|コマンドの引数に\verb|today|コマンドを修正した + とき、出力される日付が「平成元年」になってしまうのを修正 + (\textsf{pl980409.patch})。 +\item \textsf{jclasses.dtx}: + reportとbookクラスで、番号の付かない見出しレベルのペナルティを + \verb|\@M|に修正(\textsf{pl980323.patch})。 +\item \textsf{tascmac.sty}: + calcパッケージとともに用いたとき、 + \verb|screen|環境、\verb|itembox|環境、\verb|boxnote|環境が + エラーになるのを修正(\textsf{pl980227.patch})。 +\end{itemize} + + + +\section{フォーマットファイル作成時の注意} +現在のp\TeX{}では、8ビットコードの連続を16ビットコードと認識して +しまう場合があります。そのため、フランス語やキリル文字などの +8ビットコードが連続するハイフンパターンはまず使えせん。 +例えばcmcyraltパッケージでは、途中でつぎのようなエラーになります。 + +\begin{verbatim} +(/usr/local/share/texmf/tex/latex/contrib/ +other/cmcyralt/rhyphen.tex Russian hyphena +tion +! Bad \patterns. +l.107 . え + 2 +? +\end{verbatim} + +このときは、``|?|''のプロンプトに対して``|x|''で終了してください。 +残念ながら、このハイフンパターンをp\TeX{}で利用することはできません。 + +そこで、hyphen.cfgを用意して、不用意に他のハイフンパターンを +読み込まないようにしてあります。詳しくはREADME2.txtをご覧ください。 + +\section{その他} +p\TeX{}やp\LaTeXe{}に関する最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +バグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/language/japanese/platex/plnews05.tex b/language/japanese/platex/plnews05.tex new file mode 100644 index 0000000000..c0ecf5be8e --- /dev/null +++ b/language/japanese/platex/plnews05.tex @@ -0,0 +1,67 @@ +%% <1999/04/05> +\documentclass{plnews} + +\publicationyear{1999}% 発行年 +\publicationmonth{4}% 発行月 +\publicationissue{5}% 番号 +\author{中野 賢(\texttt{}) + \& 富樫 秀昭(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<1999/04/05>}版について、 +前回の版(\texttt{<1998/09/01>})からの更新箇所をまとめたものです。 +それ以前の変更点については、\textsf{plnews*.tex}やChanges.txtを +参照してください。\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属の +ltnewsファイルを参照してください。 + +\section{前バージョンからの修正個所} +\begin{itemize} +\item 和文デフォルトフォントを変更しても、文書の先頭では反映されない + のを修正した(ありがとう、山本@理科大さん)。 +\item \verb|\\|コマンドにオプションを付けた場合、その後ろに余計な + 空白が入ってしまうのを修正した(ありがとう、鈴木@京大さん)。 +\item \LaTeX \texttt{<1998/12/01>}に対応した。 +\end{itemize} + + +\section{フォーマットファイル作成時の注意} +現在のp\TeX{}では、8ビットコードの連続を16ビットコードと認識して +しまう場合があります。そのため、フランス語やキリル文字などの +8ビットコードが連続するハイフンパターンはまず使えせん。 +例えばcmcyraltパッケージでは、途中でつぎのようなエラーになります。 + +\begin{verbatim} +(/usr/local/share/texmf/tex/latex/contrib/ +other/cmcyralt/rhyphen.tex Russian hyphena +tion +! Bad \patterns. +l.107 . え + 2 +? +\end{verbatim} + +このときは、``|?|''のプロンプトに対して``|x|''で終了してください。 +残念ながら、このハイフンパターンをp\TeX{}で利用することはできません。 + +そこで、hyphen.cfgを用意して、不用意に他のハイフンパターンを +読み込まないようにしてあります。詳しくはREADME2.txtをご覧ください。 + +\section{その他} +p\TeX{}やp\LaTeXe{}に関する最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +バグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/language/japanese/platex/plnews06.tex b/language/japanese/platex/plnews06.tex new file mode 100644 index 0000000000..03b400e166 --- /dev/null +++ b/language/japanese/platex/plnews06.tex @@ -0,0 +1,137 @@ +%% <2000/11/03> +\documentclass{plnews} + +\publicationyear{2000}% 発行年 +\publicationmonth{11}% 発行月 +\publicationissue{6}% 番号 +\author{中野 賢(\texttt{}) + \& 富樫 秀昭(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<2000/11/03>}版について、 +前回の版(\texttt{<1999/08/09>})からの更新箇所をまとめたものです。 +それ以前の変更点については、\textsf{plnews*.tex}やChanges.txtを +参照してください。\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属の +ltnewsファイルを参照してください。 + +\section{前バージョンからの主な修正個所} +\begin{itemize} +\item 配布形態をte\TeX{}ライブラリの形式に変更した。 +\item |nidanfloat|パッケージを付け加えた。 +\item |\text..|コマンドの左側に|\xkanjiskip|が入らないのを修正(ありがと +う、乙部@東大さん) +\item tarticle, tbook, treportで、文頭の全角開き括弧類が下がる現象に対処。 +|\adjustbaseline|を修正しました。 +\item \LaTeX \texttt{<2000/06/01>}に対応した。 +\end{itemize} + + +\section{te\TeX{}ライブラリ形式での配布} +\textit{\TeX{} Live}というTUGで配布している\TeX{}システムを集めた +CD--ROMがあり、TUGboat購読者にはこれがTUGboatと一緒に定期的に配布されて +います。te\TeX{}(Thomas Esserによる)は\textit{\TeX{} Live}用に集められ +た\TeX{}のことです。 + +te\TeX{}のTDS(\textit{\TeX{} Directory Structure})に従った配布物には、 +ポーランド語の\LaTeX{}用に|platex|というディレクトリが含まれており、 +p\TeX{}のplatexと重なります。この問題を避けるために、p\TeX{}用のディレク +トリを|texmf|直下に|texmf/ptex|と作り、p\TeX{}ではそちらを優先して使うよ +うにし、te\TeX{}ライブラリに合わせた形でp\TeX{}関連のライブラリをまとめ +て|ptex-texmf-*.tar.gz|として配布しています。 + +このディレクトリ構成は従来のディレクトリ構成と異なっており、\LaTeXe{}の +|*.ins|にはディレクトリ名を記述するので、te\TeX{}用の配布物とは別に、こ +れまでのようにp\LaTeXe{}のパッケージを作ると、ディレクトリ名の記述だけが +異なり、他は全く同じ2種類の配布物が出来上がることになります。この状態は +望ましくないので、\TeX{}の世界全体がte\TeX{}にシフトしてきていることも考 +慮し\footnote{例えば、オリジナルのdvipsの最新版はte\TeX{}に含まれるもの +だけとなっています。}、p\LaTeXe{}の配布もte\TeX{}ライブラリ形式での配布 +形態に絞ることにしました。今後p\LaTeXe{}のバージョンアップは、 +|ptex-texmf*.tar.gz|アーカイブに含まれる形で行なうことになります。 + + +\section{nidanfloatパッケージの使い方} +|nidanfloat|パッケージは、二段組時に段抜きのフロートをページ下部にも配置 +できるようにするためのパッケージです。通常は、以下のような使い方になるで +しょう。ページ下部に1段の幅に収まらない|filename.eps|を出力する場合です。 +\begin{verbatim} +\documentclass[twocolumn]{jarticle} +\usepackage{graphics} +\usepackage{nidanfloat} +\begin{document} + <本文> +\begin{figure*}[b] +\includegraphics{filename.eps} +\caption{キャプション} +\end{figure*} + <本文> +\end{document} +\end{verbatim} +このように、二段組で|\usepackage{nidanfloat}|をプリアンブルに指定して、 +|figure|環境のオプションで|b|を指定します。オプションの意味は、通常の +|figure|環境と同じです。|figure|環境のオプションを指定しない場合は、デフォ +ルトで|tb|が指定されたものと見なされます。 + +その他、追加されたパラメータなどに付いては、|nidanfloat.dtx|をご覧くださ +い。 + + +\section{tarticle, tbook, treportで、文頭の全角開き括弧類が下がる問題} +tarticle, tbook, treportで、文頭の全角開き括弧類が下がるという現象のご指 +摘を頂きました。このアキは、|\adustbaseline|で出力されていたものです。具 +体的には、|\tbaselineshift|に2度続けて値を指定すると、その後にある全角開 +き括弧類の前に余分なアキが出力されるようです。|\adustbaseline|では、縦組 +のベースライン位置を補正する際に|\tbaselineshift|を初期化し、その後に計 +算値を設定するということをしていたために、その直後に全角開き括弧類がくる +と余分なアキが出力されていたものです。|\tbaselineshift|への連続した値の +設定を行なわなければこの問題は起きないので、このバージョンで +|\adustbaseline|の最初で行なっていた|\tbaselineshift|の初期化を行なわな +いように変更しました。 + + +\section{\LaTeX \texttt{<2000/06/01>}に対応} +\LaTeX{}のバージョンアップが今回から1年毎になりましたので、p\LaTeXe{}の +更新も基本的に今後は\LaTeX{}に合わせて1年毎になります。 + + +\section{フォーマットファイル作成時の注意} +現在のp\TeX{}では、8ビットコードの連続を16ビットコードと認識して +しまう場合があります。そのため、フランス語やキリル文字などの +8ビットコードが連続するハイフンパターンはまず使えせん。 +例えばcmcyraltパッケージでは、途中でつぎのようなエラーになります。 + +\begin{verbatim} +(/usr/local/share/texmf/tex/latex/contrib/ +other/cmcyralt/rhyphen.tex Russian hyphena +tion +! Bad \patterns. +l.107 . え + 2 +? +\end{verbatim} + +このときは、``|?|''のプロンプトに対して``|x|''で終了してください。 +残念ながら、このハイフンパターンをp\TeX{}で利用することはできません。 + +そこで、hyphen.cfgを用意して、不用意に他のハイフンパターンを +読み込まないようにしてあります。詳しくはREADME2.txtをご覧ください。 + +\section{その他} +p\TeX{}やp\LaTeXe{}に関する最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +バグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/language/japanese/platex/plnews07.tex b/language/japanese/platex/plnews07.tex new file mode 100644 index 0000000000..292a6a367d --- /dev/null +++ b/language/japanese/platex/plnews07.tex @@ -0,0 +1,106 @@ +%% <2001/10/04> +\documentclass{plnews} + +\publicationyear{2001}% 発行年 +\publicationmonth{09}% 発行月 +\publicationissue{7}% 番号 +\author{中野 賢(\texttt{}) + \& 富樫 秀昭(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<2001/09/04>}版について、 +前回の版(\texttt{<2000/11/03>})からの更新箇所をまとめたものです。 +それ以前の変更点については、\file{plnews*.tex}や\file{Changes.txt}を +参照してください。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属の\file{ltnews*.tex}などを +参照してください。 + + +\section{使用および配付条件の変更} +p\LaTeXe{}の配付および利用条件を「(変更済み)BSDライセンス」にしました。 +内容については、\file{COPYRIGHT}ファイルを参照してください。 + + +\section{nidanfloatパッケージ} +nidanfloatパッケージは、最終ページの左右カラムの高さを均一に +して出力するようになっていました。 + +この機能は、左カラム用に保持している内容と、右カラム用の内容を +一度まとめ、再び2分割するだけの簡略した実装で実現されています。 + +そのため、左カラムだけで収まる量しかない場合、ページ下部への出力を +指定した(2段抜きでない)フロートは右カラムの下に置かれます。 +また、|\newpage|コマンドでカラムを変更しても、 +ページ出力時に左カラム用の内容とまとめられ、分割位置が調整されるので、 +指定した|\newpage|コマンドの位置でカラムが変わりません。 + +そこで、最終ページの高さ調整機能を使うかどうかを制御するための +パッケージオプションを導入しました。 + +自動調整するには、パッケージをロードするときに``balance''オプションを +指定してください。 +\begin{verbatim} +\usepackage[balance]{nidanfloat} +\end{verbatim} + +逆に、調整しないようにするには、オプション``nobalance''を指定します。 +\begin{verbatim} +\usepackage[nobalance]{nidanfloat} +\end{verbatim} + +デフォルトは\textbf{nobalance}にしてあります。 + + +\section{その他の主な修正箇所} +次のような不具合の修正や仕様の変更をしました。 + +\begin{itemize} +\item |\enlargethispage|コマンドを用いた場合、脚注と本文が重なってしまう。 +\item |\chpater|コマンドと|\chapter*|コマンドで見出しの出力位置が異なる。 +\item |\adjustbaseline|で調整量が合っていない。 +\item |\pbox|コマンドでzオプションを指定するとエラーになる。 +\item 目次のページ番号の書体を|\rmfamily|から|\normalfont|に変更しました。 +\end{itemize} + + +\section{フォーマットファイル作成時の注意} +現在のp\TeX{}では、8ビットコードの連続を16ビットコードと認識して +しまう場合があります。そのため、フランス語やキリル文字などの +8ビットコードが連続するハイフンパターンはまず使えせん。 +例えばcmcyraltパッケージでは、途中でつぎのようなエラーになります。 + +\begin{verbatim} +(/usr/local/share/texmf/tex/latex/contrib/ +other/cmcyralt/rhyphen.tex Russian hyphena +tion +! Bad \patterns. +l.107 . え + 2 +? +\end{verbatim} + +このときは、``|?|''のプロンプトに対して``|x|''で終了してください。 +残念ながら、このハイフンパターンをp\TeX{}で利用することはできません。 + +そこで、hyphen.cfgを用意して、不用意に他のハイフンパターンを +読み込まないようにしてあります。詳しくはREADME2.txtをご覧ください。 + +\section{その他} +p\TeX{}やp\LaTeXe{}に関する最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +バグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/language/japanese/platex/plnews08.tex b/language/japanese/platex/plnews08.tex new file mode 100644 index 0000000000..1473686523 --- /dev/null +++ b/language/japanese/platex/plnews08.tex @@ -0,0 +1,111 @@ +%% <2001/10/04> +\documentclass{plnews} + +\publicationyear{2004}% 発行年 +\publicationmonth{08}% 発行月 +\publicationissue{8}% 番号 +\author{田中 禎之(\texttt{}) +} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は、p\LaTeXe{}\texttt{<2004/08/10>}版について、 +前回の版(\texttt{<2001/09/04>})からの更新箇所をまとめたものです。 +それ以前の変更点については、\file{plnews*.tex}や\file{Changes.txt}を +参照してください。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属の\file{ltnews*.tex}などを +参照してください。 + + +\section{和文エンコーディング切り替え対応} +これまでは和文エンコーディングにはJY1,JT1のみしか使用できませんでしたが、 +新たにエンコーディングを定義して使用できるようにしました。 + +和文エンコーディングは以下のマクロで定義します。 + +\begin{itemize} +\item |\DeclareYokoKanjiEncoding{<エンコーディング名>}{<実行コード>}{<実行コード>}|\\ + 横書き用の和文エンコーディングを宣言する。 + 引数は|\DeclareFontEncoding|と同じ。 +\item |\DeclareTateKanjiEncoding{<エンコーディング名>}{<実行コード>}{<実行コード>}|\\ + 縦書き用の和文エンコーディングを宣言する。 + 引数は|\DeclareFontEncoding|と同じ。 +\item |\KanjiEncodingPair{<横エンコーディング名>}{<縦エンコーディング名>}|\\ + 横書きと縦書きの和文エンコーディングを関連付ける。 +\end{itemize} + +横書きと縦書きのエンコーディングは以下のように必ず|\KanjiEncodingPair|で +対応を関連付けてから使用します。 +関連付けられたエンコーディングは|\yoko|, |\tate|の実行時に切り替わります。 + +\begin{verbatim} + : +\DeclareYokoKanjiEncoding{NY1}{}{} +\DeclareYokoKanjiEncoding{NT1}{}{} +\KanjiEncodingPair{NY1}{NT1} + : +\begin{document} + : +\fontencoding{NY1} + : +\selectfont + : +\end{verbatim} + +現時点では|\DeclareTextCompositeCommand|のようなエンコーディングで動作を +切り替えるためのマクロには対応していません。そのため、フォントの組み合わせを +変更する程度にしか利用できません。 + +\section{その他の主な修正箇所} +次のような不具合の修正や仕様の変更をしました。 + +\begin{itemize} +\item |verbatim|環境で余計な前後空きが発生しないように|\fontfamily|を修正。 +\item |\ascii|,|\Ascii|,|\ASCII|マクロのエラーを修正。 +\item 和文フォントサイズの基準値の設定を修正。 +\item 縦組スタイルで|\flushbottom|しないように修正。 +\item |\part|,|\chapter|の直後でインデントが発生しないバグを修正。 +\item 見出しの前後の空きを調整。 +\item \LaTeX 2003/12/01版での動作を確認。 +\end{itemize} + + +\section{フォーマットファイル作成時の注意} +現在のp\TeX{}では、8ビットコードの連続を16ビットコードと認識して +しまう場合があります。そのため、フランス語やキリル文字などの +8ビットコードが連続するハイフンパターンはまず使えせん。 +例えばcmcyraltパッケージでは、途中でつぎのようなエラーになります。 + +\begin{verbatim} +(/usr/local/share/texmf/tex/latex/contrib/ +other/cmcyralt/rhyphen.tex Russian hyphena +tion +! Bad \patterns. +l.107 . え + 2 +? +\end{verbatim} + +このときは、``|?|''のプロンプトに対して``|x|''で終了してください。 +残念ながら、このハイフンパターンをp\TeX{}で利用することはできません。 + +そこで、hyphen.cfgを用意して、不用意に他のハイフンパターンを +読み込まないようにしてあります。詳しくはREADME2.txtをご覧ください。 + +\section{その他} +p\TeX{}やp\LaTeXe{}に関する最新情報は、p\TeX{}ホームページ +\begin{verbatim} + http://www.ascii.co.jp/pb/ptex +\end{verbatim} +より、入手することができます。 + +バグ報告やお問い合わせなどは、電子メールで +\begin{verbatim} + www-ptex@ascii.co.jp +\end{verbatim} +までお願いします。 + +\end{document} diff --git a/language/japanese/platex/plnewsc01.tex b/language/japanese/platex/plnewsc01.tex new file mode 100644 index 0000000000..a84f5016ba --- /dev/null +++ b/language/japanese/platex/plnewsc01.tex @@ -0,0 +1,150 @@ +%% <2016/05/07> +\documentclass{plnews} + +\publicationyear{2016}% 発行年 +\publicationmonth{05}% 発行月 +\publicationissue{c1}% 番号 +\author{日本語\TeX{}開発コミュニティ(\texttt{https://texjp.org/})} + +\def\pTeX{p\kern-.15em\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +\def\pLaTeX{p\kern-.05em\LaTeX} +\def\pLaTeXe{p\kern-.05em\LaTeXe} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書は\pLaTeXe\ \texttt{<2016/05/07>} community editionについて、 +アスキー版\texttt{<2006/11/10>}からの更新箇所をまとめたものです。 +以前のアスキー版の変更点については、 +\file{plnews*.tex}や\file{Changes\_asciimw.txt}を参照してください。 +今後のコミュニティ版の変更点については、\file{plnewsc*.tex}で説明します。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属の\file{ltnews*.tex}などを +参照してください。 + + +\section{コミュニティ版p\LaTeX{}の説明} +元々の\pLaTeX{}は、株式会社アスキー(現アスキー・メディアワークス)が +日本語化した\pTeX{}エンジンとともに配布していた、日本語版\LaTeX{}です。 +ここでは、これを「アスキー版\pLaTeX{}」と呼びます。 + +\pTeX{}は横組だけでなく縦組にも対応した高品質の日本語組版ソフトウェアと +して、デファクトスタンダードの地位にあるといえます。 +この\pTeX{}やその上で動く\pLaTeX{}は長らく日本国内での利用にとどまってい +ましたが、2010年に国際的な\TeX\ Liveというディストリビューションに取り込 +まれ、世界中のユーザが簡単に日本語の組版に\pTeX{}と\pLaTeX{}を利用できる +環境が整いました。同時に、\pTeX{}もコミュニティベースで改良や仕様変更が +加えられるようになりました。 +最近の\TeX\ LiveやW32\TeX{}では、\pLaTeX{}も元々の\pTeX{}ではなく、その +拡張版\epTeX{}をエンジンとして用いるようになっています。また、\pLaTeX{}の +ベースとなっている\LaTeX{}も更新が進められ、特に2015年には相次いでカーネル +のコードが変更されました。 + +アスキー版\pLaTeX{}は\texttt{<2006/11/10>}の版を最後に更新が停止している +ようで、こうした変更の影響でいくつかの不整合が生じてしまいました。 +この不整合や残っていたバグを修正するのが、コミュニティ版\pLaTeX{}の目的 +です。コミュニティ版\pLaTeX{}はアスキー版\pLaTeX{}をベースに、 +日本語\TeX{}開発コミュニティによって開発されます。開発中の版はGitHubの +リポジトリ\footnote{\texttt{https://github.com/texjporg/platex}}で +管理しています。これにあわせ、\pTeX{}の内部コードをUnicode化した拡張版で +あるu\pTeX{}の上で動くu\pLaTeX{}も、コミュニティ版\pLaTeX{}と同期させて +あります。u\pLaTeX{}の開発中の版も\pLaTeX{}と同様に、GitHubの +リポジトリ\footnote{\texttt{https://github.com/texjporg/uplatex}}で +管理しています。 + + +\section{脚注番号前後やtabular前後などの不自然なアキの削除} +2013年の\pTeX{}の仕様変更で、脚注番号やtabular環境、 +|\parbox[c]{...}|(またはminipage環境)の前後\footnote{これらの命令は、 +内部的には\texttt{\char92hbox}の中でいったん数式モードに入るという処理 +を含んでいます。}に|\xkanjiskip|由来のアキが入るようになっていましたの +で、対策しました。 +(参考:\TeX\ Forum~913、\TeX\ Q\&A~57084、\TeX\ Forum~1783) + +また、|\underline{...}|の前後が和文文字である場合にも +一律に|\xkanjiskip|由来のアキが入っていました。 +これも不自然だと考え、アキを削除しました。 + + +\section{縦組でOverfull警告が出るバグの修正} +縦組時に|\@outputbox|の深さ分の補正が無効になっているバグのせいで +|Overfull \vbox|の警告が出ていましたので、修正しました。 +(参考:\TeX\ Forum 1442) + + +\section{縦組で「\AA{}」が乱れるバグの修正} +ベースライン補正量|\{y,t}baselineshift|がゼロでない場合に、合成文字が乱れ +ることがありました。特に「\AA{}」のアクセント位置が縦組で大きく乱れていた +ため、対策しました。 + + +\section{トンボが縮む問題への対処} +\LaTeX\ toolsバンドルに付属する\file{multicol}パッケージ(2015/03/07 v1.8j +-- 2016/02/08 v1.8o)を使うと、\pLaTeX{}のトンボが縮むという問題が発生して +いました。これは\file{multicol}側のバグ\footnote{これは2016/04/07 v1.8pで +修正されました。}によるものですが、何らかの理由で不用意に|\boxmaxdepth|が +小さく設定されてもトンボが正しく出るように修正しました。 + + +\section{\LaTeX\ \texttt{<2016/03/31>}への対応} +\LaTeX\ \texttt{<2015/01/01>}で追加された|\eminnershape|を\pLaTeX{}にも +採用しました。これは|{\em ...}|という強調命令を入れ子にした場合の書体を +ユーザが指定できるものです。\LaTeX{}によるデフォルトの定義は|\upshape|です +が、\pLaTeX{}では従来版に合わせた|\mcfamily \upshape|を採用しました。 + + +\section{\file{platexrelease}パッケージの追加} +\LaTeX\ \texttt{<2015/01/01>}で追加された|latexrelease|パッケージと +同等の\file{platexrelease}パッケージを導入しました。これは、過去 +(\texttt{<2006/11/10>}以降)の\pLaTeX{}をエミュレートするために用いる +ことができます。\pLaTeX{}の互換性が必要な場面で役に立つかもしれません。 +詳細はパッケージのドキュメントを参照してください。 + + +\section{\file{ascmac}パッケージの更新} +\file{ascmac}(\file{tascmac})パッケージのバグ修正と一部の仕様変更です。 + +\begin{itemize} +\item \file{pict2e}パッケージとの共存で出るエラーを解消 +\item itembox環境やscreen環境の角が理想値からずれていたのを修正 +\item |\maskbox|や|\Maskbox|が段落の先頭で正しく働かない不具合を修正 + (以上3点、\file{bxascmac}パッケージ% + \footnote{\texttt{http://zrbabbler.sp.land.to/bxptool.html}}より。 + ありがとうございます、ZRさん) +\item 環境直前の改段落:\par + shadebox環境の直前で改段落しないと版面をはみ出す不具合を修正。 + 併せてboxnote環境も|\par\vspace{.3\baselineskip}|で始めるよう変更。 +\item ベースライン補正:\par + |\tbaselineshift|だけでなく|\ybaselineshift|も退避・復帰。 + |\keytop{...}|を使うと以降すべてでベースライン補正がゼロになるバグの + 修正。itembox環境のタイトルとshadebox環境内でもベースライン補正を維持。 +\item その他: + |\keytop|の角が理想値からずれていたのを修正、 + |\keytop[c]{...}|前後の|\xkanjiskip|由来のアキを削除。 +\end{itemize} + + +\section{その他の変更点} +\pLaTeX{}の概要については\file{platex.pdf}を、実際のコードは\file{pldoc.pdf}を +参照してください。コードの変更履歴も\file{pldoc.pdf}の末尾で確認できます。 + +一般のユーザにはあまり関係ない変更として、\pLaTeX{}起動時のバナーを定義 +するコードを改良しました。従来は、読み込んだハイフネーション・パターン +の情報を起動時のバナーに表示するためだけに、コードを追加した独自 +の\file{hyphen.cfg}を使用していました\footnote{トノさんによるコードです。 +参考:\TeX\ Q\&A~31691}。この方法を廃止して\pLaTeX{}カーネル内で対処した +ため、今後は独自の\file{hyphen.cfg}が不要になりました。 + + +\section{開発版とバグレポート先} +コミュニティ版\pLaTeX{}とu\pLaTeX{}はアスキー版\pLaTeX{}とは異なります +ので、バグレポートはアスキー宛てではなく、日本語\TeX{}開発コミュニティ +に報告してください。\TeX\ ForumやGitHubのIssueシステムが利用できます。 +\begin{itemize} +\item \texttt{https://github.com/texjporg/platex} +\item \texttt{https://github.com/texjporg/uplatex} +\end{itemize} + +\end{document} diff --git a/language/japanese/platex/plnewsc02.tex b/language/japanese/platex/plnewsc02.tex new file mode 100644 index 0000000000..aecba9423c --- /dev/null +++ b/language/japanese/platex/plnewsc02.tex @@ -0,0 +1,79 @@ +%% <2016/06/10> +\documentclass{plnews} + +\publicationyear{2016}% 発行年 +\publicationmonth{06}% 発行月 +\publicationissue{c2}% 番号 +\author{日本語\TeX{}開発コミュニティ(\texttt{https://texjp.org/})} + +\def\pTeX{p\kern-.15em\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +\def\pLaTeX{p\kern-.05em\LaTeX} +\def\pLaTeXe{p\kern-.05em\LaTeXe} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書はコミュニティ版\pLaTeXe\ \texttt{<2016/06/10>}について、 +\pLaTeXe\ \texttt{<2016/05/07>}からの更新箇所をまとめたものです。 +以前のアスキー版の変更点については、 +\file{plnews*.tex}や\file{Changes\_asciimw.txt}を参照してください。 +コミュニティ版の変更点については、\file{plnewsc*.tex}を参照してください。 +\LaTeX{}レベルでの更新箇所は、\LaTeX{}に付属の\file{ltnews*.tex}などを +参照してください。 + + +\section{アクセント文字のバグ修正} +\pLaTeX\ \texttt{<2016/05/07>}で「縦組で「\AA{}」が乱れるバグの修正」を +導入しましたが、この変更で「すべての合成文字でリガチャやカーニングがきか +ない、周囲に|\xkanjiskip|が入らない、\file{ucs}パッケージが使えない」 +などという不具合が入ってしまいました。この問題を修正しました (Issue \#5) 。 + + +\section{8-bitフォントエンコーディングの欧文文字周囲のスペース} +アスキー版\pLaTeX{}が作られた頃に比べて、最近はT1エンコーディングなどの +8-bitフォントエンコーディングが多く用いられるようになりました。128--255の +文字は欧文文字ですので、新しいフォーマットでは周囲に|\xkanjiskip|が入る +ように\file{kinsoku.tex}で|\xspcode=3|に設定しました。これは、奥村さん +の\file{jsclasses}や田中さんのu\pLaTeX{}と同等の対処です (Issue \#6) 。 + + +\section{\file{pfltrace}パッケージの追加} +\LaTeX\ \texttt{<2014/05/01>}で、\file{fltrace}パッケージが追加されまし +た。これは\LaTeX{}カーネルのソースに隠れていたフロート配置アルゴリズムの +トレースに使うコードをパッケージの形に抽出したもの\footnote{参考: +\LaTeX\ News Issue 21、\file{ltnews21.tex}}で、実は\pLaTeX{}カーネルの +ソースにも同様に隠れていたコードがありました。これを取り出したものが +\file{pfltrace}パッケージです。 + +フロートアルゴリズムの動作を確認したい場合は +\begin{verbatim} + \usepackage{pfltrace} \tracefloats +\end{verbatim} +のように書きます。トレースを中断するには|\tracefloatsoff|を使い、 +現在のさまざまなフロートパラメータの値を確認するには|\tracefloatvals|を +使います。実際の処理は\file{fltrace}パッケージを読み込むことで行い、 +\pLaTeX{}特有の変更のみが\file{pfltrace}パッケージに書かれています +\footnote{フォント選択コマンドのトレースに使う\file{ptrace}パッケージ +と\file{tracefnt}パッケージ、過去の\pLaTeX{}のエミュレートに使う +\file{platex\-release}パッケージと\file{latex\-release}パッケージも、 +これと同様の関係になっています。}。 + + +\section{その他の変更点} +\pLaTeX{}の概要については\file{platex.pdf}を、実際のコードは\file{pldoc.pdf}を +参照してください。コードの変更履歴も\file{pldoc.pdf}の末尾で確認できます。 + + +\section{開発版とバグレポート先} +コミュニティ版\pLaTeX{}とu\pLaTeX{}はアスキー版\pLaTeX{}とは異なります +ので、バグレポートはアスキー宛てではなく、日本語\TeX{}開発コミュニティ +に報告してください。\TeX\ ForumやGitHubのIssueシステムが利用できます。 +\begin{itemize} +\item \texttt{https://github.com/texjporg/platex} +\item \texttt{https://github.com/texjporg/uplatex} +\end{itemize} + +\end{document} diff --git a/language/japanese/platex/plnewsc03.tex b/language/japanese/platex/plnewsc03.tex new file mode 100644 index 0000000000..6ce23f8564 --- /dev/null +++ b/language/japanese/platex/plnewsc03.tex @@ -0,0 +1,78 @@ +%% <2016/07/01> +\documentclass{plnews} + +\publicationyear{2016}% 発行年 +\publicationmonth{07}% 発行月 +\publicationissue{c3}% 番号 +\author{日本語\TeX{}開発コミュニティ(\texttt{https://texjp.org/})} + +\def\pTeX{p\kern-.15em\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +\def\pLaTeX{p\kern-.05em\LaTeX} +\def\pLaTeXe{p\kern-.05em\LaTeXe} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書はコミュニティ版\pLaTeXe\ \texttt{<2016/07/01>}について、 +\pLaTeXe\ \texttt{<2016/06/10>}からの更新箇所をまとめたものです。 + + +\section{アクセント文字の修正パッチを一旦撤去} +コミュニティ版\pLaTeX{}で「縦組で『\AA{}』等の一部の合成文字が乱れるバグの +修正」を導入しましたが、この変更で「全てのアクセント文字」についてトラブルが +相次いでしまいました。このため、コミュニティ版に加えたアクセント文字のパッチを +一旦撤去し、元の\LaTeX{}の定義をそのまま使うようにしました。結果的に、従来の +アスキー版と同じく +\begin{itemize} +\item ベースライン補正量がゼロでない場合(特に縦組)で「\AA」などの +一部のアクセント合成文字が乱れる +\item アクセント合成文字の前後に正しく|\xkanjiskip|アキが入らない +\end{itemize} +という問題が残っています。これらは、将来のp\LaTeX{}では改善したいと考えてい +ます。撤去したパッチは、後述の開発版のテストに移動しました。 + + +\section{\texttt{\string\@begindvibox}を常に横組に} +アスキー版p\LaTeX{}では、縦組の文書クラスを使用時に +|\AtBeginDocument{\AtBeginDvi{}}|というコードを書くと +\begin{verbatim} +Incompatible direction list can't be unboxed. +\end{verbatim} +というエラーが出てしまいます。例として、2016年6月以降のgraphics/colorパッ +ケージのdvipsオプションが挙げられます。これに対処するため、コミュニティ版 +p\LaTeX{}では|\@begindvibox|を(空でない限り)常に横組に固定することと +しました(forum:1956)。 + + +\section{起動時に\file{platex.cfg}を読み込む機能を追加} +今回のp\LaTeX{}から、起動時に\file{platex.cfg}というファイルが見つかれば +それを読み込みます。たとえば、|~/texmf/tex/platex/config|ディレクトリに +\begin{verbatim} +\RequirePackage{exppl2e} +\end{verbatim} +という内容の\file{platex.cfg}を置いておけば、p\LaTeX{}の起動直後に +\file{exppl2e}パッケージ(後述)が読み込まれます。up\LaTeX{}の場合は +\file{uplatex.cfg}を使用します。 + + +\section{開発版のテストのお願い} +今後p\LaTeX{}に導入するかもしれない修正パッチや仕様変更を手軽に試していただく +ため、\file{exppl2e}パッケージ(EXPerimentalなPLatex2E)を用意しました。 +少しだけ試したい場合は、\TeX{}ファイルの冒頭(|\documentclass|より前)で +\begin{verbatim} +\RequirePackage{exppl2e} +\end{verbatim} +と書きます。先述の「起動時に\file{platex.cfg}を読み込む機能」を用いると、 +この手続きを自動化することもできます(この方法をお勧めします)。 + +現在は、今回の版で撤去したアクセント文字に関するパッチが入っています。バグ報告 +やご意見を歓迎します。\TeX\ ForumやGitHubのIssueシステムが利用できます。 +\begin{itemize} +\item \texttt{https://github.com/texjporg/platex} +\item \texttt{https://github.com/texjporg/uplatex} +\end{itemize} + +\end{document} diff --git a/language/japanese/platex/plnewsc04.tex b/language/japanese/platex/plnewsc04.tex new file mode 100644 index 0000000000..eae01e41ce --- /dev/null +++ b/language/japanese/platex/plnewsc04.tex @@ -0,0 +1,113 @@ +%% <2016/09/08> +\documentclass{plnews} +\usepackage{plext} %%%% exppl2e の説明用 +\usepackage{amsmath} %%%% exppl2e の説明用 + +\publicationyear{2016}% 発行年 +\publicationmonth{09}% 発行月 +\publicationissue{c4}% 番号 +\author{日本語\TeX{}開発コミュニティ(\texttt{https://texjp.org/})} + +\def\pTeX{p\kern-.15em\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +\def\pLaTeX{p\kern-.05em\LaTeX} +\def\pLaTeXe{p\kern-.05em\LaTeXe} + +\begin{document} + +\maketitle + +\section{この文書について} +この文書はコミュニティ版\pLaTeXe\ \texttt{<2016/09/08>}について、 +\pLaTeXe\ \texttt{<2016/07/01>}からの更新箇所をまとめたものです。 + + +\section{脚注番号(合印)直後の改行許可} +\pLaTeX{}では昔から、本文中に配置した脚注番号(合印といいます)の直後で改行が +起きないという問題がありました。このため、行末付近に合印が来た場合、続く文字 +が版面をはみ出して|Overfull|警告を発してしまいました\footnote{コミュニティ版 +\pLaTeX{}に移行する直前まで(2013--2015年にかけて)、\pTeX{}の仕様変更のため +合印前後にアキが入っており(\file{plnewsc01.tex}参照)、この関係で偶然にも +一時的に改行が起きていましたが、これが2016年には元に戻ったのです。}。 +新しい版(2016/09/03以降)では、直後が句読点などでない場合には改行が可能なよ +うに修正しました(このとき2016/09/03に混入したバグは2016/09/08で修正)。 +改行に際しては合印直前のペナルティ値も考慮されます(Issue 16)。 + + +\section{脚注番号(合印)直前をベタ組に} +終わり括弧類や句点類の直後に脚注番号(合印)が続く場合、ここはベタ組にするの +がよいとされています。そこで、|\footnote|と|\footnotemark|に|\inhibitglue|を +追加しました。これは、奥村さんの\file{jsclasses}と同じ対処です(Issue 16)。 + + +\section{縦組で\file{longtable}使用時の無限ループ解消} +\file{longtable}パッケージは、長い表組の途中で改ページする機能を提供するもの +です。これを縦組で使うと、改ページが起きる表組があった場合に、 +《縦組モード》と表示したまま無限ループが起きてタイプセットが終了しませんでし +た(qa:12116, qa:12127, qa:20273, qa:20298)。この現象を解消し、縦組でも +\file{longtable}パッケージが機能するようにしました(Issue 21)。 + + +\section{\file{ascmac}パッケージのpdf\LaTeX{}等への対応} +古いp\LaTeX~2.09では、\file{ascmac.sty}は横組専用・\file{tascmac.sty}は +縦横両対応というようにパッケージが分かれていましたが、p\LaTeXe{}ではある時点 +で\file{tascmac.sty}に一本化していました。しかし、このためにpdf\LaTeX{}など +で\file{ascmac}パッケージが使えなくなってしまいました(|\tbaselineshift|等を +使用しているため)。今回、\file{tascmac.sty}にpdf\LaTeX{}などに対応したコード +を追加し、再びサポートするように拡張しました。 + + +\section{開発版のテストのお願い} +今後p\LaTeX{}に導入するかもしれない修正パッチや仕様変更のテストにご協力くだ +さい。\TeX{}ファイルの冒頭(|\documentclass|より前)で +\begin{verbatim} +\RequirePackage{exppl2e} +\end{verbatim} +と書くことで、現在の開発版をテストすることができます。 +現在は、支柱コマンドで用いられる|\strutbox|の挙動に関するパッチ(次のページ +参照)と、前回から引き続き「アクセント文字パッチ」も入っています。 + +詳細は\file{exppl2e.pdf}を参照してください。バグ報告やご意見を歓迎します。 +\TeX\ ForumやGitHubのIssueシステムが利用できます。 +\begin{itemize} +\item \texttt{https://github.com/texjporg/platex} +\item \texttt{https://github.com/texjporg/uplatex} +\end{itemize} + + +\clearpage +\section{\texttt{\string\strutbox}パッチについて} +現在の\pLaTeX{}では、主に縦組で海外製の\LaTeX{}パッケージを使用した場合に +不可解な挙動が発生します。たとえば\file{amsmath}パッケージの|align|環境を +使うと、数式の位置や数式番号がずれてしまいます。 +\begin{center} +\setlength{\fboxsep}{10pt} +\fbox{\begin{minipage}{20zw} +align環境、\texttt{\&}が1つ %% 少し上へ +\begin{align} +a_1 &= b_1+c_1\\ +a_2 &= b_2+c_2-d_2+e_2 +\end{align} +align環境、\texttt{\&}なし %% 端に付く +\begin{align} +a_1=b_1+c_1 +\end{align} +比較用のequation環境 +\begin{equation} +a_1=b_1+c_1 +\end{equation} +\end{minipage}} +\end{center} +これは、\file{amsmath}が使用している支柱の箱|\strutbox|が、\pLaTeX{}では +横組専用の箱として組まれているためです。現在の\pLaTeX{}では、横組の支柱は +|\strutbox|、縦組の支柱は|\tstrutbox|というように使い分けなければなりませ +んが、\pLaTeX{}専用というわけではない海外製\LaTeX{}パッケージが、すべて +これを考慮することは困難でしょう。ほかにも、\file{array}パッケージや +\file{longtable}パッケージで作成する表の行の高さなどでも、支柱の寸法がおか +しくなっています。 + +このような場合に対処するため、たとえパッケージが|\strutbox|を呼び出しても、 +縦組ならば縦組用の支柱である|\tstrutbox|が返るようにする、というのが、今回 +検討している|\strutbox|パッチです。 + +\end{document} diff --git a/language/japanese/platex/plnewsc05.tex b/language/japanese/platex/plnewsc05.tex new file mode 100644 index 0000000000..7042b65fe3 --- /dev/null +++ b/language/japanese/platex/plnewsc05.tex @@ -0,0 +1,87 @@ +%% <2016/11/29> +\documentclass{plnews} + +\publicationyear{2016}% 発行年 +\publicationmonth{11}% 発行月 +\publicationissue{c5}% 番号 +\author{日本語\TeX{}開発コミュニティ(\texttt{https://texjp.org/})} + +\def\pTeX{p\kern-.15em\TeX} +\def\eTeX{$\varepsilon$-\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +\def\pLaTeX{p\kern-.05em\LaTeX} +\def\pLaTeXe{p\kern-.05em\LaTeXe} + +\begin{document} + +\maketitle + +この文書はコミュニティ版\pLaTeXe\ \texttt{<2016/11/29>}について、 +\pLaTeXe\ \texttt{<2016/09/08>}からの更新箇所をまとめたものです。 + + +\section{\epTeX{}拡張の活用} +2015年以降の\LaTeX{}カーネルは、\eTeX{}などのエンジン拡張が利用可能ならば利用 +するという方針をとっています。\epTeX{}の場合、利用可能な数式ファミリの上限が +16から256に増えています(通称「FAM256パッチ」)ので、\pLaTeX{}ではこれを活用 +しやすくする設定を加えました。 +数式用アルファベットを使うだけなら、|\DeclareMathAlphabet|をたくさん使っても +\begin{verbatim} + ! LaTeX Error: Too many math alphabets + used in version normal. +\end{verbatim} +というエラーが出にくくなるはずです。 + +なお、|\DeclareMathSymbol|などの記号類の定義に使用する命令は、\LaTeX{}カーネル +で拡張が行われていませんので、\pLaTeX{}でも拡張は行いません。シンボルフォント +を多数使用したい場合は、別途コードを書く必要があります(参考:eptexdoc.pdf)。 + + +\section{\file{jclasses}の\file{classes}への追随} +\file{jclasses}(jarticle、jbook、tarticleなど)の\pLaTeX{}標準クラスを、元と +なった\file{classes}(article、bookなど)に加えられたバグ修正に追随させました。 + +主な修正は以下のとおりです。 +\begin{itemize} +\item |\listof{figures,tables}|、|thebibliography|でヘッダに + 「図目次」などではなく直前のタイトルが入ることがあるバグの修正 +\item 索引の一つ前のページで|\columnsep|と|\columnseprule|が本来より早く + リセットされてしまうバグの修正 +\item |\part|が前の文章から改段落されなかったり、目次の順序が入れ替わっ + たりするバグの修正 +\end{itemize} +なお、\file{classes}では|\frontmatter|と|\mainmatter|の|openany|オプション +指定時の挙動が変更されています(|openright|と共通に、|\cleardoublepage|する +ようになりました)が、この変更への追随は行いませんでした。 +詳細は\file{jclasses.dtx}を参照してください。 + + +\section{\file{plext}の\LaTeX{}への追随と修正} +\file{plext}パッケージが\LaTeX{}から拡張した命令に対しても、\LaTeX{}側の +バグ修正への追随を施しました。主な修正は以下のとおりです。 +\begin{itemize} +\item |\parbox|のオプション引数判定の改善 +\item |tabular*|と|\parbox|の寸法取得コードを改善 +\end{itemize} +また、|\rensuji|を横組で段落の頭に使うと正しく動作しないバグも修正しました。 + + +\section{開発版のテストのお願い} +今後p\LaTeX{}に導入するかもしれない修正パッチや仕様変更のテストにご協力くだ +さい。\TeX{}ファイルの冒頭(|\documentclass|より前)で +\begin{verbatim} + \RequirePackage{exppl2e} +\end{verbatim} +と書くことで、現在の開発版をテストすることができます。 +現在は、「アクセント文字パッチ」と「|\strutbox|パッチ」 +% ベースライン補正がゼロでないときのアクセント合成文字を修正する +% 支柱で用いられる|\strutbox|の縦組時挙動を修正する +が入っています。詳細は\file{exppl2e.pdf}を参照してください。 +バグ報告やご意見を歓迎します。 +\TeX\ ForumやGitHubのIssueシステムが利用できます。 +\begin{itemize} +\item \texttt{https://github.com/texjporg/platex} +\item \texttt{https://github.com/texjporg/uplatex} +\end{itemize} + +\end{document} diff --git a/language/japanese/platex/plnewsc06.tex b/language/japanese/platex/plnewsc06.tex new file mode 100644 index 0000000000..0c07f62550 --- /dev/null +++ b/language/japanese/platex/plnewsc06.tex @@ -0,0 +1,134 @@ +%% <2017/04/08> and <2017/05/05> +\documentclass{plnews} + +\publicationyear{2017}% 発行年 +\publicationmonth{05}% 発行月 +\publicationissue{c6}% 番号 +\author{日本語\TeX{}開発コミュニティ(\texttt{https://texjp.org/})} + +\def\pTeX{p\kern-.15em\TeX} +\def\eTeX{$\varepsilon$-\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +\def\pLaTeX{p\kern-.05em\LaTeX} +\def\pLaTeXe{p\kern-.05em\LaTeXe} + +\begin{document} + +\maketitle + +この文書はコミュニティ版\pLaTeXe\ \texttt{<2017/05/05>}について、 +\pLaTeXe\ \texttt{<2016/11/29>}からの更新箇所をまとめたものです +\footnote{途中のリリース\texttt{<2017/04/08>}での更新箇所を含みます。}。 + + +\section{標準クラスファイルの修正} +\file{jclasses}が全体的に新しくなりました。 +\begin{itemize} +\item (j,t)book/reportクラス:|openleft|オプションを追加しました。これは章の + 始まりを左起こし(横組では見開き起こし、縦組では片起こし)にします。 + 従来は|openright|(横組では片起こし、縦組では見開き起こし)と + |openany|(成り行きに従う)しかありませんでした。なお、|openleft|の場合は + |\cleardoublepage|命令も左起こし用に再々定義します。 +\item (j,t)book/reportクラス:|openany|指定時に|\part|のあとに白ページを + 入れるのをやめました。\LaTeX{}標準クラスの古いバグ修正にようやく追随した + ことになります。 +\item (j,t)bookクラス:タイトルページを必ず奇数ページ目に送るように変更しました。 + 今回の修正により、従来のtbookクラスでタイトルの前に出ていた空白ページは + 無くなります。また、|\frontmatter|と|\mainmatter|も必ず奇数ページ目に送るよう + に変更しました。 +\item タイトルを独立ページとする場合に、奇数レイアウトのページと偶数レイアウト + のページが交互にならない、すなわち両面印刷がうまくいかないことがある問題に + 対処しました。 +\item 縦組の所属表示(|\thanks|)の番号が寝るのは奇妙なので直しました。 +\item トンボに日付を表示する|tombow|オプションの日付表示を\file{jsclasses}に + あわせて桁数固定としました。 +\end{itemize} + + +\section{\file{plext}の揃え位置} +\file{plext}パッケージは|tabular|や|\parbox|などを拡張しますが、罫線やベース +ラインの揃え方に統一性がありませんでした。また、アスキー当時の2001年から +現在に至るまで、\pTeX{}の数々の仕様変更を受けて何度も揃え位置が(勝手に) +変化してきた経緯があります。今回、コミュニティ版で2017年の\pTeX{}に合わせて +仕様を策定することにしました。詳細は\file{pldoc.pdf}もしくはそのソース +\file{plext.dtx}を参照してください。 + + +\section{支柱の高さ} +高さや深さだけを持つ見えない箱、すなわち支柱として、\LaTeX{}では +|\strutbox|というボックスが用意されます。縦組と横組という概念が追加された +\pLaTeX{}では、|\strutbox|を横組ボックスとして組み、別途に縦組ボックス +|\tstrutbox|を用意していました。これに従えば、支柱を利用したいパッケージ側が +「横組では|\strutbox|を呼び出し、縦組では|\tstrutbox|を呼び出す」と使い分け +る必要があります。 + +\pLaTeX{}と一緒に配布しているパッケージは実際にこの使い分けを行っており、 +ほとんど問題ありませんでした。ところが、\pLaTeX{}縦組を考慮していない外部の +パッケージはこのような運用になっていないため、縦組で|\strutbox|の寸法を取得 +しようとして、支柱の期待に反する値が返ってしまいます。 +結果的に、縦組で\file{amsmath}パッケージの|align|環境内の整列がうまくいかな +かったり、表の|\arraystretch|命令が効かなかったりという問題が生じていました。 + +新しい\pLaTeX{}では、横組ボックス|\ystrutbox|と縦組ボックス|\tstrutbox|を +用意し、|\strutbox|は「現在の組方向を判定し、横組なら|\ystrutbox|を、縦組なら +|\tstrutbox|を返すマクロ」へと変更しました。これで、何も考えなくても +|\strutbox|が常に支柱として機能するようになりました。 + + +\section{\LaTeXe\ \texttt{<2017-04-15>}対応} +\LaTeXe\ \texttt{<2017-04-15>}で入る予定の修正の一部が\pLaTeXe{}と衝突する +部分について、事前に対策を施しました。現時点では、|\verb|の途中で +ハイフネーション行分割を抑制するための修正、および|verbatim|環境中での +ハイフネーション抑制に絡んだ出力ルーチンの命令の修正に対応しました。 +なお、フォーマットの日付が\texttt{yyyy/mm/dd}から\texttt{yyyy-mm-dd}という +ISO書式に変更されましたが、\pLaTeXe{}のフォーマット日付はまだ従来の書式の +ままにしています。 + + +\section{\file{nidanfloat}パッケージの修正} +\LaTeX{}で二段組における段抜きフロートをbottomにも配置できるようにする +\file{nidanfloat}パッケージですが、右カラムの処理中に段抜きフロートが +出現した場合に右カラムのテキストの高さを誤り、テキストとフロートが +重なってしまうバグがありました。これは2006年時点から指摘されていた古い +問題でしたが、今回ようやくバグ修正しました。 + + +\section{その他のバグ修正} +その他の\pLaTeXe{}カーネルの修正点は以下のとおりです。 +\begin{itemize} +\item 相互参照の|\ref{ラベル}|や|\pageref{ラベル}|をセクションなどの + 「動く引数」で使うと、目次に出たときに後ろの半角スペースが消えるバグを + 修正しました。 +\item 出力ルーチンに関わるマクロの深さ補正の誤りにより、脚注を含むページ + の版面全体が(特に縦組で顕著に)ずれていたバグを直しました。 +\item 行頭禁則文字の直前で|\linebreak|による強制改行が効かなかった + 問題に対処しました。 +\item 縦数式ディレクションでアンダースコア(|\_|)のベースライン補正量が + 間違っていたのを修正しました。 +\end{itemize} +また、\file{plext}パッケージの修正点は以下のとおりです。 +\begin{itemize} +\item \LaTeXe\ 2015/01/01に追随して|\parbox|をrobustにしました。 + また、独自命令である|\pbox|も同様にrobustにしました。 +\item |\pbox|命令のオプション引数(幅の指定)で、\file{calc}パッケージ + を使った場合は式も使えるようにしました。 +\item |\Kanji|命令の引数のあとに数字が続く場合、その数字まで漢数字に + なってしまうバグを修正しました。 +\end{itemize} + + +\section{開発版のテストのお願い} +今後p\LaTeX{}に導入するかもしれない修正パッチや仕様変更のテストにご協力くだ +さい。\TeX{}ファイルの冒頭(|\documentclass|より前)で +\begin{verbatim} + \RequirePackage{exppl2e} +\end{verbatim} +と書くことで、現在の開発版をテストすることができます。 +バグ報告やご意見を歓迎します。 +\TeX\ ForumやGitHubのIssueシステムが利用できます。 +\begin{itemize} +\item \texttt{https://github.com/texjporg/platex} +\item \texttt{https://github.com/texjporg/uplatex} +\end{itemize} + +\end{document} diff --git a/language/japanese/platex/plnewsc07.tex b/language/japanese/platex/plnewsc07.tex new file mode 100644 index 0000000000..20bcefa13d --- /dev/null +++ b/language/japanese/platex/plnewsc07.tex @@ -0,0 +1,274 @@ +%% <2017/07/29> +\documentclass{plnews} + +\publicationyear{2017}% 発行年 +\publicationmonth{07}% 発行月 +\publicationissue{c7}% 番号 +\author{日本語\TeX{}開発コミュニティ(\texttt{https://texjp.org/})} + +\def\cs#1{\texttt{\char92 #1}} +\def\pTeX{p\kern-.15em\TeX} +\def\eTeX{$\varepsilon$-\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +\def\pLaTeX{p\kern-.05em\LaTeX} +\def\pLaTeXe{p\kern-.05em\LaTeXe} + +% ==== specific to 2017/07/29 ==== +\usepackage{booktabs} +\let\origfootnoterule\footnoterule +\usepackage{pxftnright} +\let\footnoterule\origfootnoterule +\makeatletter +\renewcommand{\section}{% + \@startsection{section}{1}{\z@} + {1.5\Cvs \@plus.6\Cvs \@minus.2\Cvs}% + {.5\Cvs \@plus.3\Cvs}{\reset@font\large\bfseries}% \Large -> \large +} +\renewcommand{\maketitle}{% + \twocolumn[{% + \parbox[t][6\baselineskip]{\textwidth}{% + \@titlefont\@title\hspace{3mm}% + \normalsize 第{\@issue}号\\[\medskipamount] + \normalfont{\@year}年{\@month}月~発行\\ + 作成者:\begin{tabular}[t]{l} + \@author + \end{tabular}% + } + \parbox[t][3\baselineskip]{\textwidth}{% +この文書はコミュニティ版\pLaTeXe\ \texttt{<2017/07/29>}について、 +\pLaTeXe\ \texttt{<2017/05/05>}からの更新箇所をまとめたものです\footnotemark。 + }% + }]% +} +\makeatother +% ==== end ==== + +\begin{document} + +\maketitle +\footnotetext{修正リリース\texttt{<2017/07/29>+1}での更新箇所を含みます。} + +\section{表のセル要素周囲のJFMグルーを抑制} +表を作る|tabular|環境で、セルの要素が括弧類などで始まる、または括弧類 +などで終わる場合、余分なスペースが入ることがありました。 +また、スペースが入るかどうかは、「ソース中でアラインメント文字 |&| の +前後に半角空白を書いたかどうか」で変化していました。この余分なスペース +は、\pTeX{}のメトリックから挿入されるJFMグルーに由来します。 + +\begin{verbatim} + \begin{tabular}{|l|c|r|} + (左揃え)&(中央揃え)&(右揃え)\\ + (左) & (中) & (右)\\ + \end{tabular} +\end{verbatim} + +\makeatletter +\def\@tabclassz{% + \ifcase\@lastchclass + \@acolampacol + \or + \@ampacol + \or + \or + \or + \@addamp + \or + \@acolampacol + \or + \@firstampfalse\@acol + \fi + \edef\@preamble{% + \@preamble{% + \ifcase\@chnum + \hfil\ignorespaces\@sharp\unskip\hfil + \or + \hskip1sp\ignorespaces\@sharp\unskip\hfil + \or + \hfil\hskip1sp\ignorespaces\@sharp\unskip + \fi}}} +\makeatother +\DeleteShortVerb{\|} + \begin{tabular}{|l|c|r|} + (左揃え)&(中央揃え)&(右揃え)\\ + (左) & (中) & (右)\\ + \end{tabular} +\MakeShortVerb{\|} +\medskip + +ソースを見やすくするために半角空白を入れることはよくありますので、 +半角空白の有無によって結果が変わるのは困ります。そのためか、本家の +\LaTeX{}では、アラインメント文字 |&| の前後に半角空白を書いたかどうか +にかかわらず、同じ出力が得られるような対処が従来から入っていました。 + +\pLaTeX{}の場合、この対処が\pTeX{}のJFMグルーには効いていませんでした。 +この問題を修正し、中央揃え(|c|)や左揃え(|l|)、右揃え(|r|)がずれて +見えないようになりました。 + +\medskip +\makeatletter +\def\@tabclassz{% + \ifcase\@lastchclass + \@acolampacol + \or + \@ampacol + \or + \or + \or + \@addamp + \or + \@acolampacol + \or + \@firstampfalse\@acol + \fi + \edef\@preamble{% + \@preamble{% + \ifcase\@chnum + \hfil\inhibitglue\ignorespaces\@sharp\unskip\unskip\hfil % c + \or + \hskip1sp\inhibitglue\ignorespaces\@sharp\unskip\unskip\hfil % l + \or + \hfil\hskip1sp\inhibitglue\ignorespaces\@sharp\unskip\unskip % r + \fi}}} +\makeatother +\DeleteShortVerb{\|} + \begin{tabular}{|l|c|r|} + (左揃え)&(中央揃え)&(右揃え)\\ + (左) & (中) & (右)\\ + \end{tabular} +\MakeShortVerb{\|} +\medskip + +なお、この修正は\file{array}パッケージ(\LaTeX3 Teamによる +\file{latex-tools}バンドルに収録)を読み込むと無効になってしまいます。 +\pLaTeX{}/u\pLaTeX{}で\file{array}パッケージを使いたい場合は、 +\file{plarray}パッケージ(2017/07/29以降の\file{platex-tools}バンドルに +収録)を追加もしくは代わりに読み込んでください。 + + +\section{\file{plext}の揃え位置} +\file{plext}パッケージが拡張する表組(|tabular|環境と|array|環境)、 +および|\parbox|命令と|minipage|環境の「組方向オプション」 +(||, ||, ||)を使用した場合の、罫線やベースラインの揃え方の +仕様を新たに策定しました。 + +\medskip + \begin{tabular}{lcccc} + \toprule + ↓中身\周囲→ & 横 & 縦 & 縦数式 \\ + \midrule + 横 & A & B & B \\ + 縦 & B & A & D \\ + 縦数式 & B & D & A \\ + \bottomrule + \end{tabular} +\bigskip + +A, B, Dはそれぞれ以下のとおりです(なお、この表記は +Lua\TeX-jaパッケージのドキュメントでの表記と一致させてあります)。 + +\begin{itemize} + \item[A] 周囲の組方向と中身の組方向が同じ場合 + (=横組での||, ||、縦組での||) + \begin{itemize}\itemindent-18pt + \item \texttt{[t]}指定のとき: + 中身の先頭行のベースラインが周囲のベースラインと一致する。 + 表組で先頭行の上に罫線があった場合は、それが和文ベースラインの位置となる。 + \item \texttt{[c]}指定のとき: + 中身の上下の中心が周囲の数式の軸を通る。 + \item \texttt{[b]}指定のとき: + 中身の最終行のベースラインが周囲のベースラインと一致する。 + 表組で最終行の下に罫線があった場合は、それが和文ベースラインの位置となる。 + \end{itemize} + \item[B] 周囲の組方向と中身の組方向が90度ずれている場合 + (=横組での||、縦組での||) + \begin{itemize}\itemindent-18pt + \item \texttt{[t]}指定のとき: + 表組においては、上端が周囲の和文ベースラインと一致する。 + |\parbox|や|minipage|環境においては、上端が周囲の和文文字の上端と一致する。 + \item \texttt{[c]}指定のとき: + 中身の上下の中心が周囲の数式の軸を通る。 + \item \texttt{[b]}指定のとき: + 表組においては、下端が周囲の和文ベースラインと一致する。 + |\parbox|や|minipage|環境においては、下端が周囲の和文文字の下端と一致する。 + \end{itemize} + \item[D] 通常の縦組と縦数式ディレクションが絡んだ場合 + (=縦組での||) \\ + |\parbox|や|minipage|環境においては、上のBの場合と同じ。 + 表組においては、 + \begin{itemize}\itemindent-18pt + \item \texttt{[t]}指定のとき: + 中身の先頭行の欧文ベースラインが周囲の欧文ベースラインと一致する。 + \item \texttt{[c]}指定のとき: + 中身の上下の中心が周囲の数式の軸を通る。 + \item \texttt{[b]}指定のとき: + 中身の最終行の欧文ベースラインが周囲の欧文ベースラインと一致する。 + \end{itemize} +\end{itemize} + + +\section{\file{ascmac}のリターン記号命令の衝突対策} +\file{ascmac}パッケージが提供する|\Return|という命令が、ほかの +パッケージと衝突することがありました(例:\file{algorithm2e}パッケージ)。 +従来の\file{ascmac}パッケージでは、既に|\Return|という命令が定義されて +いても関係なく上書きしていましたが、新しい版では|\Return|が定義済みか +どうかチェックするようにしました。そして、 +「定義済みでかつ\file{ascmac}パッケージの定義と非互換な場合」 +にエラーを出します。 + + +\section{禁則ペナルティの修正} +昔のアスキー日本語\TeX{}の頃からペナルティ設定が誤っていた文字(|%&%&|)を +修正しました。 +u\pLaTeX{}ではさらに、中国語や韓国語で〈・〉の字形として\texttt{U+30FB}でなく +\texttt{U+00B7}が使われることから、新たに|\prebreakpenalty|を設定しました +\footnote{u\pLaTeX{}の場合は従来から、\texttt{U+00A0}--\texttt{U+00FF}の範囲 +にある文字について「これが約物であって、かつJIS X 0213に定義されている場合」は +禁則ペナルティを設定していました。\texttt{U+00B7}もこれに該当するので、 +単に漏れていた可能性があります。一方で、この範囲の文字は8-bit Latinとも重複 +するので\textbf{「和文文字の前後に(半角空白を挟まず)連続するT1エンコードの +文字」などが予期せず禁則対象になる可能性があることに注意が必要}です。}。 + + +\section{その他のバグ修正} +旧版で混入したバグの修正: +\begin{itemize} +\item 行頭禁則文字の直前で|\linebreak|による強制改行が効かない問題に + 対処した2017/05/05版で、今度は逆に|\nolinebreak|を挿入したその箇所で + |\(x)kanjiskip|が入らなくなった問題に対処。 +\end{itemize} +その他の\pLaTeXe{}カーネルの修正点: +\begin{itemize} +\item |\adjustbaseline|の全角文字基準を、全角空白文字から「漢」という + 文字に変更。 +\end{itemize} + + +\section{開発版のテストのお願い} +今後\pLaTeX{}に導入するかもしれない修正パッチや仕様変更のテストにご協力くだ +さい。\TeX{}ファイルの冒頭(|\documentclass|より前)で +\begin{verbatim} + \RequirePackage{exppl2e} +\end{verbatim} +と書くことで、開発版をテストすることができます。 +現在は以下の修正が含まれ、特に最後の3つは欧文の\LaTeX{}との +組版結果の互換性向上を目指しています。 +\begin{itemize} +\item アクセント合成文字の前後に|\xkanjiskip|が入らない問題の修正 +\item |\<|という命令を段落頭でも効くようにする修正 + \footnote{2010年の\pTeX{}の修正により\cs{inhibitglue}が垂直モード + で効かなくなったことへの対応。} +\item tabbing環境の行の最初の項目だけ括弧類のJFMグルーが入る現象への対処 +\item |\verb|の中身が半角空白で始まる場合にそれが消滅する問題の修正 +\item |\ref|の結果が``A''のような英大文字の場合のスペースファクター + \footnote{文末空白か単語間空白かを決める因子。}の補正 +\item |\emph{f\textrm{a}}|のような場合の|\text..|命令の左側でイタリック補正 + が効かない問題の修正 +\end{itemize} +バグ報告やご意見を歓迎します。 +\TeX\ ForumやGitHubのIssueシステムが利用できます。 +\begin{itemize} +\item \texttt{https://github.com/texjporg/platex} +\item \texttt{https://github.com/texjporg/uplatex} +\end{itemize} + +\end{document} diff --git a/language/japanese/platex/plnewsc08.tex b/language/japanese/platex/plnewsc08.tex new file mode 100644 index 0000000000..30f4a98aad --- /dev/null +++ b/language/japanese/platex/plnewsc08.tex @@ -0,0 +1,96 @@ +%% <2017/09/26> and <2017/10/28> +\documentclass{plnews} + +\publicationyear{2017}% 発行年 +\publicationmonth{10}% 発行月 +\publicationissue{c8}% 番号 +\author{日本語\TeX{}開発コミュニティ(\texttt{https://texjp.org/})} + +\def\cs#1{\texttt{\char92 #1}} +\def\pTeX{p\kern-.15em\TeX} +\def\eTeX{$\varepsilon$-\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +\def\pLaTeX{p\kern-.05em\LaTeX} +\def\pLaTeXe{p\kern-.05em\LaTeXe} + +\begin{document} + +\maketitle + +この文書はコミュニティ版\pLaTeXe\ \texttt{<2017/10/28>}について、 +\pLaTeXe\ \texttt{<2017/07/29>}からの更新箇所をまとめたものです +\footnote{途中のリリース\texttt{<2017/09/26>}での更新箇所を含みます。}。 + + +\section{旧版のtabular環境のバグ修正} +\pLaTeXe\ \texttt{<2017/07/29>}のリリースで修正した|tabular|環境に、 +右揃え(|r|)のセルがずれるバグが混入していたのを修正しました。 + + +\section{tabbing環境のJFMグルー対策} +|tabular|環境と同様に|tabbing|環境でも、行の最初の項目だけ、括弧類などで +始まる場合にJFMグルーが入っていました。 +新しいバージョン\pLaTeXe\ \texttt{<2017/10/28>}では、一律に冒頭の +JFMグルーが入らないようにしました。 + + +\section{\LaTeXe{}との互換性向上} +\pLaTeXe{}で加えられた修正によって\LaTeXe{}の挙動が壊れていた箇所を、 +以下のように改良しました。 + +\subsection{\cs{ref}直後のスペースファクター} +\<「|\ref|命令直後の和文文字との間に|\xkanjiskip|が挿入されるように」 +というアスキー\pLaTeXe{}の変更には、本家\LaTeXe{}と比べて +\begin{itemize} +\item 目次に現れる項目で|\ref|が使われた場合に、後続の半角空白が消える +\item |\ref|の結果が``A''のような英大文字の場合に、スペースファクター +\footnote{文末空白か単語間空白かを決める因子。}が正しく扱われない +\end{itemize} +という問題がありました。前者の問題はコミュニティ版 +\pLaTeXe\ \texttt{<2017/04/08>}で対処済みでしたが、後者の問題は +残っていたので修正しました +(参考:\LaTeXe{}マクロ\&クラス プログラミング実践解説)。 + +\subsection{\cs{verb}の冒頭の空白} +\<「|\verb|命令直前で|\xkanjiskip|が適切に挿入されるように」 +というアスキー\pLaTeXe{}の変更には、「|\verb|の冒頭に半角空白がある場合 +(例えば|\verb+ abc+|など)にそれが消えてしまう」という問題がありました +ので、これを修正しました。 + +\subsection{\cs{text..}命令のイタリック補正} +アスキー\pLaTeXe{}は、「{\gtfamily あ\null\verb|\texttt{abc}|い} のような +書体変更時に|\xkanjiskip|が入らない」という現象に対処するため、 +「イタリック補正を犠牲にして|\xkanjiskip|を入れる」という回避策をとって +いました。この回避策は2010年の\pTeX{}側の修正で不要となったため、 +\pLaTeXe{}の当該コードを削除して本家\LaTeXe{}の定義に戻しました。 +これで例えば|\emph{f\textrm{a}}|のような場合に|\text..|命令の左側に +イタリック補正が効くようになりました。 + + +\section{\cs{inhibitglue}の省略形の改良} +\pLaTeXe{}は、|\inhibitglue|の省略形として使える|\<|という命令を提供して +いました。しかし、2014年の\pTeX{}の修正に伴い、|\<|が段落頭で効かなく +なっていました\footnote{\cs{inhibitglue}が\pTeX{}の挙動変更により +垂直モードで効かなくなったため。}ので、定義を改良しました。 + + +\section{標準クラスの修正} +\pLaTeXe{}標準クラスの|\Cht|などの全角文字基準を、全角空白文字から「漢」に +変更しました。 + + +\section{開発版のテストのお願い} +今後\pLaTeX{}に導入するかもしれない修正パッチや仕様変更のテストにご協力くだ +さい。\TeX{}ファイルの冒頭(|\documentclass|より前)で +\begin{verbatim} + \RequirePackage{exppl2e} +\end{verbatim} +と書くことで、開発版をテストすることができます。 +バグ報告やご意見を歓迎します。 +\TeX\ ForumやGitHubのIssueシステムが利用できます。 +\begin{itemize} +\item \texttt{https://github.com/texjporg/platex} +\item \texttt{https://github.com/texjporg/uplatex} +\end{itemize} + +\end{document} diff --git a/language/japanese/platex/plnewsc09.tex b/language/japanese/platex/plnewsc09.tex new file mode 100644 index 0000000000..3944f5ec7e --- /dev/null +++ b/language/japanese/platex/plnewsc09.tex @@ -0,0 +1,81 @@ +%% <2018/03/09> +\documentclass{plnews} + +\publicationyear{2018}% 発行年 +\publicationmonth{03}% 発行月 +\publicationissue{c9}% 番号 +\author{日本語\TeX{}開発コミュニティ(\texttt{https://texjp.org/})} + +\def\cs#1{\texttt{\char92 #1}} +\def\pTeX{p\kern-.15em\TeX} +\def\eTeX{$\varepsilon$-\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +\def\pLaTeX{p\kern-.05em\LaTeX} +\def\pLaTeXe{p\kern-.05em\LaTeXe} + +\begin{document} + +\maketitle + +この文書はコミュニティ版\pLaTeXe\ \texttt{<2018/03/09>}について、 +\pLaTeXe\ \texttt{<2017/10/28>}からの更新箇所をまとめたものです。 + + +\section{tabular環境の改良} +\pLaTeXe\ \texttt{<2017/07/29>}で導入した|tabular|環境の修正方針を +転換し、より\LaTeXe{}との互換性を高めました。具体的には +\begin{verbatim} + \begin{tabular}{p{5cm}} + A\\ + \relax\par + A + \end{tabular} +\end{verbatim} +のようなソースで余分な空行が入らないようにしました。 +これを実現するために後述する|\removejfmglue|命令を使用しています。 + + +\section{\cs{removejfmglue}命令の追加} +\<「最後のノードがJFM グルーであった場合にそれを削除する」という機能を +持つ|\removejfmglue|命令を追加しました。ただし、これは\epTeX\ 180226以降に +実装された|\lastnodesubtype|というプリミティブが利用可能な場合のみ使えます。 + + +\section{和文スケール値の新規約} +日本語用クラスファイルの新たな共通規約として、新たに +「クラスファイルが意図する和文スケール値 +($1\,\mathrm{zw} \div \textmc{要求サイズ}$)」 +を数値マクロ|\Cjascale|で定義することにしました。今後は +\begin{itemize} +\item 日本語クラスファイルの作成者は、 + 原則として|\Cjascale|を和文スケール値に設定する。 +\item 日本語フォントを変更するパッケージなどの作者は、 + 原則としてクラスファイルが定める|\Cjascale|を参照する。 +\end{itemize} +という運用を推奨します。 + + +\section{\pLaTeX{}とu\pLaTeX{}の共通化} +2016年以降、\pLaTeX{}とu\pLaTeX{}をともに日本語\TeX{}開発コミュニティが +管理するようになったことから、\TeX\ Live 2018以降では\pLaTeX{}と +u\pLaTeX{}のフォーマット作成時に使われる|.ltx|ファイル群を +大幅に共通化しました。これにより、従来はu\pLaTeX{}を\pLaTeX{}と独立に +インストールすることができましたが、今後はu\pLaTeX{}が\pLaTeX{}に +依存することになります。 + + +\section{開発版のテストのお願い} +今後\pLaTeX{}に導入するかもしれない修正パッチや仕様変更のテストにご協力くだ +さい。\TeX{}ファイルの冒頭(|\documentclass|より前)で +\begin{verbatim} + \RequirePackage{exppl2e} +\end{verbatim} +と書くことで、開発版をテストすることができます。 +バグ報告やご意見を歓迎します。 +\TeX\ ForumやGitHubのIssueシステムが利用できます。 +\begin{itemize} +\item \texttt{https://github.com/texjporg/platex} +\item \texttt{https://github.com/texjporg/uplatex} +\end{itemize} + +\end{document} diff --git a/language/japanese/platex/plnewsc10.tex b/language/japanese/platex/plnewsc10.tex new file mode 100644 index 0000000000..7abf9d8c7a --- /dev/null +++ b/language/japanese/platex/plnewsc10.tex @@ -0,0 +1,77 @@ +%% <2018-04-01> and <2018-05-20> +\documentclass{plnews} + +\publicationyear{2018}% 発行年 +\publicationmonth{05}% 発行月 +\publicationissue{c10}% 番号 +\author{日本語\TeX{}開発コミュニティ(\texttt{https://texjp.org/})} + +\def\cs#1{\texttt{\char92 #1}} +\def\pTeX{p\kern-.15em\TeX} +\def\eTeX{$\varepsilon$-\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +\def\pLaTeX{p\kern-.05em\LaTeX} +\def\pLaTeXe{p\kern-.05em\LaTeXe} + +\begin{document} + +\maketitle + +この文書はコミュニティ版\pLaTeXe\ \texttt{<2018-04-01>}および +\texttt{<2018-05-20>}について、 +\pLaTeXe\ \texttt{<2018/03/09>}からの更新箇所をまとめたものです。 +今回から、フォーマットの日付の表記をyyyy/mm/ddからISO 8601準拠の +yyyy-mm-ddに変更しました。 + + +\section{\LaTeXe\ \texttt{<2018-04-01>}対応} +\LaTeXe\ \texttt{<2018-04-01>}で、欧文のinputencの既定が|utf8|に +なりました。これに合わせ、\pLaTeXe で和文用に拡張していた +|\DeclareFontEncoding|命令でも|.dfu|ファイルの読込処理を追加しました。 + + +\section{トンボ関連の修正と機能追加} +従来、colorパッケージなどでテキストに色をつけた場合、 +その色つきテキストの途中に改ページするとそこだけトンボにも +色がつくという問題がありました。\pLaTeXe\ \texttt{<2018-05-20>}では +この問題に対処しました。 + +さらに、トンボをカスタマイズしやすくするため、以下の仕様を定めます。 +パッケージを作る場合などに、以下のマクロやパラメータを +変更することができます。 + +まずはマクロです。 +\begin{itemize} +\item |\maketombowbox|はトンボになる形状を用意する命令です。 +\item |\@outputtombow|は用意されたトンボを定位置に出力する命令です。 +\end{itemize} +次にパラメータです。 +\begin{itemize} +\item トンボに出力するバナーは|\@bannertoken|で表す。 + これはトークンレジスタである。【アスキー版と同様】 +\item トンボの線の幅は|\@tombowwidth|で表す。 + これは|\dimen|レジスタであり、デフォルトは + |.1pt|である。【アスキー版と同様】 +\item トンボの塗り足し(ドブ)の幅は|\@tombowbleed|で表す。 + これは寸法マクロであり、デフォルトは + |\def\@tombowbleed{3mm}|である。【新設】 +\item トンボの色は|\@tombowcolor|マクロで表す。 + デフォルトは|\def\@tombowcolor{\normalcolor}|である。【新設】 +\end{itemize} + + +\section{開発版のテストのお願い} +今後\pLaTeX{}に導入するかもしれない修正パッチや仕様変更のテストにご協力くだ +さい。\TeX{}ファイルの冒頭(|\documentclass|より前)で +\begin{verbatim} + \RequirePackage{exppl2e} +\end{verbatim} +と書くことで、開発版をテストすることができます。 +バグ報告やご意見を歓迎します。 +\TeX\ ForumやGitHubのIssueシステムが利用できます。 +\begin{itemize} +\item \texttt{https://github.com/texjporg/platex} +\item \texttt{https://github.com/texjporg/uplatex} +\end{itemize} + +\end{document} diff --git a/language/japanese/platex/plnewsc11.tex b/language/japanese/platex/plnewsc11.tex new file mode 100644 index 0000000000..2a5ff36713 --- /dev/null +++ b/language/japanese/platex/plnewsc11.tex @@ -0,0 +1,94 @@ +%% <2018-07-28> +\documentclass{plnews} + +\publicationyear{2018}% 発行年 +\publicationmonth{07}% 発行月 +\publicationissue{c11}% 番号 +\author{日本語\TeX{}開発コミュニティ(\texttt{https://texjp.org/})} + +\def\cs#1{\texttt{\char92 #1}} +\def\pTeX{p\kern-.15em\TeX} +\def\eTeX{$\varepsilon$-\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +\def\pLaTeX{p\kern-.05em\LaTeX} +\def\pLaTeXe{p\kern-.05em\LaTeXe} + +\begin{document} + +\maketitle + +この文書はコミュニティ版\pLaTeXe\ \texttt{<2018-07-28>}について、 +\pLaTeXe\ \texttt{<2018-05-20>}からの更新箇所をまとめたものです。 + + +\section{標準クラスの\cs{today}を西暦に} +\pLaTeX{}付属の標準クラス +(jarticle, jbook, jreport, tarticle, tbook, treport)では、 +これまで|\today|命令で表示される日付のデフォルトを +\begin{quote} +\和暦\today +\end{quote} +のように元号としていました。 +しかし、平成31年(2019年)に改元が予定されていることを機に、 +今回のリリースからデフォルトを +\begin{quote} +\西暦\today +\end{quote} +のような西暦に変更しました。 +u\pLaTeX{}付属のクラスも同様に変更しています。 + + +\section{シリーズ\texttt{b}も太字に} +\LaTeX{}標準では、太字(|\bfseries|, |\textbf|)を指定すると +{\fontseries{bx}\selectfont bold extended} (|bx|)に切り替わります。 + +一方、\file{tgtermes}, \file{iwona}などの欧文フォントパッケージを +使うと、太字が{\fontseries{b}\selectfont bold} (|b|)に変わります。 + +従来の(u)\pLaTeX{}では、和文の太字をシリーズ|bx|だけに割り当て、 +|b|には何も設定していませんでした。そのため、後者の場合に +\begin{quote}\scriptsize +\begin{verbatim} +LaTeX Font Warning: Font shape `JY1/mc/b/n' undefined +(Font) using `JY1/mc/m/n' instead on ... +\end{verbatim} +\end{quote} +のような警告が出て「和文が太字にならない」という挙動でした。 +今回からシリーズ|b|にも和文の太字を割り当て、 +太字になるようにしました。 + + +\section{アクセント文字の再修正} +\pLaTeXe\ 2016/04/17から2016/07/01にかけて、 +「ベースライン補正量がゼロでない場合にアクセント合成文字が乱れる」 +というバグを修正しようと試みていました。 +この時はトラブルが相次いだため、一旦全てのパッチを撤去したの +ですが(参考:\file{plnewsc03.tex})、今回別の方法で +再度パッチを導入しました。 +\begin{itemize} +\item \textbf{デフォルトでは修正パッチは無効}です。 +\item |\fixcompositeaccent|命令【新設】\\ + この命令を発行すると、それ以降で\pLaTeX{}用修正パッチが + 有効化されます。グループ内で発行された場合は、 + そのグループ内でのみ修正パッチが有効です。 +\item |\nofixcompositeaccent|命令【新設】\\ + |\fixcompositeaccent|の効果を打ち消し、 + 元の\LaTeX{}の定義に戻します。 +\end{itemize} +|\fixcompositeaccent|命令を発行すると、 +「ベースライン補正量がゼロでない場合のアクセントの高さ」 +「周囲の和文文字との間に自動挿入される|\xkanjiskip|」などの +挙動がほぼ期待通りになりますが、 +一部\LaTeX{}とは異なる挙動(警告・エラー)になる場合があります。 +必要に応じて|\fixcompositeaccent|を有効化・無効化することで +対処してください。 + + +\section{開発版のテストのお願い} +バグ報告やご意見、開発版の入手はGitHubへ。 +\begin{itemize} +\item \texttt{https://github.com/texjporg/platex} +\item \texttt{https://github.com/texjporg/uplatex} +\end{itemize} + +\end{document} diff --git a/language/japanese/platex/plnewsc12.tex b/language/japanese/platex/plnewsc12.tex new file mode 100644 index 0000000000..b732bc0b54 --- /dev/null +++ b/language/japanese/platex/plnewsc12.tex @@ -0,0 +1,69 @@ +%% <2018-12-01> +\documentclass{plnews} + +\publicationyear{2018}% 発行年 +\publicationmonth{12}% 発行月 +\publicationissue{c12}% 番号 +\author{日本語\TeX{}開発コミュニティ(\texttt{https://texjp.org/})} + +\def\cs#1{\texttt{\char92 #1}} +\def\pTeX{p\kern-.15em\TeX} +\def\eTeX{$\varepsilon$-\TeX} +\def\epTeX{$\varepsilon$-\pTeX} +\def\pLaTeX{p\kern-.05em\LaTeX} +\def\pLaTeXe{p\kern-.05em\LaTeXe} + +\begin{document} + +\maketitle + +この文書はコミュニティ版\pLaTeXe\ \texttt{<2018-12-01>}について、 +\pLaTeXe\ \texttt{<2018-07-28>}からの更新箇所をまとめたものです。 + + +\section{\file{plext}のバグ修正} +\file{plext}パッケージが拡張する|\pcaption|命令について、 +下記の仕様変更とバグ修正を行いました。 +\begin{description} +\item[仕様変更] + 本文が縦組の時、キャプションも縦組にする。 + (従来は、本文の組方向によらず常にキャプションは横組 + になっていました。) +\item[バグ修正] + 本文が縦組で、キャプションを横組にする場合に + 「どんなに短いキャプションでも、幅を増やして + 一行に収めることができなかった」というバグの修正。 +\end{description} +詳細はGitHub issue 76及び\TeX\ forum 2506を参照してください。 + + +\section{\LaTeXe\ \texttt{<2018-12-01>}対応} +\LaTeXe\ \texttt{<2018-12-01>}では、 +「外部ファイルへの書き出しと読み込み」が絡む処理(目次など)で +\begin{quote} +書き出されたファイルの行末に空白文字があり、 +それに由来する不自然な空白が出力される場合があった +\end{quote} +という従来の挙動が修正され、不自然な空白が生じなくなります。 +このため、(u)\pLaTeX{}の標準クラスもこの修正に追随しました。 +詳細はGitHub issue 79を参照してください。 + + +\section{開発版のテストのお願い} +今後p\LaTeX{}に導入するかもしれない修正パッチや仕様変更のテストに +ご協力ください。\TeX{}ファイルの冒頭(|\documentclass|より前)で +\begin{verbatim} +\RequirePackage{exppl2e} +\end{verbatim} +と書くことで、現在の開発版をテストすることができます。 +現在は、支柱コマンドで用いられる|\strut|の挙動に関するパッチが +入っています。 + +詳細は\file{exppl2e.pdf}を参照してください。 +\TeX\ ForumやGitHubのIssueでのバグ報告やご意見を歓迎します。 +\begin{itemize} +\item \texttt{https://github.com/texjporg/platex} +\item \texttt{https://github.com/texjporg/uplatex} +\end{itemize} + +\end{document} diff --git a/language/japanese/platex/plvers.dtx b/language/japanese/platex/plvers.dtx new file mode 100644 index 0000000000..9944cbfc1c --- /dev/null +++ b/language/japanese/platex/plvers.dtx @@ -0,0 +1,462 @@ +% \iffalse meta-comment +%% File: plvers.dtx +% +% Copyright 1995-2006 ASCII Corporation. +% Copyright (c) 2010 ASCII MEDIA WORKS +% Copyright (c) 2016-2019 Japanese TeX Development Community +% +% This file is part of the pLaTeX2e system (community edition). +% ------------------------------------------------------------- +% +% \fi +% +% \iffalse +%<*driver> +\ifx\JAPANESEtrue\undefined + \expandafter\newif\csname ifJAPANESE\endcsname + \JAPANESEtrue +\fi +\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} +% +% \fi +% +% \setcounter{StandardModuleDepth}{1} +% \StopEventually{} +% +% \iffalse +% \changes{v1.0}{1995/05/16}{p\LaTeXe\ 用に\file{ltvers.dtx}を修正} +% \changes{v1.0a}{1995/08/30}{\LaTeX\ \texttt{!<1995/06/01!>}版用に修正} +% \changes{v1.0b}{1996/01/31}{\LaTeX\ \texttt{!<1995/12/01!>}版用に修正} +% \changes{v1.0c}{1997/01/11}{\LaTeX\ \texttt{!<1996/06/01!>}版用に修正} +% \changes{v1.0d}{1997/01/23}{\LaTeX\ \texttt{!<1996/12/01!>}版用に修正} +% \changes{v1.0e}{1997/07/02}{\LaTeX\ \texttt{!<1997/06/01!>}版用に修正} +% \changes{v1.0f}{1998/02/17}{\LaTeX\ \texttt{!<1997/12/01!>}版用に修正} +% \changes{v1.0g}{1998/09/01}{\LaTeX\ \texttt{!<1998/06/01!>}版用に修正} +% \changes{v1.0h}{1999/04/05}{\LaTeX\ \texttt{!<1998/12/01!>}版用に修正} +% \changes{v1.0i}{1999/08/09}{\LaTeX\ \texttt{!<1999/06/01!>}版用に修正} +% \changes{v1.0j}{2000/02/29}{\LaTeX\ \texttt{!<1999/12/01!>}版用に修正} +% \changes{v1.0k}{2000/11/03}{\LaTeX\ \texttt{!<2000/06/01!>}版用に修正} +% \changes{v1.0l}{2001/09/04}{\LaTeX\ \texttt{!<2001/06/01!>}版用に修正} +% \changes{v1.0m}{2004/08/10}{\LaTeX\ \texttt{!<2003/12/01!>}版対応確認} +% \changes{v1.0n}{2005/01/04}{plfonts.dtxバグ修正} +% \changes{v1.0o}{2006/01/04}{plfonts.dtxバグ修正} +% \changes{v1.0p}{2006/06/27}{plfonts.dtx \LaTeX\ \texttt{!<2005/12/01!>}対応} +% \changes{v1.0q}{2006/11/10}{plfonts.dtxバグ修正} +% \changes{v1.0r}{2016/01/26}{plcore.dtx p\TeX\ (r28720)対応} +% \changes{v1.0s}{2016/02/01}{\LaTeX\ \texttt{!<2015/01/01!>}のlatexreleaseに +% 対応するためのコードを導入} +% \changes{v1.0t}{2016/02/03}{\cs{plIncludeInRelease}と +% \cs{plEndIncludeInRelease}を新設。} +% \changes{v1.0u}{2016/04/17}{\LaTeX\ \texttt{!<2016/03/31!>}版対応確認} +% \changes{v1.0v}{2016/05/07}{パッチファイルをロードするのをやめた。} +% \changes{v1.0v}{2016/05/07}{起動時の文字列を最新の\LaTeX{}に合わせた。} +% \changes{v1.0w}{2016/05/12}{起動時の文字列に入れる\LaTeX{}のバージョンを +% 元の\LaTeX{}のバナーから引き継ぐように改良} +% \changes{v1.0w}{2016/05/12}{起動時の文字列に入れるBabelのバージョンを +% 元の\LaTeX{}のバナーから取得するコードを\file{platex.ini}から取り入れた} +% \changes{v1.0x}{2016/06/19}{パッチレベルを\file{plvers.dtx}で設定} +% \changes{v1.0y}{2016/06/27}{\file{platex.cfg}の読み込みを追加} +% \changes{v1.0z}{2016/08/26}{\file{platex.cfg}の読み込みを +% \file{plcore.ltx}から\file{platex.ltx}へ移動} +% \changes{v1.1}{2016/09/14}{起動時のバナーを取得するコードを改良} +% \changes{v1.1a}{2017/02/20}{\LaTeX\ \texttt{!<2017/01/01!>}版対応確認} +% \changes{v1.1b}{2017/03/19}{\cs{l@nohyphenation}の定義を保証 +% (sync with ltfinal 2017/03/09 v2.0t)} +% \changes{v1.1b}{2017/03/19}{\cs{document@default@language}の定義を保証 +% (sync with ltfinal 2017/03/09 v2.0t)} +% \changes{v1.1c}{2017/04/23}{\LaTeX\ \texttt{!<2017-04-15!>}版対応確認} +% \changes{v1.1d}{2017/09/24}{パッチレベルが負の数の場合をpre-release扱いへ} +% \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.1h}{2018/01/10}{Modify \cs{plIncludeInRelease} code +% to check matching \cs{plEndIncluderelease} +% (sync with ltvers 2018/01/08 v1.1a)} +% \changes{v1.1i}{2018/03/31}{\LaTeXe\ 2017-04-15以降必須} +% \changes{v1.1j}{2018/04/07}{\LaTeX\ \texttt{!<2018-04-01!>}版対応確認} +% \changes{v1.1k}{2018/04/08}{バナー調節のコードを最後(plfinal)ではなく +% 最初(plcore)に早めた} +% \changes{v1.1l}{2018/04/09}{バナーの保存しかたを改良} +% \changes{v1.1l}{2018/04/09}{バナーの再構築のしかたを改良} +% \changes{v1.1m}{2018/09/24}{バナーの再構築を簡略化} +% \changes{v1.1n}{2018/10/31}{\LaTeXe{}とp\LaTeXe{}の更新タイミングずれ対策を +% \file{plvers.dtx} (plfinal) から\file{plcore.dtx}へ移動} +% \changes{v1.1o}{2018/12/01}{\LaTeX\ \texttt{!<2018-12-01!>}版対応確認} +% \fi +% +% \iffalse +%<*driver> +% \fi +\ProvidesFile{plvers.dtx}[2018/12/01 v1.1o pLaTeX Kernel (Version Info)] +% \iffalse +\documentclass{jltxdoc} +\GetFileInfo{plvers.dtx} +\author{Ken Nakano \& Hideaki Togashi} +\title{\filename} +\date{作成日:\filedate} +\begin{document} + \maketitle + \DocInput{\filename} +\end{document} +% +% \fi +% +% \section{p\LaTeXe{}のバージョンの設定} +% まず、このディストリビューションでのp\LaTeXe{}の日付とバージョン番号 +% を定義します。 +% +% \changes{v1.0}{1995/05/16}{p\LaTeXe\ 用に\file{ltvers.dtx}を修正} +% \changes{v1.0a}{1995/08/30}{\LaTeX\ \texttt{!<1995/06/01!>}版用に修正} +% \changes{v1.0b}{1996/01/31}{\LaTeX\ \texttt{!<1995/12/01!>}版用に修正} +% \changes{v1.0c}{1997/01/11}{\LaTeX\ \texttt{!<1996/06/01!>}版用に修正} +% \changes{v1.0d}{1997/01/23}{\LaTeX\ \texttt{!<1996/12/01!>}版用に修正} +% \changes{v1.0e}{1997/07/02}{\LaTeX\ \texttt{!<1997/06/01!>}版用に修正} +% \changes{v1.0f}{1998/02/17}{\LaTeX\ \texttt{!<1997/12/01!>}版用に修正} +% \changes{v1.0g}{1998/09/01}{\LaTeX\ \texttt{!<1998/06/01!>}版用に修正} +% \changes{v1.0h}{1999/04/05}{\LaTeX\ \texttt{!<1998/12/01!>}版用に修正} +% \changes{v1.0i}{1999/08/09}{\LaTeX\ \texttt{!<1999/06/01!>}版用に修正} +% \changes{v1.0j}{2000/02/29}{\LaTeX\ \texttt{!<1999/12/01!>}版用に修正} +% \changes{v1.0k}{2000/11/03}{\LaTeX\ \texttt{!<2000/06/01!>}版用に修正} +% \changes{v1.0l}{2001/09/04}{\LaTeX\ \texttt{!<2001/06/01!>}版用に修正} +% \changes{v1.0m}{2004/08/10}{\LaTeX\ \texttt{!<2003/12/01!>}版対応確認} +% \changes{v1.0s}{2016/02/01}{\LaTeX\ \texttt{!<2015/01/01!>}版用に修正} +% \changes{v1.0u}{2016/04/17}{\LaTeX\ \texttt{!<2016/03/31!>}版対応確認} +% \changes{v1.1a}{2017/02/20}{\LaTeX\ \texttt{!<2017/01/01!>}版対応確認} +% \changes{v1.1c}{2017/04/23}{\LaTeX\ \texttt{!<2017-04-15!>}版対応確認} +% \changes{v1.1j}{2018/04/07}{\LaTeX\ \texttt{!<2018-04-01!>}版対応確認} +% \changes{v1.1o}{2018/12/01}{\LaTeX\ \texttt{!<2018-12-01!>}版対応確認} +% +% このバージョンのp\LaTeXe{}は、次のバージョンの\LaTeX{}\footnote{% +% \LaTeX\ authors: Johannes Braams, David Carlisle, Alan Jeffrey, +% Leslie Lamport, Frank Mittelbach, Chris Rowley, Rainer Sch\"opf}を +% もとにしています。 +% \begin{macrocode} +%<*2ekernel> +%\def\fmtname{LaTeX2e} +%\edef\fmtversion +% +%\edef\latexreleaseversion +%\edef\p@known@latexreleaseversion +%<*2ekernel|latexrelease|platexrelease> + {2018-12-01} +% +% \end{macrocode} +% +% まず、次のバージョンの\LaTeX{}が利用可能なことを確認します。 +% \LaTeXe\ 2017-04-15で、バージョン番号(日付)のフォーマットが +% YYYY/MM/DD形式からYYYY-MM-DDに変更されています。 +% ^^A \LaTeXe\ 2017/01/01以降はe-\TeX{}必須になっています。 +% \changes{v1.1i}{2018/03/31}{\LaTeXe\ 2017-04-15以降必須} +% \begin{macrocode} +%<*plcore> +\ifx\fmtversion\@undefined + \errhelp{Please reinstall LaTeX.}% + \errmessage{This cannot happen!^^JYour file `latex.ltx' + might be broken}\@@end +\else + \ifnum\expandafter\@parse@version\fmtversion//00\@nil<20170415 + \errhelp{Please update your TeX installation; if not available, + obtain it^^Jmanually from CTAN + (https://ctan.org/pkg/latex-base) or from^^JGitHub + (https://github.com/latex3/latex2e).}% + \errmessage{This version of pLaTeX2e requires LaTeX2e 2017-04-15 + or newer!^^JObtain a newer version of `latex', + otherwise pLaTeX2e setup will^^Jnever succeed}\@@end + \fi +\fi +% +% \end{macrocode} +% +% \begin{macro}{\pfmtname} +% \begin{macro}{\pfmtversion} +% \begin{macro}{\ppatch@level} +% p\LaTeXe{}のフォーマットファイル名とバージョンです。 +% \changes{v1.0x}{2016/06/19}{パッチレベルを\file{plvers.dtx}で設定} +% \begin{macrocode} +%<*plcore> +\def\pfmtname{pLaTeX2e} +\def\pfmtversion +% +%\edef\platexreleaseversion +%<*plcore|platexrelease> + {2019-04-06} +% +%<*plcore> +\def\ppatch@level{0} +% +% \end{macrocode} +% \end{macro} +% \end{macro} +% \end{macro} +% +% \subsection{\LaTeXe{}のバージョンの取得} +% このファイルの直前で\LaTeXe{}の\file{latex.ltx}が読み込まれているはず +% なので、その起動時のバナーを保存します。 +% +% \LaTeXe\ 2018-04-01 patch level 1までは、|\everyjob|が +%\begin{verbatim} +% \typeout{LaTeX2e version}\typeout{Babel version} +%\end{verbatim} +% だけでしたが、\LaTeXe\ 2018-04-01 patch level 2で新たなトークン列が +% 追加されました。今後も\LaTeXe{}側で|\everyjob|に実行を遅らせる +% コードが追加される可能性がありますので、そのコードを抽出しなければ +% なりません。そこで、最初と最後に区切りトークン(それぞれ|\platexNILa|と +% |\platexNILb|)を付けておきます。 +% \changes{v1.1f}{2017/11/11}{\LaTeX{}のバナーを保存するコードを +% \file{platex.ltx}から\file{plcore.ltx}へ移動} +% \changes{v1.1l}{2018/04/09}{バナーの保存しかたを改良} +% \begin{macrocode} +%<*plcore> +\edef\platexBANNER{\noexpand\platexNILa + \the\everyjob % LaTeX banner and delayed codes + \noexpand\platexNILb} +% +% \end{macrocode} +% +% \subsection{パッチファイルのロード} +% +% コミュニティ版\pLaTeXe{}ではパッチファイルを使用しないので、 +% コメントアウトしました。 +% \changes{v1.0v}{2016/05/07}{パッチファイルをロードするのをやめた。} +% +% \iffalse +% 次の部分は、p\LaTeXe{}のパッチファイルをロードするためのコードです。 +% バグを修正するためのパッチを配布するかもしれません。 +% \begin{macrocode} +%<*plfinal> +%\IfFileExists{plpatch.ltx} +% {\typeout{***********************************^^J% +% * Applying patch file plpatch.ltx *^^J% +% ***********************************} +% \def\pfmtversion@topatch{unknown} +% \input{plpatch.ltx} +% \ifx\pfmtversion\pfmtversion@topatch +% \ifx\ppatch@level\@undefined +% \typeout{^^J^^J^^J% +% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J% +% !! Patch file `plpatch.ltx' (for version <\pfmtversion@topatch>)^^J% +% !! is not suitable for version <\pfmtversion> of pLaTeX.^^J^^J% +% !! Please check if iniptex found an old patch file:^^J% +% !! --- if so, rename it or delete it, and redo the^^J% +% !! iniptex run.^^J% +% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J}% +% \batchmode \@@end +% \fi +% \else +% \typeout{^^J^^J^^J% +% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J% +% !! Patch file `plpatch.ltx' (for version <\pfmtversion@topatch>)^^J% +% !! is not suitable for version <\pfmtversion> of pLaTeX.^^J% +% !!^^J% +% !! Please check if iniptex found an old patch file:^^J% +% !! --- if so, rename it or delete it, and redo the^^J% +% !! iniptex run.^^J% +% !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!^^J}% +% \batchmode \@@end +% \fi +% \let\pfmtversion@topatch\relax +% }{} +% +% \end{macrocode} +% \fi +% +% \subsection{起動時に実行するコード} +% +% \begin{macro}{\everyjob} +% p\LaTeXe{}が起動されたときに実行されるコードです。 +% \LaTeXe{}の実行コードを元に、\pLaTeXe{}用の調整を加えます。 +% \changes{v1.1}{2016/09/14}{起動時のバナーを取得するコードを改良} +% \changes{v1.1k}{2018/04/08}{バナー調節のコードを最後(plfinal)ではなく +% 最初(plcore)に早めた} +% \changes{v1.1l}{2018/04/09}{バナーの再構築のしかたを改良} +% \changes{v1.1m}{2018/09/24}{バナーの再構築を簡略化} +% +% まず、\LaTeXe{}のバージョン表示(|\typeout{LaTeX2e version}|)より +% 前に実行されるコードがあれば、それを抽出して|\everyjob|に入れます。 +% \LaTeXe\ 2018-04-01 patch level 2の時点では空です。 +% \begin{macrocode} +%<*plcore> +\begingroup + \def\platexNILa#1\typeout#2#3\platexNILb{#1} + \toks0=\expandafter\expandafter\expandafter{\platexBANNER} + \global\everyjob\expandafter{\the\toks0}% +\endgroup +% \end{macrocode} +% +% 次に、\LaTeXe{}のバージョンを表示するコードを抽出し、 +% \pLaTeXe{}のバージョンとまとめて表示するように整形します。 +% \changes{v1.0v}{2016/05/07}{起動時の文字列を最新の\LaTeX{}に合わせた。} +% \changes{v1.0w}{2016/05/12}{起動時の文字列に入れる\LaTeX{}のバージョンを +% 元の\LaTeX{}のバナーから引き継ぐように改良} +% \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\ppatch@level\@undefined % fallback if undefined in pLaTeX +% \def\ppatch@level{0}\fi +\begingroup + \def\platexNILa#1\typeout#2#3\platexNILb{#2} + \toks0=\expandafter\expandafter\expandafter{\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\everyjob + \noexpand\typeout{\the\toks2 (based on \the\toks0)}} + \global\everyjob\expandafter{\platexBANNER}% +\endgroup +% \end{macrocode} +% +% \LaTeXe{}のバージョン表示の後に残っているコードを、 +% そのまま|\everyjob|に追加します。 +% ^^A Babel v3.20まではこの中に|\typeout{Babel version}|も含まれて +% ^^A いましたが、Babel v3.21からはこのバナー表示は無くなったようです。 +% \changes{v1.0w}{2016/05/12}{起動時の文字列に入れるBabelのバージョンを +% 元の\LaTeX{}のバナーから取得するコードを\file{platex.ini}から取り入れた} +% \begin{macrocode} +\begingroup + \def\platexNILa#1\typeout#2#3\platexNILb{#3} + \toks0=\expandafter\expandafter\expandafter{\platexBANNER} + \edef\platexBANNER{\the\everyjob \the\toks0} + \global\everyjob\expandafter{\platexBANNER}% +\endgroup +\let\platexBANNER=\@undefined +% +% \end{macrocode} +% \end{macro} +% +% ^^A 起動時に\file{platex.cfg}がある場合、それを読み込むようにする +% ^^A コードは、\file{plcore.ltx}から\file{platex.ltx}へ移動しました。 +% \changes{v1.0y}{2016/06/27}{\file{platex.cfg}の読み込みを追加} +% \changes{v1.0z}{2016/08/26}{\file{platex.cfg}の読み込みを +% \file{plcore.ltx}から\file{platex.ltx}へ移動} +% +% ^^A \LaTeXe{}とp\LaTeXe{}の更新タイミングずれ対策 +% ^^A (ハイフネーション関連パラメータの定義)は、 +% ^^A \file{plvers.dtx}から\file{plcore.dtx}へ移動しました。 +% \changes{v1.1b}{2017/03/19}{\cs{l@nohyphenation}の定義を保証 +% (sync with ltfinal 2017/03/09 v2.0t)} +% \changes{v1.1b}{2017/03/19}{\cs{document@default@language}の定義を保証 +% (sync with ltfinal 2017/03/09 v2.0t)} +% \changes{v1.1n}{2018/10/31}{\LaTeXe{}とp\LaTeXe{}の更新タイミングずれ対策を +% \file{plvers.dtx} (plfinal) から\file{plcore.dtx}へ移動} +% +% +% \section{latexreleaseパッケージへの対応} +% +% 最後に、latexreleaseパッケージへの対応です。 +% \begin{macro}{\plIncludeInRelease} +% \changes{v1.0t}{2016/02/03}{\cs{plIncludeInRelease}と +% \cs{plEndIncludeInRelease}を新設。} +% \changes{v1.1e}{2017/11/09}{\file{latexrelease}と +% \cs{platexrelease}のエミュレート内部処理を分離} +% \changes{v1.1h}{2018/01/10}{Modify \cs{plIncludeInRelease} code +% to check matching \cs{plEndIncluderelease} +% (sync with ltvers 2018/01/08 v1.1a)} +% +% \iffalse +% 備忘録:\LaTeX{}では\cs{if@includeinrelease}の定義を +% \file{ltvers.dtx}ではなく\file{ltdefns.dtx}に遅らせてある。 +% しかし、これは\cs{newif}がその時点で定義されていないからにすぎず、 +% \pLaTeX{}では遅らせる必要がない。 +% \fi +% +% \begin{macrocode} +%<*plcore|platexrelease> +\newif\if@plincludeinrelease +\@plincludeinreleasefalse +\def\plIncludeInRelease#1{% + \if@plincludeinrelease + \PackageError{platexrelease} + {mis-matched \string\plIncludeInRelease}{}% + \@plincludeinreleasefalse + \fi + \kernel@ifnextchar[% + {\@plIncludeInRelease{#1}} + {\@plIncludeInRelease{#1}[#1]}} +% \end{macrocode} +% +% \begin{macrocode} +\def\@plIncludeInRelease#1[#2]{\@plIncludeInRele@se{#2}} +% \end{macrocode} +% +% \begin{macrocode} +\def\@plIncludeInRele@se#1#2#3{% + \toks@{[#1] #3}% + \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@}% + \@plincludeinreleasetrue + \expandafter\let\csname\string#2+\@currname+plIIR\endcsname\@empty + \fi + \else + \GenericInfo{}{Already applied: \the\toks@}% + \expandafter\@gobble@plIncludeInRelease + \fi +} +% \end{macrocode} +% +% \begin{macrocode} +\def\plEndIncludeInRelease{% + \if@plincludeinrelease + \@plincludeinreleasefalse + \else + \PackageError{platexrelease} + {mis-matched \string\plEndIncludeInRelease}{}% + \fi} +% \end{macrocode} +% +% \begin{macrocode} +\long\def\@gobble@plIncludeInRelease#1\plEndIncludeInRelease{% + \@plincludeinreleasefalse + \@check@plIncludeInRelease#1\plIncludeInRelease + \@check@plIncludeInRelease\@end@check@plIncludeInRelease} +% \end{macrocode} +% \begin{macrocode} +\long\def\@check@plIncludeInRelease#1\plIncludeInRelease + #2#3\@end@check@plIncludeInRelease{% + \ifx\@check@plIncludeInRelease#2\else + \PackageError{platexrelease} + {skipped \string\plIncludeInRelease}{}% + \fi} +% +% \end{macrocode} +% \end{macro} +% +% \LaTeXe{}が提供するlatexreleaseパッケージが読み込まれていて、 +% かつp\LaTeXe{}が提供するplatexreleaseパッケージが読み込まれていない +% 場合は、警告を出します。 +% \changes{v1.0s}{2016/02/01}{latexrelease利用時に警告を出すようにした} +% \begin{macrocode} +%<*plfinal> +\AtBeginDocument{% + \@ifpackageloaded{latexrelease}{% + \@ifpackageloaded{platexrelease}{}{% + \@latex@warning@no@line{% + Package latexrelease is loaded.\MessageBreak + Some patches in pLaTeX2e core may be overwritten.\MessageBreak + Consider using platexrelease.\MessageBreak + See platex.pdf for detail}% + }% + }{}% +} +% +% \end{macrocode} +% +% \Finale +% +\endinput -- cgit v1.2.3