2010-06-25 20 views
5

Ich erstelle Dokumente mit der Klasse memoir in XeLaTeX. Ich habe Probleme beim Erstellen der richtigen Absatzdarstellung, und insbesondere bei der Erstellung von Absätzen mit \paragraph{}lorem ipsum ignoriert LaTeX die Einstellungen \parskip und \parindent.Die Verwendung von parindent und parskip mit paragraph {} hat keinen Effekt

Zum Beispiel, wenn ich ein Dokument

\documentclass[oneside,11pt]{memoir} 
\usepackage{fontspec}% font selecting commands 
\usepackage{xunicode}% unicode character macros 
\usepackage{xltxtra} % some fixes/extras 

\begin{document} 
\setlength{\parskip}{0pt} % 1ex plus 0.5ex minus 0.2ex} 
\setlength{\parindent}{0pt} 
\pagestyle{plain} 

\paragraph{}orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim 
urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 
\paragraph{}ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, 
mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst. 
\end{document} 

Diese Schriftsätze haben etwa so:

      orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst.

      ipsum dolor sit amét, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst.

Dies hat falsch Absatzeinzüge beide und überspringen, trotz \parskip und \parindent wird auf Null gesetzt.

Man würde erwarten, dass die gesetzte Ausgabe wie folgt aussehen (was eine hässliche Wahl der Absatzformatierung, sondern stellt die Frage):

orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst.
ipsum dolor sitzen amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst.

Ich stelle fest, dass, wenn ich die Absätze durch zwei Zeilenumbrüche trennen (das heißt nicht \paragraph{} nicht verwenden, und) die \parskip und \parindent Einstellungen geehrt werden.

Ich würde sehr dankbar sein, zu wissen, warum, wenn \paragraph{} verwendet, die \parskip und \parindent Befehle nicht geehrt werden, und wie könnte man entweder diese Befehle geehrt oder alternativ welche Befehle würde den gleichen Effekt mit den Absätzen mit \paragraph{} erstellt erreichen .

Vielen Dank für das Lesen.

Brian

Antwort

5

@Brian - Ich habe damit begonnen, dies in einen Kommentar nach Ihrem Kommentar zu Norman Greys Antwort zu schreiben, aber das Codebeispiel hat es zu groß gemacht. \ paragraph {} ändert nicht den Satz von regulären Absätze. Es ist nur so, dass der Absatz, der mit dem Befehl \ paragraph {} begonnen wurde, kontra-intuitiv kein regulärer Absatz ist; Es ist ein Abschnittselement im Dokument. Spielen Sie mit dem folgenden Code, um zu sehen, wie sich \ parskip und \ parindent auf die regulären Absätze auswirken, nicht aber auf das Element "\ paragraph". (Tatsächlich beeinflusst \ parskip sogar die \ paragraph {} Elemente, aber der Abstand vor einem \ paragraph {} Element wird immer etwas mehr als \ parskip berechnet, weshalb immer ein Leerzeichen zwischen \ paragraph {} Elementen vorhanden ist, auch wenn \ Parskip ist 0.)

Ich denke, 99% der LaTeX-Dokumente verwenden wahrscheinlich nie den \ paragraph {} Abschnitt Befehl. Reguläre Absätze in LaTeX sind durch (1) eine Leerzeile ("normale Absätze" 1 ​​und 2 unten) oder (2) durch den Befehl \ par ("reguläre Absätze" 3 und 4 unten) getrennt.

\documentclass[oneside,11pt]{memoir} 
\usepackage{fontspec}% font selecting commands 
%\usepackage{xunicode}% unicode character macros 
%\usepackage{xltxtra} % some fixes/extras 

\begin{document} 
\setlength{\parskip}{0pt} % 1ex plus 0.5ex minus 0.2ex} 
\setlength{\parindent}{0pt} 
\pagestyle{plain} 

\paragraph{paragraph section 2}adorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim 
urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 

regular paragraph 1 -- orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim 
urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 

regular paragraph 2 -- orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim 
urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 

\paragraph{paragraph section 2}ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, 
mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea dictumst. 
\par regular paragraph 3 -- orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 
\par regular paragraph 4 -- orem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam enim urna, mattis eu aliquet eget, condimentum id nibh. In hac habitasse platea 
dictumst. 

\end{document} 
+0

@Herbert: Vielen Dank für die Antwort. Ich benutze '\ paragraph', weil die Absätze gelegentlich nummeriert und gezählt werden müssen, was ich als eine gute Lösung verstehe, obwohl vielleicht nicht die einzige, die auf dieser Frage basiert: http://stackoverflow.com/questions/543208 –

+0

Brian - Das macht Sinn, aber der \ paragraph {} Abschnitt Befehl ist nicht der, den ich wählen würde. Die Verwendung der Enumerate-Listen-Umgebung ist wahrscheinlich die beste Wahl, auch wenn es einige kontraintuitive Formatierungsänderungen geben könnte, die Sie möglicherweise benötigen. Wenn Sie mit dem Abschnitt \ paragraph {} fortfahren möchten, können Sie das Paket "secsty" verwenden, um die Nummerierung hinzuzufügen und die Formatierung zu ändern (lesen Sie die sectsty-Dokumentation für weitere Informationen), oder wechseln Sie einfach und gehen Sie mit der Liste. –

+1

Nein, ungeachtet des Hinweises in der anderen Antwort, auf die Sie hingewiesen haben (und mit Herbert einverstanden sind), ist "\ paragraph" nicht das, was Sie hier haben wollen, weil es nur eine seltsame Schreibweise ist, also macht es nur Sinn wenn es in einem '\ subsubsection' verwendet wird. Es ist ein Schnittbefehl - nichts mit Absätzen zu tun. Die Definition von '\ N' in Ihrer ursprünglichen Frage ist die beste Lösung hier. Ich musste das selbst tun, fand kein Paket, das es tat, und griff auf (etwas Ähnliches) dieser Lösung zurück. Für ziemlich grundlegende LaTeX-Gründe ist es schwierig, Absätze automatisch zu nummerieren. –

2

Das sieht wie korrektes Verhalten aus. Was denkst du, was \paragraph tun sollte? Tipp: Es ist nicht zum Trennen von Absätzen.

Laut Memoer-Dokumentation ist \paragraph einer der Schnittbefehle nach \subsubsection und vor \subparagraph. Das Argument für den Befehl, den Sie in Ihrem Beispiel leer machen, ist der Titel des Absatzes.

Sie trennen Absätze voneinander durch eine Leerzeile mit (und dies ist der Fall, dass Sie gefunden haben, wo die \parskip und \parindent Dimensionen geehrt werden) oder in einigen etwas exotischere Fälle von \par verwenden.

+0

Danke für die Antwort. Ich würde denken, '\ paragraph 'würde die Sektion basierend auf Absätzen bereitstellen, ohne den Satz des Absatzes zu ändern - dh Ehre' \ par {indent, skip} 'und/oder einfach nicht seinen eigenen Absatzeinzug (bis zu einem gewissen Grad) einzuführen. und überspringen. Ich wäre dankbar für Gedanken darüber, wie man Formatierungen entfernen kann, die mit dem Befehl zum Unterteilen von Abschnitten verbunden sind. –

+0

@Brian - Ich denke, das beste Heilmittel, in Ihrem Fall, ist nicht den Befehl \ paragraph {} überhaupt zu verwenden. Du scheinst nichts zu gebrauchen. Warum benutzt du es? –