2009-08-06 6 views
1

Ich verwende derzeit die Memoirenklasse, um einige Gedichte zu setzen. Der \ Gedichttitel Befehl gibt mir einen zentrierten Gedichttitel, aber ich würde lieber den Titel bündig mit der Kante des Gedichtkörpers haben. Ich habe den Befehl \ poemtitle neu definiert, um die automatische Zentrierung zu entfernen. Die Umgebungsumgebung coupled \ settowidth {\ verswert} {} zentriert das Gedicht mit linker Ausrichtung. Um den Titel bündig mit der Versumgebung zu machen, rufe ich den Titel in der Umgebung an, wie folgt:Latex-Memoiren, die Vers-Umgebung, und Gedichtzitat

\settowidth{\versewidth}{longest poem line here} 
\begin{verse}[\versewidth] 
\PoemTitle*{Poem Tite} 
\PlainPoemTitle 

...Poem body... 

\end{verse} 

Dies jedoch manchmal die erste Zeile des Gedichts Einzug, oder legt den Titel auf einen Einzug. Die einzige andere Lösung wäre ich sehen den Titel innerhalb der eigenen Vers-Umgebung, wie folgt aus:

\settowidth{\versewidth}{longest poem line here} 
\begin{verse}[\versewidth] 
\PoemTitle*{Poem Tite} 
\PlainPoemTitle 
\end{verse} 

\settowidth{\versewidth}{longest poem line here} 
\begin{verse} 

...Poem body... 

\end{verse} 

Gibt es einen besseren Weg, dies zu tun? Oder habe ich etwas in der Memoirandokumentation (die ich schon mehrmals gelesen habe) vermisst?

EDIT: Vielleicht hätte ich eine klarere Frage gestellt: Gibt es einen Satz von Befehl, den ich Latex ausstellen kann, wird die Randeinrückung aus dem \ Vers Befehl berechnen, dann den Rand auf das \ Gedichttitel anwenden, so dass die Gedichttitel endet mit der linken Kante des Textes, ohne \ Gedichttitel in seiner eigenen Umgebung einzustellen?

+0

@Mica S .: Könnten Sie bitte klären, was an meiner Antwort nicht zufriedenstellend ist? Es produziert den Gedichttitel linksbündig wie der Gedichtkörper, richtig vom Gedichtkörper beabstandet, in der richtigen Schrift und ohne unerwünschte Einrückung. Außerdem spielt es gut mit anderen zusammen: Wenn ein Befehl (oder eine Paketoption) die Schriftart oder den Abstand des Titels ändert, verhält sich das Makro, das ich Ihnen gegeben habe, weiterhin korrekt. Habe ich eine wichtige Anforderung vermisst? –

+0

Danke für die Klarstellung. Gibt es einen Grund, warum du den Titel nicht in die gleiche 'Vers'-Umgebung bringen willst wie den Körper des Gedichts? –

+0

Ich versuche immer so wenig Markup/Code wie möglich zu schreiben - um das Dokument so lesbar wie möglich zu halten. Plus, von meinem Post oben: "Dies jedoch manchmal die erste Zeile des Gedichts einzuteilen, oder legt den Titel auf einen Einzug." – Mica

Antwort

2

Ich habe keine Erfahrung mit der memoir Klasse oder Satz Gedichte, so dass ich nicht weiß, ob es eine andere Möglichkeit war, dies zu tun, aber hier ist eine Lösung, die zu tun scheint, was Sie wollen (vorausgesetzt, Sie verwenden immer die Sternform von \PoemTitle).

 
\newcommand{\leftPoemTitle}[1]{{\PoemTitlefont{#1}}\\[\afterPoemTitleskip]} 

\settowidth{\versewidth}{longest poem line here} 
\begin{verse} 
\leftPoemTitle{Poem Title} 

...Poem body... 

\end{verse} 

Dies erzeugt das Gedicht Titel wie das Gedicht Körper gerechtfertigt links, richtig abgesehen von dem Gedichte Körper angeordnet ist, in der richtigen Schrift, und ohne unerwünschte Vertiefung. Darüber hinaus spielt es gut mit anderen zusammen: Wenn ein Befehl (oder eine Paketoption) die Schriftart oder den Abstand des Titels ändert, verhält sich das Makro \leftPoemTitle weiterhin korrekt.


Wenn ich deine Bearbeitung richtig verstehe, wollen Sie das Gedicht Titel außerhalb die verse Umgebung sein, der das Gedicht Körper enthält, aber immer noch so zerklüftet, dass der Titel mit dem Körper gerechtfertigt bleibt. Es sei denn, Sie haben einen besonderen Grund, dies zu tun, ich denke, die obige Lösung ist besser, aber egal.

Kapitel 19 der memoir Klassenhandbuch sagt, dass die verse Umgebung um die Länge \vleftmargin eingerückt ist, so dass Sie Ihren Titel nur um diese Länge einrücken können. Ich nehme an, Sie werden immer noch der Titel in einem etwas größeren Schrift sein wollen, so dass die folgende Lösung sollte es tun:

 
\newcommand{\myPoemTitle}[1]{\noindent\hspace{\vleftmargin}{\PoemTitlefont #1}} 

\myPoemTitle{Poem Title} 
\settowidth{\versewidth}{longest poem line here} 
\begin{verse} 

...Poem body... 

\end{verse} 

Beachten Sie, dass diese den Titel etwas näher an den Körper als die erste Lösung setzt. Sie können dieses Verhalten in der ersten Lösung erhalten, indem Sie \afterPoemTitleskip neu definieren.

+0

Der untere Teil funktioniert größtenteils. Ich werde weiter daran arbeiten: D, aber das war, was ich gesucht habe. – Mica