From 6ee6197fa058cb894250c66be74b3a63c11069fc Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Sat, 29 Jul 2017 21:38:40 +0000 Subject: platex-tools (29jul17) git-svn-id: svn://tug.org/texlive/trunk@44912 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/platex-tools/LICENSE | 2 +- Master/texmf-dist/doc/latex/platex-tools/Makefile | 16 ++- Master/texmf-dist/doc/latex/platex-tools/README.md | 8 +- .../texmf-dist/doc/latex/platex-tools/plarray.pdf | Bin 0 -> 61431 bytes .../texmf-dist/doc/latex/platex-tools/plarray.tex | 82 ++++++++++++++ .../doc/latex/platex-tools/plextarray.pdf | Bin 85068 -> 85073 bytes .../doc/latex/platex-tools/pxgentombow.pdf | Bin 126517 -> 162757 bytes .../doc/latex/platex-tools/pxgentombow.tex | 120 ++++++++++++++++++++- .../texmf-dist/tex/latex/platex-tools/plarray.sty | 39 +++++++ .../tex/latex/platex-tools/plextarray.sty | 10 +- .../tex/latex/platex-tools/pxgentombow.sty | 38 ++++++- 11 files changed, 297 insertions(+), 18 deletions(-) create mode 100644 Master/texmf-dist/doc/latex/platex-tools/plarray.pdf create mode 100644 Master/texmf-dist/doc/latex/platex-tools/plarray.tex create mode 100644 Master/texmf-dist/tex/latex/platex-tools/plarray.sty (limited to 'Master') diff --git a/Master/texmf-dist/doc/latex/platex-tools/LICENSE b/Master/texmf-dist/doc/latex/platex-tools/LICENSE index 2a2a1397494..888d02f49c5 100644 --- a/Master/texmf-dist/doc/latex/platex-tools/LICENSE +++ b/Master/texmf-dist/doc/latex/platex-tools/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2016 Hironobu Yamashita +Copyright (c) 2016-2017 Hironobu Yamashita All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/Master/texmf-dist/doc/latex/platex-tools/Makefile b/Master/texmf-dist/doc/latex/platex-tools/Makefile index ed3b8f60c6d..cba9e99629e 100644 --- a/Master/texmf-dist/doc/latex/platex-tools/Makefile +++ b/Master/texmf-dist/doc/latex/platex-tools/Makefile @@ -1,8 +1,9 @@ KANJI = -kanji=utf8 FONTMAP = -f ipaex.map -f ptex-ipaex.map +TEXMF = $(shell kpsewhich -var-value=TEXMFHOME) -all: plextarray.pdf plextdelarray.pdf pxftnright.pdf \ - pxeverysel.pdf pxeveryshi.pdf \ +all: plarray.pdf plextarray.pdf plextdelarray.pdf \ + pxftnright.pdf pxeverysel.pdf pxeveryshi.pdf \ bounddvi.pdf bounddvi-en.pdf pxgentombow.pdf .SUFFIXES: .tex .dvi .pdf @@ -13,6 +14,15 @@ all: plextarray.pdf plextdelarray.pdf pxftnright.pdf \ .dvi.pdf: dvipdfmx $(FONTMAP) $< -.PHONY: clean +.PHONY: install clean +install: + mkdir -p ${TEXMF}/doc/platex/platex-tools + cp ./Makefile ${TEXMF}/doc/platex/platex-tools/ + cp ./LICENSE ${TEXMF}/doc/platex/platex-tools/ + cp ./README.md ${TEXMF}/doc/platex/platex-tools/ + cp ./*.pdf ${TEXMF}/doc/platex/platex-tools/ + cp ./*.tex ${TEXMF}/doc/platex/platex-tools/ + mkdir -p ${TEXMF}/tex/platex/platex-tools + cp ./*.sty ${TEXMF}/tex/platex/platex-tools/ clean: rm -f *.dvi *.pdf diff --git a/Master/texmf-dist/doc/latex/platex-tools/README.md b/Master/texmf-dist/doc/latex/platex-tools/README.md index 79fc4774014..e7183f645b2 100644 --- a/Master/texmf-dist/doc/latex/platex-tools/README.md +++ b/Master/texmf-dist/doc/latex/platex-tools/README.md @@ -7,6 +7,10 @@ and some additional packages are included. ## Bundle contents +- plarray.sty: + Patch for array.sty (latex-tools) to improve + compatibility with pLaTeX/upLaTeX kernels. + Can be used on pLaTeX/upLaTeX. - plextarray.sty: Patch for array.sty (latex-tools) to improve compatibility with plext.sty in pLaTeX. @@ -46,7 +50,7 @@ and some additional packages are included. - pxgentombow.sty: Generate crop mark (called 'tombow' in Japanese) for practical use in self-publishing. - Can be used on pLaTeX/upLaTeX. + Can be used on pLaTeX/upLaTeX and LuaTeX-ja. ## Character encoding @@ -73,6 +77,6 @@ the 3-clause BSD license (see [LICENSE](./LICENSE)). ## Release Date -2017-05-05 +2017-07-29 Hironobu Yamashita diff --git a/Master/texmf-dist/doc/latex/platex-tools/plarray.pdf b/Master/texmf-dist/doc/latex/platex-tools/plarray.pdf new file mode 100644 index 00000000000..afc326e30ed Binary files /dev/null and b/Master/texmf-dist/doc/latex/platex-tools/plarray.pdf differ diff --git a/Master/texmf-dist/doc/latex/platex-tools/plarray.tex b/Master/texmf-dist/doc/latex/platex-tools/plarray.tex new file mode 100644 index 00000000000..f7f60fc0cc0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/platex-tools/plarray.tex @@ -0,0 +1,82 @@ +%# -*- coding: utf-8 -*- +\ifx\epTeXinputencoding\undefined\else % defined in e-pTeX (> TL2016) + \epTeXinputencoding utf8 % ensure utf-8 encoding for platex +\fi + +\documentclass[a4paper]{jsarticle}% supports \verb in \footnote +\usepackage{doc} +\usepackage{plarray} +\GetFileInfo{plarray.sty} +\makeatletter +\makeatother +\title{Package \textsf{plarray} \fileversion} +\author{Hironobu Yamashita} +\date{\filedate} +\begin{document} + +\maketitle + +This package \textsf{plarray} provides small patches to \textsf{array} +package (\textsf{latex-tools} bundle) for use with Japanese +p\LaTeX/up\LaTeX. +By loading \textsf{plarray} in addition to/instead of \textsf{array}, +you can avoid conflicts between (u)p\LaTeX\ kernel and \textsf{array}% +\footnote{Below is recent changes introduced to +p\LaTeX/up\LaTeX\ kernels by Japanese \TeX\ Development Community, +which cannot cope with \textsf{array} package: +\begin{itemize} +\item Remove extra \verb+\xkanjiskip+ around tabular environment +\item Inhibit JFM (Japanese \TeX\ font metric) glue + around tabular cell components +\end{itemize} +The package \textsf{plarray} re-adds these changes to \textsf{array}.}. + +If you are going to use both \textsf{plext} and \textsf{array} packages +on p\LaTeX/up\LaTeX, the easiest way is to use \textsf{plextarray}; +please refer to its document. + +This package is part of \textsf{platex-tools} bundle: +\begin{verbatim} + https://github.com/aminophen/platex-tools +\end{verbatim} + +\bigskip + +この\textsf{plarray}パッケージは、\textsf{latex-tools}バンドルの +\textsf{array}パッケージをp\LaTeX/up\LaTeX で使うときのwrapperとして +機能します。さらに、\textsf{array}パッケージによって上書きされて +無効化されてしまうp\LaTeX/up\LaTeX カーネルの修正点を再有効化する +働きもします(具体的には、「tabular環境前後に\verb+\xkanjiskip+由来の +余分なアキが入る現象」と、「表のセル内の要素が始め括弧類で始まる場合や +終わり括弧類で終わる場合にJFMグルーが不自然に入る現象」に対処します)。 + +\bigskip +\begin{minipage}{0.45\linewidth} +\begin{verbatim} + \documentclass{jarticle} % if you are using pLaTeX, + \usepackage{plarray} % load this! + \begin{document} + これは表の例です + \begin{tabular}{|>{$}c<{$}|c|}\hline + \exp(x) & 指数関数 \\ \hline + \log(x) & 対数関数 \\ \hline + \end{tabular} + 終わり + \end{document} +\end{verbatim} +\end{minipage} +\begin{minipage}{0.5\linewidth} + これは表の例です + \begin{tabular}{|>{$}c<{$}|c|}\hline + \exp(x) & 指数関数 \\ \hline + \log(x) & 対数関数 \\ \hline + \end{tabular} + 終わり +\end{minipage} +\bigskip + +p\LaTeX/up\LaTeX で、\textsf{array}パッケージに加えてさらに +\textsf{plext}パッケージも使いたい場合は、 +\textsf{plextarray}パッケージを読み込むのが簡単です。 + +\end{document} diff --git a/Master/texmf-dist/doc/latex/platex-tools/plextarray.pdf b/Master/texmf-dist/doc/latex/platex-tools/plextarray.pdf index f247e82cb0a..ff2956d2d15 100644 Binary files a/Master/texmf-dist/doc/latex/platex-tools/plextarray.pdf and b/Master/texmf-dist/doc/latex/platex-tools/plextarray.pdf differ diff --git a/Master/texmf-dist/doc/latex/platex-tools/pxgentombow.pdf b/Master/texmf-dist/doc/latex/platex-tools/pxgentombow.pdf index a4f29b18a2c..e7be24d5907 100644 Binary files a/Master/texmf-dist/doc/latex/platex-tools/pxgentombow.pdf and b/Master/texmf-dist/doc/latex/platex-tools/pxgentombow.pdf differ diff --git a/Master/texmf-dist/doc/latex/platex-tools/pxgentombow.tex b/Master/texmf-dist/doc/latex/platex-tools/pxgentombow.tex index 98d41b29176..b67bdcabae4 100644 --- a/Master/texmf-dist/doc/latex/platex-tools/pxgentombow.tex +++ b/Master/texmf-dist/doc/latex/platex-tools/pxgentombow.tex @@ -5,6 +5,32 @@ \documentclass[a4paper]{jsarticle} \usepackage{doc} +\makeatletter +%%% import from jltxdoc.cls +\def\verb{\relax\ifmmode\hbox\else\leavevmode\fi + \bgroup \let\do\do@noligs \verbatim@nolig@list + \ttfamily \verb@eol@error \let\do\@makeother \dospecials + \@ifstar{\@sverb}{\@vobeyspaces \frenchspacing \@sverb}} +\xspcode"5C=3 %% \ +\xspcode"22=3 %% " +%%% dangerous bend +\font\man=manfnt at 10pt +\def\dbend{\leavevmode\raise0pt\hbox{\man\char'177}} +\newenvironment{dangerous}{% + \ifnum\@listdepth>\z@ + \GenericError{}{Do not use `dangerous' environment inside any list}{}{} + \fi + \par\addvspace\medskipamount + \@tempdima=\dimexpr\textwidth-2zw\relax\small + \divide\@tempdima by\dimexpr1zw\relax\@tempcnta=\@tempdima + \leftskip=\dimexpr\textwidth-\@tempcnta zw\relax + \@totalleftmargin\dimexpr\leftskip+0zw + \linewidth=\dimexpr\@tempcnta zw-0zw + \parindent1zw\noindent\kern-\leftskip\hbox to\leftskip{\dbend\hss}% + \everypar{\everypar{}}\ignorespaces +}{\par\addvspace\medskipamount} +%%% +\makeatother \usepackage{longtable} \usepackage{pxgentombow} \usepackage{bounddvi} @@ -24,8 +50,13 @@ \textsf{pxgentombow}パッケージは、クラスファイルなどが想定している用紙 サイズ情報(\verb+\paperwidth+, \verb+\paperheight+)を検知し、それより 一回り大きなサイズの用紙の中央にトンボ付きで出力するために必要な機能を -提供します。ただし、このパッケージはpapersize specialを発行しませんので、 -\verb+\special+と\textsf{bounddvi}パッケージを併用するとよいでしょう。 +提供します。ただし、このパッケージは実際の出力サイズ指定を発行しません +ので、\textsf{bxpapersize}パッケージまたは\textsf{bounddvi}パッケージと +併用するとよいでしょう\footnote{\textsf{bounddvi}パッケージは、 +\textsf{pxgentombow}と同じく\textsf{platex-tools}バンドルに収録 +されていますが、名前のとおりDVIを経由する場合にしか利用できません。 +一方、\textsf{bxpapersize}パッケージは汎用で、Lua\TeX のような +PDF直接出力の場合にも利用できます。}。 使い方の例は \begin{verbatim} @@ -38,7 +69,7 @@ \end{verbatim} です。p\LaTeX における横組と縦組の両方で使え、また\textsf{jsclasses}の ような版面拡大(\verb+\mag+)が使われた場合にも対応しています。 -なお、現時点ではp\LaTeX とup\LaTeX のみで動作します。 +なお、現時点ではp\LaTeX とup\LaTeX およびLua\TeX-jaのみで動作します。 本パッケージは、\textsf{platex-tools}バンドルの一部として 配布されています: @@ -138,6 +169,84 @@ a4var, b5var, letter, legal, executiveです。 \end{verbatim} とします。 +\section*{\textsf{jsclasses}で使用する場合の注意} + +奥村晴彦氏による\textsf{jsclasses}のクラス(2016年以降は日本語\TeX 開発 +コミュニティが管理)を使用していて、10pt以外のサイズオプションを +指定する場合は、以下のいずれかの方法をとってください。 +\begin{itemize} +\item クラスオプションに「トンボオプション」 + (\verb+tombow+または\verb+tombo+)を追加する。 +\item クラスオプションに「\verb+\mag+を使わないオプション」 + (\verb+nomag+または\verb+nomag*+)を追加する。 +\end{itemize} +これは、\textsf{jsclasses}クラス内で行われる\verb+\oddsidemargin+と +\verb+\topmargin+の計算の都合からくる制約です。たとえば +\begin{verbatim} + \documentclass[a4j,14pt]{jarticle} + \usepackage{pxgentombow} +\end{verbatim} +という使い方は\emph{誤り}です(このままでは誤った余白設定が +適用されますので、安全のため\textsf{pxgentombow}パッケージ +がエラーを出すようにしてあります)。代わりに +\begin{verbatim} + \documentclass[a4j,14pt,tombow]{jarticle} + \usepackage{pxgentombow} +\end{verbatim} +と書くようにしてください。 + +\section*{レイアウト設定の注意} + +余白などのレイアウト設定でありがちですが、 +\verb+\hoffset+や\verb+\voffset+の値が$0$以外になっている場合、 +\textsf{pxgentombow}パッケージはエラーを出します。 +レイアウト設定のために変更すべきなのはこれらの寸法ではなく、 +\verb+\oddsidemargin+や\verb+\topmargin+であることがほとんどです。 +したがって、それらを適切な値に設定するか、レイアウトの設定すべてを +\textsf{geometry}パッケージに任せてしまうのも一つの方法です。 + +\begin{dangerous} +たとえば左右の余白を$25\,\mathrm{mm}$に、上下の余白を +$30\,\mathrm{mm}$にしたいとき\footnote{ここでは「本文の領域以外」を +余白と定義します。すなわち、ヘッダとフッタは余白の一部です。}、 +まず「\TeX の1インチ」を +削除してから\verb+\oddsidemargin+や\verb+\topmargin+を変更すると、 +「見かけ上は」期待どおりの結果になることがあります。 +\begin{verbatim} + \setlength{\hoffset}{-1in}% <== NG + \setlength{\voffset}{-1in}% <== NG + \setlength{\oddsidemargin}{25mm} + \setlength{\topmargin}{30mm} + \setlength{\textwidth}{\paperwidth} + \addtolength{\textwidth}{-2\oddsidemargin} + \setlength{\textheight}{\paperheight} + \addtolength{\textheight}{-2\topmargin} + \addtolength{\topmargin}{-\headheight} + \addtolength{\topmargin}{-\headsep} +\end{verbatim} +しかし、この設定では\textsf{pxgentombow}パッケージがトンボを +追加するとき、正しい余白を維持することができません。 + +一方、\verb+\hoffset+や\verb+\voffset+は$0$のままで、以下のように +\verb+\oddsidemargin+や\verb+\topmargin+を設定していれば問題ありません。 +\begin{verbatim} + \setlength{\oddsidemargin}{-0.4mm}% 25mm = 1inch - 0.4mm + \setlength{\topmargin}{4.6mm}% 30mm = 1inch + 4.6mm + \setlength{\textwidth}{\paperwidth} + \addtolength{\textwidth}{-50mm} + \addtolength{\topmargin}{-\headheight} + \addtolength{\topmargin}{-\headsep} + \setlength{\textheight}{\paperheight} + \addtolength{\textheight}{-60mm} +\end{verbatim} +これと同等のレイアウト設定は、以下のように\textsf{geometry}パッケージで +行うのが簡単です。 +\begin{verbatim} + \usepackage[lmargin=25mm,rmargin=25mm, + tmargin=30mm,bmargin=30mm]{geometry} +\end{verbatim} +\end{dangerous} + \section*{雑記} 発端はこの話です。 @@ -165,7 +274,7 @@ a4var, b5var, letter, legal, executiveです。 \verb+\paperwidth+/\verb+\paperheight+より小さい場合の動作。 現在は警告を出すだけとしているが、さらに天地左右1inに フォールバックしたほうが無難だろうか。 -\item p\LaTeX/up\LaTeX 以外のサポート。直近ではLua\TeX-jaは容易なはず。 +\item p\LaTeX/up\LaTeX/Lua\TeX-ja以外のサポート。 \end{itemize} \section*{変更履歴} @@ -175,6 +284,9 @@ a4var, b5var, letter, legal, executiveです。 \item 2017/03/01 v0.4 トンボ形式の修正など \item 2017/05/05 v0.5 \textsf{jsclasses}の$\verb+\mag+ \ne 1000$に対応、 最初のCTANリリース版 + \item 2017/05/06 v0.6 \textsf{jsclasses}との共存時のチェック強化、 + Lua\TeX-jaでの動作確認 + \item 2017/07/23 v0.7 ドキュメント更新、CTANリリース版 \end{itemize} \end{document} diff --git a/Master/texmf-dist/tex/latex/platex-tools/plarray.sty b/Master/texmf-dist/tex/latex/platex-tools/plarray.sty new file mode 100644 index 00000000000..55002889c62 --- /dev/null +++ b/Master/texmf-dist/tex/latex/platex-tools/plarray.sty @@ -0,0 +1,39 @@ +% +% plarray.sty +% written by Hironobu Yamashita (@aminophen) +% +% This package is part of the platex-tools bundle. +% https://github.com/aminophen/platex-tools +% +% This package `plarray.sty' is based on: +% * array.sty in latex-tools (2016/10/06 v2.4d) +% * plcore.ltx in platex (2017/07/21 v1.2p) +% + +\NeedsTeXFormat{pLaTeX2e} +\ProvidesPackage{plarray} + [2017/07/29 v0.1c Tabular extension package for pLaTeX/upLaTeX] +\RequirePackage{array} + +%% patching internal code for array.sty +% +%% remove extra \xkanjiskip (pLaTeX2e 2016/04/17) +\def\@tabular{% + \leavevmode \null + \hbox \bgroup $\col@sep\tabcolsep \let\d@llarbegin\begingroup + \let\d@llarend\endgroup + \@tabarray} +\def\endtabular{\endarray $\egroup\null} +\expandafter \let \csname endtabular*\endcsname = \endtabular +% +%% inhibit JFM glue around tabular cell components (pLaTeX2e 2017/07/29) +\def\insert@column{% + \the@toks \the \@tempcnta + \mbox{}\inhibitglue \ignorespaces \@sharp \unskip \unskip + \the@toks \the \count@ \relax} +% +%% done + +%% all done + +\endinput diff --git a/Master/texmf-dist/tex/latex/platex-tools/plextarray.sty b/Master/texmf-dist/tex/latex/platex-tools/plextarray.sty index 6c34ee0e4f5..579c29cbacf 100644 --- a/Master/texmf-dist/tex/latex/platex-tools/plextarray.sty +++ b/Master/texmf-dist/tex/latex/platex-tools/plextarray.sty @@ -7,15 +7,15 @@ % % This package `plextarray.sty' is based on: % * array.sty in latex-tools (2016/10/06 v2.4d) -% * plext.sty in platex (2016/08/20 v1.2a) +% * plext.sty in platex (2017/07/21 v1.2h) % and lltjext.sty from LuaTeX-ja project. % \NeedsTeXFormat{pLaTeX2e} \ProvidesPackage{plextarray} - [2016/10/23 v1.0g Tabular extension package for plext and array] + [2017/07/29 v1.0j Tabular extension package for plext and array] \RequirePackage{plext} -\RequirePackage{array} +\RequirePackage{plarray} %% save definitions from array.sty \def\array{\col@sep\arraycolsep @@ -30,7 +30,7 @@ % \def\@startpbox#1{\bgroup \box@dir\adjustbaseline %% added - \hsize=#1\@arrayparboxrestore + \setlength\hsize{#1}\@arrayparboxrestore \everypar{% \vrule \@height \ht\@arstrutbox \@width \z@ \everypar{}}% @@ -94,8 +94,6 @@ \lineskip\z@skip\baselineskip\z@skip\@preamble} % \def\endarray{\crcr \egroup \egroup \@end@alignbox \@arrayright \gdef\@preamble{}} -\def\endtabular{\endarray $\egroup\null} -\expandafter \let \csname endtabular*\endcsname = \endtabular % %% done diff --git a/Master/texmf-dist/tex/latex/platex-tools/pxgentombow.sty b/Master/texmf-dist/tex/latex/platex-tools/pxgentombow.sty index 0a183c6481f..834510c55b1 100644 --- a/Master/texmf-dist/tex/latex/platex-tools/pxgentombow.sty +++ b/Master/texmf-dist/tex/latex/platex-tools/pxgentombow.sty @@ -1,9 +1,29 @@ +% % pxgentombow.sty -\NeedsTeXFormat{pLaTeX2e} +% written by Hironobu Yamashita (@aminophen) +% +% This package is part of the platex-tools bundle. +% https://github.com/aminophen/platex-tools +% + +\NeedsTeXFormat{LaTeX2e} \ProvidesPackage{pxgentombow} - [2017/05/05 v0.5 Generate crop mark 'tombow'] + [2017/07/23 v0.7 Generate crop mark 'tombow'] \def\pxgtmb@pkgname{pxgentombow} +%% error status +\chardef\pxgtmb@errlevel=\z@ + +%% supported engines +\ifx\pfmtversion\@undefined + \@ifpackageloaded{luatexja}{}{\chardef\pxgtmb@errlevel=\@ne} +\fi +\ifnum\pxgtmb@errlevel>\z@ + \PackageError{\pxgtmb@pkgname}{% + Only pLaTeX, upLaTeX and LuaTeX-ja are supported now}\@ehc + \expandafter\endinput +\fi + %% import from jsclasses \hour\time \divide\hour by 60\relax \@tempcnta\hour \multiply\@tempcnta 60\relax @@ -13,6 +33,20 @@ % if tombow-related option is not included in class option list, % show info and enable it now \iftombow\else + % if jsclasses is detected, it's too late + % -- When a size option other than `10pt' is specified, + % jsclasses uses \mag and calculates \oddsidemargin and \topmargin + % differently, depending on tombow status. + % In order to force `jsclasses' to calculate correctly, + % `tombow' or `tombo' is required as a class option. + % ... or, you may add `nomag' or `nomag*' instead. + \ifnum\mag=\@m\else \ifx\inv@mag\@undefined\else + \PackageError{\pxgtmb@pkgname}{% + It seems you are using Japanese `jsclasses'\MessageBreak + (jsarticle, jsbook, jsreport, etc.) or some\MessageBreak + derived class. Please add `tombow' or `tombo'\MessageBreak + to the class option list}\@ehc + \fi \fi \PackageInfo\pxgtmb@pkgname{tombow feature enabled by \pxgtmb@pkgname} \fi \tombowtrue %\tombowdatetrue %% enabled by tombowdate option -- cgit v1.2.3