summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/doc/latex/plautopatch/plautopatch-ja.tex
blob: 4ca3580f8f1a80a7901728c7b1494ab194bcb16c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
%# -*- coding: utf-8 -*-
\ifx\epTeXinputencoding\undefined\else % defined in e-pTeX (> TL2016)
  \epTeXinputencoding utf8    % ensure utf-8 encoding for platex
\fi

\documentclass[a4paper]{jsarticle}
\usepackage{doc}
\usepackage{plautopatch}% load this here to make \GetFileInfo work
\GetFileInfo{plautopatch.sty}
\title{Package \textsf{plautopatch} \fileversion}
\author{Hironobu Yamashita}
\date{\filedate}
\begin{document}

\maketitle

日本のp\LaTeX/up\LaTeX{}フォーマットや専用パッケージが、
これらを知らない\LaTeX{}パッケージ(しばしば海外で作られた
汎用のもの)と衝突することがあります。
最悪の場合にはエラーが出たり、誤った出力が得られたり
することがあります。

この\textsf{plautopatch}の目的は、こうした非互換を意識せずに
済むようにすることです。具体的には、p\LaTeX/up\LaTeX{}と
衝突するパッケージが使われた場合に、その衝突を解消するパッチを
提供するパッケージを必要に応じて自動的に読み込みます。
こうすることで、ソースコードを簡潔にできるだけでなく、
p\LaTeX/up\LaTeX{}で動作するソースと通常の\LaTeX{}ソースの
見た目を近づけることができます。

このパッケージはGitHubで開発しています。
\begin{verbatim}
    https://github.com/aminophen/plautopatch
\end{verbatim}

\section*{動作条件}

このパッケージは
\textsf{filehook}パッケージ(Martin Scharrer氏の作)に依存します。

\section*{使い方}

このパッケージを\LaTeX{}ソースの冒頭で読み込みます。
このために、\verb+\RequirePackage{plautopatch}+を
\verb+\documentclass+や他のコマンドよりも\emph{前}に
読み込むことをお勧めします
(クラスファイルなどが問題のあるパッケージを読み込む可能性もあるため)。

例を示します。
\begin{verbatim}
  %\RequirePackage{plautopatch}
  \documentclass{tarticle}% 縦組クラス(plext使用)
  \usepackage{array}% plextと非互換
  \begin{document}
  ...
  \end{document}
\end{verbatim}
上記の例では、
\textsf{tarticle}クラスが内部で読み込む\textsf{plext}パッケージと、
ソース中で\verb+\usepackage+している\textsf{array}パッケージが
衝突してエラーになる場合があります。しかし、冒頭で
\verb+\RequirePackage{plautopatch}+とだけ書いておけば、
\textsf{array}パッケージの時点で\textsf{plextarray}パッケージが
追加で読み込まれるため、問題が解消します。
このように自動追加されたパッケージは、\verb+\end{document}+の
時点で次のように一覧として表示されます(複数の場合は
コンマと空白で区切ったリストになります)。
\begin{verbatim}
***** List of packages loaded by `plautopatch': *****
 plextarray.
*****************************************************
\end{verbatim}

\section*{現在対応しているパッケージの一覧}

\def\ITEMoo#1 (#2) -> #3 (#4){%
  \item \textsf{#1} (\textsf{#2})\\
    $\rightarrow$ \textsf{#3} (\textsf{#4})}
\def\ITEMooo#1 (#2) + #3 (#4) -> #5 (#6){%
  \item \textsf{#1} (\textsf{#2}) + \textsf{#3} (\textsf{#4})\\
    $\rightarrow$ \textsf{#5} (\textsf{#6})}
\def\ITEM#1 -> #2 {%
  \item \textsf{#1}\\
    $\rightarrow$ \textsf{#2} }

凡例:
\begin{itemize}
\item \texttt{<元のパッケージ>} (\texttt{<元が含まれるバンドル名>})\\
  \texttt{<パッチのパッケージ>} (\texttt{<パッチが含まれるバンドル名>})
\end{itemize}

現在のバージョン (\filedate\space\fileversion) がサポートしているのは
下記のパッケージです。
\begin{itemize}
\ITEMoo  tracefnt (latex) -> ptrace/uptrace (platex/uplatex)
\ITEMoo  fltrace (latex) -> pfltrace (platex)
\ITEMoo  array (latex-tools) -> plarray (platex-tools)
\ITEMooo array (latex-tools) + plext (platex) -> plextarray (platex-tools)
\ITEMooo delarray (latex-tools) + plext (platex) -> plextdelarray (platex-tools)
\ITEMoo  everysel (ms) -> pxeverysel (platex-tools)
\ITEMoo  everyshi (ms) -> pxeveryshi (platex-tools)
\ITEMoo  atbegshi (oberdiek) -> pxatbegshi (platex-tools)
\ITEMoo  ftnright (latex-tools) -> pxftnright (platex-tools)
\ITEM    pdfpages -> pxpdfpages (maintained here!)
\end{itemize}
もちろん、このリストは随時、追加・削除・置き換えていく予定です。
互換性の問題や追加したいパッケージがある場合はご一報ください。

\section*{特定のパッケージを除外したい場合}

デフォルトでは、上記のリストに登録されている\texttt{<元のパッケージ>}が
使われたことを検出すると、全て自動的にパッチを読み込みます。
しかし、時にはこれが逆効果となり、問題が起きる可能性は否定できません。
そのような場合は
\begin{verbatim}
    \plautopatchdisable{<元のパッケージ>}
\end{verbatim}
と書くことで、そのパッケージを検出対象から除外します。複数ある場合は
\begin{verbatim}
    \plautopatchdisable{<元のパッケージ1>,<元のパッケージ2>}
\end{verbatim}
のようにコンマで区切っていくつでも除外できます。

\end{document}