2009-08-06 2 views
1

私は現在、回想録のクラスを使用していくつかの詩をタイプセットしています。 \ poemtitleコマンドは私に中心の詩のタイトルを与えますが、私はむしろタイトルを詩の本体の端と一致させたいでしょう。 \ poemtitleコマンドを再定義して自動センタリングを削除しました。 \ verse環境\ coupledtowidth {\ versewidth} {}は左揃えで詩を中心にしているので、詩環境と同じタイトルを得るためには、次のように\ verse環境内でタイトルを呼んでいます。ラテックスの回想録、詩の環境、および poemtitle

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

...Poem body... 

\end{verse} 

ただし、時には詩の最初の行をインデントするか、題名をインデントに設定します。私が見る他の唯一の解決策は、このような独自の詩環境内にタイトルを設定することです:

\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} 

これを行うより良い方法はありますか?または私は回顧録の文書(私は何度も読んでいます)で何かを忘れましたか?

EDIT:おそらく私はより明確な質問をしていたはずです。ラテックスに発行できるコマンドがありますか?\ verseコマンドの余白インデントを計算し、そのマージンを\ poemtitleに適用してpoem titleは\ verse環境に\ poemtitleを設定せずに、テキストの左端と一杯になりますか?

+0

@Mica S .:あなたは私の答えについて不満足な点を明確にしてください。これは、詩の本文のように左揃えにした詩のタイトルを生成し、詩の本文から正しく離して、正しい書体で、望ましくない刻み目を付けないようにします。さらに、それは他の人とうまくいく:いくつかのコマンド(またはパッケージオプション)がタイトルのフォントやスペースを変更すると、私が与えたマクロは引き続き正しく動作する。私はいくつかの重要な要件を逃しましたか? –

+0

清算していただきありがとうございます。詩の本文と同じ「詩」環境に題名を載せたくない理由がありますか? –

+0

私はできるだけ人間が読めるように文書を保つために、できるだけ小さなマークアップ/コードを書くようにしています。プラス、上記の私の投稿から: "これは、時には詩の最初の行をインデントするか、インデントでタイトルを設定します。" – Mica

答えて

2

私はmemoirクラスやタイプセットの詩に慣れていないので、あなたがこれを行う方法が他にもあるかどうかはわかりませんが、あなたが常に\PoemTitleという星型を使用していると仮定します)。

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

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

...Poem body... 

\end{verse} 

これは、詩の体のように正当化左詩のタイトルを生成し、正しく正しい書体で、かつ望ましくないインデントで、詩本体から離れました。さらに、それは他人とうまくいく:いくつかのコマンド(またはパッケージオプション)がタイトルのフォントやスペースを変更すると、この\leftPoemTitleマクロは引き続き正しく動作します。


私が正しくあなたの編集を理解していれば、あなたは詩のタイトルは詩本体が含まれていverse環境になりたい、まだタイトルが体で左寄せされるようにインデント。これを行う特別な理由がなければ、上記の解決策は良いと思いますが、それは気にしないでください。

memoirクラスマニュアルの第19章では、verseの環境は、長さが\vleftmarginで字下げされているため、その長さだけタイトルをインデントすることができます。

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

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

...Poem body... 

\end{verse} 

注これは最初のソリューションよりも体にやや近いタイトルを置くこと:私は、次の解決策は、トリックを行う必要がありますので、あなたはまだ、タイトルは少し大きめの書体になりたいだろうと仮定します。 \afterPoemTitleskipを再定義することで、最初の解決策でこの動作を得ることができます。

+0

ほとんどの場合、底部が機能します。私はそれを微調整し続けます:Dしかし、それは私が探していたものでした。 – Mica

関連する問題