LibreOfficeでNoto Sans/Noto Serifフォントを使用する (Windows, Linux)

経緯

最近、LaTeX (LuaLaTeX) で資料を作成する際のフォントとして「源ノ角ゴシックおよび源ノ明朝」を使用するようになりました。かなり綺麗なフォントであると感じたので、 LibreOfficeでも使用したいと思いました。

OSはLinuxとWindowsを併用しているため、どちらのLibreOfficeでも同じように表示されるかどうかを試してみたところ、「源ノ角ゴシックおよび源ノ明朝」では上手くいきませんでした。

試行錯誤した結果、「Noto SansおよびNoto Serif」を使用したところ成功したので、その結果をメモとして残しておきます。

手順

ダウンロードするファイル

このページ の下の方にある “Region-specific Subset OpenType/CFF (Subset OTF)” からダウンロードしました。

  • Noto Sansフォント
    • NotoSansJP-[weight].otf (NotoSansfJP.zip)
    • ファイルの内容
      • NotoSansJP-Thin.otf
      • NotoSansJP-Light.otf
      • NotoSansJP-DemiLight.otf
      • NotoSansJP-Regular.otf(必須)
      • NotoSansJP-Medium.otf
      • NotoSansJP-Bold.otf(必須)
      • NotoSansJP-Black.otf
  • Noto Serifフォント
    • NotoSerifJP-[weight].otf (NotoSerifJP.zip)
    • ファイルの内容
      • NotoSerifJP-ExtraLight.otf
      • NotoSerifJP-Light.otf
      • NotoSerifJP-Medium.otf
      • NotoSerifJP-Regular.otf(必須)
      • NotoSerifJP-SemiBold.otf
      • NotoSerifJP-Bold.otf(必須)
      • NotoSerifJP-Black.otf

フォントのインストール

ダウンロードしたNotoSansJP.zipおよびNotoSerifJP.zipファイルを解凍すると NotoSansJPおよびNotoSerifJPフォルダが作成されます。

Windowsの場合

解凍してできたファイルを右クリックするとメニューが現れるため、そこから「フォントのインストール」を選択します。

Linuxの場合

/usr/local/share/fonts/opentype/google/ 以下にフォントを配置しました。

LibreOfficeでのフォント選択

フォントの選択は以下の通りに行います。

申し訳ありませんが画像は省略します。

Noto Sans JP

ゴシック体にする場合には少し面倒です。

  • 通常の文字:”Noto Sans JP Regular”を選択
  • ボールド体:”Noto Sans JP Bold”を選択
    • “Noto Sans JP Regular”を選択後に太字(Ctrl+B)にしても “Noto Sans JP Bold”にはなりません。

Noto Serif JP

明朝体の場合は簡単(通常通り)です。

  • 通常の文字:”Noto Serif JP”を選択
  • ボールド体:”Noto Serif JP”を選択後に太字(Ctrl+B)

源ノ角ゴシックおよび源ノ明朝の場合(失敗)

源ノ角ゴシック

源ノ角ゴシックの場合には7ウェイトとも WindowsおよびLinuxの両方で問題なく使用する事ができました。

源ノ明朝

源ノ明朝をWindowsおよびLinuxの両方で使用しようとすると以下のようにフォント名が異なるため上手くいきませんでした。

また、LibreOfficeのフォント置換テーブルではフォントを別なものに置換することはできても、太字(ボールド体)に変換することはできませんでした(この理由によって源ノ明朝の使用を断念)。

他の5ウェイト (ExtraLight, Light, Medium, SemiBold, Black) を使用した場合には問題なく使用することができました。

Linuxの場合

このページ の内容を参考にさせて頂きました。

  • 通常の文字:”Source Han Serif JP”を選択
  • ボールド体:”源ノ明朝 JP”を選択

Windowsの場合

  • 通常の文字:”源ノ明朝 JP”を選択
  • ボールド体:”源ノ明朝 JP”を選択後に太字(Ctrl+B)

ワード、エクセル、PDFなどのファイルをテキスト形式として書き出す

経緯

Microsoft Wordのファイル(doc/docx)やopendocument(odt)、 PDFファイルの内容を確認する際に、これらのアプリケーションを開かなくてもすむようにテキスト形式に変換してくれるアプリケーションがあります(antiword, pandoc, pdftotext)。

