[#6219] Ruby連載 第4話 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

32 messages 1998/02/04
[#6221] Re: Ruby連載 第4話 — Shin-ichiro HARA <sinara@...> 1998/02/04

原です。

[#6224] Re: Ruby連載 第4話 — Yasunari Momoi <conan@...> 1998/02/04

ももちゃん@あるもにこすです.

[#6225] Re: Ruby連載 第4話 — matz@... (Yukihiro Matsumoto) 1998/02/04

まつもと ゆきひろです

[#6249] Re: i++ — 助田 雅紀 <masaki.suketa@...>

助田です。

33 messages 1998/02/04
[#6252] Re: i++ — gotoken@... (GOTO Kentaro) 1998/02/05

ことけんです

[#6255] Re: i++ — matz@... (Yukihiro Matsumoto) 1998/02/05

まつもと ゆきひろです

[#6260] Re: i++ — Yuji Shigehiro <sigehiro@...> 1998/02/05

しげひろです.

[#6314] RE: ruby's design policy (Re: I'd like to subscr ibe this ML) — 助田 雅紀 <masaki.suketa@...>

オブジェクト指向周辺をぶらぶらしている助田です。

11 messages 1998/02/06

[#6333] ruby 流に添削して下さい — nkon@...2.3web.ne.jp

13 messages 1998/02/07
[#6335] Re: ruby 流に添削して下さい — OZAWA Sakuro <crouton@...> 1998/02/07

さくです.

[#6372] ruby 1.1b7 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

24 messages 1998/02/10
[#6402] parsedate (Re: ruby 1.1b7 released) — WATANABE Hirofumi <watanabe@...> 1998/02/13

わたなべです.

[#6405] Re: parsedate (Re: ruby 1.1b7 released) — Tadayoshi Funaba <tadf@...> 1998/02/13

ふなばです。

[#6407] Re: parsedate (Re: ruby 1.1b7 released) — matz@... (Yukihiro Matsumoto) 1998/02/13

まつもと ゆきひろです

[#6373] call for scripts — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

133 messages 1998/02/10
[#6414] Re: call for scripts — Terutuoshi Kaneshiro <k-teru@...06.odn.ne.jp> 1998/02/14

金城です.

[#6428] Re: call for scripts — matz@... (Yukihiro Matsumoto) 1998/02/16

まつもと ゆきひろです

[#6448] Re: call for scripts — Terutuoshi Kaneshiro <k-teru@...06.odn.ne.jp> 1998/02/16

金城です.

[#6452] Re: call for scripts — matz@... (Yukihiro Matsumoto) 1998/02/17

まつもと ゆきひろです

[#6481] Re: call for scripts — Kikutani Makoto <kikutani@...> 1998/02/17

きくたに@ぷ〜たろ〜です。

[#6483] Re: call for scripts — OZAWA Sakuro <crouton@...> 1998/02/17

さくです.

[#6495] Re: call for scripts — WATANABE Hirofumi <watanabe@...> 1998/02/18

わたなべです.

[#6416] Re: call for scripts — shugo@... (Shugo Maeda) 1998/02/14

前田です。

[#6417] rgrep (Re: call for scripts) — shugo@... (Shugo Maeda) 1998/02/15

前田です。

[#6423] Re: rgrep (Re: call for scripts) — matz@... (Yukihiro Matsumoto) 1998/02/16

まつもと ゆきひろです

[#6612] Re: call for scripts — Tadayoshi Funaba <tadf@...> 1998/02/21

ふなばです。

[#6582] File::Separator on cygwin — OZAWA Sakuro <ozawa@...>

小澤さくです。

19 messages 1998/02/20
[#6583] Re: File::Separator on cygwin — WATANABE Hirofumi <watanabe@...> 1998/02/20

わたなべです.

[#6586] Re: File::Separator on cygwin — OZAWA Sakuro <ozawa@...> 1998/02/20

小澤さくです。

[#6591] ruby 1.1b8 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

32 messages 1998/02/20
[#6620] rbc.rb and binding — shugo@... (Shugo Maeda) 1998/02/22

前田です。

[#6629] Re: rbc.rb and binding — keiju@... (石塚圭樹 ) 1998/02/23

けいじゅ@日本ラショナルソフトウェアです.

[#6643] Re: rbc.rb and binding — shugo@... (Shugo Maeda) 1998/02/23

前田です。

[#6649] Re: rbc.rb and binding — keiju@... (石塚圭樹 ) 1998/02/23

けいじゅ@日本ラショナルソフトウェアです.

[#6650] Re: rbc.rb and binding — matz@... (Yukihiro Matsumoto) 1998/02/23

まつもと ゆきひろです

[#6667] JRI 0.5 worked (was Re: rbc.rb and binding) — OZAWA Sakuro <crouton@...> 1998/02/23

さくです.

[#6687] Re: JRI 0.5 worked (was Re: rbc.rb and binding) — shugo@... (Shugo Maeda) 1998/02/24

前田です。

[#6712] JRI and JDBC — OZAWA Sakuro <ozawa@...> 1998/02/24

小澤さくです。

[#6635] hello — WATANABE Tetsuya <tetsu@...>

渡辺哲也と申します。

15 messages 1998/02/23

[#6706] Re: Counter class — toyofuku@...

豊福@パパイヤです。

12 messages 1998/02/24

[#6735] Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda)

前田です。

27 messages 1998/02/24
[#6746] Re: Mutex/ConditionVariable/Queue — keiju@... (石塚圭樹 ) 1998/02/25

けいじゅ@日本ラショナルソフトウェアです.

[#6747] Re: Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda) 1998/02/25

前田です。

[#6752] Re: Mutex/ConditionVariable/Queue — senda@... 1998/02/25

From: shugo@po.aianet.ne.jp (Shugo Maeda)

[#6754] Re: Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda) 1998/02/25

前田です。

[#6756] Re: Mutex/ConditionVariable/Queue — senda@... 1998/02/25

From: shugo@po.aianet.ne.jp (Shugo Maeda)

[#6786] Re: Mutex/ConditionVariable/Queue — senda@...

From: shugo@po.aianet.ne.jp (Shugo Maeda)

33 messages 1998/02/26
[#6791] Re: Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda) 1998/02/26

前田です。

[#6794] Re: Mutex/ConditionVariable/Queue — shugo@... (Shugo Maeda) 1998/02/26

前田です。

[#6796] Re: Mutex/ConditionVariable/Queue — keiju@... (石塚圭樹 ) 1998/02/26

けいじゅ@日本ラショナルソフトウェアです.

[ruby-list:6478] Re: call for scripts

From: aito@...5sun.yz.yamagata-u.ac.jp
Date: 1998-02-17 10:51:44 UTC
List: ruby-list #6478
あ伊藤です.「めざせサイン本」大会(ちがう?)に参加ということで...

TeX の makeindex と同じことをするプログラム idx2ind です.

利点:
  目次のスタイルが選べる.

欠点:
  階層的な目次に(まだ)対応していない.

--_
ITO  Akinori at YAMAGATA UNIVERSITY
伊藤 彰則       山形     大学

#!/usr/local/bin/ruby

# remove DAKUTEN
DAKU_TBL = {
  "が" => "か",
  "ぎ" => "き",
  "ぐ" => "く",
  "げ" => "け",
  "ご" => "こ",
  "ざ" => "さ",
  "じ" => "し",
  "ず" => "す",
  "ぜ" => "せ",
  "ぞ" => "そ",
  "だ" => "た",
  "ぢ" => "ち",
  "づ" => "つ",
  "で" => "て",
  "ど" => "と",
  "ば" => "は",
  "び" => "ひ",
  "ぶ" => "ふ",
  "べ" => "へ",
  "ぼ" => "ほ",
  "ぱ" => "は",
  "ぴ" => "ひ",
  "ぷ" => "ふ",
  "ぺ" => "へ",
  "ぽ" => "ほ",
}

def remove_daku(s)
  res = []
  i = 0
  while i < s.size
    if s[i] < 128 then # single byte char
      res.push s[i,1]
      i += 1
    else
      wc = s[i,2]
      if DAKU_TBL.key?(wc) then
        res.push DAKU_TBL[wc]
      else
        res.push wc
      end
      i += 2
    end
  end
  res.join('')
end

def print_item_for_letter(keywords,letter,style)
  print "\\hfil {\\Large\\dg\\bf #{letter}}\\hfill\n"
  h = keywords[letter]
  for yomi in h.keys.sort
    z = h[yomi]
    for keyword in z.keys
      case style
      when :plain
        print "\\item ",keyword,",",z[keyword].sort.join(","),"\n"
      when :dotfill
        print "\\item ",keyword,"\\dotfill ",z[keyword].sort.join(","),"\n"
      when :fill
        print "\\item ",keyword,"\\hfill ",z[keyword].sort.join(","),"\n"
      end
    end
  end
end

#----------------------------MAIN-------------------------
# command line argument: idx2ind filename[.idx]

style = :plain
while /^-/ =~ ARGV[0]
  case ARGV[0]
  when "-plain" then
    style = :plain
  when "-dotfill" then
    style = :dotfill
  when "-fill" then
    style = :fill
  else
    STDERR.print "usage: idx2ind [options] filename[.idx]\n"
    STDERR.print "options: -plain      item page,page style (default)\n"
    STDERR.print "         -dotfill    item ...... page,page style\n"
    STDERR.print "         -fill       item        page,page style\n"
    exit(1)
  end
  ARGV.shift
end

keywords = {}
SYMBOL = "記号"

while gets
  keyword = nil
  page = nil
  if /\\indexentry\{(.*)\}\{(.*)\}/ then
    keyword = $1
    page = $2
  else
    next
  end
  keyword_yomi = nil
  if keyword =~ /.@/ then
    keyword_yomi,keyword = keyword.split(/@/)
  else
    keyword_yomi = keyword
  end
  first_char = keyword_yomi[0]
  first_letter = nil
  if 32 <= first_char && first_char <= 126 then
    # 1-byte character
    first_letter = keyword_yomi[0,1].upcase
    unless first_letter =~ /[A-Z]/ then
      # symbol
      first_letter = SYMBOL
    end
  else
    # 2-byte character
    first_letter = remove_daku(keyword_yomi[0,2])
  end
  keyword_yomi = remove_daku(keyword_yomi.upcase)
  h = nil
  if keywords.key?(first_letter) then
    h = keywords[first_letter]
  else
    h = {}
    keywords[first_letter] = h
  end
  if h.key?(keyword_yomi) then
    z = h[keyword_yomi]
    if z.key?(keyword) then
      z[keyword].push(page)
    else
      h[keyword_yomi] = {keyword => [page]}
    end
  else
    h[keyword_yomi] = {keyword => [page]}
  end
end

print "\\begin{theindex}\n"
first = TRUE
if keywords.key?(SYMBOL) then
  print_item_for_letter(keywords,SYMBOL,style)
  first = FALSE
  keywords.delete(SYMBOL)
end
for letter in keywords.keys.sort {
     |a,b| 
     x = (a[0] <=> b[0])
     if x == 0 then a <=> b else x end
  }
  if first then
    first = FALSE
  else
    print "\\indexspace\n"
  end
  print_item_for_letter(keywords,letter,style)
end
print "\\end{theindex}\n"

In This Thread

Prev Next