2008年2月アーカイブ
TeXで数式を書くとき、上下の行間をもう少し詰めたいと思うときがあると思います。そんなときは、次のように設定することで行間を変更することができます。
【参考文献】
[web] 数式の上下の空白 - IMAKOV's WORLD
\documentclass{jarticle}
\usepackage{amsmath}
\begin{document}
\setlength{\abovedisplayskip}{2pt} % 上部のマージン
\setlength{\belowdisplayskip}{2pt} % 下部のマージン
\end{document}
【参考文献】
[web] 数式の上下の空白 - IMAKOV's WORLD
TeXで論文などを書くとき、非常に大きな表では枚数制限に引っかかってしまうなどということが起き得ます。そんな時になんとかして表を小さくするときに使われる方法を紹介します。
一番簡単な方法は、表に書かれている文字を小さくしてしまうことでしょう。通常、文字を小さくするときは \small を用いますが、単純に \small を書いただけでは表の文字は小さくなりません。実は、tabular環境の前に \small を書くことで文字を小さくすることができます。
一番簡単な方法は、表に書かれている文字を小さくしてしまうことでしょう。通常、文字を小さくするときは \small を用いますが、単純に \small を書いただけでは表の文字は小さくなりません。実は、tabular環境の前に \small を書くことで文字を小さくすることができます。
\begin{table}[tb]
\begin{center}
\small % こんな感じ
\begin{tabular}{|c|c|c}
\hline
a & b & c \\ \hline
\end{tabular}
\end{center}
\end{table}
TeXのキャプション(題名)に付いている「図1」などの、「図」の部分を「Fig」に変更するには次の1行をプリアンブルに追加します。
【参考文献】
[web] \renewcommand - @KUMAZAWA Yoshiki
\renewcommand{\figurename}{Fig}
【参考文献】
[web] \renewcommand - @KUMAZAWA Yoshiki
TeXの文章の一部分を右寄せ・左寄せ・センタリングしたいと思うことは非常に多いと思います。ここでは、表中の文字など以外の、普通のテキストを右寄せ・左寄せ・センタリングする方法を紹介します。
右寄せ・左寄せ・センタリングするには、以下の環境を用いれば実現できます。
【参考文献】
[web] 左寄せ・右寄せ・センタリング - LaTeX ONLINE MANUAL
右寄せ・左寄せ・センタリングするには、以下の環境を用いれば実現できます。
- 右寄せ - flushright
- センタリング - center
- 左寄せ - flushleft
\begin{flushright}
右寄せする場合はこのように記述します。
\end{flushright}
【参考文献】
[web] 左寄せ・右寄せ・センタリング - LaTeX ONLINE MANUAL
TeXで作成した文章には脚注をつけることができます(例えばこんな感じ。) 。 しかし論文の1枚目などで、著者の所属として同じ脚注番号を付加する場合はどうすればいいのでしょうか。以下にその方法を示します。
まず、単純に脚注を付けるには、footnoteコマンドを使います。
【参考文献】
[web] Introduction to LaTeX: section 14
[web] 3.4 脚注
まず、単純に脚注を付けるには、footnoteコマンドを使います。
たとえば、こんな感じの文に脚注をつける。\footnote{この中が脚注。}
こうすることで、ページの一番下に脚注が表示されるようになります。で、いくつもfootnoteコマンドで脚注を追加していくと、追加した数だけ脚注番号が増えていくことになります。しかし、同じ内容の脚注を付けたい場合は、数字だけ同じにして脚注をまとめてしまいたいと考えると思います。そんなときは、footnotemarkコマンドを利用します。1つ目の文章です。\footnote{脚注です。}
2つ目の文章です。\footnotemark[1]
footnotemarkは、脚注の番号を振るためのコマンドです。大括弧の中に番号を指定することで、任意の番号を付加することができます。同じ要領でfootnoteにも任意の番号を振ることができます。【参考文献】
[web] Introduction to LaTeX: section 14
[web] 3.4 脚注
LDAP(Lightweight Directory Access Protocol) はユーザ情報(例えばアカウント名やパスワード、メールアドレスなど) を管理するサービスのことです。複数台のマシンでこれらの情報を共有する必要がある場合によく用いられるサービスの1つです。ここでは、Debian LinuxをLDAPクライアントとして動作させるための方法を記述します。
以降では、ldap-utils、libnss-ldap、libpam-ldapをインストールして設定する手順を説明しています。slapdはLDAPサーバなので、自分自身をLDAPサーバにしない場合はインストールしなくてもかまいません。
ldap-utilsは、LDAPの内容を書き換える際に必要になるパッケージです。ただ単に参照するだけの場合はインストールする必要はありません。libnss-ldapはName Service Switchを利用する場合は必要となります。また、libpam-ldapは、平文をパスワードに用いるアプリケーション(例えば、sambaなど) にLDAPの情報を与えたい時や、ユーザがpasswdコマンドを使ってパスワードを変更したい場合は必要になります。
これらをインストールしたら、それぞれの設定ファイルを修正します。
common → /etc/nsswitch.conf , /etc/ldap/ldap.conf
libnss-ldap → /etc/libnss-ldap.conf
libpam-ldap → /etc/pam_ldap.conf , /etc/pam.d/common-***
修正の仕方については、参考文献を参照してください。
気をつけるべき点としては、DN(Domain Name)を記述するときに、ダブルクォートで囲まないこととLDAPの記述形式で書かなければいけない点でしょう。
設定ファイルが変更できたら、次のコマンドなどで動作を確認できます。アカウント情報が取得できればOKです。
【参考文献】
[web] http://www.softclub.co.jp/~zoro/woody/nss.html
[web] LDAPとは - IT用語辞典
[web] LDAP認証 - Junk Shop "ぺんぎんの小部屋"
[web] NSSとは - bnote
[web] APTとdpkgの使い方
[web] LDAPによるパスワードの一元管理
以降では、ldap-utils、libnss-ldap、libpam-ldapをインストールして設定する手順を説明しています。slapdはLDAPサーバなので、自分自身をLDAPサーバにしない場合はインストールしなくてもかまいません。
# aptitude install ldap-utils libnss-ldap libpam-ldapここで、簡単にそれぞれのパッケージの説明をしておきます。
ldap-utilsは、LDAPの内容を書き換える際に必要になるパッケージです。ただ単に参照するだけの場合はインストールする必要はありません。libnss-ldapはName Service Switchを利用する場合は必要となります。また、libpam-ldapは、平文をパスワードに用いるアプリケーション
これらをインストールしたら、それぞれの設定ファイルを修正します。
common → /etc/nsswitch.conf , /etc/ldap/ldap.conf
libnss-ldap → /etc/libnss-ldap.conf
libpam-ldap → /etc/pam_ldap.conf , /etc/pam.d/common-***
修正の仕方については、参考文献を参照してください。
気をつけるべき点としては、DN(Domain Name)を記述するときに、ダブルクォートで囲まないこととLDAPの記述形式で書かなければいけない点でしょう。
設定ファイルが変更できたら、次のコマンドなどで動作を確認できます。アカウント情報が取得できればOKです。
$ ldapsearch -x
【参考文献】
[web] http://www.softclub.co.jp/~zoro/woody/nss.html
[web] LDAPとは - IT用語辞典
[web] LDAP認証 - Junk Shop "ぺんぎんの小部屋"
[web] NSSとは - bnote
[web] APTとdpkgの使い方
[web] LDAPによるパスワードの一元管理
Debian Linuxでは、パッケージの追加や更新の利便性のために、多くのミラーサイトが存在します。apt-getコマンドやaptitudeコマンドが参照するミラーサイトを追加するには次のようにします。
【参照文献】
[web] ミラーサイト - Debian JP Project
[web] Debian パッケージ管理 - Debian リファレンス
[web] Debianでのパッケージ管理の基本設定 - UNIXな生活
$ sudo aptitude install apt-spyこれによって、/etc/apt/sources.list の中に速度の速いミラーサイトが追加されています。apt-spyを実行した直後では、mainセクションのものだけしか取得できないので、他のパッケー ジも必要ならばミラーサイトのURLの後ろに、「contrib」や「non-free」をスペース区切りで追加するといいでしょう。
$ sudo apt-spy -s jp -stable
【参照文献】
[web] ミラーサイト - Debian JP Project
[web] Debian パッケージ管理 - Debian リファレンス
[web] Debianでのパッケージ管理の基本設定 - UNIXな生活
TeXを使って論文を書こうとするとき、よく2段組や他段組で表記する場合はけっこうあります。そんなときの対処方法をメモしておきます。
常時2段組をするときは、一番初めのスタイルの宣言で次のように書けばOKです。
【参考文献】
[web] 2段組する - 廃品利用研究所
常時2段組をするときは、一番初めのスタイルの宣言で次のように書けばOKです。
\documentclass[twocolumn]{jarticle}また、文章の途中から段組をしたい場合は次のように書くことで、改頁されたあと2段組になります。\twocolumn途中からで改頁なしで段組を行いたい場合は、多段組を実現するパッケージを追加し、文章中で次のように書きます。
\usepackage{multicol} % パッケージの追加
% begin{document} の後で、
\begin{multicols}{2}
% 2段組される文章
\end{multicols}{2}
指定する数字を増やすことで多段組も実現することができます。【参考文献】
[web] 2段組する - 廃品利用研究所
Debian Linuxで環境変数LANGを全てのユーザに対して設定したいときは、次のようにします。
/etc/environment
参考にしたURLは以下の通りです。
[web] Debian 活用
/etc/environment
LANG=ja
参考にしたURLは以下の通りです。
[web] Debian 活用
JavaのLogging APIは、通常の開発の場面ではもちろん、常時動作するサーバなどの用途でも用いられるログ出力用のAPIです。最近このAPIに興味を持ったので、ちょっと調べてみました。
[web] Java Loggin API
[web] JavaでHello World ログ機能編
で、具体的な使い方については上のURLを参照していただくとして、ここでは1回のログ出力を1行にまとめるHanlderを掲載します。デフォルトのログフォーマットは複数行にわたって出力されることが多いのですが、これだとシェルでgrep検索をするときにちょっと面倒です。
そこで、Java Logging APIというページでも紹介されているFormatterを少し改善して、Java6でも使えるものを紹介します。(Java Logging APIで紹介されているMyFormatterクラスでは、Java 1.4beta2ですでにJava APIから削除されたメソッドが使用されています。)
[web] Java Loggin API
[web] JavaでHello World ログ機能編
で、具体的な使い方については上のURLを参照していただくとして、ここでは1回のログ出力を1行にまとめるHanlderを掲載します。デフォルトのログフォーマットは複数行にわたって出力されることが多いのですが、これだとシェルでgrep検索をするときにちょっと面倒です。
そこで、Java Logging APIというページでも紹介されているFormatterを少し改善して、Java6でも使えるものを紹介します。
import java.util.logging.Formatter;
final class MyFormatter extends Formatter {
private Calendar calendar = Calendar.getInstance();
public synchronized String format(LogRecord record) {
StringBuilder message = new StringBuilder(100);
calendar.setTimeInMillis(record.getMillis());
message.append(
String.format(
"%1$tD %1$tT %2$s ",
calendar,
record.getLevel().toString()));
if (null != record.getSourceClassName()) {
message.append(
record.getSourceClassName());
} else {
message.append(
record.getLoggerName());
}
message.append(' ');
if (null != record.getSourceMethodName()) {
message.append(
String.format(
"[%s]",
record.getSourceMethodName()));
}
message.append(' ');
message.append(formatMessage(record));
message.append('\n');
if (null != record.getThrown()) {
message.append(
record.getThrown());
}
return message.toString();
}
}
あとは、これを出力先のHandlerに与えればOKです。
