diff --git a/ja_JP.eucJP/books/handbook/multimedia/chapter.sgml b/ja_JP.eucJP/books/handbook/multimedia/chapter.sgml index 991d5a72f4..5ded4d2497 100644 --- a/ja_JP.eucJP/books/handbook/multimedia/chapter.sgml +++ b/ja_JP.eucJP/books/handbook/multimedia/chapter.sgml @@ -1,397 +1,397 @@ Moses Moore 寄稿 サウンド この章では - FreeBSD はあなたのコンピュータから原音に忠実な再生を楽しむための, - 数多くの種類のサウンドカードをサポートしています. - これにより, MPEG Audio Layer 3 (MP3) や WAV, Ogg Vorbis などの - 音楽を録音したり再生したりできるようになります. - 加えて FreeBSD Ports コレクションには, あなたが録音した音楽を - 編集したり, 音響効果を加えたり, 接続された MIDI 機器を制御したり - するためのアプリケーションが含まれています. + FreeBSD はあなたのコンピュータから原音に忠実な再生を楽しむための、 + 数多くの種類のサウンドカードをサポートしています。 + これにより、MPEG Audio Layer 3 (MP3) や WAV、Ogg Vorbis などの + 音楽を録音したり再生したりできるようになります。 + 加えて FreeBSD Ports コレクションには、あなたが録音した音楽を + 編集したり、音響効果を加えたり、接続された MIDI 機器を制御したり + するためのアプリケーションが含まれています。 - この章を読めば, 以下のことを知ることができます: + この章を読めば、以下のことを知ることができます: - サウンドカードをインストールする方法. - システムを設定してサウンドカードを認識させる方法. + サウンドカードをインストールする方法 + システムを設定してサウンドカードを認識させる方法 サンプルアプリケーションを利用してサウンドカードが - うまく動いているかどうかをテストする方法. - サウンド関連の設定のトラブルシュート方法. + うまく動いているかどうかをテストする方法 + サウンド関連の設定のトラブルシュート方法 - この章を読む前に, 以下のことを理解しておく必要があります: + この章を読む前に、以下のことを理解しておく必要があります: 新しいカーネルを設定してインストールする方法 (). + linkend="kernelconfig">) 正しいデバイスの確認 PCI ISA サウンドカード - 設定をはじめる前に, あなたが持っているカードのモデル, - そのカードが使用しているチップ, そして PCI, ISA - どちらのカードなのかを確認する必要があります. - FreeBSD は, さまざまな PCI および ISA のカードをサポートしています. - もしあなたのカードが次のリストに無い場合は, - &man.pcm.4; のマニュアルページを確認してください. - これは完全なリストではありませんが, - 良く使われているカードがだいたい含まれています. + 設定をはじめる前に、あなたが持っているカードのモデル、 + そのカードが使用しているチップ、そして PCI、ISA + どちらのカードなのかを確認する必要があります。 + FreeBSD は、さまざまな PCI および ISA のカードをサポートしています。 + もしあなたのカードが次のリストに無い場合は、 + &man.pcm.4; のマニュアルページを確認してください。 + これは完全なリストではありませんが、 + 良く使われているカードがだいたい含まれています。 - Crystal 4237, 4236, 4232, 4231 + Crystal 4237、4236、4232、4231 ヤマハ OPL-SAx OPTi931 Ensoniq AudioPCI 1370/1371 ESS Solo-1/1E NeoMagic 256AV/ZX - Sound Blaster Pro, 16, 32, AWE64, AWE128, Live + Sound Blaster Pro、16、32、AWE64、AWE128、Live Creative ViBRA16 - Advanced Asound 100, 110, および Logic ALS120 + Advanced Asound 100、110、および Logic ALS120 - ES 1868, 1869, 1879, 1888 + ES 1868、1869、1879、1888 Gravis UltraSound Aureal Vortex 1 および 2 カーネル コンフィグレーション - カーネル内で使用するドライバは, - 使用するカードの種類によって異なります. - この節では, それらの詳しい情報と, + カーネル内で使用するドライバは、 + 使用するカードの種類によって異なります。 + この節では、それらの詳しい情報と、 カーネルコンフィグレーションファイルに - 何を追加すれば良いのかについて説明します. + 何を追加すれば良いのかについて説明します。 - Creative, Advance, および ESS 社製サウンドカード + Creative、Advance、および ESS 社製サウンドカード - これらのカードを使用する場合は, - カーネルコンフィグレーションファイルに以下の設定を追加します. + これらのカードを使用する場合は、 + カーネルコンフィグレーションファイルに以下の設定を追加します。 device pcm - PnP の ISA カードを使用する場合は, さらに + PnP の ISA カードを使用する場合は、さらに device sbc - も加えてください. - PnP ではない ISA のカードを使用する場合は, + も加えてください。 + PnP ではない ISA のカードを使用する場合は、 device pcm device sbc0 at isa? port0x220 irq 5 drq 1 flags 0x15 - を加えます. - これらは標準の設定にあわせたものですので, - IRQ などの設定は必要に応じて変更する必要があります. - また, 設定の詳細については, &man.sbc.4; - のマニュアルページを参照してください. + を加えます。 + これらは標準の設定にあわせたものですので、 + IRQ などの設定は必要に応じて変更する必要があります。 + また、設定の詳細については、&man.sbc.4; + のマニュアルページを参照してください。 パッチを適用していない FreeBSD 4.0 は - Sound Blaster Live に対応していません. - また, この文書ではその設定方法については扱いません. - このカードを使用する前に, 最新の -STABLE - にアップデートするようにしてください. + Sound Blaster Live に対応していません。 + また、この文書ではその設定方法については扱いません。 + このカードを使用する前に、最新の -STABLE + にアップデートするようにしてください。 Gravis 社製 UltraSound カード - PnP の ISA カードを使用するには, + PnP の ISA カードを使用するには、 カーネルコンフィグレーションファイルに次の - 2 つの設定を追加します. + 2 つの設定を追加します。 device pcm device gusc - PnP ではない ISA カードの場合には, + PnP ではない ISA カードの場合には、 device pcm device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13 - を加えます. - IRQ などの設定は必要に応じて変更する必要があります. - また, 設定の詳細については, &man.gusc.4; - のマニュアルページを参照してください. + を加えます。 + IRQ などの設定は必要に応じて変更する必要があります。 + また、設定の詳細については、&man.gusc.4; + のマニュアルページを参照してください。 Crystal 社製サウンドカード - Crystal 社製のカードを使用する場合は, + Crystal 社製のカードを使用する場合は、 カーネルコンフィグレーションファイルに device pcm device csa - の両方が必要です. + の両方が必要です。 一般的なカードのサポート - PnP ISA カードや PCI カードを使用する場合は, + PnP ISA カードや PCI カードを使用する場合は、 device pcm - をカーネルコンフィグレーションファイルに追加します. - ブリッジドライバを持たない, PnP 非対応の ISA - カードの場合は, + をカーネルコンフィグレーションファイルに追加します。 + ブリッジドライバを持たない、PnP 非対応の ISA + カードの場合は、 device pcm0 at isa? irq 10 drq 1 flags 0x0 - を加えます. - IRQ などの設定は, - ハードウェアの設定に合うように必要に応じて変更してください. + を加えます。 + IRQ などの設定は、 + ハードウェアの設定に合うように必要に応じて変更してください。 カーネルの再構築 - 必要な設定をカーネルコンフィグレーションファイルに追加したら, - カーネルを再構築します. - 詳細についてはハンドブックのを参照してください. + 必要な設定をカーネルコンフィグレーションファイルに追加したら、 + カーネルを再構築します。 + 詳細についてはハンドブックのを参照してください。 デバイスノードの作成とテスト デバイスノード - 再起動した後, ログインして cat /dev/sndstat - を実行します. すると, 以下のように出力されるはずです. + 再起動した後、ログインして cat /dev/sndstat + を実行します。すると、以下のように出力されるはずです。 FreeBSD Audio Driver (newpcm) Sep 21 2000 18:29:53 Installed devices: pcm0: <Aureal Vortex 8830> at memory 0xfeb40000 irq 5 (4p/1r +channels duplex) - エラーメッセージが出力される場合は, - 今までの手順のどこかが間違っています. - カーネルコンフィグレーションファイルをもう一度見直して, - 正しいデバイスを選択しているかどうか確認してください. + エラーメッセージが出力される場合は、 + 今までの手順のどこかが間違っています。 + カーネルコンフィグレーションファイルをもう一度見直して、 + 正しいデバイスを選択しているかどうか確認してください。 エラーが出力されずに pcm0 - が出力された場合は, + が出力された場合は、 su コマンドで - root になり, - 次のように実行します. + root になり、 + 次のように実行します。 &prompt.root; cd /dev &prompt.root; sh MAKEDEV snd0 エラーが出力されずに pcm1 - が出力された場合は, + が出力された場合は、 su コマンドで - root になり, - 次のように実行します. + root になり、 + 次のように実行します。 &prompt.root; cd /dev &prompt.root; sh MAKEDEV snd1 - 上のコマンドはどちらも, + 上のコマンドはどちらも、 /dev/snd という デバイスを作成するものではないという点に注意してください! - これらは代わりに, - 次のような複数のデバイスノードを作成します. + これらは代わりに、 + 次のような複数のデバイスノードを作成します。 デバイス 説明 /dev/audio SPARC 互換オーディオデバイス /dev/dsp (訳注: 8 ビットで) サンプリングする音声デバイス /dev/dspW - /dev/dspと同様. - ただしサンプリングは 16 ビット. + /dev/dspと同様。 + ただしサンプリングは 16 ビット。 /dev/midi Raw MIDI アクセスデバイス /dev/mixer コントロールポートミキサーデバイス /dev/music レベル 2 シーケンサインタフェース /dev/sequencer シーケンサデバイス /dev/pss プログラム可能なデバイスインタフェース - すべてうまく行けば, - サウンドカードの機能を使用することができます. - うまく行かない場合は, 次の節をご覧ください. + すべてうまく行けば、 + サウンドカードの機能を使用することができます。 + うまく行かない場合は、次の節をご覧ください。 よくある問題 デバイスノード unsupported subdevice XX error が出ました! - いくつかのデバイスノードが正しく作成されていません. - 前節の手順をもう一度やってみてください. + いくつかのデバイスノードが正しく作成されていません。 + 前節の手順をもう一度やってみてください。 I/O ポート sb_dspwr(XX) timed out error が出ました! - I/O ポートが正しく設定されていません. + I/O ポートが正しく設定されていません。 IRQ bad irq XX error が出ました! - IRQ が正しく設定されていません. + IRQ が正しく設定されていません。 カーネルコンフィグレーションファイル中の - IRQ の設定と, - サウンドカードの IRQ の設定が同じであるか確認してください. + IRQ の設定と、 + サウンドカードの IRQ の設定が同じであるか確認してください。 - xxx: gus pcm not attached, out of memory というエラーが出ます. + xxx: gus pcm not attached, out of memory というエラーが出ます。 何が起きたのでしょうか? - これは, - デバイスを使用するために必要なメモリが確保できない時に表示されます. + これは、 + デバイスを使用するために必要なメモリが確保できない時に表示されます。 diff --git a/ja_JP.eucJP/books/handbook/policies/chapter.sgml b/ja_JP.eucJP/books/handbook/policies/chapter.sgml index 6d97af82d0..962b82c421 100644 --- a/ja_JP.eucJP/books/handbook/policies/chapter.sgml +++ b/ja_JP.eucJP/books/handbook/policies/chapter.sgml @@ -1,516 +1,516 @@ Poul-Henning Kamp 寄稿: ソースツリーのガイドラインおよび方針 - 訳者: &a.jp.mihoko;, 1996 年 9 月 6 日. + 訳者: &a.jp.mihoko;、1996 年 9 月 6 日 - 本章は, FreeBSD + 本章は、FreeBSD のソースツリーについてのさまざまなガイドラインや - ポリシーについて書かれています. + ポリシーについて書かれています。 Makefile 中の <makevar>MAINTAINER</makevar> - port 保守担当(ports maintainer) + port 保守担当 (ports maintainer) - 1996 年 6 月. + 1996 年 6 月 - FreeBSD 配布物の特定の部分が, 一人の人やグループによって保守 - されている場合は, ソースツリーの当該 + FreeBSD 配布物の特定の部分が、一人の人やグループによって保守 + されている場合は、ソースツリーの当該 MakefileMAINTAINER= email-addresses - が付け加えられています. これを記述することによって, + が付け加えられています。これを記述することによって、 この部分が誰によって保守管理されているかを世界中のユーザに - 伝えることができます. + 伝えることができます。 この意味は次のとおりです: - 保守担当者がそのコードを所有し, そのコードに対する責任を持っ - ています. すなわち, + 保守担当者がそのコードを所有し、そのコードに対する責任を持っ + ています。すなわち、 その人がそのコードに関するバグの修正やトラブル報告 - に対する回答をします. また, - そのコードが寄贈ソフトウェアの場合には, そのソフトウェアの + に対する回答をします。また、 + そのコードが寄贈ソフトウェアの場合には、そのソフトウェアの 新しいバージョンに適切に追従させる作業をその人が行い - ます. + ます。 保守担当者が決められているディレクトリに対して - 変更をおこなう場合は, 変更をおこなう前に, - その変更内容を保守担当者に送って, - 保守担当者にレビューをしてもらってください. 保守担当者が, - 電子メールに一定期間応答しない場合にのみ, - 保守担当者がレビューすることなしに, - 変更をおこなうことが認められます. しかしながら, - そのような場合でも可能な限り, 変更点を第三者にレビュー - してもらうようにしてください. - - もちろん, この義務を引き受けることができない人やグループを - 保守管理者として追加することはできません. また, + 変更をおこなう場合は、変更をおこなう前に、 + その変更内容を保守担当者に送って、 + 保守担当者にレビューをしてもらってください。保守担当者が、 + 電子メールに一定期間応答しない場合にのみ、 + 保守担当者がレビューすることなしに、 + 変更をおこなうことが認められます。しかしながら、 + そのような場合でも可能な限り、変更点を第三者にレビュー + してもらうようにしてください。 + + もちろん、この義務を引き受けることができない人やグループを + 保守管理者として追加することはできません。また、 保守管理者がソースツリー管理者 ("committer") である必要は - ありません. + ありません。 Poul-Henning Kamp 寄稿: David O'Brien 寄贈ソフトウェア 寄贈ソフトウェア 訳者: &a.jp.mihoko; FreeBSD 配布物のうちのいくつかのソフトウェアは FreeBSD - プロジェクト 以外のところで保守されています. 歴史的な経緯から, - 私たちはこれを 寄贈 ソフトウェアと - 呼んでいます. perlgcc - patch などがその例です. - - ここ数年来, この種のソフトウェアの取り扱いには, - さまざまな方法が 取られてきましたが, - どの方法にもいくつかの利点と欠点があります. - これまで欠点のない明確な方法はありませんでした. - - 議論した結果, これらの方法のうちの一つが - 公式な方法として選択され ました. その方法が, 今後, - この種のソフトウェアを取り込む場合に, 使用 されます. その上, - この方法では, だれもが(cvs - にアクセス権のない人でさえ)公式 - バージョンのソースに対する差分を簡単に得ることができます. - これは古い方法にはなかった大きな利点です. ですから, - 既存の寄贈ソフトウェアも, - この方法に収束していくことを強く望んでいます. - この方法を使用することにより, 寄贈ソフトウェアの主な開発者に, - 変更 点を返すのがとても容易になります. - - しかしながら結局, 寄贈ソフトウェアの取扱は, - 実際に作業を行って いる人々に委ねられています. - もしこの方法を使用することが, その人が扱っているパッケージには - 極端に合わないような場合には, コアチームの承認さえあれば, - これらの ルールに反しても, - 他の開発者の一般的な合意は得られるでしょう. - 将来にわたってパッケージを保守できるということは, - 大変重要な事柄に なってきます. + プロジェクト以外のところで保守されています。歴史的な経緯から、 + 私たちはこれを 寄贈 ソフトウェアと + 呼んでいます。perlgcc + patch などがその例です。 + + ここ数年来、この種のソフトウェアの取り扱いには、 + さまざまな方法が 取られてきましたが、 + どの方法にもいくつかの利点と欠点があります。 + これまで欠点のない明確な方法はありませんでした。 + + 議論した結果、これらの方法のうちの一つが + 公式な 方法として選択されました。その方法が、今後、 + この種のソフトウェアを取り込む場合に、使用されます。その上、 + この方法では、だれもが (cvs + にアクセス権のない人でさえ) 公式 + バージョンのソースに対する差分を簡単に得ることができます。 + これは古い方法にはなかった大きな利点です。ですから、 + 既存の寄贈ソフトウェアも、 + この方法に収束していくことを強く望んでいます。 + この方法を使用することにより、寄贈ソフトウェアの主な開発者に、 + 変更点を返すのがとても容易になります。 + + しかしながら結局、寄贈ソフトウェアの取扱は、 + 実際に作業を行っている人々に委ねられています。 + もしこの方法を使用することが、その人が扱っているパッケージには + 極端に合わないような場合には、コアチームの承認さえあれば、 + これらのルールに反しても、 + 他の開発者の一般的な合意は得られるでしょう。 + 将来にわたってパッケージを保守できるということは、 + 大変重要な事柄に なってきます。 RCS のファイルフォーマットと CVS - のベンダブランチの使用には不幸な設計上の制限があります. - したがって, + のベンダブランチの使用には不幸な設計上の制限があります。 + したがって、 ベンダブランチの内容をいまだに引きずっているファイルに - 対して小さな, 些細な変更, そして / あるいは - 膨大な変更を加えることには, - 強い反対があります. - 誤字訂正はもちろんこの中に入りますし, - しかも膨大なの範疇に入るので, リビジョンが + しかも 膨大な の範疇に入るので、リビジョンが 1.1.x.x - であるファイルに対する誤字訂正は避けられることになっています. - 一文字の変更したことによるリポジトリの肥大は, - 非常に劇的なものになり得るのです. + であるファイルに対する誤字訂正は避けられることになっています。 + 一文字の変更したことによるリポジトリの肥大は、 + 非常に劇的なものになり得るのです。 - プログラミング言語 Tcl は, + プログラミング言語 Tcl は、 この方法が活用されているよい例になっています: - src/contrib/tcl には, - このパッケージの保守管理者が 配布したソースが含まれています. + src/contrib/tcl には、 + このパッケージの保守管理者が配布したソースが含まれています。 この中からは FreeBSD に完全には適用 - できない部分が削除されています. Tcl の場合は, - mac, win, - compat というサブディレクトリは, FreeBSD - に取り込む前に削除されて いました. - - src/lib/libtcl には, - ライブラリを生成したり, ドキュ - メントをインストールする際に使用される, 標準の - bsd.lib.mk の 規則を使用した + できない部分が削除されています。Tcl の場合は、 + macwin、 + compat というサブディレクトリは、FreeBSD + に取り込む前に削除されていました。 + + src/lib/libtcl には、 + ライブラリを生成したり、ドキュ + メントをインストールする際に使用される、標準の + bsd.lib.mk の規則を使用した bmake スタイルの - Makefile だけが含まれています. + Makefile だけが含まれています。 - src/usr.bin/tclsh には, - bsd.prog.mk 規則 を使用して, + src/usr.bin/tclsh には、 + bsd.prog.mk 規則を使用して、 tclsh - プログラムや関連するマニュアルページを生成 /インストール する + プログラムや関連するマニュアルページを生成 / インストールする bmake スタイルの Makefile - だけが含まれています. - - src/tools/tools/tcl_bmake には, Tcl - ソフトウェアを更新する必要が生じたときの助けになる2つのシェルス - クリプトが含まれています. これらは, - ソフトウェアを構築するのに使用し たり, - インストール対象になるソフトウェアではありません. - - ここ重要なのは, src/contrib/tcl - ディレクトリが, 規則にしたがっ て作られているということです. - つまり, できるだけ FreeBSD に特化した - 変更をおこなわないようにしたソースを(RCS - のキーワードを拡張しないで, CVS のベンダブランチに)おくようにし - ています. - freefall 上の「簡易取り込み」ツールは, - 寄贈ソフトウェアを取り込む手助けとなります. けれども, - このツールの実行方法に疑問が生じた場合は, まずはじめに質問して, - 失敗をしないようにしてください. そして, - その疑問を解決してからツールを使用してください. - CVS に寄贈ソフトウェアを取り込む際には, - 事故があってはいけません. - よくあるような間違いをおかさないように, - 十分注意してください. - - 先ほど述べたように, 残念なことに CVS - にはベンダブランチという設計制限があります. このため, CVS - に寄贈ソフトウェアを取り込むには, オリジナル配布ソースに - 適用されるベンダからの公式パッチと, - ベンダブランチに逆輸入された 結果が必要です. - ベンダブランチの一貫性を破壊したり, 将来, + だけが含まれています。 + + src/tools/tools/tcl_bmake には、Tcl + ソフトウェアを更新する必要が生じたときの助けになる 2 つのシェルス + クリプトが含まれています。これらは、 + ソフトウェアを構築するのに使用したり、 + インストール対象になるソフトウェアではありません。 + + ここ重要なのは、src/contrib/tcl + ディレクトリが、規則にしたがっ て作られているということです。 + つまり、できるだけ FreeBSD に特化した + 変更をおこなわないようにしたソースを (RCS + のキーワードを拡張しないで、CVS のベンダブランチに) おくようにし + ています。 + freefall 上の「簡易取り込み」ツールは、 + 寄贈ソフトウェアを取り込む手助けとなります。けれども、 + このツールの実行方法に疑問が生じた場合は、まずはじめに質問して、 + 失敗をしないようにしてください。そして、 + その疑問を 解決して からツールを使用してください。 + CVS に寄贈ソフトウェアを取り込む際には、 + 事故があってはいけません。 + よくあるような間違いをおかさないように、 + 十分注意してください。 + + 先ほど述べたように、残念なことに CVS + にはベンダブランチという設計制限があります。このため、CVS + に寄贈ソフトウェアを取り込むには、オリジナル配布ソースに + 適用されるベンダからの 公式 パッチと、 + ベンダブランチに逆輸入された 結果が必要です。 + ベンダブランチの一貫性を破壊したり、将来、 新しいバージョンを取り込む 時に衝突を起こしてしまったりというような - 困難な事態に陥らないように しなければなりません. そのために, - FreeBSD が管理しているバージョンに 対して, - 公式パッチを決して当ててはいけませんし, 公式パッチを "commit" - してはいけません. - - 多くのパッケージが, 他のアーキテクチャや他の環境と FreeBSD - との互換性を保ためのファイルをいくつか含んでいます. そこで, - スペースを節約するために, FreeBSD + 困難な事態に陥らないようにしなければなりません。そのために、 + FreeBSD が管理しているバージョンに対して、 + 公式パッチを決して当ててはいけませんし、公式パッチを "commit" + してはいけません。 + + 多くのパッケージが、他のアーキテクチャや他の環境と FreeBSD + との互換性を保ためのファイルをいくつか含んでいます。そこで、 + スペースを節約するために、FreeBSD にとっては無意味な配布ツリー上の一 - 部を削除することが許されています. けれども, - 削除されずに残ったファイルに対する, 著作権の通知やリリース - ノートのような情報を含んだファイルは, 決して削除しては - いけませ ん . + 部を削除することが許されています。けれども、 + 削除されずに残ったファイルに対する、著作権の通知やリリース + ノートのような情報を含んだファイルは、決して削除しては + いけません bmake Makefile - が何らかのユーティリティによって, 配布ツリー - から自動的に生成できると, うまくいけば, 新しいバージョンへの - アップグレードをより簡単におこなうことができます. - もしこのようなユーティリティを作成できた場合には, 将来の管理者に - とって便利になるように, 移植の際に, - src/tools ディレクトリ上に, (必要に応じて) - そのユーティリティを必ずチェックインしてください. + が何らかのユーティリティによって、配布ツリー + から自動的に生成できると、うまくいけば、新しいバージョンへの + アップグレードをより簡単におこなうことができます。 + もしこのようなユーティリティを作成できた場合には、将来の管理者に + とって便利になるように、移植の際に、 + src/tools ディレクトリ上に、(必要に応じて) + そのユーティリティを必ずチェックインしてください。 src/contrib/tcl - レベルのディレクトリには, FREEBSD-upgrade - と 呼ばれるファイルが追加されており, そのファイルでは - 次のような内容が 記述されています. + レベルのディレクトリには、FREEBSD-upgrade + と 呼ばれるファイルが追加されており、そのファイルでは + 次のような内容が記述されています。 ディレクトリ上に存在するファイル - オリジナルの配布物をどこから入手すればよいか また, + オリジナルの配布物をどこから入手すればよいか また、 公式配布 サイトはどこか - オリジナルの作者にパッチを送り返すためには, + オリジナルの作者にパッチを送り返すためには、 どこに送ればよいか FreeBSD に特化した変更点の概要 - しかしながら, 寄贈ソースと一緒に + しかしながら、寄贈ソースと一緒に FREEBSD-upgrade ファイルを - 取り込まないでください. それよりむしろ, - (訳注:このファイルを)初回に取り込んだ後は, コマンド cvs - add FREEBSD-upgrade ; cvs ci を実行してください. - src/contrib/cpio を例にすると, + 取り込まないでください。それよりむしろ、 + (訳注: このファイルを) 初回に取り込んだ後は、コマンド cvs + add FREEBSD-upgrade ; cvs ci を実行してください。 + src/contrib/cpio を例にすると、 次のようになります: このディレクトリは「ベンダ」ブランチ上のオリジナル配布ファイル -の初期ソースが含まれています. いかなる事情があっても, +の初期ソースが含まれています。いかなる事情があっても、 パッチや cvs コミットによってこのディレクトリ上のファイルを -アップグレードしてはいけません. -(訳注:ベンダから配布された)新しいバージョンや公式パッチだけが -(訳注:このディレクトリに)取り込まれなくてはいけません. -ベンダの RCS Id が CVS に入ってしまうのを避けるために, "-ko" オプ -ションをつけてインポートすることを忘れないで下さい. +アップグレードしてはいけません。 +(訳注: ベンダから配布された) 新しいバージョンや公式パッチだけが +(訳注: このディレクトリに) 取り込まれなくてはいけません。 +ベンダの RCS Id が CVS に入ってしまうのを避けるために、"-ko" オプ +ションをつけてインポートすることを忘れないで下さい。 -GNU cpio 2.4.2 を取り込むためには, 以下のファイルが削除されました: +GNU cpio 2.4.2 を取り込むためには、以下のファイルが削除されました: INSTALL cpio.info mkdir.c Makefile.in cpio.texi mkinstalldirs -cpio を新しいバージョンにアップデートするためには, 次の作業を +cpio を新しいバージョンにアップデートするためには、次の作業を おこないます: - 1. 空のディレクトリに新しいバージョンを取り出します. + 1. 空のディレクトリに新しいバージョンを取り出します。 [ファイルに「いかなる変更」も加えてはいけません] - 2. 上記にリストされたファイルと, FreeBSD には無意味な - ファイルを削除します. + 2. 上記にリストされたファイルと、FreeBSD には無意味な + ファイルを削除します。 3. 次のコマンドを実行します: cvs import -ko -m 'Virgin import of GNU cpio v<version>' \ src/contrib/cpio GNU v<version> - 例えば, バージョン 2.4.2 を取り込むためには, 次のように + 例えば、バージョン 2.4.2 を取り込むためには、次のように タイプします: cvs import -ko -m 'Virgin import of GNU v2.4.2' \ src/contrib/cpio GNU v2.4.2 - 4. FreeBSD に対するローカルな変更と, 新しいバージョンとの間での - 矛盾を解消するために, ステップ 3 で出力された命令を実行します. + 4. FreeBSD に対するローカルな変更と、新しいバージョンとの間での + 矛盾を解消するために、ステップ 3 で出力された命令を実行します。 -いかなる事情があっても, この手順から外れてはいけません. +いかなる事情があっても、この手順から外れてはいけません。 -cpio にローカルな変更を加えたい場合には, メインブランチ(別名 HEAD)に対して -パッチを実行し, コミットしてください. -決して GNU のブランチにローカルな変更を加えないでください. +cpio にローカルな変更を加えたい場合には、メインブランチ (別名 HEAD) に対して +パッチを実行し、コミットしてください。 +決して GNU のブランチにローカルな変更を加えないでください。 -ローカルにおこなわれたすべての変更を次のリリースに含めるために, -"cpio@gnu.ai.mit.edu" に提出してください. +ローカルにおこなわれたすべての変更を次のリリースに含めるために、 +"cpio@gnu.ai.mit.edu" に提出してください。 obrien@FreeBSD.org - 30 March 1997 ソース管理上注意が必要なファイル (Encumbered Files) 場合によっては FreeBSD のソースツリーの中にソース管理上 - 注意が必要なファイルを含む必要があるかも知れません. 例えば, デバイス - を操作する前に, そのデバイスに小さなバイナリコードをダウンロード - する必要があり, しかも我々が そのソースコードを持っていない場合, - そのバイナリファイルのことをソース管理上注意が必要である(encumbered) - と言います. - 以下に挙げるガイドラインでは, ソース管理上注意が必要なファイルを - FreeBSD ソースツリーにいれる方法を示します. + 注意が必要なファイルを含む必要があるかも知れません。例えば、デバイス + を操作する前に、そのデバイスに小さなバイナリコードをダウンロード + する必要があり、しかも我々が そのソースコードを持っていない場合、 + そのバイナリファイルのことをソース管理上注意が必要である (encumbered) + と言います。 + 以下に挙げるガイドラインでは、ソース管理上注意が必要なファイルを + FreeBSD ソースツリーにいれる方法を示します。 - システムのCPU(s)によってインタプリタされたり - 実行されたりするファイルで, しかもソース形式でないファイルは - すべて, ソース管理上注意が必要なファイルです. + システムの CPU(s) によってインタプリタされたり + 実行されたりするファイルで、しかもソース形式でないファイルは + すべて、ソース管理上注意が必要なファイルです。 BSD または GNU よりも制限されたライセンスを持つファイルは - すべて ソース管理上注意が必要なファイルです. + すべて ソース管理上注意が必要なファイルです。 ハードウェアによって使用されるダウンロード可能な - バイナリコードを含むファイルは, (1) または (2) の条件が - 当てはまらなければ, ソース管理上注意が必要なファイル - ではありません. + バイナリコードを含むファイルは、(1) または (2) の条件が + 当てはまらなければ、ソース管理上注意が必要なファイル + ではありません。 そのようなファイルはアーキテクチュアに依存しない - ASCII 形式(file2c または uuencode が推奨されます)で保存 - します. + ASCII 形式 (file2c または uuencode が推奨されます) で保存 + します。 - コアチーム(core team) - ソース管理上注意が必要なファイルはすべて, CVS リポジトリ - に加える前に, - コアチーム(core team) からの特別な承認 - が必要です. + コアチーム (core team) + ソース管理上注意が必要なファイルはすべて、CVS リポジトリ + に加える前に、 + コアチーム (core team) からの特別な承認 + が必要です。 ソース管理上注意が必要なファイルは src/contrib - または src/sys/contrib に入ります. + または src/sys/contrib に入ります。 - すべてのモジュールは一緒に置きます. ソース管理上とくに注意 - を必要としないコードとコードを共有していない限りは, - モジュールの置場を分ける必要はありません. + すべてのモジュールは一緒に置きます。ソース管理上とくに注意 + を必要としないコードとコードを共有していない限りは、 + モジュールの置場を分ける必要はありません。 オブジェクトファイルは - arch/filename.o.uu> と命名されます. + arch/filename.o.uu> と命名されます。 カーネルファイル 必ず - conf/files.* (構築を簡単にするため -) に記述するようにして下さい. + conf/files.* (構築を簡単にするため) +に記述するようにして下さい。 - 必ず LINT に記述して下さい, - ただし, それをコメントアウトすべきかどうかは + 必ず LINT に記述して下さい、 + ただし、それをコメントアウトすべきかどうかは Core team がその都度 - 判断します. + 判断します。 もちろん Core team は - あとでそれを変更することもできます. + あとでそれを変更することもできます。 - リリースエンジニア(release engineer) + リリースエンジニア (release engineer) リリースエンジニア - は, それをそのリリースにいれるかどうかを決定します. + は、それをそのリリースにいれるかどうかを決定します。 ユーザランドのファイル - Core team は, そ + Core team は、そ のコードが make world の中で構築される - べきかどうかを決定します. + べきかどうかを決定します。 リリースエンジニア - は, それをそのリリースにいれるかどうかを決定します. + は、それをそのリリースにいれるかどうかを決定します。 Satoshi Asami 寄稿: Peter Wemm David O'Brien 共有ライブラリ もしあなたが共有ライブラリをサポートする機能を port - に追加した り, + に追加した り、 共有ライブラリをサポートしていない他のソフトウェアに追加する - 場合には, 共有ライブラリのバージョン番号を次の規則にしたがって - つけてください. 一般的には, この規則は, - ソフトウェアのリリースバージョンとは 全く関係ありません. + 場合には、共有ライブラリのバージョン番号を次の規則にしたがって + つけてください。一般的には、この規則は、 + ソフトウェアのリリースバージョンとは全く関係ありません。 共有ライブラリを作成する三つの重要な規則は 次の通りです: 1.0 から始める - 過去のバージョンに互換性のある変更の場合は, - マイナー番号を増やす(ELF システムでは + 過去のバージョンに互換性のある変更の場合は、 + マイナー番号を増やす (ELF システムでは マイナー番号が無視されることに注意して下さい) - 互換性のない変更の場合は, メジャー番号を増やす + 互換性のない変更の場合は、メジャー番号を増やす - 例えば, 機能追加とバグ吸収の場合は, - マイナー番号を増やします. 機能削除, - 関数呼び出しのシンタックスなどが変更された場合は, - 強制的にメジャー番号を変更します. + 例えば、機能追加とバグ吸収の場合は、 + マイナー番号を増やします。機能削除、 + 関数呼び出しのシンタックスなどが変更された場合は、 + 強制的にメジャー番号を変更します。 メジャー.マイナーー (x,y) - の形式のバージョン番号を使用します. FreeBSD における - a.out 形式のダイナミックリンカは, + の形式のバージョン番号を使用します。FreeBSD における + a.out 形式のダイナミックリンカは、 x.y.z - という形式のバージョン番号 は扱えません. - この場合, y の後のバージョン番号 - (つまり三つ目の数字)は, - どのライブラリがリンクされているかを決めるために, 共有ライブラ - リ番号を比較する際に, すべて無視されます. - 小さなリビジョンだけが - 異なる二つの共有ライブラリが指定 されると, - ld.so は, - リビジョンの大きい方の共有ライブラリを リンクします. すなわち, + という形式のバージョン番号 は扱えません。 + この場合、y の後のバージョン番号 + (つまり三つ目の数字) は、 + どのライブラリがリンクされているかを決めるために、共有ライブラ + リ番号を比較する際に、すべて無視されます。 + 小さな リビジョンだけが + 異なる二つの共有ライブラリが指定 されると、 + ld.so は、 + リビジョンの大きい方の共有ライブラリを リンクします。すなわち、 もしあなたが libfoo.so.3.3.3 をリンク - していたとすると, リンカは頭の 3.3 - という部分だけを認識し, libfoo.so.3 + していたとすると、リンカは頭の 3.3 + という部分だけを認識し、libfoo.so.3 ではじまり その後に 3 - 以上の数字が続くもののうち, + 以上の数字が続くもののうち、 最も大きい番号 - の付いているライブラリをリンクします. + の付いているライブラリをリンクします。 ld.so はいつも最も大きい マイナー リビジョンのものを使うことに - 注意してください. 例えば, プログラムがはじめ - libc.so.2.0 を リンクしていたとしても, + 注意してください。例えば、プログラムがはじめ + libc.so.2.0 を リンクしていたとしても、 libc.so.2.0 よりも - libc.so.2.2 を優先して使用します. + libc.so.2.2 を優先して使用します。 - さらに, ELF ダイナミックリンカはマイナーバージョンを全く扱いません. - しかし, 作成した Makefile がそのようなシステムでも - 「きちんと動作できる」ように, メジャー番号およびマイナー番号を - 指定する必要があります. + さらに、ELF ダイナミックリンカはマイナーバージョンを全く扱いません。 + しかし、作成した Makefile がそのようなシステムでも + 「きちんと動作できる」ように、メジャー番号およびマイナー番号を + 指定する必要があります。 - 移植されていないライブラリに対しては, - 共有ライブラリのバージョン番号はリリースごとに一度だけ変更し, - また, 主要な共有ライブラリのバージョン番号は, OS の主リリースごとに - 一度だけ変更する, というのが私たちのポリシーです. - つまり, X.0 は (X+1).0 になります. - あなたがシステムライブラリのバージョン番号を上げた場合は, - Makefile の commit ログを確認してください. - 結果としてそのリリースには, 共有ライブラリのバージョン番号が + 移植されていないライブラリに対しては、 + 共有ライブラリのバージョン番号はリリースごとに一度だけ変更し、 + また、主要な共有ライブラリのバージョン番号は、OS の主リリースごとに + 一度だけ変更する、というのが私たちのポリシーです。 + つまり、X.0 は (X+1).0 になります。 + あなたがシステムライブラリのバージョン番号を上げた場合は、 + Makefile の commit ログを確認してください。 + 結果としてそのリリースには、共有ライブラリのバージョン番号が アップデートされた Makefile - に入るので, 最初にその変更を 確かめるのがソースツリー管理者 - ("committer") の責務です. その後のどんな変更も, - そのリリースには入りません. + に入るので、最初にその変更を 確かめるのがソースツリー管理者 + ("committer") の責務です。その後のどんな変更も、 + そのリリースには入りません。 diff --git a/ja_JP.eucJP/books/handbook/printing/chapter.sgml b/ja_JP.eucJP/books/handbook/printing/chapter.sgml index 08fed6989a..4c581d7ed1 100644 --- a/ja_JP.eucJP/books/handbook/printing/chapter.sgml +++ b/ja_JP.eucJP/books/handbook/printing/chapter.sgml @@ -1,5315 +1,5315 @@ プリンタの利用 - 原作: Sean Kelly kelly@ad1440.net, 1995 年 9 月 30 日. + 原作: Sean Kelly kelly@ad1440.net、1995 年 9 月 30 日 - 改訂: &a.jim;, 2000 年 3 月 + 改訂: &a.jim;、2000 年 3 月 - 訳: &a.jp.kimura;, 1996 年 9 月 3 日 + 訳: &a.jp.kimura;、1996 年 9 月 3 日 この章では LPD スプーリングシステム 印刷 - FreeBSD でプリンタを使用するためには, + FreeBSD でプリンタを使用するためには、 バークレーラインプリンタスプーリングシステム (LPD スプーリングシステムとしても知られています) - が機能するようにプリンタをセットアップする必要があります. - 本章では設定例を通して, LPD スプーリングシステム - (大抵の場合, 単に LPD と呼ばれる) - について紹介します. + が機能するようにプリンタをセットアップする必要があります。 + 本章では設定例を通して、LPD スプーリングシステム + (大抵の場合、単に LPD と呼ばれる) + について紹介します。 - もし, LPD - や他のプリンタスプーリングシステムについてすでに詳しい知識をお持ちの方は, + もし、LPD + や他のプリンタスプーリングシステムについてすでに詳しい知識をお持ちの方は、 スプーリングシステムのセットアップから読み始めても構いません. + >から読み始めても構いません。 はじめに - LPD はあるホストのプリンタに関する制御の一切を行ないます. - ここで言う制御としては, 次のことがあげられます. + LPD はあるホストのプリンタに関する制御の一切を行ないます。 + ここで言う制御としては、次のことがあげられます。 - ホストに接続されたプリンタ, - あるいはネットワーク上の他ホストに接続されたプリンタに対するアクセス制御を行ないます. + ホストに接続されたプリンタ、 + あるいはネットワーク上の他ホストに接続されたプリンタに対するアクセス制御を行ないます。 プリントジョブ - ファイルをプリントする要求に対して許可を与えます. - この要求は特にジョブと呼ばれています. + ファイルをプリントする要求に対して許可を与えます。 + この要求は特にジョブと呼ばれています。 - 各々のプリンタのキューを管理することにより, - 複数のユーザがあるプリンタに対して同時にアクセスすることを防ぎます. + 各々のプリンタのキューを管理することにより、 + 複数のユーザがあるプリンタに対して同時にアクセスすることを防ぎます。 ヘッダページ (バナーまたは バーストページとしても知られています) - をプリントすることができます. - これにより, - プリントアウトの山の中から自分がプリントしたジョブを見つけやすくなります. + をプリントすることができます。 + これにより、 + プリントアウトの山の中から自分がプリントしたジョブを見つけやすくなります。 - シリアルポートに接続したプリンタ用に通信パラメータを管理します. + シリアルポートに接続したプリンタ用に通信パラメータを管理します。 ネットワーク経由で他のホスト上の - LPD スプーラにジョブを送ることができます. + LPD スプーラにジョブを送ることができます。 - 様々なプリンタ言語やプリンタの能力に応じてジョブの形式を整えるため, - 特別なフィルタを起動することができます. + 様々なプリンタ言語やプリンタの能力に応じてジョブの形式を整えるため、 + 特別なフィルタを起動することができます。 - プリンタの使用に対して課金を行なうことができます. + プリンタの使用に対して課金を行なうことができます。 - 設定ファイルを通して, あるいは特別なフィルタプログラムを用いることにより, - 多種多様なプリンタ機器に対して, - 上述の機能の全部または一部を LPD システムに行なわせることができます. + 設定ファイルを通して、あるいは特別なフィルタプログラムを用いることにより、 + 多種多様なプリンタ機器に対して、 + 上述の機能の全部または一部を LPD システムに行なわせることができます。 どうしてスプーラを使うべきなのか - あなたのシステムを利用するのがあなた一人だけだとしたら, + あなたのシステムを利用するのがあなた一人だけだとしたら、 アクセス制御もヘッダページも - プリンタ利用に対する課金も必要ないのに, - なぜわざわざスプーラに煩わされなければならないのか疑問に思うかも知れません. - プリンタに対する直接アクセスを許可することもできるのですが, - とにかくスプーラを使用するべきです. その理由は, + プリンタ利用に対する課金も必要ないのに、 + なぜわざわざスプーラに煩わされなければならないのか疑問に思うかも知れません。 + プリンタに対する直接アクセスを許可することもできるのですが、 + とにかくスプーラを使用するべきです。その理由は、 - LPD はジョブをバックグラウンドで処理します. - データがプリンタに送信されるまで待つ必要がなくなります. + LPD はジョブをバックグラウンドで処理します。 + データがプリンタに送信されるまで待つ必要がなくなります。 TeX - LPD ではジョブをフィルタを通してプリントすることが簡単にできます. - これにより, 印刷物のヘッダに時刻や日付を入れたり, + LPD ではジョブをフィルタを通してプリントすることが簡単にできます。 + これにより、印刷物のヘッダに時刻や日付を入れたり、 特別なファイル形式 (TeX の DVI ファイルなど) - をプリンタが処理できる形式に変更することができ, - これらの作業を手動で行なう必要がなくなります. + をプリンタが処理できる形式に変更することができ、 + これらの作業を手動で行なう必要がなくなります。 - プリント処理を行なうフリー, - または商用のプログラムのほとんどは, - システムのスプーラとやりとりするように作られています. - スプーリングシステムをセットアップすることで, - 今後加えるかもしれない, あるいは, - すでに持っている別のソフトウェアをより簡単にサポートすることができるでしょう. + プリント処理を行なうフリー、 + または商用のプログラムのほとんどは、 + システムのスプーラとやりとりするように作られています。 + スプーリングシステムをセットアップすることで、 + 今後加えるかもしれない、あるいは、 + すでに持っている別のソフトウェアをより簡単にサポートすることができるでしょう。 基本的なセットアップ - LPD スプーリングシステムを用いてプリンタを使用するためには, - プリンタ機器と LPD 用ソフトウェアの両方を準備する必要があります. - 本文書では次の二段階のレベルに分けて説明をします. + LPD スプーリングシステムを用いてプリンタを使用するためには、 + プリンタ機器と LPD 用ソフトウェアの両方を準備する必要があります。 + 本文書では次の二段階のレベルに分けて説明をします。 - プリンタを接続する方法, - プリンタにどのように通信するかを LPD に指示する方法や, - プレインテキストをプリンタで印字する方法については, - プリンタの簡単な設定をご覧ください. + プリンタを接続する方法、 + プリンタにどのように通信するかを LPD に指示する方法や、 + プレインテキストをプリンタで印字する方法については、 + プリンタの簡単な設定をご覧ください。 - 様々な形式のファイルを印字する方法, - ヘッダページを印字する方法, - ネットワーク経由でプリンタに印字する方法, - プリンタを制御する方法, + 様々な形式のファイルを印字する方法、 + ヘッダページを印字する方法、 + ネットワーク経由でプリンタに印字する方法、 + プリンタを制御する方法、 プリンタの使用に対する課金を行なう方法についてはプリンタ設定 - 上級編をご覧ください. + 上級編をご覧ください。 プリンタ設定導入編 - この節では, プリンタ機器やプリンタを使用するための - LPD 用ソフトウェアを設定する方法について述べます. - この節の概要は次のとおりです. + この節では、プリンタ機器やプリンタを使用するための + LPD 用ソフトウェアを設定する方法について述べます。 + この節の概要は次のとおりです。 - プリンタ機器の設定では, - プリンタをコンピュータに接続するためのヒントがいくつか書かれています. + プリンタ機器の設定では、 + プリンタをコンピュータに接続するためのヒントがいくつか書かれています。 - ソフトウェアの設定では, + ソフトウェアの設定では、 LPDのスプーラ設定ファイル /etc/printcap - の設定方法について書かれています. + の設定方法について書かれています。 - データをプリンタに送るためにシリアルまたはパラレルインタフェースではなく, - ネットワークプロトコルを使用する場合は, + データをプリンタに送るためにシリアルまたはパラレルインタフェースではなく、 + ネットワークプロトコルを使用する場合は、 ネットワークにおけるデータストリームインタフェースを持つプリンタをご覧ください. + >をご覧ください。 - この節のタイトルはプリンタ設定導入編ですが, - 実際の設定はかなり複雑です. - プリンタをコンピュータに接続し, - LPD スプーラを起動させることは一番困難な作業です. - ヘッダページを出力させたり課金したりするオプションの設定は, - 一度プリンタがうまく動くようになればとても簡単です. + この節のタイトルは プリンタ設定導入編 ですが、 + 実際の設定はかなり複雑です。 + プリンタをコンピュータに接続し、 + LPD スプーラを起動させることは一番困難な作業です。 + ヘッダページを出力させたり課金したりするオプションの設定は、 + 一度プリンタがうまく動くようになればとても簡単です。 プリンタ機器の設定 - この節では, プリンタに PC - を接続するための様々な方法について説明しています. - ここでは, ポートやケーブルの種類, - FreeBSD がプリンタとの通信に必要なカーネルコンフィグレーションについても言及しています. + この節では、プリンタに PC + を接続するための様々な方法について説明しています。 + ここでは、ポートやケーブルの種類、 + FreeBSD がプリンタとの通信に必要なカーネルコンフィグレーションについても言及しています。 - もしプリンタが既に接続されていて, - 他のオペレーティングシステム上でプリンタからの印字に成功している場合は, + もしプリンタが既に接続されていて、 + 他のオペレーティングシステム上でプリンタからの印字に成功している場合は、 ソフトウェアの設定まで読み飛ばすことが多分できるでしょう. + >まで読み飛ばすことが多分できるでしょう。 ポートとケーブル 最近の PC - 用のプリンタほとんどには次のインタフェースの一つもしくは両方がついています. + 用のプリンタほとんどには次のインタフェースの一つもしくは両方がついています。 プリンタ シリアル - シリアルインタフェースでは, - プリンタにデータを送信するためにコンピュータにあるシリアルポートが使用されます. - シリアルインタフェースはコンピュータ業界で共通して使用されています. - そのケーブルは容易に手に入りますし, 簡単に自作することもできます. - シリアルインタフェースの場合は時々, - 特別なケーブルや何か複雑な通信方式選択の設定が必要になることがあります. + シリアルインタフェースでは、 + プリンタにデータを送信するためにコンピュータにあるシリアルポートが使用されます。 + シリアルインタフェースはコンピュータ業界で共通して使用されています。 + そのケーブルは容易に手に入りますし、簡単に自作することもできます。 + シリアルインタフェースの場合は時々、 + 特別なケーブルや何か複雑な通信方式選択の設定が必要になることがあります。 プリンタ パラレル - パラレルインタフェースではプリンタにデータを送信するために, - コンピュータにあるパラレルポートを使用します. - パラレルインタフェースは PC 業界では良く使われます. - ケーブルの入手は容易ですが, - 自作するのはシリアルよりも困難です. - パラレルインタフェースには通常, 通信方式の選択はなく, - 設定は極めて単純です. + パラレルインタフェースではプリンタにデータを送信するために、 + コンピュータにあるパラレルポートを使用します。 + パラレルインタフェースは PC 業界では良く使われます。 + ケーブルの入手は容易ですが、 + 自作するのはシリアルよりも困難です。 + パラレルインタフェースには通常、通信方式の選択はなく、 + 設定は極めて単純です。 セントロニクス パラレルプリンタ - パラレルインタフェースはセントロニクスインタフェースとして知られています. - これは, プリンタ用のコネクタタイプとして採用された後に名付けられました. + パラレルインタフェースは セントロニクス インタフェースとして知られています。 + これは、プリンタ用のコネクタタイプとして採用された後に名付けられました。 - シリアルインタフェースはパラレルインタフェースよりも普通はデータの伝送速度が遅くなります. - パラレルインタフェースでは, 通常, - (コンピュータからプリンタへの) 単方向通信のみを行なうのに対して, - シリアルインタフェースは双方向通信を行ないます. - FreeBSD でも IEEE1284 準拠のケーブルを使えば, - 最近のパラレルポートとプリンタの多くで双方向通信を行なうことができます. + シリアルインタフェースはパラレルインタフェースよりも普通はデータの伝送速度が遅くなります。 + パラレルインタフェースでは、通常、 + (コンピュータからプリンタへの) 単方向通信のみを行なうのに対して、 + シリアルインタフェースは双方向通信を行ないます。 + FreeBSD でも IEEE1284 準拠のケーブルを使えば、 + 最近のパラレルポートとプリンタの多くで双方向通信を行なうことができます。 PostScript - 通常, プリンタで双方向通信が必要となるのは, プリンタが - PostScript 言語に対応しているときだけです. - PostScript プリンタは非常に冗長に動作させることができます. - 事実, PostScript によるジョブでは, プログラムを本当にプリンタに送信します. - このことは, 印字作業を必ずしもする必要がないことを意味しますし, - そのプログラムの結果はコンピュータに直接返されるかも知れません. + 通常、プリンタで双方向通信が必要となるのは、プリンタが + PostScript 言語に対応しているときだけです。 + PostScript プリンタは非常に冗長に動作させることができます。 + 事実、PostScript によるジョブでは、プログラムを本当にプリンタに送信します。 + このことは、印字作業を必ずしもする必要がないことを意味しますし、 + そのプログラムの結果はコンピュータに直接返されるかも知れません。 PostScript プリンタでは双方向通信を使って - PostScript プログラムのエラーや紙づまりといった問題をコンピュータに報告します. - ユーザはそれらの情報を知りたいと思うかも知れません. - また, PostScript プリンタで課金作業をもっとも効率よく行なうためには, - 双方向通信が必要となります. - この方法ではまず, プリンタの現在のページカウント - (起動してから今まで何枚の紙を印字したか) の情報を得ます. - 次に, ユーザのジョブを実行し, 終了後, 再びページカウントを得ます. - この二つの数を差によって, - 課金対象となる紙の枚数を知ることができるのです. + PostScript プログラムのエラーや紙づまりといった問題をコンピュータに報告します。 + ユーザはそれらの情報を知りたいと思うかも知れません。 + また、PostScript プリンタで課金作業をもっとも効率よく行なうためには、 + 双方向通信が必要となります。 + この方法ではまず、プリンタの現在のページカウント + (起動してから今まで何枚の紙を印字したか) の情報を得ます。 + 次に、ユーザのジョブを実行し、終了後、再びページカウントを得ます。 + この二つの数を差によって、 + 課金対象となる紙の枚数を知ることができるのです。 パラレルポート - プリンタをパラレルインタフェースを使って接続する場合は, - セントロニクスケーブルでプリンタとコンピュータを接続してください. - 詳しい説明はプリンタやコンピュータに付属する説明書に書かれているはずです. + プリンタをパラレルインタフェースを使って接続する場合は、 + セントロニクスケーブルでプリンタとコンピュータを接続してください。 + 詳しい説明はプリンタやコンピュータに付属する説明書に書かれているはずです。 - その際, - どのパラレルポートを使用したかを覚えておいてください. - FreeBSDでは最初のポートは /dev/lpt0, - 二番目 /dev/lpt1 であ り, - 三番目以降も同様に続きます. + その際、 + どのパラレルポートを使用したかを覚えておいてください。 + FreeBSD では最初のポートは /dev/lpt0、 + 二番目 /dev/lpt1 であ り、 + 三番目以降も同様に続きます。 シリアルポート - シリアルインタフェースを使ってプリンタを使う場合は, - 適切なシリアルケーブルでプリンタとコンピュータを接続してください. - 詳しい説明はプリンタ, コンピュータ, あるいは両方に付属する説 - 明書に書かれているはずです. + シリアルインタフェースを使ってプリンタを使う場合は、 + 適切なシリアルケーブルでプリンタとコンピュータを接続してください。 + 詳しい説明はプリンタ、コンピュータ、あるいは両方に付属する説 + 明書に書かれているはずです。 - 適切なシリアルケーブルが良くわからないときは, - 次のどれかを試してみてください. + 適切なシリアルケーブル が良くわからないときは、 + 次のどれかを試してみてください。 - モデム用ケーブルでは, - それぞれのピンは他方のコネクタの対応するピンと線でつながっています. + モデム用ケーブルでは、 + それぞれのピンは他方のコネクタの対応するピンと線でつながっています。 このタイプのケーブルは DTE-DCE 間ケーブルとしても知られています (訳注: - 日本ではストレートケーブルという名前で売られています). + 日本ではストレートケーブルという名前で売られています)。 ヌルモデム用ケーブル - ヌルモデム用ケーブルでは, - あるピンは対応するピンとを接続していますが, + ヌルモデム用ケーブルでは、 + あるピンは対応するピンとを接続していますが、 あるピン - (たとえば, データ送信用とデータ受信用のピン) - が交差して接続したり, - いくつかのピンは内部で短絡していたりします. - このタイプのケーブルは, + (たとえば、データ送信用とデータ受信用のピン) + が交差して接続したり、 + いくつかのピンは内部で短絡していたりします。 + このタイプのケーブルは、 DTE-DTE 間ケーブルと呼ばれています (訳注: - 日本ではクロスケーブルという名前で売られています). + 日本ではクロスケーブルという名前で売られています)。 - A シリアルプリンタ用ケーブルは, - ある特定のプリンタで必要とされるものです. - ヌルモデムケーブルと似ていますが, - 内部で短絡させる代わりに, - ある信号を他方側に送るために使用しています. + A シリアルプリンタ用ケーブルは、 + ある特定のプリンタで必要とされるものです。 + ヌルモデムケーブルと似ていますが、 + 内部で短絡させる代わりに、 + ある信号を他方側に送るために使用しています。 ボーレート パリティ フローコントロールプロトコル - この他に, - プリンタ用の通信パラメータを設定する必要があります. - 通常, - プリンタのフロントパネルや DIP スイッチによって制御します. + この他に、 + プリンタ用の通信パラメータを設定する必要があります。 + 通常、 + プリンタのフロントパネルや DIP スイッチによって制御します。 コンピュータとプリンタの双方で設定できる最高の通信速度 - [bps] (ビット/秒. + [bps] (ビット/秒、 ボーレートと示されているときもある) - を選んでください. そして, データビット (7 または 8), - パリティ(偶/奇/なし), ストップビット (1 または 2) - を選んでください. - そして, フローコントロールの有無 - (制御なし, または XON/XOFF (イン・バンド + を選んでください。そして、データビット (7 または 8)、 + パリティ (偶/奇/なし)、ストップビット (1 または 2) + を選んでください。 + そして、フローコントロールの有無 + (制御なし、または XON/XOFF (イン・バンド または - ソフトウェアフローコントロールとも呼ばれる)) - を選びます. - 以下に続くソフトウェアの設定のために, - ここでの設定を覚えておいてください. + ソフトウェア フローコントロールとも呼ばれる)) + を選びます。 + 以下に続くソフトウェアの設定のために、 + ここでの設定を覚えておいてください。 ソフトウェアの設定 本節では FreeBSD の LPD スプーリングシステムで印字をおこなうために - 必要となるソフトウェアの設定について説明しています. + 必要となるソフトウェアの設定について説明しています。 - 本節の概要は次のようになります. + 本節の概要は次のようになります。 - プリンタで使用するポートのために, 必要があれば, - カーネルの書き変えをおこないます. 「カーネルの変更」で, - このためにしなくてはならないことを説明しています. + プリンタで使用するポートのために、必要があれば、 + カーネルの書き変えをおこないます。「カーネルの変更」で、 + このためにしなくてはならないことを説明しています。 - パラレルポートを使用している場合は, - パラレルポートのための通信モードの設定します. 詳細は, 「パラレルポートを使用している場合は、 + パラレルポートのための通信モードの設定します。詳細は、「 パラレルポートの通信モードを設定する - 」で説明しています. + 」で説明しています。 オペレーティングシステムからプリンタにデータが送ら - れているかをテストします. 「 - プリンタとの通信状況を調べる」で, - どのようにテストするかの提案をいくつかおこなっています. + プリンタとの通信状況を調べる」で、 + どのようにテストするかの提案をいくつかおこなっています。 - ファイル/etc/printcapを変更し, - LPDの設定を おこないます. この節で, どのように変更するかを - 説明しています. + ファイル/etc/printcapを変更し、 + LPDの設定をおこないます。この節で、どのように変更するかを + 説明しています。 カーネルの変更 オペレーティングシステムのカーネルの - コンパイルをおこなうことによって, - 指定されたのデバイスが機能するようになります. シリアル, - または, パラレルインタフェースをプリンタで使用する場合, - 必要なデバイスがこの指定の中に含まれていなくてはなりません. - したがって, - 必要なデバイスがカーネルに組み込まれていない場合, - 追加のシリアル, または, パラレルポートをサポートするために, - カーネルの再コンパイルが必要となるかもしれません. + コンパイルをおこなうことによって、 + 指定されたのデバイスが機能するようになります。シリアル、 + または、パラレルインタフェースをプリンタで使用する場合、 + 必要なデバイスがこの指定の中に含まれていなくてはなりません。 + したがって、 + 必要なデバイスがカーネルに組み込まれていない場合、 + 追加のシリアル、または、パラレルポートをサポートするために、 + カーネルの再コンパイルが必要となるかもしれません。 シリアルポートが現在使用しているカーネルで - サポートされているかどうかを調べるためには, - 次のように入力します. + サポートされているかどうかを調べるためには、 + 次のように入力します。 &prompt.root; dmesg | grep sioN - ここで, N - はシリアルポートの番号を示し, この番号は0から 始まります. - 次のような出力があった場合, - カーネルはそのポートをサポートしています. + ここで、N + はシリアルポートの番号を示し、この番号は 0 から始まります。 + 次のような出力があった場合、 + カーネルはそのポートをサポートしています。 sio2 at 0x3e8-0x3ef irq 5 on isa sio2: type 16550A パラレルポートが現在使用しているカーネルで - サポートされているかどうかを調べるためには, - 次のように入力します. + サポートされているかどうかを調べるためには、 + 次のように入力します。 &prompt.root; dmesg | grep lptN - ここで, N - はパラレルポートの番号を示し, この番号は 0 から始まります. - 次のような出力があった場合, - カーネルはそのポートをサポートしています. + ここで、N + はパラレルポートの番号を示し、この番号は 0 から始まります。 + 次のような出力があった場合、 + カーネルはそのポートをサポートしています。 lpt0 at 0x378-0x37f on isa - 上記の出力が得られない場合, プリンタを使うため, - オペレーティングシステムにパラレル, または, - シリアルポートを認識し, 使用できるようにするためには - カーネルを変更する必要があります. + 上記の出力が得られない場合、プリンタを使うため、 + オペレーティングシステムにパラレル、または、 + シリアルポートを認識し、使用できるようにするためには + カーネルを変更する必要があります。 - シリアルポートをサポートさせるには, 「シリアルポートをサポートさせるには、「 FreeBSDカーネルのコンフィグレーション」の節をご覧く - ださい. パラレルポートをサポートさせる場合も, その節と, - あわせて, - この節に続く節もご覧ください. + ださい。パラレルポートをサポートさせる場合も、その節と、 + あわせて、 + この節に続く節もご覧ください。 ポート用エントリを <filename>/dev</filename> に追加する - カーネルがシリアル, または, パラレルポートを通じての通 - 信をサポートしていたとしても, システム上で動いているプログ + カーネルがシリアル、または、パラレルポートを通じての通 + 信をサポートしていたとしても、システム上で動いているプログ ラムがデータの送受信をおこなうための - ソフトウェアインタフェースがさらに必要になります. - そのインタフェースは, /dev - ディレクトリにあるエントリに相当します. + ソフトウェアインタフェースがさらに必要になります。 + そのインタフェースは、/dev + ディレクトリにあるエントリに相当します。 /dev エントリにポートを加えるために - &man.su.1; コマンドで root になります. suコマンド - でパスワードを聞かれたら, ルート用のパスワードを入力し - ます. + &man.su.1; コマンドで root になります。su コマンド + でパスワードを聞かれたら、ルート用のパスワードを入力し + ます。 /dev - ディレクトリに移動します. + ディレクトリに移動します。 &prompt.root; cd /dev - 次のように入力します. + 次のように入力します。 &prompt.root; ./MAKEDEV port - ここで, port は, - 作成するポート名です. 1番目 のパラレルポートのときは - lpt0 に, 2番目のときは - lpt1 になり, 以降同様になります. - 1番目のシリア ルポートのときは, - ttyd0 に, 2番目のときは - ttyd1 になり, - これも以降同様となります. + ここで、port は、 + 作成するポート名です。1 番目 のパラレルポートのときは + lpt0 に、2 番目のときは + lpt1 になり、以降同様になります。 + 1番目のシリア ルポートのときは、 + ttyd0 に、2 番目のときは + ttyd1 になり、 + これも以降同様となります。 - 次を入力し, デバイスのエントリができたか確認します. + 次を入力し、デバイスのエントリができたか確認します。 &prompt.root; ls -l port パラレルポートの通信モードを設定する - パラレルインタフェースを使用している場合, FreeBSDでは, - 割り込み駆動型にするか, + パラレルインタフェースを使用している場合、FreeBSD では、 + 割り込み駆動型にするか、 プリンタとの通信の状況をカーネルに監 - 視させるかのいずれかを選択できます. + 視させるかのいずれかを選択できます。 GENERIC - カーネルでは割り込み駆動方式が, - デフォルトになっています. この方式では, + カーネルでは割り込み駆動方式が、 + デフォルトになっています。この方式では、 オペレーティングシ ステムはプリンタがデータを受け付けられるかどうかを調べ - るために, IRQ ラインを一つ使用します. + るために、IRQ ラインを一つ使用します。 - 監視方式では, + 監視方式では、 オペレーティングシステムにプ リンタがもっとデータを受け付けられるかどうかを繰り返し - 尋ねるように指示します. そして, 受け付けるという応答を - 受けたとき, - カーネルはさらなるデータを送信します. + 尋ねるように指示します。そして、受け付けるという応答を + 受けたとき、 + カーネルはさらなるデータを送信します。 - 割り込み駆動方式は, いくらか高速になりますが, 貴重な - IRQ ラインを一つ消費します. - うまく機能するものをお使いください. + 割り込み駆動方式は、いくらか高速になりますが、貴重な + IRQ ラインを一つ消費します。 + うまく機能するものをお使いください。 - 通信モードを設定するためには2つの方法があります. + 通信モードを設定するためには 2 つの方法があります。 1つはカー - ネルを変更することで, もう一つは - &man.lptcontrol.8; プログラムを使用する方法です. + ネルを変更することで、もう一つは + &man.lptcontrol.8; プログラムを使用する方法です。 - カーネルを設定することによって, - 通信モードを変更する. + カーネルを設定することによって、 + 通信モードを変更する。 - カーネルコンフィグレーションファイルを変更します. + カーネルコンフィグレーションファイルを変更します。 lpt0 - のエントリを探すか追加してください. 2番目 - のパラレルポートを設定するときは, 代わりに - lpt1 を使います. 以下, - 3番目のポートは lpt2 となってい - きます. + のエントリを探すか追加してください。2 番目 + のパラレルポートを設定するときは、代わりに + lpt1 を使います。以下、 + 3 番目のポートは lpt2 となってい + きます。 - イベント駆動方式にする場合は, - irq 指定を追加します. + イベント駆動方式にする場合は、 + irq 指定を追加します。 device lpt0 at isa? port? tty irq N vector lptintr - ここで, N - はパラレルポート用の IRQ 番号です. + ここで、N + はパラレルポート用の IRQ 番号です。 - 監視方式を使用する場合は, - irq を追加してはいけません. + 監視方式を使用する場合は、 + irq を追加してはいけません。 device lpt0 at isa? port? tty vector lptintr - ファイルをセーブし, config プログラムを起動し, - カーネルの構築, インストールをおこないます. そして, - リブートしてください. 詳細は, 「ファイルをセーブし、config プログラムを起動し、 + カーネルの構築、インストールをおこないます。そして、 + リブートしてください。詳細は、「 FreeBSDカーネルのコンフィグレーション」を参照 - してください. + してください。 &man.lptcontrol.8; で通信モードを設定する場合 lptN - をイベント駆動方式に設定する場合は, - 次のように入力します. + をイベント駆動方式に設定する場合は、 + 次のように入力します。 &prompt.root; lptcontrol -i -u N lptN - を監視方式に設定する場合は, 次のように入力します. + を監視方式に設定する場合は、次のように入力します。 &prompt.root; lptcontrol -p -u N これらのコマンドを /etc/rc.local ファイルに追加 - しておくと, システムをブートする度に通信モードを設定する - ことができます. 詳細については, - &man.lptcontrol.8; をご覧ください. + しておくと、システムをブートする度に通信モードを設定する + ことができます。詳細については、 + &man.lptcontrol.8; をご覧ください。 プリンタとの通信状況を調べる - スプーリングシステムの設定に進む前に, オペレーティング + スプーリングシステムの設定に進む前に、オペレーティング システムがプリンタにデータを送ることに成功しているかどうか - を確かめるべきでしょう. これにより, 印字がうまくいかないと - き, プリンタとの通信が問題なのか, スプーリングシステムが問 - 題なのかを分けて調べることがかなり容易になります. + を確かめるべきでしょう。これにより、印字がうまくいかないと + き、プリンタとの通信が問題なのか、スプーリングシステムが問 + 題なのかを分けて調べることがかなり容易になります。 - プリンタをテストするためには, + プリンタをテストするためには、 プリンタに何かのテキストを送 - 信してみます. 送信した文字をすぐに印字してくれるプリンタに - は, &man.lptest.1; コマンドを使うと有用です. このコマンドは印 - 字可能な96文字のASCII文字すべてを96行生成します. + 信してみます。送信した文字をすぐに印字してくれるプリンタに + は、&man.lptest.1; コマンドを使うと有用です。このコマンドは印 + 字可能な 96 文字の ASCII 文字すべてを 96 行生成します。 PostScript PostScript (または他の言語に対応した) プリンタの場合 - は, もっと巧妙なテストが必要になります. 次のような, 簡単な - PostScript プログラムを使えば十分でしょう. + は、もっと巧妙なテストが必要になります。次のような、簡単な + PostScript プログラムを使えば十分でしょう。 %!PS 100 100 moveto 300 300 lineto stroke 310 310 moveto /Helvetica findfont 12 scalefont setfont (Is this thing working?) show showpage - 上の PostScript コードはファイルに保存し, - 以降の節で例として示されているように利用することができます. + 上の PostScript コードはファイルに保存し、 + 以降の節で例として示されているように利用することができます。 PCL - このドキュメントでプリンタ用言語を参照するときは, - PostScript のような言語を仮定しており, Hewlett Packard - の PCL は考慮していません. PCL は非常に機能的なの - ですが, + このドキュメントでプリンタ用言語を参照するときは、 + PostScript のような言語を仮定しており、Hewlett Packard + の PCL は考慮していません。PCL は非常に機能的なの + ですが、 プレインテキストにエスケープシーケンスを混ぜること - ができます. PostScript ではプレインテキストを直接印字 - することはできません. - このような種類のプリンタ言語に対しては, - 特別な対応をおこなわなければなりません. + ができます。PostScript ではプレインテキストを直接印字 + することはできません。 + このような種類のプリンタ言語に対しては、 + 特別な対応をおこなわなければなりません。 パラレルポートのプリンタとの接続を調べる プリンタ パラレル - この節では, FreeBSDがパラレルポートに接続されたプリ + この節では、FreeBSD がパラレルポートに接続されたプリ ンタと通信できているかどうかを調べる方法について説明し - ています. + ています。 パラレルポートのプリンタをテストするために - &man.su.1; コマンドで root になります. + &man.su.1; コマンドで root になります。 - プリンタにデータを送ります. + プリンタにデータを送ります。 - プリンタがプレインテキストを印字できる場合, - &man.lptest.1; コマンドを使います. - 次のように入力してください. + プリンタがプレインテキストを印字できる場合、 + &man.lptest.1; コマンドを使います。 + 次のように入力してください。 &prompt.root; lptest > /dev/lptN - ここで, N - はパラレルポートの番号で, 番号は - 0から始まります. + ここで、N + はパラレルポートの番号で、番号は + 0 から始まります。 プリンタが PostScript か他のプリンタ - 言語を使用している場合, そのプリンタに簡単なプロ - グラムを送信してください. 次のように入力します. + 言語を使用している場合、そのプリンタに簡単なプロ + グラムを送信してください。次のように入力します。 &prompt.root; cat > /dev/lptN - そして, 一行一行, + そして、一行一行、 プログラムを慎重に入力して - 下さい. RETUREN または ENTER キーを入力してしま - うと, その行は編集できなくなります. プログラムの - 入力が終わったら, CONTROL+Dか, あなたが設定して - いるファイル終了のキーを押してください. + 下さい。RETUREN または ENTER キーを入力してしま + うと、その行は編集できなくなります。プログラムの + 入力が終わったら、CONTROL+D か、あなたが設定して + いるファイル終了のキーを押してください。 - もしくは, プログラムを入力したファイルがある - 場合は, 次のように入力してください. + もしくは、プログラムを入力したファイルがある + 場合は、次のように入力してください。 &prompt.root; cat file > /dev/lptN - ここで, file - はプログラムが格納されていて, - プリンタに送信するファイルの名前です. + ここで、file + はプログラムが格納されていて、 + プリンタに送信するファイルの名前です。 - これで何かがプリントされることでしょう. + これで何かがプリントされることでしょう。 印字されたテキ - ストがおかしくても心配しなくても構いません. それについ - ては, 後で修正します. + ストがおかしくても心配しなくても構いません。それについ + ては、後で修正します。 シリアルポートのプリンタとの接続を調べる プリンタ シリアル - この節では, FreeBSDがシリアルポートに接続されたプリ + この節では、FreeBSDがシリアルポートに接続されたプリ ンタと通信できているかどうかを調べる方法について述べられ - ています. + ています。 シリアルポートのプリンタをテストするために - &man.su.1; コマンドで root になります. + &man.su.1; コマンドで root になります。 /etc/remote - ファイルを編集します. 次のエントリを加えてください. + ファイルを編集します。次のエントリを加えてください。 printer:dv=/dev/port:br#bps-rate:pa=parity bit/秒 シリアルポート パリティ - ここで, port - シリアルポート (ttyd0, - ttyd1 など) のデバイスエントリで, + ここで、port + シリアルポート (ttyd0、 + ttyd1 など) のデバイスエントリで、 bps-rateは - プリンタとの通信の転送速度[bit/秒], + プリンタとの通信の転送速度[bit/秒]、 parityはプリ ンタとの通信で必要とされるパリティ - (even, odd, - none, + (evenodd、 + nonezeroのいずれか) を表わしていま - す. + す。 - 次の例は, - プリンタをシリアルケーブルでパリティなし, 転送速度 - 19200bpsで第3番目のシリアルポートに接続した場 - 合です. + 次の例は、 + プリンタをシリアルケーブルでパリティなし、転送速度 + 19200bps で第 3 番目のシリアルポートに接続した場 + 合です。 printer:dv=/dev/ttyd2:br#19200:pa=none - &man.tip.1; コマンドでプリンタと接続します. - 次のように入力してください. + &man.tip.1; コマンドでプリンタと接続します。 + 次のように入力してください。 &prompt.root; tip printer - これがうまくいかなかった場合は, - /etc/remoteを編集して, + これがうまくいかなかった場合は、 + /etc/remoteを編集して、 /dev/ttydN の代わりに /dev/cuaaN - を試してみてください. + を試してみてください。 - プリンタにデータを送ります. + プリンタにデータを送ります。 - プリンタがプレインテキストを印字できる場合, - &man.lptest.1; コマンドを使います. - 次のように入力してください. + プリンタがプレインテキストを印字できる場合、 + &man.lptest.1; コマンドを使います。 + 次のように入力してください。 ~$lptest プリンタが PostScript か他のプリンタ - 言語を使用している場合, そのプリンタに簡単なプロ - グラムを入力します. 一行一行, + 言語を使用している場合、そのプリンタに簡単なプロ + グラムを入力します。一行一行、 プログラムを慎 - 重に入力してください. - バックスペースキーや他の編集用のキーは, + 重に入力してください。 + バックスペースキーや他の編集用のキーは、 プリンタの制御コードに割り当てられ - ているかもしれません. プログラムが終了したことを + ているかもしれません。プログラムが終了したことを プリンタに伝えるための特別なファイル終了キーを入 - 力する必要があるかもしれません. PostScript - プリンタの場合, CONTROL+Dを入力します. + 力する必要があるかもしれません。PostScript + プリンタの場合、CONTROL+D を入力します。 - もしくは, プログラムを入力したファイルがある - 場合は, 次のように入力してください. + もしくは、プログラムを入力したファイルがある + 場合は、次のように入力してください。 ~>file - ここで, file - はプログラムが格納されているファイル名です. - &man.tip.1; コマンドでファイルを送信した後は, - ファイル終了を表わすキーを入力する必要があります. + ここで、file + はプログラムが格納されているファイル名です。 + &man.tip.1; コマンドでファイルを送信した後は、 + ファイル終了を表わすキーを入力する必要があります。 - これで何かがプリントされることでしょう. + これで何かがプリントされることでしょう。 印字されたテキ - ストがおかしくても心配しなくても構いません. - それについては, 後で修正します. + ストがおかしくても心配しなくても構いません。 + それについては、後で修正します。 スプーラに許可を与える: <filename>/etc/printcap</filename> ファイル - ここまでで, プリンタはコンピュータに接続され, (必要なら) - プリンタと通信できるようにカーネルを変更し, 簡単なデータをプ - リンタに送信することができているはずです. これで, LPDにプリ + ここまでで、プリンタはコンピュータに接続され、(必要なら) + プリンタと通信できるようにカーネルを変更し、簡単なデータをプ + リンタに送信することができているはずです。これで、LPD にプリ ンタへのアクセスを - 制御させる設定をおこなう準備が整いました. + 制御させる設定をおこなう準備が整いました。 - LPDの設定は /etc/printcap - を編集することでおこないます. - LPDスプーリングシステムはスプーラが使われる毎にこのファイル - を参照します. そのため, ファイルを更新するとすぐにその変更が - 反映されます. + LPD の設定は /etc/printcap + を編集することでおこないます。 + LPD スプーリングシステムはスプーラが使われる毎にこのファイル + を参照します。そのため、ファイルを更新するとすぐにその変更が + 反映されます。 プリンタ ケイパビリティ - &man.printcap.5; ファイルの書式は簡単です. + &man.printcap.5; ファイルの書式は簡単です。 /etc/printcap の編集はお好みのテキストエディタをお - 使いください. このファイルの書式は, + 使いください。このファイルの書式は、 /usr/share/misc/termcap/etc/remote - といった他のケイパビリティファイルと一致しています. + といった他のケイパビリティファイルと一致しています。 この書式 のついての詳細な情報については - &man.cgetent.3; をご覧ください. + &man.cgetent.3; をご覧ください。 - スプーラの単純な設定法は, - 次のステップでおこないます. + スプーラの単純な設定法は、 + 次のステップでおこないます。 - プリンタに名前 (と簡単な別名2〜3個) を付け, それを - /etc/printcap ファイルに記述します. - これについては, 「 + プリンタに名前 (と簡単な別名 2 〜 3 個) を付け、それを + /etc/printcap ファイルに記述します。 + これについては、「 プリンタに名前を付ける」 - を参照してください. + を参照してください。 ヘッダページ - sh の項目を追加することで, - ヘッダページの出力を禁止します (デフォルトは許可). - これについては, 「sh の項目を追加することで、 + ヘッダページの出力を禁止します (デフォルトは許可)。 + これについては、「 ヘッダページの印字を禁止する」 - を参照してください. + を参照してください。 - スプール用のディレクトリを作成し, その位置を - sd 項目で指定します. これについては, + スプール用のディレクトリを作成し、その位置を + sd 項目で指定します。これについては、 「 スプーリングディレクトリの作成」 - を参照してください. + を参照してください。 プリンタを使用するために /dev - エントリを設定し, /etc/printcap の - lp 項目でそのエントリを指定します. - これについては, 「 - プリンタデバイスの特定」 を参照してください. - プリンタをシリアルポートに接続した場合は, - fs, fc, - xs, xc - の項目を設定する必要があります. こちらについては, + エントリを設定し、/etc/printcap の + lp 項目でそのエントリを指定します。 + これについては、「 + プリンタデバイスの特定」 を参照してください。 + プリンタをシリアルポートに接続した場合は、 + fsfc、 + xsxc + の項目を設定する必要があります。こちらについては、 「 スプーラのための通信パラメータの設定」 - を参照してください. + を参照してください。 プレインテキスト用の入力フィルタのインストールを - おこないます. 「 + おこないます。「 テキストフィルタのインストール」 - を参照してください. + を参照してください。 &man.lpr.1; コマンドで何かを印字することで設定のテス - トをおこないます. + トをおこないます。 印字してみよう と - トラブルシューティング を参照してください. + トラブルシューティング を参照してください。 - PostScript プリンタのような, - プリンタ言語を使用しているプリンタには, - プレインテキストを直接印字させることができません. - 上にアウトラインを示し, - 以下の節で説明する簡単な設定方法の説明では, - そのようなプリンタを設置している場合は, + PostScript プリンタのような、 + プリンタ言語を使用しているプリンタには、 + プレインテキストを直接印字させることができません。 + 上にアウトラインを示し、 + 以下の節で説明する簡単な設定方法の説明では、 + そのようなプリンタを設置している場合は、 プリンタが認識できるファイルだけを印字の対象としているという - 仮定をしています. + 仮定をしています。 - 多くの場合, + 多くの場合、 利用者はシステムに設置されているプリンタすべてで - プレインテキストが印字できることを期待しています. + プレインテキストが印字できることを期待しています。 印字作業をおこなうために LPD - のインタフェースを利用するプログラムでも, - 通常, そのような仮定を置きます. - プリンタ言語を使用するプリンタを設置しており, - そのプリンタ言語で記述されたジョブと, - これに加えて, - プレインテキストのジョブも印字できるようにしたいならば, - 上で示した簡単な設定方法に加えて, - さらなる設定をおこなうことを強くお勧めします. すなわち, - 原始的なプレインテキストから PostScript (もしくは, + のインタフェースを利用するプログラムでも、 + 通常、そのような仮定を置きます。 + プリンタ言語を使用するプリンタを設置しており、 + そのプリンタ言語で記述されたジョブと、 + これに加えて、 + プレインテキストのジョブも印字できるようにしたいならば、 + 上で示した簡単な設定方法に加えて、 + さらなる設定をおこなうことを強くお勧めします。すなわち、 + 原始的なプレインテキストから PostScript (もしくは、 他のプリンタ言語) - に変換するプログラムをインストールしてください. 「 プレインテキストのジョブを PostScript プリンタで印字する」 - で, それをどのようにおこなえばよいのかが説明されています. + で、それをどのようにおこなえばよいのかが説明されています。 訳注 - 日本語を印字したい場合は, プリンタ言語を使用し - ていない「日本語プリンタ」についても, - プリンタ固有のエスケープシーケンスを送る必要があります. - また, 漢字コードをプリン - タが設定しているものに変換したりする必要があり, - 各プリンタ毎に, 日本語用のフィルタが必要になります. + 日本語を印字したい場合は、プリンタ言語を使用し + ていない「日本語プリンタ」についても、 + プリンタ固有のエスケープシーケンスを送る必要があります。 + また、漢字コードをプリン + タが設定しているものに変換したりする必要があり、 + 各プリンタ毎に、日本語用のフィルタが必要になります。 プリンタに名前を付ける - 最初の (簡単な) ステップで, プリンタの名前を考えます. - プリンタには別名をいくつか付けることもできるので, + 最初の (簡単な) ステップで、プリンタの名前を考えます。 + プリンタには別名をいくつか付けることもできるので、 機能的な名前 でも風変わりな名前でもどちらを選んでもまったく - 問題はありません. - - 少なくとも1つのプリンタには, - /etc/printcap の中で, - lp という別名を持たせるべきでしょう. - この名前はデフォルトのプリンタ名になっています. - ユーザが環境変数 PRINTER を設定しておらず, - かつ, LPDコマンドのコマンドラインで - プリンタの名前が指定されていない場合, lp - がデフォルトのプリンタ名となり, - そのプリンタに出力されます. - - それから, これは共通の慣習ですが, - プリンタの最後の別名には, + 問題はありません。 + + 少なくとも1つのプリンタには、 + /etc/printcap の中で、 + lp という別名を持たせるべきでしょう。 + この名前はデフォルトのプリンタ名になっています。 + ユーザが環境変数 PRINTER を設定しておらず、 + かつ、LPD コマンドのコマンドラインで + プリンタの名前が指定されていない場合、lp + がデフォルトのプリンタ名となり、 + そのプリンタに出力されます。 + + それから、これは共通の慣習ですが、 + プリンタの最後の別名には、 メーカーやモデル名を含むプリンタの完全な名称をつけることに - なっています. + なっています。 - 名前と別名のいくつかを決めたら, - /etc/printcap ファイルに設定します. - プリンタ名は一番左のカラムから書き始めます. - 別名はそれぞれ縦棒によって区切られ, - 最後の別名の後ろにコロンを置きます. + 名前と別名のいくつかを決めたら、 + /etc/printcap ファイルに設定します。 + プリンタ名は一番左のカラムから書き始めます。 + 別名はそれぞれ縦棒によって区切られ、 + 最後の別名の後ろにコロンを置きます。 - 次の例では, 2台のプリンタ (Diablo 630 ラインプリンタと + 次の例では、2 台のプリンタ (Diablo 630 ラインプリンタと Panasonic KX-P4455 PostScript レーザライタプリンタ) が定義 されている /etc/printcap - のスケルトンを記しています. + のスケルトンを記しています。 # # /etc/printcap for host rose # rattan|line|diablo|lp|Diablo 630 Line Printer: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4: - この例では, 最初のプリンタに rattan - という名前と別名として, line, - diablo, lp そして + この例では、最初のプリンタに rattan + という名前と別名として、line、 + diablolp そして Diablo 630 Line Printer - が付けられています. 別名とし て lp - があるので, このプリンタはデフォルトのプリンタとなっ - ています. 2 番目は bamboo と名付けられ, - 別名として, ps と - PS, S, - panasonic, Panasonic KX-P4455 - PostScript v51.4 が付けられています. + が付けられています。別名とし て lp + があるので、このプリンタはデフォルトのプリンタとなっ + ています。2 番目は bamboo と名付けられ、 + 別名として、ps と + PSS、 + panasonicPanasonic KX-P4455 + PostScript v51.4 が付けられています。 ヘッダページの印字を禁止する 印刷 ヘッダページ - LPDスプーリングシステムでは, + LPDスプーリングシステムでは、 デフォルトでジョブ毎に - ヘッダページを印字します. - ヘッダページにはジョブを要求したユーザ名, - ジョブが送られたホスト名, そして, ジョブの名前が素晴 - らしい大きな文字で印字されています. - 残念なことに, この余分なテキストすべてが, - 簡単なプリンタ設定法のデバッグの際に紛れ込んできてしまいます. - このため, ヘッダページの出力を禁止しておきます. - - ヘッダページの出力を禁止するには, + ヘッダページを印字します。 + ヘッダページにはジョブを要求したユーザ名、 + ジョブが送られたホスト名、そして、ジョブの名前が素晴 + らしい大きな文字で印字されています。 + 残念なことに、この余分なテキストすべてが、 + 簡単なプリンタ設定法のデバッグの際に紛れ込んできてしまいます。 + このため、ヘッダページの出力を禁止しておきます。 + + ヘッダページの出力を禁止するには、 /etc/printcap にあるプリンタのエントリに sh - の項目を追加します. 次 に, sh を加えた - /etc/printcap の例を示します. + の項目を追加します。次に、sh を加えた + /etc/printcap の例を示します。 # # /etc/printcap for host rose - no header pages anywhere # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh: - この書式を正しく使うための注意をしておきます. - 最初の行は左端のカラムから始まります. それに続く行は TAB - ひとつ分だけ字下げします. 最後の行以外のすべての行は, - 行末にバックスラッシュを記述します. + この書式を正しく使うための注意をしておきます。 + 最初の行は左端のカラムから始まります。それに続く行は TAB + ひとつ分だけ字下げします。最後の行以外のすべての行は、 + 行末にバックスラッシュを記述します。 スプーリングディレクトリの作成 プリンタスプール プリントジョブ - スプーラの簡単な設定の次のステップでは, - スプーリングディレクトリを作成します. - プリンタに送られるジョブは, - その印字が終了するまでこのディレクトリに置かれます. また, - 他のたくさんのスプーラもこのディレクトリにファイルを置きます. + スプーラの簡単な設定の次のステップでは、 + スプーリングディレクトリを作成します。 + プリンタに送られるジョブは、 + その印字が終了するまでこのディレクトリに置かれます。また、 + 他のたくさんのスプーラもこのディレクトリにファイルを置きます。 - 様々な事情によりスプーリングディレクトリは, 通常, 慣例 - として /var/spool の下に置きます. - また, スプーリングディレクトリの内容は - バックアップをする必要はありません. + 様々な事情によりスプーリングディレクトリは、通常、慣例 + として /var/spool の下に置きます。 + また、スプーリングディレクトリの内容は + バックアップをする必要はありません。 &man.mkdir.1; によってディレクトリを - 作るだけでスプーリングディレクトリの復旧は完了します. + 作るだけでスプーリングディレクトリの復旧は完了します。 - スプーリングディレクトリの名前は, これも慣例ですが, - 次のようにプリンタの名前と同じにします. + スプーリングディレクトリの名前は、これも慣例ですが、 + 次のようにプリンタの名前と同じにします。 &prompt.root; mkdir /var/spool/printer-name - しかしながら, ネットワーク上に使用可能なプリンタがたく - さんあるならば, LPDで印字するための専用のディレクトリに - スプーリングディレクトリを置きたいと思うかもしれません. + しかしながら、ネットワーク上に使用可能なプリンタがたく + さんあるならば、LPD で印字するための専用のディレクトリに + スプーリングディレクトリを置きたいと思うかもしれません。 例に出てきたプリンタ rattan と - bamboo について, この方式を採用すると, - 次のようになります. + bamboo について、この方式を採用すると、 + 次のようになります。 &prompt.root; mkdir /var/spool/lpd &prompt.root; mkdir /var/spool/lpd/rattan &prompt.root; mkdir /var/spool/lpd/bamboo 各ユーザが印字するジョブのプライバシを守りた - いと考えているならば, スプーリングディレクトリを保護し - て, これを誰からでもアクセスできないようにしたいと思う - かもしれません. スプーリングディレクトリは, deamon ユー - ザと daemon グループに所有され, 読み込み, 書き込み, 検 - 索可能であり, 他からはアクセスできないようにするべきで - す. 例題のプリンタに対して, 次のようにすることにしましょ - う. + いと考えているならば、スプーリングディレクトリを保護し + て、これを誰からでもアクセスできないようにしたいと思う + かもしれません。スプーリングディレクトリは、deamon ユー + ザと daemon グループに所有され、読み込み、書き込み、検 + 索可能であり、他からはアクセスできないようにするべきで + す。例題のプリンタに対して、次のようにすることにしましょ + う。 &prompt.root; chown daemon:daemon /var/spool/lpd/rattan &prompt.root; chown daemon:daemon /var/spool/lpd/bamboo &prompt.root; chmod 770 /var/spool/lpd/rattan &prompt.root; chmod 770 /var/spool/lpd/bamboo - 最後に, /etc/printcap ファイルで, - これらのディ レクトリの位置を LPD に伝える必要があります. + 最後に、/etc/printcap ファイルで、 + これらのディ レクトリの位置を LPD に伝える必要があります。 スプーリ ングディレクトリのパス名は sd - 項目で指定します. + 項目で指定します。 # # /etc/printcap for host rose - added spooling directories # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo: - プリンタ名が最初のカラムから始まっており, そのプリンタ + プリンタ名が最初のカラムから始まっており、そのプリンタ に関して記述される他のエントリは TAB で字下げされてい - ること, 各行がバックスラッシュで終わっていることに注意 - してください. + ること、各行がバックスラッシュで終わっていることに注意 + してください。 sd - によりスプーリングディレクトリが指定されていな い場合, + によりスプーリングディレクトリが指定されていな い場合、 スプーリングシステムは /var/spool/lpd - デフォルト値として使用します. + デフォルト値として使用します。 プリンタデバイスの特定 ポート用エントリを /dev - に追加する」では, FreeBSD でプリン + に追加する」では、FreeBSD でプリン タとの通信に使用される /dev - ディレクトリ内のエントリを特定します. そして, LPD - にその情報を伝えます. 印字するジョブを受け取ると, - スプーリングシステムは, + ディレクトリ内のエントリを特定します。そして、LPD + にその情報を伝えます。印字するジョブを受け取ると、 + スプーリングシステムは、 (プリンタにデータを渡す義務がある) フィルタプログラムに - 代わって指定されたデバイスをオープンします. + 代わって指定されたデバイスをオープンします。 /etc/printcap ファイルで lp 項目を使って - /dev エントリを記入します. + /dev エントリを記入します。 - ここでの例では, rattan - は1番目のシリアルポートに, bamboo - は6番目のシリアルポートに接続されていることにしましょう. - このとき, /etc/printcap には - 次のようになります. + ここでの例では、rattan + は 1 番目のシリアルポートに、bamboo + は 6 番目のシリアルポートに接続されていることにしましょう。 + このとき、/etc/printcap には + 次のようになります。 # # /etc/printcap for host rose - identified what devices to use # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5: /etc/printcap でプリンタの - lp 項目が指定 されていない場合は, LPD + lp 項目が指定 されていない場合は、LPD はデフォルトとして /dev/lp - を使用します. /dev/lp は, 現在の - FreeBSD には存在していません. + を使用します。/dev/lp は、現在の + FreeBSD には存在していません。 設置したプリンタがパラレルポートに - 接続されている場合は, + 接続されている場合は、 「 テキストフィルタのインストール」 - まで読み飛ばしてください. - そうでない場合は, 次節の説明に続いてください. + まで読み飛ばしてください。 + そうでない場合は、次節の説明に続いてください。 スプーラのための通信パラメータの設定 プリンタ シリアル - シリアルポートにプリンタを接続した場合, - プリンタにデータを送信するフィルタプログラムに代わり, - 通信速度やパリティ, - その他のシリアル通信パラメータを設定することができます. - このことによる利点は, + シリアルポートにプリンタを接続した場合、 + プリンタにデータを送信するフィルタプログラムに代わり、 + 通信速度やパリティ、 + その他のシリアル通信パラメータを設定することができます。 + このことによる利点は、 /etc/printcap - を編集するだけで, - 様々な通信パラメータを試してみることができます. - フィルタプログラムを再コンパイルする必要はありません. + を編集するだけで、 + 様々な通信パラメータを試してみることができます。 + フィルタプログラムを再コンパイルする必要はありません。 - スプーリングシステムで, + スプーリングシステムで、 シリアル通信の設定が異なっているかもしれない複数のプリンタに - 同じフィルタプログラムを使うことが可能になります. + 同じフィルタプログラムを使うことが可能になります。 - 次の /etc/printcap の項目で, + 次の /etc/printcap の項目で、 lp で指定された - デバイスのシリアル通信パラメータを制御できます. + デバイスのシリアル通信パラメータを制御できます。 br#bps-rate デバイスの通信速度を - bps-rate に設定します. - ここ で, bps-rate は 50, - 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, - 4800, 9600, 19200, 38400[bit/秒] - のいずれかです. + bps-rate に設定します。 + ここ で、bps-rate は 50、 + 75、110、134、150、200、300、600、1200、1800、2400、 + 4800、9600、19200、38400[bit/秒] + のいずれかです。 fc#clear-bits - デバイスをオープンした後で, + デバイスをオープンした後で、 sgttyb 構造体の clear-bits - フラグビットをクリアします. + フラグビットをクリアします。 fs#set-bits sgttyb 構造体の clear-bits - フラグビットをセットします. + フラグビットをセットします。 xc#clear-bits - デバイスをオープンした後で, ローカルモードビット + デバイスをオープンした後で、ローカルモードビット clear-bits - をクリアします. + をクリアします。 xs#set-bits ローカルモードビット set-bits - をセットします. + をセットします。 - fc, fs, - xc, そして xs - のビットに関する詳しい情報については, + fcfs、 + xc、そして xs + のビットに関する詳しい情報については、 /usr/include/sys/ioctl_compat.h - を参照してください. + を参照してください。 項目 lp で指定されたデバイスを LPD - がオープンするとき, LPD は sgttyb - 構造体のフラグビットを読み出します. そして, 項目 - fc の全ビットをクリアします. 次に, - 項目 fs のビットをセットし, - その結果を設定します. - ローカルモードビットに関しても同様におこなわれます. + がオープンするとき、LPD は sgttyb + 構造体のフラグビットを読み出します。そして、項目 + fc の全ビットをクリアします。次に、 + 項目 fs のビットをセットし、 + その結果を設定します。 + ローカルモードビットに関しても同様におこなわれます。 例題のプリンタで6番目のシリアルポートに接続された - プリンタの設定を追加してみましょう. - 通信速度は38400bpsに設定します. - フラグビットとして, TANDEM, ANYP, LITOUT, - FLUSHO, PASS8 をセットします. ローカルモードビットでは, - LITOUT と PASS8 フラグをセットします. + プリンタの設定を追加してみましょう。 + 通信速度は 38400bps に設定します。 + フラグビットとして、TANDEM、ANYP、LITOUT、 + FLUSHO、PASS8 をセットします。ローカルモードビットでは、 + LITOUT と PASS8 フラグをセットします。 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:fs#0x82000c1:xs#0x820: テキストフィルタのインストール プリントフィルタ - ここまでで, + ここまでで、 プリンタにジョブを送るために使うテキストフィ ルタを LPD - に設定する準備が整いました. - テキストフィルタとは, - 入力フィルタとしても知られていますが, - 印字するジョブがあるときに LPD が起動するプログラムです. - LPD がプリンタのためにテキストフィルタを起動するとき, LPD - はフィルタの標準入力からプリントするジョブを入力し, + に設定する準備が整いました。 + テキストフィルタとは、 + 入力フィルタとしても知られていますが、 + 印字するジョブがあるときに LPD が起動するプログラムです。 + LPD がプリンタのためにテキストフィルタを起動するとき、LPD + はフィルタの標準入力からプリントするジョブを入力し、 フィルタの標準出力に項目 lp - で指定されたプリンタデバイスを接続します. フィルタは, - 標準入力からジョブを読み込み, - プリンタのための必要な変換をおこなった後, - その結果を標準出力に出力する, - これにより印字がなされることを期待されています. - テキストフィルタについての更に詳しい情報については, 「 フィルタはどのように機能しているか」 - をご覧ください. + をご覧ください。 - ここでの簡単なプリンタ設定では, - プリンタにジョブを送るため, /bin/cat - を実行するだけの簡単なシェルスクリプトで間に合います. + ここでの簡単なプリンタ設定では、 + プリンタにジョブを送るため、/bin/cat + を実行するだけの簡単なシェルスクリプトで間に合います。 FreeBSD に標準で付属している lpf - というフィルタでは, バックスペース文字を使った + というフィルタでは、バックスペース文字を使った 下線引きの動作をおこなう文字ストリームをうまく扱うことができない - プリンタのための代替処理をおこなってくれます. - もちろん, - 他のどんなフィルタプログラムを使っても構いません. - フィルタ lpf については, 「lpf については、「テキストフィルタ - lpf」で詳しく説明します. + lpf」で詳しく説明します。 - 最初に, 簡単なテキストフィルタであるシェルスクリプト + 最初に、簡単なテキストフィルタであるシェルスクリプト /usr/local/libexec/if-simple - を作ってみましょう. + を作ってみましょう。 次のテキストをお好みのテキストエディタでファイルに - 書き込んでください. + 書き込んでください。 #!/bin/sh # # if-simple - Simple text input filter for lpd # Installed in /usr/local/libexec/if-simple # # Simply copies stdin to stdout. Ignores all filter arguments. /bin/cat && exit 0 exit 2 - そして, このファイルを実行可能にします. + そして、このファイルを実行可能にします。 &prompt.root; chmod 555 /usr/local/libexec/if-simple LPD - にこのテキストフィルタを使うことを設定するためには, + にこのテキストフィルタを使うことを設定するためには、 /etc/printcap に - if 項目を使って指定します. これまでの - /etc/printcap の例のプリンタ 2 台に, - このフィルタを加えてみましょう. + if 項目を使って指定します。これまでの + /etc/printcap の例のプリンタ 2 台に、 + このフィルタを加えてみましょう。 # # /etc/printcap for host rose - added text filter # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:\ :if=/usr/local/libexec/if-simple: LPD を起動します &man.lpd.8; は lpd_enable 変数に従って - /etc/rc から実行されます. この変数の - デフォルト値は NO です. まだ + /etc/rc から実行されます。この変数の + デフォルト値は NO です。まだ そうしていなかったならば lpd_enable="YES" の行を /etc/rc.conf に追加して - 計算機を再起動するか, そのまま &man.lpd.8; を - 起動してください. + 計算機を再起動するか、そのまま &man.lpd.8; を + 起動してください。 &prompt.root; lpd 印字してみよう - 簡単な LPD 設定も終わりにたどり着きました. 残念ながら, - 設定はこれでおしまいというわけではありません. なぜなら, - さらに, 設定をテストし, - すべての問題点を解決しなくてはならないからです. - 設定をテストするために, - 何かを印字してみましょう. LPD システムで印字をするためには, - &man.lpr.1; コマンドを使います. このコマンドは, - 印字するためのジョブを投入する働きをします. + 簡単な LPD 設定も終わりにたどり着きました。残念ながら、 + 設定はこれでおしまいというわけではありません。なぜなら、 + さらに、設定をテストし、 + すべての問題点を解決しなくてはならないからです。 + 設定をテストするために、 + 何かを印字してみましょう。LPD システムで印字をするためには、 + &man.lpr.1; コマンドを使います。このコマンドは、 + 印字するためのジョブを投入する働きをします。 &man.lpr.1; コマンドを 「 - プリンタとの通信状況を調べる」で紹介した, + プリンタとの通信状況を調べる」で紹介した、 あるテスト用のテキストを生成してくれる - &man.lptest.1; プログラムと一緒に使うこともできます. + &man.lptest.1; プログラムと一緒に使うこともできます。 簡単な LPD 設定をテストするために: - 次のように入力してください. + 次のように入力してください。 &prompt.root; lptest 20 5 | lpr -Pprinter-name - ここで, printer-name + ここで、printer-name/etc/printcap - で指定したプリンタ名 (もしくはその別名) です. デフォルト - のプリンタを使用する場合は, + で指定したプリンタ名 (もしくはその別名) です。デフォルト + のプリンタを使用する場合は、 引数を付けないで - &man.lpr.1; を打ち込んでください. もう一度述べますが, - ポストスクリプトを期待しているプリンタをテストするならば, + &man.lpr.1; を打ち込んでください。もう一度述べますが、 + ポストスクリプトを期待しているプリンタをテストするならば、 &man.lptest.1; を使う代わりに PostScript で書かれた - プログラムをプリンタに送ってください. - プログラムを送るためには, プログラムをファイルに格納して, + プログラムをプリンタに送ってください。 + プログラムを送るためには、プログラムをファイルに格納して、 lpr file - と打ち込みます. + と打ち込みます。 - PostScript プリンタの場合, - 送信したプログラムによる結果が得られるでしょう. - &man.lptest.1; を使った場合は, - 以下のような結果が見られるでしょう. + PostScript プリンタの場合、 + 送信したプログラムによる結果が得られるでしょう。 + &man.lptest.1; を使った場合は、 + 以下のような結果が見られるでしょう。 !"#$%&'()*+,-./01234 "#$%&'()*+,-./012345 #$%&'()*+,-./0123456 $%&'()*+,-./01234567 %&'()*+,-./012345678 - 更にプリンタをテストしたい場合は, - (言語ベースのプリンタのための) もっと大きなプログラムを送信するか, + 更にプリンタをテストしたい場合は、 + (言語ベースのプリンタのための) もっと大きなプログラムを送信するか、 引数を変えて - &man.lptest.1; を実行します. 例えば, lptest - 80 60 で, それぞれ 80 文字の行を 60 - 行生成します. + &man.lptest.1; を実行します。例えば、lptest + 80 60 で、それぞれ 80 文字の行を 60 + 行生成します。 - プリンタがうまく動かなかった場合は, 次の節, 「プリンタがうまく動かなかった場合は、次の節、「 - トラブルシューティング」をご覧ください. + トラブルシューティング」をご覧ください。 プリンタ設定上級編 - この節では, 特殊な形式のファイルを印字するためのフィルタ, - ヘッダページ, ネットワーク越しのプリンタへの印字, そして, - プリンタ使用の制限や課金について説明しています. + この節では、特殊な形式のファイルを印字するためのフィルタ、 + ヘッダページ、ネットワーク越しのプリンタへの印字、そして、 + プリンタ使用の制限や課金について説明しています。 フィルタ プリントフィルタ - LPD では, ネットワークプロトコル, キュー, アクセス制御, - そして, 印字のためのその他の側面について扱いますが, + LPD では、ネットワークプロトコル、キュー、アクセス制御、 + そして、印字のためのその他の側面について扱いますが、 実際の作業のほとんどは - フィルタ よっておこなわれています. - フィルタは, プリンタと通信し, - プリンタのデバイス依存性や特殊な要求を扱うプログラムです. - 簡単なプリンタ設定では, - プレインテキストのためのフィルタをインストールしました. - このプレインテキストフィルタは, - ほとんどのプリンタで機能する極めて単純なものでした. + フィルタ よっておこなわれています。 + フィルタは、プリンタと通信し、 + プリンタのデバイス依存性や特殊な要求を扱うプログラムです。 + 簡単なプリンタ設定では、 + プレインテキストのためのフィルタをインストールしました。 + このプレインテキストフィルタは、 + ほとんどのプリンタで機能する極めて単純なものでした (「 - テキストフィルタのインストール」を参照) + テキストフィルタのインストール」を参照)。 - しかしながら, 形式変換やプリンタ課金, 特定のプリンタの癖, - など をうまく利用するためには, + しかしながら、形式変換やプリンタ課金、特定のプリンタの癖、 + など をうまく利用するためには、 フィルタがどのように機能するかという - ことを理解しておくべきです. これらの側面を扱うためには, - 最終的には, フィルタの責任であるからです. - そして, これは悪い情報ですが, ほとんどの場合において, + ことを理解しておくべきです。これらの側面を扱うためには、 + 最終的には、フィルタの責任であるからです。 + そして、これは悪い情報ですが、ほとんどの場合において、 あなた自身が - フィルタを供給する必要があるということです. また都合のよいことには, - たくさんのフィルタが一般的に利用できるということです. - もしフィルタがなかったとしても, - 普通はフィルタを作るのは簡単です. + フィルタを供給する必要があるということです。また都合のよいことには、 + たくさんのフィルタが一般的に利用できるということです。 + もしフィルタがなかったとしても、 + 普通はフィルタを作るのは簡単です。 - FreeBSD にも, プレインテキストを印字させることができる + FreeBSD にも、プレインテキストを印字させることができる /usr/libexec/lpr/lpf - というフィルタが1つ付いています. - (このフィルタはファイルに含まれるバックスペースやタブを扱います. - また, 課金をすることもできますが, - できることはこれだけしかありません.) + というフィルタが 1 つ付いています + (このフィルタはファイルに含まれるバックスペースやタブを扱います + また、課金をすることもできますが、 + できることはこれだけしかありません)。 いくつかのフィルタとフィルタの構成要素は - FreeBSD Ports Collection にもあります. + FreeBSD Ports Collection にもあります。 - この節で述べることは次の通りです. + この節で述べることは次の通りです。 - フィルタはどのように機能しているか」では, - 印字の過程におけ るフィルタの役割を概説します. - この節を読むことで, LPD がフィルタを使うときに, - 見えないところで何が - 起こっているかが理解できるでしょう. このことを知っておくと, + フィルタはどのように機能しているか」では、 + 印字の過程におけ るフィルタの役割を概説します。 + この節を読むことで、LPD がフィルタを使うときに、 + 見えないところで 何が + 起こっているかが理解できるでしょう。このことを知っておくと、 プリンタそれぞれに様々なフィルタをインストールしたときに - 遭遇するかもしれない問題を予期したり, - デバッグするときに役立つでしょう. + 遭遇するかもしれない問題を予期したり、 + デバッグするときに役立つでしょう。 - LPD では, すべてのプリンタからデフォルトで - プレインテキストを印字できることを期待しています. このことは, + LPD では、すべてのプリンタからデフォルトで + プレインテキストを印字できることを期待しています。このことは、 プレインテキストを直接印字できない PostScript (また - は他の言語用の) プリンタでは問題を引き起こします. 「 プレインテキストのジョブを PostScript - プリンタで印字する」 で, - この問題を克服する方法について述べます. - PostScript プリンタをお持ちの方は, - この節をお読みになることをおすすめします. + プリンタで印字する」 で、 + この問題を克服する方法について述べます。 + PostScript プリンタをお持ちの方は、 + この節をお読みになることをおすすめします。 PostScript は様々なプログラムのための有名な出 - 力形式です. ある人たちは (著者自身を含めて) PostScript - のコードさえも直接書いてしまいます. しかし, PostScript - プリンタは高価です. 「非 PostScript プリンタで - PostScript をシミュレートする」では, PostScript - データを非 PostScript プリンタに受けつけさせ, - 印字させるために, - どのようにしてプリンタ用のテキストフィルタをさらに変更すればよいのか, - ということについて述べます. PostScript - プリンタを持っていない方は, - この節をお読みになることをおすすめします. + PostScript をシミュレートする」では、PostScript + データを非 PostScript プリンタに受けつけさせ、 + 印字させるために、 + どのようにしてプリンタ用のテキストフィルタをさらに変更すればよいのか、 + ということについて述べます。PostScript + プリンタを持っていない方は、 + この節をお読みになることをおすすめします。 - 変換フィルタ」では, - 図形や組版データといった特定のファイル形式を, - プリンタが理解できる形式へ変換する作業を自動的におこなわせる方法について述べます. - この節を読むと, troff のデータを印字するには lpr - -t, または, TeX DVI を印字するには - lpr -d, - ラスタイメージデータを印字するには lpr -v, + 変換フィルタ」では、 + 図形や組版データといった特定のファイル形式を、 + プリンタが理解できる形式へ変換する作業を自動的におこなわせる方法について述べます。 + この節を読むと、troff のデータを印字するには lpr + -t、または、TeX DVI を印字するには + lpr -d、 + ラスタイメージデータを印字するには lpr -v、 などといったようにユーザが入力することができるように - プリンタの設定をおこなうことができます. - この節もお読みになることをお薦めします. + プリンタの設定をおこなうことができます。 + この節もお読みになることをお薦めします。 出力フィルタ」 - では, あまり使われない LPD の機能のすべて, すなわち, - 出力フィルタに関することが記述されています. ヘッダページ + では、あまり使われない LPD の機能のすべて、すなわち、 + 出力フィルタに関することが記述されています。ヘッダページ (「 - ヘッダページ」参照) を印字させていない場合は, - 多分, この節は飛ばしても構わないでしょう. + ヘッダページ」参照) を印字させていない場合は、 + 多分、この節は飛ばしても構わないでしょう。 テキストフィルタ - lpf」では, lpf - についての説明が, ほぼ完全におこなわれています. これは - FreeBSD に付属するラ インプリンタ (または, - ラインプリンタのように動作するレーザプリンタ) のための, - 単純なテキストフィルタです. + lpf」では、lpf + についての説明が、ほぼ完全におこなわれています。これは + FreeBSD に付属するラ インプリンタ (または、 + ラインプリンタのように動作するレーザプリンタ) のための、 + 単純なテキストフィルタです。 プレインテキストを印字したことに対して課金をおこなう方法が - 至急必要な場合, もしくは, バックスペース文字を印字しようと - すると煙を発するプリンタを持っている場合は, 絶対に - lpf を検討するべきです. + 至急必要な場合、もしくは、バックスペース文字を印字しようと + すると煙を発するプリンタを持っている場合は、絶対に + lpf を検討するべきです。 フィルタはどのように機能しているか - 既に言及したように, フィルタとは, プリンタにデータを送る際に, + 既に言及したように、フィルタとは、プリンタにデータを送る際に、 デバイスに依存した部分を取り扱うために LPD - によって起動される実行プログラムです. + によって起動される実行プログラムです。 - LPD がジョブ中のファイルを印字しようとするとき, LPD - はフィルタプログラムを起動します. このとき, - フィルタの標準入力を印字するファイルに, - 標準出力をプリンタに, そして, 標準エラー出力を + LPD がジョブ中のファイルを印字しようとするとき、LPD + はフィルタプログラムを起動します。このとき、 + フィルタの標準入力を印字するファイルに、 + 標準出力をプリンタに、そして、標準エラー出力を エラーログファイル (/etc/printcap 内の - lf 項目で指定されたファイル, または, - 指定されていない場合は, デフォルトとして - /dev/console) にセットします. + lf 項目で指定されたファイル、または、 + 指定されていない場合は、デフォルトとして + /dev/console) にセットします。 troff - LPD が起動するフィルタと, その引数が何であるかは, + LPD が起動するフィルタと、その引数が何であるかは、 /etc/printcap - ファイルの内容と, ジョブの起動時にユーザが指定した - &man.lpr.1; コマンドの引数に依存しています. - 例えば, ユーザが lpr -t と入力した場合は, + ファイルの内容と、ジョブの起動時にユーザが指定した + &man.lpr.1; コマンドの引数に依存しています。 + 例えば、ユーザが lpr -t と入力した場合は、 LPD は出力先のプリンタ用の tf 項目で指定されている troff - 用のフィルタを起動させるでしょう. - ユーザがプレインテキストの印字を指示したときは, + 用のフィルタを起動させるでしょう。 + ユーザがプレインテキストの印字を指示したときは、 if で指定されたフィルタが起動されるでしょう - (このことはほとんどの場合にあてはまります. - 詳細については, 「 - 出力フィルタ」をご覧ください). + (このことはほとんどの場合にあてはまります。 + 詳細については、「 + 出力フィルタ」をご覧ください)。 /etc/printcap - で指定可能なフィルタは次の3種類があります. + で指定可能なフィルタは次の3種類があります。 テキストフィルタ (LPD のドキュメントでは紛らわしいことに 入力フィルタと呼んでいますが) - は一般のテキストの印字を扱います. これはデフォルトのフィルタと - 考えてください. LPD では, すべてのプリンタに対して, - デフォルトでプレインテキストが印字できることを期待しています. - さらに, バックスペースやタブを正しく扱い, また, + は一般のテキストの印字を扱います。これはデフォルトのフィルタと + 考えてください。LPD では、すべてのプリンタに対して、 + デフォルトでプレインテキストが印字できることを期待しています。 + さらに、バックスペースやタブを正しく扱い、また、 他の特殊な文字が入力されてもプリンタに混乱を来さないように - するのはテキストフィルタの仕事であると考えています. + するのはテキストフィルタの仕事であると考えています。 プリンタの使用に対して課金をしなくてはならない環境にあ - るときは, テキストフィルタが印字したページ数を数える作 - 業もしなくてはなりません. この作業は, 通常, 印字した行 - 数を数え, これをプリンタが1ページ当たりに印字できる行 - 数と比較することでおこなわれます. + るときは、テキストフィルタが印字したページ数を数える作 + 業もしなくてはなりません。この作業は、通常、印字した行 + 数を数え、これをプリンタが 1 ページ当たりに印字できる行 + 数と比較することでおこなわれます。 - テキストフィルタは, 次のような引数を付けて起動されます. + テキストフィルタは、次のような引数を付けて起動されます。 filter-name -c -wwidth -llength -iindent -n login -h host acct-file - ここで, + ここで、 lpr -l - によってジョブが入力されたときに与えられます. + によってジョブが入力されたときに与えられます。 width /etc/printcap で指定された pw (page width) - 項目の値が与えられます. デフォルトは, - 132です. + 項目の値が与えられます。デフォルトは、 + 132 です。 length pl (page length) - 項目で指定された値が与えられます. - デフォルトは66です. + 項目で指定された値が与えられます。 + デフォルトは 66 です。 indent lpr -i - によって与えられた字下げの量で, - デフォルトは 0 です. + によって与えられた字下げの量で、 + デフォルトは 0 です。 login ファイルを印字したユーザのアカウント名が - 与えられます. + 与えられます。 host ジョブが入力されたホスト名が - 与えられます. + 与えられます。 acct-file af 項目で指定されている課金データファイル - の名前が与えられます. + の名前が与えられます。 プリンタ フィルタ - 変換フィルタは, + 変換フィルタは、 特定のファイル形式をプリンタ - が紙に印字できるようなものに変換します. 例えば, - プリンタで ditroff 組版データを直接印字することはできません. - しかし, ditroff データをプリンタが消化し, - 印字することができる形式へ変換するために, ditroff - ファイル用フィルタをインストールすることができます. + が紙に印字できるようなものに変換します。例えば、 + プリンタで ditroff 組版データを直接印字することはできません。 + しかし、ditroff データをプリンタが消化し、 + 印字することができる形式へ変換するために、ditroff + ファイル用フィルタをインストールすることができます。 「 変換フィルタ」 - で, これらに関するすべてについて説明します. - プリンタの課金をする必要がある場合は, - 変換フィルタでも印字ページを数える作業が必要となります. + で、これらに関するすべてについて説明します。 + プリンタの課金をする必要がある場合は、 + 変換フィルタでも印字ページを数える作業が必要となります。 - 変換フィルタは次の引数をとって起動されます. + 変換フィルタは次の引数をとって起動されます。 filter-name -xpixel-width -ypixel-height -n login -h host acct-file - ここで, pixel-width は, + ここで、pixel-width は、 px 項目で指定された値 - (デフォルトは0), - pixel-height は, + (デフォルトは 0)、 + pixel-height は、 py 項目で指定された値 - (デフォルトは0) です. + (デフォルトは 0) です。 - 出力フィルタは, + 出力フィルタは、 テキストフィルタが指定されて - おらず, かつ, - ヘッダページの出力が許可されている場合にのみ使われます. + おらず、かつ、 + ヘッダページの出力が許可されている場合にのみ使われます。 「 - 出力フィルタ」で, これらのことについて説明します. - アウトプットフィルタに対する引数は次の2つだけです. + 出力フィルタ」で、これらのことについて説明します。 + アウトプットフィルタに対する引数は次の 2 つだけです。 filter-name -wwidth -llength - ここで, は, - テキストフィルタの場合と同じです. + ここで、 は、 + テキストフィルタの場合と同じです。 - フィルタは, 次に示すの終了状態をもってプログラムを - exit するべきです. + フィルタは、次に示すの終了状態をもってプログラムを + exit するべきです。 exit 0 - フィルタがファイルを正常に印字した場合. + フィルタがファイルを正常に印字した場合。 exit 1 - フィルタはファイルの印字に失敗したが, LPD - に再度ファイルの印字を試みて欲しい場合. - この終了状態で終了した場合, LPD - はフィルタを再スタートします. + フィルタはファイルの印字に失敗したが、LPD + に再度ファイルの印字を試みて欲しい場合。 + この終了状態で終了した場合、LPD + はフィルタを再スタートします。 exit 2 - フィルタはファイルの印字に失敗し, かつ, LPD - に再出力を試みて欲しくない場合. この場合, LPD - はそのファイルを放棄します. + フィルタはファイルの印字に失敗し、かつ、LPD + に再出力を試みて欲しくない場合。この場合、LPD + はそのファイルを放棄します。 FreeBSD に付属するテキストフィルタ - /usr/libexec/lpr/lpf は, FORM FEED - 文字が送られたときやプリンタ使用に対する課金をどのようにするかを決定するために, - ページ幅やページ長の引数を利用します. また, - 課金用のエントリを作成するため, ログイン名, ホスト名, - 課金ファイル名の引数を利用します. - - もし, フィルタの購入を検討しているならば, LPD - と互換性があるかどうかを確認してください. もしそうならば, - 上述の引数リストをサポートしていなければなりません. - 一般向けの使用のためにフィルタを作成する計画をしている場合は, - 同じ引数リストと終了コードをサポートしてください. + /usr/libexec/lpr/lpf は、FORM FEED + 文字が送られたときやプリンタ使用に対する課金をどのようにするかを決定するために、 + ページ幅やページ長の引数を利用します。また、 + 課金用のエントリを作成するため、ログイン名、ホスト名、 + 課金ファイル名の引数を利用します。 + + もし、フィルタの購入を検討しているならば、LPD + と互換性があるかどうかを確認してください。もしそうならば、 + 上述の引数リストをサポートしていなければなりません。 + 一般向けの使用のためにフィルタを作成する計画をしている場合は、 + 同じ引数リストと終了コードをサポートしてください。 プレインテキストのジョブを PostScript プリンタで印字する プリントジョブ - コンピュータと PostScript (または, 他の言語に対応した) - プリンタをあなたしか使用しない場合は, プリンタにプレ - インテキストを絶対に送らない, そして, + コンピュータと PostScript (または、他の言語に対応した) + プリンタをあなたしか使用しない場合は、プリンタにプレ + インテキストを絶対に送らない、そして、 プリンタにプレインテキストを送りたがっている - 様々なプログラムの機能を決して使わないことにしてください. そうすれば, - この節に書かれたことに心を煩わせる必要はまったくなくなります. + 様々なプログラムの機能を決して使わないことにしてください。そうすれば、 + この節に書かれたことに心を煩わせる必要はまったくなくなります。 - しかし, PostScript - とプレインテキストの両方のジョブをプリンタへ送りたいと思っている場合は, - プリンタ設定についての要求が増えるでしょう. - 両者をプリンタへ送信するためには, + しかし、PostScript + とプレインテキストの両方のジョブをプリンタへ送りたいと思っている場合は、 + プリンタ設定についての要求が増えるでしょう。 + 両者をプリンタへ送信するためには、 到着したジョブがプレインテキストであるか - PostScript であるかを検出するテキストフィルタが必要です. + PostScript であるかを検出するテキストフィルタが必要です。 PostScript のジョブはすべて %! で始まらなければならないことになっています - (他のプリンタ言語に関しては, - プリンタのドキュメントをご覧ください). - ジョブの最初の2文字がこれならば, PostScript であることが分かります. - したがって, + (他のプリンタ言語に関しては、 + プリンタのドキュメントをご覧ください)。 + ジョブの最初の 2 文字がこれならば、PostScript であることが分かります。 + したがって、 ジョブのそれ以降の部分をプリンタに直接送ることができます - (訳注: PostScript では, % - 以降はコメントとして扱われるので, 最初の %! の行を読み捨てても問題はない). - 最初の2文字が %! でない場合は, - フィルタはテキストを PostScript に変換し, - その結果を使って印字をおこないます. + (訳注: PostScript では、% + 以降はコメントとして扱われるので、最初の %! の行を読み捨てても問題はない)。 + 最初の2文字が %! でない場合は、 + フィルタはテキストを PostScript に変換し、 + その結果を使って印字をおこないます。 - この作業をどうやってやればよいのでしょうか. + この作業をどうやってやればよいのでしょうか。 プリンタ シリアル - シリアルポートにプリンタを接続した場合は, - lprps をインストールすることをお勧めします. - lprps は PostScript 用のフィルタで, - プリンタとの双方向通信をおこないます. - このフィルタでは, プリンタからの冗長な情報を得ることで, - プリンタの状況を示すファイルが更新されていきます. - したがって, ユーザや管理者は + シリアルポートにプリンタを接続した場合は、 + lprps をインストールすることをお勧めします。 + lprps は PostScript 用のフィルタで、 + プリンタとの双方向通信をおこないます。 + このフィルタでは、プリンタからの冗長な情報を得ることで、 + プリンタの状況を示すファイルが更新されていきます。 + したがって、ユーザや管理者は (トナー残量少紙詰まりといった) - プリンタの状況を正確に知ることができます. しかし, - もっと重要なことは, psif - と呼ばれるプログラムが含まれているということです. - このプログラムは, - 入力されたジョブがプレインテキストかどうかを検出し, - これを PostScript に変換するために, textps + プリンタの状況を正確に知ることができます。しかし、 + もっと重要なことは、psif + と呼ばれるプログラムが含まれているということです。 + このプログラムは、 + 入力されたジョブがプレインテキストかどうかを検出し、 + これを PostScript に変換するために、textps (lprps に付属する別のプログラム) - を呼び出します. そして, このジョブをプリンタに送るために, - lprps が使われます. + を呼び出します。そして、このジョブをプリンタに送るために、 + lprps が使われます。 lprps は FreeBSD Ports Collection に含まれています (Ports Collection - を参照してください). - もちろん,自分自身でプログラムを取ってきて, コンパイルし, - インストールすることもできます. lprps - をインストールした後は, lprps + を参照してください)。 + もちろん、自分自身でプログラムを取ってきて、コンパイルし、 + インストールすることもできます。lprps + をインストールした後は、lprps の一部である psif - プログラムのパス名を指定するだけです. Ports Collection から - lprps をインストールしたときは, + プログラムのパス名を指定するだけです。Ports Collection から + lprps をインストールしたときは、 /etc/printcap の中のシリアル接続した - PostScript プリンタのエントリに対して, 次を使ってください. + PostScript プリンタのエントリに対して、次を使ってください。 :if=/usr/local/libexec/psif: LPD - にプリンタをリード・ライトモードでオープンさせるために, - rw 項目も指定すべきです. + にプリンタをリード・ライトモードでオープンさせるために、 + rw 項目も指定すべきです。 - パラレルポートに接続したプリンタの場合 (すなわち, + パラレルポートに接続したプリンタの場合 (すなわち、 lprps が - 必要としているプリンタとの双方向通信ができない), - テキストフィルタとして次のシェルスクリプトを使うことができます. + 必要としているプリンタとの双方向通信ができない)、 + テキストフィルタとして次のシェルスクリプトを使うことができます。 #!/bin/sh # # psif - Print PostScript or plain text on a PostScript printer # Script version; NOT the version that comes with lprps # Installed in /usr/local/libexec/psif # read first_line first_two_chars=`expr "$first_line" : '\(..\)'` if [ "$first_two_chars" = "%!" ]; then # # PostScript job, print it. # echo "$first_line" && cat && printf "\004" && exit 0 exit 2 else # # Plain text, convert it, then print it. # ( echo "$first_line"; cat ) | /usr/local/bin/textps && printf "\004" && exit 0 exit 2 fi - 上記のスクリプトにおいて, textps + 上記のスクリプトにおいて、textps はプレインテキストから PostScript - へ変換するために別にインストールしたプログラムです. - テキストから PostScript へ変換するのには, お好みのどんなプロ - グラムでも使うことができます. FreeBSD Ports Collection + へ変換するために別にインストールしたプログラムです。 + テキストから PostScript へ変換するのには、お好みのどんなプロ + グラムでも使うことができます。FreeBSD Ports Collection (Ports Collection - を参照してください) には, a2ps + を参照してください) には、a2ps と呼ばれるテキストから - PostScript に変換するプログラムが入っています. + PostScript に変換するプログラムが入っています。 訳注 - 上記スクリプトでは, - 先頭の行を読み込むために read を使っていますが, - 困ったことに, - read は読み込んだ文字列の先頭の空白文字を取り除いてしまいます. - 従って, - これらの空白文字は印字されないことになり, - 印字結果がファイルのイメージと異なる場合が出てきます. - この事情は csh を利用した場合でも変わりません. - 仮に, 先頭の空白文字を除去しない read コマンドを作ったとしても, + 上記スクリプトでは、 + 先頭の行を読み込むために read を使っていますが、 + 困ったことに、 + read は読み込んだ文字列の先頭の空白文字を取り除いてしまいます。 + 従って、 + これらの空白文字は印字されないことになり、 + 印字結果がファイルのイメージと異なる場合が出てきます。 + この事情は csh を利用した場合でも変わりません。 + 仮に、先頭の空白文字を除去しない read コマンドを作ったとしても、 「echo $first_line」の $first_line 変数の内容をシェルが展開する際に $first_line - の先頭の空白文字が失われるため, 問題の解決にはなりません. - 残念ながら, - 訳者はこの問題をシェルプログラムだけで解決する方法をしりません. - perl か C 言語の力を借りないと解決できないと思います. + の先頭の空白文字が失われるため、問題の解決にはなりません。 + 残念ながら、 + 訳者はこの問題をシェルプログラムだけで解決する方法をしりません。 + perl か C 言語の力を借りないと解決できないと思います。 非 PostScript プリンタで PostScript をシミュレートする PostScript エミュレーション Ghostscript PostScript は質の高い組版と印字をおこなうための事実 - 上の標準です. しかしながら, PostScript は, - 高価な標準です. ありがたいことに, + 上の標準です。しかしながら、PostScript は、 + 高価な標準です。ありがたいことに、 Alladin Enterprises から - Ghostscript と呼ばれる, - PostScript 互換の動作をするフリーのプログラムが出されていて, - FreeBSD で動きます. - Ghostscript はほとんどの PostScript ファイルを読むことができ, + Ghostscript と呼ばれる、 + PostScript 互換の動作をするフリーのプログラムが出されていて、 + FreeBSD で動きます。 + Ghostscript はほとんどの PostScript ファイルを読むことができ、 これらの各ページをたくさんのブランドの非 PostScript プリンタを含む - 様々なデバイス用に変換することができます. - Ghostscript をインストールし, - プリンタ用の特別なテキストフィルタを使うことによって, + 様々なデバイス用に変換することができます。 + Ghostscript をインストールし、 + プリンタ用の特別なテキストフィルタを使うことによって、 非 PostScript プリンタをあたかも本物の PostScript - プリンタであるかのように動作させることができます. + プリンタであるかのように動作させることができます。 - Ghostscript は FreeBSD Ports Collection に入っていますので, - そこからインストールすることができます. また, - 自分でソースプログラムを持ってきて, コンパイルし, インストー - ルすることもできます. この作業はとても簡単にできます. + Ghostscript は FreeBSD Ports Collection に入っていますので、 + そこからインストールすることができます。また、 + 自分でソースプログラムを持ってきて、コンパイルし、インストー + ルすることもできます。この作業はとても簡単にできます。 - PostScript プリンタをシミュレートさせる場合は, + PostScript プリンタをシミュレートさせる場合は、 テキストフィルタに PostScript - ファイルを印字しようとしているかどうかを検出させます. - PostScript ファイルでない場合は, + ファイルを印字しようとしているかどうかを検出させます。 + PostScript ファイルでない場合は、 フィルタはそのファイルを直接プリンタに送ります - (訳注: テキストファイルを直接印字できない場合は, もちろん, - 変換フィルタを通す必要があります). PostScript の場合は, - まず, Ghostscript を使い, - ファイルをそのプリンタが理解できる形式へ変換します. - - 次の例のスクリプトは, Hewlett Packard DeskJet 500 - プリンタ用 のテキストフィルタです. - 他のプリンタで用いるときは, + (訳注: テキストファイルを直接印字できない場合は、もちろん、 + 変換フィルタを通す必要があります)。PostScript の場合は、 + まず、Ghostscript を使い、 + ファイルをそのプリンタが理解できる形式へ変換します。 + + 次の例のスクリプトは、Hewlett Packard DeskJet 500 + プリンタ用 のテキストフィルタです。 + 他のプリンタで用いるときは、 引数を gs (Ghostscript) - コマンドに変えてください. (gs -h - と入力すると, 現在インストールされている Ghostscript - でサポートされているデバイスのリストが得られます). + コマンドに変えてください (gs -h + と入力すると、現在インストールされている Ghostscript + でサポートされているデバイスのリストが得られます)。 #!/bin/sh # # ifhp - Print Ghostscript-simulated PostScript on a DeskJet 500 # Installed in /usr/local/libexec/hpif # # Treat LF as CR+LF: # printf "\033&k2G" || exit 2 # # Read first two characters of the file # read first_line first_two_chars=`expr "$first_line" : '\(..\)'` if [ "$first_two_chars" = "%!" ]; then # # It is PostScript; use Ghostscript to scan-convert and print it. # # Note that PostScript files are actually interpreted programs, # and those programs are allowed to write to stdout, which will # mess up the printed output. So, we redirect stdout to stderr # and then make descriptor 3 go to stdout, and have Ghostscript # write its output there. Exercise for the clever reader: # capture the stderr output from Ghostscript and mail it back to # the user originating the print job. # exec 3>&1 1>&2 /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \ -sOutputFile=/dev/fd/3 - && exit 0 # /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 -sOutputFile=- - \ && exit 0 else # # Plain text or HP/PCL, so just print it directly; print a form # at the end to eject the last page. # echo $first_line && cat && printf "\033&l0H" && exit 0 fi exit 2 - 最後に, if 項目を通して, LPD - にこのフィルタを教えてやる必要があります. + 最後に、if 項目を通して、LPD + にこのフィルタを教えてやる必要があります。 :if=/usr/local/libexec/hpif: - これでおしまいです. lpr plain.text + これでおしまいです。lpr plain.text とか lpr whatever.ps - と入力してみましょう. どちらも正常に印字されるはずです. + と入力してみましょう。どちらも正常に印字されるはずです。 訳注 - 日本語を印字する場合は, - 日本語対応の Ghostscript が必要です. 日本語対応版の - Ghostscript も Ports Collection に入っています. + 日本語を印字する場合は、 + 日本語対応の Ghostscript が必要です。日本語対応版の + Ghostscript も Ports Collection に入っています。 変換フィルタ プリンタ設定導入編」 - に書かれた簡単な設定が完了したら, 最初に, - やってみたいと思うことは, 多分(プレイン ASCII テキストに加えて) - 好みのファイル形式のための変換フィルタをインストールすることでしょう. + に書かれた簡単な設定が完了したら、最初に、 + やってみたいと思うことは、多分 (プレイン ASCII テキストに加えて) + 好みのファイル形式のための変換フィルタをインストールすることでしょう。 - なぜ, 変換フィルタをインストールするのか? + なぜ、変換フィルタをインストールするのか? TeX dvi ファイルの印刷 - 変換フィルタによって, - 様々な種類のファイルを印字することが簡単になります. 例えば, TeX - 組版システムでたくさんの仕事をしたと仮定しましょう. - そして, PostScript プリンタが接続 されているとします. - すると, TeX で DVI ファイルを作成する度に, DVI - ファイルを印字するために, - これを PostScript ファイルに変換する必要があります. - このコマンドは次のようになるでしょう. + 変換フィルタによって、 + 様々な種類のファイルを印字することが簡単になります。例えば、TeX + 組版システムでたくさんの仕事をしたと仮定しましょう。 + そして、PostScript プリンタが接続 されているとします。 + すると、TeX で DVI ファイルを作成する度に、DVI + ファイルを印字するために、 + これを PostScript ファイルに変換する必要があります。 + このコマンドは次のようになるでしょう。 &prompt.user; dvips seaweed-analysis.dvi &prompt.user; lpr seaweed-analysis.ps - DVI ファイル用の変換フィルタがインストールしてあると, + DVI ファイル用の変換フィルタがインストールしてあると、 LPD に 変換を肩代わりさせることで毎回毎回 - おこなわなければならなかった面倒な変換作業を省くことができます. - つまり, DVI を生成したら, - 次のような1回のコマンド入力だけで, これが印字されます. + おこなわなければならなかった面倒な変換作業を省くことができます。 + つまり、DVI を生成したら、 + 次のような 1 回のコマンド入力だけで、これが印字されます。 &prompt.user; lpr -d seaweed-analysis.dvi - LPD に DVI ファイルの変換をさせるためには, - オプション を指定します. + LPD に DVI ファイルの変換をさせるためには、 + オプション を指定します。 変換オプションのリストは「 整形と変換に関するオプション」 - に載せてあります. + に載せてあります。 変化のオプションのそれぞれをプリンタに - サポートさせるためには, - 変換フィルタをインストールし, + サポートさせるためには、 + 変換フィルタをインストールし、 そのパス名を /etc/printcap - の中で指定しなくてはなりません. 変換フィルタは, - プレインテキストを印字する代わりに, フィルタはファイルを - プリンタが理解できる形式に変換するところを除けば, + の中で指定しなくてはなりません。変換フィルタは、 + プレインテキストを印字する代わりに、フィルタはファイルを + プリンタが理解できる形式に変換するところを除けば、 「プリンタの簡単な設定」で説明したテキストファイル (「 テキストフィルタのインストール」 を見て下さい) - に似ています. + に似ています。 どの変換フィルタをインストールすべきか? - 使いたいと思う変換フィルタをインストールすべきです. - DVI のデータを頻繁に印字するならば, DVI 変換フィルタ - をインストールするのが適切でしょう. 印字しなくてはなら - ない troff を大量に抱えている場合は, 多分, - troff フィルタが欲しくなるはずです. + 使いたいと思う変換フィルタをインストールすべきです。 + DVI のデータを頻繁に印字するならば、DVI 変換フィルタ + をインストールするのが適切でしょう。印字しなくてはなら + ない troff を大量に抱えている場合は、多分、 + troff フィルタが欲しくなるはずです。 - 次の表は, LPD で動作するフィルタと, + 次の表は、LPD で動作するフィルタと、 /etc/printcap - ファイルでのエントリする項目, そして, + ファイルでのエントリする項目、そして、 lpr - コマンドで呼び出す方法をまとめたものです. + コマンドで呼び出す方法をまとめたものです。 ファイル形式 /etc/printcap項目 lpr オプション cifplot cf DVI df plot gf ditroff nf FORTRAN text rf troff tf raster vf プレインテキスト if - なし, , または + なし、、または - 先の例のように, lpr -d - を使うためには, 出力先のプリンタの - /etc/printcap 内のエントリで, + 先の例のように、lpr -d + を使うためには、出力先のプリンタの + /etc/printcap 内のエントリで、 df - 項目が必要であることが分かります. + 項目が必要であることが分かります。 fortran - 反論はあるかも知れませんが, FORTRAN テキストや plot - のような形式は, 多分, 廃れてていくでしょう. - あなたのサイトで, 自前のフィルタをインストールするだけで, - プリントオプションのいくつか, あるいは, - 全部に新しい意味を与えることができます. 例えば, + 反論はあるかも知れませんが、FORTRAN テキストや plot + のような形式は、多分、廃れてていくでしょう。 + あなたのサイトで、自前のフィルタをインストールするだけで、 + プリントオプションのいくつか、あるいは、 + 全部に新しい意味を与えることができます。例えば、 Prinerleaf ファイル (Interleaf デスクトップパブリッシングプログラムによるファイル) - を直接印字したいとします. - そして, Printerleaf 用の変換フィルタを + を直接印字したいとします。 + そして、Printerleaf 用の変換フィルタを gf 項目で - 指定したパスにインストールすれば, lpr - -g の意味はPrinterleaf - ファイルを印字する意味だとユーザに教えることができます. + 指定したパスにインストールすれば、lpr + -g の意味は Printerleaf + ファイルを印字する 意味だとユーザに教えることができます。 変換フィルタのインストール 変換フィルタは FreeBSD - の基本システムのインストールとは別にインストールするプログラムなので, - 変換フィルタは, 多分, - /usr/local ディレクトリの下に置くべきです. - フィルタは LPD だけが実行する特別なプログラム, - すなわち, 一般ユーザが実行する必要すらないプログラムなので, + の基本システムのインストールとは別にインストールするプログラムなので、 + 変換フィルタは、多分、 + /usr/local ディレクトリの下に置くべきです。 + フィルタは LPD だけが実行する特別なプログラム、 + すなわち、一般ユーザが実行する必要すらないプログラムなので、 /usr/local/libexec - ディレクトリに置くのが普通です. + ディレクトリに置くのが普通です。 - 変換フィルタを使用可能にするためには, + 変換フィルタを使用可能にするためには、 /etc/printcap の目的のプリンタの適切な項目に - フィルタがあるパス名を指定します. + フィルタがあるパス名を指定します。 DVI 変換フィルタをプリンタ bamboo - のエントリに加えてみましょう. プリンタ + のエントリに加えてみましょう。プリンタ bamboodf 項目を新たに加えた /etc/printcap - ファイルの例を以下に再掲します. + ファイルの例を以下に再掲します。 # # /etc/printcap for host rose - added df filter for bamboo # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:\ :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: DVI フィルタは /usr/local/libexec/psdf という - 名前のシェルスクリプトです. - このスクリプトは次のようになっています. + 名前のシェルスクリプトです。 + このスクリプトは次のようになっています。 #!bin/sh # # psdf - DVI to PostScript printer filter # Installed in /usr/local/libexec/psdf # # Invoked by lpd when user runs lpr -d # exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@" - このスクリプトでは, dvips - をフィルタモード (引数 ) で, - 標準入力上で起動しています. 標準入力は印字するジョブです. - それから, PostScript プリンタ用フィルタ + このスクリプトでは、dvips + をフィルタモード (引数 ) で、 + 標準入力上で起動しています。標準入力は印字するジョブです。 + それから、PostScript プリンタ用フィルタ lprps (これについては「 プレインテキストのジョブを PostScript プリンタで印字する」 を参照してください) を LPD - に与えられた引数を付けて起動します. + に与えられた引数を付けて起動します。 lprps - はこれらの引数を印字されたページ分の課金をおこなうために使われます. + はこれらの引数を印字されたページ分の課金をおこなうために使われます。 変換フィルタのその他の例 - 変換フィルタのインストールには決まったステップがないので, - その代わりに, 例をもっと挙げることにします. - これを自分でフィルタを作る際のガイドにしてください. - 適当な例があったら, それをそのまま使ってください. + 変換フィルタのインストールには決まったステップがないので、 + その代わりに、例をもっと挙げることにします。 + これを自分でフィルタを作る際のガイドにしてください。 + 適当な例があったら、それをそのまま使ってください。 - 次のスクリプト例は, Hewlett Packard LaserJet III-Si - のための, raster (ええと・・実は, GIF ファイル) - 用の変換フィルタです. + 次のスクリプト例は、Hewlett Packard LaserJet III-Si + のための、raster (ええと・・実は、GIF ファイル) + 用の変換フィルタです。 #!/bin/sh # # hpvf - Convert GIF files into HP/PCL, then print # Installed in /usr/local/libexec/hpvf PATH=/usr/X11R6/bin:$PATH; export PATH giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \ && exit 0 \ || exit 2 - ここでは, GIF ファイルから PNM (portable anymap) - 形式に変換し, 次に PGM (portable graymap) 形式に変換してから, - LaserJet/PCL-互換データに変換しています. + ここでは、GIF ファイルから PNM (portable anymap) + 形式に変換し、次に PGM (portable graymap) 形式に変換してから、 + LaserJet/PCL-互換データに変換しています。 上記のフィルタを使うプリンタのためのエントリを付け加えた /etc/printcap - ファイルは次のようになります. + ファイルは次のようになります。 # # /etc/printcap for host orchid # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif:\ :vf=/usr/local/libexec/hpvf: - 次のスクリプトは, PostScript プリンタ + 次のスクリプトは、PostScript プリンタ bamboo のための groff 組版システムの - troff データのための変換フィルタです. + troff データのための変換フィルタです。 #!/bin/sh # # pstf - Convert groff's troff data into PS, then print. # Installed in /usr/local/libexec/pstf # exec grops | /usr/local/libexec/lprps "$@" - 上記のスクリプトではプリンタとの通信をおこなうため, - lprps をまた利用しています. - プリンタがパラレルポートに接続されている場合は, 代わりに, - 次のスクリプトを使うかもしれません. + 上記のスクリプトではプリンタとの通信をおこなうため、 + lprps をまた利用しています。 + プリンタがパラレルポートに接続されている場合は、代わりに、 + 次のスクリプトを使うかもしれません。 #!/bin/sh # # pstf - Convert groff's troff data into PS, then print. # Installed in /usr/local/libexec/pstf # exec grops - これで完成しました. 次に, フィルタを使用可能にするため + これで完成しました。次に、フィルタを使用可能にするため に /etc/printcap - に加える必要があるエントリを示します. + に加える必要があるエントリを示します。 :tf=/usr/local/libexec/pstf: - 次の例をみたら, FORTRAN のベテランは赤面するかもしれません. - この FORTRAN テキストフィルタは, - プレインテキストを直接印字できるすべてのプリンタで利用できます. + 次の例をみたら、FORTRAN のベテランは赤面するかもしれません。 + この FORTRAN テキストフィルタは、 + プレインテキストを直接印字できるすべてのプリンタで利用できます。 このフィルタをプリンタ teak - にインストールすることにしましょう. + にインストールすることにしましょう。 #!/bin/sh # # hprf - FORTRAN text filter for LaserJet 3si: # Installed in /usr/local/libexec/hprf # printf "\033&k2G" && fpr && printf "\033&l0H" && exit 0 exit 2 - そして, このフィルタを使用可能にするため, 以下の行を + そして、このフィルタを使用可能にするため、以下の行を /etc/printcap のプリンタ - teak のエントリに加えます. + teak のエントリに加えます。 :rf=/usr/local/libexec/hprf: - これが最後の, そして, 若干複雑な例です. 前に紹介した - LaserJet プリンタ teak に, DVI - フィルタを加える ことにしましょう. 最初に, - 簡単な部分をおこないます. すなわち, DVI フィルタの位置を - /etc/printcap に書き加えます. + これが最後の、そして、若干複雑な例です。前に紹介した + LaserJet プリンタ teak に、DVI + フィルタを加える ことにしましょう。最初に、 + 簡単な部分をおこないます。すなわち、DVI フィルタの位置を + /etc/printcap に書き加えます。 :df=/usr/local/libexec/hpdf: - さて, 難しい部分であるフィルタの作成をおこないます. - このために, DVI から LaserJet/PCL - への変換プログラムが必要です. FreeBSD の Ports Collection + さて、難しい部分であるフィルタの作成をおこないます。 + このために、DVI から LaserJet/PCL + への変換プログラムが必要です。FreeBSD の Ports Collection (Ports Collection - を参照してください) には, それがあります. - dvi2xx というのがそのパッケージの名前です. - これをインストールすると, 必要なプログラム - dvilj2p が使えます. このプログラムは - DVI を LaserJet IIp, LaserJet III, そして LaserJet 2000 - の互換コードへ変換してくれます. + を参照してください) には、それがあります。 + dvi2xx というのがそのパッケージの名前です。 + これをインストールすると、必要なプログラム + dvilj2p が使えます。このプログラムは + DVI を LaserJet IIp、LaserJet III、そして LaserJet 2000 + の互換コードへ変換してくれます。 dvilj2p はフィルタ - hpdf を極めて複雑にしています. - なぜなら, dvilj2p - は標準入力からデータを読み込むことができないからです. - このプログラムを働かせるためには, ファイル名が必要です. - もっと悪いことに, ファイル名は .dvi - で終わっている必要があり, 標準入力の代わりに, - /dev/fd/0 を使うのは問題があります. - この問題は, (.dvi で終わる) + hpdf を極めて複雑にしています。 + なぜなら、dvilj2p + は標準入力からデータを読み込むことができないからです。 + このプログラムを働かせるためには、ファイル名が必要です。 + もっと悪いことに、ファイル名は .dvi + で終わっている必要があり、標準入力の代わりに、 + /dev/fd/0 を使うのは問題があります。 + この問題は、(.dvi で終わる) 一時的なファイル名から/dev/fd/0 に (シンボリックな) リンクを張る - ことで回避することができます. これで, + ことで回避することができます。これで、 dvilj2p - に強制的に標準入力からデータを読み込ませることができます. + に強制的に標準入力からデータを読み込ませることができます。 - もう1つの問題は, 一時的なリンクを張るために + もう1つの問題は、一時的なリンクを張るために /tmp - ディレクトリを使うことができないという事実です. - シンボリックリンクはユーザ, グループが bin - であるユーザに所有されています. フィルタはユーザ - daemon として起動します. そして, + ディレクトリを使うことができないという事実です。 + シンボリックリンクはユーザ、グループが bin + であるユーザに所有されています。フィルタはユーザ + daemon として起動します。そして、 /tmp - ディレクトリはスティッキービットが立っています. - フィルタはリンクを作ることができます. しかし, - リンクは別のユーザに所有されているため, - 作業が終了したとき, このリンクを削除することができません. + ディレクトリはスティッキービットが立っています。 + フィルタはリンクを作ることができます。しかし、 + リンクは別のユーザに所有されているため、 + 作業が終了したとき、このリンクを削除することができません。 - その代わりに, シンボリックリンクは現在の作業ディレクトリ, - すなわち, スプーリングディレクトリ + その代わりに、シンボリックリンクは現在の作業ディレクトリ、 + すなわち、スプーリングディレクトリ (/etc/printcap の - sd 項目で指定する) に作ることにします. - フィルタが作業するにはここの場所は完璧な場所で, なぜなら, - 特に, スプーリングディレクトリのディ スクの空き容量は + sd 項目で指定する) に作ることにします。 + フィルタが作業するにはここの場所は完璧な場所で、なぜなら、 + 特に、スプーリングディレクトリのディ スクの空き容量は (ときどき) /tmp - ディレクトリよりもたくさんあるからです. + ディレクトリよりもたくさんあるからです。 - 以下に示すのが最後のフィルタです. + 以下に示すのが最後のフィルタです。 #!/bin/sh # # hpdf - Print DVI data on HP/PCL printer # Installed in /usr/local/libexec/hpdf PATH=/usr/local/bin:$PATH; export PATH # # Define a function to clean up our temporary files. These exist # in the current directory, which will be the spooling directory # for the printer. # cleanup() { rm -f hpdf$$.dvi } # # Define a function to handle fatal errors: print the given message # and exit 2. Exiting with 2 tells LPD to do not try to reprint the # job. # fatal() { echo "$@" 1>&2 cleanup exit 2 } # # If user removes the job, LPD will send SIGINT, so trap SIGINT # (and a few other signals) to clean up after ourselves. # trap cleanup 1 2 15 # # Make sure we are not colliding with any existing files. # cleanup # # Link the DVI input file to standard input (the file to print). # ln -s /dev/fd/0 hpdf$$.dvi || fatal "Cannot symlink /dev/fd/0" # # Make LF = CR+LF # printf "\033&k2G" || fatal "Cannot initialize printer" # # Convert and print. Return value from dvilj2p does not seem to be # reliable, so we ignore it. # dvilj2p -M1 -q -e- dfhp$$.dvi # # Clean up and exit # cleanup exit 0 自動変換: その他の変換フィルタ - ここまでに述べてきたフィルタによって, - 印字環境の能率が上がったことと思います. しかし, - これはどのフィルタを使うかを ( &man.lpr.1; のコマンドライン上で) - ユーザが指定しなくてはならないという代価を支払って実現されています. - コンピュータの事情にあまり詳しくないユーザにとって, + ここまでに述べてきたフィルタによって、 + 印字環境の能率が上がったことと思います。しかし、 + これはどのフィルタを使うかを (&man.lpr.1; のコマンドライン上で) + ユーザが指定しなくてはならないという代価を支払って実現されています。 + コンピュータの事情にあまり詳しくないユーザにとって、 フィルタのオプションを指定させられるということは - いらいらさせられるものになるでしょう. 更に悪いことに, - 間違ったフィルタオプションを指定されると, - 間違った形式のファイルがそのフィルタに適用されることになり, - その結果, 何百枚もの紙を掃き出すことになるかもしれません. + いらいらさせられるものになるでしょう。更に悪いことに、 + 間違ったフィルタオプションを指定されると、 + 間違った形式のファイルがそのフィルタに適用されることになり、 + その結果、何百枚もの紙を吐き出すことになるかもしれません。 - そのような結果になるならば, - 変換フィルタをインストールするよりもむしろ, + そのような結果になるならば、 + 変換フィルタをインストールするよりもむしろ、 テキストフィルタ (これがデフォルトフィルタなので) - に印字するよう要求されたファイルの形式を検出させ, 自動的に, - 適切な変換フィルタを起動するようにしたいと思うかもしれません. + に印字するよう要求されたファイルの形式を検出させ、自動的に、 + 適切な変換フィルタを起動するようにしたいと思うかもしれません。 ここでは file - コマンドのようなツールを役立たせることができます. - もちろん, いくつかの - ファイル形式の違いを見分けることは難しいことでしょう. - そして, もちろん, それらのファイルに対しては, - 変換フィルタを提供するだけで済ますこともできるのです. + コマンドのようなツールを役立たせることができます。 + もちろん、いくつかの + ファイル形式の違いを見分けることは難しいことでしょう。 + そして、もちろん、それらのファイルに対しては、 + 変換フィルタを提供するだけで済ますこともできるのです。 apsfilter プリンタ フィルタ apsfilter - FreeBSD Ports Collection には, apsfilter - と呼ばれる自 動変換をおこなうテキストフィルタがあります. - このフィルタは プレインテキスト, PostScript, DVI - ファイルを検出し, 適当な変換をおこなった後, - データを印字することができます. + FreeBSD Ports Collection には、apsfilter + と呼ばれる自動変換をおこなうテキストフィルタがあります。 + このフィルタは プレインテキスト、PostScript、DVI + ファイルを検出し、適当な変換をおこなった後、 + データを印字することができます。 出力フィルタ - LPD スプーリングシステムでは, - ここまでにまだ取り上げていないフィルタ形式, - 出力フィルタをサポートしています. 出力フィルタは, - テキストフィルタのように, - プレインテキストのみを印字するために意図されたものですが, - 非常に簡単化されています. テキストフィルタを用いずに, - 出力フィルタを使っている場合は, 次のようになります. + LPD スプーリングシステムでは、 + ここまでにまだ取り上げていないフィルタ形式、 + 出力フィルタをサポートしています。出力フィルタは、 + テキストフィルタのように、 + プレインテキストのみを印字するために意図されたものですが、 + 非常に簡単化されています。テキストフィルタを用いずに、 + 出力フィルタを使っている場合は、次のようになります。 - LPD はジョブ中の各ファイルに一度ではなく, - ジョブ全体に対して一度だけ出力フィルタを起動します. + LPD はジョブ中の各ファイルに一度ではなく、 + ジョブ全体に対して一度だけ出力フィルタを起動します。 - LPD は出力フィルタに対し, + LPD は出力フィルタに対し、 ジョブ中のファイルの先頭や末尾を特定するための対策を - 一切おこなっていません. + 一切おこなっていません。 - LPD はユーザのログイン名やホスト名をフィルタに渡しません. - したがって, 課金の処理をおこなうことは考えていません. - 実際, 出力フィルタには, 以下2つの引数しか与えられません. + LPD はユーザのログイン名やホスト名をフィルタに渡しません。 + したがって、課金の処理をおこなうことは考えていません。 + 実際、出力フィルタには、以下2つの引数しか与えられません。 filter-name -wwidth -llength - ここで, width - は対象となるプリンタの pw 項目, + ここで、width + は対象となるプリンタの pw 項目、 length は - pl 項目に指定された数です. + pl 項目に指定された数です。 - 出力フィルタの簡便さに誘惑されてはいけません. もし, - ジョブ中のそれぞれのファイルに別のページ番号を付加しようとしても, - 出力フィルタはうまく動作しないでしょう. - そのような動作を期待しているならば, - (入力フィルタとしても知られている) テキストフィルタを使ってください. - 詳しくは, 「 - テキストフィルタのインストール」をご覧ください. - さらに, 出力フィルタは, 実のところ, - もっと複雑になっています. まず, - 特殊なフラグ文字を検出するために, - フィルタに送られてくるバイトストリームを検査する必要があります. - また, LPDに代わって, - 自分自身にシグナルを送らなければなりません. - - しかしながら, ヘッダページの印字をおこないたい場合, - また, + 出力フィルタの簡便さに誘惑されてはいけません。もし、 + ジョブ中のそれぞれのファイルに別のページ番号を付加しようとしても、 + 出力フィルタはうまく動作しないでしょう。 + そのような動作を期待しているならば、 + (入力フィルタとしても知られている) テキストフィルタを使ってください。 + 詳しくは、「 + テキストフィルタのインストール」をご覧ください。 + さらに、出力フィルタは、実のところ、 + もっと複雑になっています。まず、 + 特殊なフラグ文字を検出するために、 + フィルタに送られてくるバイトストリームを検査する必要があります。 + また、LPD に代わって、 + 自分自身にシグナルを送らなければなりません。 + + しかしながら、ヘッダページの印字をおこないたい場合、 + また、 エスケープシーケンスやヘッダページを印字できるようにする - その他の初期化文字列を送信する必要がある場合, - 出力ファイルが必要です. + その他の初期化文字列を送信する必要がある場合、 + 出力ファイルが必要です。 - 1台のプリンタに対し, LPD では出力フィルタとテキスト, - または, 他のフィルタを両方使うことができます. - このような場合, LPD はヘッダページ (「1台のプリンタに対し、LPD では出力フィルタとテキスト、 + または、他のフィルタを両方使うことができます。 + このような場合、LPD はヘッダページ (「 ヘッダページ」 を参照してください) - だけを印字させるために, 出力フィルタを起動させます. - それから LPD では, アウトプットフィルタに 2 バイトの文字 - (ASCII 031 の次に ASCII 001) を送ることで, - 出力フィルタが自力で停止することを期待しています. - 2 バイト (031, 001) が出力フィルタに送られたとき, + だけを印字させるために、出力フィルタを起動させます。 + それから LPD では、アウトプットフィルタに 2 バイトの文字 + (ASCII 031 の次に ASCII 001) を送ることで、 + 出力フィルタが自力で停止することを期待しています。 + 2 バイト (031, 001) が出力フィルタに送られたとき、 出力フィルタは自分自身にシグナル SIGSTOP - を送ることによって停止するべきです. - LPD がその他のフィルタの起動を完了したとき, + を送ることによって停止するべきです。 + LPD がその他のフィルタの起動を完了したとき、 LPD は出力フィルタにシグナル - SIGCONT を送ることで, 出力フィルタを再起動させます. + SIGCONT を送ることで、出力フィルタを再起動させます。 - 出力フィルタがあり, - テキストフィルタがない場合, LPD - はプレインテキストのジョブをおこなう際に, - 出力フィルタを使います. 前述したように, 出力フィルタでは, + 出力フィルタがあり、 + テキストフィルタがない場合、LPD + はプレインテキストのジョブをおこなう際に、 + 出力フィルタを使います。前述したように、出力フィルタでは、 ジョブ中の各ファイルの並びの間に FROM FEED - 文字や紙を排出する他の文字を入れることはしません. - この動作は多分, - あなたが求めているものとは異なっているでしょう. - ほとんどすべての場合において, - テキストフィルタが必要とされるはずです. - - プログラム lpf は, - テキストフィルタの項で既に紹介しましたが, - 出力フィルタとしても動作させることができます. もし, - 簡便で極悪な出力フィルタが必要で, かつ, - バイトストリームを検査したりシグナルを送るコードを書きたくないときには, - lpf をお試しください. - あるいは, プリントが要求する初期化コードを送るために, + 文字や紙を排出する他の文字を入れることはしません。 + この動作は多分、 + あなたが求めているものとは異なっているでしょう。 + ほとんどすべての場合において、 + テキストフィルタが必要とされるはずです。 + + プログラム lpf は、 + テキストフィルタの項で既に紹介しましたが、 + 出力フィルタとしても動作させることができます。もし、 + 簡便で極悪な出力フィルタが必要で、かつ、 + バイトストリームを検査したりシグナルを送るコードを書きたくないときには、 + lpf をお試しください。 + あるいは、プリントが要求する初期化コードを送るために、 lpf - をシェルスクリプトに包んで使うこともできます. + をシェルスクリプトに包んで使うこともできます。 テキストフィルタ <command>lpf</command> - プログラム /usr/libexec/lpr/lpf は, + プログラム /usr/libexec/lpr/lpf は、 FreeBSD の バイナリ配布に付属しているテキストフィルタ - (入力フィルタ) で, 出力を字下げしたり (lpr - -i でジョブが入力さ れたとき), + (入力フィルタ) で、出力を字下げしたり (lpr + -i でジョブが入力さ れたとき)、 文字を未処理のままプリンタに送ったり (lpr - -l でジョブが入力されたとき), - ジョブ中のバックスペースやタブの印字位置を調節したり, - 印字したページに対して課金したりすることができます. また, - このフィルタは出力フィルタとしても動作させることができます. + -l でジョブが入力されたとき)、 + ジョブ中のバックスペースやタブの印字位置を調節したり、 + 印字したページに対して課金したりすることができます。また、 + このフィルタは出力フィルタとしても動作させることができます。 lpf - は多くの印字環境において使用することに適しています. - このフィルタには, プリンタに初期化文字列を送る機能はありませんが, - 必要とされる初期化をおこない, それから + は多くの印字環境において使用することに適しています。 + このフィルタには、プリンタに初期化文字列を送る機能はありませんが、 + 必要とされる初期化をおこない、それから lpf - を実行させるためのシェルスクリプトを作成するのはたやすいことです. + を実行させるためのシェルスクリプトを作成するのはたやすいことです。 ページ課金 課金 プリンタ - lpf に対して, - 印字ページへの課金を正確におこなわせるためには, + lpf に対して、 + 印字ページへの課金を正確におこなわせるためには、 /etc/printcap ファイルの中の pwpl - の項目に正確な値を入れておく必要があります. これらの値は, - どのくらいの量のテキストがページにフィットするか, また, - ユーザのジョブが何ページあるのかを調べるために使われます. - プリンタの課金についての詳しい情報については, 「 - プリンタの利用に対する課金」をご覧ください. + プリンタの利用に対する課金」をご覧ください。 ヘッダページ あなたが管理するシステムのユーザが - たくさんおり, - ユーザ全員が様々なプリンタを使用する場合, 多分, + たくさんおり、 + ユーザ全員が様々なプリンタを使用する場合、多分、 必要悪であるヘッダページを - 印字させることを検討したいと思うかもしれません. + 印字させることを検討したいと思うかもしれません。 バナーページ ヘッダページ ヘッダページ - ヘッダページは, バナー とか - バーストページ としても知られていますが, - 出力されたジョブが誰によるものなのかを特定させる働きがあります. - 印字結果の山の中において, - ユーザのジョブによって印字された本物のドキュメント部分よりも際立たせるために, - ヘッダページは, 通常, 多分, 縁が装飾されている大きな太文字で印字されます. - ヘッダページにより, - ユーザは自分が出したジョブがどこにあるのかをすばやく見つけることができます. - ヘッダページの欠点は, 明らかに, すべてのジョブに対して, - 紙が1枚余分に印字されるということです. - この紙の有効期間は短く, 2〜3 分も続きません. 最終的に, - これらの紙は再利用紙入れの中かくずの山に入れられることでしょう. - (ヘッダページはジョブ中の各ファイル毎に印字されるのではなく, - ジョブ毎に印字されるということに注意してください. したがって, - 紙の消費はそれほどひどくはないかもしれません). - - もし, - プリンタがプレインテキストを直接印字できるならば, LPD - システムは印字物に対して自動的にヘッダページを付けることができます. - PostScript プリンタを使っている場合は, - ヘッダページを生成する外部プログラムが必要になります. これについては, + ヘッダページは、バナー とか + バーストページ としても知られていますが、 + 出力されたジョブが誰によるものなのかを特定させる働きがあります。 + 印字結果の山の中において、 + ユーザのジョブによって印字された本物のドキュメント部分よりも際立たせるために、 + ヘッダページは、通常、多分、縁が装飾されている大きな太文字で印字されます。 + ヘッダページにより、 + ユーザは自分が出したジョブがどこにあるのかをすばやく見つけることができます。 + ヘッダページの欠点は、明らかに、すべてのジョブに対して、 + 紙が 1 枚余分に印字されるということです。 + この紙の有効期間は短く、2 〜 3 分も続きません。最終的に、 + これらの紙は再利用紙入れの中かくずの山に入れられることでしょう + (ヘッダページはジョブ中の各ファイル毎に印字されるのではなく、 + ジョブ毎に印字されるということに注意してください。したがって、 + 紙の消費はそれほどひどくはないかもしれません)。 + + もし、 + プリンタがプレインテキストを直接印字できるならば、LPD + システムは印字物に対して自動的にヘッダページを付けることができます。 + PostScript プリンタを使っている場合は、 + ヘッダページを生成する外部プログラムが必要になります。これについては、 「PostScript - プリンタでのヘッダページ」をご覧ください. + プリンタでのヘッダページ」をご覧ください。 ヘッダページの印字を許可する プリンタ設定導入編 - 」 では, /etc/printcap + 」 では、/etc/printcap ファイルの sh (``suppress header'' : - ヘッダを供給しないという意味) を指定して, - ヘッダページの印字を止めていました. - プリンタでのヘッダページの印字を許可するには, - sh 項目を取り除くだけよい訳です. + ヘッダを供給しない という意味) を指定して、 + ヘッダページの印字を止めていました。 + プリンタでのヘッダページの印字を許可するには、 + sh 項目を取り除くだけよい訳です。 - とても簡単そうに見えるけど, 本当かな? + とても簡単そうに見えるけど、本当かな? - それは本当です. + それは本当です。 プリンタに初期化文字列を送るための - 出力フィルタを用意しなくてはならないかもしれません. 次に, Hewlett - Packard PCL 互換プリンタの例を挙げます. + 出力フィルタを用意しなくてはならないかもしれません。次に、Hewlett + Packard PCL 互換プリンタの例を挙げます。 #!/bin/sh # # hpof - Output filter for Hewlett Packard PCL-compatible printers # Installed in /usr/local/libexec/hpof printf "\033&k2G" || exit 2 exec /usr/libexec/lpr/lpf of - 項目に出力フィルタのパス名を指定してください. - 詳細については, 「出力フィルタ」 - をご覧ください. + をご覧ください。 - 次に, 以前紹介したプリンタ teak + 次に、以前紹介したプリンタ teak のための /etc/printcap - ファイルの例を示します. ここでは, - ヘッダページの印字を許可し, 上記の出力フィルタを追加しました. + ファイルの例を示します。ここでは、 + ヘッダページの印字を許可し、上記の出力フィルタを追加しました。 # # /etc/printcap for host orchid # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif:\ :vf=/usr/local/libexec/hpvf:\ :of=/usr/local/libexec/hpof: - さて, ユーザが teak - からジョブを印字させたとき, - それぞれのジョブ毎にヘッダページが印字されます. - もし, ユーザが印字物を探すのに時間を費やしたいと思うなら, - lpr -h によってジョブを入力することで, - ヘッダページの印字を止めることができます. + さて、ユーザが teak + からジョブを印字させたとき、 + それぞれのジョブ毎にヘッダページが印字されます。 + もし、ユーザが印字物を探すのに時間を費やしたいと思うなら、 + lpr -h によってジョブを入力することで、 + ヘッダページの印字を止めることができます。 これ以外の - &man.lpr.1; のオプションについては, + &man.lpr.1; のオプションについては、 「 ヘッダページ用オプション」 - をご覧ください. + をご覧ください。 - LPD では, ヘッダページの最後に, FORM FEED 文字が印 - 字されます. プリンタに紙排出をさせるために, 別な文字, - もしくは, 別な文字列が利用されている場合は, + LPD では、ヘッダページの最後に、FORM FEED 文字が印 + 字されます。プリンタに紙排出をさせるために、別な文字、 + もしくは、別な文字列が利用されている場合は、 /etc/printcap 中の - ff 項目で指定することができます. + ff 項目で指定することができます。 ヘッダページを制御する - ヘッダページの印字が許可されていると, LPD は - 長いヘッ ダを作ります. これには, - 紙全面に大きな文字でユーザ名, ホスト名, - ジョブ名が書かれています. 次に, このヘッダページの例を示 + ヘッダページの印字が許可されていると、LPD は + 長いヘッ ダを作ります。これには、 + 紙全面に大きな文字でユーザ名、ホスト名、 + ジョブ名が書かれています。次に、このヘッダページの例を示 します (kelly が ジョブ名 outline を rose - というホストから印字 された場合). + というホストから印字 された場合)。 k ll ll k l l k l l k k eeee l l y y k k e e l l y y k k eeeeee l l y y kk k e l l y y k k e e l l y yy k k eeee lll lll yyy y y y y yyyy ll t l i t l oooo u u ttttt l ii n nnn eeee o o u u t l i nn n e e o o u u t l i n n eeeeee o o u u t l i n n e o o u uu t t l i n n e e oooo uuu u tt lll iii n n eeee r rrr oooo ssss eeee rr r o o s s e e r o o ss eeeeee r o o ss e r o o s s e e r oooo ssss eeee Job: outline Date: Sun Sep 17 11:04:58 1995 LPD はこのテキストの終わりに FROM FEED 文字を加えます - ので, ジョブは新しいページから開始されます (ただし, + ので、ジョブは新しいページから開始されます (ただし、 /etc/printcap で出力先のプリンタのエントリに sf (suppress form feeds) が指定されているときはこ - の限りではありません). + の限りではありません)。 - お望みならば, LPD - に短いヘッダページを出力させることもできます. - この場合は, + お望みならば、LPD + に短いヘッダページを出力させることもできます。 + この場合は、 /etc/printcap ファイルの中で - sb (short banner) を指定してください. - ヘッダページは次のようになります. + sb (short banner) を指定してください。 + ヘッダページは次のようになります。 rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995 - デフォルトでは, LPD はヘッダページを最初に印字し, - 次にジョブの印字をおこないます. この順番を逆にするときは, + デフォルトでは、LPD はヘッダページを最初に印字し、 + 次にジョブの印字をおこないます。この順番を逆にするときは、 /etc/printcaphl - (header last) を指定してください. + (header last) を指定してください。 ヘッダページに対する課金 - LPD に備わっているヘッダページ出力機能を使うと, - 入力されたジョブに対して課金をおこなうことができても, - ヘッダページは無料で提供しなくてはならない, - という特有のやり方を強要されます. + LPD に備わっているヘッダページ出力機能を使うと、 + 入力されたジョブに対して課金をおこなうことができても、 + ヘッダページは無料で提供しなくてはならない、 + という特有のやり方を強要されます。 - なぜでしょうか. + なぜでしょうか。 - 出力フィルタは単なる外部プログラムなので, - 課金をするための制御をおこなうとすれば, - それはヘッダページを印字するときですが, 出力フィルタには, + 出力フィルタは単なる外部プログラムなので、 + 課金をするための制御をおこなうとすれば、 + それはヘッダページを印字するときですが、出力フィルタには、 ユーザ名とホスト名 の情報や課金情報を格納するファイルがどれな - のかということが知らされません. それゆえ, 出力ファイルには, - 誰にプリンタ利用の課金をおこなえばよいのかが分からないのです. + のかということが知らされません。それゆえ、出力ファイルには、 + 誰にプリンタ利用の課金をおこなえばよいのかが分からないのです。 テキストフィルタやその他の変換フィルタ (これらのフィルタはユーザやホストの情報が知らされます) - が出力ページの枚数に1ページ分水増しするだけでは十分ではありません. - なぜなら, ユーザは + が出力ページの枚数に 1ページ分水増しする だけでは十分ではありません。 + なぜなら、ユーザは lpr -h に - よってヘッダページの出力を止めることができるからです. - やみくもに 1 ページを水増しすると, + よってヘッダページの出力を止めることができるからです。 + やみくもに 1 ページを水増しすると、 印字されてもいないヘッダページに対する - 料金をとることになります. 基本的に, lpr - -h は環境に優しい心を持つユーザに好まれるオプションですが, - これを使うように奨励することもできません. + 料金をとることになります。基本的に、lpr + -h は環境に優しい心を持つユーザに好まれるオプションですが、 + これを使うように奨励することもできません。 各々のフィルタに独自のヘッダページを生成させる - (その結果, ヘッダページに課金することができる) - という方法でも十分であるとはいえません. - この場合, LPD はフィルタに - の情報を送りませんので, lpr + (その結果、ヘッダページに課金することができる) + という方法でも十分であるとはいえません。 + この場合、LPD はフィルタに + の情報を送りませんので、lpr -h - によってヘッダページを印字しないオプションを選択したとしても, - 依然としてヘッダページは印字され, - その分の課金がおこなわれてしまいます. + によってヘッダページを印字しないオプションを選択したとしても、 + 依然としてヘッダページは印字され、 + その分の課金がおこなわれてしまいます。 - では, どのような選択肢があるのでしょうか. + では、どのような選択肢があるのでしょうか。 - ヘッダページへの課金に関しては, - 次のことができます. + ヘッダページへの課金に関しては、 + 次のことができます。 - LPD のやり方を受け入れ, - ヘッダページは無料とする. + LPD のやり方を受け入れ、 + ヘッダページは無料とする。 - LPRng などの LPD の代替品をインストールする. - LPD と入れ替えが可能な他のスプーリングソフトウェアに関しては, + LPRng などの LPD の代替品をインストールする。 + LPD と入れ替えが可能な他のスプーリングソフトウェアに関しては、 標準スプーラの代替品をご覧ください. + >標準スプーラの代替品をご覧ください。 スマートな - 出力フィルタを作成する. 通常, - 出力フィルタはプリンタを初期化するか, - 単純な文字列変換をする程度の働きしかしません. + 出力フィルタを作成する。通常、 + 出力フィルタはプリンタを初期化するか、 + 単純な文字列変換をする程度の働きしかしません。 (テキスト (入力) フィルタがない場合) - 出力フィルタはヘッダページとプレインテキストの印字をおこなうのに適しています. + 出力フィルタはヘッダページとプレインテキストの印字をおこなうのに適しています。 - プレインテキストを印字するためのテキストフィルタがない場合, - LPD はヘッダページを印字するためだけの目的で出力フィルタを起動します. - そして, LPD が生成するヘッダページのテキストを解析することにより, + プレインテキストを印字するためのテキストフィルタがない場合、 + LPD はヘッダページを印字するためだけの目的で出力フィルタを起動します。 + そして、LPD が生成するヘッダページのテキストを解析することにより、 出力フィルタはヘッダページに課金するために必要なユーザ名と - ホスト名を取得することができます. この方式の唯一の問題点は, + ホスト名を取得することができます。この方式の唯一の問題点は、 出力フィルタは課金情報を格納するデータファイルの名前を知ることが できないということです (af 項目で指定されたファイル名は - 出力ファイルに渡されません). しかし, 既知の - 名前の課金データファイルを使うのならば, - その名前を出力フィルタのプログラム中に埋め込むことができます. + 出力ファイルに渡されません)。しかし、既知の + 名前の課金データファイルを使うのならば、 + その名前を出力フィルタのプログラム中に埋め込むことができます。 - 解析の手順を簡単にするためには, + 解析の手順を簡単にするためには、 /etc/printcapsh 項目 - (短いヘッダを指定) を使うとよいでしょう. + (短いヘッダを指定) を使うとよいでしょう。 - そしてまた, - ここまでの方法は少なからぬトラブルを生じさせるかもしれません. - そうなれば, もちろんユーザはヘッダページを無料で - 提供してくれる気前のよいシステム管理者に感謝することでしょう. + そしてまた、 + ここまでの方法は少なからぬトラブルを生じさせるかもしれません。 + そうなれば、もちろんユーザはヘッダページを無料で + 提供してくれる気前のよいシステム管理者に感謝することでしょう。 PostScript プリンタでのヘッダページ - これまでに述べたように, LPD ではプレインテキストのヘッダページを - たくさんのプリンタに合うように生成することができます. - 残念ながら, PostScript プリンタは, - プレインテキストを直接印字することができません. ですから, - LPD のヘッダページ機能はまったく役に立たない, - あるいはほとんどの場合で役に立ちません. - - ヘッダページを出力するための自明な方法の1つに, - すべての変換フィルタとテキストフィルタにヘッダページを生成させる方法があります. - フィルタは, - 適切なヘッダページを生成するために, - ユーザ名とホスト名の引数を使うべきです. この方法の欠点は, いつでも, + これまでに述べたように、LPD ではプレインテキストのヘッダページを + たくさんのプリンタに合うように生成することができます。 + 残念ながら、PostScript プリンタは、 + プレインテキストを直接印字することができません。ですから、 + LPD のヘッダページ機能はまったく役に立たない、 + あるいはほとんどの場合で役に立ちません。 + + ヘッダページを出力するための自明な方法の1つに、 + すべての変換フィルタとテキストフィルタにヘッダページを生成させる方法があります。 + フィルタは、 + 適切なヘッダページを生成するために、 + ユーザ名とホスト名の引数を使うべきです。この方法の欠点は、いつでも、 lpr -h - によってジョブが入力された場合でさえも, - ヘッダページが印字されるということです. + によってジョブが入力された場合でさえも、 + ヘッダページが印字されるということです。 - この方法で試してみましょう. 次のスクリプトは, 3つの引数 - (ユーザ のログイン名, ホスト名, ジョブ名) をとり, 簡単な - PostScript 用 のヘッダページを生成します. + この方法で試してみましょう。次のスクリプトは、3 つの引数 + (ユーザ のログイン名、ホスト名、ジョブ名) をとり、簡単な + PostScript 用 のヘッダページを生成します。 #!/bin/sh # # make-ps-header - make a PostScript header page on stdout # Installed in /usr/local/libexec/make-ps-header # # # These are PostScript units (72 to the inch). Modify for A4 or # whatever size paper you are using: # page_width=612 page_height=792 border=72 # # Check arguments # if [ $# -ne 3 ]; then echo "Usage: `basename $0` <user> <host> <job>" 1>&2 exit 1 fi # # Save these, mostly for readability in the PostScript, below. # user=$1 host=$2 job=$3 date=`date` # # Send the PostScript code to stdout. # exec cat <<EOF %!PS % % Make sure we do not interfere with user's job that will follow % save % % Make a thick, unpleasant border around the edge of the paper. % $border $border moveto $page_width $border 2 mul sub 0 rlineto 0 $page_height $border 2 mul sub rlineto currentscreen 3 -1 roll pop 100 3 1 roll setscreen $border 2 mul $page_width sub 0 rlineto closepath 0.8 setgray 10 setlinewidth stroke 0 setgray % % Display user's login name, nice and large and prominent % /Helvetica-Bold findfont 64 scalefont setfont $page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto ($user) show % % Now show the boring particulars % /Helvetica findfont 14 scalefont setfont /y 200 def [ (Job:) (Host:) (Date:) ] { 200 y moveto show /y y 18 sub def } forall /Helvetica-Bold findfont 14 scalefont setfont /y 200 def [ ($job) ($host) ($date) ] { 270 y moveto show /y y 18 sub def } forall % % That is it % restore showpage EOF - そして, 変換フィルタやテキストフィルタがそれぞれ, - 最初にこのスクリプトを起動することで, - ヘッダページが出力され, それから, - ユーザのジョブの印字をおこないます. 次に, - このドキュメントの始めのほうで紹介した DVI 変換フィルタを, - ヘッダページを印字するように変更したものを示します. + そして、変換フィルタやテキストフィルタがそれぞれ、 + 最初にこのスクリプトを起動することで、 + ヘッダページが出力され、それから、 + ユーザのジョブの印字をおこないます。次に、 + このドキュメントの始めのほうで紹介した DVI 変換フィルタを、 + ヘッダページを印字するように変更したものを示します。 #!/bin/sh # # psdf - DVI to PostScript printer filter # Installed in /usr/local/libexec/psdf # # Invoked by lpd when user runs lpr -d # orig_args="$@" fail() { echo "$@" 1>&2 exit 2 } while getopts "x:y:n:h:" option; do case $option in x|y) ;; # Ignore n) login=$OPTARG ;; h) host=$OPTARG ;; *) echo "LPD started `basename $0` wrong." 1>&2 exit 2 ;; esac done [ "$login" ] || fail "No login name" [ "$host" ] || fail "No host name" ( /usr/local/libexec/make-ps-header $login $host "DVI File" /usr/local/bin/dvips -f ) | eval /usr/local/libexec/lprps $orig_args このフィルタがユーザ名やホスト名を決定するために - 引数リストをどのように解析しなくてはならないかという点に注意してください. - この解析方法は他の変換フィルタに対しても同様です. - しかしながら, テキストフィルタについては, - 引数の設定が少し異なっています (これについては, 「 フィルタはどのように機能しているか」 - をご覧ください). + をご覧ください)。 - 前述の通り, 上記の手法は, 極めて単純なのにも関らず, + 前述の通り、上記の手法は、極めて単純なのにも関らず、 lpr - でヘッダページを印字しないオプション - ( オプション) が使えなくなっています. - ユーザが森林資源を (あるいは, - ヘッダページが課金されているならば, その僅かな金額を), - 節約したいと望んでいる場合でも, + で ヘッダページを印字しない オプション + ( オプション) が使えなくなっています。 + ユーザが森林資源を (あるいは、 + ヘッダページが課金されているならば、その僅かな金額を)、 + 節約したいと望んでいる場合でも、 すべてのフィルタがすべてのジョブ毎にヘッダページを印字 - することになっているので, 節約することはできません. + することになっているので、節約することはできません。 ジョブ毎に印字されるヘッダページを - ユーザが抑制できるようにするためには, 「 ヘッダページに対する課金」で紹介したトリックを - 使う必要があります. すなわち, LPD - が生成するヘッダページの解析をおこない, PostScript - 版のヘッダページを出力させる出力フィルタを作るのです. - この場合, ユーザが lpr -h でジョブを入力すると, - LPD はヘッダページを生成しなくなり, また, - 出力フィルタも起動されません. そうでないならば, - 作成した出力フィルタが LPD からのテキストを読み込み, + 使う必要があります。すなわち、LPD + が生成するヘッダページの解析をおこない、PostScript + 版のヘッダページを出力させる出力フィルタを作るのです。 + この場合、ユーザが lpr -h でジョブを入力すると、 + LPD はヘッダページを生成しなくなり、また、 + 出力フィルタも起動されません。そうでないならば、 + 作成した出力フィルタが LPD からのテキストを読み込み、 ヘッダページを印字する適当な - PostScript のコードがプリンタに送られるでしょう. + PostScript のコードがプリンタに送られるでしょう。 - PostScript プリンタがシリアルポートに接続されている場合, - 出力フィルタとして lprps を, + PostScript プリンタがシリアルポートに接続されている場合、 + 出力フィルタとして lprps を、 上記の動作をおこなうものとして psof - を使うことができます. ただし, psof - はヘッダページに対して課金をおこないませんので注意してください. + を使うことができます。ただし、psof + はヘッダページに対して課金をおこないませんので注意してください。 リモートプリンタからの出力 プリンタ ネットワーク ネットワークプリンタ - FreeBSD では, ネットワーク越しの印字, すなわち, - ジョブをリモートプリンタに送ることをサポートしています. - リモートプリンタからの出力をするには, 一般に, - 次の2つを参照してください. + FreeBSD では、ネットワーク越しの印字、すなわち、 + ジョブをリモートプリンタに送ることをサポートしています。 + リモートプリンタからの出力をするには、一般に、 + 次の 2 つを参照してください。 - リモートホストに接続されたプリンタにアクセスする方法. - プリンタがあるホストのシリアル, - または, パラレルインタフェースに接続されている場合, + リモートホストに接続されたプリンタにアクセスする方法。 + プリンタがあるホストのシリアル、 + または、パラレルインタフェースに接続されている場合、 ネットワーク上の他のホストからこのプリンタにアクセスできるように - LPD を設定します. 「リモートホストに 接続されたプリンタ」 - でどのようにするかを説明します. + でどのようにするかを説明します。 - ネットワークに直接接続されているプリンタにアクセスする方法. - プリンタに, 旧来のシリアル, または, - パラレルインタフェースに加えて (もしくは, これらに代わって) - ネットワーク用のインタフェースがある場合. - そのようなプリンタは次のように動作するでしょう. + ネットワークに直接接続されているプリンタにアクセスする方法。 + プリンタに、旧来のシリアル、または、 + パラレルインタフェースに加えて (もしくは、これらに代わって) + ネットワーク用のインタフェースがある場合。 + そのようなプリンタは次のように動作するでしょう。 - そのプリンタが LPD のプロトコルを理解でき, + そのプリンタが LPD のプロトコルを理解でき、 リモートホストからのジョブを - キューに入れることさえできる場合. この場合, - プリンタは, LPD が起動している一般のホストのように振る舞います. - そのようなプリンタを設定するために, + キューに入れることさえできる場合。この場合、 + プリンタは、LPD が起動している一般のホストのように振る舞います。 + そのようなプリンタを設定するために、 「 リモートホストに接続されたプリンタ」 - と同様の手順をおこなってください. + と同様の手順をおこなってください。 - そのプリンタが, - データストリームによるネットワーク接続をサポートしている場合. - この場合, ネットワーク上の1つのホストとしてプリンタを - 接続します. - このホストは, ジョブをスプーリングする責任を負い, - スプーリングされたジョブはプリンタに送られます. + そのプリンタが、 + データストリームによるネットワーク接続をサポートしている場合。 + この場合、ネットワーク上の1つのホストとしてプリンタを + 接続 します。 + このホストは、ジョブをスプーリングする責任を負い、 + スプーリングされたジョブはプリンタに送られます。 そのようなプリンタをインストールするためのいくつかの提案が 「 ネットワークにおけるデータストリームの - インタフェースを持つプリンタ」にあります. + インタフェースを持つプリンタ」にあります。 リモートホストに接続されたプリンタ LPD スプーリングシステムでは LPD (または LPD 互換のシステム) が起動している他のホストへジョブを送る機能が - 始めからサポートされています. この機能により, - あるホストに接続されたプリンタへ, - 他のホストからアクセスできるようになります. また, - LPD プロトコルを理解するネットワークインタフェースを持ったプリンタに対しても, - この機能は働きます. - - リモートプリンタへの出力を許可するためには, 最初に, - あるホスト (これを, + 始めからサポートされています。この機能により、 + あるホストに接続されたプリンタへ、 + 他のホストからアクセスできるようになります。また、 + LPD プロトコルを理解するネットワークインタフェースを持ったプリンタに対しても、 + この機能は働きます。 + + リモートプリンタへの出力を許可するためには、最初に、 + あるホスト (これを、 プリンタホストと呼びます) - にプリンタを接続します. そして, 「 プリンタ設定導入編」 - に書かれた簡単なプリンタの設定をおこなってください. - 必要ならば, 「プリンタ設定上級編」 - にある, 更に進んだ設定をおこなってください. そして, - そのプリンタをテストしてうまく動作することを確認し, LPD - に許可した機能がうまく働くかどうかを見てください. さらに + にある、更に進んだ設定をおこなってください。そして、 + そのプリンタをテストしてうまく動作することを確認し、LPD + に許可した機能がうまく働くかどうかを見てください。さらに ローカルホストプリンタホストの LPD サービスの使用を 許可されているか確認して下さい (「 リモートホストからのプリンタの利用を制限する - 」参照). + 」参照)。 プリンタ ネットワーク ネットワークプリンタ LPD - 互換のネットワークインタフェースを持つプリンタを使用している場合は, + 互換のネットワークインタフェースを持つプリンタを使用している場合は、 そのプリンタ自身が以下で説明する - プリンタホストになります. そして, - プリンタ名とは, - そのプリンタに設定した名前のことを指します. - これについては, プリンタ, および (または), - プリンタのネットワークインタフェースに付属するドキュメントを参照してください. + プリンタホストになります。そして、 + プリンタ名とは、 + そのプリンタに設定した名前のことを指します。 + これについては、プリンタ、および (または)、 + プリンタのネットワークインタフェースに付属するドキュメントを参照してください。 - ヒューレット・パッカード社の Laserjet シリーズを使用している場合には, - プリンタ名を text とすると, - 自動的に LF から CRLF への変換が行なわれます. - そのため, hpif スクリプトは必要ありません. + ヒューレット・パッカード社の Laserjet シリーズを使用している場合には、 + プリンタ名を text とすると、 + 自動的に LF から CRLF への変換が行なわれます。 + そのため、hpif スクリプトは必要ありません。 - 次に, - そのプリンタにアクセスしたいと思っている他ホストにおいて, + 次に、 + そのプリンタにアクセスしたいと思っている他ホストにおいて、 そのホストの /etc/printcap - ファイルに次にあげるエントリを作ります. + ファイルに次にあげるエントリを作ります。 - 名前のエントリ. どんな名前でもよいのですが, 簡単のため, 多分, - プリンタホストで設定されたプリンタ名や別名と同じものを使いたいと思うでしょう. + 名前のエントリ。どんな名前でもよいのですが、簡単のため、多分、 + プリンタホストで設定されたプリンタ名や別名と同じものを使いたいと思うでしょう。 lp 項目で指定されるデバイスは明示的に空にする - (:lp=: とする). + (:lp=: とする)。 - スプーリングディレクトリを作成し, - sd 項目でその位置を指定する. LPD - では, プリンタホストにジョブを送信するまでの間, - このディレクトリにジョブを格納します. + スプーリングディレクトリを作成し、 + sd 項目でその位置を指定する。LPD + では、プリンタホストにジョブを送信するまでの間、 + このディレクトリにジョブを格納します。 rm - 項目でプリンタホストの名前を指定します. + 項目でプリンタホストの名前を指定します。 rp 項目で - プリンタホストに接続したプリンタ名を指定します. + プリンタホストに接続したプリンタ名を指定します。 - これで終わりです. + これで終わりです。 変換フィルタやページの大きさやその他の事項を /etc/printcap - に加える必要はありません. + に加える必要はありません。 - 次に, + 次に、 リモートホストに接続されたプリンタで印字するための設定例 - を示します. ホスト rose には2台のプリンタ - bamboorattan - が接続されています. これらのプリンタをホスト orchid - のユーザが使えるようにしましょう. 最初に + のユーザが使えるようにしましょう。最初に orchid/etc/printcap を示します - (このファイルは, 「 ヘッダページの出力を許可する」 - で参照することができます). このファイルには, 既に, プリンタ - teak 用のエントリがありました. 以下では, - これに, + で参照することができます)。このファイルには、既に、プリンタ + teak 用のエントリがありました。以下では、 + これに、 ホスト rose - にある2台のプリンタ用のエントリが加えられています. + にある2台のプリンタ用のエントリが加えられています。 # # /etc/printcap for host orchid - added (remote) printers on rose # # # teak is local; it is connected directly to orchid: # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/ifhp:\ :vf=/usr/local/libexec/vfhp:\ :of=/usr/local/libexec/ofhp: # # rattan is connected to rose; send jobs for rattan to rose: # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: # # bamboo is connected to rose as well: # bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo: orchid - で必要となる作業はスプーリングディレクトリを作ることだけです. + で必要となる作業はスプーリングディレクトリを作ることだけです。 &prompt.root; mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo &prompt.root; chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo &prompt.root; chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo - これで, orchid のユーザが + これで、orchid のユーザが rattanbamboo で印字す - ることができるようになりました. - 例えば, orchid のユーザが次のように入力したとします. + ることができるようになりました。 + 例えば、orchid のユーザが次のように入力したとします。 &prompt.user; lpr -P bamboo -d sushi-review.dvi - すると, orchid の LPD システムは, + すると、orchid の LPD システムは、 ジョブをスプーリングディレクトリ /var/spool/lpd/bamboo - にコピーし, これが DVI - ファイルを印字するジョブであることを記録します. + にコピーし、これが DVI + ファイルを印字するジョブであることを記録します。 ホスト rose の bamboo - 用のスプーリングディレクトリに十分な容量が確保でき次第, - 両者の LPD は, ジョブのファイルを rose に転送します. - このファイルは, そのすべてが印字されるまで, rose - のキューに留まります. + 用のスプーリングディレクトリに十分な容量が確保でき次第、 + 両者の LPD は、ジョブのファイルを rose に転送します。 + このファイルは、そのすべてが印字されるまで、rose + のキューに留まります。 (bamboo は PostScript プリンタなので) DVI から PostScript - への変換は rose でおこなわれます. + への変換は rose でおこなわれます。 ネットワークにおけるデータストリームの インタフェースを持つプリンタ - プリンタのネットワークインタフェースカードは, - 2種類に分類することができます. - 1つはスプーラをエミュレートするもの (高価) で, もう 1 + プリンタのネットワークインタフェースカードは、 + 2 種類に分類することができます。 + 1 つはスプーラをエミュレートするもの (高価) で、もう 1 つはシリアルやパラレルポートを使うように - プリンタにデータを送ることができるだけのもの (安価) です. この節では, - 後者の使い方を説明します. 前者のプリンタは, 前節「 リモートホストに接続されたプリンタ」 - の方法が適用できます. - - /etc/printcap ファイルでは, - シリアルかパラレルのインタフェースのどちらを使うのか, - そして, (シリアルインタフェースを使う場合) - そのボーレートはいくらであるか, フロー制御は使うのか, - タブのための遅延を加えるのか, - 改行文字を変換するかなどの指定をおこなうことができます. - しかし, TCP/IP や他のネットワークポートからデータを受け取るプリンタを - 接続するための指定をおこなうことはでき ません. - - ネットワーク接続されたプリンタにデータを送るためには, + の方法が適用できます。 + + /etc/printcap ファイルでは、 + シリアルかパラレルのインタフェースのどちらを使うのか、 + そして、(シリアルインタフェースを使う場合) + そのボーレートはいくらであるか、フロー制御は使うのか、 + タブのための遅延を加えるのか、 + 改行文字を変換するかなどの指定をおこなうことができます。 + しかし、TCP/IP や他のネットワークポートからデータを受け取るプリンタを + 接続するための指定をおこなうことはでき ません。 + + ネットワーク接続されたプリンタにデータを送るためには、 テキストフィルタと変換フィルタから呼び出すことができる - 通信プログラムを開発する必要があります. 以下に, - そのようなプログラムの例を示します.スクリプト - netprint では, - 標準入力から印字データをすべて受け取り, - ネットワーク接続されたプリンタにこれを送ります. + 通信プログラムを開発する必要があります。以下に、 + そのようなプログラムの例を示します。スクリプト + netprint では、 + 標準入力から印字データをすべて受け取り、 + ネットワーク接続されたプリンタにこれを送ります。 netprint - の最初の引数でプリンタのホスト名を, - 2番目の引数で接続するポート番号を指定します. + の最初の引数でプリンタのホスト名を、 + 2 番目の引数で接続するポート番号を指定します。 このプログラムでは単方向通信 (FreeBSD からプリンタ) - のみをサポートしていることに注意してください. - ネットワークプリンタの多くは双方向通信をサポートしていますので, - その恩恵 (プリンタの状態を得たり, - 課金をおこなうなど) にあずかりたいと思われるかもしれません. + のみをサポートしていることに注意してください。 + ネットワークプリンタの多くは双方向通信をサポートしていますので、 + その恩恵 (プリンタの状態を得たり、 + 課金をおこなうなど) にあずかりたいと思われるかもしれません。 #!/usr/bin/perl # # netprint - Text filter for printer attached to network # Installed in /usr/local/libexec/netprint # $#ARGV eq 1 || die "Usage: $0 <printer-hostname> <port-number>"; $printer_host = $ARGV[0]; $printer_port = $ARGV[1]; require 'sys/socket.ph'; ($ignore, $ignore, $protocol) = getprotobyname('tcp'); ($ignore, $ignore, $ignore, $ignore, $address) = gethostbyname($printer_host); $sockaddr = pack('S n a4 x8', &AF_INET, $printer_port, $address); socket(PRINTER, &PF_INET, &SOCK_STREAM, $protocol) || die "Can't create TCP/IP stream socket: $!"; connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!"; while (<STDIN>) { print PRINTER; } exit 0; - このスクリプトは, - 様々なフィルタが利用することができます. 仮に, Diablo 750-N - ラインプリンタを持っており, - これがネットワークに接続されているとしましょう. - プリンタはポート番号 5100 にて印字するデータを受け取ります. - プリンタのホスト名は scrivener とします. このとき, - このプリンタのテキストフィルタは次のようになります. + このスクリプトは、 + 様々なフィルタが利用することができます。仮に、Diablo 750-N + ラインプリンタを持っており、 + これがネットワークに接続されているとしましょう。 + プリンタはポート番号 5100 にて印字するデータを受け取ります。 + プリンタのホスト名は scrivener とします。このとき、 + このプリンタのテキストフィルタは次のようになります。 #!/bin/sh # # diablo-if-net - Text filter for Diablo printer `scrivener' listening # on port 5100. Installed in /usr/local/libexec/diablo-if-net # exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100 プリンタの利用に制約を与える プリンタ 利用制限 - 本節では, プリンタの利用に制約を与えるための情報を記しています. - LPD システムでは, プリンタ (ローカル, + 本節では、プリンタの利用に制約を与えるための情報を記しています。 + LPD システムでは、プリンタ (ローカル、 リモートのいずれに接続されていても) - にアクセスできる人を制限する機能, - 複数部のコピーの印字の可否を制御する機能, + にアクセスできる人を制限する機能、 + 複数部のコピーの印字の可否を制御する機能、 ジョブのサイズの最大値やプリンタキューに入る - ジョブの最大個数を制御する機能を提供しています. + ジョブの最大個数を制御する機能を提供しています。 複数部のコピーの印字を制限する LPD システムではユーザが複数部のコピーの印字を簡単におこなう - 機能を提供しています. ユーザが, (例えば) lpr - -#5 コマンドを使ってジョブを印字すると, - ジョブのそれぞれのファイルのコピーを5部得ることができます. - これがよい機能であると思うかどうかは人それぞれでしょう. + 機能を提供しています。ユーザが、(例えば) lpr + -#5 コマンドを使ってジョブを印字すると、 + ジョブのそれぞれのファイルのコピーを 5 部得ることができます。 + これがよい機能であると思うかどうかは人それぞれでしょう。 複数部のコピーの印字によってプリンタが - 必要以上に消耗してしまうと感じるならば, + 必要以上に消耗してしまうと感じるならば、 /etc/printcap ファイルに sc - 項目を加えてください. これにより, + 項目を加えてください。これにより、 &man.lpr.1; の - オプションの使用が禁止されます. - このオプションが指定されているにも関らず, - オプションを使うと, - 次のようなメッセージが表示され, - このオプションの利用できない旨を伝えます. + オプションの使用が禁止されます。 + このオプションが指定されているにも関らず、 + オプションを使うと、 + 次のようなメッセージが表示され、 + このオプションの利用できない旨を伝えます。 lpr: multiple copies are not allowed リモートホストからプリンタをアクセスできる - 設定にしている場合 (この 設定については, 「 リモートホストに接続されたプリンタ」 - をご覧ください), そのリモートホストの + をご覧ください)、そのリモートホストの /etc/printcap にも同じように sc - 項目を追加する必要があることに注意してください. - そうしないと, ユーザは別なホストから複数部のコピーの - 印字することができてしまいます. - - 例を使って説明しましょう. 次に示す - /etc/printcap ファイルは, ホスト - rose のものです. プリンタ - rattan は極めて頑丈なので, - 複数部のコピーの印字は許可されています. しかし, + 項目を追加する必要があることに注意してください。 + そうしないと、ユーザは別なホストから複数部のコピーの + 印字することができてしまいます。 + + 例を使って説明しましょう。次に示す + /etc/printcap ファイルは、ホスト + rose のものです。プリンタ + rattan は極めて頑丈なので、 + 複数部のコピーの印字は許可されています。しかし、 レーザプリンタの bamboo - はもう少しデリケートで, + はもう少しデリケートで、 このプリンタから複数部のコピーを印字することを sc - 項目を追加することで禁止しています. + 項目を追加することで禁止しています。 # # /etc/printcap for host rose - restrict multiple copies on bamboo # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:\ :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: - さらに, orchid の /etc/printcap + さらに、orchid の /etc/printcap にも sc 項目を追加する必要があります (orchid - でこの編集をおこなっているときに, ついでに, プリンタ + でこの編集をおこなっているときに、ついでに、プリンタ teak - でも複数部のコピーの印字を禁止することにしましょう). + でも複数部のコピーの印字を禁止することにしましょう)。 # # /etc/printcap for host orchid - no multiple copies for local # printer teak or remote printer bamboo teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sd=/var/spool/lpd/teak:mx#0:sc:\ :if=/usr/local/libexec/ifhp:\ :vf=/usr/local/libexec/vfhp:\ :of=/usr/local/libexec/ofhp: rattan|line|diablo|lp|Diablo 630 Line Printer:\ :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc: - sc 項目を指定することにより, + sc 項目を指定することにより、 lpr -# - の使用を防ぐことができます. しかし, この状態では - &man.lpr.1; を複数回起動したり, - 1回のジョブで次のように同じファイルを複数個指定することを防ぐまでには至っていません. + の使用を防ぐことができます。しかし、この状態では + &man.lpr.1; を複数回起動したり、 + 1 回のジョブで次のように同じファイルを複数個指定することを防ぐまでには至っていません。 &prompt.user; lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign このような悪用を防ぐ方法は - (その指示を無視することも含めて) たくさんあります. - 各自で調べてみてください. + (その指示を無視することも含めて) たくさんあります。 + 各自で調べてみてください。 プリンタを使用できる人を限定する - それぞれのプリンタを使用できる人を限定するには, Unix の - グループ権限のメカニズムを利用し, さらに, + それぞれのプリンタを使用できる人を限定するには、Unix の + グループ権限のメカニズムを利用し、さらに、 /etc/printcaprg - 項目を指定することでおこないます. + 項目を指定することでおこないます。 あるプリンタにアクセスさせてもよいと思うユーザすべてを - Unix のあるグループに入れてください. そして, - そのグループ名を rg で指定します. + Unix のあるグループに入れてください。そして、 + そのグループ名を rg で指定します。 - このとき, そのグループに含まれないユーザ - (root も含む) には, 次のようなメッセージが表示され, - プリンタの使用はできません. + このとき、そのグループに含まれないユーザ + (root も含む) には、次のようなメッセージが表示され、 + プリンタの使用はできません。 lpr: Not a member of the restricted group sc (suppress multiple copies : 複数部のコピーの印字を禁止する) - を指定するときと同様に, rg + を指定するときと同様に、rg が指定されたプリンタがリモートホストからもアクセスでき - (この設定については, + (この設定については、 「 リモートホストに接続されたプリンタ」 - をご覧ください), かつ, + をご覧ください)、かつ、 そのホストでもプリンタを使用できる人を限定するのが - 妥当であると思う場合は, + 妥当であると思う場合は、 そのホストの /etc/printcap にも rg - 指定をおこなう必要があります. + 指定をおこなう必要があります。 - 例えば, プリンタ rattan - は誰でも利用できるが, bamboo はグループ + 例えば、プリンタ rattan + は誰でも利用できるが、bamboo はグループ artists - に属している人のみが利用できるようにしてみましょう. - 以下に, もうお馴染みとなったホスト + に属している人のみが利用できるようにしてみましょう。 + 以下に、もうお馴染みとなったホスト rose/etc/printcap - を示します. + を示します。 # # /etc/printcap for host rose - restricted group for bamboo # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:\ :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: これ以外の /etc/printcap ファイル (ホスト orchid のもの) - はそのままにしておくことにします. もちろん, + はそのままにしておくことにします。もちろん、 orchid のユーザは全員 - bamboo を利用することができます. これは, + bamboo を利用することができます。これは、 orchid - には特定のユーザのみにしかアクセスさせておらず, - そのユーザにはプリンタを利用させたいと思っているからなのかもしれませんし, - そうでないかもしれません. + には特定のユーザのみにしかアクセスさせておらず、 + そのユーザにはプリンタを利用させたいと思っているからなのかもしれませんし、 + そうでないかもしれません。 - 1台のプリンタを複数グループのユーザに利用させることはできません. + 1台のプリンタを複数グループのユーザに利用させることはできません。 入力可能なジョブのサイズを制限する プリントジョブ - たくさんのユーザからプリンタが利用される場合には, 多分, + たくさんのユーザからプリンタが利用される場合には、多分、 ユーザが印字要求を出すことができるファイルのサイズに - 上限値を置く必要が生じるでしょう. 結局のところ, + 上限値を置く必要が生じるでしょう。結局のところ、 スプーリングディレクトリ が置かれているファイルシステムの空き容量がその - 上限値になる訳ですが, - あるユーザがこれを独占的に使用すること避けるために, - 他ユーザからのジョブ用の空き容量を確保する必要もあります. + 上限値になる訳ですが、 + あるユーザがこれを独占的に使用すること避けるために、 + 他ユーザからのジョブ用の空き容量を確保する必要もあります。 プリントジョブ 制御 - LPD では, mx - 項目を指定することにより, - ジョブ中の個々のファイルのサイズの上限値を制限する機能を提供しています. - 指定される ファイルサイズの単位は BUFSIZ ブロックで, 1 - BUFSIZ ブロックは 1024バイトを表わします. この - mx 項目の値として 0 が指定されると, - ファイルサイズの制限はなくなります. - mx が指定されない場合は, - デフォルトの制限として 1000 ブロックが使われます. + LPD では、mx + 項目を指定することにより、 + ジョブ中の個々のファイルのサイズの上限値を制限する機能を提供しています。 + 指定される ファイルサイズの単位は BUFSIZ ブロックで、1 + BUFSIZ ブロックは 1024バイトを表わします。この + mx 項目の値として 0 が指定されると、 + ファイルサイズの制限はなくなります。 + mx が指定されない場合は、 + デフォルトの制限として 1000 ブロックが使われます。 この制限はジョブ中の各 - ファイルに対して適用されるものであり, + ファイルに対して適用されるものであり、 ジョブ全体のサイズ - を制限するものではありません. + を制限するものではありません - ところで, + ところで、 プリンタに設定された上限値を超えるファイルサイズの - ファイルが入力された場合でも, LPD はこれを拒否しません. - その代わりに, このファイルは, - その先頭から上限値のファイルサイズまでしかキューに入れられません. - そして, その部分までが印字され, - 残りの部分は捨てられます. - これが正しい動作といえるのかどうかは議論の余地があるところです. - - それでは, 設定例に登場しているプリンタ + ファイルが入力された場合でも、LPD はこれを拒否しません。 + その代わりに、このファイルは、 + その先頭から上限値のファイルサイズまでしかキューに入れられません。 + そして、その部分までが印字され、 + 残りの部分は捨てられます。 + これが正しい動作といえるのかどうかは議論の余地があるところです。 + + それでは、設定例に登場しているプリンタ rattanbamboo - の印字可能なファイルサイズに制限を加えてみましょう. artists + の印字可能なファイルサイズに制限を加えてみましょう。artists グループの人達が作る PostScript ファイルのサイズは - 巨大になる傾向があるので, 上限値を5Mバイトとします. - それから, - プレインテキスト用のラインプリンタは無制限とします. + 巨大になる傾向があるので、上限値を 5M バイトとします。 + それから、 + プレインテキスト用のラインプリンタは無制限とします。 # # /etc/printcap for host rose # # # No limit on job size: # rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:mx#0:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple: # # Limit of five megabytes: # bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: - この場合もそうですが, この制限はローカル (ホスト rose) - のユーザのみに適用されます. - リモートホストからプリンタを利用できるように設定している場合は, - そのリモートホストのユーザはこの制限を受けません. - これらのユーザにも制限を加える場合は, リモートホストの + この場合もそうですが、この制限はローカル (ホスト rose) + のユーザのみに適用されます。 + リモートホストからプリンタを利用できるように設定している場合は、 + そのリモートホストのユーザはこの制限を受けません。 + これらのユーザにも制限を加える場合は、リモートホストの /etc/printcapmx - を指定する必要があります. - リモートホストから印字するための詳しい情報については, + を指定する必要があります。 + リモートホストから印字するための詳しい情報については、 「 リモートホストに接続されたプリンタ」 - を参照してください. + を参照してください。 リモートホストに接続されたプリンタへのジョブの - サイズを制限する特別な方法は他にもあります. これについては, + サイズを制限する特別な方法は他にもあります。これについては、 「 リモートホストからのプリンタの利用を制限する」 - を参照してください. + を参照してください。 リモートホストからのプリンタの利用を制限する - LPD スプーリングシステムでは, リモートホストから要求された - ジョブの印字を制限するための方法がいくつか提供されています. + LPD スプーリングシステムでは、リモートホストから要求された + ジョブの印字を制限するための方法がいくつか提供されています。 ホストの制限 ローカルの LPD - が印字要求を受け付けるリモートホストは, ファイル + が印字要求を受け付けるリモートホストは、ファイル /etc/hosts.equiv/etc/hosts.lpd - によって制御することができます. LPD では, - あるホストから印字の要求がきたとき, - このホストの名前がこれら2つのファイルのどちらかに含まれている - かどうかを調べます. これが含まれていない場合は, LPD - はこの要求を拒否します. + によって制御することができます。LPD では、 + あるホストから印字の要求がきたとき、 + このホストの名前がこれら 2 つのファイルのどちらかに含まれている + かどうかを調べます。これが含まれていない場合は、LPD + はこの要求を拒否します。 - これらのファイルの形式は単純です. + これらのファイルの形式は単純です。 各行にホストの名前を - 1つずつ書いていきます. ファイル + 1つずつ書いていきます。ファイル /etc/hosts.equiv の方は - &man.ruserok.3; プロトコルでも利用され, + &man.ruserok.3; プロトコルでも利用され、 &man.rsh.1; や &man.rcp.1; - といったプログラムの動作に影響するので注意が必要です. + といったプログラムの動作に影響するので注意が必要です。 /etc/hosts.equiv - の記述は慎重におこないましょう. + の記述は慎重におこないましょう。 - 例として, 以下にホスト rose の - /etc/hosts.lpd を示します. + 例として、以下にホスト rose の + /etc/hosts.lpd を示します。 orchid violet madrigal.fishbaum.de - この例では, rose はホスト - orchid, violet, + この例では、rose はホスト + orchidviolet、 そして madrigal.fishbaum.de - からの要求を受け付けることになります. + からの要求を受け付けることになります。 その他のホストが rose の LPD - にアクセスしようと しても, LPD はそのジョブを拒否します - (訳注: 拒否されるのは, そのホストが + にアクセスしようと しても、LPD はそのジョブを拒否します + (訳注: 拒否されるのは、そのホストが /etc/hosts.equiv - にも含まれていない場合です). + にも含まれていない場合です)。 サイズの制限 スプーリングディレクトリがある ファイルシステムに残しておく必要がある - 空き容量の大きさを制御することができます. + 空き容量の大きさを制御することができます。 ローカルプリンタ用のスプーリングディレクトリに minfree - という名前のファイルを作成します. そして, + という名前のファイルを作成します。そして、 そのファイルの中にリモートホストからのジョブの 要求を受け付けるために必要な空き容量のディスクブロックサイズ - (1 ディスクブロック =512 バイト) を記します. + (1 ディスクブロック = 512 バイト) を記します。 - これで, - リモートホストのユーザにファイルシステムを満杯にされないことが保証されます. - この機能を使うと, - ローカルホストのユーザに対してある種の優先権を与えることもできます. - ローカルホストのユーザは, + これで、 + リモートホストのユーザにファイルシステムを満杯にされないことが保証されます。 + この機能を使うと、 + ローカルホストのユーザに対してある種の優先権を与えることもできます。 + ローカルホストのユーザは、 minfree - ファイルで指定された値よりもディスクの空き容量が下回った後でもずっと, - ジョブをキューに入れることができるのです. + ファイルで指定された値よりもディスクの空き容量が下回った後でもずっと、 + ジョブをキューに入れることができるのです。 - 例えば, プリンタ bamboo 用の - minfree を作ってみましょう. - このプリンタのスプーリングディレクトリを調べるために, - /etc/printcap を調べてみましょう. - 以下に, bamboo - のエントリ部分を示します. + 例えば、プリンタ bamboo 用の + minfree を作ってみましょう。 + このプリンタのスプーリングディレクトリを調べるために、 + /etc/printcap を調べてみましょう。 + 以下に、bamboo + のエントリ部分を示します。 bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\ :sh:sd=/var/spool/lpd/bamboo:sc:rg=artists:mx#5000:\ :lp=/dev/ttyd5:fs#0x82000e1:xs#0x820:rw:mx#5000:\ :if=/usr/local/libexec/psif:\ :df=/usr/local/libexec/psdf: スプーリングディレクトリは - sd で指定されます. LPD + sd で指定されます。LPD がリモートホストからのジョブを受け付けるために必要な ファイルシステムの空き容量を 3M バイト - (=6144 ディスクブロック) にすることにしましょう. + (=6144 ディスクブロック) にすることにしましょう。 &prompt.root; echo 6144 > /var/spool/lpd/bamboo/minfree 利用ユーザの制限 /etc/printcap の - rs 項目を指定することで, + rs 項目を指定することで、 ローカルプリンタを利用できるリモートホストのユーザを - 制限することができます. + 制限することができます。 ローカルホストに接続されたプリンタ用のエントリに - rs 項目が指定されている場合, LPD + rs 項目が指定されている場合、LPD は印字を要求したユーザのアカウントと同じログイン名が - ローカルホストに登録されている場合に限り, - そのジョブが受け付けられます. - そうでないユーザからのジョブは LPD は拒否します. - - この機能は, (例えば) - 複数の部署がネットワークを共有しており, - この内のあるユーザが部署の境界を越えて活動している場合には特に有用です. - そのようなユーザに対して, システムのアカウントを与えるだけで, + ローカルホストに登録されている場合に限り、 + そのジョブが受け付けられます。 + そうでないユーザからのジョブは LPD は拒否します。 + + この機能は、(例えば) + 複数の部署がネットワークを共有しており、 + この内のあるユーザが部署の境界を越えて活動している場合には特に有用です。 + そのようなユーザに対して、システムのアカウントを与えるだけで、 これらのユーザは自分が所属する部署のシステムから - そのシステムに接続されているプリンタを使用することができます. - これらのユーザにはむしろ, - プリンタの使用だけを認め, - その他のコンピュータ資源を利用させたくないときは, - それらのユーザにはホームディレクトリを与えず, + そのシステムに接続されているプリンタを使用することができます。 + これらのユーザにはむしろ、 + プリンタの使用だけを認め、 + その他のコンピュータ資源を利用させたくないときは、 + それらのユーザにはホームディレクトリを与えず、 ログインシェルはシェルとしては何の役にも立たない - /usr/bin/false などを指定して, - これらのユーザのアカウントはプリンタ用の形式的なものとします. + /usr/bin/false などを指定して、 + これらのユーザのアカウントはプリンタ用の 形式的な ものとします。 プリンタの利用に対する課金 課金 プリンタ - という訳で, 印字するためには料金をとることが必要です. - 取らない理由などありましょうか. 紙やインクにはお金がかかります. - そして, プリンタの維持費もかかります. - プリンタには可動部分が搭載されており, - これらの部分は壊れやすいという傾向があります. - プリンタや, その利用形態, 維持費について調査をし, 1 ページ - (1 フィート, 1 メートルなど) 当たりにかかるコストを調べておいてください. - これに基づき, プリンタの利用に対する課金を, 実際に, - どのように始めればよいのでしょうか. - - さて, 残念ながら, この部分に関しては LPD - スプーリングシステムはほとんど役に立ちません. - 課金は使用しているプリンタの種類, 印字するもののファイルの形式, + という訳で、印字するためには料金をとることが必要です。 + 取らない理由などありましょうか。紙やインクにはお金がかかります。 + そして、プリンタの維持費もかかります。 + プリンタには可動部分が搭載されており、 + これらの部分は壊れやすいという傾向があります。 + プリンタや、その利用形態、維持費について調査をし、1 ページ + (1 フィート、1 メートルなど) 当たりにかかるコストを調べておいてください。 + これに基づき、プリンタの利用に対する課金を、実際に、 + どのように始めればよいのでしょうか。 + + さて、残念ながら、この部分に関しては LPD + スプーリングシステムはほとんど役に立ちません。 + 課金は使用しているプリンタの種類、印字するもののファイルの形式、 プリンタの利用に対する課金での - あなた自身の要求に大きく左右されます. + あなた自身の要求に大きく左右されます。 - 課金システムを実現するためには, プリンタのテキストフィルタ + 課金システムを実現するためには、プリンタのテキストフィルタ (プレインテキストのジョブに対して課金するため) と変換フィルタ - (その他のファイル形式に対して課金するため) を変更して, - 印字したページを数えたり, - プリンタに印字したページ数を取得するための要求を送る必要があります. - ただし, 出力フィルタのみを利用している場合は, - 課金をおこなうことができません. フィルタに関しては, + (その他のファイル形式に対して課金するため) を変更して、 + 印字したページを数えたり、 + プリンタに印字したページ数を取得するための要求を送る必要があります。 + ただし、出力フィルタのみを利用している場合は、 + 課金をおこなうことができません。フィルタに関しては、 「 - フィルタ」をご覧ください. + フィルタ」をご覧ください。 - 一般に, 課金方式には次の2つがあります. + 一般に、課金方式には次の 2 つがあります。 定期的に課金する方法 - はよく利用される方法です. この理由は, - 恐らく比較的簡単に実現できるからです. - 誰かがジョブを印字する度に, フィルタはそのユーザ名, - ホスト名, 印字したページ数を課金データファイルに記録します. - 毎月, 毎学期, 毎年, その他お好みの時期に, - 各プリンタの課金用ファイルを集め, + はよく利用される方法です。この理由は、 + 恐らく比較的簡単に実現できるからです。 + 誰かがジョブを印字する度に、フィルタはそのユーザ名、 + ホスト名、印字したページ数を課金データファイルに記録します。 + 毎月、毎学期、毎年、その他お好みの時期に、 + 各プリンタの課金用ファイルを集め、 それぞれのユーザが印字したページ数を合計して - その分の課金をおこないます. - 次回の課金期間をデータを 0 にして課金を再開するために, - すべてのログファイルを削除します. + その分の課金をおこないます。 + 次回の課金期間をデータを 0 にして課金を再開するために、 + すべてのログファイルを削除します。 利用毎に課金する方法 - はあまり利用されていません. これは, - 実現するのが比較的難しいからです. この方式では, - プリンタを使用したらすぐに, - フィルタがユーザにその利用に対する課金をおこないます. - ディスククオータのように, 課金作業は瞬時におこなわれます. - この方式では, ユーザのアカウントが赤字になる場合に, - ユーザが印字をおこなうことを拒否することができます. - また, ユーザにプリンタ版 quotaを調べたり, - 調整したりする方法を提供したいと思うかもしれ ません. - これを実現するためには, ユーザとその quota を追跡するために, - あるデータベース用のコードが必要となります. + はあまり利用されていません。これは、 + 実現するのが比較的難しいからです。この方式では、 + プリンタを使用したらすぐに、 + フィルタがユーザにその利用に対する課金をおこないます。 + ディスククオータのように、課金作業は瞬時におこなわれます。 + この方式では、ユーザのアカウントが赤字になる場合に、 + ユーザが印字をおこなうことを拒否することができます。 + また、ユーザに プリンタ版 quota を調べたり、 + 調整したりする方法を提供したいと思うかもしれ ません。 + これを実現するためには、ユーザとその quota を追跡するために、 + あるデータベース用のコードが必要となります。 - LPD スプーリングシステムでは, - 両方式を簡単にですがサポートしています. これは, (ほとんどの場合で) - 印字作業をフィルタがおこなっていたように, - 課金作業もこのためのコードも用意することで実現されています. - しかし, 明るい面もあります. - それは, 課金方式に関して, 非常に大きな柔軟性が与えられたということです. - 例えば, 「定期的に課金する方法」か, - 「利用毎に課金する方法」のどちらかを選びまず, そして, - どんな情報 (ユーザ名, ホスト名, ジョブのタイプ, 印字された頁数, - 使用した紙の大きさ, 印字をするために要した時間など) - をログに記録するかを決めます. - 以上のことをおこなうには, 上記の情報を保持するために, - フィルタを変更しなくてはなりません. + LPD スプーリングシステムでは、 + 両方式を簡単にですがサポートしています。これは、(ほとんどの場合で) + 印字作業をフィルタがおこなっていたように、 + 課金作業もこのためのコードも用意することで実現されています。 + しかし、明るい面もあります。 + それは、課金方式に関して、非常に大きな柔軟性が与えられたということです。 + 例えば、「定期的に課金する方法」か、 + 「利用毎に課金する方法」のどちらかを選びまず、そして、 + どんな情報 (ユーザ名、ホスト名、ジョブのタイプ、印字された頁数、 + 使用した紙の大きさ、印字をするために要した時間など) + をログに記録するかを決めます。 + 以上のことをおこなうには、上記の情報を保持するために、 + フィルタを変更しなくてはなりません。 手軽なプリンタ課金方法 - FreeBSD には, 「定期的に課金する方法」による課金を - すぐに設定できるように, 2個のプログラムを添付しています. - その内の1つはテキストフィルタ lpf で, - これについては, 「 - テキストフィルタ lpf」をご覧ください. もう1つは, - &man.pac.8; で, - これはプリンタの課金データファイルからのエントリを集め, - これを合計するプログラムです. + FreeBSD には、「定期的に課金する方法」による課金を + すぐに設定できるように、2 個のプログラムを添付しています。 + その内の1つはテキストフィルタ lpf で、 + これについては、「 + テキストフィルタ lpf」をご覧ください。もう1つは、 + &man.pac.8; で、 + これはプリンタの課金データファイルからのエントリを集め、 + これを合計するプログラムです。 - フィルタはどのように機能しているか」で述べたように, - LPD ではテキストフィルタや変換フィルタを起動しますが, - そのコマンドラインで使用している課金データファイルの名前が指定されます. - 両フィルタはこの引数を使って, - どの課金データファイルのエントリに書き込めばよいのかを知ることができます. + フィルタはどのように機能しているか」で述べたように、 + LPD ではテキストフィルタや変換フィルタを起動しますが、 + そのコマンドラインで使用している課金データファイルの名前が指定されます。 + 両フィルタはこの引数を使って、 + どの課金データファイルのエントリに書き込めばよいのかを知ることができます。 このファイルの名前は /etc/printcap 中の - af 項目によって指定されます. - このファイルが絶対パ スで指定されない場合は, - スプーリングディレクトリからの相対パスとして扱われます. + af 項目によって指定されます。 + このファイルが絶対パ スで指定されない場合は、 + スプーリングディレクトリからの相対パスとして扱われます。 - LPD は, 紙のページの幅と行数 (pw と + LPD は、紙のページの幅と行数 (pwpl 項目で 指定される) を引数として - lpf を起動します. lpf - では, 何ページ印字したかを決定するためにこれらの引数を使用します. - ファイルをプリンタに送った後, - 課金情報を課金データファイルに書き込みます. - このファイルは次のようになります. + lpf を起動します。lpf + では、何ページ印字したかを決定するためにこれらの引数を使用します。 + ファイルをプリンタに送った後、 + 課金情報を課金データファイルに書き込みます。 + このファイルは次のようになります。 2.00 rose:andy 3.00 rose:kelly 3.00 orchid:mary 5.00 orchid:mary 2.00 orchid:zhang - 課金データファイルはプリンタ毎に分けて作るべきです. - これは, lpf - にはデータファイルをロックする機構が組み込まれていないためです. - したがって, lpf - が2つ起動されたとき, - 同じファイルに同時に書き込みをおこなった場合, - お互いのエントリが破壊されてしまうかもしれません. - 課金用ファイルを各プリンタ毎に確実に分けるには, + 課金データファイルはプリンタ毎に分けて作るべきです。 + これは、lpf + にはデータファイルをロックする機構が組み込まれていないためです。 + したがって、lpf + が 2 つ起動されたとき、 + 同じファイルに同時に書き込みをおこなった場合、 + お互いのエントリが破壊されてしまうかもしれません。 + 課金用ファイルを各プリンタ毎に確実に分けるには、 /etc/printcap 中の - af=acct 項目を使います. + af=acct 項目を使います。 - プリンタの利用に対してユーザに課金する準備ができたら, - スプーリングディレクトリに移動した後, - &man.pac.8; と入力してください. - 次のような, ドル中心主義の課金リストが表示されます - (訳注: ドル中心主義という表現は, - 表示がドルで出ることへの著者の皮肉でしょう. - セントがあるので小数点以下が表示されますが, - この機能も日本では邪魔ですね). + プリンタの利用に対してユーザに課金する準備ができたら、 + スプーリングディレクトリに移動した後、 + &man.pac.8; と入力してください。 + 次のような、ドル中心主義の課金リストが表示されます + (訳注: ドル中心主義という表現は、 + 表示がドルで出ることへの著者の皮肉でしょう。 + セントがあるので小数点以下が表示されますが、 + この機能も日本では邪魔ですね)。 Login pages/feet runs price orchid:kelly 5.00 1 $ 0.10 orchid:mary 31.00 3 $ 0.62 orchid:zhang 9.00 1 $ 0.18 rose:andy 2.00 1 $ 0.04 rose:kelly 177.00 104 $ 3.54 rose:mary 87.00 32 $ 1.74 rose:root 26.00 12 $ 0.52 total 337.00 154 $ 6.74 - &man.pac.8; が受け付ける引数には次のようなものがあります. + &man.pac.8; が受け付ける引数には次のようなものがあります。 プリンタ printer - の利用に対する課金リストを作成します. - このオプションは, /etc/printcap + の利用に対する課金リストを作成します。 + このオプションは、/etc/printcapaf - が絶対パスで指定されていた場合に限り, 動作します. + が絶対パスで指定されていた場合に限り、動作します。 - ユーザ名のアルファベット順ではなく, - 課金額の低い順にリストを並べます. + ユーザ名のアルファベット順ではなく、 + 課金額の低い順にリストを並べます。 - 課金データファイルにあるホスト名を無視します. - このオプションを使用すると, ホスト + 課金データファイルにあるホスト名を無視します。 + このオプションを使用すると、ホスト alpha のユーザ smith とホスト gamma のユーザ - smith は同一人物として扱われます. - このオプションが指定されない場合は, - 両者は別なユーザとして扱います. + smith は同一人物として扱われます。 + このオプションが指定されない場合は、 + 両者は別なユーザとして扱います。 /etc/printcap の - pc 項目で指定された値, または, - デフォルトの値 (2セント) に代わり, 紙1ページ, または, - 1フィート当たりの価格を指定します. - price として, - 浮動小数点数を指定することができます. + pc 項目で指定された値、または、 + デフォルトの値 (2 セント) に代わり、紙1ページ、または、 + 1フィート当たりの価格を指定します。 + price として、 + 浮動小数点数を指定することができます。 - リストの並べる順番を逆順にします. + リストの並べる順番を逆順にします。 - 課金リストを作成し, - 課金データファイルを削除します. + 課金リストを作成し、 + 課金データファイルを削除します。 name ユーザ names - に対する課金情報のみを表示します. + に対する課金情報のみを表示します。 - &man.pac.8; が生成するデフォルトのリストには, - 各ホストのユーザ別に印字ページ数が表示されます. + &man.pac.8; が生成するデフォルトのリストには、 + 各ホストのユーザ別に印字ページ数が表示されます。 (ユーザがサイト内のすべてのホストを使用できるため) - ホスト名の情報が意味を持たない場合, + ホスト名の情報が意味を持たない場合、 pac -m - を実行してください. 次のようなリストが得られます. + を実行してください。次のようなリストが得られます。 Login pages/feet runs price andy 2.00 1 $ 0.04 kelly 182.00 105 $ 3.64 mary 118.00 35 $ 2.36 root 26.00 12 $ 0.52 zhang 9.00 1 $ 0.18 total 337.00 154 $ 6.74 - 課金額を決めるために, + 課金額を決めるために、 &man.pac.8; は /etc/printcap ファイルの pc - 項目で指定された値 (デフォルト値は 200, すなわち1 - ページ当たり2セント) - を使います. この項目で,印字物に課金したい - ファと思う 1 ページ当たり, - または, 1 フィート当たりの価格を100分の1セント単位で指定します. - &man.pac.8; を オプション付きで起動すると, - この値を置き換えることができます. - この オプションで指定する額の単位は, - 100 分の 1 セント単位ではなく, ドル単位です. 例えば, 次の指定では, - 1 ページ当たりの単価が 1 ドル 50 セントになります. + 項目で指定された値 (デフォルト値は 200、すなわち 1 + ページ当たり 2 セント) + を使います。この項目で、印字物に課金したい + ファと思う 1 ページ当たり、 + または、1 フィート当たりの価格を 100 分の 1 セント単位で指定します。 + &man.pac.8; を オプション付きで起動すると、 + この値を置き換えることができます。 + この オプションで指定する額の単位は、 + 100 分の 1 セント単位ではなく、ドル単位です。例えば、次の指定では、 + 1 ページ当たりの単価が 1 ドル 50 セントになります。 &prompt.root; pac -p1.50 - このオプションを使うと, - 実際の課金額を集計することができます. - - 最後に, pac -s - を起動すると, 課金情報は課金データ累計ファイルに保存されます. - このファイルの名前は, プリンタの課金データファイルの後ろに - _sum を付けたものとなります. そして, - 課金データファイルは削除されます. 次に - &man.pac.8; が起動されると, - その時点までの累計金額を得るために, - 課金データ累計ファイルが読み込まれ, - 通常の課金データファイルからの情報に加算されます. + このオプションを使うと、 + 実際の課金額を集計することができます。 + + 最後に、pac -s + を起動すると、課金情報は課金データ累計ファイルに保存されます。 + このファイルの名前は、プリンタの課金データファイルの後ろに + _sum を付けたものとなります。そして、 + 課金データファイルは削除されます。次に + &man.pac.8; が起動されると、 + その時点までの累計金額を得るために、 + 課金データ累計ファイルが読み込まれ、 + 通常の課金データファイルからの情報に加算されます。 印字されたページ数をどのように数えるか? - 課金を, リモートホストからの印字でさえも, - 正確におこなうためには, - ジョブで使用された紙が何ページであるかを特定できる必要があります. - このことは, プリンタ利用に対する課金をおこなう上の根本的な問題です. + 課金を、リモートホストからの印字でさえも、 + 正確におこなうためには、 + ジョブで使用された紙が何ページであるかを特定できる必要があります。 + このことは、プリンタ利用に対する課金をおこなう上の根本的な問題です。 - プレインテキストのジョブの場合, - 問題を解決するのはさほど難しくはありません. - ジョブが何行であったかを数え, プリンタがサポートしている紙 - 1 ページに印字できる最大の行数と比較すればよいのです. - 重ね打ちするために利用されるファイル中のバックスペース文字や, - 物理的に複数の行に渡る長い論理行に対する取り扱いを忘れずにおこなってください. + プレインテキストのジョブの場合、 + 問題を解決するのはさほど難しくはありません。 + ジョブが何行であったかを数え、プリンタがサポートしている紙 + 1 ページに印字できる最大の行数と比較すればよいのです。 + 重ね打ちするために利用されるファイル中のバックスペース文字や、 + 物理的に複数の行に渡る長い論理行に対する取り扱いを忘れずにおこなってください。 (「テキストフィルタ lpf」で紹介した) テキストフィルタ - lpf では, 課金をおこなうときに, - これらの取り扱いをおこなってくれます. - 課金をおこなうために必要なテキストフィルタを作成している方は, + lpf では、課金をおこなうときに、 + これらの取り扱いをおこなってくれます。 + 課金をおこなうために必要なテキストフィルタを作成している方は、 lpf - のソースコードが参考になるでしょう. + のソースコードが参考になるでしょう。 - これに対して, 他のファイル形式の処理はどのようにすれば - よいのでしょうか. + これに対して、他のファイル形式の処理はどのようにすれば + よいのでしょうか。 - まず, DVI から LaserJet, または, DVI から PostScript - への変換の場合, フィルタが dvilj や - dvips の 出力メッセージを解析することで, - 何ページ分の変換がおこなわれたかを知ることができます. - 他のファイル形式とその変換プログラムに関しても, - 同様のことができるかもしれません. + まず、DVI から LaserJet、または、DVI から PostScript + への変換の場合、フィルタが dvilj や + dvips の 出力メッセージを解析することで、 + 何ページ分の変換がおこなわれたかを知ることができます。 + 他のファイル形式とその変換プログラムに関しても、 + 同様のことができるかもしれません。 - しかし, この方式には問題点があります. それは, - 変換されたページがすべて印字されるとは限らないということです. - 例えば, プリンタが紙詰まりを起こしたり, トナー切れになったり, - はたまた, 爆発したりするかもしれません. - そのような状況により印字が途中で中止されたとしても, この方式では, - ユーザは全ページ分の料金を課されてしまうのです. + しかし、この方式には問題点があります。それは、 + 変換されたページがすべて印字されるとは限らないということです。 + 例えば、プリンタが紙詰まりを起こしたり、トナー切れになったり、 + はたまた、爆発したりするかもしれません。 + そのような状況により印字が途中で中止されたとしても、この方式では、 + ユーザは全ページ分の料金を課されてしまうのです。 - それでは, どのような対策をたてることができるのでしょうか. + それでは、どのような対策をたてることができるのでしょうか。 正確な - 課金をおこなうための唯一の確実な方法は, - 何ページ印字したのかを知らせることができるプリンタを入手し, - これをシリアルポートかネットワークに接続することです. + 課金をおこなうための唯一の確実な方法は、 + 何ページ印字したのかを知らせることができるプリンタを入手し、 + これをシリアルポートかネットワークに接続することです。 ほとんどすべての PostScript - プリンタではこの概念がサポートされています. + プリンタではこの概念がサポートされています。 他のプリンタも同様です (Imagen - レーザプリンタをネットワーク接続するなど). - それぞれのプリンタのフィルタを, - ジョブを印字した後で印字ページ数を得るように変更してください. - そして, 課金情報はここで得られた値のみに - 基づいて記録してください. 行数を数えたり, - エラーが生じやすいファイルの調査は必要とされません. - - もちろん, - 気前よく印字料金をすべて無料にすることもできます. + レーザプリンタをネットワーク接続するなど)。 + それぞれのプリンタのフィルタを、 + ジョブを印字した後で印字ページ数を得るように変更してください。 + そして、課金情報はここで得られた値のみに + 基づいて記録してください。行数を数えたり、 + エラーが生じやすいファイルの調査は必要とされません。 + + もちろん、 + 気前よく印字料金をすべて無料にすることもできます。 プリンタを使う プリンタ 使い方 - この節では, FreeBSD で設定したプリンタを使う方法について説明します. - ここでは, ユーザレベルでのコマンドを概説します. + この節では、FreeBSD で設定したプリンタを使う方法について説明します。 + ここでは、ユーザレベルでのコマンドを概説します。 &man.lpr.1; - 印字をおこないます. + 印字をおこないます。 &man.lpq.1; - プリンタキューを調べます. + プリンタキューを調べます。 &man.lprm.1; - プリンタキューにあるジョブを削除します. + プリンタキューにあるジョブを削除します。 - 管理者用コマンド &man.lpc.8; もありますが, + 管理者用コマンド &man.lpc.8; もありますが、 これは「プリンタを管理する」 - に記します. このコマンドは, - プリンタやそのキューの制御のために用いられます. + に記します。このコマンドは、 + プリンタやそのキューの制御のために用いられます。 - &man.lpr.1;, &man.lprm.1;, そして &man.lpq.1; の 3 - コマンドは, - オプションをとり, これによって, + &man.lpr.1;、&man.lprm.1;、そして &man.lpq.1; の 3 + コマンドは、 + オプションをとり、これによって、 /etc/printcap のように操作の対象となる - プリンタやキューを指定します. - これによって, 様々なプリンタに対してジョブを送る, - 取り消す, 調査することができます. - が使われなかった場合は, これらのコマンドは - PRINTER 環境変数で指定されたプリンタを使用します. - そして, PRINTER 環境変数がなかった場合は, + プリンタやキューを指定します。 + これによって、様々なプリンタに対してジョブを送る、 + 取り消す、調査することができます。 + が使われなかった場合は、これらのコマンドは + PRINTER 環境変数で指定されたプリンタを使用します。 + そして、PRINTER 環境変数がなかった場合は、 これらのコマンドはデフォルトのプリンタ - lp を使います. + lp を使います。 - 以下では, デフォルトプリンタ - という用語が意味するプリンタは, PRINTER - 環境変数で指定されたプリンタ, もしくは, PRINTER - 環境変数がない場合は, lp - という名前のプリンタです. + 以下では、デフォルトプリンタ + という用語が意味するプリンタは、PRINTER + 環境変数で指定されたプリンタ、もしくは、PRINTER + 環境変数がない場合は、lp + という名前のプリンタです。 印字する - ファイルを印字するためには, - 次のように入力してください. + ファイルを印字するためには、 + 次のように入力してください。 &prompt.user; lpr filename ... 印刷 - これにより, + これにより、 入力されたファイルのそれぞれをデフォルトのプリンタ - から印字します. ファイル名が与えられなかった場合, + から印字します。ファイル名が与えられなかった場合、 &man.lpr.1; - は標準入力から印字するデータを読み込みます. 例えば, - 次のコマンドにより, ある重要なシステムファイルが印字されます. + は標準入力から印字するデータを読み込みます。例えば、 + 次のコマンドにより、ある重要なシステムファイルが印字されます。 &prompt.user; lpr /etc/host.conf /etc/hosts.equiv - 印字させるプリンタを選択するためには, - 次のように入力します. + 印字させるプリンタを選択するためには、 + 次のように入力します。 &prompt.user; lpr -P printer-name filename ... - 次の例では, プリンタ rattan に, - カレントディレクトリにあるファイルの詳細なリストを印字しています. + 次の例では、プリンタ rattan に、 + カレントディレクトリにあるファイルの詳細なリストを印字しています。 &prompt.user; ls -l | lpr -P rattan - 上記の &man.lpr.1; コマンドではファイル名の指定がないので, - lpr は標準入力から印字するデータ, - この場合, ls -l - コマンドの出力, を読み込みます. + 上記の &man.lpr.1; コマンドではファイル名の指定がないので、 + lpr は標準入力から印字するデータ、 + この場合、ls -l + コマンドの出力、を読み込みます。 - &man.lpr.1; コマンドでは, - 出力の整形を制御したり, ファイル変換を適用したり, - 複数部数のコピーを作成したり, - などといた様々な幅広いオプションを受け付けることもできます. - 詳細については, + &man.lpr.1; コマンドでは、 + 出力の整形を制御したり、ファイル変換を適用したり、 + 複数部数のコピーを作成したり、 + などといた様々な幅広いオプションを受け付けることもできます。 + 詳細については、 「 - その他の印字オプション」をご覧ください. + その他の印字オプション」をご覧ください。 ジョブの処理状況を調べる プリントジョブ - &man.lpr.1; コマンドを使って印字をする場合, プリントしようと - するデータはプリントジョブと呼ばれる箱に一緒に置かれ, - これが LPD スプーリングシステムに送られます. - プリンタにはそれぞれジョブ用のキューがあり, - 送られてきたジョブはあなたや他のユーザからの別のジョブと一緒にそのキューで並んで, - 処理される順番を待ちます. - プリンタは到着順にこれらのジョブの印字をおこないます. - - デフォルトプリンタのキューの状態を表示するには, - &man.lpq.1; と入力します. プリンタを指定するときは, - オプションを使います. 例えば, 次のコマンド + &man.lpr.1; コマンドを使って印字をする場合、プリントしようと + するデータは プリントジョブ と呼ばれる箱に一緒に置かれ、 + これが LPD スプーリングシステムに送られます。 + プリンタにはそれぞれジョブ用のキューがあり、 + 送られてきたジョブはあなたや他のユーザからの別のジョブと一緒にそのキューで並んで、 + 処理される順番を待ちます。 + プリンタは到着順にこれらのジョブの印字をおこないます。 + + デフォルトプリンタのキューの状態を表示するには、 + &man.lpq.1; と入力します。プリンタを指定するときは、 + オプションを使います。例えば、次のコマンド &prompt.user; lpq -P bamboo - は, プリンタ bamboo - のキューの状態を表示します. この lpq - コマンドの出力結果の例を次に示します. + は、プリンタ bamboo + のキューの状態を表示します。この lpq + コマンドの出力結果の例を次に示します。 bamboo is ready and printing Rank Owner Job Files Total Size active kelly 9 /etc/host.conf, /etc/hosts.equiv 88 bytes 2nd kelly 10 (standard input) 1635 bytes 3rd mary 11 ... 78519 bytes - この例では, bamboo - のキューに3つのジョブがあることが分かります. - 最初のジョブはユーザ kelly からのものであり, - ジョブ番号 9 が割り当てられています. - プリンタのすべてのジョブには一意なジョブ番号が付けられています. - ほとんどの場合, このジョブ番号は無視することができますが, - ジョブをキャンセルするときにはこの番号が必要になります. - このことの詳細については, 「この例では、bamboo + のキューに 3 つのジョブがあることが分かります。 + 最初のジョブはユーザ kelly からのものであり、 + ジョブ番号 9 が割り当てられています。 + プリンタのすべてのジョブには一意なジョブ番号が付けられています。 + ほとんどの場合、このジョブ番号は無視することができますが、 + ジョブをキャンセルするときにはこの番号が必要になります。 + このことの詳細については、「ジョブの削除 - 」をご覧ください. + 」をご覧ください。 - ジョブ番号9のジョブは2つのファイルを処理します. すなわち, + ジョブ番号 9 のジョブは 2 つのファイルを処理します。すなわち、 &man.lpr.1; - のコマンドラインに複数のファイル名が与えられたときは, - 1つのジョブとして扱われるのです. このジョブは, 現在, + のコマンドラインに複数のファイル名が与えられたときは、 + 1つのジョブとして扱われるのです。このジョブは、現在、 アクティブジョブ (Rank - の欄の active という後に注目) になっています. - これは, プリンタからそのジョブが現在印字されているはずであることを意味しています. - 2 番目のジョブでは, - &man.lpr.1; コマンドに標準入力からデータが与えられています. - 3番目のジョブはユーザ mary から与えられました. - このジョブのサイズはとても大きくなっています. - 彼女がプリントしようとしたファイルのパス名はここで表示させるには長すぎるため, - &man.lpq.1; コマンドはドットを3つだけ表示しています. - - &man.lpq.1; からの出力で一番最初の行もまた有益な情報を与えています. - この行から, プリンタが現在何をしているか (あるいは, 少なくとも - LPD がプリンタがしていると思っていること) が分かります. + の欄の active という後に注目) になっています。 + これは、プリンタからそのジョブが現在印字されているはずであることを意味しています。 + 2 番目のジョブでは、 + &man.lpr.1; コマンドに標準入力からデータが与えられています。 + 3番目のジョブはユーザ mary から与えられました。 + このジョブのサイズはとても大きくなっています。 + 彼女がプリントしようとしたファイルのパス名はここで表示させるには長すぎるため、 + &man.lpq.1; コマンドはドットを 3 つだけ表示しています。 + + &man.lpq.1; からの出力で一番最初の行もまた有益な情報を与えています。 + この行から、プリンタが現在何をしているか (あるいは、少なくとも + LPD がプリンタがしていると思っていること) が分かります。 &man.lpq.1; コマンドは - オプションもサポートしています. - これにより, - 詳しい情報が表示されます. - lpq -l の実行例を次に示します. + オプションもサポートしています。 + これにより、 + 詳しい情報が表示されます。 + lpq -l の実行例を次に示します。 waiting for bamboo to become ready (offline ?) kelly: 1st [job 009rose] /etc/host.conf 73 bytes /etc/hosts.equiv 15 bytes kelly: 2nd [job 010rose] (standard input) 1635 bytes mary: 3rd [job 011rose] /home/orchid/mary/research/venus/alpha-regio/mapping 78519 bytes ジョブの削除 印字するようジョブを - 送った後で印字を中断したくなったときは, - &man.lprm.1; コマンドで, - キューの中からそのジョブを削除することができます. - 大抵の場合, アクティブジョブでさえも - &man.lprm.1; を使って削除することができますが, - そのジョブの一部またはすべてが印字されてしまうかもしれません. - - デフォルトプリンタへのジョブを削除するためには, 最初に, - &man.lpq.1; を使ってそのジョブ番号を調べます. - すなわち, それから, - 次のように入力して, ジョブを削除します. + 送った後で印字を中断したくなったときは、 + &man.lprm.1; コマンドで、 + キューの中からそのジョブを削除することができます。 + 大抵の場合、アクティブジョブでさえも + &man.lprm.1; を使って削除することができますが、 + そのジョブの一部またはすべてが印字されてしまうかもしれません。 + + デフォルトプリンタへのジョブを削除するためには、最初に、 + &man.lpq.1; を使ってそのジョブ番号を調べます。 + すなわち、それから、 + 次のように入力して、ジョブを削除します。 &prompt.user; lprm job-number - 特定のプリンタへのジョブを削除するときは, - オプションを使ってそのプリンタを指定します. - 例えば, プリンタ bamboo - のキューからジョブ番号 10 のジョブを削除するには次のようにします. + 特定のプリンタへのジョブを削除するときは、 + オプションを使ってそのプリンタを指定します。 + 例えば、プリンタ bamboo + のキューからジョブ番号 10 のジョブを削除するには次のようにします。 &prompt.user; lprm -P bamboo 10 - &man.lprm.1; コマンドには略記法がいくつかあります. + &man.lprm.1; コマンドには略記法がいくつかあります。 lprm - あなたが (デフォルトプリンタへ) - 送ったジョブをすべて削除します. + 送ったジョブをすべて削除します。 lprm user ユーザ user が - (デフォルトプリンタへ) 送ったジョブをすべて削除します. - 他のユーザのジョブを削除できるのはスーパユーザだけです. - あなたは, あなた自身のジョブしか削除することはできません. + (デフォルトプリンタへ) 送ったジョブをすべて削除します。 + 他のユーザのジョブを削除できるのはスーパユーザだけです。 + あなたは、あなた自身のジョブしか削除することはできません。 lprm ジョブ番号もユーザ名もシンボル - も指定されないときは, - &man.lprm.1; は現在のアクティブジョブを, - そのジョブを送ったのがあなた自身であるときに限り, - デフォルトプリンタから削除します. ただし, - スーパユーザは任意のアクティブジョブを削除することができます. + も指定されないときは、 + &man.lprm.1; は現在のアクティブジョブを、 + そのジョブを送ったのがあなた自身であるときに限り、 + デフォルトプリンタから削除します。ただし、 + スーパユーザは任意のアクティブジョブを削除することができます。 上記の略記法をデフォルトプリンタではなく - 特定のプリンタに対しておこなうときは, - オプションでそのプリンタを指定するだけよ いのです. 例えば, + 特定のプリンタに対しておこなうときは、 + オプションでそのプリンタを指定するだけよ いのです。例えば、 プリンタ rattan のキューへあなたが送ったジョブを - すべて削除するためには次のようにします. + すべて削除するためには次のようにします。 &prompt.user; lprm -P rattan - - ネットワーク環境で作業をしている場合, - あるホストから送られたプリンタジョブは, これを送ったホストで - &man.lprm.1; を使った場合に限って, - これを削除することができます. - 他のホストで同じプリンタを使えたとしても, - このジョブを削除することはできません. - 次の例では, 他ホストからジョブを削除することを試みています. + ネットワーク環境で作業をしている場合、 + あるホストから送られたプリンタジョブは、これを送ったホストで + &man.lprm.1; を使った場合に限って、 + これを削除することができます。 + 他のホストで同じプリンタを使えたとしても、 + このジョブを削除することはできません。 + 次の例では、他ホストからジョブを削除することを試みています。 &prompt.user; lpr -P rattan myfile &prompt.user; rlogin orchid &prompt.user; lpq -P rattan Rank Owner Job Files Total Size active seeyan 12 ... 49123 bytes 2nd kelly 13 myfile 12 bytes &prompt.user; lprm -P rattan 13 rose: Permission denied &prompt.user; logout &prompt.user; lprm -P rattan 13 dfA013rose dequeued cfA013rose dequeued その他の印字オプション - &man.lpr.1; コマンドには, テキストの整形や, - 図や他のファイル形式の変換, 複数部コピーの生成, - ジョブの扱いなどをを制御することができます. - この節では, これに関するオプションについて記しています. + &man.lpr.1; コマンドには、テキストの整形や、 + 図や他のファイル形式の変換、複数部コピーの生成、 + ジョブの扱いなどをを制御することができます。 + この節では、これに関するオプションについて記しています。 整形と変換に関するオプション 以下の &man.lpr.1; 用のオプションはジョブにおける - ファイルの整形の制御に関するものです. - このオプションは, ジョブにプレインテキストが含まれない場合や + ファイルの整形の制御に関するものです。 + このオプションは、ジョブにプレインテキストが含まれない場合や &man.pr.1; - ユーティリティを使ってプレインテキストを整形する場合に用いてください. + ユーティリティを使ってプレインテキストを整形する場合に用いてください。 TeX - 次の例では, プリンタ + 次の例では、プリンタ bamboo に (TeX 組版システムによる) DVI ファイル - fish-report.dvi を印字しています. + fish-report.dvi を印字しています。 &prompt.user; lpr -P bamboo -d fish-report.dvi - このオプションは, - ジョブに含まれるすべてのファイルに対して適用されます. - したがって, 1つのジョブに (例えば) DVI ファイルと ditroff - ファイルを混在させることはできません. その代わりに, - ファイルを形式毎に別々のジョブに分け, - それぞれのジョブでその形式用の変換オプションを使って印字してください. + このオプションは、 + ジョブに含まれるすべてのファイルに対して適用されます。 + したがって、1 つのジョブに (例えば) DVI ファイルと ditroff + ファイルを混在させることはできません。その代わりに、 + ファイルを形式毎に別々のジョブに分け、 + それぞれのジョブでその形式用の変換オプションを使って印字してください。 - を除くすべてのオプションを使用 するためには, - 出力先プリンタ用の変換フィルタが必要です. 例えば, - オプションを使用するには, DVI - 用の変換フィルタが必要 です. 詳細については, 「-d オプションを使用するには、DVI + 用の変換フィルタが必要 です。詳細については、「 - 変換フィルタ」で説明しています. + 変換フィルタ」で説明しています。 - cifplot ファイルを印字します. + cifplot ファイルを印字します。 - DVI ファイルを印字します. + DVI ファイルを印字します。 - FORTRAN プログラムを印字します. + FORTRAN プログラムを印字します。 - plot のデータを印字します. + plot のデータを印字します。 - 出力に対して, number - カラム分の字下げをおこないます. - number が省略されると, - 8カラム分字下げされます. - このオプションはある変換フィルタと一緒の指定されたときのみに機能します. + 出力に対して、number + カラム分の字下げをおこないます。 + number が省略されると、 + 8 カラム分字下げされます。 + このオプションはある変換フィルタと一緒の指定されたときのみに機能します。 - と数字の間に空白を入れてはいけません. + と数字の間に空白を入れてはいけません。 - 制御文字を含む文字通りのテキストデータを印字します. + 制御文字を含む文字通りのテキストデータを印字します。 - ditroff (device independent troff) データを印字します. + ditroff (device independent troff) データを印字します。 -p 印字する前に &man.pr.1; - によってプレインテキストを整形します. - 詳細については &man.pr.1; をご覧ください. + によってプレインテキストを整形します。 + 詳細については &man.pr.1; をご覧ください。 - &man.pr.1; コマンドにより生成されるヘッダを, - ファイル名の代わりに title とする. - このオプションは, - と一緒に使ったときのみ機能する. + &man.pr.1; コマンドにより生成されるヘッダを、 + ファイル名の代わりに title とする。 + このオプションは、 + と一緒に使ったときのみ機能する。 - troff データを印字します. + troff データを印字します。 - ラスタのデータを印字します. + ラスタのデータを印字します。 - 次の例では, &man.ls.1; - のマニュアルを美しく整形したものをデフォルトプリンタで印字しています. + 次の例では、&man.ls.1; + のマニュアルを美しく整形したものをデフォルトプリンタで印字しています。 &prompt.user; zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t &man.zcat.1; コマンドで - &man.ls.1; のマニュアルのソースファイルの圧縮を復元し, これを - &man.troff.1; コマンドに渡しています. + &man.ls.1; のマニュアルのソースファイルの圧縮を復元し、これを + &man.troff.1; コマンドに渡しています。 これによりソースファイルが整形され - GNU troff の形式となります. - その結果は &man.lpr.1; に渡され, - LPD スプーラへジョブの要求が発せられます. + GNU troff の形式となります。 + その結果は &man.lpr.1; に渡され、 + LPD スプーラへジョブの要求が発せられます。 &man.lpr.1; には - オプションが使われているため, + オプションが使われているため、 スプーラでジョブを印字したときに GNU troff - の形式から, デフォルトプリンタ解釈できる形式へと変換されます. + の形式から、デフォルトプリンタ解釈できる形式へと変換されます。 ジョブに関するオプション - 以下のオプションは, &man.lpr.1; によって, - そのジョブを特殊な扱いにするよう LPD に指示するためのものである. + 以下のオプションは、&man.lpr.1; によって、 + そのジョブを特殊な扱いにするよう LPD に指示するためのものである。 -# copies ジョブに含まれるファイルのそれぞれを - 1部だけ印字するのではなく, + 1 部だけ印字するのではなく、 copies - 部のコピーを生成させるものです. 管理者によっては, - プリンタの消耗を避け, コピー機による複製を奨励するために - このオプションの使用が禁止されているかもしれません. - これに関しては, 「 複数部のコピーの印字を制限する - 」をご覧ください. + 」をご覧ください。 - 次の例では, デフォルトプリンタで - parser.c を3 部コピーし, 次に, - parser.h を3部コピーしています. + 次の例では、デフォルトプリンタで + parser.c を3 部コピーし、次に、 + parser.h を3部コピーしています。 &prompt.user; lpr -#3 parser.c parser.h -m - 印字ジョブが完了した後で, メールを送ります. - このオプショ ンを付けると, LPD - システムはジョブの扱いが終了したときに, - あなたのアカウントにメールを送ります. - メールのメッセージには, ジョブが正常終了したのか, あるいは, - 何か異常があり, (しばしば) - その異常が何であったのかが書かれています. + 印字ジョブが完了した後で、メールを送ります。 + このオプショ ンを付けると、LPD + システムはジョブの扱いが終了したときに、 + あなたのアカウントにメールを送ります。 + メールのメッセージには、ジョブが正常終了したのか、あるいは、 + 何か異常があり、(しばしば) + その異常が何であったのかが書かれています。 -s - 印字ファイルをスプールディレクトリにコピーせず, - 代わりに, - シンボリックリンクを作成するよう指示します. - - 印字させるジョブのサイズが大きいとき, - このオプションを使うと便利かもしれません. このオプションにより, - スプー ルディレクトリの容量が節約されます (それに, - 巨大なジョブのお陰でスプールディレクトリのあるファイルシステムの空き容量がなくなってしまうかもしれません). - さらに, LPD - がいちいちすべてのデータをコピーする必要がなくなりますので, - 時間の節約にもなります. - - ただし, 欠点もあります. LPD - はオリジナルのファイルを直接参照するので, - 印字が終了するまでそのファイルを変更したり削除することができません. + 印字ファイルをスプールディレクトリにコピーせず、 + 代わりに、 + シンボリックリンクを作成するよう指示します。 + + 印字させるジョブのサイズが大きいとき、 + このオプションを使うと便利かもしれません。このオプションにより、 + スプー ルディレクトリの容量が節約されます (それに、 + 巨大なジョブのお陰でスプールディレクトリのあるファイルシステムの空き容量がなくなってしまうかもしれません)。 + さらに、LPD + がいちいちすべてのデータをコピーする必要がなくなりますので、 + 時間の節約にもなります。 + + ただし、欠点もあります。LPD + はオリジナルのファイルを直接参照するので、 + 印字が終了するまでそのファイルを変更したり削除することができません。 - リモートのプリンタで印字している場合, LPD は, - 結局のところ, - ローカルホストからリモートホストにファイルをコピーする必要があります. したがって, - オプションはローカルのスプーリングディレクトリの空き容量を節約するだけで, - リモート側では節約されません. それにも関わらず, - このオプションはそれでも有用です. + リモートのプリンタで印字している場合、LPD は、 + 結局のところ、 + ローカルホストからリモートホストにファイルをコピーする必要があります。したがって、 + オプションはローカルのスプーリングディレクトリの空き容量を節約するだけで、 + リモート側では節約されません。それにも関わらず、 + このオプションはそれでも有用です。 -r - ジョブに含まれるファイルを, + ジョブに含まれるファイルを、 スプーリングディレクトリに - ファイルをコピーした後に削除します. もしくは, - オプションと一緒に使われた場合は, - 印字終了後に削除されます. - このオプションの使用には十分注意して下さい. + ファイルをコピーした後に削除します。もしくは、 + オプションと一緒に使われた場合は、 + 印字終了後に削除されます。 + このオプションの使用には十分注意して下さい。 ヘッダページ用オプション - 以下のオプションにより, + 以下のオプションにより、 ジョブのヘッダページに通常印字さ れるテキストを - &man.lpr.1; に調整させることができます. - 対象のプリンタからヘッダページが出力されない場合は, - これらのオプションは何の効力も持ちません. - ヘッダページの設定に関する情報については, + &man.lpr.1; に調整させることができます。 + 対象のプリンタからヘッダページが出力されない場合は、 + これらのオプションは何の効力も持ちません。 + ヘッダページの設定に関する情報については、 「 - ヘッダページ」を参照してください. + ヘッダページ」を参照してください。 -C text ヘッダページに印字されるホスト名を - text に置き換えます. なお, - ホスト名の場所には, 通常, - ジョブの要求があったホストの名前が印字されます. + text に置き換えます。なお、 + ホスト名の場所には、通常、 + ジョブの要求があったホストの名前が印字されます。 -J text ヘッダページに印字されるジョブ名を - text に置き換えます. - ジョブ名の場所には, 通常, ジョブの最初のファイル名, - または, 標準入力からデータが印字されたときは - stdin が印字されます. + text に置き換えます。 + ジョブ名の場所には、通常、ジョブの最初のファイル名、 + または、標準入力からデータが印字されたときは + stdin が印字されます。 -h - ヘッダページを出力を禁止します. + ヘッダページを出力を禁止します。 - サイトによっては, - そのヘッダページの生成方法により, - このオプションの効果が現れないかもしれません. - 詳細は, 「サイトによっては、 + そのヘッダページの生成方法により、 + このオプションの効果が現れないかもしれません。 + 詳細は、「 - ヘッダページ」をご覧ください. + ヘッダページ」をご覧ください。 プリンタを管理する - プリンタの管理者として, プリンタの設置, 設定, - そして, それらのテストをおこなう必要がありました. - &man.lpc.8; コマンドにより, - これまでとは別な管理方法がプリンタと対話的におこなわれます. - &man.lpc.8; により, 次のことが可能となります. + プリンタの管理者として、プリンタの設置、設定、 + そして、それらのテストをおこなう必要がありました。 + &man.lpc.8; コマンドにより、 + これまでとは別な管理方法がプリンタと対話的におこなわれます。 + &man.lpc.8; により、次のことが可能となります。 - プリンタの起動, 停止をおこなう. + プリンタの起動、停止をおこなう。 - キューへの入力の許可, 禁止をおこなう. + キューへの入力の許可、禁止をおこなう。 - それぞれのキューにあるジョブの順番を変更する. + それぞれのキューにあるジョブの順番を変更する。 - 最初に用語に関する注意をしておきます. - プリンタが停止しているとは, + 最初に用語に関する注意をしておきます。 + プリンタが停止しているとは、 キューの中にあるどのジョブも印字されることがない状態 - を言います. この状態においても, - ユーザはまだジョブの要求をおこなうことができますが, - これらのジョブはキューの中で, - プリンタがスタートする状態になるまで, - あるいは, キューの内容が削除されるまで待たされることになります. + を言います。この状態においても、 + ユーザはまだジョブの要求をおこなうことができますが、 + これらのジョブはキューの中で、 + プリンタがスタートする状態になるまで、 + あるいは、キューの内容が削除されるまで待たされることになります。 - キューが禁止状態にあるとは, (root + キューが禁止状態にあるとは、(root 以外の) すべてのユーザが - プリンタにジョブを要求することができない状態のことを言います. - キューが許可状態にある場合は, - ジョブの入力が許可されます. - キューが禁止状態にある場合でも, + プリンタにジョブを要求することができない状態のことを言います。 + キューが許可状態にある場合は、 + ジョブの入力が許可されます。 + キューが禁止状態にある場合でも、 プリンタをスタートす - る状態にすることは可能です. この場合は, - キューが空になるまで, - キュー内のジョブの印字が続けられます. + る状態にすることは可能です。この場合は、 + キューが空になるまで、 + キュー内のジョブの印字が続けられます。 - 一般的に, + 一般的に、 &man.lpc.8; コマンドを使用するには - root の権限を持っている必要があります. 一般のユーザも - &man.lpc.8; コマンドを使うことはできますが, + root の権限を持っている必要があります。一般のユーザも + &man.lpc.8; コマンドを使うことはできますが、 プリンタの状態を取得することとハングしたプリンタ - を再スタートすることだけに使用が制限されています. + を再スタートすることだけに使用が制限されています。 - 以下に, - &man.lpc.8; コマンドに関する説明の要約を述べます. - ほとんどのコマンドでは, 操作対象となるプリンタを指定するため - printer-name 引数を与えます. + 以下に、 + &man.lpc.8; コマンドに関する説明の要約を述べます。 + ほとんどのコマンドでは、操作対象となるプリンタを指定するため + printer-name 引数を与えます。 printer-name の代わりに - all が与えられると, 操作は + all が与えられると、操作は /etc/printcap - 内にある全プリンタに対しておこなわれることになります. + 内にある全プリンタに対しておこなわれることになります。 abort printer-name - 現在のジョブをキャンセルし, プリンタを停止させます. - キューが許可状態にある場合は, - ユーザはまだジョブを入力することができます. + 現在のジョブをキャンセルし、プリンタを停止させます。 + キューが許可状態にある場合は、 + ユーザはまだジョブを入力することができます。 clean printer-name - プリンタのスプーリングディレクトリから, - ジョブの古いファイルを削除します. 状況によって, - とりわけ, 印字途中でエラーが発生していたり, - 管理操作が頻発していた場合には, + プリンタのスプーリングディレクトリから、 + ジョブの古いファイルを削除します。状況によって、 + とりわけ、印字途中でエラーが発生していたり、 + 管理操作が頻発していた場合には、 ジョブで作られたファイルを LPD が完全に削除しないことが - あります. このコマンドでは, - スプーリングディレクトリに入っていないファイルを見つけ出し, - それを削除しています. + あります。このコマンドでは、 + スプーリングディレクトリに入っていないファイルを見つけ出し、 + それを削除しています。 disable printer-name - キューに新しいジョブを入れることを禁止します. - プリンタ がスタート状態にあるときは, - キューに残っているジョブの印字は続けられます. ただし, - キューが禁止状態にあったとしても, スーパーユーザ (root) - は常にジョブを入力することができます. - - このコマンドは, - 新しいプリンタやフィルタを設置している間に使用すると有用です. - すなわち, キューを禁止状態にしておくと, - root によるジョブのみが入力されます. そして, - その他のユーザは, テストが完了し, + キューに新しいジョブを入れることを禁止します。 + プリンタ がスタート状態にあるときは、 + キューに残っているジョブの印字は続けられます。ただし、 + キューが禁止状態にあったとしても、スーパーユーザ (root) + は常にジョブを入力することができます。 + + このコマンドは、 + 新しいプリンタやフィルタを設置している間に使用すると有用です。 + すなわち、キューを禁止状態にしておくと、 + root によるジョブのみが入力されます。そして、 + その他のユーザは、テストが完了し、 enable - コマンドでキューが再度許可状態になるまで, - ジョブの入力はできなくなります. + コマンドでキューが再度許可状態になるまで、 + ジョブの入力はできなくなります。 down printer-name message - プリンタをダウンさせます. これは, - disable をおこなった後で, - stop をおこなった場合と等価になります. - message は, ユーザが - &man.lpq.1; コマンドでプリンタのキューの状態を調べたり, + プリンタをダウンさせます。これは、 + disable をおこなった後で、 + stop をおこなった場合と等価になります。 + message は、ユーザが + &man.lpq.1; コマンドでプリンタのキューの状態を調べたり、 lpc status - でプリンタの状態を調べたときに, - プリンタの状況として表示されるメッセージです. + でプリンタの状態を調べたときに、 + プリンタの状況として表示されるメッセージです。 enable printer-name - プリンタのキューを許可状態にします. - ユーザはジョブの入 力ができるようになりますが, - プリンタがスタートの状態に なるまでは, - プリンタからは何も印字されません. + プリンタのキューを許可状態にします。 + ユーザはジョブの入力ができるようになりますが、 + プリンタがスタートの状態になるまでは、 + プリンタからは何も印字されません。 help command-name command-name - コマンドのヘルプメッセージを表示します. + コマンドのヘルプメッセージを表示します。 command-name - が指定されなかった場合は, - 利用できるコマンドの要約が表示されます. + が指定されなかった場合は、 + 利用できるコマンドの要約が表示されます。 restart printer-name - プリンタをスタートさせます. 通常のユーザは, - LPD がある異常な状況でハングしたときに限り, - このコマンドを使用することができます. しかし, + プリンタをスタートさせます。通常のユーザは、 + LPD がある異常な状況でハングしたときに限り、 + このコマンドを使用することができます。しかし、 stop - または down コマンドにより, - 停止状態にあるプリンタをスター トさせることはできません. - restart コマンドは, + または down コマンドにより、 + 停止状態にあるプリンタをスタートさせることはできません。 + restart コマンドは、 abort の後に start - をおこなったことと同じになります. + をおこなったことと同じになります。 start printer-name - プリンタをスタートさせます. - プリンタのキューにあるジョブを印字することでしょう. + プリンタをスタートさせます。 + プリンタのキューにあるジョブを印字することでしょう。 stop printer-name - プリンタを停止します. プリンタは, - 現在のジョブを終了させ, そして, - キューにあるその他のジョブは印字しません. - プリンタが停止状態にあったとしても, まだ, - 許可状態にあるキューに対して, ジョブを送ることができます. + プリンタを停止します。プリンタは、 + 現在のジョブを終了させ、そして、 + キューにあるその他のジョブは印字しません。 + プリンタが停止状態にあったとしても、まだ、 + 許可状態にあるキューに対して、ジョブを送ることができます。 topq printer-name job-or-username printer-name - のキューに対して, ジョブ番号 - job のジョブ, または, ユーザ + のキューに対して、ジョブ番号 + job のジョブ、または、ユーザ username - から送られたジョブを置き換えて, キューの先頭に持ってきます. - このコマンドに関しては, + から送られたジョブを置き換えて、キューの先頭に持ってきます。 + このコマンドに関しては、 printer-name の代わりに all - を使用することはできません. + を使用することはできません。 up printer-name - プリンタをアップ状態にします. これの反対のコマンドが - down です. start + プリンタをアップ状態にします。これの反対のコマンドが + down です。start の次に enable - をおこなったことと等しくなります. + をおこなったことと等しくなります。 - コマンドラインから上記のコマンドを入力すると, + コマンドラインから上記のコマンドを入力すると、 &man.lpc.8; - はこれを受け付けます. コマンドが入力されなかった場合は, - &man.lpc.8; は対話モードに入り, - exit, quit, - または, - ファイル終端文字が入力されるまでコマンドの入力ができます. + はこれを受け付けます。コマンドが入力されなかった場合は、 + &man.lpc.8; は対話モードに入り、 + exitquit、 + または、 + ファイル終端文字が入力されるまでコマンドの入力ができます。 標準スプーラの代替品 - このマニュアルを最初から通読されている方ならば, ここまでで, + このマニュアルを最初から通読されている方ならば、ここまでで、 FreeBSD 付属の LPD スプーリングシステムに関して知っておくべき - ことすべてを学ばれたことと思います. - 多分, このシステムにあるたくさんの欠点について認識できたことでしょう. - すると, + ことすべてを学ばれたことと思います。 + 多分、このシステムにあるたくさんの欠点について認識できたことでしょう。 + すると、 (FreeBSD 上で動作する) スプーリングシステムには他にどのようなものがあるのか - という疑問が自然と湧いてきます. + という疑問が自然と湧いてきます。 LPRng LPRng - LPRng は, その称するところの意味は次世代の LPR - です. これは PLP を完全に書き換えたものになっています. + LPRng は、その称するところの意味は 次世代の LPR + です。これは PLP を完全に書き換えたものになっています。 Patrick Powell と Justin Mason (PLP の主要な管理者) - の共同で LPRng が作成されました. + の共同で LPRng が作成されました。 LPRng の主要サイトは ftp://dickory.sdsu.edu/pub/LPRng/ - です. + です。 トラブルシューティング - &man.lptest.1; を使った簡単なテストをおこなった結果, + &man.lptest.1; を使った簡単なテストをおこなった結果、 正しい出 - 力を得られずに, 以下に示すような出力が得られるかもしれません. + 力を得られずに、以下に示すような出力が得られるかもしれません。 - しばらくしたら出力される, または, + しばらくしたら出力される、または、 紙の全体が出てこない プリンタは上で示されたような印字を - おこなったのですが, しばらくして止まってしまい, - 動かなくなってしまいました. - 印字された結果をプリンタから取り出すためには, - プリンタにある PRINT REMAINING ボタン, または, FORM - FEED ボタンを押す必要があるようです. + おこなったのですが、しばらくして止まってしまい、 + 動かなくなってしまいました。 + 印字された結果をプリンタから取り出すためには、 + プリンタにある PRINT REMAINING ボタン、または、FORM + FEED ボタンを押す必要があるようです。 - この場合は, + この場合は、 おそらくジョブはプリントをする前に - 更にデータが送られてこないか待ち続けているのでしょう. - この問題を解決するためには, プリンタに FORM FEED + 更にデータが送られてこないか待ち続けているのでしょう。 + この問題を解決するためには、プリンタに FORM FEED 文字 (あるいは特定の必要な文字コード) を - 送るテキストフィルタを使ってください. - プリンタ内部に残ったデータをプリンタにすぐに印字させるには, - 普通はこれで十分です. + 送るテキストフィルタを使ってください。 + プリンタ内部に残ったデータをプリンタにすぐに印字させるには、 + 普通はこれで十分です。 次のジョブが前のジョブの最終ページの中央の - どこかから印字を開始させないためにも, - 紙の途中で印字のジョブが終了したかどうかを確認するのは有益です. + どこかから印字を開始させないためにも、 + 紙の途中で印字のジョブが終了したかどうかを確認するのは有益です。 シェルスクリプト /usr/local/libexec/if-simple - を次のように変更して, プリンタへジョブを送信した後に - FORM FEED 文字を印字させるようにします. + を次のように変更して、プリンタへジョブを送信した後に + FORM FEED 文字を印字させるようにします。 #!/bin/sh # # if-simple - Simple text input filter for lpd # Installed in /usr/local/libexec/if-simple # # Simply copies stdin to stdout. Ignores all filter arguments. # Writes a form feed character (\f) after printing job. /bin/cat && printf "\f" && exit 0 exit 2 - 階段効果が現れた + 階段効果 が現れた - 次のような印字結果が得られた. + 次のような印字結果が得られた。 !"#$%&'()*+,-./01234 "#$%&'()*+,-./012345 #$%&'()*+,-./0123456 MS-DOS OS/2 ASCII あなたは「階段効果」 - の新たなる犠牲者になってしまいました. この原因は, + の新たなる犠牲者になってしまいました。この原因は、 改行を表わすべき文字がなんであるか - の解釈が混乱していることにあります. Unix - スタイルのオペレーティングシステムでは, 改行文字は - ASCII コード10 の line feed (LF) - の1文字が使われています. MS-DOS や OS/2などは ASCII - コード10の LF , ASCII コード - 13の文字 (carriage return または CR) - をペアで使います. (訳注:Machintosh では CR - のみで表現されています). 大抵のプリンタでは, - 改行を表わすために MS-DOS の慣習にしたがいます. - - FreeBSD で印字する場合, 印字したテキストは LF - 文字だけ が使われていました. プリンタでは LF - 文字を見つけると, 紙を1行分送り出しました. しかし, + の解釈が混乱していることにあります。Unix + スタイルのオペレーティングシステムでは、改行文字は + ASCII コード 10 の line feed (LF) + の 1 文字が使われています。MS-DOS や OS/2 などは ASCII + コード 10の LF 、ASCII コード + 13 の文字 (carriage return または CR) + をペアで使います (訳注: Machintosh では CR + のみで表現されています)。大抵のプリンタでは、 + 改行を表わすために MS-DOS の慣習にしたがいます。 + + FreeBSD で印字する場合、印字したテキストは LF + 文字だけ が使われていました。プリンタでは LF + 文字を見つけると、紙を 1 行分送り出しました。しかし、 次の文字を印字するた - めの紙の水平方向の位置は維持されました. すなわち, CR - 文字が意味することは, - 次の文字を印字する位置を紙の左端に動かすことです. + めの紙の水平方向の位置は維持されました。すなわち、CR + 文字が意味することは、 + 次の文字を印字する位置を紙の左端に動かすことです。 FreeBSD - がプリンタに動作をして欲しいと思っている動作を以下に示します. + がプリンタに動作をして欲しいと思っている動作を以下に示します。 プリンタが CR を受け取ったとき CR 動作 (復帰) をおこなう プリンタが LF を受け取ったとき - CR + LF 動作 (復帰, 改行) をおこなう + CR + LF 動作 (復帰、改行) をおこなう - このように動作させるための方法がいくつかあります. + このように動作させるための方法がいくつかあります。 - これらの文字の解釈を変えるために, - プリンタの設定スイッチかコントロールパネルを操作する方法. - どのようにして設定をするかはプリンタのマニュアルを参照してください. + これらの文字の解釈を変えるために、 + プリンタの設定スイッチかコントロールパネルを操作する方法。 + どのようにして設定をするかはプリンタのマニュアルを参照してください。 FreeBSD - 以外のオペレーティングシステムを切り替えて使う場合, + 以外のオペレーティングシステムを切り替えて使う場合、 CR と LF 文字の解釈をそのオペレーティングシステムで使われているようにプリンタを - 再設定する必要があるかもしれません. + 再設定する必要があるかもしれません。 以下に示す解決方法のいずれかを - 選ぶのがよいかもしれませんね. + 選ぶのがよいかもしれませんね。 自動的に LF を CR+LF に変換してくれる - FreeBSD 用のシリアルドライバを入手する方法. - もちろん, このドライバはプリンタ専用に接続される + FreeBSD 用のシリアルドライバを入手する方法。 + もちろん、このドライバはプリンタ専用に接続される シリアルポート - のみで動作します. - この機能を許可するためには, + のみで動作します。 + この機能を許可するためには、 /etc/printcap ファイルで対象プリンタの fs - 項目で CRMOD ビットをセットします. + 項目で CRMOD ビットをセットします。 LF 文字の扱いを一時的に変更するための エスケープコード - をプリンタに送る方法. + をプリンタに送る方法。 プリンタがサポートしているかもしれないエスケープコード - については, - プリンタのマニュアルを参照してください. - 適切なエスケープコードが見つかったら, - 最初にそのコードを送り, 次にプリントジョブを送信 - するようにテキストフィルタを変更してください. + については、 + プリンタのマニュアルを参照してください。 + 適切なエスケープコードが見つかったら、 + 最初にそのコードを送り、次にプリントジョブを送信 + するようにテキストフィルタを変更してください。 PCL - 次に, Hewlett Packard 社の PCL + 次に、Hewlett Packard 社の PCL エスケープコードに対応しているプリンタのための - テキストフィルタの例を示します. - このフィルタでは, プリンタ に - LF 文字を LF と CR の2文字として扱わせます. - その後に, プリンタにジョブを送ります. 最後に, - ジョブの最終ページの紙を排出するため, FROM FEED - 文字を送ります. このフィルタは Hewlett Packard - 社のほとんどすべてのプリンタで機能するはずです. + テキストフィルタの例を示します。 + このフィルタでは、プリンタ に + LF 文字を LF と CR の2文字として扱わせます。 + その後に、プリンタにジョブを送ります。最後に、 + ジョブの最終ページの紙を排出するため、FROM FEED + 文字を送ります。このフィルタは Hewlett Packard + 社のほとんどすべてのプリンタで機能するはずです。 #!/bin/sh # # hpif - Simple text input filter for lpd for HP-PCL based printers # Installed in /usr/local/libexec/hpif # # Simply copies stdin to stdout. Ignores all filter arguments. # Tells printer to treat LF as CR+LF. Ejects the page when done. printf "\033&k2G" && cat && printf "\f" && exit 0 exit 2 ホスト orchid にある /etc/printcap - の例を以下に示します. ここには, + の例を以下に示します。ここには、 一番目のパラレルポートにプリンタ (Hewlett Packard LaserJet 3Si) - が一台接続されており, そのプリンタ名は - teak です. + が一台接続されており、そのプリンタ名は + teak です。 # # /etc/printcap for host orchid # teak|hp|laserjet|Hewlett Packard LaserJet 3Si:\ :lp=/dev/lpt0:sh:sd=/var/spool/lpd/teak:mx#0:\ :if=/usr/local/libexec/hpif: 訳注 LF を CR+LF - に置き換える cat コマンドを作る方法も当然考えられます. - そして, このコマンドと, if-simple の cat - の部分を置き換えればよいわけです. - 具体的にどのようにするかは, - 読者への練習問題としましょう. + の部分を置き換えればよいわけです。 + 具体的にどのようにするかは、 + 読者への練習問題としましょう。 各行が重ね書きされてしまった - プリンタは紙送りをまったくしませんでした. - テキストすべての行がある行の上で重ねて印字されてしまいました. + プリンタは紙送りをまったくしませんでした。 + テキストすべての行がある行の上で重ねて印字されてしまいました。 - この問題は, - 階段現象とは正反対な問題で, - ほとんどまれにしか起こりません. FreeBSDでは行末として扱われる - LF 文字が, 紙の左端に印字位置を復帰しますが, - 紙送りはしない CR 文字として扱われています. + この問題は、 + 階段現象とは 正反対 な問題で、 + ほとんどまれにしか起こりません。FreeBSD では行末として扱われる + LF 文字が、紙の左端に印字位置を復帰しますが、 + 紙送りはしない CR 文字として扱われています。 - プリンタの設定スイッチかコントロールパネルを使って, + プリンタの設定スイッチかコントロールパネルを使って、 LF と CR - の文字を次のような解釈をするようにしてください. + の文字を次のような解釈をするようにしてください。 プリンタが受け取ったとき プリンタがおこなう CR CR 動作 (復帰) LF - CR + LF (復帰, 改行) + CR + LF (復帰、改行) 訳注 LF を CR+LF - に置き換える cat コマンドを作る方法も当然考えられます. - そして, このコマンドと, + に置き換える cat コマンドを作る方法も当然考えられます。 + そして、このコマンドと、 if-simple の cat - の部分を置き換えればよいわけです. - 具体的にどのようにするかは, - 読者への練習問題としましょう. + の部分を置き換えればよいわけです。 + 具体的にどのようにするかは、 + 読者への練習問題としましょう。 プリンタが文字を紛失してしまう - 印字しているのですが, - 各行の2〜3文字が印字されません. - プリンタを動かせば動かすほど, - もっとたくさんの文字が紛失されていき, - この問題は更に悪くなっていくかもしれませんでした. - - この問題は, - シリアルポートを通してコンピュータから送られてくるデータの速度に, + 印字しているのですが、 + 各行の 2 〜 3 文字が印字されません。 + プリンタを動かせば動かすほど、 + もっとたくさんの文字が紛失されていき、 + この問題は更に悪くなっていくかもしれませんでした。 + + この問題は、 + シリアルポートを通してコンピュータから送られてくるデータの速度に、 プリンタがついていけないことに起因します - (この問題は, パラレルポートに接続された - プリンタでは発生することはありません). - この問題を克服する方法が2つあります. + (この問題は、パラレルポートに接続された + プリンタでは発生することはありません)。 + この問題を克服する方法が2つあります。 プリンタが XON/XOFF のフロー制御をサポート - している場合は, 項目 fs で - TANDEM ビット をセットして, FreeBSD - にこの機能を使用させてください. + している場合は、項目 fs で + TANDEM ビット をセットして、FreeBSD + にこの機能を使用させてください。 プリンタがキャリアフロー制御をサポートして - いる場合は, 項目 fs で MDMBUF - ビットをセットして下さい. それから, + いる場合は、項目 fs で MDMBUF + ビットをセットして下さい。それから、 プリンタとコンピュータを接続しているシリアルケーブルが - キャリアフロー制御用に正しく配線されたものかどうかを確認してください. + キャリアフロー制御用に正しく配線されたものかどうかを確認してください。 プリンタがフロー制御をまったく - サポートしていない場合は, 項目 - fs の NLDELAY と TBDELAY, - CRDELAY, VTDELAY, BSDELA - のいくつかのビットを組み合わせて使い, - プリンタへ送るデータの流れに適当な遅延を加えてください. + サポートしていない場合は、項目 + fs の NLDELAY と TBDELAY、 + CRDELAY、VTDELAY、BSDELA + のいくつかのビットを組み合わせて使い、 + プリンタへ送るデータの流れに適当な遅延を加えてください。 プリンタは意味不明な文字列を印字した プリンタはランダムなゴミのように - 見えるものを印字しましたが, - 意図したテキストは印字してくれませんでした. + 見えるものを印字しましたが、 + 意図したテキストは印字してくれませんでした。 - この問題は, 通常, + この問題は、通常、 シリアルポートに接続したプリンタでの - 通信パラメータの誤りからくる前項とは別の症状です. + 通信パラメータの誤りからくる前項とは別の症状です。 br 項目の通信速度と fsfc - 項目のパリティビットの設定を共に調べてみてください. - また, プリンタでの設定が + 項目のパリティビットの設定を共に調べてみてください。 + また、プリンタでの設定が /etc/printcap ファイルで設定した - 内容と一致しているかどうかも確認してください. + 内容と一致しているかどうかも確認してください。 訳注 simple-if - のような単純なフィルタだけの状態で, - 日本語を含むテキストを印字しようとした場合にも, - シリアルポート, パラレルポートの使用に関係なく, - このような症状は見られます. 日本語プリンタの場合, + のような単純なフィルタだけの状態で、 + 日本語を含むテキストを印字しようとした場合にも、 + シリアルポート、パラレルポートの使用に関係なく、 + このような症状は見られます。日本語プリンタの場合、 漢字コードそのもの - を送信しただけでその漢字を印字してくれるものは, - 少なくとも訳者は見たことがありません. + を送信しただけでその漢字を印字してくれるものは、 + 少なくとも訳者は見たことがありません。 漢字を印字するための制御 - コードを別途送信するフィルタが必要となります. - また, そのようなフィルタを使用していても, + コードを別途送信するフィルタが必要となります。 + また、そのようなフィルタを使用していても、 そのフィルタが想定してる漢字コードと異なった文書を - プリントしようとしたとき もこのような症状は出ます. - もちろん, これはプリンタ用の - 言語を持たないプリンタの話で, PostScript プリンタ - などにプレインテキストを送信しても, 日本語対応, - 非対応に関らず, 意味不明な文字列が印字される - (もしくは, 何も印字されない) ことでしょう. + プリントしようとしたときもこのような症状は出ます。 + もちろん、これはプリンタ用の + 言語を持たないプリンタの話で、PostScript プリンタ + などにプレインテキストを送信しても、日本語対応、 + 非対応に関らず、意味不明な文字列が印字される + (もしくは、何も印字されない) ことでしょう。 何も起きない - もしプリンタが何の動作もしないのであれば, - ハード的な問題ではなく, 多分 FreeBSD - の中に問題があります. - /etc/printcap ファイルで, + もしプリンタが何の動作もしないのであれば、 + ハード的な問題ではなく、多分 FreeBSD + の中に問題があります。 + /etc/printcap ファイルで、 デバッグしているプリンタのエントリに (lf 項目で) ログファイルを取るように - 設定を追加してください. 例えば, プリンタ - rattan 用のエントリの項目 - lf は次のようになります. + 設定を追加してください。例えば、プリンタ + rattan 用のエントリの項目 + lf は次のようになります。 rattan|line|diablo|lp|Diablo 630 Line Printer:\ :sh:sd=/var/spool/lpd/rattan:\ :lp=/dev/lpt0:\ :if=/usr/local/libexec/if-simple:\ :lf=/var/log/rattan.log - 次に, もう一度印字をおこなってみます. そして, + 次に、もう一度印字をおこなってみます。そして、 発生したと思われるエラーメッセージを見るためにログファイル - (上記の例では, + (上記の例では、 /var/log/rattan.log) - を調べます. そこで見られたメッセージを元に, - 問題を解決してみてください. + を調べます。そこで見られたメッセージを元に、 + 問題を解決してみてください。 項目 lf - が指定されていない場合, LPD はデフォルト + が指定されていない場合、LPD はデフォルト のログファイルとして - /dev/console を使います. + /dev/console を使います。 diff --git a/ja_JP.eucJP/books/handbook/sound/chapter.sgml b/ja_JP.eucJP/books/handbook/sound/chapter.sgml index 991d5a72f4..5ded4d2497 100644 --- a/ja_JP.eucJP/books/handbook/sound/chapter.sgml +++ b/ja_JP.eucJP/books/handbook/sound/chapter.sgml @@ -1,397 +1,397 @@ Moses Moore 寄稿 サウンド この章では - FreeBSD はあなたのコンピュータから原音に忠実な再生を楽しむための, - 数多くの種類のサウンドカードをサポートしています. - これにより, MPEG Audio Layer 3 (MP3) や WAV, Ogg Vorbis などの - 音楽を録音したり再生したりできるようになります. - 加えて FreeBSD Ports コレクションには, あなたが録音した音楽を - 編集したり, 音響効果を加えたり, 接続された MIDI 機器を制御したり - するためのアプリケーションが含まれています. + FreeBSD はあなたのコンピュータから原音に忠実な再生を楽しむための、 + 数多くの種類のサウンドカードをサポートしています。 + これにより、MPEG Audio Layer 3 (MP3) や WAV、Ogg Vorbis などの + 音楽を録音したり再生したりできるようになります。 + 加えて FreeBSD Ports コレクションには、あなたが録音した音楽を + 編集したり、音響効果を加えたり、接続された MIDI 機器を制御したり + するためのアプリケーションが含まれています。 - この章を読めば, 以下のことを知ることができます: + この章を読めば、以下のことを知ることができます: - サウンドカードをインストールする方法. - システムを設定してサウンドカードを認識させる方法. + サウンドカードをインストールする方法 + システムを設定してサウンドカードを認識させる方法 サンプルアプリケーションを利用してサウンドカードが - うまく動いているかどうかをテストする方法. - サウンド関連の設定のトラブルシュート方法. + うまく動いているかどうかをテストする方法 + サウンド関連の設定のトラブルシュート方法 - この章を読む前に, 以下のことを理解しておく必要があります: + この章を読む前に、以下のことを理解しておく必要があります: 新しいカーネルを設定してインストールする方法 (). + linkend="kernelconfig">) 正しいデバイスの確認 PCI ISA サウンドカード - 設定をはじめる前に, あなたが持っているカードのモデル, - そのカードが使用しているチップ, そして PCI, ISA - どちらのカードなのかを確認する必要があります. - FreeBSD は, さまざまな PCI および ISA のカードをサポートしています. - もしあなたのカードが次のリストに無い場合は, - &man.pcm.4; のマニュアルページを確認してください. - これは完全なリストではありませんが, - 良く使われているカードがだいたい含まれています. + 設定をはじめる前に、あなたが持っているカードのモデル、 + そのカードが使用しているチップ、そして PCI、ISA + どちらのカードなのかを確認する必要があります。 + FreeBSD は、さまざまな PCI および ISA のカードをサポートしています。 + もしあなたのカードが次のリストに無い場合は、 + &man.pcm.4; のマニュアルページを確認してください。 + これは完全なリストではありませんが、 + 良く使われているカードがだいたい含まれています。 - Crystal 4237, 4236, 4232, 4231 + Crystal 4237、4236、4232、4231 ヤマハ OPL-SAx OPTi931 Ensoniq AudioPCI 1370/1371 ESS Solo-1/1E NeoMagic 256AV/ZX - Sound Blaster Pro, 16, 32, AWE64, AWE128, Live + Sound Blaster Pro、16、32、AWE64、AWE128、Live Creative ViBRA16 - Advanced Asound 100, 110, および Logic ALS120 + Advanced Asound 100、110、および Logic ALS120 - ES 1868, 1869, 1879, 1888 + ES 1868、1869、1879、1888 Gravis UltraSound Aureal Vortex 1 および 2 カーネル コンフィグレーション - カーネル内で使用するドライバは, - 使用するカードの種類によって異なります. - この節では, それらの詳しい情報と, + カーネル内で使用するドライバは、 + 使用するカードの種類によって異なります。 + この節では、それらの詳しい情報と、 カーネルコンフィグレーションファイルに - 何を追加すれば良いのかについて説明します. + 何を追加すれば良いのかについて説明します。 - Creative, Advance, および ESS 社製サウンドカード + Creative、Advance、および ESS 社製サウンドカード - これらのカードを使用する場合は, - カーネルコンフィグレーションファイルに以下の設定を追加します. + これらのカードを使用する場合は、 + カーネルコンフィグレーションファイルに以下の設定を追加します。 device pcm - PnP の ISA カードを使用する場合は, さらに + PnP の ISA カードを使用する場合は、さらに device sbc - も加えてください. - PnP ではない ISA のカードを使用する場合は, + も加えてください。 + PnP ではない ISA のカードを使用する場合は、 device pcm device sbc0 at isa? port0x220 irq 5 drq 1 flags 0x15 - を加えます. - これらは標準の設定にあわせたものですので, - IRQ などの設定は必要に応じて変更する必要があります. - また, 設定の詳細については, &man.sbc.4; - のマニュアルページを参照してください. + を加えます。 + これらは標準の設定にあわせたものですので、 + IRQ などの設定は必要に応じて変更する必要があります。 + また、設定の詳細については、&man.sbc.4; + のマニュアルページを参照してください。 パッチを適用していない FreeBSD 4.0 は - Sound Blaster Live に対応していません. - また, この文書ではその設定方法については扱いません. - このカードを使用する前に, 最新の -STABLE - にアップデートするようにしてください. + Sound Blaster Live に対応していません。 + また、この文書ではその設定方法については扱いません。 + このカードを使用する前に、最新の -STABLE + にアップデートするようにしてください。 Gravis 社製 UltraSound カード - PnP の ISA カードを使用するには, + PnP の ISA カードを使用するには、 カーネルコンフィグレーションファイルに次の - 2 つの設定を追加します. + 2 つの設定を追加します。 device pcm device gusc - PnP ではない ISA カードの場合には, + PnP ではない ISA カードの場合には、 device pcm device gus0 at isa? port 0x220 irq 5 drq 1 flags 0x13 - を加えます. - IRQ などの設定は必要に応じて変更する必要があります. - また, 設定の詳細については, &man.gusc.4; - のマニュアルページを参照してください. + を加えます。 + IRQ などの設定は必要に応じて変更する必要があります。 + また、設定の詳細については、&man.gusc.4; + のマニュアルページを参照してください。 Crystal 社製サウンドカード - Crystal 社製のカードを使用する場合は, + Crystal 社製のカードを使用する場合は、 カーネルコンフィグレーションファイルに device pcm device csa - の両方が必要です. + の両方が必要です。 一般的なカードのサポート - PnP ISA カードや PCI カードを使用する場合は, + PnP ISA カードや PCI カードを使用する場合は、 device pcm - をカーネルコンフィグレーションファイルに追加します. - ブリッジドライバを持たない, PnP 非対応の ISA - カードの場合は, + をカーネルコンフィグレーションファイルに追加します。 + ブリッジドライバを持たない、PnP 非対応の ISA + カードの場合は、 device pcm0 at isa? irq 10 drq 1 flags 0x0 - を加えます. - IRQ などの設定は, - ハードウェアの設定に合うように必要に応じて変更してください. + を加えます。 + IRQ などの設定は、 + ハードウェアの設定に合うように必要に応じて変更してください。 カーネルの再構築 - 必要な設定をカーネルコンフィグレーションファイルに追加したら, - カーネルを再構築します. - 詳細についてはハンドブックのを参照してください. + 必要な設定をカーネルコンフィグレーションファイルに追加したら、 + カーネルを再構築します。 + 詳細についてはハンドブックのを参照してください。 デバイスノードの作成とテスト デバイスノード - 再起動した後, ログインして cat /dev/sndstat - を実行します. すると, 以下のように出力されるはずです. + 再起動した後、ログインして cat /dev/sndstat + を実行します。すると、以下のように出力されるはずです。 FreeBSD Audio Driver (newpcm) Sep 21 2000 18:29:53 Installed devices: pcm0: <Aureal Vortex 8830> at memory 0xfeb40000 irq 5 (4p/1r +channels duplex) - エラーメッセージが出力される場合は, - 今までの手順のどこかが間違っています. - カーネルコンフィグレーションファイルをもう一度見直して, - 正しいデバイスを選択しているかどうか確認してください. + エラーメッセージが出力される場合は、 + 今までの手順のどこかが間違っています。 + カーネルコンフィグレーションファイルをもう一度見直して、 + 正しいデバイスを選択しているかどうか確認してください。 エラーが出力されずに pcm0 - が出力された場合は, + が出力された場合は、 su コマンドで - root になり, - 次のように実行します. + root になり、 + 次のように実行します。 &prompt.root; cd /dev &prompt.root; sh MAKEDEV snd0 エラーが出力されずに pcm1 - が出力された場合は, + が出力された場合は、 su コマンドで - root になり, - 次のように実行します. + root になり、 + 次のように実行します。 &prompt.root; cd /dev &prompt.root; sh MAKEDEV snd1 - 上のコマンドはどちらも, + 上のコマンドはどちらも、 /dev/snd という デバイスを作成するものではないという点に注意してください! - これらは代わりに, - 次のような複数のデバイスノードを作成します. + これらは代わりに、 + 次のような複数のデバイスノードを作成します。 デバイス 説明 /dev/audio SPARC 互換オーディオデバイス /dev/dsp (訳注: 8 ビットで) サンプリングする音声デバイス /dev/dspW - /dev/dspと同様. - ただしサンプリングは 16 ビット. + /dev/dspと同様。 + ただしサンプリングは 16 ビット。 /dev/midi Raw MIDI アクセスデバイス /dev/mixer コントロールポートミキサーデバイス /dev/music レベル 2 シーケンサインタフェース /dev/sequencer シーケンサデバイス /dev/pss プログラム可能なデバイスインタフェース - すべてうまく行けば, - サウンドカードの機能を使用することができます. - うまく行かない場合は, 次の節をご覧ください. + すべてうまく行けば、 + サウンドカードの機能を使用することができます。 + うまく行かない場合は、次の節をご覧ください。 よくある問題 デバイスノード unsupported subdevice XX error が出ました! - いくつかのデバイスノードが正しく作成されていません. - 前節の手順をもう一度やってみてください. + いくつかのデバイスノードが正しく作成されていません。 + 前節の手順をもう一度やってみてください。 I/O ポート sb_dspwr(XX) timed out error が出ました! - I/O ポートが正しく設定されていません. + I/O ポートが正しく設定されていません。 IRQ bad irq XX error が出ました! - IRQ が正しく設定されていません. + IRQ が正しく設定されていません。 カーネルコンフィグレーションファイル中の - IRQ の設定と, - サウンドカードの IRQ の設定が同じであるか確認してください. + IRQ の設定と、 + サウンドカードの IRQ の設定が同じであるか確認してください。 - xxx: gus pcm not attached, out of memory というエラーが出ます. + xxx: gus pcm not attached, out of memory というエラーが出ます。 何が起きたのでしょうか? - これは, - デバイスを使用するために必要なメモリが確保できない時に表示されます. + これは、 + デバイスを使用するために必要なメモリが確保できない時に表示されます。