ただし、

  • doc形式のファイルはantiword
  • docx形式のファイルはpandoc
  • pdfファイルはpdftotext

のようにすべてアプリケーションが異なり、しかも使用オプションも異なります。

そこでこれらのコマンドを1つにまとめてみました。

同時にMicrosoft Excelのファイル(xls/xlsx)やopendocument(ods)もテキスト形式に変更できるようにしてみました。

内容

必要なアプリケーション

  • antiword (doc)
  • pandoc (docx, odt, html)
  • pdftotext (pdf)
  • gnumeric (xls, xlsx, ods => html)
  • w3m (xls, xlsx, ods)

上2つのアプリケーションについては Vine Linux用のrpmパッケージを自分自身で作成してアップロードしています。

シェルスクリプト

GitHub で公開しています。

基本的にファイルの拡張子で分岐し、標準出力に出力するようにしているだけです。

新たなファイルに保存するのは使い勝手が悪いと感じたため標準出力に表示するようにしています。

#!/bin/sh
# require pdftotext (pdf)
# require antiword (doc)
# require pandoc (docx/odt/html/tex)
# require gnumeric and w3m (xls/xlsx)

set -e

if [ $# -eq 0 ]; then
  echo "Need argument(s): pdf, doc(x), xls(x) or ... file(s)" 1>&2
  exit 1
fi

for i in $*
do
    if [ -f ${i} ]
    then
       ext="${i##*.}"
       case $ext in
           pdf) pdftotext -raw ${i} - ;;
           doc) LANG=ja_JP.utf8 antiword -w 0 ${i} ;;
           docx|odt|html|htm|tex) pandoc -t plain ${i} ;;
           xls|xlsx|ods) tmpfile=$(mktemp).html ;
                         ssconvert -T Gnumeric_html:xhtml ${i} ${tmpfile} 2> /dev/null ;
                         w3m -dump ${tmpfile} ;
                         rm -f ${tmpfile} ;;
           *)    ;;
       esac
    fi
done

doc

Emacs上で antiword を使用したときに”LANG=ja_JP.utf8″ をつけないと文字化けしたため、環境変数を一時的に設定しています。

docx/odt/html/htm/tex

pandoc の機能をそのまま使用しているだけなので、必要に応じて対応している形式を追加すればいいです。

xls/xlsx/ods

今回苦労したのがこれらのスプレッドシートです。

調べていると gnumeric に含まれる ssconvert というコマンドで html形式に変換できることが分かったため、それを使用しました。 html形式に変換した後に w3m の-dumpオプションでテキスト形式に変換しています。

pandocでhtmlをテキスト形式に変換すると表のレイアウトが崩れてしまったため、今回はw3mを使用しています。

使用法

実行権限をつけて

convertdoc file1 file2 ...

のようにすると、全てのファイルがつながって標準出力に表示されます。

存在しないファイルおよび対応していないファイルは無視されます。エラーも出ないようにしています。

応用

以下のようなelispスクリプトを書き、 M-x my-convertdoc の後に開きたいファイルを選択するとファイルの内容を確認することができます。

Emacs上でMewを使用しており、添付ファイルの内容を確認したかったというのがそもそもの始まりです。

添付ファイルを保存してから M-x my-convertdoc コマンドを実行しなければならないため手間はかかりますが、それでも楽になりました。

elispスクリプト

(defvar my-convertdoc-command "convertdoc")
(defvar my-convertdoc-defaultdir "~/ramdisk/") ;; デフォルトのフォルダ(任意の場所)

