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)

Vine LinuxのRでR commanderを使用できるように変更

VineSeedのRではR commanderを使用することができましたが、 Vine Linux 6では使用することができませんでした。

R commanderを使用するためには tcl-8.5/tk-8.5 が必要なのですが、 Vine Linux 6ではバージョンが8.4だったためです。

そこでtcl85/tk85パッケージを作成することで R commanderを使用することができるようになりました。

※ただし、現状の6.3ではproposed-updatesを適用する必要があります。 6.5βではそのままで使用できます。

sudo apt-get install apt-sourceslist-proposed-updates # 6.3の場合に必要
sudo apt-get update
sudo apt-get install R

これで使用者が少しでも増えるといいです(願望)。

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のオフィシャルなものではありません。ですのでパッケージの説明文は非常にいいかげんなものです。また、ライセンスの記載も正しくないものも含まれています。

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

Haskell環境およびpandocをVine Linux 6.3(64-bit)に導入する

追記(2016.2.21)

Vine Linux 6 およびVineSeedにrpmパッケージをアップロードしました。したがって以下の記事は過去の記録程度の意味となりました。

現時点では

  • ghc-7.10.3(現時点での最新版)
  • haskell-platform-2015.7.10.3(公式のバージョンは7.10.3)
    • alex, cabal-install, happy, hscolour
  • pandoc, pandoc-citeproc, pandoc-crossref

のパッケージをアップロードしています(ここに至るまでの試行錯誤が大変でした)。

経緯

個人的な興味から pandocをインストールした際のメモです。

pandocについてはこの スライド (73ページ以降)で知りました。

また、るびきち様のこのページ にもpandocを使用した例が載っています。

pandocはHaskell言語で書かれているためまずHaskell処理系のインストールから始めました。 Haskell処理系のインストールは こちらのページ を参考にしました。

インストール手順

今回はバージョンは古いですが、

をインストールしました(私の環境では最新版をインストールしようとすると失敗しました)。

ghcのインストール

tar xzf ghc-7.6.3-x86_64-unknown-linux.tar.bz2
cd ghc-7.6.3
./configure
sudo make install

で /usr/local 以下にインストールされます。 ghc-7.6.3では make は行なわず、いきなり sudo make install を行います。

haskell-platformのインストール

まずhaskell-platformのビルドに必要な gmp-devel、zlib-devel、freeglut-devel をインストールしておきます。

sudo apt-get install gmp-devel zlib-devel freeglut-devel

次に

tar xzf haskell-platform-2013.2.0.0.tar.gz
cd haskell-platform-2013.2.0.0

で展開および移動します。

このままではビルド時にエラーが出るため、 script/build.sh の69行目を

# GHC_PACKAGE_PATH="${ORIG_GHC_PACKAGE_PATH}" \

このようにコメントアウトします。

その後

./configure
make
sudo make install

でインストールします。

これでHaskell処理系がインストールされました。

cabalのアップグレード

次にcabal自体をアップグレードします。

システム全体で使用したいため、以下のようにオプションを付けてインストールします。

su
cabal update
cabal install cabal-install --global

これで現時点での最新版(1.22.6.0)が /usr/local 以下にインストールされます。

pandocのインストール

cabal-installと同様にシステム全体で使用したいため

su
cabal install pandoc --global

でインストールします。

以上です。

余談

pandoc vs. org-mode(Emacs)

ただし現時点でpandocを使用する機会はほとんどありません。 Emacsの org-mode で文章を作成し、(lualatexを使用して)直接PDFファイルに変換することが多いです。

xmonad vs. fluxbox

また、タイル型ウィンドウマネージャーの xmonad

su
cabal install xmonad --global
cabal install xmonad-contrib --global
cabal install xmobar --global

のようにしてインストールしてみました。評判はいいので少し使用してみましたが慣れません。個人的には fluxbox が好きなのでメニューなどをカスタマイズして常用しています。

Linuxのバックアップについて(メモ)

経緯

最近自宅のノートパソコンのHDDをSSDに換装しましたが、環境の移行をなるべくスムーズに行えるようにしたかったので以下の方法をとりました。

このおかげで復旧を楽に終わらせることができました。

バックアップの作成

シンボリックリンクは外付けHDDにバックアップすることができなかったためファイルをまとめて圧縮してから保存しました。

今回は7z形式で圧縮していますが、 tar.gzでもいいです。

ホームディレクトリに存在するファイル

適度なファイルサイズになるように分割して圧縮しました。

ホームディレクトリのドットファイル(重要)

ホームディレクトリに存在するドットファイルは

7za a dotfiles-(日付).7z ~/.[a-zA-Z0-9]*

のようにしてバックアップをとりました。むしろこちらの方が重要かもしれません。

解凍は

7za x dotfiles-(日付).7z

で行います。

上書きが怖い場合には別のフォルダで解凍してから必要なファイルを移動すればいいと思います。

