OSDN Git Service

Oops, only the manual was updated
authorHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sat, 29 Aug 2015 00:07:38 +0000 (09:07 +0900)
committerHironori Kitagawa <h_kitagawa2001@yahoo.co.jp>
Sat, 29 Aug 2015 00:07:38 +0000 (09:07 +0900)
doc/luatexja.dtx
ltj-plain.sty [new file with mode: 0644]
src/ltj-plain.sty
src/patches/lltjdefs.sty

index f3e910c..67f7821 100644 (file)
@@ -352,7 +352,6 @@ In \pTeX, a line break after Japanese character is ignored (and
 %</ja>
 
 %<*en>
-
 \paragraph{Spaces related to Japanese characters}
 The insertion process of glues/kerns between two Japanese
       characters and between a Japanese character and other characters
@@ -421,17 +420,19 @@ The insertion process of glues/kerns between two Japanese
 
 %<*en>
 \paragraph{Directions}
-From version~20150420.0, \LuaTeX-ja supports vertical writing;
-but this feature must \emph{not} be confused with $\Omega$-style direction support of \LuaTeX\
-itself. ...
+From version~20150420.0, \LuaTeX-ja supports vertical writing.
+We implement this feature by using callbacks of \LuaTeX; so it must \emph{not} be confused
+with $\Omega$-style direction support of \LuaTeX\ itself.
+Due to implementation, the dimension returned by \cs{wd},~\cs{ht}, or~\cs{dp} depends
+on the content of the register \emph{only}. This is major difference with \pTeX.
 %</en>
 %<*ja>
 \paragraph{組方向}
 20150420.0版からは,不安定ながらも\LuaTeX-ja における縦組みをサポートしている.
-なお,\LuaTeX 本体も$\Omega$流の組方向をサポートしているが,それとは全くの別物であること
+なお,\LuaTeX 本体も$\Omega$流の組方向をサポートしているが,それとは全くの別物であること
 に注意してほしい.
-\LuaTeX のコールバックや実装により,特に異なった組方向のボックスを扱う場合には
-\cs{wd}, \cs{ht}, \cs{dp}等の仕様が異なるので注意.詳細は第\ref{sec-direction}章を参照.
+特に,異なった組方向のボックスを扱う場合には
+\cs{wd}, \cs{ht}, \cs{dp}等の仕様が\pTeX と異なるので注意.詳細は第\ref{sec-direction}章を参照.
 %</ja>
 
 %<*en>
@@ -445,7 +446,35 @@ Japanese characters in discretionary break (\cs{discretionary}) is not supported
       しても使いたい場合は \cs{hbox} で括ること.
 %</ja>
 
+%<*en>
+\paragraph{Greek and Cyrillic letters, and ISO~8859-1 symbols}
+By default, \LuaTeX-ja uses Japanese fonts to typeset Greek and Cyrillic letters,
+      To change this behavior, 
+      put \verb!\ltjsetparameter{jacharrange={-2,-3}}! in the preamble.
+      For the detailed description, see Subsection~\ref{ssec-setrange}.
 
+From this version, characters which belongs both ISO~8859-1 and JIS~X~0208,
+      such as \P~and~\S, are now typeset in alphabetic fonts. This means that
+      without the \cs{fontspec} package, these characters are not typeset correctly.
+%</en>
+%<*ja>
+\paragraph{ギリシャ文字・キリル文字とISO~8859-1の記号}
+標準では,\LuaTeX-jaはギリシャ文字やキリル文字を和文フォントを使っ
+      て組む.ギリシャ語などを本格的に組むなどこの状況が望ましくない場合,
+      プリアンブルに
+\begin{lstlisting}
+ \ltjsetparameter{jacharrange={-2,-3}}
+\end{lstlisting}
+      を入れると
+      上記種類の文字は欧文フォントを用いて組まれるようになる.
+      詳しい説明は\ref{ssec-setrange}節を参照してほしい.
+
+また,\P,~\S といったISO~8859-1の上位領域とJIS~X~0208の共通部分の文字は
+      本バージョンから標準で欧文扱いとなり,\emph{ソース中に直接記述しても
+      \Pkg{fontspec}パッケージ非読み込みの状態では出力されなくなった}.
+      和文扱いで出力するには \verb+\ltjjachar`§+ のように \cs{ltjjachar} 命令
+      を使えばよい.
+%</ja>
 
 %<en>\subsection{Notations}
 %<ja>\subsection{用語と記法}
@@ -746,26 +775,6 @@ For changes from \pTeX, see Subsection~\ref{ssec:chgptex}.
       従来日本語の文字コードとして用いられてきたEUC-JPやShift-JISは使用できない.
 %</ja>
 %<*en>
-\item By default, \LuaTeX-ja uses Japanese fonts to typeset Greek and Cyrillic letters.
-      To change this behavior, 
-      put \verb!\ltjsetparameter{jacharrange={-2,-3}}! in the preamble.
-      For the detailed description, see Subsection~\ref{ssec-setrange}.
-%</en>
-%<*ja>
-\item 
-標準では,\LuaTeX-jaはギリシャ文字やキリル文字を和文フォントを使っ
-      て組む.ギリシャ語などを本格的に組むなどこの状況が望ましくない場合,
-      プリアンブルに
-\begin{lstlisting}
- \ltjsetparameter{jacharrange={-2,-3}}
-\end{lstlisting}
-      を入れると
-      上記種類の文字は欧文フォントを用いて組まれるようになる.
-      なお,\P,~\S といったISO~8859-1の上位領域とJIS~X~0208の共通部分の文字は
-      本バージョンから標準で欧文扱い(\textbf{ALchar})となった.
-      詳しい説明は\ref{ssec-setrange}節を参照してほしい.
-%</ja>
-%<*en>
 \item \LuaTeX-ja is very slower than \pTeX.
 Generally speaking, LuaJIT\TeX\ processes \LuaTeX-ja
 about 30\% faster than \LuaTeX, but not always.
@@ -2247,14 +2256,15 @@ Hence, as previous versions of \LuaTeX-ja, if these characters are treated as
 \text{JAchar}s, then \cs{textparagraph} produces ``ltjjachar`¶'' (in a Japanese font), 
 and  \cs{Frowny} produces ``\ltjjachar`§'' (in a Japanese font).
 
-To avoid such situations, the default  setting of \LuaTeX-ja is changed in this release
+To avoid such situations, the default setting of \LuaTeX-ja is changed in this release
 so that all characters \texttt{U+0080}--\texttt{U+00FF} are treated as \textbf{ALchar}.
-If you want to output a character as \textbf{ALchar}/\textbf{JAchar} regardless the range
-setting, you can use \cs{ltjalchar}/\cs{ltjjachar} respectively.
+
+If you want to output a character as \textbf{ALchar} and \textbf{JAchar} regardless the range
+setting, you can use \cs{ltjalchar} and \cs{ltjjachar} respectively, as the following example.
 \begin{LTXexample}[width=0.3\textwidth]
-\gtfamily 
,\ltjalchar`¶,\ltjjachar`¶\\   % default: ALchar
,\ltjalchar`α,\ltjjachar`α  % default: JAchar
+\gtfamily\large % default, ALchar, JAchar
, \ltjalchar`¶, \ltjjachar`¶\\   % default: ALchar
, \ltjalchar`α, \ltjjachar`α  % default: JAchar
 \end{LTXexample}
 %</en>
 %<*ja>
@@ -2269,15 +2279,19 @@ setting, you can use \cs{ltjalchar}/\cs{ltjjachar} respectively.
 即ち,以前のバージョンのように,「前節の文字範囲8内の文字は\textbf{JAchar}」という設定で
 あったとすると,上記の \cs{textparagraph} は和文フォントで「\ltjjachar`¶」を出力し,
 また \cs{Frowny} は和文フォントで「\ltjjachar`§」を出力することになる.
-このような事態を避けるために,\emph{本バージョンからは \texttt{U+0080}--\texttt{U+00FF} の範囲の
-文字は全て\textbf{ALchar}となるように初期設定を変更}している.
 
-なお,文字範囲の設定に関わらず文字を\textbf{ALchar}, \textbf{JAchar}で出力したい場合には,
-それぞれ \cs{ltjalchar},~\cs{ltjjachar} に該当文字の文字コードを渡せばよい.
+このような事態を避けるために,本バージョンからは \texttt{U+0080}--\texttt{U+00FF} の範囲の
+文字は全て\textbf{ALchar}となるように初期設定を変更している.
+特に影響を受けるのが,JIS~X~0208の一部分である文字範囲8内の文字であり,
+\emph{\Pkg{fontspec}パッケージを読み込んだりして欧文記号としてこれらの文字の出力環境を整え
+ないと,ソース中に直接記述しても出力されない}ことになる.
+
+なお,文字範囲の設定に関わらず1つの文字を\textbf{ALchar}, \textbf{JAchar}で出力したい場合には,
+以下の例のようにそれぞれ \cs{ltjalchar},~\cs{ltjjachar} に該当文字の文字コードを渡せばよい.
 \begin{LTXexample}[width=0.3\textwidth]
-\gtfamily 
,\ltjalchar`¶,\ltjjachar`¶\\   % default: ALchar
,\ltjalchar`α,\ltjjachar`α  % default: JAchar
+\gtfamily\large % default, ALchar, JAchar
, \ltjalchar`¶, \ltjjachar`¶\\   % default: ALchar
, \ltjalchar`α, \ltjjachar`α  % default: JAchar
 \end{LTXexample}
 %</ja>
 
@@ -2487,7 +2501,7 @@ Here the horizontal line in the below example is the baseline of a line.
 下の例において引かれている水平線がベースラインである.
 %</ja>
 \begin{LTXexample}
-\vrule width 150pt height 0.4pt depth 0pt \hskip-120pt
+\vrule width 150pt height 0.2pt depth 0.2pt \hskip-120pt
 \ltjsetparameter{yjabaselineshift=0pt, yalbaselineshift=0pt}abcあいう
 \ltjsetparameter{yjabaselineshift=5pt, yalbaselineshift=2pt}abcあいう
 \end{LTXexample}
@@ -2502,13 +2516,15 @@ The following is an example (beware the value is not well tuned):
 異なる文字を中心線に揃えることができる.
 以下は一つの例である(値はあまり調整されていないことに注意):
 %</ja>
-\begin{LTXexample}
-xyz漢字
+\begin{LTXexample}[width=0.4\textwidth]
+\vrule width 150pt height4.417pt depth-4.217pt%
+\kern-150pt
+\large xyz漢字
 {\scriptsize
-  \ltjsetparameter{yjabaselineshift=-1pt,
-    yalbaselineshift=-1pt}
-  XYZひらがな
-}abcかな
+  \ltjsetparameter{yjabaselineshift=-1.757pt,
+    yalbaselineshift=-1.757pt}
+  漢字xyzあいう
+}あいうabc
 \end{LTXexample}
 
 %<*en>
@@ -2565,20 +2581,20 @@ becuse a \emph{JAchar} is encapsulated by a horizontal box if needed.
 \toprule
 \emph{入力}&\vspace*{\dimexpr-\origbaselineskip-\smallskipamount}
 \begin{lstlisting}
-数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2\!/2$,
+数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
 $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
 \end{lstlisting}\\
 \noalign{\vskip-\origbaselineskip}
 \midrule
 \emph{\pTeX}&
 {\ltjsetparameter{yalbaselineshift=10pt}%
-数式abc: $あa\lower10pt\hbox{い}$, $\int_0^x t\,dt=x^2\!/2$,
+数式abc: $あa\lower10pt\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
 $\Phi\vdash F(x)\ \lower10pt\hbox{for all}\ x\in A$
 \par}\\
 \midrule
 \emph{\LuaTeX-ja}&
 {\ltjsetparameter{yalbaselineshift=10pt}%
-数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2\!/2$,
+数式abc: $あa\hbox{い}$, $\int_0^x t\,dt=x^2/2$,
 $\Phi\vdash F(x)\ \hbox{for all}\ x\in A$
 \par}\\
 \noalign{\vskip-\origbaselineskip}
@@ -2594,8 +2610,9 @@ Among parameters which related to Japanese word-wrapping process (\emph{kinsoku
  \Param{jaxspmode},~\Param{alxspmode}, \Param{prebreakpenalty},
  \Param{postbreakpenalty}~and~\Param{kcatcode}
 \end{quote}
-are stored by each character codes. ...
+are stored by each character codes.
 
+OpenType font features are ignored in these parameters.
 For example, a fullwidth katakana ``ア'' on line~10 in the below input is replaced to
 its halfwidth variant ``ア'', by \verb+hwid+ feature.
 However, the penalty inserted after it is 10 which is the \Param{postbreakpenalty} of
@@ -2612,7 +2629,7 @@ However, the penalty inserted after it is 10 which is the \Param{postbreakpenalt
 
 \Pkg{fontspec}パッケージを使う(\ref{ssec-fontspec}節)場合など,
 各種のOpenType featureを適用することもあると思うが,前段落に述べたパラメータ類は,
-\emph{OpenType featureの適用前の文字コードによって判定される.}
+\emph{OpenType featureの適用前の文字コードによって適用される.}
 例えば,以下の例において10行目の「ア」は,\verb+hwid+ featureの適用により半角カタカナの「ア」
 に置き換わる.しかし,その直後に挿入される \Param{postbreakpenalty}は,置換前の「ア」に対する値10である.
 %</ja>
diff --git a/ltj-plain.sty b/ltj-plain.sty
new file mode 100644 (file)
index 0000000..ad2c4ad
--- /dev/null
@@ -0,0 +1,99 @@
+%
+% ltj-plain.sty
+%
+
+%! これは外から読まれない
+%% Avoid multiple loading.
+\csname luatexjaplainLoaded\endcsname
+\edef\ltj@plain@AtEnd{%
+\endlinechar=\the\endlinechar
+\relax}
+\endlinechar=-1 %
+\def\luatexjaplainLoaded{\endinput}
+
+\ifltj@in@latex                 %<*LaTeX>
+  \NeedsTeXFormat{LaTeX2e}
+  \PackageWarning{ltj-plain}{Don't load this package directly; load luatexja.sty instead.}
+  \ProvidesPackage{ltj-plain}[2015/08/29]
+\fi                             %</LaTeX>
+
+%%------------------
+
+\endlinechar=13
+%! ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
+% LuaTeX-ja macros against plain TeX
+
+\def\ltj@stdmcfont{IPAExMincho}
+\def\ltj@stdgtfont{IPAExGothic}
+\newread\ltj@@cfgread
+\openin\ltj@@cfgread{luatexja.cfg}%
+\ifeof\ltj@@cfgread
+  \@PackageInfoNoLine{ltj-plain}{Cannot find file `luatexja.cfg'}%
+\else
+  \closein\ltj@@cfgread
+  \input luatexja.cfg
+\fi
+\let\ltj@@cfgread\relax\advance\count16\m@ne\relax
+
+\jfont\tenmin=\ltj@stdmcfont:jfm=ujis at 9.62216pt
+\jfont\sevenmin=\ltj@stdmcfont:jfm=ujis at 6.73551pt
+\jfont\fivemin=\ltj@stdmcfont:jfm=ujis at 4.81108pt
+\jfont\tengt=\ltj@stdgtfont:jfm=ujis at 9.62216pt
+\jfont\sevengt=\ltj@stdgtfont:jfm=ujis at 6.73551pt
+\jfont\fivegt=\ltj@stdgtfont:jfm=ujis at 4.81108pt
+
+\tfont\tentmin=\ltj@stdmcfont:jfm=ujisv at 9.62216pt
+\tfont\seventmin=\ltj@stdmcfont:jfm=ujisv at 6.73551pt
+\tfont\fivetmin=\ltj@stdmcfont:jfm=ujisv at 4.81108pt
+\tfont\tentgt=\ltj@stdgtfont:jfm=ujisv at 9.62216pt
+\tfont\seventgt=\ltj@stdgtfont:jfm=ujisv at 6.73551pt
+\tfont\fivetgt=\ltj@stdgtfont:jfm=ujisv at 4.81108pt
+
+\def\mc{\tenmin\tentmin}
+\def\gt{\tengt\tentgt}
+\mc
+
+\directlua{
+  local s = kpse.find_file('ltj-kinsoku.lua', 'tex')
+  luatexja.stack.charprop_stack_table[0] = s and dofile(s) or {}
+}
+
+\ltjsetparameter{kanjiskip=\z@ plus .4pt minus .4pt,
+  xkanjiskip=.25\zw plus 1pt minus 1pt,
+  autospacing, autoxspacing, jacharrange={-1},
+  yalbaselineshift=\z@, yjabaselineshift=\z@,
+  jcharwidowpenalty=500, differentjfm=paverage,
+  jatextfont={0, \tenmin}, jascriptfont={0, \sevenmin},
+  jascriptscriptfont={0, \fivemin},
+}
+\setbox\z@=\hbox{M}
+\jfam\z@
+\ltjsetparameter{talbaselineshift=.5\ht0, tjabaselineshift=\z@}
+
+\ltjdefcharrange{1}{"80-"36F, "1E00-"1EFF}
+\ltjdefcharrange{2}{"370-"4FF, "1F00-"1FFF}
+\ltjdefcharrange{3}{%
+  "2000-"243F, "2500-"27BF, "2900-"29FF, "2B00-"2BFF}
+\ltjdefcharrange{4}{%
+   "500-"10FF, "1200-"1DFF, "2440-"245F, "27C0-"28FF, "2A00-"2AFF,
+  "2C00-"2E7F, "4DC0-"4DFF, "A4D0-"A82F, "A840-"ABFF, "FB00-"FE0F,
+  "FE20-"FE2F, "FE70-"FEFF, "10000-"1FFFF, "E000-"F8FF} % non-Japanese
+\ltjdefcharrange{5}{"D800-"DFFF, "E0000-"E00FF, "E01F0-"10FFFF}
+\ltjdefcharrange{6}{%
+  "2460-"24FF, "2E80-"2EFF, "3000-"30FF, "3190-"319F, "31F0-"4DBF,
+  "4E00-"9FFF, "F900-"FAFF, "FE10-"FE6F, "20000-"2FFFF,"E0100-"E01EF}
+\ltjdefcharrange{7}{
+  "1100-"11FF, "2F00-"2FFF, "3100-"31EF, "A000-"A4CF, "A830-"A83F,
+  "AC00-"D7FF}
+\ltjdefcharrange{8}{"B4, "A8, "B1, "D7, "F7, "B0, "A7, "B6}
+\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}}
+
+\directlua{for x=128,255 do luatexja.math.is_math_letters[x] = true end}
+\let\ltj@@orig@end=\@@end
+\protected\def\@@end{%
+  \directlua{luatexja.ext_cleanup()}\ltj@@orig@end}
+
+%%------------------ all done
+\ltj@plain@AtEnd
+\endinput
+%% EOF
index 2c57363..d2f97b4 100644 (file)
@@ -86,7 +86,7 @@
   "1100-"11FF, "2F00-"2FFF, "3100-"31EF, "A000-"A4CF, "A830-"A83F,
   "AC00-"D7FF}
 \ltjdefcharrange{8}{"B4, "A8, "B1, "D7, "F7, "B0, "A7, "B6}
-\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, +8}}
+\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}}
 
 \directlua{for x=128,255 do luatexja.math.is_math_letters[x] = true end}
 \let\ltj@@orig@end=\@@end
index 70277ae..dac8b4e 100644 (file)
@@ -3,7 +3,7 @@
 %
 
 \NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{lltjdefs}[2015/03/17 Default font settings of LuaTeX-ja]
+\ProvidesPackage{lltjdefs}[2015/08/29 Default font settings of LuaTeX-ja]
 
 \def\ltj@stdmcfont{IPAExMincho}
 \def\ltj@stdgtfont{IPAExGothic}
@@ -70,7 +70,7 @@
   "1100-"11FF, "2F00-"2FFF, "3100-"31EF, "A000-"A4CF, "A830-"A83F,
   "AC00-"D7FF}
 \ltjdefcharrange{8}{"A7, "A8, "B0, "B1, "B4, "B6, "D7, "F7}
-\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, +8}}
+\ltjsetparameter{jacharrange={-1, +2, +3, -4, -5, +6, +7, -8}}
 
 \directlua{for x=128,255 do luatexja.math.is_math_letters[x] = true end}
 \def\<{\inhibitglue}