(require 'f)

(defun my-convertdoc (file)
  (interactive
   (list (read-file-name "Input file name: "
                         my-convertdoc-defaultdir nil t)))
  (my-convertdoc-file file))

(defun my-convertdoc-file (file)
  (let ((filename (shell-quote-argument (f-expand file)))
        (buf "*ConvertDoc*")
        (resize-mini-windows nil))
      (shell-command
       (format "%s %s" my-convertdoc-command filename) buf)
      (with-current-buffer buf
        (view-mode))))

カスタムメニューの内容をpecoで選択するためのスクリプトを作成

経緯

以前はfluxboxを使用しており、右クリックでメニューが出てきました。そのメニューはファイルを書き換えることでカスタマイズできました。

現在xmonadに移行しており、いくつかのキーにアプリケーションを割り当てています。

割り当てるアプリケーションが多くなると覚えるのが大変なので、カスタマイズできるメニューがないかと探していたのですが見つかりませんでした(探し方が悪いため?)。

そこで自分でスクリプトを書きました。慣れていないので多少時間はかかりました。

内容

Rubyスクリプト

GitHub で公開しています。

#!/usr/bin/env ruby
# coding: utf-8

# peco binary
PECO = File.expand_path "/usr/bin/peco"

# terminal emulator (xterm/urxvt/mlterm)
XTERM = "mlterm"

# menu list
menufile = File.expand_path "~/.mymenu"


require 'tempfile'

class MyMenu
  def initialize(menufile)
    @menufile = menufile
    @appfilepath = Tempfile.new("tmpnew").path
    @hash = Hash.new
  end

  protected

  def set_hash_and_list
    io1 = File.open(@menufile, "r")     # filelist
    io2 = File.open(@appfilepath, "w")  # list of application name

    io1.each {|line|
      line.strip!
      line.chomp!
      next if line == "" || (/^#/ =~ line)

      rows = line.split(/,/)
      rows[1] = rows[0] if rows[1].nil?
      @hash.store(rows[0], rows[1])
      io2.puts rows[0]
    }
    io1.close
    io2.close
  end

  def exec_peco
    out = Tempfile.new("peco-out")
    err = Tempfile.new("peco-err")
    system "#{XTERM} -e sh -c '#{PECO} #{@appfilepath} > #{out.path} 2> #{err.path}'"

    res = `cat #{out.path}`
    if res != ""
      app = @hash[res.chomp!]
      system("#{app} &")
    end
  end

  public

  def exec_MyMenu
    self.set_hash_and_list
    self.exec_peco
  end
end


mymenu = MyMenu.new(menufile)
mymenu.exec_MyMenu

このスクリプトの後半はるびきち様が公開している peco を参考にさせて頂きました。というよりもそのまま使用させて頂きました。

設定

mymenu.rb

XTERM に使用したいターミナルエミュレーターを指定します。

  • xterm/urxvt/mlterm であれば大丈夫でした。
  • gnome-terminal/lxterminal は失敗しました。

~/.mymenu

~/.mymenu を作成し、以下のように記載します。 このファイルが存在しないとエラーが出ます。

FD, gnome-terminal -e fd
R, lxterminal -e R
leafpad

メニューに表示したい内容と実行するコマンドをカンマで区切って記載するだけです。

  • カンマの左側に記載した内容がメニューに表示されます。
  • カンマの右側に記載した内容が実行されます。
    • 省略した場合には左側の内容がそのままコマンドとして実行されます。
    • ターミナルで実行したい場合には “(使用したいターミナル) -e (実行したいコマンド)” のように記載します。

使用法

mymenu.rbを好きなキーに割り当てます。

あとは好きなように絞り込みをするだけです。

Hit-a-Hint の設定をしておけば、「@」を押した後に候補の左端に表示されている文字を打ち込むことで即座に選択できるようになります。

xmonadでmagitを使用してコミット後に画面が固まったように見えたら

Emacsでmagitを使用しています。

ウィンドウマネージャとしてxmonadを使用し始めてからコミット時に画面が固まったようになりました。

このような場合には、ワークスペースを切り換えてから戻すと元のmagitの画面に戻ります。

(解決法が見つかったのですが偶然です)

xmobarのステータスバー上に新着メール数を表示する

経緯

これまではconkyで、自宅、職場、Gmailの新着メール数を表示させていました。

タイル型ウィンドウマネージャであるxmonadに移行する場合、 conkyの表示か隠されてしまうため使いにくいです。そこでステータスバーであるxmobar上に新着メール数を表示することができるようになったため、その方法をメモしておきます。

方法

xmobarにテキストを渡せばその通りに表示してくれるため、「新着メール数を含む文字列」を表示するスクリプトを作成しました。

checkmail.rbスクリプト

GitHub にスクリプトを置いています。

サーバ名、ユーザ名、パスワードを各個人の設定に合わせて変更します。この時、” “ではなく’ ‘で囲んだ方がいいです ” “で囲んだ場合、@があるとうまくいかないためです(\@とすればOK)。

使用方法は説明がなくても分かると思います。第4引数は、POP3であれば”pop3″、GmailなどのIMAPであれば”imap”を指定します。

最終行で文字列を表示させるので自由に変更します。

#!/usr/bin/env ruby
# coding: utf-8

require 'net/pop'
require 'net/imap'

$server1 = '******'
$name1 = '******'
$pass1 = '******'

$server2 = 'imap.gmail.com'
$name2 = '******@gmail.com'
$pass2 = '******'

########################################
# function
########################################

def get_n_mail (server, name, pass, connect)
  case connect
  when "pop3"
    pop = Net::POP3.new(server, 110)
    pop.start(name, pass)
    n = pop.n_mails
    pop.finish
    return n
  when "imap"
    imap = Net::IMAP.new(server, 993, true)
    imap.login(name, pass)
    imap.select('INBOX')
    search_criterias = ['UNSEEN']
    n = imap.search(search_criterias).length
    imap.logout
    imap.disconnect
    return n
  else
    # do nothing
  end
end


########################################
# get numbers of mail
########################################

n1 = get_n_mail($server1, $name1, $pass1, "pop3")
n2 = get_n_mail($server2, $name2, $pass2, "imap")


########################################
# Result
########################################

printf "mail1:%d/mail2:%d", n1, n2

なぜRubyでスクリプトを作成したのかというと、

require 'net/pop'
require 'net/imap'

でPOP3とIMAPの両方を扱えることが分かったからです。

※ただしVine Linux 6のRubyのバージョンが古く(1.8.7)このままではエラーが出るため、 ruby-opensshパッケージをインストールする必要がありました。

sudo apt-get install ruby-openssh

ただし、これとは別にRuby-2.2.0をインストールしているのですが、この場合は新たにパッケージをインストールしなくても動作しました。

.xmobarrcの設定

先程のcheckmail.rbを ~/.xmonad/ に置きます(場所は任意)。

commandsの所に

,Run Com ".xmonad/checkmail.rb" ["&"] "mail" 3000

を追加し、

template = " %StdinReader% }{ [<fc=#ff00ff>%mail%</fc>]",

などのように設定すれば完了です。

この場合は300秒(5分)ごとにサーバに確認し、新着メール数を返します。

感想

これでxmonadに移行することができそうです。

あとはステータスバーにアイコンを表示させることができればOKです。

Vine Linux用にghcおよびhaskell-platformのrpmパッケージを作成

久しぶりの記事です。

経緯

以前、 ghc-7.6.3およびhaskell-platform-2013.2.0.0をインストールしたという記事を書きました。その後、rpmパッケージを作成して公式レポジトリにアップロードしました。そもそもはHaskellで書かれた pandoc rpmパッケージ化したいという思いで始めたものです。

その時の思い出のような記事です。

パッケージ化

ghc-7.6.3およびhaskell-2013.2.0.0

野良ビルドに成功していることもあり、このバージョンは比較的楽にパッケージ化できました。前回はghcのバイナリパッケージをそのまま使用していましたが、今回はVine Linux上でビルドしたパッケージを作成する必要があります。そのため、まずghc-bootstrapパッケージを作成しました(バイナリパッケージをダウンロードして configure & make するだけのパッケージ)。

ところがghc-7.6.3はgmp4である必要があるため、 Vine6ではこのままで動作しますが、VineSeedでは動作しません(gmp5のため)。そのため、VineSeed用にgmp4を提供するghc-bootstrap-gmpパッケージを作成しました。ここまでくればghc自身とhaskell-platformのビルドは簡単でした。

しかし、思わぬ所で罠が待っていました。

自分自身でビルドして使用している時には問題はなかったのですが、 rpmパッケージとしてレポジトリにアップロードして数日経った頃に『「Provides: libffi.so.6」を外して頂けませんでしょうか?』との依頼がありました(当該Vine Linux MLアーカイブ)。

パッチを教えてもらったものの、パッチを当てただけではビルド時にエラーが出てしまいかなり思考錯誤しました。ただ、1回のビルドに40分位かかるためなかなか先に進みませんでした。ソースコードを確認したりで大変でした(今さらghc-7.6.3をビルドする人はいないでしょうから細かな内容は省略します)。

ビルド時に「libffiを外部ライブラリとして使用する」ように設定ファイルが作成されるはずが何故かされなかったため、外部ライブラリとして使用するように決め打ちしたパッチを作成することでとりあえず乗り切りました。

ghc-7.10.3およびhaskell-7.10.3

とはいうものの、バージョンが古いのが気にかかっていました。自分自身では使用する気がないのですが、 stack というシステムを使用するにはバージョンが新しい方がいいようでした。

以前からこのバージョンのビルドを試みていたのですが、 ghcはビルドできるのに対して、haskell-platformのビルド時に「ghcの”BINDIST”(バイナリパッケージ)が必要」なため先に進んでいませんでした。公式ホームページでghc-7.10.3のバイナリパッケージをダウンロードして指定しても、 glibcのバージョンが合わないためビルドに失敗しました。

このような時に色々調べていくうち、この ページ で”make binary-dist”コマンドを知り、これでVine Linux上でビルドしたバイナリパッケージを作成できるのではないかと思い試したところ正解でした。そこでghcパッケージの作成時に同時にghc-bindistパッケージを作成するようにして、これを使用してhaskell-platformをビルドしました。これでようやくバージョンアップをする事ができました。

感想

Haskellでプログラミングをするつもりは全くないのですが、 pandocをパッケージ化したいという事だけで ghcおよびhaskell-platformをrpmパッケージ化してしまいました。

Vine Linuxでghcおよびhaskell-platformを必要とする方がどれ位いるか分かりません。それでもお役に立てれば幸いです。ただし当分はバージョンアップする予定はありません。

ついでにHaskellで書かれたタイル型ウインドウマネージャである xmonad および関連パッケージをアップロードしました。 以前 はxmonadを「少し使用してみましたが慣れません。」と書きましたが、今はfluxboxからxmonadに移行しつつあります。

xmobar(メニューバー)で新着メール数(数だけ)を表示させる方法が分かったため完全に移行できそうです。余裕のある時に記事にする予定です。

久しぶりにウィルススキャンをしてみたら……

久しぶりにclamavで自宅コンピュータのウィルススキャンをしてみました。

clamscan -ri ~

すると1個だけウィルス感染ファイルが検出されました。

./(path)/LineInst.exe: Win.Trojan.Nimnul-22 FOUND

今はLINEをアカウントごと削除していることもあり、ファイルを速攻で削除しました。

CORESERVERにGitPrepをインストールするも失敗

経緯

現在契約しているCORESERVERに GitPrep (GitHubクローン)をインストールして使用しようとしましたが、結局うまくいかなかったという報告です。

インストール操作

Gitのインストール

CORESERVERにはgitがインストールされていないため、まずそこから始めました。

git-2.6.2(現時点での最新版)のソースコードをダウンロードし、以下のようにインストールしました。

tar xzf git-2.6.2.tar.gz
cd git-2.6.2
make configure
./configure --prefix=$HOME/local
make
make install

その後、.bashrcに

export PATH=$HOME/local/bin:$PATH

の行を追加してパスを通しました。

GitPrepのインストールおよび設定

以下の順にインストールおよび設定を行いました。

  1. ソースコード(当時の最新版であるバージョン1.10)をダウンロードし、ホームページの内容に従ってインストール
  2. gitprep.my.confを作成し、インストールされたgitの場所などを適切に指定
  3. http://arat.xyz/gitprep/gitprep.cgi にアクセスし、adminユーザーおよび一般ユーザーを作成

ここまでは正しく動作しました。

一般ユーザーでログインした後に、「Initialize this repository with a README」にチェックを入れて新規レポジトリを作成しようとすると、「Internal error」が表示されてしまいレポジトリの作成に失敗してしまいました。

原因の究明

経過をGitPrepの作者である木本さんに連絡するなどして原因を明らかにしようとしました。

現時点で分ったことは以下の通りです。

  1. 新規レポジトリ作成時にgit pushを行うが、 CGIプログラムとして動かした場合にエラーが出る。
    • サーバにSSH接続してコマンドラインから同じことを行ってもエラーは出ずに正しく動作する。
    • CGIプログラムではなく、localhost:10020でアクセスして使用する方法では何の問題もなく使用できる。
  2. かなりの試行錯誤の結果、簡単なシェルスクリプト(CGI)を書いて、 webから実行してエラーメッセージを表示させたところ、 git push時に以下のエラーが出ました(ちなみにCGIプログラムをコマンドラインから直接実行するとエラーは出ませんでした)。
error: cannot create thread: Cannot allocate memory
fatal: send-pack: unable to fork off sideband demultiplexer
error: cannot create thread: Cannot allocate memory
fatal: bad object 13f4ebbd6ef5a638511e543e16b0ebc544695403

つまり、 CGIプログラムでgit pushを実行させた際に新たなスレッドが作成されないのが原因のようです。 Apacheの設定が関係しているのかもしれません。

これ以上は自分での解決は無理と判断したので、これまでの内容をCORESERVERのサポートに伝えました。ただし、Apacheの設定を変更するなどの処置が必要になるかもしれないため解決は難しいかもしれません。

現在はさくらレンタルサーバのスタンダード(無料お試し)上で動かしているため、問題なく動作しています。 CORESERVERのサポートからの回答次第ではさくらレンタルサーバに完全移行することも考えています。

Vine Linux 6.3でgitを私的rpmパッケージ化

経緯

Emacs-24.5でMELPAからmagitをインストールして使用しています。

しかし、いつの頃からか.gitフォルダが存在していても認識されなくなりした。

調べてみるとログには以下のように書かれていました。

Also note that starting with the ‘2.1.0’ release, Magit requires at least Emacs ‘24.4’ and Git ‘1.9.4’. You should make sure you have at least these releases installed before updating Magit. And if you connect to remote hosts using Tramp, then you should also make sure to install a recent enough Git version on these hosts.

そこで Vine Linux 6.3のgitのバージョンを調べてみると

$ rpm -qa | grep git
git-1.7.4.2-1vl6.x86_64

とやはり対応していませんでした。

gitのビルド

ソースコードからのビルド

そこでソースコードからビルドしました。今回インストールしたgitのバージョンは2.5.3です。

ソースコードは GitHub からダウンロードしました。

tar xzf git-2.5.3.tar.gz
cd git-2.5.3
make prefix=/usr/local all
sudo make prefix=/usr/local install

で/usr/local以下にインストールされます。

この状態でmagitをアップグレードすると動作するようになりました。

私的パッケージ化

せっかくなのでrpmパッケージ化しました。本来のパッケージと名前を区別するために my_git としています。

からダウンロードできます。

/usr/local以下にインストールされるため、本来のパッケージに含まれるファイルを上書きすることはありません。

Vine Linuxでタイル型ウィンドウマネージャ(ratpoisonとawesome)を私的パッケージ化

経緯

Vine Linuxにはタイル型ウィンドウマネージャのパッケージが存在していません。

そこで全くの個人的な興味から、タイル型ウィンドウマネージャとして ratpoison (version 1.4.8)と awesome (version 3.5.6)をパッケージ化したのでrpmファイルをアップロードします。

ただし個人的には fluxbox (version 1.3.5)をカスタマイズして愛用しています。

インストール

ダウンロード先

このページ から適切なrpmファイルをダウンロードしてインストールして下さい。

  • Vine Linux6ならVine6
  • VineSeed(次期Vine Linux7)ならVine7

のページに進み、さらに

  • 32ビット環境であればi686
  • 64ビット環境であればx86_64

のページに進みます。

ratpoison

Vine Linux6とVineSeed(Vine Linux7)用のパッケージを用意しました。

  • ratpoison-1.4.8-***.rpm

をダウンロードしてインストールします。

awesome

VineSeed(Vine Linux7)用のパッケージだけを用意しました。 Vine Linux6では依存パッケージのバージョンが古いためビルドできませんでした。

  • lgi-0.9.0-1vl7.***.rpm
  • awesome-3.5.6-1vl7.***.rpm

の2つのパッケージをダウンロードします。先にlgi(awesomeの依存パッケージ)をインストールしてから awesomeをインストールします。

注意事項

使用方法

ここでは操作方法については書きませんが、他のページで十分調べてから使用するようにして下さい。特に「ログアウト」の方法を知らずにログインしてしまうと大変です(経験済みです)。

責任回避のようなもの

今回はあくまでも私的にパッケージ化したものであり、 Vine Linuxのオフィシャルなものではありません。ですのでパッケージの説明文は非常にいいかげんなものです。また、ライセンスの記載も正しくないものも含まれています。

また、使用した事によって生じた不具合などについては責任を取ることはできません。