/usr/local

7za a usr_local-(日付).7z /usr/local

のようにしてバックアップを作成しました。

ちなみに

  • Emacs
  • gcc-4.8.3およびそのクロスコンパイラ(以前に自分でビルドしたもの)
  • texlive

などが /usr/local以下にインストールされています。

実は texliveに関してはsquashfs形式で圧縮して /usr/local/texlive/2014にマウントしているのですが、それについてはここでは省略します。

インストール済のパッケージ

依存するパッケージに関しては手書きのメモを残しておいたのでそれをもとにインストールしました。

不足分は思い出したときにインストールします(汗)

起動時にNumLockを有効にする

Linuxの起動時にNumLockを有効にしておきたいので調べたところ、 numlockx というプログラムが紹介されていたためインストールしました。 その時のメモです。

numlockxの導入

Vine Linuxにはnumlockxパッケージがないためソースコードからインストールしました。

ソースコードのダウンロード

DebianやArch Linuxのパッケージなどはすぐに情報が見つかるのですが、ソースコードの場所を探すのに時間がかかりました。結局はGitHubで見つけました。

今回は https://github.com/rg3/numlockx/releases からソースコードをダウンロードしました(.tar.gzと.zip形式があるので好きな方を)。

パッケージのインストール

解凍してからディレクトリに移動して

./configure --prefix=/usr/local
make
sudo make install

で完了です。終了まで1分もかかりませんでした。

ただし

./configure

では /usr/bin/以下にインストールされてしまったため –prefix=/usr/local をつけました。

自動起動するための設定

/etc/rc.localの最後の方に以下の内容を追加します。

if [ -x /usr/local/bin/numlockx ]; then
  /usr/local/bin/numlockx on
fi

メール送信スクリプト

Linuxのコマンドラインからメールを送信するスクリプトを作成(正しくはwebの内容を改変)した。

  • 添付ファイル可能(0でも複数でも)

使用する機会は今の所ほとんどないと思う……

詳しくはwikiで。

#!/bin/bash

############################
## メール添付ファイルスクリプト
## コマンドラインから添付付きメールを送信するスクリプトです.
##
## send_mail.sh {toアドレス} {タイトル} {本文ファイル} [{添付ファイル名}...]
##
############################

## Init section
from_addr='ara_t@po.mdu.ac.jp'
to_addr=$1
subject=`echo $2 | nkf -w -Lu`
mail=`cat $3 | nkf -w -Lu`
shift; shift; shift
boundary=`date +%Y%m%d%H%M%N`

## generate MIME encoded mail
echo "From: $from_addr" > .MIME_MAIL.tmp
echo "To: $to_addr" >> .MIME_MAIL.tmp
echo "Subject: $subject" >> .MIME_MAIL.tmp
echo "MIME-Version: 1.0" >> .MIME_MAIL.tmp
echo "Content-type: multipart/mixed; boundary=\"----$boundary\"" >> .MIME_MAIL.tmp
echo "Content-Transfer-Encoding: 7bit" >> .MIME_MAIL.tmp
echo "" >> .MIME_MAIL.tmp
echo "This is a multi-part message in MIME format." >> .MIME_MAIL.tmp
echo "" >> .MIME_MAIL.tmp

## Insert MAIL_BODY (if you need)
echo "------$boundary" >> .MIME_MAIL.tmp
echo "Content-type: text/plain; charset=utf-8" >> .MIME_MAIL.tmp
echo "Content-Transfer-Encoding: 7bit" >> .MIME_MAIL.tmp
echo "" >> .MIME_MAIL.tmp
echo "$mail" >> .MIME_MAIL.tmp
echo "" >> .MIME_MAIL.tmp

## Attach file to E-Mail
while [ $# -ge 1 ] ; do
  attach_file=$1
  filename=`echo $attach_file | sed -e "s/.*\/\(.*$\)/\1/"`
  content_type=`file --mime $attach_file | cut -d' ' -f2`
  echo "------$boundary" >> .MIME_MAIL.tmp
  echo "Content-type: $content_type" >> .MIME_MAIL.tmp
  echo " name=$filename" >> .MIME_MAIL.tmp
  echo "Content-Transfer-Encoding: base64" >> .MIME_MAIL.tmp
  echo "Content-Disposition : attachment;" >> .MIME_MAIL.tmp
  echo " filename=$filename" >> .MIME_MAIL.tmp
  echo "" >> .MIME_MAIL.tmp
  cat $filename | base64 >> .MIME_MAIL.tmp
  echo "" >> .MIME_MAIL.tmp
  shift
done
echo "------$boundary--" >> .MIME_MAIL.tmp

## Send E-Mail
/usr/sbin/sendmail -i $to_addr < .MIME_MAIL.tmp

## Delete TEMP file
rm -f .MIME_MAIL.tmp

exit 0