aboutsummaryrefslogtreecommitdiff
path: root/de_DE.ISO8859-1
diff options
context:
space:
mode:
authorJohann Kois <jkois@FreeBSD.org>2005-09-16 19:53:13 +0000
committerJohann Kois <jkois@FreeBSD.org>2005-09-16 19:53:13 +0000
commit5abe97444402b637d482daf0a416a30c1c87e8fa (patch)
tree51b4f11de3651f0b70523492c88573d93ec058dc /de_DE.ISO8859-1
parent2a7d6d0549f7857b436edd71e2f02b26f14b861d (diff)
downloaddoc-5abe97444402b637d482daf0a416a30c1c87e8fa.tar.gz
doc-5abe97444402b637d482daf0a416a30c1c87e8fa.zip
MFbed: Update the German documentation set.
books/fdp-primer/sgml-markup/chapter.sgml 1.69 -> 1.73 books/fdp-primer/sgml-primer/chapter.sgml 1.42 -> 1.44 books/fdp-primer/translations/chapter.sgml 1.26 -> 1.29 books/fdp-primer/writing-style/chapter.sgml 1.47 -> 1.48 books/handbook/basics/chapter.sgml 1.138 -> 1.139 books/handbook/boot/chapter.sgml 1.59 -> 1.60 books/handbook/cutting-edge/chapter.sgml 1.217 -> 1.219 + fixes [X] books/handbook/mail/chapter.sgml 1.129 -> 1.131 books/handbook/mirrors/chapter.sgml 1.386 -> 1.387 books/handbook/multimedia/chapter.sgml fixes only books/handbook/pgpkeys/chapter.sgml 1.270 -> 1.272 books/handbook/preface/preface.sgml 1.29 -> 1.30 books/handbook/printing/chapter.sgml 1.93 -> 1.94 + translation finished books/handbook/security/chapter.sgml fixes only books/handbook/x11/chapter.sgml 1.166 -> 1.167 [X] - submitted by Fabian Keil (freebsd-listen at fabiankeil.de) Obtained from: The FreeBSD German Documentation Project.
Notes
Notes: svn path=/head/; revision=25665
Diffstat (limited to 'de_DE.ISO8859-1')
-rw-r--r--de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml57
-rw-r--r--de_DE.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml59
-rw-r--r--de_DE.ISO8859-1/books/fdp-primer/translations/chapter.sgml4
-rw-r--r--de_DE.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml4
-rw-r--r--de_DE.ISO8859-1/books/handbook/basics/chapter.sgml33
-rw-r--r--de_DE.ISO8859-1/books/handbook/boot/chapter.sgml25
-rw-r--r--de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml61
-rw-r--r--de_DE.ISO8859-1/books/handbook/mail/chapter.sgml95
-rw-r--r--de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml11
-rw-r--r--de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml14
-rw-r--r--de_DE.ISO8859-1/books/handbook/pgpkeys/chapter.sgml19
-rw-r--r--de_DE.ISO8859-1/books/handbook/preface/preface.sgml13
-rw-r--r--de_DE.ISO8859-1/books/handbook/printing/chapter.sgml3637
-rw-r--r--de_DE.ISO8859-1/books/handbook/security/chapter.sgml4
-rw-r--r--de_DE.ISO8859-1/books/handbook/x11/chapter.sgml4
15 files changed, 3746 insertions, 294 deletions
diff --git a/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml b/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml
index a136fe7115..1522c1c7a3 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml
+++ b/de_DE.ISO8859-1/books/fdp-primer/sgml-markup/chapter.sgml
@@ -28,9 +28,9 @@
POSSIBILITY OF SUCH DAMAGE.
$FreeBSD$
- $FreeBSDde: de-docproj/books/fdp-primer/sgml-markup/chapter.sgml,v 1.16 2005/08/15 15:39:19 jkois Exp $
+ $FreeBSDde: de-docproj/books/fdp-primer/sgml-markup/chapter.sgml,v 1.19 2005/09/12 18:43:12 jkois Exp $
- basiert auf: 1.69
+ basiert auf: 1.73
-->
<chapter id="sgml-markup">
@@ -348,8 +348,7 @@
<dt>Dritter Begriff</dt>
- <dd>Erster Absatz der Erkl&auml;rung zum dritten Begriff.
- Beachtenswert ist, da&szlig; &lt;p&gt; nicht notwendig ist.</dd>
+ <dd>Erster Absatz der Erkl&auml;rung zum dritten Begriff.</dd>
</dl>]]></programlisting>
</example>
</sect3>
@@ -385,11 +384,23 @@
Es ist eine neue Version der Fibel f&uuml;r neue Mitarbeiter am
FreeBSD-Dokumentationsprojekt verf&uuml;gbar:
- URL:http://people.FreeBSD.org/~nik/primer/index.html
+ &lt;URL:http://people.FreeBSD.org/~nik/primer/index.html&gt;
Kommentare und Anmerkungen sind willkommen.
N</pre>]]></programlisting>
+
+ <para>Beachten Sie, dass <literal>&lt;</literal> und
+ <literal>&amp;</literal> nach wie vor als Sonderzeichen
+ erkannt werden. Daher wird in diesem Beispiel auch
+ <literal>&amp;lt;</literal> an Stelle von
+ <literal>&lt;</literal> verwendet. Aus dem gleichen
+ Grund wurde auch <literal>&amp;gt;</literal> an Stelle
+ von <literal>&gt;</literal> verwendet. Achten Sie also
+ stets auf Sonderzeichen, wenn Sie normalen Text
+ aus E-Mails, Programmcode oder einer anderen Quelle
+ kopieren.</para>
+
</example>
</sect3>
@@ -689,7 +700,7 @@ w&auml;hrend <i>dieses</i> kursiv dargestellt wird.</p>]]></programlisting>
Tags <sgmltag>a</sgmltag> gesetzt werden, nur das anstelle
von <sgmltag role="attribute">href</sgmltag> das Attribut
<sgmltag role="attribute">name</sgmltag> gesetzt werden
- mu&szlig;.</para>
+ muss.</para>
<example>
<title>Anwendung von <literal>&lt;a name="..."&gt;</literal></title>
@@ -699,7 +710,7 @@ w&auml;hrend <i>dieses</i> kursiv dargestellt wird.</p>]]></programlisting>
</example>
<para>Um auf einen so gekennzeichneten Abschnitt zu verweisen,
- mu&szlig; die URL des Dokumentes um das Zeichen
+ muss die URL des Dokumentes um das Zeichen
<literal>#</literal> und den Namen des Zielankers erweitert
werden.</para>
@@ -875,13 +886,13 @@ w&auml;hrend <i>dieses</i> kursiv dargestellt wird.</p>]]></programlisting>
&lt;firstname><replaceable>Vorname</replaceable>&lt;/firstname>
&lt;surname><replaceable>Nachname</replaceable>&lt;/surname>
&lt;affiliation>
- &lt;address>&lt;email><replaceable>Emailadresse</replaceable>&lt;/email>&lt;/address>
+ &lt;address>&lt;email><replaceable>E-Mail-Adresse</replaceable>&lt;/email>&lt;/address>
&lt;/affiliation>
&lt;/author>
&lt;copyright>
&lt;year><replaceable>1998</replaceable>&lt;/year>
- &lt;holder role="mailto:<replaceable>Emailadresse</replaceable>"><replaceable>Vollst&auml;ndiger Name</replaceable>&lt;/holder>
+ &lt;holder role="mailto:<replaceable>E-Mail-Adresse</replaceable>"><replaceable>Vollst&auml;ndiger Name</replaceable>&lt;/holder>
&lt;/copyright>
&lt;releaseinfo>&#36;FreeBSD&#36;&lt;/releaseinfo>
@@ -924,13 +935,13 @@ w&auml;hrend <i>dieses</i> kursiv dargestellt wird.</p>]]></programlisting>
&lt;firstname><replaceable>Vorname</replaceable>&lt;/firstname>
&lt;surname><replaceable>Nachname</replaceable>&lt;/surname>
&lt;affiliation>
- &lt;address>&lt;email><replaceable>Emailadresse</replaceable>&lt;/email>&lt;/address>
+ &lt;address>&lt;email><replaceable>E-Mail-Adresse</replaceable>&lt;/email>&lt;/address>
&lt;/affiliation>
&lt;/author>
&lt;copyright>
&lt;year><replaceable>1998</replaceable>&lt;/year>
- &lt;holder role="mailto:<replaceable>Emailadresse</replaceable>"><replaceable>Vollst&auml;ndiger Name</replaceable>&lt;/holder>
+ &lt;holder role="mailto:<replaceable>E-Mail-Adresse</replaceable>"><replaceable>Vollst&auml;ndiger Name</replaceable>&lt;/holder>
&lt;/copyright>
&lt;releaseinfo>&#36;FreeBSD&#36;&lt;/releaseinfo>
@@ -1274,7 +1285,7 @@ w&auml;hrend <i>dieses</i> kursiv dargestellt wird.</p>]]></programlisting>
<sgmltag>ol</sgmltag>. Beide Listenarten m&uuml;ssen
mindestens ein Element <sgmltag>listitem</sgmltag>
enthalten. Das <sgmltag>listitem</sgmltag> Element
- mu&szlig; mindestens ein weiteres Blockelement
+ muss mindestens ein weiteres Blockelement
enthalten.</para>
<para><sgmltag>procedure</sgmltag> unterscheidet sich ein
@@ -1377,7 +1388,7 @@ w&auml;hrend <i>dieses</i> kursiv dargestellt wird.</p>]]></programlisting>
Aus diesem Grund ist es unter anderem wichtig, da&szlig;
sich der &ouml;ffende Tag in der selben Zeile wie der Anfang
des darzustellenden Textes befindet. Gleiches gilt f&uuml;r
- den schlie&szlig;enden Tag: Er mu&szlig; sich am Ende der
+ den schlie&szlig;enden Tag: Er muss sich am Ende der
letzten Zeile befinden. Wird das nicht beachtet, kann es
sein, da&szlig; unerwartete Leerzeichen und Leerzeilen in
der Ausgabe auftauchen.</para>
@@ -1430,7 +1441,7 @@ main(void)
<sgmltag>literallayout</sgmltag>, &hellip;) mit
<sgmltag>co</sgmltag>-Elementen markiert werden, wobei jedes
Element ein eindeutiges <literal>id</literal>-Attribut
- besitzen mu&szlig;. Anschlie&szlig;end sollte ein
+ besitzen muss. Anschlie&szlig;end sollte ein
<sgmltag>calloutlist</sgmltag>-Element eingef&uuml;gt werden,
dessen Elemente sich auf die <sgmltag>co</sgmltag>-Elemente
des Beispiels beziehen und die jeweiligen Anmerkungen
@@ -1827,7 +1838,7 @@ This is the file called 'foo2'</screen>
umgeschaltet werden.</para>
<para>Um <command>vi</command> zu beenden, ohne die &Auml;nderungen zu
- speichern, mu&szlig; <keycombo action="seq"><keycap>Esc</keycap>
+ speichern, muss <keycombo action="seq"><keycap>Esc</keycap>
<keycap>:</keycap><keycap>q</keycap><keycap>!</keycap>
</keycombo> eingegeben werden.</para>
@@ -1844,7 +1855,7 @@ This is the file called 'foo2'</screen>
virtuelle Konsole umgeschaltet werden.</para>
<para>Um <command>vi</command> zu beenden, ohne die
- &Auml;nderungen zu speichern, mu&szlig; <keycombo
+ &Auml;nderungen zu speichern, muss <keycombo
action="seq"><keycap>Esc</keycap>
<keycap>:</keycap><keycap>q</keycap><keycap>!</keycap>
</keycombo> eingegeben werden.</para>
@@ -1886,7 +1897,7 @@ This is the file called 'foo2'</screen>
<para>Befehle k&ouml;nnen zusammen mit der betreffenden
Hilfeseite &uuml;ber das DocBook-Element
<sgmltag>citerefentry</sgmltag> ausgezeichnet werden.
- <sgmltag>citerefentry</sgmltag> mu&szlig; zwei weitere
+ <sgmltag>citerefentry</sgmltag> muss zwei weitere
Elemente enthalten: <sgmltag>refentrytitle</sgmltag>,
f&uuml;r den Befehlsnamen, und <sgmltag>manvolnum</sgmltag>,
f&uuml;r die Kategorie der Hilfeseite.</para>
@@ -2586,7 +2597,7 @@ This is the file called 'foo2'</screen>
<itemizedlist>
<listitem>
<para>Wenn ein Dokument als HTML-Datei durch einem Browser
- angezeigt wird. In diesem Falle mu&szlig; jeder Grafik
+ angezeigt wird. In diesem Falle muss jeder Grafik
ein Alternativtext zugeordnet werden, der dem Leser
angezeigt werden kann. Meist ist das notwendig, wenn der
Browser die Grafik noch nicht geladen hat oder wenn der
@@ -2720,7 +2731,7 @@ IMAGES+= bild3.png
<para>Soll beispielsweise die Datei
<filename>kapitel1/bild1.png</filename> in das in
<filename>kapitel1/kapitel.sgml</filename> enthaltene
- Kapitel eingebunden werden, sollte die so erfolgen:</para>
+ Kapitel eingebunden werden, sollte dies so erfolgen:</para>
<programlisting>&lt;mediaobject>
&lt;imageobject>
@@ -2732,12 +2743,12 @@ IMAGES+= bild3.png
<calloutlist>
<callout arearefs="co-image-dir">
- <para><literal>fileref</literal> mu&szlig; den
+ <para><literal>fileref</literal> muss den
Datei- und den Verzeichnisnamen enthalten.</para>
</callout>
</calloutlist>
- <para>Das <filename>Makefile</filename> mu&szlig; dementsprechend
+ <para>Das <filename>Makefile</filename> muss dementsprechend
die Zeile
<programlisting>&hellip;
@@ -2762,7 +2773,7 @@ IMAGES= kapitel1/bild1.png
<title>Querverweise innerhalb eines Dokumentes</title>
- <para>Um innerhalb eines Dokumentes Verweise anzulegen, mu&szlig;
+ <para>Um innerhalb eines Dokumentes Verweise anzulegen, muss
angegeben werden, von welcher Textstelle aus wohin verwiesen
werden soll.</para>
@@ -2952,7 +2963,7 @@ IMAGES= kapitel1/bild1.png
wesentlich einfacher &ndash; solange die URL des zu
referenzierenden Dokumentes bekannt ist. Um von einem
bestimmten Textabschnitt auf das gew&uuml;nschte externe
- Dokument zu verweisen, mu&szlig; die jeweilige Stelle mit
+ Dokument zu verweisen, muss die jeweilige Stelle mit
dem Element <sgmltag>ulink</sgmltag> ausgezeichnet werden.
Mittels des Attributes <literal>url</literal> kann die
Adresse des Zieldokumentes angegeben werden. Bei der
diff --git a/de_DE.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml b/de_DE.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml
index 666b7069a2..1875a78fe0 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml
+++ b/de_DE.ISO8859-1/books/fdp-primer/sgml-primer/chapter.sgml
@@ -28,8 +28,8 @@
POSSIBILITY OF SUCH DAMAGE.
$FreeBSD$
- $FreeBSDde: de-docproj/books/fdp-primer/sgml-primer/chapter.sgml,v 1.15 2005/01/16 14:35:40 mheinen Exp $
- basiert auf: 1.42
+ $FreeBSDde: de-docproj/books/fdp-primer/sgml-primer/chapter.sgml,v 1.17 2005/09/12 18:08:33 jkois Exp $
+ basiert auf: 1.44
-->
<!--?
@@ -173,7 +173,7 @@ Oliver Fischer
und Verschachtelung sowie weitere Informationen
festgelegt.</para>
- <!-- Der letzte Satz dieses Absatzes mu&szlig; noch &uuml;bersetzt werden.
+ <!-- Der letzte Satz dieses Absatzes muss noch &uuml;bersetzt werden.
Ich habe keine gute &Uuml;bersetzung daf&uuml;r bis jetzt
gefunden. Oliver Fischer -->
@@ -244,12 +244,12 @@ Oliver Fischer
sprechen. Oliver Fischer -->
<!--?
- Hier mu&szlig; die endlose Rekursion noch besser zum Ausdruck kommen.
+ Hier muss die endlose Rekursion noch besser zum Ausdruck kommen.
-->
<para>Von einem Dokument, unabh&auml;ngig, ob es sich um eine
einzelne Webseite oder ein langes Buch handelt, wird angenommen,
dass es einen wie auch immer gearteten Inhalt hat. Dieser
- l&auml;&szlig;t sich selbst wiederum in Teilelemente
+ l&auml;sst sich selbst wiederum in Teilelemente
aufspalten, die ebenso zerlegbar sind. Durch die Aufnahme von
Auszeichnungselementen in einen Text, werden diese einzelnen
Elemente eindeutig benannt und voneinander abgegrenzt.</para>
@@ -484,7 +484,7 @@ Oliver Fischer
Variable <envar>SGML_CATALOG_FILES</envar>
<footnote><simpara>Sofern man nicht an der deutschen
Dokumentation arbeitet, m&uuml;ssen die
- Verzeichnisangaben entsprechend anpa&szlig;t
+ Verzeichnisangaben entsprechend angepasst
werden.</simpara>
</footnote> gesetzt werden.</para>
@@ -837,7 +837,7 @@ nsgmls:beispiel.sgml:6:8:E: end tag for "HEAD" which is not finished</screen>
<!--? Vielleicht besser: Wie Namen registeriert werden?
Oliver Fischer -->
<!--? Mit der &Uuml;bersetzung des letzten Satzes bin ich mir
- nicht sicher.... Das mu&szlig; irgendwie besser ausgedr&uuml;ckt
+ nicht sicher.... Das muss irgendwie besser ausgedr&uuml;ckt
werden.... -->
<para>Im ISO-Standard ISO 9070:1991 wurde festgelegt, wie
@@ -1091,7 +1091,7 @@ nsgmls:beispiel.sgml:6:8:E: end tag for "HEAD" which is not finished</screen>
und <emphasis>nicht</emphasis> nur einer benutzt werden.
Die PostScript- und PDF-Versionen haben vielleicht
beide Bindestriche zu einem l&auml;ngeren Strich, dem
- <emphasis>em-dash</emphasis>, zusammengefa&szlig;t.</para>
+ <emphasis>em-dash</emphasis>, zusammengefasst.</para>
<para>Die HTML-, nur-Text und RTF-Versionen dieses Dokuments
sind nicht von diesem Problem betroffen.</para>
@@ -1224,23 +1224,24 @@ nsgmls:beispiel.sgml:6:8:E: end tag for "HEAD" which is not finished</screen>
Programms ist &current.version;.</para>]]></programlisting>
<para>Wenn sich die Versionsnummer &auml;ndert, muss
- nur die Entit&auml;t angepa&szlig;t und anschlie&szlig;end
+ nur die Entit&auml;t angepasst und anschlie&szlig;end
das Dokument neu erzeugt werden.</para>
<para>Eine weitere Einsatzm&ouml;glichkeit f&uuml;r Allgemeine
Entit&auml;ten ist das Einbinden von Zeichen, die auf andere
Weise nicht in ein SGML-Dokument eingef&uuml;gt werden
k&ouml;nnten. Ein Beispiel f&uuml;r solche Zeichen sind
- &lt; und &amp;, die normalerweise nicht direkt in
+ <literal>&lt;</literal> und <literal>&amp;</literal>, die
+ normalerweise nicht direkt in
SGML-Dokumenten erlaubt sind. St&ouml;&szlig;t ein SGML-Parser
- bei seiner Arbeit auf das Symbol &lt;, nimmt er an, dass
- der Anfang eines Start- oder Endtags gefunden wurde. Bei einem
- &amp; wird er annehmen, den Anfang einer Entit&auml;t gefunden
- zu haben.</para>
+ bei seiner Arbeit auf das Symbol <literal>&lt;</literal>,
+ nimmt er an, dass der Anfang eines Start- oder Endtags
+ gefunden wurde. Bei einem <literal>&amp;</literal> wird er
+ annehmen, den Anfang einer Entit&auml;t gefunden zu haben.</para>
<para>Wenn eines der beiden Zeichen ben&ouml;tigt wird, werden
- die allgemeinen Entit&auml;ten &amp;lt; und &amp;amp;
- verwendet.</para>
+ daher die allgemeinen Entit&auml;ten <literal>&amp;lt;</literal>
+ und <literal>&amp;amp;</literal> verwendet.</para>
<para>Allgemeine Entit&auml;ten k&ouml;nnen nur in einem
SGML-Kontext definiert werden. &Uuml;blich ist es, dies direkt
@@ -1726,7 +1727,8 @@ nsgmls:beispiel.sgml:6:8:E: end tag for "HEAD" which is not finished</screen>
Parser auf dieses Inhaltsmodell, wird er annehmen, dass
sich im zugeh&ouml;rigen Dokumentenbereich nur
<quote>gew&ouml;hnliche</quote> Zeichen befinden. Das
- bedeutet, dass &lt; und &amp; ihre besondere Bedeutung
+ bedeutet, dass <literal>&lt;</literal> und
+ <literal>&amp;</literal> ihre besondere Bedeutung
verlieren und als einfache Zeichen behandelt werden.</para>
<para><literal>RCDATA</literal> steht f&uuml;r
@@ -1736,19 +1738,24 @@ nsgmls:beispiel.sgml:6:8:E: end tag for "HEAD" which is not finished</screen>
data</foreignphrase></para></footnote>. F&uuml;r einen
Bereich mit diesem Inhaltsmodell, wird ein Parser davon
ausgehen, dass er sowohl Zeichen als auch
- Enit&auml;tenreferenzen finden kann. &lt; verliert hier zwar
- auch seine besondere Bedeutung, doch &amp; wird weiterhin
- als Anfang einer Entit&auml;t interpretiert.</para>
+ Enit&auml;tenreferenzen finden kann. <literal>&lt;</literal>
+ verliert hier zwar auch seine besondere Bedeutung, doch
+ <literal>&amp;</literal> wird weiterhin als Anfang einer
+ Entit&auml;t interpretiert.</para>
<para>N&uuml;tzlich ist das <literal>CDATA</literal>-Modell
vor allem dann, wenn es darum geht Texte eins-zu-eins zu
- &uuml;bernehmen, in denen &lt; und &amp; geh&auml;uft
+ &uuml;bernehmen, in denen <literal>&lt;</literal> und
+ <literal>&amp;</literal> geh&auml;uft
auftreten. Zwar kann man solche Texte &uuml;berarbeiten und
- jedes &lt; durch ein &amp;lt; und jedes &amp; durch ein
- &amp;amp; ersetzen, doch es wird in den meisten F&auml;llen
+ jedes <literal>&lt;</literal> durch ein
+ <literal>&amp;lt;</literal> und jedes
+ <literal>&amp;</literal> durch ein <literal>&amp;amp;</literal>
+ ersetzen, doch es wird in den meisten F&auml;llen
einfacher sein, f&uuml;r den betreffenden Text
<literal>CDATA</literal> als Inhaltsmodell festzulegen. Ein
- SGML-Parser wird dann, sobald er auf &lt; und &amp; trifft,
+ SGML-Parser wird dann, sobald er auf
+ <literal>&lt;</literal> oder <literal>&amp;</literal> trifft,
diese als Zeichen in einem Text betrachten.</para>
<note>
@@ -1769,8 +1776,8 @@ nsgmls:beispiel.sgml:6:8:E: end tag for "HEAD" which is not finished</screen>
<title>CDATA als Inhaltsmodell f&uuml;r markierte Bereiche</title>
<programlisting>&lt;para>Das ist ein Beispiel, wie man einen Text,
- der viele &amp;lt; und &amp;amp; Entit&auml;ten enth&auml;lt, in ein
- Dokument einbinden kann.
+ der viele <literal>&amp;lt;</literal>- und <literal>&amp;amp;</literal>-
+ Entit&auml;ten enth&auml;lt, in ein Dokument einbinden kann.
Das Beispiel selbst, das sich innerhalb des markierten Bereiches befindet,
ist ein HTML-Fragment. Der diesen Text umschlie&szlig;ende Tag, beginnend mit
mit <sgmltag>para</sgmltag> und endend mit <sgmltag>/para</sgmltag>, stammt aus der DocBook DTD.&lt;/para>
diff --git a/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.sgml b/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.sgml
index 7d3360d89c..fefeea3caa 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.sgml
+++ b/de_DE.ISO8859-1/books/fdp-primer/translations/chapter.sgml
@@ -28,8 +28,8 @@
POSSIBILITY OF SUCH DAMAGE.
$FreeBSD$
- $FreeBSDde: de-docproj/books/fdp-primer/translations/chapter.sgml,v 1.6 2004/10/31 11:40:16 jkois Exp $
- basiert auf: 1.26
+ $FreeBSDde: de-docproj/books/fdp-primer/translations/chapter.sgml,v 1.7 2005/09/12 18:24:29 jkois Exp $
+ basiert auf: 1.29
-->
<chapter id="translations">
diff --git a/de_DE.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml b/de_DE.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml
index e9f5b6a7e1..a5c2ed2803 100644
--- a/de_DE.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml
+++ b/de_DE.ISO8859-1/books/fdp-primer/writing-style/chapter.sgml
@@ -28,8 +28,8 @@
POSSIBILITY OF SUCH DAMAGE.
$FreeBSD$
- $FreeBSDde: de-docproj/books/fdp-primer/writing-style/chapter.sgml,v 1.7 2005/08/15 13:03:20 jkois Exp $
- basiert auf: 1.47
+ $FreeBSDde: de-docproj/books/fdp-primer/writing-style/chapter.sgml,v 1.8 2005/09/12 18:28:54 jkois Exp $
+ basiert auf: 1.48
-->
<chapter id="writing-style">
diff --git a/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml b/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
index 43cadd3f75..b4b78a4316 100644
--- a/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/basics/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/basics/chapter.sgml,v 1.94 2005/09/01 18:06:55 jkois Exp $
- basiert auf: 1.138
+ $FreeBSDde: de-docproj/books/handbook/basics/chapter.sgml,v 1.95 2005/09/16 14:24:33 jkois Exp $
+ basiert auf: 1.139
-->
<chapter id="basics">
@@ -669,13 +669,13 @@ total 530
<filename>/etc/fstab</filename> werden beim Booten automatisch
durch das Skript &man.rc.8; gemountet, wenn die zugeh&ouml;rigen
Eintr&auml;ge nicht mit der Option <option>noauto</option>
- versehen sind. Weitere Informationen zu diesem Thema enth&auml;lt
- der Abschnitt <xref linkend="disks-fstab">.</para>
+ versehen sind. Weitere Informationen zu diesem Thema finden Sie
+ im <xref linkend="disks-fstab">.</para>
<para>Eine vollst&auml;ndige Beschreibung der Dateisystem-Hierarchie
finden Sie in &man.hier.7;. Als Beispiel sei eine kurze
- &Uuml;bersicht &uuml;ber die gebr&auml;uchlisten Verzeichnisse
- gegeben:</para>
+ &Uuml;bersicht &uuml;ber die am h&auml;ufigsten verwendeten
+ Verzeichnisse gegeben:</para>
<para>
<informaltable frame="none" pgwide="1">
@@ -686,10 +686,10 @@ total 530
<entry>Beschreibung</entry>
</row>
</thead>
- <tbody>
+ <tbody valign="top">
<row>
<entry><filename class="directory">/</filename></entry>
- <entry>Root-Verzeichnis des Dateisystems.</entry>
+ <entry>Wurzelverzeichnis des Dateisystems.</entry>
</row>
<row>
@@ -787,16 +787,17 @@ total 530
laufen.</entry>
</row>
-
<row>
<entry><filename class="directory">/tmp/</filename></entry>
<entry>Tempor&auml;re Dateien, die f&uuml;r gew&ouml;hnlich
- nicht nach einem Reboot erhalten werden. Dies kann
- ein speicherbasiertes Dateisystem, siehe &man.mfs.8;,
- sein.</entry>
+ nicht nach einem Reboot erhalten werden. H&auml;ufig wird
+ ein speicherbasiertes Dateisystem unter
+ <filename class="directory">/tmp</filename>
+ eingeh&auml;ngt. Weitere Informationen finden Sie in den
+ Manualpages &man.mdmfs.8; sowie &man.mfs.8; (f&uuml;r
+ &os;&nbsp;4.X).</entry>
</row>
-
<row>
<entry><filename class="directory">/usr/</filename></entry>
<entry>Der Gro&szlig;teil der Benutzerprogramme und
@@ -969,7 +970,7 @@ total 530
gibt es in &os; nicht.</para>
<para>Stattdessen wird ein Dateisystem als Wurzeldateisystem
- (<foreignphrase>Root-Filesystem</foreignphrase>)
+ (<foreignphrase>root file system</foreignphrase>)
ausgew&auml;hlt. Das Wurzelverzeichnis dieses Dateisystems
wird <filename class="directory">/</filename> genannt.
Jedes andere Dateisystem wird unter dem Wurzeldateisystem
@@ -1238,7 +1239,7 @@ total 530
</row>
</thead>
- <tbody>
+ <tbody valign="top">
<row>
<entry><literal>a</literal></entry>
@@ -1468,7 +1469,7 @@ total 530
| | > referred to as ad0s2b |
| | | |
:-----------------: ==: | Partition c, no
-| | | Partition e, used as /var > filesystem, all
+| | | Partition e, used as /var > file system, all
| | > referred to as ad0s2e | of FreeBSD slice,
| | | | ad0s2c
:-----------------: ==: |
diff --git a/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml b/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
index c99f7f3862..bbdc6668a8 100644
--- a/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/boot/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/boot/chapter.sgml,v 1.49 2005/01/24 23:34:20 mheinen Exp $
- basiert auf: 1.59
+ $FreeBSDde: de-docproj/books/handbook/boot/chapter.sgml,v 1.50 2005/09/12 16:35:42 jkois Exp $
+ basiert auf: 1.60
-->
<chapter id="boot">
@@ -154,15 +154,24 @@
<title>Der MBR, <filename>/boot/boot0</filename></title>
<indexterm><primary>Master Boot Record (MBR)</primary></indexterm>
- <para>Eine <emphasis>Kopie</emphasis> des Master Boot Records (MBR)
- von FreeBSD befindet sich in <filename>/boot/boot0</filename>.
- Der richtige MBR wird in einem nicht benutzbaren Teil des Laufwerks
- gespeichert.</para>
+ <para>Der vom FreeBSD-Installationsprogramm und &man.boot0cfg.8;
+ installierte Master Boot Record (MBR) basiert auf
+ <filename>/boot/boot0</filename> und wird in den ersten Sektor
+ der Platte (also au&szlig;erhalb der Slices) installiert.
+ (Der von &man.fdisk.8; installierte MBR basiert hingegen auf
+ <filename>/boot/mbr</filename> und &auml;hnelt dem MBR von
+ PC-DOS. Die Aufgabe dieses MBRs ist das Booten der als
+ <emphasis>active</emphasis> markierten Slice. Im Gegensatz
+ zum FreeBSD-MBR erfolgt dies ohne R&uuml;ckfrage.)</para>
<para><filename>boot0</filename> ist ein ziemlich simples
Programm, und zwar aus dem einfachen Grund, dass der MBR nur
- 512&nbsp;Bytes gro&szlig; sein darf. Falls Sie den FreeBSD-MBR
- installiert haben und sich mehrere Betriebssysteme auf Ihrer
+ 512&nbsp;Bytes gro&szlig; sein darf. (Tats&auml;chlich
+ darf er nur 446&nbsp;Bytes gro&szlig; sein, da der restliche
+ Platz f&uuml;r die Partitionstabelle und den
+ 0x55AA-Identifier am Ende des MBRs ben&ouml;tigt wird.)
+ Falls Sie den FreeBSD-MBR installiert haben und sich mehrere
+ Betriebssysteme auf Ihrer
Festplatte befinden, werden Sie beim Starten des Computers
eine Anzeige sehen, &auml;hnlich der Folgenden:</para>
diff --git a/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml b/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
index 516b6739d1..757df8a390 100644
--- a/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/cutting-edge/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/cutting-edge/chapter.sgml,v 1.74 2005/08/31 19:30:45 jkois Exp $
- basiert auf: 1.217
+ $FreeBSDde: de-docproj/books/handbook/cutting-edge/chapter.sgml,v 1.76 2005/09/11 08:47:10 jkois Exp $
+ basiert auf: 1.219
-->
<chapter id="cutting-edge">
@@ -611,10 +611,10 @@
<para>Es kann nicht oft genug betont werden, wie wichtig es ist, Ihr
System zu sichern, <emphasis>bevor</emphasis> Sie die nachfolgenden
Schritte ausf&uuml;hren. Obwohl der Neubau des Systems eine
- einfache Aufgabe ist, solange Sie sich an die folgende Anleitung
- halten, ist es unvermeidlich, dass Sie Fehler machen, oder Ihr
- System nicht mehr bootet, weil andere Fehler in den Quellbaum
- eingef&uuml;hrt haben.</para>
+ einfache Aufgabe ist, wenn Sie sich an die folgende Anleitung
+ halten, kann es dennoch vorkommen, dass Sie einen Fehler machen,
+ oder dass Ihr System nicht mehr bootet, weil andere Entwickler
+ Fehler in den Quellbaum eingef&uuml;hrt haben.</para>
<para>Stellen Sie sicher, dass Sie eine Sicherung erstellt haben
und &uuml;ber eine Fixit-Floppy oder eine startf&auml;hige CD
@@ -821,10 +821,10 @@
</sect2>
<sect2 id="makeworld-singleuser">
- <title>Wechseln Sie in den Single-User Modus</title>
- <indexterm><primary>Single-User Modus</primary></indexterm>
+ <title>Wechseln Sie in den Single-User-Modus</title>
+ <indexterm><primary>Single-User-Modus</primary></indexterm>
- <para>Sie k&ouml;nnen das System im Single-User Modus
+ <para>Sie k&ouml;nnen das System im Single-User-Modus
&uuml;bersetzen. Abgesehen davon, dass dies etwas schneller
ist, werden bei der Installation des Systems viele wichtige Dateien,
wie die Standard-Systemprogramme, die Bibliotheken und
@@ -835,19 +835,19 @@
<indexterm><primary>Mehrbenutzermodus</primary></indexterm>
<para>Eine andere Methode &uuml;bersetzt das System im
- Mehrbenutzermodus und wechselt f&uuml;r die Installation den
- Single-User Modus. Wenn Sie diese Methode benutzen wollen, warten
+ Mehrbenutzermodus und wechselt f&uuml;r die Installation in den
+ Single-User-Modus. Wenn Sie diese Methode benutzen wollen, warten
Sie mit den folgenden Schritten, bis der Bau des Systems fertig
ist und Sie mit <maketarget>installkernel</maketarget> oder
<maketarget>installworld</maketarget> installieren wollen.</para>
<para>Als Superuser k&ouml;nnen Sie mit dem folgenden Kommando ein
- laufendes System in den Single-User Modus bringen:</para>
+ laufendes System in den Single-User-Modus bringen:</para>
- <screen>&prompt.root; <userinput/shutdown now/</screen>
+ <screen>&prompt.root; <userinput>shutdown now</userinput></screen>
<para>Alternativ k&ouml;nnen Sie das System mit der Option
- <option>-s</option> in den Single-User Modus booten. Setzen Sie
+ <option>-s</option> in den Single-User-Modus booten. Setzen Sie
dann die folgenden Kommandos ab:</para>
<screen>&prompt.root; <userinput>fsck -p</userinput>
@@ -1011,7 +1011,7 @@ Script done, &hellip;</screen>
l&auml;sst sich im Mehrbenutzermodus ohne negative
Seiteneffekte bauen. Die Installation mit
<maketarget>installworld</maketarget> sollte aber immer noch im
- Single-User Modus erfolgen.</para>
+ Single-User-Modus erfolgen.</para>
<para>Zweitens k&ouml;nnen Sie NFS benutzen, um mehrere Maschinen
in Ihrem Netzwerk zu aktualisieren. Wenn Sie die Maschinen
@@ -1093,7 +1093,7 @@ Script done, &hellip;</screen>
<filename>GENERIC</filename> Kernel. Obwohl der
<filename>GENERIC</filename> Kernel vielleicht nicht alle
Ihre Ger&auml;te unterst&uuml;tzt, sollte er alles enthalten,
- um das System in den Single-User Modus zu booten. Dies ist auch
+ um das System in den Single-User-Modus zu booten. Dies ist auch
ein guter Test, um zu sehen, dass das System
ordnungsgem&auml;&szlig; funktioniert. Nachdem Sie mit
<filename>GENERIC</filename> gebootet und sichergestellt haben,
@@ -1114,11 +1114,6 @@ Script done, &hellip;</screen>
&prompt.root; <userinput>make buildkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput>
&prompt.root; <userinput>make installkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput></screen>
- <para>Wenn Sie FreeBSD&nbsp;4.2 oder eine &auml;ltere Version
- verwenden, ersetzen Sie <literal>KERNCONF=</literal> durch
- <literal>KERNEL=</literal>. Ab der 4.2-STABLE Version vom
- 2.&nbsp;Februar 2001 k&ouml;nnen Sie die Variable
- <makevar>KERNCONF</makevar> verwenden.</para>
</note>
<para>Wenn <varname>kern.securelevel</varname> einen Wert
@@ -1131,21 +1126,14 @@ Script done, &hellip;</screen>
Informationen &uuml;ber <varname>kern.securelevel</varname> finden
Sie in &man.init.8; und &man.chflags.1; erl&auml;utert Optionen, die
Sie auf Dateien setzen k&ouml;nnen.</para>
-
- <para>Wenn Sie ein Update auf eine &os; Version vor 4.0
- durchf&uuml;hren, sollten Sie die <quote>herk&ouml;mmliche</quote>
- Methode benutzen. Es ist allerdings empfohlen, dazu die frisch
- gebaute Version von &man.config.8; zu benutzen:</para>
-
- <screen>&prompt.root; <userinput>/usr/obj/usr/src/usr.sbin/config/config <replaceable>KERNELNAME</replaceable></userinput></screen>
</sect2>
<sect2>
- <title>Booten Sie in den Single-User Modus</title>
- <indexterm><primary>Single-User Modus</primary></indexterm>
+ <title>Booten Sie in den Single-User-Modus</title>
+ <indexterm><primary>Single-User-Modus</primary></indexterm>
<para>Um zu pr&uuml;fen, ob der neue Kernel funktioniert, sollten Sie
- in den Single-User Modus booten. Folgen Sie dazu der Anleitung aus
+ in den Single-User-Modus booten. Folgen Sie dazu der Anleitung aus
<xref linkend="makeworld-singleuser">.</para>
</sect2>
@@ -1221,11 +1209,6 @@ Script done, &hellip;</screen>
<command>mergemaster</command> ist der empfohlene Weg, Ihre
Systemkonfiguration mit dem Quellbaum abzugleichen.</para>
- <para>Zwischen 3.3-RELEASE und 3.4-RELEASE wurde
- <command>mergemaster</command> in das Basissystem integriert, so
- dass es in allen -STABLE und -CURRENT Systemen seit der
- Version 3.3 vorhanden ist.</para>
-
<para>Rufen Sie <command>mergemaster</command> einfach auf und
schauen Sie zu. Ausgehend von <filename>/</filename> wird
<command>mergemaster</command> einen virtuellen Root-Baum
@@ -1744,7 +1727,7 @@ Building everything..
<answer>
<itemizedlist>
<listitem>
- <para>Bauen Sie im Single-User Modus.</para>
+ <para>Bauen Sie im Single-User-Modus.</para>
</listitem>
<listitem>
@@ -1957,10 +1940,10 @@ Building everything..
und installieren Sie den gerade gebauten Kernel. Wenn diese
Maschine <filename>/usr/src</filename> und
<filename>/usr/obj</filename> &uuml;ber NFS bekommt, m&uuml;ssen
- Sie das Netzwerk im Single-User Modus aktivieren und die beiden
+ Sie das Netzwerk im Single-User-Modus aktivieren und die beiden
Dateisysteme einh&auml;ngen. Am einfachsten ist dies, wenn Sie
auf der Testmaschine ausgehend vom Mehrbenutzermodus mit
- <command>shutdown now</command> in den Single-User Modus wechseln.
+ <command>shutdown now</command> in den Single-User-Modus wechseln.
Sie k&ouml;nnen dann mit der normalen Prozedur den neuen Kernel
und das System installieren und anschlie&szlig;end
<command>mergemaster</command> laufen lassen. Wenn Sie damit
diff --git a/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml b/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml
index 15afc3456e..eceb5ac277 100644
--- a/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/mail/chapter.sgml
@@ -5,8 +5,8 @@
Original Revision der ersten Uebersetzung: 1.20
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/mail/chapter.sgml,v 1.57 2005/09/03 11:31:56 jkois Exp $
- basiert auf: 1.129
+ $FreeBSDde: de-docproj/books/handbook/mail/chapter.sgml,v 1.59 2005/09/13 16:54:19 jkois Exp $
+ basiert auf: 1.131
-->
<!--
Ein paar Anmerkungen zur Uebersetzung bestimmter Begriffe
@@ -789,13 +789,30 @@ postmaster@example.com postmaster@noc.example.net
Dokumentation nach.</para>
</sect2>
- <sect2>
+ <sect2 id="mail-disable-sendmail">
<title>Ausschalten von <application>sendmail</application></title>
<para>Die Prozedur des Startens von <application>sendmail</application>
- hat sich zwischen 4.5-RELEASE und 4.6-RELEASE signifikant
- ver&auml;ndert. Daher beinhaltet auch die Prozedur des Abschaltens
- subtile Unterschiede.</para>
+ hat sich zwischen 4.5-RELEASE, 4.6-RELEASE sowie den folgenden
+ Versionen signifikant ver&auml;ndert. Daher beinhaltet auch die
+ Prozedur des Abschaltens subtile Unterschiede.</para>
+
+ <warning>
+ <para>Wenn Sie die Sendefunktion von
+ <application>sendmail</application> deaktivieren, m&uuml;ssen
+ Sie f&uuml;r den E-Mail-Versand ein alternatives System
+ installieren. Tun Sie dies nicht, sind Systemfunktionen wie
+ &man.periodic.8; nicht mehr in der Lage, ihre Resulate und
+ Meldungen als E-Mail zu versenden. Aber auch viele andere
+ Teile Ihres Systems erwarten, dass Sie &uuml;ber ein
+ <application>sendmail</application>-kompatibles System
+ verf&uuml;gen. Sind Programme auf (die von Ihnen
+ deaktivierten)
+ <application>sendmail</application>-Bin&auml;rdateien
+ angewiesen, landen deren E-Mails ansonsten in einer inaktiven
+ <application>sendmail</application>-Warteschlange und
+ k&ouml;nnen nicht ausgeliefert werden.</para>
+ </warning>
<sect3>
<title>FreeBSD 4.5-STABLE vor dem 4.4.2002 (inklusive 4.5-RELEASE und
@@ -817,40 +834,52 @@ postmaster@example.com postmaster@noc.example.net
<title>FreeBSD 4.5-STABLE nach dem 4.4.2002 (inklusive 4.6-RELEASE
und sp&auml;tere Versionen)</title>
- <para>Um <application>sendmail</application> komplett abzuschalten,
- m&uuml;ssen Sie</para>
+ <para>Um <application>sendmail</application> komplett (also
+ inklusive der Funktion zum Versenden von E-Mails)
+ abzuschalten, m&uuml;ssen Sie den Eintrag</para>
<programlisting>sendmail_enable="NONE"</programlisting>
- <para>in Ihre <filename>/etc/rc.conf</filename> schreiben.</para>
+ <para>in Ihre <filename>/etc/rc.conf</filename>
+ aufnehmen.</para>
- <warning>
- <para>Wenn Sie <application>sendmail</application>s Dienst f&uuml;r
- ausgehende E-Mails auf diesem Weg abschalten, ist es wichtig,
- dass Sie es mit einem voll funktionsf&auml;higen alternativen
- E-Mail-Zustellungssystem ersetzen. Wenn Sie w&auml;hlen das nicht
- zu tun, werden System-Funktionen wie &man.periodic.8; nicht
- f&auml;hig sein, Ihre Ergebnisse per E-Mail zuzustellen, wie sie
- es normalerweise erwarten. Viele Teile Ihres Systems k&ouml;nnen
- erwarten, ein funktionierendes
- <application>sendmail</application>-kompatibles System zu haben.
- Wenn Anwendungen weiterhin versuchen mit
- <application>sendmail</application>s Programmdateien E-Mails zu
- verschicken, nachdem Sie sie abgeschaltet haben, k&ouml;nnten
- E-Mails in einer inaktiven
- <application>sendmail</application>-Warteschlange landen, und
- niemals geliefert werden.</para>
- </warning>
-
- <para>Wenn Sie nur <application>sendmail</application>s Dienst
- f&uuml;r eingehende E-Mail abschalten m&ouml;chten, sollten Sie
- </para>
+ <para>Wenn Sie lediglich die Funktion zum Empfang von E-Mails
+ durch <application>sendmail</application> deaktivieren
+ wollen, sollten Sie folgenden Eintrag in
+ <filename>/etc/rc.conf</filename> einf&uuml;gen:</para>
<programlisting>sendmail_enable="NO"</programlisting>
- <para>in <filename>/etc/rc.conf</filename> setzen. Mehr
- Informationen zu <application>sendmail</application>s Start-Optionen
- sind vorhanden auf der &man.rc.sendmail.8; Manual Page.</para>
+ <para>In diesem Fall ist die lokale Zustellung von E-Mails
+ weiterhin m&ouml;glich. Weitere Informationen zu den
+ Startoptionen von <application>sendmail</application>
+ finden Sie in der Manualpage &man.rc.sendmail.8;.</para>
+ </sect3>
+
+ <sect3>
+ <title>FreeBSD 5.0-STABLE und neuer</title>
+
+ <para>Um <application>sendmail</application> komplett zu
+ deaktivieren (also inklusive der Funktion zum Versand
+ von E-Mails), f&uuml;gen Sie die Zeile</para>
+
+ <programlisting>sendmail_enable="NO"
+sendmail_submit_enable="NO"
+sendmail_outbound_enable="NO"
+sendmail_msp_queue_enable="NO"</programlisting>
+
+ <para>in <filename>/etc/rc.conf</filename> ein.</para>
+
+ <para>Wenn Sie lediglich die Funktion zum Empfang von E-Mails
+ durch <application>sendmail</application> deaktivieren
+ wollen, sollten Sie folgenden Eintrag in
+ <filename>/etc/rc.conf</filename> einf&uuml;gen:</para>
+
+ <programlisting>sendmail_enable="NO"</programlisting>
+
+ <para>Weitere Informationen zu den Startoptionen von
+ <application>sendmail</application> finden Sie in der
+ Manualpage &man.rc.sendmail.8;.</para>
</sect3>
</sect2>
diff --git a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
index e6ce2913d8..4717b89809 100644
--- a/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/mirrors/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/mirrors/chapter.sgml,v 1.100 2005/09/03 12:10:07 jkois Exp $
- basiert auf: 1.386
+ $FreeBSDde: de-docproj/books/handbook/mirrors/chapter.sgml,v 1.101 2005/09/11 08:50:12 jkois Exp $
+ basiert auf: 1.387
-->
<appendix id="mirrors">
@@ -615,13 +615,6 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<filename>/usr/src/usr.sbin/ctm</filename>, wenn Sie eine Kopie
der Quellen besitzen.</para>
- <para>Wenn Sie eine fr&uuml;here Version als FreeBSD&nbsp;2.0
- besitzen, k&ouml;nnen Sie die aktuellen <application>CTM</application>
- Quellen von der folgenden URL beziehen:</para>
-
- <para><ulink
- url="http://www.FreeBSD.org/cgi/cvsweb.cgi/src/usr.sbin/ctm/"></ulink></para>
-
<para>Die Deltas, die <application>CTM</application> verarbeitet,
k&ouml;nnen Sie &uuml;ber FTP oder E-Mail beziehen. Wenn Sie
&uuml;ber einen FTP Zugang zum Internet verf&uuml;gen, erhalten
diff --git a/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml b/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
index f0971967b5..6895ce73c5 100644
--- a/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/multimedia/chapter.sgml
@@ -3,7 +3,7 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/multimedia/chapter.sgml,v 1.72 2005/09/03 12:28:48 jkois Exp $
+ $FreeBSDde: de-docproj/books/handbook/multimedia/chapter.sgml,v 1.73 2005/09/13 17:09:21 jkois Exp $
basiert auf: 1.110
-->
@@ -1086,7 +1086,7 @@ no adaptors present</screen>
</indexterm>
<para>Dieser Abschnitt behandelt Anwendungen aus der
- &os;-Ports-Collection, die Videos abspielen. An der
+ &os;-Ports-Sammlung, die Videos abspielen. An der
Videowiedergabe wird derzeit aktiv gearbeitet, sodass
der Funktionsumfang der Anwendungen von dem hier beschriebenen
abweichen kann.</para>
@@ -1154,7 +1154,7 @@ no adaptors present</screen>
<listitem>
<para>Die Anwendung h&auml;ngt von anderen Anwendungen
- ab, die sich noch nicht in der &os;-Ports-Collection
+ ab, die sich noch nicht in der &os;-Ports-Sammlung
befinden.</para>
</listitem>
</orderedlist>
@@ -1186,7 +1186,7 @@ no adaptors present</screen>
</indexterm>
<para><application>MPlayer</application> finden Sie in der
- Ports-Collection unter
+ Ports-Sammlung unter
<filename role="package">multimedia/mplayer</filename>.
Der Bau von <application>MPlayer</application>
ber&uuml;cksichtigt die vorhandene Harware und erzeugt
@@ -1407,7 +1407,7 @@ zoom=yes</programlisting>
<para>Zurzeit gibt es kein <application>xine</application>-Modul,
das CSS-kodierte DVDs abspielen kann und sich in
- der &os; Ports-Collection befindet.</para>
+ der &os; Ports-Sammlung befindet.</para>
<para><application>xine</application> ist benutzerfreundlicher
als <application>MPlayer</application>, bietet allerdings
@@ -1676,7 +1676,7 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
</itemizedlist>
<para>Weitere Anwendungen finden Sie in der &os;
- Ports-Collection.</para>
+ Ports-Sammlung.</para>
</sect2>
<sect2>
@@ -1715,7 +1715,7 @@ bktr0: Pinnacle/Miro TV, Philips SECAM tuner.</programlisting>
<para>Unter &os; k&ouml;nnen Sie, wie unter jedem anderen
modernen Betriebssystem, Scanner benutzen. Die Anwendung
<application>SANE</application> (Scanner Access Now Easy)
- aus der Ports-Collection stellt eine einheitliche Schnittstelle
+ aus der Ports-Sammlung stellt eine einheitliche Schnittstelle
(<acronym role="Application Programming Interface">API</acronym>)
f&uuml;r den Zugriff auf Scanner bereit.
<application>SANE</application> greift auf Scanner
diff --git a/de_DE.ISO8859-1/books/handbook/pgpkeys/chapter.sgml b/de_DE.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
index 2dd6b70f05..6897c26094 100644
--- a/de_DE.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/pgpkeys/chapter.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/pgpkeys/chapter.sgml,v 1.35 2005/09/03 13:19:59 jkois Exp $
- basiert auf: 1.270
+ $FreeBSDde: de-docproj/books/handbook/pgpkeys/chapter.sgml,v 1.37 2005/09/16 16:12:50 jkois Exp $
+ basiert auf: 1.272
-->
<appendix id="pgpkeys">
@@ -45,11 +45,6 @@
&pgpkey.kuriyama;
</sect2>
- <sect2 id="pgpkey-scottl">
- <title>&a.scottl;</title>
- &pgpkey.scottl;
- </sect2>
-
<sect2 id="pgpkey-imp">
<title>&a.imp;</title>
&pgpkey.imp;
@@ -329,6 +324,11 @@
&pgpkey.gioria;
</sect2>
+ <sect2 id="pgpkey-mnag">
+ <title>&a.mnag;</title>
+ &pgpkey.mnag;
+ </sect2>
+
<sect2 id="pgpkey-jmg">
<title>&a.jmg;</title>
&pgpkey.jmg;
@@ -564,6 +564,11 @@
&pgpkey.remko;
</sect2>
+ <sect2 id="pgpkey-scottl">
+ <title>&a.scottl;</title>
+ &pgpkey.scottl;
+ </sect2>
+
<sect2 id="pgpkey-pav">
<title>&a.pav;</title>
&pgpkey.pav;
diff --git a/de_DE.ISO8859-1/books/handbook/preface/preface.sgml b/de_DE.ISO8859-1/books/handbook/preface/preface.sgml
index 10963fbbe4..66388e3b28 100644
--- a/de_DE.ISO8859-1/books/handbook/preface/preface.sgml
+++ b/de_DE.ISO8859-1/books/handbook/preface/preface.sgml
@@ -3,8 +3,8 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/preface/preface.sgml,v 1.23 2005/09/03 15:50:13 jkois Exp $
- basiert auf: 1.29
+ $FreeBSDde: de-docproj/books/handbook/preface/preface.sgml,v 1.24 2005/09/07 16:53:42 jkois Exp $
+ basiert auf: 1.30
-->
<preface id="book-preface">
@@ -413,6 +413,15 @@
</varlistentry>
<varlistentry>
+ <term><emphasis><xref linkend="geom">, GEOM</emphasis></term>
+ <listitem>
+ <para>Beschreibt das GEOM-Framework von FreeBSD sowie die
+ Konfiguration der verschiedenen unterst&uuml;tzten
+ RAID-Level.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
<term><emphasis><xref linkend="vinum-vinum">, Vinum</emphasis></term>
<listitem>
<para>Beschreibt den Vinum Volume Manager, der virtuelle Laufwerke,
diff --git a/de_DE.ISO8859-1/books/handbook/printing/chapter.sgml b/de_DE.ISO8859-1/books/handbook/printing/chapter.sgml
index 41e0e92b8a..eeacd56226 100644
--- a/de_DE.ISO8859-1/books/handbook/printing/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/printing/chapter.sgml
@@ -2,8 +2,8 @@
The FreeBSD Documentation Project
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/printing/chapter.sgml,v 1.33 2005/09/03 15:57:31 jkois Exp $
- basiert auf: 1.93
+ $FreeBSDde: de-docproj/books/handbook/printing/chapter.sgml,v 1.38 2005/09/16 19:02:57 jkois Exp $
+ basiert auf: 1.94
-->
<chapter id="printing">
@@ -58,7 +58,7 @@
Netzwerk entgegennimmt, seien es &windows;-, &macos;- oder andere
FreeBSD-Computer. FreeBSD stellt sicher, dass die
Druckauftr&auml;ge in der richtigen Reihenfolge bearbeitet
- werden und kann optional eine Titelseite mit dem Namen des
+ werden und kann optional ein Deckblatt mit dem Namen des
Auftraggebers eines Druckauftrags aufgeben. FreeBSD kann auch
Statistiken &uuml;ber die Computer und Benutzer f&uuml;hren, die
Ausdrucke in Auftrag geben.</para>
@@ -77,17 +77,17 @@
</listitem>
<listitem>
- <para>Druckauftr&auml;ge mit einer Titelseite versehen
+ <para>Druckauftr&auml;ge mit einem Deckblatt versehen
k&ouml;nnen.</para>
</listitem>
<listitem>
- <para>Auf einem Drucker drucken k&ouml;nnen, der an einen
+ <para>Mit einem Drucker drucken k&ouml;nnen, der an einen
anderen Computer angeschlossen ist.</para>
</listitem>
<listitem>
- <para>Auf einem Drucker drucken k&ouml;nnen, der direkt an das
+ <para>Mit einem Drucker drucken k&ouml;nnen, der direkt an das
Netzwerk angeschlossen ist.</para>
</listitem>
@@ -124,19 +124,19 @@
<sect1 id="printing-intro-spooler">
<title>Einf&uuml;hrung</title>
- <para>Um einen Drucker mit FreeBSD zu benutzen, m&uuml;ssen Sie
- das Berkeley Line Printer Spooling System, auch als
- <application>LPD</application>-Drucksystem bekannt,
- konfigurieren. Dieses System zur Verwaltung von
+ <para>Um einen Drucker mit FreeBSD zu benutzen, k&ouml;nnen Sie
+ das Berkeley Line Printer Spooling System, das auch als
+ <application>LPD</application>-Drucksystem oder nur als
+ <application>LPD</application> bekannt ist,
+ verwenden. Dieses System zur Verwaltung von
Druckauftr&auml;gen ist das Standardsystem in FreeBSD. Dieses
- Kapitel f&uuml;hrt Sie in das
- <application>LPD</application>-Drucksystem ein, und zeigt Ihnen
- die Konfiguration.</para>
+ Kapitel f&uuml;hrt Sie in <application>LPD</application>
+ und dessen Konfiguration ein.</para>
<para>Wenn Sie bereits mit <application>LPD</application> oder
einem anderen Drucksystem vertraut sind, k&ouml;nnen Sie direkt
- im Abschnitt <link linkend="printing-intro-setup">Einrichten des
- Drucksystems</link> weiterlesen.</para>
+ im Abschnitt <link linkend="printing-intro-setup">Einfache
+ Drucker-Konfiguration</link> weiterlesen.</para>
<para><application>LPD</application> steuert alle Aspekte rund um
die Drucker, die an den Computer angeschlossen sind. Es ist
@@ -167,7 +167,7 @@
</listitem>
<listitem>
- <para>Den Druck von <emphasis>Titelseiten</emphasis> (auch als
+ <para>Den Druck von <emphasis>Deckbl&auml;ttern</emphasis> (auch als
<emphasis>Banner-</emphasis> oder
<emphasis>Burst-</emphasis>Seiten bezeichnet), damit
Benutzer ihre Druckauftr&auml;ge schnell innerhalb eines
@@ -194,7 +194,7 @@
</listitem>
<listitem>
- <para>Die Erfassung von Abrechnungsdaten f&uuml;r
+ <para>Das Erfassen von Verrechnungsdaten f&uuml;r
Druckauftr&auml;ge.</para>
</listitem>
</itemizedlist>
@@ -211,7 +211,7 @@
<para>Wenn Sie der einzige Benutzer sind, der mit Ihrem Computer
arbeitet, fragen Sie sich vielleicht, warum Sie die
Konfigurationsarbeit f&uuml;r das Drucksystem auf sich nehmen
- sollten, wenn Sie Titelseiten, Abrechnunsdaten oder
+ sollten, wenn Sie Deckbl&auml;tter, Abrechnungsdaten oder
Zugriffskontrolle nicht ben&ouml;tigen. Obwohl Sie direkt auf den
Drucker zugreifen k&ouml;nnen, bietet
<application>LPD</application> eine Reihe von Vorteilen:
@@ -273,9 +273,9 @@
<para>Abschnitt <link linkend="printing-advanced">Erweiterte
Drucker-Konfiguration</link> beschreibt, wie Sie mit
speziellen Dateiformaten umgehen k&ouml;nnen, wie Sie
- Titelseiten drucken k&ouml;nnen, wie Sie den Zugriff auf
+ Deckbl&auml;tter drucken k&ouml;nnen, wie Sie den Zugriff auf
Drucker einschr&auml;nken k&ouml;nnen, und wie Sie
- Abrechnungsdaten aufzeichnen k&ouml;nnen.</para>
+ Verrechnungsdaten aufzeichnen k&ouml;nnen.</para>
</listitem>
</itemizedlist>
@@ -315,8 +315,8 @@
hei&szlig;t, ist die Konfiguration relativ komplex. Es ist
vergleichsweise schwierig, einen Drucker mit Ihrem Computer
und dem <application>LPD</application>-Drucksystem zu
- verbinden. Die weiteren Optionen, wie Kopfzeile oder Titelseiten,
- sind einfach zu konfigurieren, sobald die
+ verbinden. Die weiteren Optionen, wie Kopfzeilen oder
+ Deckbl&auml;tter, sind einfach zu konfigurieren, sobald die
Grund-Konfiguration erfolgreich abgeschlossen ist.</para>
<sect3 id="printing-hardware">
@@ -350,7 +350,7 @@
<listitem>
<para><emphasis>Seriell</emphasis> angeschlossene
Drucker werden &uuml;ber eine serielle Schnittstelle
- (auch RS232C-, RS232D- oder COM-Schnittstelle genannt)
+ (auch RS-232 oder COM-Schnittstelle genannt)
mit Ihrem Computer verbunden. Diese Schnittstelle wird
von vielen unterschiedlichen Systemen verwendet.
Serielle Kabel sind leicht erh&auml;ltlich und
@@ -401,7 +401,8 @@
<listitem>
<para>USB-Schnittstelle (Universal Serial Bus)
bieten noch h&ouml;here Geschwindigkeiten als
- parallele Schnittstellen oder serielle RS232-Schnittstellen.
+ parallele Schnittstellen oder serielle
+ RS-232-Schnittstellen.
USB-Kabel sind einfach und billig. Zum Drucken
ist die USB-Schnittstelle besser geeignet als
serielle oder parallele Schnittstellen, auf
@@ -460,8 +461,8 @@
Schnittstelle des Computers Sie den Drucker verbunden
haben. Die meisten Computer haben lediglich eine parallele
Schnittstelle. Der FreeBSD-Ger&auml;tename der ersten
- Schnittstelle lautet <filename>/dev/ppc0</filename>, der
- der zweiten <filename>/dev/ppc1</filename>, und so weiter.
+ Schnittstelle lautet <filename>ppc0</filename>, der
+ der zweiten <filename>ppc1</filename>, und so weiter.
Der Ger&auml;tename f&uuml;r den Drucker an der ersten
parallelen Schnittstelle folgt dem selben Schema und
lautet <filename>/dev/lpt0</filename>, usw.</para>
@@ -1165,15 +1166,15 @@ showpage</programlisting>
</step>
<indexterm>
- <primary>Titelseite</primary>
+ <primary>Deckbl&auml;tter</primary>
</indexterm>
<step>
- <para>Schalten Sie den Druck von Titelseiten aus (dies ist
- standardm&auml;&szlig;ig eingeschaltet), indem Sie das
+ <para>Schalten Sie den Druck von Deckbl&auml;ttern aus (dies
+ ist standardm&auml;&szlig;ig eingeschaltet), indem Sie das
Attribut <literal>sh</literal> setzen. Abschnitt <link
linkend="printing-no-header-pages">Den Druck von
- Titelseiten ausschalten</link> erkl&auml;rt, wie Sie
+ Deckbl&auml;ttern ausschalten</link> erkl&auml;rt, wie Sie
dies tun k&ouml;nnen.</para>
</step>
@@ -1292,23 +1293,23 @@ bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:</programlisting>
</sect4>
<sect4 id="printing-no-header-pages">
- <title>Keine Titelseiten drucken</title>
+ <title>Keine Deckbl&auml;tter drucken</title>
<indexterm>
<primary>drucken</primary>
- <secondary>Titelseite</secondary>
+ <secondary>Deckblatt</secondary>
</indexterm>
<para>Standardm&auml;&szlig;ig druckt das
- <application>LPD</application>-System eine
- <emphasis>Titelseite</emphasis> vor jedem Druckauftrag,
+ <application>LPD</application>-System ein
+ <emphasis>Deckblatt</emphasis> vor jedem Druckauftrag,
die den Namen des Druckauftrags, den Benutzer und den
Computer angibt. W&auml;hrend der Einrichtung des Systems
- und beim Testen st&ouml;rt die Titelseite allerdings,
+ und beim Testen st&ouml;rt das Deckblatt allerdings,
weshalb Sie sie zun&auml;chst deaktivieren
sollten.</para>
- <para>Um den Druck der Titelseite zu deaktivieren,
+ <para>Um den Druck von Deckbl&auml;ttern zu deaktivieren,
f&uuml;gen Sie das Attribut <literal>sh</literal> zur
Druckerdefinition in <filename>/etc/printcap</filename>
hinzu. Hier ein Beispiel:</para>
@@ -1701,199 +1702,3603 @@ $%&amp;'()*+,-./01234567
</sect1>
<sect1 id="printing-advanced">
- <title>* Erweiterte Drucker-Konfiguration</title>
-
- <para>Dieser Abschnitt ist noch nicht &uuml;bersetzt. Lesen Sie
- bitte <ulink
- url="&url.books.handbook.en;/printing-advanced.html">
- das Original in englischer Sprache</ulink>.</para>
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Johann</firstname>
+ <surname>Kois</surname>
+ <contrib>&Uuml;bersetzt von </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Erweiterte Drucker-Konfiguration</title>
+
+ <para>Dieser Abschnitt beschreibt den Einsatz von Filtern f&uuml;r
+ das Drucken speziell formatierter Seiten oder von
+ Deckbl&auml;ttern, das Drucken &uuml;ber ein Netzwerk sowie die
+ Beschr&auml;nkung und Verrechnung der Druckernutzung.</para>
<sect2 id="printing-advanced-filter-intro">
- <title>* Filter</title>
+ <title>Filter</title>
+ <indexterm>
+ <primary>Drucken</primary>
+ <secondary>Filter</secondary>
+ </indexterm>
+
+ <para>Obwohl <application>LPD</application> Netzwerkprotokolle,
+ Warteschlangen, Zugriffskontrollen und andere f&uuml;r das
+ Drucken wichtige Aspekte prinzipiell unterst&uuml;tzt, passiert
+ ein Gro&szlig;teil der <emphasis>wirklichen</emphasis> Arbeit
+ in den sogenannten <emphasis>Filtern</emphasis>. Dabei handelt
+ es sich um Programme, die direkt mit einem Drucker
+ kommunizieren und deren Ger&auml;tespezifika und spezielle
+ Anforderungen erf&uuml;llen. Im einfachsten Fall
+ installiert man nur einen reinen Textfilter, der mit beinahe
+ allen Druckern funktionieren sollte. (Lesen Sie dazu auch den
+ Abschnitt <link linkend="printing-textfilter">Den Text-Filter
+ installieren</link>.)</para>
+
+ <para>Um die erweiterten F&auml;higkeiten von Druckern auch
+ einsetzen zu k&ouml;nnen, sollten Sie verstehen, wie Filter
+ arbeiten, da diese f&uuml;r die Bereitstellung dieser Funktionen
+ zust&auml;ndig sind. Die schlechte Nachricht ist, dass
+ <emphasis>Sie</emphasis> diese Filter bereitstellen m&uuml;ssen.
+ Die gute Nachricht ist allerdings, dass diese in der Regel
+ bereits vorhanden sind. Ist dies nicht der Fall, k&ouml;nnen
+ Sie einen Filter meist relativ einfach selbst erstellen.</para>
+
+ <para>Der Filter <filename>/usr/libexec/lpr/lpf</filename> wird
+ bereits mit FreeBSD geliefert. Er k&uuml;mmert sich um die
+ korrekte Behandlung von gel&ouml;schten Zeichen (das sogenannte
+ <foreignphrase>Backspacing</foreignphrase>), um im Text
+ enthaltene Tabulatoren, sowie um die Verrechnung von
+ Druckauftr&auml;gen. Das ist aber auch alles, was dieser
+ Filter kann. Zus&auml;tzliche Filter und f&uuml;r die Funktion
+ von Filtern n&ouml;tige Komponenten finden sich aber in der
+ FreeBSD Ports-Sammlung.</para>
+
+ <para>Dieser Abschnitt behandelt folgende Themen:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Der Abschnitt <link linkend="printing-advanced-filters">
+ Die Funktionsweise von Filtern</link> versucht, einen
+ &Uuml;berblick &uuml;ber die Rolle von Filtern innerhalb des
+ Druckprozesses zu geben. Sie sollten diesen Abschnitt lesen,
+ damit Sie verstehen, was <quote>unter der Haube</quote>
+ passiert, wenn <application>LPD</application> einen Filter
+ verwendet. Dieses Wissen wird Ihnen dabei helfen, Probleme,
+ die bei Installation von Filtern f&uuml;r verschiedene Drucker
+ entstehen k&ouml;nnen, vorauszusehen und zu beheben.</para>
+ </listitem>
+
+ <listitem>
+ <para><application>LPD</application> geht davon aus, dass
+ jeder Drucker in der Lage ist, normalen Text zu drucken.
+ F&uuml;r &postscript;- (oder andere sprachbasierte) Drucker
+ stellt dies allerdings ein Problem dar, da diese nicht in
+ der Lage sind, normalen Text direkt zu drucken. Der
+ Abschnitt <link
+ linkend="printing-advanced-if-conversion">Normalen Text auf
+ &postscript;-Druckern drucken</link> beschreibt, wie Sie
+ dieses Problem l&ouml;sen k&ouml;nnen. Besitzen Sie einen
+ &postscript;-Drucker, sollten Sie diesen Abschnitt
+ lesen.</para>
+ </listitem>
+
+ <listitem>
+ <para>&postscript; ist ein popul&auml;res Ausgabeformat, das
+ von vielen Programmen unterst&uuml;tzt wird. Es ist sogar
+ m&ouml;glich, &postscript;-Code direkt zu schreiben. Leider
+ sind &postscript;-Drucker in der Regel relativ teuer. Der
+ Abschnitt <link linkend="printing-advanced-ps">&postscript;
+ auf Nicht-&postscript;-Druckern emulieren</link> beschreibt,
+ wie Sie einen Textfilter anpassen m&uuml;ssen, um
+ &postscript;-Daten auf einem
+ <emphasis>nicht-&postscript;-f&auml;higen Drucker</emphasis>
+ auszugeben. Haben Sie keinen &postscript;-Drucker, sollten
+ Sie insbesondere diesen Abschnitt lesen.</para>
+ </listitem>
+
+ <listitem>
+ <para>Der Abschnitt
+ <link linkend="printing-advanced-convfilters">
+ Konvertierungsfilter</link> beschreibt eine M&ouml;glichkeit
+ zur automatischen Konvertierung verschiedener Dateiformate
+ in ein von Ihrem Drucker unterst&uuml;tztes Format. Nachdem
+ Sie diesen Abschnitt gelesen haben, werden Sie in der Lage
+ sein, Ihren Drucker so zu konfigurieren, dass Sie durch die
+ Eingabe von <command>lpr -t</command> troff-Daten, von
+ <command>lpr -d</command> &tex;-DVI-Daten, oder von
+ <command>lpr -v</command> Rasterbilddaten drucken k&ouml;nnen.
+ Daher sollten Sie diesen Abschnitt auf jeden Fall lesen.</para>
+ </listitem>
+
+ <listitem>
+ <para>Im Abschnitt <link linkend="printing-advanced-of">
+ Ausgabefilter</link> wird eine nur selten genutzte
+ Eigenschaft von <application>LPD</application>, die
+ sogenannten Ausgabefilter, beschrieben. Wenn Sie keine
+ <link linkend="printing-advanced-header-pages">
+ Deckbl&auml;tter</link> drucken m&uuml;ssen, k&ouml;nnen
+ Sie diesen Abschnitt &uuml;berspringen.</para>
+ </listitem>
+
+ <listitem>
+ <para>Der Abschnitt <link linkend="printing-advanced-lpf">lpf:
+ Ein Textfilter</link> beschreibt <command>lpf</command>,
+ einen kompletten, wenn auch einfachen Textfilter f&uuml;r
+ Zeilendrucker (oder auch Laserdrucker, die sich analog
+ verhalten), der bereits mit FreeBSD geliefert wird. Wenn
+ Sie nur am Ausdruck von reinem Text interessiert sind, oder
+ wenn Ihr Drucker nur <quote>Schrott</quote> produziert, wenn
+ er auf Backspace-Zeichen trifft, sollten Sie sich
+ <command>lpf</command> n&auml;her ansehen.</para>
+ </listitem>
+ </itemizedlist>
+
+ <note>
+ <para>Eine Kopie der verschiedenen Skripte finden Sie im
+ Verzeichnis <filename
+ class="directory">/usr/share/examples/printing</filename>.</para>
+ </note>
<sect3 id="printing-advanced-filters">
- <title>* Funktionsweise der Filter</title>
+ <title>Die Funktionsweise von Filtern</title>
+
+ <para>Bei einem Filter handelt es sich um ein ausf&uuml;hrbares
+ Programm, das von <application>LPD</application> gestartet
+ wird, um den ger&auml;teabh&auml;ngigen Teil der Kommunikation
+ mit einem Drucker zu &uuml;bernehmen.</para>
+
+ <para>Wenn <application>LPD</application> eine Datei &uuml;ber
+ einen Druckauftrag drucken will, startet es ein Filterprogramm.
+ Danach setzt es die Standardeingabe des Filters auf die zu
+ druckende Datei, die Standardausgabe auf den Drucker und die
+ Standardfehlerausgabe auf <filename>/dev/console</filename>
+ (Voreinstellung) oder auf die &uuml;ber die Option
+ <literal>lf</literal> in <filename>/etc/printcap</filename>
+ festgelegte Datei.</para>
- <para></para>
+ <indexterm>
+ <primary><command>troff</command></primary>
+ </indexterm>
+
+ <para>Welcher Filter von <application>LPD</application> mit
+ welchen Argumenten geladen wird, wird in der Datei
+ <filename>/etc/printcap</filename> oder durch die Argumente,
+ die der Anwender &man.lpr.1; auf der Kommandozeile
+ &uuml;bergibt, festgelegt. Gibt der Anwender beispielsweise
+ <command>lpr -t</command> ein, startet
+ <application>LPD</application> &uuml;ber die
+ <literal>tf</literal>-F&auml;higkeit den troff-Filter f&uuml;r
+ den gew&uuml;nschten Drucker. Wollen Sie hingegen normalen
+ Text drucken, wird der <literal>if</literal>-Filter gestartet.
+ (F&uuml;r Ausnahmen von diesem Vorgehen lesen Sie bitte den
+ Abschnitt <link linkend="printing-advanced-of">
+ Ausgabefilter</link>.)</para>
+
+ <para>Es gibt drei Arten von Filtern, die Sie in
+ <filename>/etc/printcap</filename> angeben k&ouml;nnen:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis>Textfilter</emphasis> (die in der
+ <application>LPD</application>-Dokumentation als
+ <emphasis>input filter</emphasis> bezeichnet werden) sind
+ f&uuml;r den Druck von normalem Text zust&auml;ndig.
+ Es handelt sich dabei um eine Art Standardfilter, da
+ <application>LPD</application> von jedem Drucker erwartet,
+ dass er normalen Text drucken kann. Aufgabe des
+ Textfilters ist es, sicherzustellen, dass gel&ouml;schte
+ Zeichen (<foreignphrase>Backspaces</foreignphrase>),
+ Tabulatoren und andere Sonderzeichen Ihren Drucker nicht
+ verwirren. Falls Sie f&uuml;r die Nutzung eines Druckers
+ bezahlen m&uuml;ssen, kann der Textfilter &uuml;ber die
+ Anzahl der gedruckten Zeilen auch die Anzahl der von Ihnen
+ gedruckten Seiten ermitteln. Der Textfilter wird mit
+ folgenden Argumenten gestartet:</para>
+
+ <cmdsynopsis>
+ <command>filter-name</command>
+ <arg>-c</arg>
+ <arg choice="plain">-w<replaceable>width</replaceable></arg>
+ <arg choice="plain">-l<replaceable>length</replaceable></arg>
+ <arg choice="plain">-i<replaceable>indent</replaceable></arg>
+ <arg choice="plain">-n <replaceable>login</replaceable></arg>
+ <arg choice="plain">-h <replaceable>host</replaceable></arg>
+ <arg choice="plain"><replaceable>acct-file</replaceable></arg>
+ </cmdsynopsis>
+
+ <para>Die einzelnen Argumente haben folgende Bedeutung:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-c</option></term>
+
+ <listitem>
+ <para>Notwendig, wenn <command>lpr -l</command>
+ verwendet wird.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>width</replaceable></term>
+
+ <listitem>
+ <para>Der Wert der in
+ <filename>/etc/printcap</filename> festgelegten
+ Option <literal>pw</literal> (<foreignphrase>page
+ width</foreignphrase>). In der Voreinstellung
+ ist dieser Wert auf 132 gesetzt.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>length</replaceable></term>
+
+ <listitem>
+ <para>Der Wert der
+ <literal>pl</literal>-F&auml;higkeit
+ (<foreignphrase>page length</foreignphrase>),
+ Voreinstellung 66.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>indent</replaceable></term>
+
+ <listitem>
+ <para>Der durch <command>lpr -i</command>
+ festgelegte Einzug, Voreinstellung 0.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>login</replaceable></term>
+
+ <listitem>
+ <para>Der Name des Benutzers, der die Datei
+ druckt.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>host</replaceable></term>
+
+ <listitem>
+ <para>Der Rechner, auf dem der Druckauftrag
+ gestartet wurde.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>acct-file</replaceable></term>
+
+ <listitem>
+ <para>Der Name der Verrechnungsdatei, in der die
+ Ergebnisse der
+ <literal>af</literal>-F&auml;higkeit gespeichert
+ werden.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </listitem>
+
+ <indexterm>
+ <primary>Drucken</primary>
+ <secondary>Filter</secondary>
+ </indexterm>
+
+ <listitem>
+ <para>Ein <emphasis>Konvertierungsfilter</emphasis>
+ konvertiert verschiedene Dateiformate in ein Format, das
+ Ihr Drucker auf Papier ausgeben kann. So kann etwa der
+ ditroff-Schriftsatz nicht direkt gedruckt werden, daher
+ m&uuml;ssen Sie einen Konvertierungsfilter installieren,
+ um diese Daten in ein Format zu bringen, das Ihr Drucker
+ verarbeiten und drucken kann. Der Abschnitt <link
+ linkend="printing-advanced-convfilters">
+ Konvertierungsfilter</link> enth&auml;lt ausf&uuml;hrliche
+ Informationen zu diesen Filtern. Konvertierungsfilter
+ k&ouml;nnen auch zur Verrechnung verwendet werden. Sie
+ werden mit folgenden Argumenten gestartet:</para>
+
+ <cmdsynopsis>
+ <command>filter-name</command>
+ <arg
+ choice="plain">-x<replaceable>pixel-width</replaceable></arg>
+ <arg choice="plain">-y<replaceable>pixel-height</replaceable></arg>
+ <arg choice="plain">-n <replaceable>login</replaceable></arg>
+ <arg choice="plain">-h <replaceable>host</replaceable></arg>
+ <arg choice="plain"><replaceable>acct-file</replaceable></arg>
+ </cmdsynopsis>
+
+ <para><replaceable>pixel-width</replaceable> ist der Wert
+ der <literal>px</literal>-F&auml;higkeit
+ (Voreinstellung 0), w&auml;hrend
+ <replaceable>pixel-height</replaceable> dem Wert der
+ <literal>py</literal>-F&auml;higkeit (Voreinstellung
+ ebenfalls 0) entspricht.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis>Ausgabefilter</emphasis> werden nur
+ verwendet, wenn keine Textfilter vorhanden sind oder wenn
+ Deckbl&auml;tter ben&ouml;tigt werden. Der Abschnitt
+ <link linkend="printing-advanced-of">Ausgabefilter</link>
+ enth&auml;lt weitere Informationen. Ausgabefilter
+ unterst&uuml;tzen nur zwei Argumente:</para>
+
+ <cmdsynopsis>
+ <command>filter-name</command>
+ <arg choice="plain">-w<replaceable>width</replaceable></arg>
+ <arg choice="plain">-l<replaceable>length</replaceable></arg>
+ </cmdsynopsis>
+
+ <para>Beide Argumente entsprechen den Optionen
+ <option>-w</option> und <option>-l</option> der
+ Textfilter.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Alle Filter sollten mit folgenden R&uuml;ckgabewerten
+ (Exitcodes) <emphasis>beendet</emphasis> werden:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>exit 0</term>
+
+ <listitem>
+ <para>Der Filter hat die Datei erfolgreich gedruckt.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>exit 1</term>
+
+ <listitem>
+ <para>Der Filter war nicht in der Lage, die Datei zu
+ drucken und meldet diesen Exitcode an
+ <application>LPD</application>, um die Datei erneut
+ zu drucken. <application>LPD</application> startet
+ daraufhin den Filter erneut.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>exit 2</term>
+
+ <listitem>
+ <para>Der Filter war nicht in der Lage, die Datei zu
+ drucken. Bei diesem Exitcode soll
+ <application>LPD</application> aber nicht versuchen,
+ die Datei erneut zu drucken, sondern den Druckauftrag
+ verwerfen.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para><filename>/usr/libexec/lpr/lpf</filename>, der mit FreeBSD
+ gelieferte Textfilter, nutzt die Argumente <foreignphrase>page
+ width</foreignphrase> und <foreignphrase>page
+ length</foreignphrase>, um festzulegen, wann ein Seitenumbruch
+ (<foreignphrase>form feed</foreignphrase>) gesendet werden
+ soll sowie zur Verrechnung von Druckauftr&auml;gen. Dazu werden
+ der Benutzername, der f&uuml;r den Druckauftrag verwendete
+ Rechner sowie die Verrechnungsdatei ausgewertet, um die
+ entsprechenden Eintr&auml;ge zu erstellen.</para>
+
+ <para>Wenn Sie auf der Suche nach Filtern sind, achten Sie
+ darauf, dass diese LPD-kompatibel sind. Dazu m&uuml;ssen
+ diese die oben beschriebenen Argumente unterst&uuml;tzen.
+ Wenn Sie planen, Ihre Filter selbst zu erstellen, m&uuml;ssen
+ diese ebenfalls die gleichen Argumente und Exitcodes
+ unterst&uuml;tzen.</para>
</sect3>
<sect3 id="printing-advanced-if-conversion">
- <title>* Drucken von reinen Textdateien auf einem
- &postscript;-Drucker</title>
+ <title>Normalen Text auf &postscript;-Druckern drucken</title>
+
+ <indexterm><primary>Druckjob</primary></indexterm>
+
+ <para>Sie sind der alleinige Benutzer Ihres Computers und Ihres
+ &postscript;-Druckers und Sie sind sich sicher, dass Sie
+ niemals normalen Text an Ihren Drucker senden werden?
+ Au&szlig;erdem werden Sie niemals ein Programm verwenden,
+ um normalen Text auszudrucken? Nur wenn dies alles zutrifft,
+ k&ouml;nnen Sie diesen Abschnitt &uuml;berspringen.</para>
+
+ <para>Wollen Sie allerdings sowohl &postscript; als auch
+ normalen Text drucken, m&uuml;ssen Sie Ihren Drucker zuvor
+ entsprechend konfigurieren. Dazu muss Ihr Textfilter in der
+ Lage sein, zu unterscheiden, ob es sich bei einem ankommenden
+ Druckauftrag um normalen Text oder um &postscript;-Daten
+ handelt. Jeder &postscript;-Druckauftrag muss mit den Zeichen
+ <literal>%!</literal> beginnen (sehen Sie in Ihrem
+ Druckerhandbuch nach, ob Ihr Drucker weitere Sprachen
+ unterst&uuml;tzt). Sind dies die beiden ersten Zeichen eines
+ Druckauftrages, so handelt es sich um &postscript;-Daten, die
+ direkt gedruckt werden k&ouml;nnen. Fehlen diese Zeichen
+ allerdings, muss der Textfilter den Inhalt der Datei nach
+ &postscript; konvertieren, bevor die Datei gedruckt werden
+ kann.</para>
+
+ <para>Wie funktioniert diese Unterscheidung?</para>
+
+ <indexterm>
+ <primary>Drucker</primary>
+ <secondary>seriell</secondary>
+ </indexterm>
+
+ <para>Haben Sie einen seriellen Drucker, k&ouml;nnen Sie
+ <command>lprps</command> installieren.
+ <command>lprps</command> ist ein &postscript;-Druckerfilter,
+ der eine Zweiwegekommunikation mit einem Drucker
+ erm&ouml;glicht. Er aktualisiert die Druckerstatusdatei mit
+ Protokollinformationen des Druckers. Dadurch sind Anwender
+ und Administratoren in der Lage, den genauen Zustand des
+ Druckers zu pr&uuml;fen (durch Meldungen wie <errorname>toner
+ low</errorname> oder <errorname>paper jam</errorname>).
+ Wichtiger ist allerdings, dass <command>lprps</command>
+ <command>psif</command> enth&auml;lt, ein Programm, das
+ feststellen kann, ob ein ankommender Druckauftrag normalen
+ Text enth&auml;lt. Ist dies der Fall, wird
+ <command>textps</command> (das ebenfalls mit
+ <command>lprps</command> geliefert wird) aufgerufen und die
+ Datei nach &postscript; konvertiert. Danach kann
+ <command>lprps</command> die Datei an den Drucker senden.</para>
+
+ <para><command>lprps</command> ist in der FreeBSD
+ <link linkend="ports">Ports-Sammlung</link> enthalten. Nach
+ der Installation m&uuml;ssen Sie nur noch den Pfad zum
+ Programm <command>psif</command> angeben, das als Teil von
+ <command>lprps</command> installiert wird. Haben Sie
+ <command>lprps</command> &uuml;ber die Ports-Sammlung
+ installiert, f&uuml;gen Sie folgende Zeile in den
+ Eintrag Ihres &postscript;-Druckers in
+ <filename>/etc/printcap</filename> ein:</para>
+
+ <programlisting>:if=/usr/local/libexec/psif:</programlisting>
+
+ <para>Zus&auml;tzlich sollten Sie die
+ <literal>rw</literal>-F&auml;higkeit aktivieren. Dadurch
+ wird <application>LPD</application> im Schreib- und Lesemodus
+ ge&ouml;ffnet.</para>
+
+ <para>Haben Sie hingegen einen parallelen &postscript;-Drucker,
+ was eine Zweiwegekommunikation mit Ihrem Drucker (auf die
+ <command>lprps</command> angewiesen ist) unm&ouml;glich
+ macht, k&ouml;nnen Sie das folgende Shell-Skript verwenden:</para>
+
+ <programlisting>#!/bin/sh
+#
+# psif - Drucke PostScript oder normalen Text auf einem PostScript-Drucker
+# Script-Version; das ist NICHT die mit lprps gelieferte Version!
+# Installiert unter: /usr/local/libexec/psif
+#
- <para></para>
+IFS="" read -r first_line
+first_two_chars=`expr "$first_line" : '\(..\)'`
+
+if [ "$first_two_chars" = "%!" ]; then
+ #
+ # PostScript - einfach drucken.
+ #
+ echo "$first_line" &amp;&amp; cat &amp;&amp; printf "\004" &amp;&amp; exit 0
+ exit 2
+else
+ #
+ # Normaler Text - zuerst konvertieren, dann drucken.
+ #
+ ( echo "$first_line"; cat ) | /usr/local/bin/textps &amp;&amp; printf "\004" &amp;&amp; exit 0
+ exit 2
+fi </programlisting>
+
+ <para>F&uuml;r dieses Skript wurde <command>textps</command>
+ als seperates Programm installiert, um normalen Text nach
+ &postscript; zu konvertieren. Sie k&ouml;nnen aber auch jeden
+ anderen Text-nach-&postscript;-Konverter verwenden. Die
+ FreeBSD <link linkend="ports">Ports-Sammlung</link>
+ enth&auml;lt mit <literal>a2ps</literal> ein umfangreiches
+ Programm zur Konvertierung von normalem Text nach
+ &postscript;.</para>
</sect3>
<sect3 id="printing-advanced-ps">
- <title>* Drucken von &postscript;-Dateien auf
- nicht-&postscript;-Druckern</title>
+ <title>&postscript; auf Nicht-&postscript;-Druckern emulieren</title>
+
+ <indexterm>
+ <primary>PostScript</primary>
+ <secondary>Emulation</secondary>
+ </indexterm>
+ <indexterm>
+ <primary>Ghostscript</primary></indexterm>
+
+ <para>Bei &postscript; handelt es sich um den
+ <emphasis>de facto</emphasis>-Standard f&uuml;r hochwertigen
+ Schriftsatz und Druck. Leider ist &postscript; aber auch ein
+ <emphasis>teurer</emphasis> Standard. Gl&uuml;cklicherweise
+ hat Aladdin Enterprises daher eine freie
+ &postscript;-&auml;hnliche Implementierung namens
+ <application>Ghostscript</application> entwickelt, die auch
+ unter FreeBSD lauff&auml;hig ist. Ghostscript kann fast jede
+ &postscript;-Datei lesen und auf den verschiedensten
+ Ger&auml;ten ausgeben, darunter auch auf vielen
+ Nicht-&postscript;-Druckern. Durch die Installation von
+ Ghostscript und die Nutzung eines speziellen Textfilters
+ erreichen Sie, dass sich Ihr Nicht-&postscript;-Drucker
+ wie ein echter &postscript;-Drucker verh&auml;lt.</para>
+
+ <para>Ghostscript ist in der FreeBSD Ports-Sammlung enhalten
+ und kann daher einfach installiert werden.</para>
+
+ <para>Um &postscript; zu emulieren, muss der Textfilter
+ erkennen, ob er eine &postscript;-Datei drucken soll. Ist
+ dies nicht der Fall, wird die Datei direkt an den Drucker
+ geschickt. Anderenfalls wird die Datei an Ghostscript
+ &uuml;bergeben, das die Datei in ein Format konvertiert,
+ das Ihr Drucker versteht.</para>
+
+ <para>Dazu ein Beispiel. Das folgende Skript ist ein Textfilter
+ f&uuml;r den Drucker DeskJet 500 von Hewlett Packard. Nutzen
+ Sie einen anderen Drucker, m&uuml;ssen Sie die Option
+ <option>-sDEVICE</option> beim Aufruf von <command>gs</command>
+ (Ghostscript) entsprechend anpassen. Eine Liste der von
+ Ghostscript unterst&uuml;tzten Ger&auml;te erhalten Sie durch
+ die Eingabe von <command>gs -h</command> auf der
+ Kommandozeile.</para>
+
+ <programlisting>#!/bin/sh
+#
+# ifhp - Ghostscript-emuliertes PostScript auf einem HP DeskJet 500 drucken
+# Installiert unter: /usr/local/libexec/ifhp
+
+#
+# LF als CR+LF behandeln (um einen "Treppeneffekt" auf HP/PCL-Drucker
+# zu vermeiden)
+#
+printf "\033&amp;k2G" || exit 2
+
+#
+# Lies die ersten zwei Zeichen der Datei
+#
+IFS="" read -r first_line
+first_two_chars=`expr "$first_line" : '\(..\)'`
+
+if [ "$first_two_chars" = "%!" ]; then
+ #
+ # Oh. Es ist PostScript; mit Ghostscript konvertieren, danach drucken.
+ #
+ /usr/local/bin/gs -dSAFER -dNOPAUSE -q -sDEVICE=djet500 \
+ -sOutputFile=- - &amp;&amp; exit 0
+else
+ #
+ # Normaler Text oder HP/PCL, einfach direkt drucken. Ans Ende setzen wir
+ # einen Seitenumbruch (also ein Form Feed), damit auch die letzte Seite
+ # ausgeworfen wird.
+ #
+ echo "$first_line" &amp;&amp; cat &amp;&amp; printf "\033&amp;l0H" &amp;&amp;
+exit 0
+fi
+
+exit 2</programlisting>
+
+ <para>Zuletzt m&uuml;ssen Sie <application>LPD</application>
+ noch durch die <literal>if</literal>-F&auml;higkeit &uuml;ber
+ den neuen Filter informieren:</para>
+
+ <programlisting>:if=/usr/local/libexec/ifhp:</programlisting>
- <para></para>
+ <para>Das ist alles. Ab sofort sollte sowohl ein
+ <command>lpr normaler.text</command> als auch ein
+ <command>lpr wasauchimmer.ps</command> funktionieren und beide
+ Dateien sollten problemlos gedruckt werden.</para>
</sect3>
<sect3 id="printing-advanced-convfilters">
- <title>* Konvertierungsfilter</title>
+ <title>Konvertierungsfilter</title>
- <sect4 id="printing-advanced-autoconv">
- <title>* Automatische Konvertierung: eine Alternative zu
- Konvertierungsfiltern Filters</title>
+ <para>Nachdem Sie Ihren Drucker wie unter <link
+ linkend="printing-simple">Einfache Drucker-Konfiguration</link>
+ eingerichtet haben, wollen Sie wahrscheinlich einige
+ Konvertierungsfilter installieren, damit Sie (abgesehen von
+ ASCII-Text) auch Ihre Lieblings-Dateiformate drucken
+ k&ouml;nnen.</para>
+
+ <sect4>
+ <title>Warum sollte ich einen Konvertierungsfilter
+ installieren?</title>
+
+ <indexterm>
+ <primary>&tex;</primary>
+ <secondary>DVI-Dateien drucken</secondary>
+ </indexterm>
- <para></para>
+ <para>Konvertierungsfilter erleichtern das Drucken von
+ verschiedenen Dateiformaten. Nehmen wir beispielsweise an,
+ dass Sie sehr viel mit dem &tex;-Satzsystem arbeiten und
+ &uuml;ber einen &postscript;-Drucker verf&uuml;gen. Eine
+ vom &tex;-System erzeugte DVI-Datei kann erst dann gedruckt
+ werden, nachdem diese nach &postscript; konvertiert wurde.
+ Dazu geben Sie Folgendes ein:</para>
+
+ <screen>&prompt.user; <userinput>dvips seaweed-analysis.dvi</userinput>
+&prompt.user; <userinput>lpr seaweed-analysis.ps</userinput></screen>
+
+ <para>Haben Sie einen Konvertierungsfilter f&uuml;r
+ DVI-Dateien installiert, k&ouml;nnen Sie die manuelle
+ Konvertierung &uuml;berspringen, da dies nun
+ <application>LPD</application> f&uuml;r Sie erledigt.
+ Wollen Sie eine DVI-Datei drucken, geben Sie nur noch den
+ folgenden Befehl ein:</para>
+
+ <screen>&prompt.user; <userinput>lpr -d seaweed-analysis.dvi</userinput></screen>
+
+ <para>Durch die Verwendung der Option <option>-d</option>
+ wurde <application>LPD</application> angewiesen, unsere
+ DVI-Datei vor dem Druck zu konvertieren. Der Abschnitt
+ <link linkend="printing-lpr-options-format">Formatierungs-
+ und Konvertierungsoptionen</link> beschreibt die dabei
+ m&ouml;glichen Optionen.</para>
+
+ <para>F&uuml;r jede Konvertierungsoption, die Ihr Drucker
+ unterst&uuml;tzen soll, m&uuml;ssen Sie einen eigenen
+ <emphasis>Konvertierungsfilter</emphasis> installieren und
+ dessen Pfad in der Datei <filename>/etc/printcap</filename>
+ angeben. Ein Konvertierungsfilter verh&auml;lt sich im
+ Prinzip wie ein Textfilter bei einer einfachen
+ Druckerkonfiguration (lesen Sie dazu auch den Abschnitt
+ <link linkend="printing-textfilter">Den Textfilter
+ installieren</link>), allerdings konvertiert er die Datei
+ in ein Format, das Ihr Drucker versteht, anstatt normalen
+ Text zu drucken.</para>
</sect4>
+
+ <sect4>
+ <title>Welche Konvertierungsfilter sollte ich installieren?</title>
+
+ <para>Sie sollten nur Filter installieren, die Sie auch
+ ben&ouml;tigen. Wenn Sie sehr viele DVI-Dateien drucken,
+ sollten Sie auch einen DVI-Konvertierungsfilter installieren.
+ M&uuml;ssen Sie viele troff-Daten drucken, ist ein
+ troff-Filter hilfreich.</para>
+
+ <para>Die folgende Tabelle listet die von
+ <application>LPD</application> unterst&uuml;tzten Filter
+ sowie die Eintr&auml;ge in
+ <filename>/etc/printcap</filename> auf, mit denen Sie diese
+ F&auml;higkeiten aktivieren. Zus&auml;tzlich wird
+ angegeben, wie Sie <command>lpr</command> jeweils
+ aufrufen m&uuml;ssen:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>Dateityp</entry>
+ <entry><filename>/etc/printcap</filename>-F&auml;higkeit</entry>
+ <entry><command>lpr</command>-Option</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>cifplot</entry>
+ <entry><literal>cf</literal></entry>
+ <entry><option>-c</option></entry>
+ </row>
+
+ <row>
+ <entry>DVI</entry>
+ <entry><literal>df</literal></entry>
+ <entry><option>-d</option></entry>
+ </row>
+
+ <row>
+ <entry>plot</entry>
+ <entry><literal>gf</literal></entry>
+ <entry><option>-g</option></entry>
+ </row>
+
+ <row>
+ <entry>ditroff</entry>
+ <entry><literal>nf</literal></entry>
+ <entry><option>-n</option></entry>
+ </row>
+
+ <row>
+ <entry>FORTRAN-Text</entry>
+ <entry><literal>rf</literal></entry>
+ <entry><option>-f</option></entry>
+ </row>
+
+ <row>
+ <entry>troff</entry>
+ <entry><literal>tf</literal></entry>
+ <entry><option>-f</option></entry>
+ </row>
+
+ <row>
+ <entry>Rasterdaten</entry>
+ <entry><literal>vf</literal></entry>
+ <entry><option>-v</option></entry>
+ </row>
+
+ <row>
+ <entry>Normaler Text</entry>
+ <entry><literal>if</literal></entry>
+ <entry>keine, <option>-p</option>, or
+ <option>-l</option></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Wollen Sie also <command>lpr -d</command> verwenden,
+ muss die <literal>df</literal>-F&auml;higkeit in
+ <filename>/etc/printcap</filename> aktiviert sein.</para>
+
+ <indexterm><primary>FORTRAN</primary></indexterm>
+
+ <para>Obwohl manche Leute etwas anderes behaupten, sind
+ Formate wie FORTRAN-Text und -Plot inzwischen nahezu
+ obsolet. Wenn Sie diese Formate dennoch ben&ouml;tigen,
+ installieren Sie einfach einen angepassten Filter. Wollen
+ Sie beispielsweise zwar Printerleaf-Dateien (also Dateien des
+ Desktop Publishing-Programms von Interleaf), aber keine
+ Plotdateien drucken, so k&ouml;nnen Sie einen
+ Printerleaf-Konvertierungsfilter installieren, der es durch
+ die Aktivierung der <literal>gf</literal>-F&auml;higkeit
+ erlaubt, diese Dateien direkt zu drucken. Nun m&uuml;ssen
+ Sie Ihren Mitarbeitern nur noch mitteilen, dass
+ <command>lpr -g</command> nun f&uuml;r <quote>drucke
+ Printerleaf-Dateien</quote> steht.</para>
+ </sect4>
+
+ <sect4>
+ <title>Konvertierungsfilter installieren</title>
+
+ <para>Da Konvertierungsfilter nicht zum Basissystem von FreeBSD
+ geh&ouml;ren, sollten diese unter
+ <filename>/usr/local</filename> installiert werden.
+ H&auml;ufig wird das Verzeichnis
+ <filename>/usr/local/libexec</filename> verwendet, da es
+ sich bei Konvertierungsfiltern um spezielle Programme
+ handelt, die nur von <application>LPD</application>, aber
+ nicht von einem normalen Benutzer gestartet werden.</para>
+
+ <para>Um einen Konvertierungsfilter zu aktivieren, m&uuml;ssen
+ Sie dessen Pfad zus&auml;tzlich zur ben&ouml;tigten
+ F&auml;higkeit in der Datei
+ <filename>/etc/printcap</filename> eintragen.</para>
+
+ <para>In unserem Beispiel wollen wir einen
+ DVI-Konvertierungsfilter f&uuml;r den Drucker
+ <literal>bamboo</literal> installieren. Unsere bereits
+ bekannte <filename>/etc/printcap</filename> wurde
+ allerdings um die <literal>df</literal>-F&auml;higkeit
+ f&uuml;r den Drucker <literal>bamboo</literal>
+ erweitert.</para>
+
+ <programlisting>#
+# /etc/printcap des Rechners rose - neuer df-Filter f&uuml;r 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:ms#-parenb cs8 clocal crtscts:rw:\
+ :if=/usr/local/libexec/psif:\
+ :df=/usr/local/libexec/psdf:</programlisting>
+
+ <para>Beim DVI-Filter handelt es sich um ein Shell-Skript
+ namens <filename>/usr/local/libexec/psdf</filename>:</para>
+
+ <programlisting>#!/bin/sh
+#
+# psdf - DVI-nach-PostScript Druckerfilter
+# Installiert unter: /usr/local/libexec/psdf
+#
+# Wird von lpd aktiviert, wenn der Nutzer lpr -d eingibt.
+#
+exec /usr/local/bin/dvips -f | /usr/local/libexec/lprps "$@"</programlisting>
+
+ <para>Dieses Skript startet <command>dvips</command> im
+ Filtermodus (durch das Argument <option>-f</option> wird der
+ Druckauftrag &uuml;ber die Standardeingabe entgegengenommen).
+ Danach wird der &postscript;-Druckerfilter
+ <command>lprps</command> (lesen Sie dazu auch den Abschnitt
+ <link linkend="printing-advanced-if-conversion">Drucken von
+ reinen Textdateien auf einem &postscript;-Drucker</link>)
+ mit den von <application>LPD</application> &uuml;bergebenen
+ Argumenten gestartet. <command>lprps</command> wiederum
+ nutzt diese Argumente, um die gedruckten Seiten zu
+ verrechnen.</para>
+ </sect4>
+
+ <sect4>
+ <title>Beispiele f&uuml;r Konvertierungsfilter</title>
+
+ <para>Da es keine verbindliche Prozedur zur Installation eines
+ Druckerfilters gibt, folgen nun weitere Beispiele.
+ Verwenden Sie diese, um Ihre eigenen Filter zu erstellen.
+ Falls ein Filter Ihren Anforderungen bereits entspricht,
+ k&ouml;nnen Sie ihn auch direkt verwenden.</para>
+
+ <para>Das erste Beispiel beschreibt einen
+ Konvertierungsfilter f&uuml;r GIF-Dateien f&uuml;r den
+ Drucker LaserJet III-Si von Hewlett Packard:</para>
+
+ <programlisting>#!/bin/sh
+#
+# hpvf - Konvertiert GIF-Dateien nach HP/PCL, danach wird gedruckt.
+# Installiert unter: /usr/local/libexec/hpvf
+
+PATH=/usr/X11R6/bin:$PATH; export PATH
+giftopnm | ppmtopgm | pgmtopbm | pbmtolj -resolution 300 \
+ &amp;&amp; exit 0 \
+ || exit 2</programlisting>
+
+ <para>Dieser Filter konvertiert eine GIF-Datei in eine
+ portable Anymap, diese in ein portables Graustufenbild,
+ dieses wiederum in eine portable Bitmap, die
+ schlie&szlig;lich in ein LaserJet/PCL-kompatibles Format
+ umgewandelt wird.</para>
+
+ <para><filename>/etc/printcap</filename> muss f&uuml;r einen
+ Drucker, der diesen Filter nutzen will, folgenden Eintrag
+ enthalten:</para>
+
+ <programlisting>#
+# /etc/printcap des Rechners 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:</programlisting>
+
+ <para>Das folgende Skript ist ein Konvertierungsfilter, der
+ das Drucken von troff-Daten des groff-Textsatzsystems
+ auf dem &postscript;-Drucker <literal>bamboo</literal>
+ erm&ouml;glicht:</para>
+
+ <programlisting>#!/bin/sh
+#
+# pstf - Konvertiert groff's troff-Daten nach PS, dann wird gedruckt.
+# Installiert unter: /usr/local/libexec/pstf
+#
+exec grops | /usr/local/libexec/lprps "$@"</programlisting>
+
+ <para>Dieses Skript nutzt wiederum <command>lprps</command>,
+ um mit dem Drucker zu kommunizieren. W&auml;re der Drucker
+ an einem parallelen Port angeschlossen, w&uuml;rde das Skript
+ so aussehen:</para>
+
+ <programlisting>#!/bin/sh
+#
+# pstf - Konvertiert groff's troff-Daten nach PS, danach wird gedruckt.
+# Installiert unter: /usr/local/libexec/pstf
+#
+exec grops</programlisting>
+
+ <para>Das ist alles. Um den Filter verwenden zu k&ouml;nnen,
+ m&uuml;ssen Sie ihn allerdings noch in
+ <filename>/etc/printcap</filename> aktivieren:</para>
+
+ <programlisting>:tf=/usr/local/libexec/pstf:</programlisting>
+
+ <para>Das n&auml;chste Skript ist ein FORTRAN-Textfilter
+ f&uuml;r jeden Drucker, der normalen Text direkt drucken
+ kann und der hier f&uuml;r den Drucker
+ <literal>teak</literal> installiert wird:</para>
+
+ <programlisting>#!/bin/sh
+#
+# hprf - FORTRAN-Textfilter f&uuml;r den Drucker LaserJet 3si:
+# Installiert unter: /usr/local/libexec/hprf
+#
+
+printf "\033&amp;k2G" &amp;&amp; fpr &amp;&amp; printf "\033&amp;l0H" &amp;&amp;
+ exit 0
+exit 2 </programlisting>
+
+ <para>Zus&auml;tzlich ben&ouml;tigen wir wiederum einen
+ Eintrag in <filename>/etc/printcap</filename>, um diesen
+ Filter f&uuml;r den Drucker <literal>teak</literal> zu
+ aktivieren:</para>
+
+ <programlisting>:rf=/usr/local/libexec/hprf:</programlisting>
+
+ <para>Das letzte Beispiel ist etwas komplexer. Es soll ein
+ DVI-Filter f&uuml;r den bereits erw&auml;hnten
+ LaserJet-Drucker <literal>teak</literal> installiert werden.
+ Der erste Teil ist einfach: Sie m&uuml;ssen den Pfad des
+ DVI-Filters in <filename>/etc/printcap</filename>
+ eintragen:</para>
+
+ <programlisting>:df=/usr/local/libexec/hpdf:</programlisting>
+
+ <para>Nun kommt der schwierige Teil: Sie m&uuml;ssen den
+ Filter funktionsf&auml;hig machen. Dazu ben&ouml;tigen Sie
+ einen DVI-nach-LaserJet/PCL-Konverter.
+ Gl&uuml;cklicherweise enth&auml;lt die FreeBSD
+ <link linkend="ports">Ports-Sammlung</link> mit
+ <command>dvi2xx</command> ein solches Programm. Nach der
+ Installation des Ports verf&uuml;gen wir &uuml;ber das
+ Programm <command>dvilj2p</command>, das zur Konvertierung
+ von DVI-Daten in zu den Druckern LaserJet IIp, LaserJet III,
+ sowie LaserJet 2000 kompatible Codes ben&ouml;tigt wird.</para>
+
+ <para>Durch den Einsatz von <command>dvilj2p</command> wird
+ der Filter <command>hpdf</command> relativ komplex, da
+ <command>dvilj2p</command> nicht von der Standardeingabe
+ lesen kann, sondern als Eingabe einen Dateinamen erwartet.
+ Zus&auml;tzlich muss der Dateiname auf
+ <filename>.dvi</filename> enden, daher ist die Verwendung
+ von <filename>/dev/fd/0</filename> als Standardeingabe
+ problematisch. Wir k&ouml;nnen diese Problem aber umgehen,
+ indem wir einen tempor&auml;ren Dateinamen symbolisch
+ nach <filename>/dev/fd/0</filename> linken. Dadurch wird
+ <command>dvilj2p</command> gezwungen, dennoch von der
+ Standardeingabe zu lesen.</para>
+
+ <para>Das letzte Problem, das wir noch l&ouml;sen m&uuml;ssen,
+ ist, dass wir <filename>/tmp</filename> nicht als
+ tempor&auml;ren Link verwenden k&ouml;nnen. Symbolische
+ Links geh&ouml;ren dem User sowie der Gruppe
+ <username>bin</username>. Der Filter l&auml;uft aber als
+ User <username>daemon</username>. Au&szlig;erdem ist
+ <filename>/tmp</filename> durch ein Sticky-Bit gesichert.
+ Daher kann der Filter den Link zwar erzeugen, ein
+ Aufr&auml;umen ist aber nicht mehr m&ouml;glich, weil sich
+ die Eigent&uuml;mer des Filters und des tempor&auml;ren
+ Verzeichnisses unterscheiden.</para>
+
+ <para>Daher legt der Filter den symbolischen Link im
+ Arbeitsverzeichnis an, das gleichzeitig als
+ Spooling-Verzeichnis dient (festgelegt durch die Aktivierung
+ der <literal>sd</literal>-F&auml;higkeit in
+ <filename>/etc/printcap</filename>). Das Arbeitsverzeichnis
+ ist ein idealer Ort f&uuml;r den Filter, insbesondere da
+ dieses (manchmal) sogar &uuml;ber mehr freien Speicherplatz
+ als <filename>/tmp</filename> verf&uuml;gt.</para>
+
+ <para>Mit diesen Informationen sind wir nun in der Lage, den
+ Filter zu entwickeln:</para>
+
+ <programlisting>#!/bin/sh
+#
+# hpdf - DVI-Daten auf einen HP/PCL-Drucker drucken
+# Installiert unter: /usr/local/libexec/hpdf
+
+PATH=/usr/local/bin:$PATH; export PATH
+
+#
+# Eine Funktion zum Aufr&auml;umen unserer tempor&auml;ren Dateien.
+# Diese finden sich im Arbeitsverzeichnis, das wir auch als
+# Spooling-Verzeichnis f&uuml;r unseren Drucker verwenden werden.
+#
+cleanup() {
+ rm -f hpdf$$.dvi
+}
+
+#
+# Eine Funktion, um fatale Fehler zu behandeln. Dazu die Meldung
+# ausgeben, danach ein exit 2. Dadurch wei&szlig; LPD, dass es
+# den Auftrag nicht noch einmal drucken soll.
+#
+fatal() {
+ echo "$@" 1&gt;&amp;2
+ cleanup
+ exit 2
+}
+
+#
+# Wenn ein Anwender den Auftrag entfernt, sendet LPD ein SIGINT, daher
+# wollen wir SIGINT und einige andere Signale abfangen (trappen), um
+# nach der Konvertierung aufr&auml;umen zu k&ouml;nnen.
+#
+trap cleanup 1 2 15
+
+#
+# Bevor wir anfangen, r&auml;umen wir noch auf. Sicher ist sicher.
+#
+cleanup
+
+#
+# Die DVI-Eingabedatei auf die Standardeingabe linken (die zu druckende
+# Datei).
+#
+ln -s /dev/fd/0 hpdf$$.dvi || fatal "Konnte Symlink nicht anlegen!"
+
+#
+# Umwandeln: LF = CR+LF
+#
+printf "\033&amp;k2G" || fatal "Konnte Drucker nicht initialisieren!"
+
+#
+# Konvertieren und drucken. Da der R&uuml;ckgabewert von dvilj2p
+# unzuverl&auml;ssig ist, ignorieren wir ihn einfach.
+#
+dvilj2p -M1 -q -e- dfhp$$.dvi
+
+#
+# Aufr&auml;umen und beenden.
+#
+cleanup
+exit 0 </programlisting>
+ </sect4>
+
+ <sect4 id="printing-advanced-autoconv">
+ <title>Automatische Konvertierung: Eine Alternative zu
+ Konvertierungsfiltern</title>
+
+ <para>Alle in diesem Abschnitt besprochenen
+ Konvertierungsfilter sind zwar sehr hilfreich, allerdings
+ m&uuml;ssen Sie nach wie vor bei jedem Aufruf von
+ &man.lpr.1; angeben, welchen Filter sie verwenden wollen,
+ was mit der Zeit sicher nervend wird. Schlimmer ist
+ allerdings, dass die Auswahl eines unpassenden Filters
+ dazu f&uuml;hren kann, dass Sie Hunderte Seiten Papier
+ ausdrucken.</para>
+
+ <para>Statt also Konvertierungsfilter zu installieren,
+ k&ouml;nnten Sie den Textfilter (der ohnehin der
+ Standardfilter ist) verwenden, um den zu druckenden
+ Dateityp zu erkennen und anschlie&szlig;end den korrekten
+ Konvertierungsfilter auszuw&auml;hlen. Um den Dateityp
+ zu bestimmen, k&ouml;nnen Sie beispielsweise
+ <command>file</command> verwenden. Leider ist es
+ bei <emphasis>einigen</emphasis> Dateitypen problematisch,
+ diese zu unterscheiden. Daher k&ouml;nnten Sie f&uuml;r
+ diese Dateitypen dennoch einen Konvertierungsfilter
+ installieren.</para>
+
+ <indexterm><primary>apsfilter</primary></indexterm>
+
+ <indexterm>
+ <primary>Drucken</primary>
+ <secondary>Filter</secondary>
+ <tertiary>apsfilter</tertiary>
+ </indexterm>
+
+ <para>Die FreeBSD Ports-Sammlung enth&auml;lt mit
+ <command>apsfilter</command> einen Textfilter, der diese
+ automatische Konvertierung durchf&uuml;hren kann. Er ist
+ in der Lage, normalen Text sowie &postscript;- und
+ DVI-Dateien zu erkennen, diese zu konvertieren und auf
+ Ihren Drucker auszugeben.</para>
+ </sect4>
</sect3>
<sect3 id="printing-advanced-of">
- <title>* Ausgabefilter</title>
-
- <para></para>
+ <title>Ausgabefilter</title>
+
+ <para><application>LPD</application> unterst&uuml;tzt noch eine
+ weitere Filterart, die sogenannten Ausgabefilter. Diese sind
+ &ndash;&nbsp;analog zu einem Textfilter&nbsp;&ndash;&nbsp;
+ f&uuml;r den Druck von normalem Text ausgelegt, allerdings
+ verf&uuml;gen sie im Vergleich zu diesen nur &uuml;ber
+ sehr eingeschr&auml;nkte F&auml;higkeiten. Wenn Sie einen
+ Ausgabefilter (aber keinen Textfilter) verwenden, dann</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>startet <application>LPD</application> nur einen
+ Ausgabefilter f&uuml;r den kompletten Druckauftrag, statt
+ f&uuml;r jede Datei des Auftrags einen eigenen Filter zu
+ starten.</para>
+ </listitem>
+
+ <listitem>
+ <para>k&uuml;mmert sich <application>LPD</application> nicht
+ darum, den Beginn oder das Ende einer Datei innerhalb des
+ Druckauftrages zu finden.</para>
+ </listitem>
+
+ <listitem>
+ <para>&uuml;bergibt <application>LPD</application> weder
+ den Benutzer- noch den Rechnernamen desjenigen, der den
+ Druckauftrag erteilt hat, an den Ausgabefilter, was
+ eine Verrechnung von Druckauftr&auml;gen unm&ouml;glich
+ macht. Ausgabefilter unterst&uuml;tzen insgesamt nur
+ zwei Argumente:</para>
+
+ <cmdsynopsis>
+ <command>filter-name</command>
+ <arg choice="plain">-w<replaceable>width</replaceable></arg>
+ <arg choice="plain">-l<replaceable>length</replaceable></arg>
+ </cmdsynopsis>
+
+ <para><replaceable>width</replaceable> basiert auf der
+ <literal>pw</literal>-F&auml;higkeit,
+ <replaceable>length</replaceable> hingegen auf der
+ <literal>pl</literal>-F&auml;higkeit des gew&auml;hlten
+ Druckers.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Lassen Sie sich von dieser angeblichen Einfachheit eines
+ Ausgabefilters nicht t&auml;uschen. Ausgabefilter sind
+ beispielsweise <emphasis>nicht dazu in der Lage</emphasis>,
+ jede Datei eines Druckauftrages auf einer neuen Seite zu
+ drucken. Dazu ben&ouml;tigen Sie einen Textfilter (die im
+ Abschnitt <link linkend="printing-textfilter">Den Textfilter
+ installieren</link> beschrieben werden). Au&szlig;erdem
+ sind Ausgabefilter in Wirklichkeit
+ <emphasis>komplexer</emphasis>, da sie den gesendeten
+ Bytestrom nicht nur auf Sonderzeichen hin untersuchen
+ m&uuml;ssen, sondern auch die &Uuml;bertragung von Signalen
+ f&uuml;r <application>LPD</application> &uuml;bernehmen
+ m&uuml;ssen.</para>
+
+ <para>Sie <emphasis>ben&ouml;tigen</emphasis> Ausgabefilter
+ aber dann, wenn Sie Deckbl&auml;tter drucken wollen, da
+ dazu Escape-Sequenzen und Initialisierungsstrings
+ erforderlich sind. (Es ist allerdings <emphasis>nicht
+ m&ouml;glich</emphasis>, den Druck dieser Deckbl&auml;tter
+ zu verrechnen, da <application>LPD</application>
+ keine Benutzer- oder Rechnerinformationen an den
+ Ausgabefilter &uuml;bergibt.)</para>
+
+ <para><application>LPD</application> kann f&uuml;r den gleichen
+ Drucker sowohl Ausgabefilter als auch Textfilter verwenden.
+ In solchen F&auml;llen verwendet <application>LPD</application>
+ den Ausgabefilter nur f&uuml;r den Druck von Deckbl&auml;ttern
+ (die im Abschnitt <link
+ linkend="printing-advanced-header-pages">Deckbl&auml;tter</link>
+ n&auml;her beschrieben werden). Nach dem Druck des Deckblattes
+ erwartet <application>LPD</application>, dass sich der
+ Ausgabefilter <emphasis>selbst beendet</emphasis>. Dazu werden
+ zwei Bytes an den Ausgabefilter gesendet: ASCII 031, gefolgt
+ von ASCII 001. Wenn ein Ausgabefilter diese zwei Bytes
+ (031, 001) empf&auml;ngt, sendet er das Signal
+ <literal>SIGSTOP</literal> an sich selbst. Nachdem
+ <application>LPD</application> den Rest des Druckauftrages
+ erledigt hat, wird der Ausgabefilter erneut gestartet, indem
+ ein <literal>SIGCONT</literal> an den Ausgabefilter
+ gesendet wird.</para>
+
+ <para>Haben Sie nur einen Ausgabefilter, aber
+ <emphasis>keinen</emphasis> Textfilter installiert, dann
+ verwendet <application>LPD</application> den Ausgabefilter auch
+ f&uuml;r den Druck von normalem Text. Wie bereits erw&auml;hnt,
+ werden dabei allerdings alle Dateien des Druckauftrags unmittelbar
+ hintereinander gedruckt, Seitenumbr&uuml;che oder ein
+ zus&auml;tzlicher Papiervorschub sind also nicht m&ouml;glich.
+ Da dieses Verhalten von Ihnen wahrscheinlich
+ <emphasis>nicht</emphasis> gew&uuml;nscht wird, werden Sie in
+ fast allen F&auml;llen einen zus&auml;tzlichen Textfilter
+ ben&ouml;tigen.</para>
+
+ <para>Der weiter oben beschriebene Textfilter
+ <command>lpf</command> kann auch als Ausgabefilter verwendet
+ werden. Wenn Sie nur einen funktionierenden Ausgabefilter
+ ben&ouml;tigen, aber nicht den daf&uuml;r ben&ouml;tigten
+ Code (zur Zeichenerkennung und zum Senden von Signalen)
+ schreiben wollen, sollten Sie sich <command>lpf</command>
+ n&auml;her ansehen. Sie k&ouml;nnen <command>lpf</command>
+ auch in ein Shell-Skript einbinden, um von Ihrem Drucker
+ ben&ouml;tigte Initialisierungscodes zu verarbeiten.</para>
</sect3>
<sect3 id="printing-advanced-lpf">
- <title>* <command>lpf</command>: Ein Textfilter</title>
-
- <para></para>
+ <title><command>lpf</command>: Ein Textfilter</title>
+
+ <para>Der Textfilter (Eingabefilter)
+ <filename>/usr/libexec/lpr/lpf</filename> wird bereits mit
+ FreeBSD geliefert. Er erlaubt das Einr&uuml;cken der
+ Ausgabe (&uuml;ber <command>lpr -i</command>), die
+ &Uuml;bergabe von Zeichen-Literalen
+ (&uuml;ber <command>lpr -l</command>), das Anpassen der
+ Druckposition bei gel&ouml;schten Zeichen
+ (<foreignphrase>Backspaces</foreignphrase>) oder Tabulatoren,
+ sowie die Verrechnung gedruckter Seiten. Zus&auml;tzlich
+ kann dieser Textfilter auch als Ausgabefilter arbeiten.</para>
+
+ <para><command>lpf</command> ist f&uuml;r viele verschiedene
+ Druckumgebungen geeignet. Zwar ist dieser Textfilter nicht
+ in der Lage, Initialisierungssequenzen an einen Drucker
+ zu senden, dieses Problem kann allerdings durch das Schreiben
+ und Ausf&uuml;hren eines Shell-Skripts (das diese Funktion
+ &uuml;bernimmt) und das anschlie&szlig;ende Aufrufen von
+ <command>lpf</command> gel&ouml;st werden.</para>
+
+ <indexterm><primary>Seiten verrechnen</primary></indexterm>
+ <indexterm>
+ <primary>verrechnen</primary>
+ <secondary>Druckernutzung</secondary>
+ </indexterm>
+
+ <para>Damit Sie <command>lpf</command> f&uuml;r die Verrechnung
+ von Druckauftr&auml;gen einsetzen k&ouml;nnen, m&uuml;ssen Sie
+ die korrekten Werte f&uuml;r die <literal>pw</literal>- und
+ <literal>pl</literal>-F&auml;higkeiten in
+ <filename>/etc/printcap</filename> eintragen.
+ <command>lpf</command> verwendet diese Werte, um festzustellen,
+ wieviel Text auf eine Seite passt und wieviele Seiten im
+ Druckauftrag enthalten sind. Weitere Informationen zur
+ Verrechnung der Druckernutzung enth&auml;lt der Abschnitt
+ <link linkend="printing-advanced-acct">Die Druckernutzung
+ verrechnen</link>.</para>
</sect3>
</sect2>
<sect2 id="printing-advanced-header-pages">
- <title>* Titelseiten</title>
+ <title>Deckbl&auml;tter</title>
+
+ <para>Wenn Sie <emphasis>viele</emphasis> Benutzer mit
+ verschiedenen Druckern verwalten m&uuml;ssen, sollten Sie
+ <emphasis>Deckbl&auml;tter</emphasis> als notwendiges
+ &Uuml;bel akzeptieren.</para>
+
+ <indexterm>
+ <primary>Bannerseiten</primary>
+ <see>Deckbl&auml;tter</see>
+ </indexterm>
+
+ <indexterm><primary>Deckbl&auml;tter</primary></indexterm>
+
+ <para>Deckbl&auml;tter (manchmal auch als
+ <emphasis>Bannerseiten</emphasis> oder
+ <emphasis>burst pages</emphasis> bezeichnet) geben an, wem
+ die Ausgabe eines Druckauftrags geh&ouml;rt. Sie werden
+ normalerweise in gro&szlig;en fetten Buchstaben gedruckt,
+ manchmal sogar mit zus&auml;tzlicher Umrandung, damit man
+ sie leichter von den tats&auml;chlichen Seiten eines
+ Druckauftrages unterscheiden kann. Der Nachteil von
+ Deckbl&auml;ttern ist allerdings, dass es sich dabei um
+ eine zus&auml;tzliche zu druckende Seite handelt, die in
+ der Regel bereits nach wenigen Minuten wieder im Papierkorb
+ landet. Da aber f&uuml;r jeden Druckauftrag nur ein einziges
+ Deckblatt gedruckt wird, ist der Papierverbrauch in den
+ meisten F&auml;llen tolerierbar.</para>
+
+ <para>Das <application>LPD</application>-System kann
+ Deckbl&auml;tter automatisch erzeugen, <emphasis>wenn</emphasis>
+ Ihr Drucker normalen Text direkt drucken kann. Haben Sie
+ hingegen einen &postscript;-Drucker, ben&ouml;tigen Sie ein
+ externes Programm, um die Deckbl&auml;tter zu generieren
+ (Lesen Sie dazu auch den Abschnitt <link
+ linkend="printing-advanced-header-pages-ps">Deckbl&auml;tter
+ auf &postscript;-Druckern erzeugen</link>.).</para>
<sect3 id="printing-advanced-header-pages-enabling">
- <title>* Titelseiten aktivieren</title>
+ <title>Deckbl&auml;tter aktivieren</title>
+
+ <para>Im Abschnitt <link linkend="printing-simple">Einfache
+ Drucker-Konfiguration</link> haben wir die Ausgabe von
+ Deckbl&auml;ttern durch die die Angabe der Option
+ <literal>sh</literal>
+ (<foreignphrase>suppress header</foreignphrase>) in
+ <filename>/etc/printcap</filename> deaktiviert. Um die
+ Ausgabe von Deckbl&auml;ttern wieder zu aktivieren,
+ m&uuml;ssen Sie daher die <literal>sh</literal>-F&auml;higkeit
+ wieder entfernen.</para>
+
+ <para>Das klingt zu einfach? Wo ist der Haken?</para>
+
+ <para>Sie haben recht. Es ist <emphasis>m&ouml;glich</emphasis>,
+ dass Sie einen Ausgabefilter verwenden m&uuml;ssen, um die
+ n&ouml;tigen Initialisierungsstrings an den Drucker zu senden.
+ Das folgende Beispiel beschreibt einen Ausgabefilter f&uuml;r
+ PCL-kompatible Drucker von Hewlett Packard:</para>
+
+ <programlisting>#!/bin/sh
+#
+# hpof - Ausgabefilter f&uuml;r PCL-kompatible Drucker von Hewlett Packard
+# Installiert unter: /usr/local/libexec/hpof
+
+printf "\033&amp;k2G" || exit 2
+exec /usr/libexec/lpr/lpf</programlisting>
- <para></para>
+ <para>Geben Sie den Pfad des Ausgabefilters &uuml;ber die
+ <literal>of</literal>-F&auml;higkeit an. Weitere Informationen
+ finden Sie im Abschnitt <link
+ linkend="printing-advanced-of">Ausgabefilter</link>.</para>
+
+ <para>Das n&auml;chste Beispiel beschreibt die Datei
+ <filename>/etc/printcap</filename> des bereits erw&auml;hnten
+ Druckers <literal>teak</literal>. Allerdings sind nun die
+ Ausgabe von Deckbl&auml;ttern sowie der vorhin beschriebene
+ Ausgabefilter enthalten:</para>
+
+ <programlisting>#
+# /etc/printcap f&uuml;r den Rechner 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:</programlisting>
+
+ <para>Wenn ein Anwender nun einen Druckauftrag an den Drucker
+ <literal>teak</literal> schickt, wird f&uuml;r jeden
+ Druckauftrag ein Deckblatt erstellt. Ben&ouml;tigt ein
+ Anwender keine Deckbl&auml;tter, kann er die Ausgabe dieser
+ Seiten durch die Verwendung von <command>lpr&nbsp;-h</command>
+ unterdr&uuml;cken. Weitere, f&uuml;r die Ausgabe von
+ Deckbl&auml;ttern interessante &man.lpr.1;-Optionen finden
+ Sie im Abschnitt <link
+ linkend="printing-lpr-options-misc">Deckblattoptionen</link>.</para>
+
+ <note>
+ <para><application>LPD</application> verwendet ein
+ <foreignphrase>Form Feed</foreignphrase>, um das Deckblatt
+ abzuschlie&szlig;en. Wenn Ihr Drucker ein anderes Zeichen
+ verwendet, um eine Seite auszuwerfen, geben Sie dieses
+ &uuml;ber die <literal>ff</literal>-F&auml;higkeit in
+ <filename>/etc/printcap</filename> an.</para>
+ </note>
</sect3>
- <sect3 id="printing-advanced-header-pages-accounting">
- <title>* Abrechnung von Titelseiten</title>
+ <sect3 id="printing-advanced-header-pages-controlling">
+ <title>Deckbl&auml;tter kontrollieren</title>
+
+ <para>Haben Sie die Ausgabe von Deckbl&auml;ttern aktiviert,
+ gibt <application>LPD</application> eine ganze Seite in
+ gro&szlig;en Buchstaben aus, die den Anwender, den
+ verwendeten Rechner sowie den Druckauftrag beschreiben.
+ Das folgende Beispiel ist ein Deckblatt f&uuml;r den
+ Druckauftrag outline, der von kelly auf dem Rechner
+ <hostid>rose</hostid> erstellt wurde:</para>
+
+ <programlisting> 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
- <para></para>
+
+
+
+
+
+
+ Job: outline
+ Date: Sun Sep 17 11:04:58 1995</programlisting>
+
+ <para><application>LPD</application> f&uuml;gt ein
+ <foreignphrase>Form Feed</foreignphrase> an diesen Text an,
+ damit der eigentliche Druckauftrag auf einer neuen Seite
+ gestartet wird (es sei denn, Sie haben die
+ <literal>sf</literal>-F&auml;higkeit (<foreignphrase>suppress
+ form feeds</foreignphrase>) des jeweiligen Druckers in
+ <filename>/etc/printcap</filename> aktiviert).</para>
+
+ <para>Wenn Sie dies w&uuml;schen, kann
+ <application>LPD</application> auch nur ein <emphasis>kurzes
+ Deckblatt</emphasis> ausgeben. Dazu verwenden Sie die
+ Option <literal>sb</literal>
+ (<foreignphrase>short banner</foreignphrase>)
+ in <filename>/etc/printcap</filename>. Dadurch erhalten Sie
+ ein Deckblatt &auml;hnlich dem folgenden:</para>
+
+ <programlisting>rose:kelly Job: outline Date: Sun Sep 17 11:07:51 1995</programlisting>
+
+ <para>In der Voreinstellung druckt <application>LPD</application>
+ zuerst das Deckblatt und danach den eigentlichen Druckauftrag.
+ Um diese Reihenfolge umzukehren, geben Sie die Option
+ <literal>hl</literal> (<foreignphrase>header
+ last</foreignphrase>) in <filename>/etc/printcap</filename>
+ ans.</para>
+ </sect3>
+
+ <sect3 id="printing-advanced-header-pages-accounting">
+ <title>Deckbl&auml;tter verrechnen</title>
+
+ <para>Wenn Sie die in <application>LPD</application> eingebaute
+ Funktion zur Erstellung von Deckbl&auml;ttern verwenden,
+ werden Sie auf folgendes Paradigma sto&szlig;en:
+ Deckbl&auml;tter m&uuml;ssen <emphasis>kostenlos</emphasis>
+ sein.</para>
+
+ <para>Warum ist das so?</para>
+
+ <para>Weil der Ausgabefilter das einzige externe Programm ist,
+ das zum Zeitpunkt der Erstellung des Deckblatts eine
+ Verrechnung durchf&uuml;hren k&ouml;nnte. Da Ausgabefilter
+ aber weder &uuml;ber <emphasis>Benutzer- noch &uuml;ber
+ Rechnerinformationen</emphasis> verf&uuml;gen, ist es nicht
+ m&ouml;glich, einen Druckauftrag einem bestimmten Benutzer
+ zuzuordnen. Da ein Benutzer die Ausgabe von Deckbl&auml;ttern
+ &uuml;ber <command>lpr -h</command> unterdr&uuml;cken kann,
+ ist es auch nicht m&ouml;glich, die Vorgabe <quote>verrechne
+ eine zus&auml;tzliche Seite</quote> in den Text- oder
+ Konvertierungsfilter (die &uuml;ber die zur Verrechnung
+ n&ouml;tigen Benutzer- und Rechnerinformationen verf&uuml;gen)
+ aufzunehmen, weil Benutzer sonst f&uuml;r Deckbl&auml;tter
+ bezahlen m&uuml;ssten, die sie nicht gedruckt haben.</para>
+
+ <para>Es ist <emphasis>ebenfalls nicht ausreichend</emphasis>,
+ jeden Filter eigene Deckbl&auml;tter erzeugen zu lassen (und
+ sie dadurch verrechnen zu k&ouml;nnen). Wollte ein Benutzer
+ durch ein <command>lpr -h</command> die Ausgabe eines
+ Deckblattes unterdr&uuml;cken, w&uuml;rde dieses nun trotzdem
+ verrechnet werden, da <application>LPD</application> keine
+ Informationen &uuml;ber die Verwendung der Option
+ <option>-h</option> an einen Filter weitergibt.</para>
+
+ <para>Welche M&ouml;glichkeiten habe ich nun?</para>
+
+ <para>Sie k&ouml;nnen:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Das Paradigma von <application>LPD</application>
+ einfach akzeptieren und die Deckbl&auml;tter gratis
+ abgeben.</para>
+ </listitem>
+
+ <listitem>
+ <para>Eine alternatives Drucksystem wie
+ <application>LPRng</application> installieren. Der
+ Abschnitt <link linkend="printing-lpd-alternatives">
+ Alternativen zum Standard-Drucksystem</link> beschreibt
+ verschiedene Drucksysteme, die
+ <application>LPD</application> ersetzen k&ouml;nnen.</para>
+ </listitem>
+
+ <listitem>
+ <para>Schreiben Sie einen <emphasis>intelligenten</emphasis>
+ Ausgabefilter. Normalerweise k&uuml;mmert sich ein
+ Ausgabefilter nur um die Initialisierung des Druckers oder
+ um eine einfache Zeichenkonvertierung. Au&szlig;erdem
+ eignet er sich f&uuml;r die Ausgabe von Deckbl&auml;ttern
+ und normalem Text, wenn Sie keinen Text- oder Eingabefilter
+ installiert haben. Haben Sie allerdings einen Textfilter
+ installiert, verwendet <application>LPD</application>
+ Ausgabefilter nur f&uuml;r die Ausgabe von Deckbl&auml;ttern.
+ Ein Ausgabefilter kann den Text des von
+ <application>LPD</application> erzeugten Deckblattes
+ untersuchen, um festzustellen, welcher Benutzer und welcher
+ Rechner den Druckauftrag gestartet hat. Leider wei&szlig;
+ der Ausgabefilter auch mit dieser Methode nicht, welche
+ Datei er zur Verrechnung verwenden soll (da der Name dieser
+ Datei durch die <literal>af</literal>-F&auml;higkeit
+ &uuml;bergeben wird). Wenn Sie eine
+ Standard-Verrechnungsdatei verwenden, k&ouml;nnen Sie diese
+ in den Ausgabefilter einbauen. Um den Text des Deckblattes
+ zu untersuchen, verwenden Sie die
+ <literal>sh</literal>-F&auml;higkeit
+ (<foreignphrase>short header</foreignphrase>) in
+ <filename>/etc/printcap</filename>. Falls Ihnen das zuviel
+ Aufwand ist, freuen sich Ihre Benutzer sicher dar&uuml;ber,
+ wenn Sie ihnen den kostenlosen Druck von Deckbl&auml;ttern
+ erlauben.</para>
+ </listitem>
+ </itemizedlist>
</sect3>
<sect3 id="printing-advanced-header-pages-ps">
- <title>* Titelseiten auf &postscript;-Druckern</title>
+ <title>Deckbl&auml;tter auf &postscript;-Druckern ausgeben</title>
+
+ <para>In der Regel erzeugt
+ <application>LPD</application> ein Deckblatt mit normalem Text,
+ das f&uuml;r viele verschiedene Drucker geeignet ist.
+ Da &postscript;-Drucker normalen Text aber nicht drucken
+ k&ouml;nnen, ist die <application>LPD</application>-Funktion
+ zur Erstellung von Deckbl&auml;ttern auf diesen Drucker relativ
+ sinnlos.</para>
+
+ <para>Es sei denn, jeder Text- und Konvertierungsfilter erzeugt
+ &uuml;ber den Benutzer- und Rechnernamen sein eigenes, f&uuml;r
+ den jeweiligen Drucker geeignetes Deckblatt. Das Problem
+ dieser Methode ist allerdings, dass ein Anwender auch dann ein
+ Deckblatt erh&auml;lt, wenn er dies &uuml;ber
+ <command>lpr -h</command> verhindern wollte.</para>
+
+ <para>Das folgende Skript ben&ouml;tigt drei Argumente (den
+ Loginnamen des Benutzers, den Rechnernamen und den Namen
+ des Druckauftrages), um daraus ein einfaches
+ &postscript;-Deckblatt zu erzeugen:</para>
+
+ <programlisting>#!/bin/sh
+#
+# make-ps-header - ein PostScript-Deckblatt auf stdout ausgeben
+# Installiert unter: /sr/local/libexec/make-ps-header
+#
+
+#
+# Die folgenden Werte sind PostScript-Einheiten (72 pro Zoll).
+# Passen Sie diese Werte f&uuml;r A4 oder die von Ihnen verwendete
+# Papiergr&ouml;&szlig;e an:
+#
+page_width=612
+page_height=792
+border=72
+
+#
+# Argumente pr&uuml;fen
+#
+if [ $# -ne 3 ]; then
+ echo "Usage: `basename $0` &lt;user&gt; &lt;host&gt; &lt;job&gt;" 1&gt;&amp;2
+ exit 1
+fi
+
+#
+# Diese Werte in Variablen speichern, damit der PostScript-Code
+# &uuml;bersichtlicher wird.
+#
+user=$1
+host=$2
+job=$3
+date=`date`
+
+#
+# Sende den PostScript-Code an stdout.
+#
+exec cat &lt;&lt;EOF
+%!PS
+
+%
+% Sicherstellen, dass es keine unerw&uuml;nschten Wechselwirkungen mit
+% dem folgenden Druckauftrag gibt.
+%
+save
+
+%
+% Ziehe eine fette Umrandung.
+%
+$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
+
+%
+% Zeige den Benutzernamen gro&szlig; und fett an.
+%
+/Helvetica-Bold findfont 64 scalefont setfont
+$page_width ($user) stringwidth pop sub 2 div $page_height 200 sub moveto
+($user) show
+
+%
+% Und nun zeige noch die Einzelheiten an.
+%
+/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
+
+%
+% Das wars.
+%
+restore
+showpage
+EOF </programlisting>
+
+ <para>Nun kann jeder Konvertierungs- oder Textfilter dieses
+ Skript aufrufen, um zuerst das Deckblatt zu erzeugen und
+ danach den Druckauftrag zu drucken. Das n&auml;chste
+ Beispiel enth&auml;lt den bereits beschriebenen
+ DVI-Konvertierungsfilter, der hier um die Funktion zur
+ Erzeugung eines Deckblatts erweitert wurde:</para>
+
+ <programlisting>#!/bin/sh
+#
+# psdf - DVI-nach-PostScript - Druckerfilter
+# Installiert unter: /usr/local/libexec/psdf
+#
+# Wird von lpd aufgerufen, wenn der Benutzer lpr -d verwendet.
+#
- <para></para>
+orig_args="$@"
+
+fail() {
+ echo "$@" 1&gt;&amp;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&gt;&amp;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</programlisting>
+
+ <para>Beachten Sie, dass der Filter die Liste der Argumente
+ &uuml;berpr&uuml;ft, um den Benutzer- und den Rechnernamen
+ zu ermitteln. Dieser Vorgang ist prinzipiell f&uuml;r alle
+ Filter identisch. Der Textfilter ben&ouml;tigt allerdings
+ etwas andere Argumente, die im Abschnitt <link
+ linkend="printing-advanced-filters">Die Funktionsweise von
+ Filtern</link> beschrieben werden.</para>
+
+ <para>Wie bereits erw&auml;hnt, deaktiviert diese Methode
+ leider die <quote>suppress header page</quote>-Option
+ (also die Option <option>-h</option>) von
+ <command>lpr</command>. Benutzer k&ouml;nnen danach den
+ Ausdruck eines Deckblattes nicht mehr verhindern, da der
+ angepasste Filter zu jedem Druckauftrag automatisch ein
+ Deckblatt erstellt.</para>
+
+ <para>Damit ein Benutzer bei Bedarf den Ausdruck eines
+ Deckblatts dennoch unterbinden kann, m&uuml;ssen Sie
+ auch hier den im Abschnitt <link
+ linkend="printing-advanced-header-pages-accounting">
+ Deckbl&auml;tter verrechnen</link> beschriebenen
+ Trick einsetzen: Schreiben Sie einen Ausgabefilter, der
+ das von LPD erzeugte Deckblatt untersucht und daraus
+ eine &postscript;-Version erzeugt. Wenn der Benutzer
+ den Druckauftrag mit <command>lpr -h</command> verschickt,
+ erzeugt <application>LPD</application> kein Deckblatt, was
+ in weiterer Folge auch f&uuml;r Ihren Ausgabefilter gilt.
+ Soll hingegen ein Deckblatt erzeugt werden, liest der
+ Ausgabefilter den von <application>LPD</application>
+ &uuml;bergebenen Text und erzeugt daraus ein f&uuml;r
+ Ihren &postscript;-Drucker geeignetes Deckblatt.</para>
+
+ <para>Haben Sie Ihren &postscript;-Drucker &uuml;ber eine
+ serielle Verbindung angeschlossen, k&ouml;nnen Sie auch
+ <command>lprps</command> verwenden. In diesem Paket ist
+ mit <command>psof</command> auch ein Ausgabefilter
+ enthalten, der die eben beschriebenen Funktionen
+ &uuml;bernehmen kann. Beachten Sie aber, dass Sie mit
+ <command>psof</command> keine Deckbl&auml;tter verrechnen
+ k&ouml;nnen.</para>
</sect3>
</sect2>
<sect2 id="printing-advanced-network-printers">
- <title>* Drucken im Netzwerk</title>
+ <title>Drucken &uuml;ber ein Netzwerk</title>
+
+ <indexterm>
+ <primary>Drucker</primary>
+ <secondary>Netzwerk</secondary>
+ </indexterm>
+
+ <indexterm><primary>Netzwerkdruck</primary></indexterm>
+
+ <para>FreeBSD unterst&uuml;tzt das Drucken &uuml;ber ein
+ Netzwerk, also den Versand von Druckauftr&auml;gen an einen
+ entfernten Drucker. Man unterscheidet dabei zwei
+ M&ouml;glichkeiten:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Den Zugriff auf einen an einem entfernten Rechner
+ angeschlossenen Drucker. Sie konfigurieren dabei auf Ihrem
+ System einen Drucker, der &uuml;ber eine konventionelle
+ serielle oder parallele Verbindung an einem anderen Rechner
+ angeschlossen ist. Danach richten Sie
+ <application>LPD</application> auf dem entfernten System
+ so ein, dass andere Drucker &uuml;ber das Netzwerk auf
+ diesen Drucker zugreifen k&ouml;nnen. Der Abschnitt
+ <link linkend="printing-advanced-network-rm">Auf entfernten
+ Rechnern installierte Drucker</link> beschreibt, wie Sie
+ dazu vorgehen m&uuml;ssen.</para>
+ </listitem>
+
+ <listitem>
+ <para>Den Zugriff auf einen direkt an ein Netzwerk
+ angeschlossenen Drucker. Ein solcher Drucker verf&uuml;gt
+ anstelle (oder zus&auml;tzlich zu) einer parallelen oder
+ seriellen Schnittstelle &uuml;ber eine Netzwerkschnittstelle.
+ Ein solcher Drucker kann sich auf zwei Arten verhalten:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Er kann das <application>LPD</application>-Protokoll
+ direkt unterst&uuml;tzen und sogar Druckjobs von entfernten
+ Rechner verwalten. In diesem Fall verh&auml;lt sich der
+ Drucker wie ein normaler Rechner, auf dem
+ <application>LPD</application> l&auml;uft. Lesen Sie den
+ Abschnitt <link linkend="printing-advanced-network-rm">
+ Auf entfernten Rechnern installierte Drucker</link>, um
+ einen solchen Drucker einzurichten.</para>
+ </listitem>
+
+ <listitem>
+ <para>Er k&ouml;nnte Verbindungen &uuml;ber ein
+ Netzwerk unterst&uuml;tzen. In diesem Fall
+ <quote>verbinden</quote> Sie den Drucker mit einem
+ Rechner Ihres Netzwerks, der danach f&uuml;r die
+ Verwaltung von Druckauftr&auml;gen sowie den
+ tats&auml;chlichen Druck verantwortlich ist. Der
+ Abschnitt <link
+ linkend="printing-advanced-network-net-if">Drucker mit
+ direkter TCP-Schnittstelle</link> enth&auml;lt
+ Hinweise zur Installation derartiger Drucker.</para>
+ </listitem>
+ </itemizedlist>
+ </listitem>
+ </itemizedlist>
<sect3 id="printing-advanced-network-rm">
- <title>* Drucker, die an einen anderen Computer angeschlossen
- sind</title>
+ <title>Auf entfernten Rechnern installierte Drucker</title>
+
+ <para>Das <application>LPD</application>-Drucksystem
+ unterst&uuml;tzt den Versand von Druckauftr&auml;gen an
+ andere Rechner, auf denen entweder
+ <application>LPD</application> l&auml;uft oder die zu
+ <application>LPD</application> kompatibel sind. Dadurch
+ k&ouml;nnen Sie einen Drucker auf einem Rechner installieren
+ und von anderen Rechnern des Netzwerks darauf zugreifen.
+ Au&szlig;erdem werden Drucker mit direkter TCP-Schnittstelle
+ unterst&uuml;tzt, wenn diese das
+ <application>LPD</application>-Protokoll
+ unterst&uuml;tzen.</para>
+
+ <para>Um diese Art des Druckens &uuml;ber ein Netzwerk zu
+ aktivieren, installieren Sie zuerst Ihren Drucker auf einem
+ Rechner Ihres Netzwerks, dem sogenannten
+ <emphasis>printer host</emphasis>. Die dazu n&ouml;tigen
+ Schritte werden im Abschnitt <link linkend="printing-simple">
+ Einfache Drucker-Konfiguration</link> beschrieben. Falls
+ Sie eine erweiterte Druckerkonfiguration ben&ouml;tigen,
+ sollten Sie auch den Abschnitt <link
+ linkend="printing-advanced">Erweiterte
+ Drucker-Konfiguration</link> lesen. Danach testen Sie, ob
+ der Drucker alle von Ihnen aktivierten
+ <application>LPD</application>-F&auml;higkeiten
+ unterst&uuml;tzt. Stellen Sie auch sicher, dass Ihr
+ <emphasis>lokales System</emphasis> berechtigt ist, den
+ <application>LPD</application>-Dienst auf dem
+ <emphasis>entfernten System</emphasis> zu nutzen (lesen
+ Sie dazu den Abschnitt <link
+ linkend="printing-advanced-restricting-remote">
+ Druckauftr&auml;ge auf entfernten Druckern
+ beschr&auml;nken</link>).</para>
+
+ <indexterm>
+ <primary>Drucker</primary>
+ <secondary>Netzwerk</secondary>
+ </indexterm>
+
+ <indexterm><primary>Netzwerkdrucker</primary></indexterm>
+
+ <para>Wenn Sie einen Drucker mit einer zu
+ <application>LPD</application> kompatiblen
+ Netzwerkschnittstelle verwenden, handelt es sich beim
+ <emphasis>printer host</emphasis> um den Drucker selbst,
+ und der <emphasis>Druckername</emphasis> ist der von Ihnen
+ f&uuml;r diesen Drucker vorgegebene Name. Lesen Sie die
+ Dokumentation Ihres Druckers und/oder der Netzwerkschnittstelle
+ Ihres Druckers, um dies zu kl&auml;ren.</para>
+
+ <tip>
+ <para>Wenn Sie einen Hewlett Packard Laserjet-Drucker
+ verwenden, sorgt der Druckername <literal>text</literal>
+ f&uuml;r eine automatische LF-zu-CRLF-Konvertierung. In
+ diesem Fall wird das <filename>hpif</filename>-Skript
+ nicht ben&ouml;tigt.</para>
+ </tip>
+
+ <para>Danach m&uuml;ssen Sie auf jedem Rechner, der auf diesen
+ Drucker zugreifen soll, einen entsprechenden Eintrag in
+ deren <filename>/etc/printcap</filename> aufnehmen. Dazu
+ werden folgende Informationen ben&ouml;tigt:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Der Name des Eintrags. Entspricht in der Regel dem
+ Eintrag auf dem <emphasis>printer host</emphasis>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Lassen Sie den Eintrag f&uuml;r die
+ <literal>lp</literal>-F&auml;higkeit leer, schreiben Sie
+ also <literal>:lp=:</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Erzeugen Sie ein Spooling-Verzeichnis und geben Sie
+ dessen Pfad &uuml;ber die
+ <literal>sd</literal>-F&auml;higkeit an.
+ <application>LPD</application> speichert Ihre
+ Druckauftr&auml;ge in diesem Verzeichnis, bevor sie an den
+ Drucker geschickt werden.</para>
+ </listitem>
+
+ <listitem>
+ <para>Geben Sie den Namen des <emphasis>printer
+ hosts</emphasis> &uuml;ber die
+ <literal>rm</literal>-F&auml;higkeit an.</para>
+ </listitem>
+
+ <listitem>
+ <para>Geben Sie den Namen des Druckers (auf dem
+ <emphasis>printer host</emphasis>) &uuml;ber die
+ <literal>rp</literal>-F&auml;higkeit an.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Das ist alles. Sie ben&ouml;tigen weder
+ Konvertierungsfilter, noch Seitengr&ouml;&szlig;en oder
+ sonstige Angaben in Ihrer lokalen
+ <filename>/etc/printcap</filename>.</para>
+
+ <para>Dazu ein Beispiel. Der Rechner <hostid>rose</hostid>
+ verf&uuml;gt &uuml;ber zwei Drucker, <literal>bamboo</literal>
+ und <literal>rattan</literal>. Wir wollen nun allen Benutzern
+ des Rechners <hostid>orchid</hostid> erlauben, diese Drucker
+ zu verwenden. Es folgt nun wieder die bereits aus dem Abschnitt
+ <link linkend="printing-advanced-header-pages-enabling">
+ Deckbl&auml;tter verwenden</link> bekannte
+ <filename>/etc/printcap</filename> f&uuml;r den Rechner
+ <hostid>orchid</hostid>. Diese enthielt bereits einen Eintrag
+ f&uuml;r den Drucker <literal>teak</literal>. Zus&auml;tzlich
+ tragen wir nun die zwei Drucker des Rechners
+ <hostid>rose</hostid> ein:</para>
+
+ <programlisting>#
+# /etc/printcap f&uuml;r den Rechner orchid - mit zus&auml;tzlichen
+# Eintr&auml;gen f&uuml;r die (entfernten) Drucker auf dem Rechner rose
+#
- <para></para>
+#
+# teak ist ein lokaler Drucker und direkt mit orchid verbunden:
+#
+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 ist mit rose verbunden, Druckauftr&auml;ge f&uuml;r rattan gehen daher
+# an den Rechner rose:
+#
+rattan|line|diablo|lp|Diablo 630 Line Printer:\
+ :lp=:rm=rose:rp=rattan:sd=/var/spool/lpd/rattan:
+
+#
+# bamboo ist ebenfalls mit rose verbunden:
+#
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:</programlisting>
+
+ <para>Nun m&uuml;ssen wir nur noch die Spooling-Verzeichnisse
+ auf dem Rechner <hostid>orchid</hostid> erzeugen:</para>
+
+ <screen>&prompt.root; <userinput>mkdir -p /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput>
+&prompt.root; <userinput>chmod 770 /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput>
+&prompt.root; <userinput>chown daemon:daemon /var/spool/lpd/rattan /var/spool/lpd/bamboo</userinput></screen>
+
+ <para>Damit k&ouml;nnen Benutzer des Rechners
+ <hostid>orchid</hostid> die Drucker <literal>rattan</literal>
+ und <literal>bamboo</literal> verwenden. Gibt ein Benutzer
+ auf <hostid>orchid</hostid> beispielsweise
+
+ <screen>&prompt.user; <userinput>lpr -P bamboo -d sushi-review.dvi</userinput></screen>
+
+ ein, w&uuml;rde <application>LPD</application> auf dem Rechner
+ <hostid>orchid</hostid> den Druckauftrag in das
+ Spooling-Verzeichnis <filename>/var/spool/lpd/bamboo</filename>
+ kopieren und feststellen, dass es sich um einen DVI-Auftrag
+ handelt. Sobald <hostid>rose</hostid> &uuml;ber genug freien
+ Platz im <literal>bamboo</literal>-Spooling-Verzeichnis
+ verf&uuml;gt, w&uuml;rden die beiden
+ <application>LPDs</application> die Datei auf den Rechner
+ <hostid>rose</hostid> transferieren. Diese Datei verbleibt
+ danach in der Druckerwarteschlange des Rechners
+ <hostid>rose</hostid>, bis der Ausdruck der Datei
+ abgeschlossen ist. Vor dem Ausdruck w&uuml;rde die Datei
+ noch von DVI nach &postscript; konvertiert werden, da es sich
+ bei <literal>bamboo</literal> um einen an den Rechner
+ <hostid>rose</hostid> angeschlossenen &postscript;-Drucker
+ handelt.</para>
</sect3>
<sect3 id="printing-advanced-network-net-if">
- <title>* Drucker mit direkter TCP-Schnittstelle</title>
+ <title>Drucker mit direkter TCP-Schnittstelle</title>
+
+ <para>Wenn Sie eine Netzwerkkarte f&uuml;r Ihren Drucker kaufen,
+ k&ouml;nnen Sie zwei verschiedene Versionen w&auml;hlen:
+ Eine Version, die ein Drucksystem emuliert (die teure Version),
+ oder eine Version, die sich verh&auml;lt, als w&auml;re der
+ Drucker an eine serielle oder parallele Schnittstelle
+ angeschlossen (die billige Version). Dieser Abschnitt
+ beschreibt die billige Variante. Bevorzugen Sie die teure
+ Variante, sollten Sie den Abschnitt <link
+ linkend="printing-advanced-network-rm">Auf entfernten
+ Rechnern installierte Drucker</link> nochmals lesen.</para>
+
+ <para>Das Format der Datei <filename>/etc/printcap</filename>
+ erlaubt es Ihnen, anzugeben, welche serielle oder parallele
+ Schnittstelle verwendet werden soll und (falls Sie eine
+ serielle Schnittstelle verwenden) welche Parameter (Baudrate,
+ Flu&szlig;kontrolle, Behandlung von Tabulatoren, Konvertierung
+ von neuen Zeilen und andere mehr) Sie verwenden wollen. Es
+ gibt allerdings keine M&ouml;glichkeit, eine Verbindung zu
+ einem Drucker zu definieren, der einen TCP/IP- oder einem
+ anderem Netzwerkport auf Druckauftr&auml;ge hin abfragt.</para>
+
+ <para>Um Daten an einen Netzwerkdrucker zu schicken, m&uuml;ssen
+ Sie daher ein Kommunikationsprogramm entwickeln, das von
+ Text- und Konvertierungsfiltern aufgerufen werden kann. Dazu
+ ein Beispiel. Das Skript <command>netprint</command>
+ &uuml;bernimmt alle Daten von der Standardeingabe und schickt
+ sie an einen Netzwerkdrucker. <command>netprint</command>
+ erwartet zwei Argumente: Als erstes Argument wird der Hostname
+ des Druckers und als zweites Argument der Port, &uuml;ber den
+ die Verbindung erfolgen soll, &uuml;bergeben. Dabei handelt
+ sich allerdings um eine Ein-Wege-Kommunikation (von FreeBSD zum
+ Drucker). Viele Netzwerkdrucker unterst&uuml;tzen aber auch
+ eine Zwei-Wege-Kommunikation, deren Vorteile (Abfrage des
+ Druckerstatus, die Verrechnung von Druckauftr&auml;gen und
+ andere mehr) Sie vielleicht nutzen wollen.</para>
+
+ <programlisting>#!/usr/bin/perl
+#
+# netprint - Textfilter f&uuml;r einen Netzwerkdrucker
+# Installiert unter: /usr/local/libexec/netprint
+#
+$#ARGV eq 1 || die "Usage: $0 &lt;printer-hostname&gt; &lt;port-number&gt;";
- <para></para>
+$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', &amp;AF_INET, $printer_port, $address);
+
+socket(PRINTER, &amp;PF_INET, &amp;SOCK_STREAM, $protocol)
+ || die "Can't create TCP/IP stream socket: $!";
+connect(PRINTER, $sockaddr) || die "Can't contact $printer_host: $!";
+while (&lt;STDIN&gt;) { print PRINTER; }
+exit 0; </programlisting>
+
+ <para>Dieses Skript kann f&uuml;r verschiedene Filter
+ eingesetzt werden. Das folgende Beispiel verwendet den
+ an ein Netzwerk angeschlossenen Zeilendrucker Diablo 750-N.
+ Dieser Drucker empf&auml;ngt zu druckende Daten auf dem
+ Port 5100. Der Hostname des Druckers lautet scrivener.
+ Daher sieht der Textfilter f&uuml;r diesen Drucker wie folgt
+ aus:</para>
+
+ <programlisting>#!/bin/sh
+#
+# diablo-if-net - Textfilter f&uuml;r den Diablo-Drucker `scrivener'.
+# Drucker lauscht auf Port 5100.
+# Installiert unter: /usr/local/libexec/diablo-if-net
+#
+exec /usr/libexec/lpr/lpf "$@" | /usr/local/libexec/netprint scrivener 5100</programlisting>
</sect3>
</sect2>
<sect2 id="printing-advanced-restricting">
- <title>* Einschr&auml;nken der Druckerbenutzung</title>
+ <title>Den Druckerzugriff beschr&auml;nken</title>
+
+ <indexterm>
+ <primary>Drucker</primary>
+ <secondary>den Zugriff beschr&auml;nken</secondary>
+ </indexterm>
+
+ <para>Dieser Abschnitt beschreibt, wie Sie den Druckerzugriff
+ beschr&auml;nken k&ouml;nnen. Das
+ <application>LPD</application>-Drucksystem erlaubt Ihnen die
+ Kontrolle dar&uuml;ber, wer lokal oder &uuml;ber ein Netzwerk
+ auf einen Drucker zugreifen darf, ob mehrere Kopien erstellt
+ werden d&uuml;rfen und wie gro&szlig; Druckauftr&auml;ge und
+ Druckerwarteschlangen werden d&uuml;rfen.</para>
<sect3 id="printing-advanced-restricting-copies">
- <title>* Mehrfache Kopien verbieten</title>
+ <title>Den Ausdruck von mehreren Kopien verhindern</title>
+
+ <para>Das <application>LPD</application>-System macht es dem
+ einzelnen Benutzer einfach, mehrere Kopien einer Datei zu
+ drucken. So werden mit <command>lpr&nbsp;-#5</command>
+ beispielsweise f&uuml;nf Kopien jeder Datei des Druckauftrags
+ erstellt. Ob dies gut oder schlecht ist, m&uuml;ssen Sie
+ selbst entscheiden.</para>
+
+ <para>Wenn Sie der Meinung sind, dass multiple Kopien eine
+ unn&ouml;tige Beanspruchung Ihres Druckers darstellen,
+ sollten Sie die <option>-#</option>-Opion von &man.lpr.1;
+ deaktivieren, indem Sie die
+ <literal>sc</literal>-F&auml;higkeit in Ihre
+ <filename>/etc/printcap</filename> aufnehmen. Verwendet ein
+ Benutzer dennoch die Option <option>-#</option>, erh&auml;lt
+ er daraufhin folgende Meldung:</para>
+
+ <screen>lpr: multiple copies are not allowed</screen>
+
+ <para>Wenn Sie den Zugriff auf einen entfernten Drucker
+ (wie in Abschnitt <link
+ linkend="printing-advanced-network-rm">Auf entfernten
+ Rechnern installierte Drucker</link> beschrieben) konfiguriert
+ haben, m&uuml;ssen Sie die <literal>sc</literal>-F&auml;higkeit
+ auch auf den entfernten Rechnern, die auf Ihren Drucker
+ zugreifen d&uuml;rfen, in <filename>/etc/printcap</filename>
+ eintragen, damit Benutzer diese Vorgabe nicht durch den Wechsel
+ auf einen anderen Rechner umgehen k&ouml;nnen.</para>
+
+ <para>Dazu ein Beispiel. Es handelt sich dabei um die Datei
+ <filename>/etc/printcap</filename> auf dem Rechner
+ <hostid>rose</hostid>. Der Drucker <literal>rattan</literal>
+ soll multiple Kopien zulassen, auf dem Laserdrucker
+ <literal>bamboo</literal> sollen multiple Kopien hingegen
+ nicht erlaubt sein, daher m&uuml;ssen wir f&uuml;r diesen
+ Drucker die <literal>sc</literal>-F&auml;higkeit
+ aktivieren:</para>
+
+ <programlisting>#
+# /etc/printcap f&uuml;r den Rechner rose - multiple Kopien auf bamboo verbieten
+#
+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:ms#-parenb cs8 clocal crtscts:rw:\
+ :if=/usr/local/libexec/psif:\
+ :df=/usr/local/libexec/psdf:</programlisting>
+
+ <para>Au&szlig;erdem m&uuml;ssen wir noch die
+ <literal>sc</literal>-F&auml;higkeit in der Datei
+ <filename>/etc/printcap</filename> des Rechners
+ <hostid>orchid</hostid> aktivieren. Parallel dazu untersagen
+ wir das Erstellen von multiplen Kopien auf dem Drucker
+ <literal>teak</literal>:</para>
+
+ <programlisting>#
+# /etc/printcap f&uuml;r den Rechner orchid - lokal machen wir keine multiplen Kopien
+# Lokaler Drucker teak oder entfernter Drucker 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:
- <para></para>
+bamboo|ps|PS|S|panasonic|Panasonic KX-P4455 PostScript v51.4:\
+ :lp=:rm=rose:rp=bamboo:sd=/var/spool/lpd/bamboo:sc:</programlisting>
+
+ <para>Durch die Verwendung der
+ <literal>sc</literal>-F&auml;higkeit ist zwar die Verwendung
+ von <command>lpr -#</command> nicht mehr m&ouml;glich, ein
+ Benutzer kann aber weiterhin &man.lpr.1; mehrmals hintereinander
+ aufrufen oder eine Datei mehrfach in den gleichen Druckauftrag
+ aufnehmen:</para>
+
+ <screen>&prompt.user; <userinput>lpr forsale.sign forsale.sign forsale.sign forsale.sign forsale.sign</userinput></screen>
+
+ <para>Auch dieser Mi&szlig;brauch Ihres Druckers kann verhindert
+ werden, falls Sie dies w&uuml;nschen. Diese Ma&szlig;nahmen
+ werden in diesem Abschnitt allerdings nicht behandelt.</para>
</sect3>
<sect3 id="printing-advanced-restricting-access">
- <title>* Zugriff auf einzelne Drucker
- einschr&auml;nken</title>
+ <title>Den Zugriff auf bestimmte Drucker beschr&auml;nken</title>
+
+ <para>Sie k&ouml;nnen angeben, wer auf welchem Drucker drucken
+ darf, wenn Sie den Gruppenmechanismus von &unix; in Kombination
+ mit der <literal>rg</literal>-F&auml;higkeit von
+ <filename>/etc/printcap</filename> einsetzen. Weisen Sie dazu
+ alle Benutzer, die auf einen Drucker zugreifen d&uuml;rfen,
+ einer gemeinsamen Gruppe zu und geben Sie diese Gruppe
+ &uuml;ber die <literal>rg</literal>-F&auml;higkeit an.</para>
+
+ <para>Benutzer, die dieser Gruppe nicht angeh&ouml;ren (dies
+ gilt auch f&uuml;r <username>root</username>), erhalten die
+ Meldung
+
+ <errorname>lpr: Not a member of the restricted group</errorname>
+
+ wenn Sie diesen Drucker verwenden wollen.</para>
+
+ <para>Analog zur <literal>sc</literal>-F&auml;higkeit
+ (<emphasis>suppress multiple copies</emphasis>) m&uuml;ssen
+ Sie die <literal>rg</literal>-F&auml;higkeit auch auf allen
+ entfernten Rechnern aktivieren, die auf Ihren Drucker
+ zugreifen d&uuml;rfen (lesen Sie dazu auch den Abschnitt
+ <link linkend="printing-advanced-network-rm">Auf entfernten
+ Rechnern installierte Drucker</link>).</para>
+
+ <para>Wollen wir beispielsweise allen Benutzern die Verwendung
+ des Druckers <literal>rattan</literal>, aber nur Mitgliedern
+ der Gruppe <groupname>artists</groupname> die Verwendung des
+ Druckers <literal>bamboo</literal> erlauben, passen wir die
+ bereits bekannte <filename>/etc/printcap</filename> des
+ Rechners <hostid>rose</hostid> entsprechend an:</para>
+
+ <programlisting>#
+# /etc/printcap des Rechners rose - Zugriffsbeschr&auml;nkung f&uuml;r 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:ms#-parenb cs8 clocal crtscts:rw:\
+ :if=/usr/local/libexec/psif:\
+ :df=/usr/local/libexec/psdf:</programlisting>
+
+ <para>Die Datei <filename>/etc/printcap</filename> des Rechners
+ <hostid>orchid</hostid> wird dadurch nicht beeinflusst. Jeder
+ Benutzer des Rechners <hostid>orchid</hostid> kann also
+ weiterhin den Drucker <literal>bamboo</literal> verwenden.</para>
- <para></para>
+ <note>
+ <para>F&uuml;r jeden Drucker kann nur eine einzige
+ priviligierte Gruppe erstellt werden.</para>
+ </note>
</sect3>
- <sect3 id="printing-advanced-restricting-sizes">
- <title>* Die Gr&ouml;&szlig;e der Druckauftr&auml;ge
- beschr&auml;nken</title>
+ <sect3 id="printing-advanced-restricting-sizes">
+ <title>Die Gr&ouml;&szlig;e von Druckauftr&auml;gen kontrollieren</title>
- <para></para>
+ <indexterm><primary>Druckauftr&auml;ge</primary></indexterm>
+
+ <para>Wenn Sie viele Benutzer haben, die Ihre Drucker verwenden
+ d&uuml;rfen, werden Sie wahrscheinlich eine Obergrenze f&uuml;r
+ Dateien angeben wollen, die Benutzer an Ihren Drucker senden
+ d&uuml;rfen. Dies ist sinnvoll, weil Speicherplatz
+ f&uuml;r Spooling-Verzeichnisse nur begrenzt verf&uuml;gbar
+ ist und Sie stets sicherstellen m&uuml;ssen, dass auch die
+ Druckauftr&auml;ge anderer Benutzer verarbeitet werden
+ k&ouml;nnen.</para>
+
+ <indexterm>
+ <primary>Druckauftrag</primary>
+ <secondary>kontrollieren</secondary>
+ </indexterm>
+
+ <para><application>LPD</application> verwendet die
+ <literal>mx</literal>-F&auml;higkeit, um die maximal erlaubte
+ Gr&ouml;&szlig;e von Dateien eines Druckauftrags anzugeben.
+ Dieser Wert wird in 1.024 Bytes gro&szlig;en
+ <literal>BUFSIZ</literal>-Bl&ouml;cken angegeben. Setzen Sie
+ diesen Wert auf Null, gibt es keine
+ Gr&ouml;&szlig;enbeschr&auml;nkung. Existiert die
+ <literal>mx</literal>-F&auml;higkeit hingegen &uuml;berhaupt
+ nicht, so gilt ein Limit von 1.000&nbsp;Bl&ouml;cken.</para>
+
+ <note>
+ <para>Diese Limits gelten nur f&uuml;r die Gr&ouml;&szlig;e
+ von <emphasis>Dateien</emphasis> innerhalb eines
+ Druckauftrages, <emphasis>nicht aber</emphasis> f&uuml;r
+ die Gesamtgr&ouml;&szlig;e des Druckauftrags.</para>
+ </note>
+
+ <para><application>LPD</application> lehnt eine Datei auch dann
+ nicht ab, wenn sie das Limit des Druckers &uuml;berschreitet.
+ Vielmehr wird die Datei bis zum Erreichen des Limits in die
+ Warteschlange geladen, danach wird der Druck gestartet. Der
+ das Limit &uuml;berschreitende Rest wird hingegen verworfen
+ und nicht gedruckt!</para>
+
+ <para>Mit diesem Wissen k&ouml;nnen wir nun Limits f&uuml;r die
+ Drucker <literal>rattan</literal> und <literal>bamboo</literal>
+ definieren. Da &postscript;-Dateien der Gruppe
+ <groupname>artists</groupname> in der Regel sehr gro&szlig;
+ sind, setzen wir ein Limit von f&uuml;nf Megabytes. F&uuml;r
+ den Druck von normalen Text (auf dem Drucker
+ <literal>rattan</literal>) setzen wir hingegen kein Limit:</para>
+
+ <programlisting>#
+# /etc/printcap f&uuml;r den Rechner rose
+#
+
+#
+# Kein Gr&ouml;&szlig;enlimit:
+#
+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:
+
+#
+# Ein Limit von 5 Megabyte:
+#
+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:ms#-parenb cs8 clocal crtscts:rw:\
+ :if=/usr/local/libexec/psif:\
+ :df=/usr/local/libexec/psdf:</programlisting>
+
+ <para>Auch diese Limits gelten nur f&uuml;r lokale Benutzer.
+ Wenn Sie den Zugriff auf Ihren Drucker auch &uuml;ber ein
+ Netzwerk erlauben wollen, unterliegen die Benutzer dieser
+ Rechner diesen Limits nicht. Daher m&uuml;ssen Sie diese
+ Limits &uuml;ber die <literal>mx</literal>-F&auml;higkeit
+ auch in der <filename>/etc/printcap</filename> jedes
+ Rechners definieren, der Ihren Drucker verwenden darf.
+ Der Abschnitt <link linkend="printing-advanced-network-rm">
+ Auf entfernten Rechnern installierte Drucker</link>
+ enth&auml;lt weitere Informationen zum Drucken &uuml;ber
+ ein Netzwerk.</para>
+
+ <para>Es gibt eine weitere M&ouml;glichkeit, um die
+ Gr&ouml;&szlig;e von Druckauftr&auml;gen von entfernten
+ Rechnern zu beschr&auml;nken. Lesen Sie dazu den Abschnitt
+ <link linkend="printing-advanced-restricting-remote">
+ Druckauftr&auml;ge von entfernten Rechnern
+ beschr&auml;nken</link>.</para>
</sect3>
<sect3 id="printing-advanced-restricting-remote">
- <title>* Zugriff von Computern im Netzwerk
+ <title>Druckauftr&auml;ge von entfernten Rechnern
beschr&auml;nken</title>
- <para></para>
+ <para>Das <application>LPD</application>-System bietet mehrere
+ M&ouml;glichkeiten, um Druckauftr&auml;ge zu beschr&auml;nken,
+ die auf entfernten Rechnern gestartet wurden:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>Rechner beschr&auml;nken</term>
+
+ <listitem>
+ <para>Sie k&ouml;nnen festlegen, von welchen entfernten
+ Rechnern ein lokaler <application>LPD</application>
+ Druckauftr&auml;ge annimmt, indem Sie die Dateien
+ <filename>/etc/hosts.equiv</filename> sowie
+ <filename>/etc/hosts.lpd</filename> entsprechend
+ anpassen. <application>LPD</application>
+ &uuml;berpr&uuml;ft diese Dateien, um festzustellen,
+ ob ein Druckauftrag von einem Rechner stammt, der in
+ einer dieser Dateien aufgef&uuml;hrt ist. Ist dies
+ nicht der Fall, lehnt <application>LPD</application>
+ den Druckauftrag ab.</para>
+
+ <para>Der Aufbau dieser Datei ist sehr einfach: Jede
+ Zeile enth&auml;lt einen einzigen Rechnernamen.
+ Beachten Sie aber, dass
+ <filename>/etc/hosts.equiv</filename> auch vom
+ &man.ruserok.3;-Protokoll ben&ouml;tigt wird und
+ &Auml;nderungen dieser Datei auch Programme wie
+ &man.rsh.1; und &man.rcp.1; beeinflussen
+ k&ouml;nnen.</para>
+
+ <para>Das folgende Beispiel beschreibt die Datei
+ <filename>/etc/hosts.lpd</filename> auf dem Rechner
+ <hostid>rose</hostid>:</para>
+
+ <programlisting>orchid
+violet
+madrigal.fishbaum.de</programlisting>
+
+ <para>Durch diese Vorgaben akzeptiert <hostid>rose</hostid>
+ nur noch Druckauftr&auml;ge von den Rechnern
+ <hostid>orchid</hostid>, <hostid>violet</hostid>,
+ und <hostid role="fqdn">madrigal.fishbaum.de</hostid>.
+ Versucht ein anderer Rechner, auf den
+ <application>LPD</application> von
+ <hostid>rose</hostid> zuzugreifen, wird dieser
+ Druckauftrag abgelehnt werden.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Gr&ouml;&szlig;enbeschr&auml;nkungen</term>
+
+ <listitem>
+ <para>Sie k&ouml;nnen festlegen, wieviel Speicherplatz
+ auf dem Dateisystem, in dem das Spooling-Verzeichnis
+ liegt, mindestens frei sein muss. Dazu erzeugen Sie im
+ Spooling-Verzeichnis Ihres lokalen Druckers die Datei
+ <filename>minfree</filename>. In dieser Datei geben
+ Sie an, wieviele 512&nbsp;Byte gro&szlig;e
+ Bl&ouml;cke auf Ihrer Platte frei sein m&uuml;ssen,
+ damit ein Druckauftrag von einem entfernten Rechner
+ akzeptiert wird.</para>
+
+ <para>Durch diese Vorgabe k&ouml;nnen Sie sicherstellen,
+ dass Benutzer von entfernten Rechnern Ihr Dateisystem
+ nicht <quote>zum&uuml;llen</quote>. Au&szlig;erdem
+ k&ouml;nnen Sie damit lokale Benutzer bevorzugen, da
+ diese auch dann noch Druckauftr&auml;ge erteilen
+ d&uuml;rfen, wenn der verf&uuml;gbare Plattenplatz
+ unter das in der Datei <filename>minfree</filename>
+ definierte Limit gefallen ist.</para>
+
+ <para>Legen wir nun die Datei <filename>minfree</filename>
+ f&uuml;r den Drucker <literal>bamboo</literal> an. Zuerst
+ untersuchen wir <filename>/etc/printcap</filename>, um
+ das Spooling-Verzeichnis f&uuml;r diesen Drucker zu
+ finden. Das folgende Beispiel zeigt den Eintrag
+ f&uuml;r den Drucker <literal>bamboo</literal>:</para>
+
+ <programlisting>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:ms#-parenb cs8 clocal crtscts:rw:mx#5000:\
+ :if=/usr/local/libexec/psif:\
+ :df=/usr/local/libexec/psdf:</programlisting>
+
+ <para>Das Spooling-Verzeichnis wird &uuml;ber die
+ <literal>sd</literal>-F&auml;higkeit festgelegt.
+ Wir wollen, dass mindestens drei Megabyte
+ (also 6144&nbsp;Bl&ouml;cke) freier Plattenplatz
+ vorhanden sein m&uuml;ssen, damit
+ <application>LPD</application> einen Druckauftrag
+ von einem entfernten Rechner akzeptiert:</para>
+
+ <screen>&prompt.root; <userinput>echo 6144 &gt; /var/spool/lpd/bamboo/minfree</userinput></screen>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>Benutzer beschr&auml;nken</term>
+
+ <listitem>
+ <para>Sie k&ouml;nnen auch festlegen, welche entfernten
+ Benutzer Ihren lokalen Drucker verwenden d&uuml;rfen,
+ indem Sie die <literal>rs</literal>-F&auml;higkeit in
+ <filename>/etc/printcap</filename> definieren. Wenn
+ f&uuml;r den Eintrag eines lokalen Druckers die
+ <literal>rs</literal>-F&auml;higkeit definiert ist,
+ akzeptiert <application>LPD</application>
+ Druckauftr&auml;ge von entfernten Rechnern nur dann,
+ <emphasis>wenn</emphasis> der Benutzer, der den
+ Druckauftrag gesendet hat, auch &uuml;ber ein
+ gleichnamiges Benutzerkonto auf dem lokalen Rechner
+ verf&uuml;gt. Ist dies nicht der Fall, lehnt
+ <application>LPD</application> den Druckauftrag ab.</para>
+
+ <para>Diese F&auml;higkeit ist besonders in Umgebungen
+ n&uuml;tzlich, in denen beispielsweise verschiedene
+ Abteilungen ein gemeinsames Netzwerk teilen, wobei
+ einige Benutzer zu mehreren Abteilungen geh&ouml;ren.
+ Haben diese Benutzer auch ein Benutzerkonto auf Ihrem
+ System, so k&ouml;nnen sie Ihren Drucker auch von
+ ihrer eigenen Abteilung aus nutzen. Wollen Sie zwar
+ den Zugriff auf Ihren Drucker, <emphasis>nicht
+ aber</emphasis> den Zugriff auf Ihre &uuml;brigen
+ Ressourcen erlauben, k&ouml;nnen Sie f&uuml;r diese
+ Benutzer einen sogenannten <quote>Token-Account</quote>
+ ohne Heimatverzeichnis und mit einer nutzlosen Shell
+ wie <filename>/usr/bin/false</filename> erstellen.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</sect3>
</sect2>
<sect2 id="printing-advanced-acct">
- <title>* Abrechnungsdaten aufzeichnen</title>
+ <title>Die Druckernutzung verrechnen</title>
+
+ <indexterm>
+ <primary>Drucker</primary>
+ <secondary>verrechnen</secondary>
+ </indexterm>
+
+ <para>Sie wollen die Nutzung Ihrer Drucker kostenpflichtig machen?
+ Warum auch nicht? Papier und Tinte kosten Geld. Auch eine
+ regelm&auml;&szlig;ige Wartung muss bezahlt werden. Nachdem Sie
+ einen Preis festgelegt haben, den Sie f&uuml;r jede
+ gedruckte Seite verrechnen wollen, stellt sich die Frage, wie Sie
+ die Verrechnung der Druckkosten technisch umsetzen
+ k&ouml;nnen.</para>
+
+ <para>Die schlechte Nachricht ist, dass das
+ <application>LPD</application>-System dabei wenig hilfreich ist.
+ Die Verrechnung von Druckauftr&auml;gen h&auml;ngt stark vom
+ verwendeten Drucker, den zu druckenden Dateiformaten und
+ <emphasis>Ihren</emphasis> Anforderungen an die Verrechnung
+ der Druckernutzung ab.</para>
+
+ <para>Um die Verrechnung der Druckernutzung zu implementieren,
+ m&uuml;ssen Sie sowohl Ihre Textfilter (um den Druck von
+ normalem Text abzurechnen) als auch Ihre Konvertierungsfilter
+ (um den Druck sonstiger Formate abzurechnen) entsprechend
+ anpassen, damit diese die Zahl der gedruckten Seiten
+ ermitteln k&ouml;nnen. Leider k&ouml;nnen Sie dazu nicht
+ einen einfachen Ausgabefilter verwenden, da diese die
+ Verrechnung von Druckauftr&auml;gen nicht unterst&uuml;tzen.
+ Weitere Informationen zu den verschiedenen Filterarten finden
+ Sie im Abschnitt <link
+ linkend="printing-advanced-filter-intro">Filter</link>.</para>
+
+ <para>Prinzipiell gibt es zwei M&ouml;glichkeiten, wie Sie diese
+ Verrechnung umsetzen k&ouml;nnen:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Die <emphasis>periodische Verrechnung</emphasis> wird
+ h&auml;ufiger verwendet, da sie einfacher zu implementieren
+ ist. Wenn ein Druckauftrag ausgef&uuml;hrt wird,
+ schreibt der Filter den Benutzer, den verwendeten Rechner
+ sowie die Anzahl der gedruckten Seiten in eine
+ Verrechnungsdatei. Nach einem zu definierenden Zeitraum
+ werden diese Dateien ausgewertet, die Gesamtzahl der
+ von einem Benutzer gedruckten Seiten bestimmt und dem
+ jeweiligen Benutzer verrechnet. Danach werden alle
+ Protokolldateien zur&uuml;ckgesetzt, und die Protokollierung
+ beginnt von Neuem.</para>
+ </listitem>
+
+ <listitem>
+ <para>Die <emphasis>unmittelbare Verrechnung</emphasis> wird
+ nur selten eingesetzt, das sie schwieriger zu implementieren
+ ist. Bei dieser Methode wird der Druckauftrag verrechnet,
+ sobald der Drucker verwendet wird. Dadurch k&ouml;nnen Sie
+ beispielsweise verhindern, dass ein Benutzer seine erlaubte
+ <quote>Druckquote</quote> &uuml;berschreitet.
+ Zus&auml;tzlich k&ouml;nnen Sie es Ihren Benutzern erlauben,
+ deren Druckquote abzufragen oder anzupassen. Allerdings
+ ben&ouml;tigen Sie eine Datenbank, um Benutzer und deren
+ Quoten verwalten zu k&ouml;nnen.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Das <application>LPD</application>-Drucksystem
+ unterst&uuml;tzt beide Methoden. Allerdings m&uuml;ssen Sie
+ die ben&ouml;tigen Filter sowie den zur Verrechnung n&ouml;tigen
+ Code selbst bereitstellen. Der Vorteil dabei ist allerdings,
+ dass Sie in der Wahl Ihrer Verrechnungsmethode &auml;u&szlig;erst
+ flexibel sind. So k&ouml;nnen Sie sich etwa f&uuml;r die
+ periodische oder die unmittelbare Verrechnung entscheiden. Sie
+ k&ouml;nnen festlegen, welche Informationen Sie erfassen wollen:
+ Benutzernamen, Rechnernamen, die Art der Druckauftr&auml;ge,
+ die Anzahl der gedruckten Seiten, den Papierverbrauch, den
+ Zeitaufwand f&uuml;r die Bearbeitung eines Druckauftrages und
+ viele andere mehr. Dazu m&uuml;ssen Sie Ihre Filter entsprechend
+ anpassen, damit diese Informationen erfassst und gespeichert
+ werden.</para>
<sect3>
- <title>* Einfache Abrechnung</title>
+ <title>Kurzanleitung f&uuml;r die Implementierung der
+ Druckerverrechnung</title>
+
+ <para>FreeBSD bietet Ihnen zwei Programme, um eine periodische
+ Verrechnung rasch zu implementieren. Dabei handelt es sich
+ um den im Abschnitt <link
+ linkend="printing-advanced-lpf">lpf: Ein Textfilter</link>
+ behandelten Textfilter sowie um &man.pac.8;, ein Programm,
+ mit dem Sie Eintr&auml;ge aus Verrechnungsdateien auslesen
+ und aufsummieren k&ouml;nnen.</para>
+
+ <para>Wie bereits im Abschnitt <link
+ linkend="printing-advanced-filters">Filter</link> erw&auml;hnt,
+ startet <application>LPD</application> den Text- oder
+ Konvertierungsfilter mit dem Namen der Verrechnungsdatei als
+ Argument. Dadurch wei&szlig; der Filter, in welche Datei
+ er einen Verrechnungseintrag schreiben soll. Der Name dieser
+ Datei wird &uuml;ber die <literal>af</literal>-F&auml;higkeit
+ in <filename>/etc/printcap</filename> festgelegt. Falls die
+ Datei nicht &uuml;ber einen absoluten Pfad angegeben wird,
+ handelt es sich um einen Pfad relativ zum
+ Spooling-Verzeichnis.</para>
+
+ <para><application>LPD</application> startet
+ <command>lpf</command> mit den Argumenten <emphasis>page width
+ und page length</emphasis>, die &uuml;ber die
+ <literal>pw</literal>- und <literal>pl</literal>-F&auml;higkeit
+ definiert werden. <command>lpf</command> verwendet diese
+ Argumente danach, um den Papierverbrauch zu bestimmen. Nachdem
+ die Datei an den Drucker geschickt wurde, wird ein
+ Verrechnungseintrag in die Verrechnungsdatei geschrieben. Ein
+ solcher Eintrag sieht dabei &auml;hnlich den folgenden aus:</para>
+
+ <programlisting>2.00 rose:andy
+3.00 rose:kelly
+3.00 orchid:mary
+5.00 orchid:mary
+2.00 orchid:zhang</programlisting>
+
+ <para>Sie sollten f&uuml;r jeden Drucker eine eigene
+ Verrechnungsdatei verwenden, da <command>lpf</command>
+ die Verrechnungsdatei nicht sperren kann. Sind also
+ gleichzeitig zwei <command>lpf</command>-Instanzen aktiv,
+ kann es dazu kommen, dass Ihre Verrechnungsdatei zerst&ouml;rt
+ wird, wenn beide Instanzen gleichzeitig in die gleiche Datei
+ schreiben. Damit f&uuml;r jeden Drucker eine eigene
+ Verrechnungsdatei angelegt wird, f&uuml;gen Sie den
+ Eintrag <literal>af=acct</literal> in
+ <filename>/etc/printcap</filename> ein. Dadurch wird f&uuml;r
+ jeden Drucker eine separate Verrechnungsdatei mit dem Namen
+ <filename>acct</filename> im Spooling-Verzeichnis des
+ jeweiligen Druckers erzeugt.</para>
+
+ <para>Wenn Sie Ihre Daten erfasst haben und die entstandenen
+ Kosten Ihren Benutzern verrechnen wollen, starten Sie
+ &man.pac.8;. Dazu wechseln Sie in das Spooling-Verzeichnis
+ des auszuwertenden Druckers und geben <command>pac</command>
+ ein. Dadurch erhalten Sie eine Ausgabe &auml;hnlich
+ der folgenden:</para>
+
+ <screen> 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</screen>
+
+ <para>Folgende Argumente k&ouml;nnen an &man.pac.8;
+ &uuml;bergeben werden:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-P<replaceable>Drucker</replaceable></option></term>
+
+ <listitem>
+ <para>Gibt an, welcher <replaceable>Drucker</replaceable>
+ ausgewertet werden soll. Diese Option setzt voraus,
+ dass f&uuml;r die <literal>af</literal>-F&auml;higkeit
+ in <filename>/etc/printcap</filename> ein absoluter
+ Pfad angegeben wurde.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-c</option></term>
+
+ <listitem>
+ <para>Sortiert die Ausgabe nach den verursachten Kosten
+ anstelle einer alphabetischen Sortierung der
+ Benutzernamen.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-m</option></term>
- <para></para>
+ <listitem>
+ <para>Ignoriert den Rechnernamen in Verrechnungsdateien.
+ Ist diese Option gesetzt, ist der Benutzer
+ <username>smith</username> auf dem Rechner
+ <hostid>alpha</hostid> mit dem Benutzer
+ <username>smith</username> auf dem Rechner
+ <hostid>gamma</hostid> identisch. Ist diese Option
+ nicht gesetzt, handelt es sich um unterschiedliche
+ Benutzer.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-p<replaceable>Preis</replaceable></option></term>
+
+ <listitem>
+ <para>Berechnet die entstandenen Kosten aus dem
+ <replaceable>Preis</replaceable> in Dollar pro Seite
+ statt aus dem &uuml;ber die
+ <literal>pc</literal>-F&auml;higkeit in
+ <filename>/etc/printcap</filename> definierten Preis.
+ In der Voreinstellung sind dies zwei Cent pro Seite.
+ Sie k&ouml;nnen aber auch einen eigenen
+ <replaceable>Preis</replaceable> in Form einer
+ Gleitkommazahl angeben.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-r</option></term>
+
+ <listitem>
+ <para>Die Sortierreihenfolge umkehren.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-s</option></term>
+
+ <listitem>
+ <para>Die Verrechnungsdatei in einer neuen Datei
+ aufsummieren und die originale Verrechnungsdatei
+ zur&uuml;cksetzen.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><replaceable>name</replaceable>
+ <replaceable>&hellip;</replaceable></term>
+
+ <listitem>
+ <para>Verrechnungsinformationen nur f&uuml;r die
+ angegebenen Benutzernamen ausgeben.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>In der Voreinstellung gibt &man.pac.8; aus, wieviele
+ Seiten von welchem Benutzer auf welchem Rechner gedruckt
+ wurden. Wenn Rechnernamen f&uuml;r Sie uninteressant sind
+ (weil sich Benutzer beispielsweise auf jedem Rechner
+ anmelden k&ouml;nnen), sollten Sie <command>pac -m</command>
+ verwenden, um die folgende Ausgabe zu erhalten:</para>
+
+ <screen> 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</screen>
+
+
+ <para>Um den zu verrechnenden Betrag zu ermitteln, verwendet
+ &man.pac.8; die <literal>pc</literal>-F&auml;higkeit von
+ <filename>/etc/printcap</filename> (Voreinstellung 200, dieser
+ Wert entspricht 2 Cents). Geben Sie hier (als Hundertfaches
+ des tats&auml;chlichen Wertes) den Preis pro Seite an, den
+ Sie verrechnen wollen. Sie k&ouml;nnen diesen Wert
+ &uuml;berschreiben, wenn Sie &man.pac.8; mit der Option
+ <option>-p</option> ausf&uuml;hren. Beachten Sie dabei aber,
+ dass Sie in diesem Fall die Einheiten in Dollar angeben, und
+ nicht als Hundertfaches des tats&auml;chlichen Cent-Betrages.
+ So steht
+
+ <screen>&prompt.root; <userinput>pac -p1.50</userinput></screen>
+
+ beispielsweise f&uuml;r einen Preis von einem Dollar und
+ f&uuml;nfzig Cent pro Seite.</para>
+
+ <para>Der Aufruf von <command>pac -s</command> f&uuml;hrt
+ schlie&szlig;lich dazu, dass die aufsummierten Informationen
+ in einer eigenen Auswertedatei gespeichert werden. Diese hat
+ den gleichen Namen wie die Verrechnungsdatei, es wird
+ lediglich ein <literal>_sum</literal> an den Dateinamen
+ angeh&auml;ngt. Danach wird die Verrechnungsdatei
+ zur&uuml;ckgesetzt. Wenn Sie &man.pac.8; erneut aufrufen,
+ wird die Auswertedatei eingelesen, um die Startbetr&auml;ge
+ zu erhalten, alle weiteren Informationen stammen danach
+ aus der normalen Verrechnungsdatei.</para>
</sect3>
<sect3>
- <title>* Anzahl der gedruckten Seiten bestimmen</title>
-
- <para></para>
+ <title>Wie kann man die Anzahl der gedruckten Seiten
+ ermitteln?</title>
+
+ <para>Um die Druckernutzung auch nur ann&auml;hernd genau
+ verrechnen zu k&ouml;nnen, m&uuml;ssen Sie ermitteln, wieviel
+ Papier ein Druckauftrag verbraucht. Die Bestimmung dieses
+ Wertes ist das zentrale Problem, das Sie l&ouml;sen m&uuml;ssen,
+ wenn Sie Druckauftr&auml;ge kostenpflichtig machen wollen.</para>
+
+ <para>Normaler Text stellt in der Regel kein Problem dar: Sie
+ z&auml;hlen dazu nur die Zeilen des Druckauftrages und
+ dividieren diesen Wert durch die Anzahl der Zeilen pro Seite,
+ die Ihr Drucker bietet. Allerdings d&uuml;rfen Sie dabei
+ nicht vergessen, dass gel&ouml;schte Zeichen
+ (<foreignphrase>Backspaces</foreignphrase>) Zeilen
+ &uuml;berschreiben. Au&szlig;erdem k&ouml;nnen sich lange
+ logische Zeilen (im Druckauftrag) &uuml;ber mehrere
+ physikalische Zeilen (am Ausdruck) erstrecken.</para>
+
+ <para>Der im Abschnitt <link linkend="printing-advanced-lpf">lpf:
+ Ein Textfilter</link> vorgestellte Textfilter
+ <command>lpf</command> ber&uuml;cksichtigt diese
+ Besonderheiten. Wenn Sie einen eigenen Textfilter f&uuml;r
+ die Verrechnung der Druckernutzung schreiben wollen, sollten
+ Sie sich daher den Quellcode von <command>lpf</command>
+ n&auml;her ansehen.</para>
+
+ <para>Aber was ist mit anderen Dateiformaten?</para>
+
+ <para>F&uuml;r die DVI-nach-LaserJet- oder f&uuml;r die
+ DVI-nach-&postscript;-Konvertierung k&ouml;nnen Sie die
+ Protokolldateien von <command>dvilj</command> oder
+ <command>dvips</command> auslesen, um festzustellen, wieviele
+ Seiten konvertiert wurden. Die gleiche Methode k&ouml;nnte
+ auch mit anderen Dateitypen funktionieren.</para>
+
+ <para>Alle diese Methoden haben aber das Problem, dass ein
+ Drucker m&ouml;glicherweise nicht alle Seiten des
+ Druckauftrages drucken kann. So k&ouml;nnte es etwa zu einem
+ Papierstau kommen, der Toner k&ouml;nnte zu Ende gehen oder
+ es k&ouml;nnte ein Druckerdefekt
+ auftreten&nbsp;&ndash;&nbsp;trotzdem w&uuml;rden alle Seiten
+ des Druckauftrages verrechnet werden.</para>
+
+ <para>Was kann man dagegen tun?</para>
+
+ <para>Es gibt nur eine einzige <emphasis>sichere</emphasis>
+ Methode, um die Druckernutzung <emphasis>exakt</emphasis>
+ zu bestimmen. Besorgen Sie sich einen Drucker, der das
+ verbrauchte Papier protokolliert und verbinden Sie ihn
+ &uuml;ber eine serielle oder eine Netzwerkverbindung.
+ Nahezu alle &postscript;-Drucker, aber auch viele andere
+ Modelle und Druckertypen (beispielsweise Laserdrucker von
+ Imagen) sind dazu in der Lage. Passen Sie die Filter
+ f&uuml;r diese Drucker entsprechend an, damit diese
+ nach jedem Druckauftrag die Anzahl der gedruckten Seiten
+ ermitteln und verrechnen Sie Druckauftr&auml;ge
+ <emphasis>ausschlie&szlig;lich</emphasis> &uuml;ber diesen
+ Wert. Danach m&uuml;ssen Sie sich um die Anzahl
+ der gedruckten Zeilen oder um m&ouml;gliche Druckerprobleme
+ nie mehr k&uuml;mmern.</para>
+
+ <para>Sie k&ouml;nnen aber auch gro&szlig;z&uuml;gig sein und alle
+ Ausdrucke kostenlos abgeben.</para>
</sect3>
</sect2>
</sect1>
<sect1 id="printing-using">
- <title>* Drucken</title>
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Johann</firstname>
+ <surname>Kois</surname>
+ <contrib>&Uuml;bersetzt von </contrib>
+ </author>
+ </authorgroup>
+ </sect1info>
+
+ <title>Drucker verwenden</title>
+
+ <indexterm>
+ <primary>Drucker</primary>
+ <secondary>verwenden</secondary>
+ </indexterm>
- <para>Dieser Abschnitt ist noch nicht &uuml;bersetzt. Lesen Sie
- bitte <ulink
- url="&url.books.handbook.en;/printing-using.html">
- das Original in englischer Sprache</ulink>.</para>
+ <para>Dieser Abschnitt beschreibt, wie Sie einen unter FreeBSD
+ konfigurierten Drucker verwenden k&ouml;nnen. Die folgende
+ Liste bietet einen &Uuml;berblick &uuml;ber wichtige
+ Anwenderbefehle:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>&man.lpr.1;</term>
+
+ <listitem>
+ <para>Einen Druckauftrag drucken</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&man.lpq.1;</term>
+
+ <listitem>
+ <para>Eine Druckerwarteschlange pr&uuml;fen</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>&man.lprm.1;</term>
+
+ <listitem>
+ <para>Einen Druckauftrag aus einer Warteschlange entfernen
+ (stornieren)</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Zus&auml;tzlich existiert mit &man.lpc.8; ein Befehl zur
+ zur Steuerung von Druckern und Druckerwarteschlangen, der im
+ Abschnitt <link linkend="printing-lpc">Das
+ <application>LPD</application>-Drucksystem verwalten</link>
+ n&auml;her beschrieben wird.</para>
+
+ <para>Jeder der drei Befehle &man.lpr.1;, &man.lprm.1;, sowie
+ &man.lpq.1; akzeptiert die Option
+ <option>-P <replaceable>printer-name</replaceable></option>,
+ mit der Sie den zu verwendenden Drucker (der dazu in
+ <filename>/etc/printcap</filename> definiert sein muss)
+ festlegen. Dadurch sind Sie in der Lage, Druckauftr&auml;ge
+ zu erstellen, zu stornieren, oder den Status Ihrer
+ Druckauftr&auml;ge zu &uuml;berpr&uuml;fen. Verwenden Sie die
+ Option <option>-P</option> nicht, wird der in der Umgebungsvariable
+ <envar>PRINTER</envar> definierte Drucker verwendet. Existiert
+ diese Variable nicht, greifen diese Befehle auf den Drucker
+ <literal>lp</literal> zur&uuml;ck.</para>
+
+ <para>Im Folgenden steht der Begriff
+ <emphasis>Standarddrucker</emphasis> daher
+ f&uuml;r den &uuml;ber die Umgebungsvariable <envar>PRINTER</envar>
+ definierten Drucker, oder, falls diese Variable nicht existiert,
+ f&uuml;r den Drucker <literal>lp</literal>.</para>
<sect2 id="printing-lpr">
- <title>* Druckauftr&auml;ge erstellen</title>
+ <title>Druckauftr&auml;ge erstellen</title>
+
+ <para>Um eine Datei zu drucken, geben Sie folgenden Befehl ein:</para>
+
+ <screen>&prompt.user; <userinput>lpr <replaceable>filename</replaceable> <replaceable>...</replaceable></userinput></screen>
+
+ <indexterm><primary>printing</primary></indexterm>
+
+ <para>Dadurch wird jede angegebene Datei an den Standarddrucker
+ geschickt. Wenn Sie keine Datei angeben, liest &man.lpr.1;
+ die zu druckenden Daten von der Standardeingabe. Um
+ beispielsweise einige wichtige Systemdateien zu drucken, geben
+ Sie folgenden Befehl ein:</para>
- <para></para>
+ <screen>&prompt.user; <userinput>lpr /etc/host.conf /etc/hosts.equiv</userinput></screen>
+
+ <para>Um einen bestimmten Drucker auszuw&auml;hlen, verwenden Sie:</para>
+
+ <screen>&prompt.user; <userinput>lpr -P <replaceable>printer-name</replaceable> <replaceable>filename</replaceable> <replaceable>...</replaceable></userinput></screen>
+
+ <para>Das folgende Beispiel gibt eine ausf&uuml;hrliche Liste aller
+ im Arbeitsverzeichnis enthaltenen Dateien auf den Drucker
+ <literal>rattan</literal> aus:</para>
+
+ <screen>&prompt.user; <userinput>ls -l | lpr -P rattan</userinput></screen>
+
+ <para>Da keine Dateien an &man.lpr.1; &uuml;bergeben werden, liest
+ <command>lpr</command> die zu druckenden Daten von der
+ Standardeingabe, in unserem Fall also die Ausgabe des Befehls
+ <command>ls -l</command>.</para>
+
+ <para>&man.lpr.1; akzeptiert auch verschiedene Optionen zur
+ Formatierung und Konvertierung von Dateien, zur Erzeugung von
+ multiplen Ausdrucken und so weiter. Lesen Sie dazu den
+ Abschnitt <link
+ linkend="printing-lpr-options">Druckoptionen</link>.</para>
</sect2>
<sect2 id="printing-lpq">
- <title>* Druckauftr&auml;ge anzeigen</title>
-
- <para></para>
+ <title>Druckauftr&auml;ge verwalten</title>
+
+ <indexterm><primary>Druckauftrag</primary></indexterm>
+
+ <para>Wenn Sie &man.lpr.1; verwenden, werden alle zu druckenden
+ Daten in ein Paket, den sogenannten <quote>Druckauftrag</quote>,
+ gepackt und an <application>LPD</application> geschickt. Jeder
+ Drucker verf&uuml;gt &uuml;ber eine Druckerwarteschlange, in
+ der Ihre Druckauftr&auml;ge gemeinsam mit denen anderer Benutzer
+ verbleiben, bis sie gedruckt werden k&ouml;nnen. Zuerst
+ eintreffende Druckauftr&auml;ge werden dabei auch zuerst
+ gedruckt.</para>
+
+ <para>Um die Druckerwarteschlange des Standarddruckers anzuzeigen,
+ verwenden Sie &man.lpq.1;. Wollen Sie einen anderen Drucker
+ abfragen, m&uuml;ssen Sie die Option <option>-P</option>
+ verwenden. Der Befehl
+
+ <screen>&prompt.user; <userinput>lpq -P bamboo</userinput></screen>
+
+ zeigt so die Druckerwarteschlange des Druckers
+ <literal>bamboo</literal> an. Dieser Befehl liefert eine
+ Ausgabe &auml;hnlich der folgenden:</para>
+
+ <screen>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</screen>
+
+ <para>Derzeit enth&auml;lt die Warteschlange von
+ <literal>bamboo</literal> drei Druckauftr&auml;ge. Dem ersten
+ Auftrag, der vom Benutzer kelly erstellt wurde, wurde die
+ <quote>Auftragsnummer (job number)</quote> 9 zugewiesen.
+ Analog erh&auml;lt jeder Druckerauftrag eine eindeutige Nummer
+ zugewiesen. Diese Nummern sind nur dann von Bedeutung, wenn
+ Sie einen Druckauftrag stornieren wollen. Der Abschnitt
+ <link linkend="printing-lprm">Druckauftr&auml;ge
+ stornieren</link> beschreibt, wie Sie dazu vorgehen.</para>
+
+ <para>Der Auftrag mit der Nummer 9 besteht aus zwei Dateien,
+ mehrere an &man.lpr.1; &uuml;bergebene Dateien werden also als
+ Teil eines (gemeinsamen) Druckauftrags betrachtet. Dieser
+ Druckauftrag ist derzeit aktiv (beachten Sie den Status
+ <literal>active</literal> in der Spalte <quote>Rank</quote>),
+ wird also gerade gedruckt. Der zweite Auftrag besteht aus
+ Daten, die von der Standardeingabe an &man.lpr.1;
+ &uuml;bergeben wurden. Der dritte Auftrag wurde vom Benutzer
+ <username>mary</username> erstellt. Er ist sehr viel
+ gr&ouml;&szlig;er als die anderen Auftr&auml;ge. Da der
+ Pfad der zu druckenden Datei aufgrund seiner L&auml;nge nicht
+ in der Spalte <quote>Files</quote> Platz hat, werden von
+ &man.lpq.1; nur drei Punkte angezeigt.</para>
+
+ <para>Die erste Zeile der Ausgabe von &man.lpq.1; ist ebenfalls
+ sehr n&uuml;tzlich: Sie beschreibt den momentanen Druckerstatus
+ (oder zumindest, was <application>LPD</application> denkt,
+ dass der Drucker gerade macht).</para>
+
+ <para>&man.lpq.1; unterst&uuml;tzt auch die Option
+ <option>-l</option> zur Erstellung einer ausf&uuml;hrlicheren
+ Ausgabe. Die Eingabe von <command>lpq -l</command> erzeugt
+ f&uuml;r unser obiges Beispiel die folgende Ausgabe:</para>
+
+ <screen>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</screen>
</sect2>
<sect2 id="printing-lprm">
- <title>* Druckauftr&auml;ge l&ouml;schen</title>
-
- <para></para>
+ <title>Druckauftr&auml;ge stornieren</title>
+
+ <para>Mit &man.lprm.1; k&ouml;nnen Sie einen Druckauftrag
+ stornieren. H&auml;ufig ist &man.lprm.1; auch noch in der
+ Lage, einen bereits aktiven Auftrag abzubrechen, allerdings
+ wird dabei in der Regel trotzdem ein Teil des Auftrages oder
+ der gesamte Auftrag gedruckt.</para>
+
+ <para>Um einen Druckauftrag auf dem Standarddrucker zu
+ stornieren, m&uuml;ssen Sie zuerst die Auftragsnummer
+ &uuml;ber &man.lpq.1; ermitteln. Danach geben Sie
+ Folgendes ein:</para>
+
+ <screen>&prompt.user; <userinput>lprm <replaceable>job-number</replaceable></userinput></screen>
+
+ <para>Um einen Druckauftrag eines anderen Druckers zu stornieren,
+ ben&ouml;tigen Sie wiederum die Option <option>-P</option>. Der
+ folgende Befehl entfernt den Druckauftrag mit der Nummer 10
+ aus der Warteschlange des Druckers
+ <literal>bamboo</literal>:</para>
+
+ <screen>&prompt.user; <userinput>lprm -P bamboo 10</userinput></screen>
+
+ <para>&man.lprm.1; unterst&uuml;tzt verschiedene Kurzbefehle:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>lprm -</term>
+
+ <listitem>
+ <para>Entfernt alle Druckauftr&auml;ge (des Standarddruckers),
+ die von Ihnen erstellt wurden.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>lprm <replaceable>user</replaceable></term>
+
+ <listitem>
+ <para>Entfernt alle Druckauftr&auml;ge (des Standarddruckers),
+ die vom Benutzer <replaceable>user</replaceable> erstellt
+ wurden. Der Superuser kann im Gegensatz zu einem normalen
+ Benutzer auch Auftr&auml;ge anderer Benutzer entfernen.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>lprm</term>
+
+ <listitem>
+ <para>Wenn Sie weder eine Auftragsnummer, einen Benutzernamen,
+ noch die Option <option>-</option> angeben, entfernt
+ &man.lprm.1; den aktiven Druckauftrag auf dem
+ Standarddrucker, falls dieser Auftrag von Ihnen erstellt
+ wurde. Der Superuser kann hingegen jeden aktiven
+ Druckauftrag abbrechen.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Verwenden Sie zus&auml;tzlich die Option <option>-P</option>
+ zu den eben beschriebenen Kurzbefehlen, wenn Sie diese auf einen
+ anderen Drucker als den Standarddrucker anwenden wollen. So
+ entfernt der folgende Befehl beispielsweise alle
+ Druckauftr&auml;ge des aktuellen Benutzers aus der
+ Druckerwarteschlange des Druckers
+ <literal>rattan</literal>:</para>
+
+ <screen>&prompt.user; <userinput>lprm -P rattan -</userinput></screen>
+
+ <note>
+ <para>Wenn Sie in einer Netzwerkumgebung arbeiten, erlaubt es
+ &man.lprm.1; Ihnen nur, Druckauftr&auml;ge auf dem Rechner
+ zu stornieren, auf dem sie erstellt wurden. Dies gilt selbst
+ dann, wenn der gleiche Drucker auch auf anderen Rechnern des
+ Netzwerks verf&uuml;gbar ist. Die folgende Befehlsfolge
+ veranschaulicht diesen Umstand:</para>
+
+ <screen>&prompt.user; <userinput>lpr -P rattan myfile</userinput>
+&prompt.user; <userinput>rlogin orchid</userinput>
+&prompt.user; <userinput>lpq -P rattan</userinput>
+Rank Owner Job Files Total Size
+active seeyan 12 ... 49123 bytes
+2nd kelly 13 myfile 12 bytes
+&prompt.user; <userinput>lprm -P rattan 13</userinput>
+rose: Permission denied
+&prompt.user; <userinput>logout</userinput>
+&prompt.user; <userinput>lprm -P rattan 13</userinput>
+dfA013rose dequeued
+cfA013rose dequeued
+ </screen>
+ </note>
</sect2>
<sect2 id="printing-lpr-options">
- <title>* Optionen f&uuml;r Druckauftr&auml;ge</title>
+ <title>Abseits von normalem Text: Druckoptionen</title>
+
+ <para>&man.lpr.1; unterst&uuml;tzt verschiedene Optionen zur
+ Formatierung von Text, zur Konvertierung von Grafik- und
+ anderen Dateiformaten, zur Erzeugung von multiplen Kopien,
+ zur Verwaltung von Druckauftr&auml;gen und andere mehr.
+ Dieser Abschnitt beschreibt einige dieser Optionen.</para>
<sect3 id="printing-lpr-options-format">
- <title>* Formatierungs- und Konvertierungs-Optionen</title>
+ <title>Formatierungs- und Konvertierungsoptionen</title>
+
+ <para>Die folgenden &man.lpr.1;-Optionen kontrollieren die
+ Formatierung von in einem Druckauftrag enthaltenen Dateien.
+ Verwenden Sie diese Optionen, wenn Ihr Druckauftrag keinen
+ normalen Text enth&auml;lt, oder wenn Sie normalen Text
+ mit &man.pr.1; formatieren wollen.</para>
+
+ <indexterm><primary>&tex;</primary></indexterm>
+
+ <para>Der folgende Befehl druckt so beispielsweise eine
+ DVI-Datei (des &tex;-Satzsystems) namens
+ <filename>fish-report.dvi</filename> auf dem Drucker
+ <literal>bamboo</literal>:</para>
+
+ <screen>&prompt.user; <userinput>lpr -P bamboo -d fish-report.dvi</userinput></screen>
+
+ <para>Diese Optionen gelten f&uuml;r jede Datei des
+ Druckauftrags, daher ist es nicht m&ouml;glich beispielsweise
+ DVI- und ditroff-Dateien &uuml;ber den gleichen Druckauftrag
+ zu drucken. Sie m&uuml;ssen diese Dateien vielmehr &uuml;ber
+ getrennte Druckauftr&auml;ge drucken, wobei Sie jeweils
+ geeignete Konvertierungsoptionen verwenden.</para>
+
+ <note>
+ <para>Alle Optionen mit Ausnahme von <option>-p</option> und
+ <option>-T</option> setzen einen installierten und
+ f&uuml;r den jeweiligen Drucker konfigurierten
+ Konvertierungsfilter voraus. So ben&ouml;tigt die Option
+ <option>-d</option> den DVI-Konvertierungsfilter. Diese
+ Filter werden im Abschnitt <link
+ linkend="printing-advanced-convfilters">
+ Konvertierungsfilter</link> ausf&uuml;hrlich
+ beschrieben.</para>
+ </note>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-c</option></term>
+
+ <listitem>
+ <para>Druckt cifplot-Dateien.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-d</option></term>
+
+ <listitem>
+ <para>Druckt DVI-Dateien.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-f</option></term>
+
+ <listitem>
+ <para>Druckt FORTRAN-Textdateien.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-g</option></term>
+
+ <listitem>
+ <para>Druckt Plot-Daten.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-i <replaceable>anzahl</replaceable></option></term>
+
+ <listitem>
+ <para>R&uuml;ckt die Ausgabe um
+ <replaceable>anzahl</replaceable> Spalten ein, lassen
+ Sie <replaceable>anzahl</replaceable> weg, wird der Text
+ um 8 Spalten einger&uuml;ckt. Beachten Sie aber, dass
+ diese Option nicht mit allen Konvertierungsfiltern
+ funktioniert.</para>
+
+ <note>
+ <para>Zwischen der Option <option>-i</option> und der
+ der Zahl darf dabei kein Leerzeichen stehen.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-l</option></term>
+
+ <listitem>
+ <para>Druckt Text inklusive vorhandener Steuerzeichen.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-n</option></term>
+
+ <listitem>
+ <para>Druckt ditroff-Dateien (ger&auml;teunabh&auml;ngiges
+ troff).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-p</term>
+
+ <listitem>
+ <para>Formatiert normalen Text mit &man.pr.1;, bevor der
+ Ausdruck erfolgt.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-T <replaceable>titel</replaceable></option></term>
+
+ <listitem>
+ <para>Verwende <replaceable>titel</replaceable> auf dem
+ &man.pr.1;-Deckblatt anstelle des Dateinamens. Diese
+ Option ist nur wirksam, wenn sie gemeinsam mit der
+ Option <option>-p</option> verwendet.</para>
+ </listitem>
+ </varlistentry>
- <para></para>
+ <varlistentry>
+ <term><option>-t</option></term>
+
+ <listitem>
+ <para>Druckt troff-Daten.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><option>-v</option></term>
+
+ <listitem>
+ <para>Druckt Rasterdaten.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Dazu ein Beispiel. Der folgende Befehl druckt eine
+ formatierte Version der Manualpage zu &man.ls.1; auf den
+ Standarddrucker:</para>
+
+ <screen>&prompt.user; <userinput>zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t</userinput></screen>
+
+ <para>&man.zcat.1; dekomprimiert den Quellcode der Manualpage
+ &man.ls.1; und reicht ihn an &man.troff.1; weiter, das
+ ihn formatiert und daraus GNU troff-Daten erzeugt. Diese
+ werden wiederum an &man.lpr.1; weitergereicht, das den
+ Druckauftrag schlie&szlig;lich an
+ <application>LPD</application> &uuml;bergibt. Da die Option
+ <option>-t</option> von &man.lpr.1; verwendet wurde,
+ konvertiert das Drucksystem die GNU troff-Daten zuvor in
+ ein Format, das der Standarddrucker verstehen und ausgeben
+ kann.</para>
</sect3>
<sect3 id="printing-lpr-options-job-handling">
- <title>* Druckauftrags-Optionen</title>
+ <title>Druckauftr&auml;ge verwalten</title>
+
+ <para>Die folgenden Optionen von &man.lpr.1; weisen
+ <application>LPD</application> an, den Druckauftrag auf
+ verschiedene Art und Weise zu behandeln:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>-# <replaceable>anzahl</replaceable></term>
+
+ <listitem>
+ <para>Erzeugt <replaceable>anzahl</replaceable> Ausdrucke
+ jeder im Druckauftrag enthaltenen Datei anstelle eines
+ einzigen Exemplars. Diese Option kann von einem
+ Administrator deaktiviert werden, um die Beanspruchung
+ des Druckers zu verringern. Lesen Sie den Abschnitt
+ <link linkend="printing-advanced-restricting-copies">
+ Den Ausdruck von mehreren Kopien verhindern</link>,
+ wenn Sie diese Funktion ben&ouml;tigen.</para>
+
+ <para>Das folgende Beispiel druckt drei Kopien der Datei
+ <filename>parser.c</filename>, gefolgt von drei Kopien
+ von <filename>parser.h</filename> auf den
+ Standarddrucker:</para>
+
+ <screen>&prompt.user; <userinput>lpr -#3 parser.c parser.h</userinput></screen>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-m</term>
+
+ <listitem>
+ <para>Verschickt eine E-Mail, nachdem der Druckauftrag
+ beendet wurde. Verwenden Sie diese Option, sendet
+ <application>LPD</application> Ihnen eine E-Mail, wenn
+ es die Bearbeitung Ihres Druckauftrages abgeschlossen
+ hat. Diese Nachricht enth&auml;lt Informationen
+ dar&uuml;ber, ob Ihr Auftrag erfolgreich erledigt wurde
+ oder ob ein Fehler auftrat. Ist dies der Fall, wird
+ meist noch angegeben, welcher Fehler auftrat.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-s</term>
+
+ <listitem>
+ <para>Kopiert die Dateien nicht in das
+ Spooling-Verzeichnis, sondern verlinkt stattdessen
+ symbolisch auf diese Dateien.</para>
+
+ <para>Wenn Sie einen umfangreichen Druckauftrag erstellen,
+ werden Sie diese Option wahrscheinlich verwenden wollen.
+ Einerseits sparen Sie dadurch Speicherplatz im
+ Spooling-Verzeichnis (im schlimmsten Fall k&ouml;nnte
+ Ihr Druckauftrag ansonsten das Dateisystem des
+ Spooling-Verzeichnis zum &Uuml;berlaufen bringen),
+ andererseits sparen Sie dadurch auch Zeit, weil
+ <application>LPD</application> die in Ihrem Druckauftrag
+ enthaltenen Dateien nicht in das Spooling-Verzeichnis
+ kopieren muss.</para>
+
+ <para>Da <application>LPD</application> in diesem Fall die
+ Originaldateien verwendet, muss sichergestellt sein,
+ dass diese nicht ver&auml;ndert werden, bevor der
+ Ausdruck abgeschlossen ist.</para>
+
+ <note>
+ <para>Wenn Sie auf einen entfernten Drucker drucken,
+ muss <application>LPD</application> die Dateien dennoch
+ vom lokalen auf den entfernten Rechner kopieren. In
+ diesem Fall spart die Option <option>-s</option>
+ Speicherplatz lediglich im lokalen
+ Spooling-Verzeichnis, nicht aber im entfernten. Dennoch
+ ist diese Option auch in diesem Fall n&uuml;tzlich.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-r</term>
- <para></para>
+ <listitem>
+ <para>L&ouml;scht die im Druckauftrag enthaltenen Dateien,
+ nachdem sie in das Spooling-Verzeichnis kopiert oder
+ unter Verwendung der Option <option>-s</option>
+ gedruckt werden. Verwenden Sie diese Option daher
+ nur mit &auml;u&szlig;erster Vorsicht!</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</sect3>
<sect3 id="printing-lpr-options-misc">
- <title>* Titelseiten-Optionen</title>
+ <title>Deckblatt-Optionen</title>
+
+ <para>Die folgenden &man.lpr.1;-Optionen passen den Text an,
+ der auf einem Deckblatt eines Druckauftrages ausgegeben
+ wird. Wird die Ausgabe von Deckbl&auml;ttern auf dem
+ Zieldrucker unterdr&uuml;ckt, bleiben diese Optionen
+ wirkungslos. Lesen Sie den Abschnitt <link
+ linkend="printing-advanced-header-pages">Deckbl&auml;tter</link>,
+ wenn Sie diese Funktion ben&ouml;tigen.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>-C <replaceable>text</replaceable></term>
+
+ <listitem>
+ <para>Ersetzt den Rechnernamen auf dem Deckblatt durch
+ <replaceable>text</replaceable>. Der Rechnername ist
+ dabei in der Regel der Name des Rechners, auf dem der
+ Druckauftrag erstellt wurde.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-J <replaceable>text</replaceable></term>
- <para></para>
+ <listitem>
+ <para>Ersetzt den Namen des Druckauftrages auf dem
+ Deckblatt durch <replaceable>text</replaceable>. Der
+ Name des Druckauftrages entspricht in der Regel dem
+ Namen der ersten Datei des Druckauftrages oder
+ <filename>stdin</filename>, wenn Sie die
+ Standardeingabe an den Drucker weiterleiten.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>-h</term>
+
+ <listitem>
+ <para>Verhindert den Ausdruck von Deckbl&auml;ttern.</para>
+
+ <note>
+ <para>Ob diese Option funktioniert, h&auml;ngt von der
+ Art und Weise ab, wie Deckbl&auml;tter auf Ihrem
+ System erzeugt werden. Lesen Sie den Abschnitt
+ <link linkend="printing-advanced-header-pages">
+ Deckbl&auml;tter</link> f&uuml;r weitere
+ Informationen.</para>
+ </note>
+ </listitem>
+ </varlistentry>
+ </variablelist>
</sect3>
</sect2>
<sect2 id="printing-lpc">
- <title>* Drucker verwalten</title>
+ <title>Drucker verwalten</title>
+
+ <para>Als Administrator Ihres Systems ist es Ihre Aufgabe, Drucker
+ zu installieren, zu konfigurieren und zu testen. Um mit Ihrem
+ Drucker zu kommunizieren, k&ouml;nnen Sie &man.lpc.8; verwenden.
+ Dadurch sind Sie in der Lage,</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ihre Drucker zu starten und zu beenden.</para>
+ </listitem>
+
+ <listitem>
+ <para>Die Warteschlangen Ihrer Drucker zu aktivieren und zu
+ deaktivieren.</para>
+ </listitem>
+
+ <listitem>
+ <para>Die Reihenfolge der Druckauftr&auml;ge zu
+ &auml;ndern.</para>
+ </listitem>
+ </itemizedlist>
- <para></para>
+ <para>Am Anfang dieses Abschnitts steht die Erkl&auml;rung
+ einiger Begriffe. Wenn ein Drucker <emphasis>beendet</emphasis>
+ ist, wird der Inhalt seiner Warteschlange nicht gedruckt.
+ Druckauftr&auml;ge k&ouml;nnen zwar weiterhin erstellt werden,
+ diese verbleiben aber solange in der Warteschlange, bis der
+ Drucker wieder <emphasis>gestartet</emphasis> oder die
+ Warteschlange gel&ouml;scht wird.</para>
+
+ <para>Ist eine Warteschlange <emphasis>deaktiviert</emphasis>,
+ kann (mit Ausnahme von <username>root</username>) kein Benutzer
+ mehr einen Druckauftrag erteilen. Ist die Warteschlange hingegen
+ <emphasis>aktiviert</emphasis>, k&ouml;nnen Druckauftr&auml;ge
+ erteilt werden. Ist ein Drucker zwar
+ <emphasis>gestartet</emphasis>, die Warteschlange hingegen
+ <emphasis>deaktiviert</emphasis>, werden dennoch alle noch in
+ der Warteschlange vorhandenen Druckauftr&auml;ge gedruckt.</para>
+
+ <para>Im Allgemeinen ben&ouml;tigen Sie
+ <username>root</username>-Rechte, um &man.lpc.8; einsetzen zu
+ k&ouml;nnen. Als normaler Benutzer erlaubt es Ihnen &man.lpc.8;
+ lediglich, den Druckstatus abzufragen und einen h&auml;ngenden
+ Drucker neu zu starten.</para>
+
+ <para>Es folgt nun eine Zusammenfassung der Befehle von
+ &man.lpc.8;. Die meisten dieser Befehle ben&ouml;tigen das
+ Argument <replaceable>printer-name</replaceable>, mit dem Sie
+ angeben, auf welchen Drucker der Befehl angewendet werden soll.
+ Wenn Sie f&uuml;r <replaceable>printer-name</replaceable>
+ <literal>all</literal> angeben, wird der Befehl auf alle in
+ <filename>/etc/printcap</filename> definierten Drucker
+ angewendet.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><command>abort
+ <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Bricht den aktuellen Druckauftrag ab und beendet den
+ Drucker. Solange die Warteschlange aktiviert ist,
+ k&ouml;nnen allerdings weiterhin Druckauftr&auml;ge
+ erteilt werden.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>clean
+ <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Entfernt veraltete Dateien aus dem
+ Spooling-Verzeichnis des Druckers, da diese manchmal nicht
+ vollst&auml;ndig von <application>LPD</application>
+ entfernt werden k&ouml;nnen. Dies ist insbesondere dann
+ der Fall, wenn w&auml;hrend der Bearbeitung des
+ Druckauftrages Fehler auftraten. Dieser Befehl sucht
+ dabei nach Dateien, die nicht in das Spooling-Verzeichnis
+ geh&ouml;ren und entfernt diese.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>disable
+ <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Deaktiviert die Annahme neuer Druckauftr&auml;ge.
+ Solange der Drucker nicht beendet wird, werden weiterhin
+ alle in der Warteschlange enthaltenen Auftrage bearbeitet
+ und gedruckt. <username>root</username> kann jederzeit
+ Druckauftr&auml;ge erstellen, selbst dann, wenn die
+ Druckerwarteschlange deaktiviert ist.</para>
+
+ <para>Dieser Befehl ist besonders n&uuml;tzlich, wenn Sie
+ einen neuen Drucker testen m&uuml;ssen oder einen neuen
+ Filter installiert haben. Dazu deaktivieren Sie die
+ Warteschlange des Druckers und erstellen Ihre
+ Druckauftr&auml;ge als <username>root</username>.
+ Andere Benutzer k&ouml;nnen erst dann einen Druckauftrag
+ erstellen, wenn Sie Ihre Tests abgeschlossen haben und
+ die Druckerwarteschlange mit <command>enable</command>
+ wieder reaktivieren.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>down <replaceable>printer-name</replaceable>
+ <replaceable>nachricht</replaceable></command></term>
+
+ <listitem>
+ <para>Beendet einen Drucker. &Auml;quivalent zu
+ <command>disable</command>, gefolgt von
+ <command>stop</command>. Die von Ihnen definierte
+ <replaceable>nachricht</replaceable> wird als
+ Druckerstatus angezeigt, wenn ein Benutzer die
+ Warteschlange des Druckers mit &man.lpq.1; oder
+ mit <command>lpc status</command> abfragt.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>enable
+ <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Aktiviert die Warteschlange eines Druckers. Erteilte
+ Druckauftr&auml;ge k&ouml;nnen zwar erteilt werden, diese
+ werden aber nur dann gedruckt, wenn der Drucker auch
+ gestartet ist.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>help
+ <replaceable>command-name</replaceable></command></term>
+
+ <listitem>
+ <para>Ausgaben von hilfreichen Informationen zu
+ <replaceable>command-name</replaceable>. Wird kein
+ <replaceable>command-name</replaceable> angegeben, wird
+ die Liste der verf&uuml;gbaren Befehle ausgegeben.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>restart
+ <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Startet den Drucker. Normale Benutzer k&ouml;nnen
+ diesen Befehl verwenden, um einen h&auml;ngenden
+ <application>LPD</application> zu reaktivieren, sie sind
+ allerdings nicht berechtigt, einen Drucker zu starten,
+ der mit <command>stop</command> oder <command>down</command>
+ beendet wurde. Dieser Befehl ist &auml;quivalent zu
+ <command>abort</command>, gefolgt von
+ <command>start</command>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>start
+ <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Startet den Drucker, um die in der Warteschlange
+ enthaltenen Auftr&auml;ge zu drucken.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>stop
+ <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Beendet den Drucker. Der Drucker beendet den aktiven
+ Druckauftrag noch, danach wird kein weiterer in der
+ Warteschlange enthaltener Auftrag gedruckt. Obwohl der
+ Drucker beendet wurde, k&ouml;nnen weiterhin
+ Druckauftr&auml;ge erteilt werden, solange die
+ Warteschlange nicht deaktiviert wurde.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>topq <replaceable>printer-name</replaceable>
+ <replaceable>job-or-username</replaceable></command></term>
+
+ <listitem>
+ <para>Sortiert die Druckerwarteschlange des Druckers
+ <replaceable>printer-name</replaceable> um, wobei
+ der Auftrag mit der angegebenen
+ <replaceable>Auftragsnummer</replaceable>,
+ oder Druckauftr&auml;ge, die von
+ <replaceable>username</replaceable> erstellt wurden, an
+ den Beginn der Warteschlange gesetzt werden. F&uuml;r
+ diesen Befehl kann die Option <literal>all</literal>
+ nicht als <replaceable>printer-name</replaceable>
+ verwendet werden.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><command>up
+ <replaceable>printer-name</replaceable></command></term>
+
+ <listitem>
+ <para>Startet einen Drucker. Das Gegenst&uuml;ck zu
+ <command>down</command>. &Auml;quivalent zu
+ <command>start</command>, gefolgt von
+ <command>enable</command>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>&man.lpc.8; akzeptiert diese Befehle direkt auf der
+ Kommandozeile. Geben Sie keinen Befehl ein, wird
+ &man.lpc.8; im interaktiven Modus gestartet. In diesem
+ Modus k&ouml;nnen Sie solange Befehle eingeben, bis Sie
+ <command>exit</command> oder <command>quit</command>
+ eingeben.</para>
</sect2>
</sect1>
diff --git a/de_DE.ISO8859-1/books/handbook/security/chapter.sgml b/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
index f559a35b17..fddef7b815 100644
--- a/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/security/chapter.sgml
@@ -3,7 +3,7 @@
The FreeBSD German Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/security/chapter.sgml,v 1.131 2005/09/04 09:27:23 jkois Exp $
+ $FreeBSDde: de-docproj/books/handbook/security/chapter.sgml,v 1.132 2005/09/06 18:55:34 jkois Exp $
basiert auf: 1.281
-->
@@ -3575,7 +3575,7 @@ options IPSEC_ESP #IP security (crypto; define w/ IPSEC)</screen>
<indexterm>
<primary>VPN</primary>
- <secondary>Einrichtung</secondary>
+ <secondary>einrichten</secondary>
</indexterm>
<para>Dieses Szenario hat die folgenden Vorausetzungen:</para>
diff --git a/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml b/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml
index 082033a620..1d64d5feb7 100644
--- a/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml
+++ b/de_DE.ISO8859-1/books/handbook/x11/chapter.sgml
@@ -2,8 +2,8 @@
The FreeBSD Documentation Project
$FreeBSD$
- $FreeBSDde: de-docproj/books/handbook/x11/chapter.sgml,v 1.38 2005/09/03 17:01:41 jkois Exp $
- basiert auf: 1.166
+ $FreeBSDde: de-docproj/books/handbook/x11/chapter.sgml,v 1.39 2005/09/13 16:56:57 jkois Exp $
+ basiert auf: 1.167
-->
<chapter id="x11">