OSDN Git Service

luatexja-fontspec-24.sty: fix \newjfontfamily
[luatex-ja/luatexja.git] / test / test13-listings.tex
1 %#!lualatex
2 \documentclass{article}
3
4 \usepackage{luatexja-fontspec}
5 \usepackage{listings,color,showexpl,comment}
6 \usepackage{luatexja-otf}\directlua{luatexja.otf.enable_ivs()}
7 \usepackage
8 [
9         papersize={100mm,100mm},
10         hmargin={5mm,5mm},
11         vmargin={5mm,5mm}
12 ]{geometry}
13 \pagestyle{empty}
14
15 \lstset
16 {
17         language=sh, extendedchars=false,
18         backgroundcolor=\color[gray]{.75},
19         breaklines=true,
20         explpreset={columns=fixed},
21     basewidth={0.5\zw, 0.45em},
22         numbers=left,numberstyle=\tiny, numbersep=2pt,
23 }
24
25 \lstnewenvironment{env}[1]
26 {
27         \ifx\relax#1\else
28         \renewcommand{\lstlistingname}{ex}
29         \lstset
30         {
31                 caption=#1,
32         }
33         \fi
34 }{}
35 \DeclareKanjiFamily{JY3}{koz}{}
36 \DeclareFontShape{JY3}{koz}{m}{n}{<-> s * [0.92489] KozMinPr6N-Regular:jfm=ujis}{}
37 \DeclareFontShape{JY3}{koz}{m}{sl}{<-> s * [0.92489] psft:Ryumin-Light:jfm=ujis;slant=0.167}{}
38 \DeclareFontShape{JY3}{koz}{m}{it}{<-> ssub* koz/m/sl}{}
39 \def\mcdefault{koz}
40
41 \setmainfont{TeX Gyre Pagella}
42 \setmonofont{TeX Gyre Cursor}
43 \begin{document}
44
45 This test file is based on a.tex\footnote{This can be downloaded from {\tt https://gist.github.com/1574793}.} by x19290.
46
47
48 \textbf{SOLVED}: bad folding and not slanted problems are common in pLaTeX and LuaTeX-ja.
49
50 The cause of the latter problem is that Japanese fonts don't have italic shape by default.
51 In this document, we define them by
52 \begin{lstlisting}[language={[AlLaTeX]TeX}, basicstyle=\ttfamily]
53 \DeclareFontShape{JY3}{mc}{m}{sl}{<-> s * [0.92489] psft:Ryumin-Light:jfm=ujis;slant=0.167}{}
54 \DeclareFontShape{JY3}{mc}{m}{it}{<-> ssub* mc/m/sl}{}
55 \end{lstlisting}
56 \newpage
57
58 We also avoid white band problem, by setting both the height and the depth of each 
59 letter/word to 0\,pt. 
60
61 \begin{env}{\relax}
62 #!/bin/sh
63 #長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い
64 長い長い長い長い長い長い長い長い長い長い長い長い,長い長い長い長い長い長い
65 #長い長い長い長い長い長い長い長い長い長い長い長い,長い長い長い長い長い長い
66 #I.長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長いI
67 長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い長い
68 #IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII
69 IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII IIII
70 \end{env}
71
72 \newpage
73
74 \textbf{SOLVED}: LuaTeX-ja specific problem:
75 when the \emph{begin} line of a listings environment ends with JAchar,
76 the first line of the listing is not rendered.
77
78 \begin{env}{problem; shebang not rendered --- 問題}
79 #!/bin/bash
80 :
81 \end{env}
82
83 \begin{LTXexample}[language=TeX]
84 え!1あ,い・あ)う(え
85 え!2あ
86 \end{LTXexample}
87
88 \lstinputlisting{test13-listings.tmp}
89
90 \begin{lstlisting}
91 え!1あアイウエオ
92 え!2あ
93 \end{lstlisting}
94 \newpage
95 \textbf{Ticket \#29311}
96
97 \begin{env}{\relax}
98 長い長い長い長い長い長い長い長い長い長い長い長aaa長い::い長い
99 長い長い長い長い長い長い長い長い長い長い長い長aaaa長い::い長い
100 長い長い長い長い長い長い長い長い長い長い長い長い長い,長い長い
101 あ長い長い長い長い長い長い長い長い長い長い長い長い長い,長い長い
102 長い長い長い長い長い長い長い長い長い長い長い長い長a,::い長い
103 長い長い長い長い長い長い長い長い長い長い長い長い長aa,::い長い
104 長い長い長い長い長い長い長い長い長い長い長い長い長aaa,::い長い
105 長い長い長い長い長い長い長い長い長い長い長い長い長aaaa,::い長い
106 長い長い長い長い長い長い長い長い長い長い長い長い長い,,::い長い
107 長い長い長い長い長い長い長い長い長い長い長い長(い長い
108 長い長い長い長い長い長い長い長い長い長い長いaa(い長い
109 長い長い長い長い長い長い長い長い長い長い長い長(aa長い
110 長い長い長い長い長い長い長い長い長い長い長い長い)(長い
111 あ長い長い長い長い長い長い長い長い長い長い長い長い)(長い
112 \end{env}
113
114 \newpage
115 \textbf{Ticket \#29604}
116
117 \setmonofont{DejaVu Sans Mono}
118 \ltjsetparameter{jacharrange={-2,-3,-8}}
119 ギリシャ文字欧文扱い
120
121 \begin{lstlisting}[basewidth=.5em,basicstyle=\tt, emph={TeX}, emphstyle=\color{red}]
122 01234567890123456789
123 !あ!漢!α!×!
124 \TeX はギリシャ文字のΤ-Ε-Χ(タウ・イプシロン・カイ)であるから、……
125 \TeX is an abbreviation of τέχνη (ΤΕΧΝΗ – technē).
126 \end{lstlisting}
127
128 \ltjsetparameter{jacharrange={+2,+8,+3}}
129 ギリシャ文字和文扱い
130
131 \begin{lstlisting}[basewidth=.5em,basicstyle=\tt, emph={TeX}, emphstyle=\color{red}]
132 01234567890123456789
133 !あ!漢!α!×!
134 \TeX はギリシャ文字のΤ-Ε-Χ(タウ・イプシロン・カイ)であるから、……
135 \TeX is an abbreviation of τέχνη (ΤΕΧΝΗ – technē).
136 \end{lstlisting}
137
138 \newpage
139 IVS対応1: \texttt{vsraw=false} (default)
140
141 \begin{LTXexample}[escapechar=\%, basicstyle=\tt]
142 1234567890
143 1葛󠄀城,葛󠄁飾
144 󠄀a
145 \end{LTXexample}
146
147 IVS対応2: \texttt{vsraw=true}
148
149 \begin{LTXexample}[escapechar=\%,vsraw, basicstyle=\tt]
150 1234567890
151 1葛󠄀城,葛󠄁飾アイウ
152 \end{LTXexample}
153
154 \newpage
155
156 下の行において,最初の「1」の場所がずれてしまうのは半ば仕方がないとも言える.
157 1行目では,「1234567890」が前後・文字間に計11箇所の等量の空白を入れて10全角の領域に
158 出力されているのに対し,2,~3行目では「1」が全角幅に左右中央で出力されているからである.
159 \begin{lstlisting}[escapechar=\%,vsraw, basewidth=1\zw, basicstyle=\tt]
160 1234567890
161 1あ,23
162 1あ2,3
163 1234567890
164 \end{lstlisting}
165
166 \texttt{doubleletterspace}オプションを指定すると,出力単位中の文字と文字の間隔を2倍にするため,
167 下の例の「1」のように,各文字の垂直位置が揃いやすくなる.
168 \begin{lstlisting}[escapechar=\%,doubleletterspace, basewidth=1\zw, basicstyle=\tt]
169 1234567890
170 1あ,23
171 1あ2,3
172 1234567890
173 \end{lstlisting}
174
175
176 \newpage
177 \textbf{Ticket \#34786}
178 \ltjsetparameter{autoxspacing=false}
179
180 foo \lstinline[basicstyle=\tt]!bar! baz あ
181 あ\lstinline[basicstyle=\tt]{bar}hoge
182
183 foo \lstinline[basicstyle=\tt]!あbar! baz あ
184 あ\lstinline[basicstyle=\tt]{いbar}hoge
185
186
187 \end{document}