% \iffalse meta-comment % % Copyright (C) 2002 by John Burt % -------------------------------------------------- % % This file may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.2 % of this license or (at your option) any later version. % The latest version of this license is in: % % http://www.latex-project.org/lppl.txt % % and version 1.2 or later is part of all distributions of LaTeX % version 1999/12/01 or later. % % \fi % % \iffalse %\NeedsTeXFormat{LaTeX2e}[1997/12/01] %\ProvidesPackage{poemscol} % [2002/06/05 v1.01 poemscol file] % %<*driver> \documentclass{ltxdoc} \usepackage{makeidx,multicol,keyval,ifthen} \EnableCrossrefs \CodelineIndex \RecordChanges \begin{document} \DocInput{poemscol.dtx} \end{document} % % \fi % % \CheckSum{3311} % % \CharacterTable % {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z % Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z % Digits \0\1\2\3\4\5\6\7\8\9 % Exclamation \! Double quote \" Hash (number) \# % Dollar \$ Percent \% Ampersand \& % Acute accent \' Left paren \( Right paren \) % Asterisk \* Plus \+ Comma \, % Minus \- Point \. Solidus \/ % Colon \: Semicolon \; Less than \< % Equals \= Greater than \> Question mark \? % Commercial at \@ Left bracket \[ Backslash \\ % Right bracket \] Circumflex \^ Underscore \_ % Grave accent \` Left brace \{ Vertical bar \| % Right brace \} Tilde \~} % % % \changes{v1.0}{2002/06/05}{Initial version} % \changes{v.1.01}{20002/06/25}{added macros for titles of poems % without formal titles. Corrected typographical errors in manual.} % % \GetFileInfo{poemscol.sty} % % \DoNotIndex{\newcommand,\newenvironment,\def,\edef,\else,\renewcommand,\makeatletter,\makeatother} % \DoNotIndex{\abovedisplayskip,\belowdisplayskip,\abovedisplayshortskip,\belowdisplayshortskip} % \DoNotIndex{\newcommand, \section, \subsection, \subsubsection, % \fileversion,} \DoNotIndex{\filedate, \docdate, \leavevmode, % \vspace, \small, \normalsize, \fontsize,} \DoNotIndex{\newcommand, % \section, \subsection, \subsubsection, \fileversion} % \DoNotIndex{\filedate, \docdate, \leavevmode, \vspace, \small, % \normalsize, \fontsize} \DoNotIndex{\selectfont, \abovedisplayskip, % \belowdisplayskip, \setlength, \item} \DoNotIndex{\global, \input, % \def, \edef, \texttt, \textsf, \setcounter} % \DoNotIndex{\pagenumbering, \oddsidemargin, \evensidemargin, % \newdimen, \renewcommand} \DoNotIndex{\makeatletter, \let, \@listi, % \@listl, \z@, \@xpt, \@xipt, \p@ , \@plus2} \DoNotIndex{\@minus5, % \@minus3, \@plus3, \makeatother, \@minus4, \relax, \pagestyle} % \DoNotIndex{\fancyhead, \fancyfoot, \thepage, \@ixp} % \DoNotIndex{\begin \botmark, \botmark, \catcode, \croppadbot, % \croppadtop} \DoNotIndex{\croppagewidth, \endverse, \equal, % \fancyfoot, \fancyhead, \fancyhf} \DoNotIndex{\fancypagestyle, % \firstmark, \footrulewidth, \hbox, \hbox, \headrulewidth} % \DoNotIndex{\hfil, \hspace, \ifthenelse, \immediate, \itemindent, % \listparindent} \DoNotIndex{\makeatletter, \nolinebreak, \openout, % \raggedbottom, \setcounter, \textrm} \DoNotIndex{\value, \vspace, % \write} % \DoNotIndex{\afterpoemtitleskip, \addtocounter, \advance, % \begin, \bf, \bigskip} % \DoNotIndex{\bigskipamount, \fi, \@fulltitle, \label, \large, \leftheader} % \DoNotIndex{\leftheadervalue, \leftmargin, \leftmargini} % \DoNotIndex{\medskip, \newcounter, \nobreak, \par, \textbf} % \DoNotIndex{\closeout,\em,\emph,\expandafter,\Huge,\it,\jobname,\kern,\newif, % \newwrite,\p@,\pageref,\renewenvironment,\rm,\scriptsize,\string, % \textsc, \unskip} % \setcounter{IndexColumns}{2} % \MakeShortVerb{|} % \def\fileversion{1.01} % \def\filedate{25 June 2002} % \def\docdate{25 June 2002} % \title{Typesetting Poetry Collections with \textsf{poemscol}\thanks{This document % corresponds to \textsf{poemscol}~\fileversion, dated \filedate.}} % \author{John Burt \\ \texttt{burt@brandeis.edu}} % \date{June 13, 2002} % \maketitle % \begin{abstract} % \textsf{poemscol} provides macros for \LaTeX\ for setting % collections of poetry. It is especially suited for setting collections % of poetry in which several volumes are combined, such as in a % critical edition of a poet's Collected Poems. It provides the structures % required to produce a critical edition of the kind specified by the % Modern Language Association's Committee on Scholarly Editions, and it % automatically marks every occasion where a stanza break falls on a % page break. % \end{abstract} % \tableofcontents % \hfuzz=50pt % \section{Introduction} % % \textsf{poemscol} provides the structures necessary for editing a % critical edition of a volume of poems or of a collection of a poet's % works. \textsf{poemscol} numbers the lines, and produces separate, % formatted endnote sections for emendations, textual collations, and % explanatory notes, tying each note the number of the line upon which % it is a comment. It also automatically generates a table of % contents, an index of titles and first lines, and divider pages for % the sections of the volumes. It produces running headers of the % form ``Emendations to pp.~xx-yy'' for the note sections. And it % marks occasions when a stanza break falls at a page break. % % Producing line numbers for verse is something for which \LaTeX\ % would seem to be especially suited. A line of verse, after all, is % not a carriage return but a logical unit, perhaps running over % several physical lines, or perhaps split into half-lines as speakers % or subjects change. With \textsf{poemscol} you mark lines, % stanzas, and entire poems up as logical units, and \LaTeX\ does your % formatting, and your counting, for you. Once you have marked out % the logical units of the poem, \textsf{poemscol} will take care of % the line numbering, and will automatically mark every textual note, % emendation, or explanatory note with the line number. % % One advantage of this kind of markup is that even if the appearance % of the poem on the page may be ambiguous, the editor's intentions % about the logical structure of the poem will be preserved in the % \LaTeX\ source. \textsf{poemscol} is designed so that even readers % who know no \LaTeX\ can understand your intentions by examining your % markup. By manipulating penalties and designing commands even for % relatively unusual circumstances, \textsf{poemscol} attempts to make % the it possible for your source files to contain markup that is % almost entirely content-based, marking the nature of the poetic % objects to be set, with only a little markup of an explicitly % typographical character. If the content of your volume changes % (say, you add or delete poems), \textsf{poemscol} will adjust, so % that you (probably) will not have to change any formatting to % produce satisfactory text output, notes sections, and tables of % contents. % % In poetry which does not have a regular stanzaic form, it is useful % to be able to mark automatically occasions where there is a stanza % break at the bottom of a page which the reader might not notice. % Doing this by hand is not only tedious and easy to get wrong, but % also a process you will have to start over again if anything about % your volume changes, if you add a poem, say, or even decide to break % a title across two lines. \textsf{poemscol} takes care of this % process, so that the editor need never worry about it, automatically % marking cases where the page break coincides with a stanza break % with a symbol. Even if you introduce a global change (such as % changing the amount of white space between stanzas), % \textsf{poemscol} will still be able to mark every case where a % stanza break falls on a page break. % % Editions of Collected Poetry might also require special structures % to reflect the fact that they are made up of the contents of several % volumes of poetry. In particular, such editions require special % structures for setting up specially formatted divider pages between % volumes. They also require tables of contents and other front matter. % \textsf{poemscol} provides these structures. % % The best features of \textsf{poemscol} are of course simply that it % is \TeX: it uses \TeX's automatic kerning and setting of ligatures, % its algorithm for justifying lines (in prose sections), and \LaTeX's % intelligent way of setting verse. % % Using \LaTeX\ to typeset critical editions offers more advantages % than simply the ability to automate tedious and easy to fumble % tasks. Most modern \TeX\ compilers have the ability to produce % output in Adobe pdf format. Adobe pdf output can be used as camera % ready copy (which is why \textsf{poemscol} adds cropmarks), saving % your publisher time and expense, and perhaps making a marginally % economic critical edition a bit easier to bring to press. % Furthermore, since typesetting the edition yourself in \LaTeX\ % obviates the publisher's own typesetting of your text, it removes % another possible source of new errors. (You should expect to work % with your publisher on the final design of the book, but \LaTeX\ is % a flexible language which will enable you to reproduce most book % designs.) Since your \LaTeX\ sources for your edition are in ASCII, % they provide a permanent record of your local intentions at every % point in your edition, whether or not those who wish to consult your % files have access to a \LaTeX\ compiler, or indeed whether or not % they can read \LaTeX code. (I have tried to design the markup so % that it will even be intelligible to people who know very little % about \LaTeX.) Finally, although \LaTeX\ is a typesetting language, % not a content markup language, the ability to create new commands % which the language offers comes very close to enabling one to % realize the ideal of completely separating content markup from % formatting. Should you wish later to produce an electronic edition % of your work, either using XML or the SGML markup approved by the % Text Encoding Initiative, transforming your texts from \LaTeX\ to % XML would largely (although not entirely) be a matter of performing % a series of global search-and-replaces, and could conceivably be % done with a perl script. % % \textsf{poemscol} is designed for typesetting lyric and narrative % poetry. With a certain amount of fiddling, it could be modified to % typeset dramatic verse, although it doesn't provide markup for the special % structures for drama (stage directions, speech tags, act and scene % environments, and so on) right now. There are, however, \LaTeX\ % style files and class files with all of the structures for % typesetting drama available on the Comprehensive \TeX\ Archive % Network (CTAN --- see http://www.tug.org for details), and there is % no reason to assume that \textsf{poemscol} could not work in % conjunction with them. (That is one reason why \textsf{poemscol} is % a style file rather than a document class.) \textsf{poemscol} is % not, however, suited for typesetting prose if one seeks to annotate % that prose by line number (as in critical editions of prose works), % although of course it can typeset prose works if one wishes to use % conventional endnotes or footnotes, and it can handle inset prose % passages in the midst of verse as well. For critical editions of prose % works, the reader would be best advised to use the \texttt{EDMAC} % format, a \TeX\ format analogous to but distinct from \LaTeX, by % John Lavagnino and Dominik Wujastyk. Because \texttt{EDMAC} is known % to break a number of \LaTeX\ structures, I assume that \texttt{EDMAC} % and \textsf{poemscol} cannot work together. But it is possible that % \textsf{edmacfss}, a \LaTeX\ style with many of the features of % \texttt{EDMAC}, will work with \textsf{poemscol}. % % \section{Dependencies} % % \textsf{poemscol} depends upon several other packages, which you % should be sure you have in your search path: \textsf{fancyhdr} for % managing the running headers, \textsf{makeidx} and \textsf{multicol} % for managing the index, \textsf{geometry}, \textsf{ifthen} and % \textsf{keyval} to simplify page geometry, \textsf{newcropmark} to add % crop marks, and \textsf{newmarn} to fix a problem with the way % \LaTeX\ handles the marginal line numbering. You should make sure % that \textsf{poemscol} is the very last package you load in your % preamble, or at least is loaded after those packages upon which it % depends. % % \subsection{A note about cropmarks} % \textsf{newcropmarks} despite its name, is completely obsolete, and I only % include it so that you can produce exactly the output I had. (It's % an old, generic \TeX\ macro that I only slightly monkeyed with.) If you % don't include the \textsf{newcropmarks} package, \LaTeX\ won't complain, and % you can use a more modern crop marks package, such as \textsf{crop}. % % \subsection{A note about marginal notes} % \textsf{newmarn} is Donald Arseneau's \textsf{marn} package, which % I deliberately broke so that it would only put marginal notes in the % left margin (as my publisher desired), even with twosided output. If % you want to put numbers on alternate margins on alternate pages % (usually the outside margin), use \textsf{marn} instead. % \textsf{marn} is obsolete, but its replacement, \textsf{mparhack}, % doesn't work with \textsf{poemscol} % % \section{Marking up individual poems} % First, a word about the command names. The command names may seem % ugly and long. And there are separate commands for many tasks that % seem closely related, such as a command to mark the title of a % section of a poetic sequence, and a separate command to mark a % subsection. But the names do describe pretty much what % each macro does, and they do specify exactly what the object they % mark is supposed to be. The idea is that all of the real typesetting and % formatting can be done by the style package files, by \textsf{poemscol}. % In the actual body of the edition, the markup should look like content % markup, marking objects as a poem title, as a stanza, as a line, and so on. % \textsf{poemscol} gives all of these content terms typographical % meaning. Although what this package provides is a set of typesetting % macros, not content markup in the manner of SGML, I have designed the % macros to resemble content markup as much as possible. % % There are also many commands for special purposes whose necessity % may not seem clear until the editor finds him or herself in the jam % the command was designed for. If, for instance, a long poem has % several sections whose titles are only roman numerals, the ordinary % |\poemsectiontitle{}| command may be inadequate, since there may be % other poems in sections that do the same thing, and % |\poemsectiontitle{}| will confuse the cross-references % \textsf{poemscol} uses to set the page numbers that refer to the % section in the textual notes. The |\poemsectiontitlenocontents{}{}| % macro below solves this problem by having two arguments, the first % for the section title, and the second for the poem title, so that % every section simply titled ``III'' will have a unique cross % reference. % % \subsection{The title of the poem} % % \DescribeMacro{\poemtitle}|\poemtitle{}|, as its name implies, sets % the title of the poem. \textsf{poemscol} gives default values for % such things as the font size, the separation between the top of the % title and the bottom of the previous poem, the separation between % the bottom of the title and the first line, and so on. It also sets % penalties in order to encourage page breaks just before a title, and % to discourage page breaks between a title and a poem. You can % change all these values in your header file by changing the value of % the parameters listed below in the implementation section using % either |\setlength| or |\renewcommand| (depending upon what you are % changing). |\poemtitlefont| globally sets the font size (and % leading) for all poem titles in the main text. % |\contentspoemtitlefont| globally sets the font size (and leading) % for poem titles in the table of contents. |\afterpoemtitleskip| % sets the vertical separation between a poem and its title. % |\afterpoemskip| sets the vertical separation between the end of a % poem and the title of the next poem. |\poemtitlepenalty| encourages % but does not require a page break just before a poem title. A % complete list of all of the special commands for setting font sizes, % skips, and penalties, is in section 13.3 below. % % In the actual text of the poem, you need only use the |\poemtitle{}| % macro to specify the title of the poem. The macro takes one % argument --- the title, of course. The macro typesets the title in % the body of the volume (testing first to see whether there is enough % space at the bottom of the page to get the title and a couple of % lines of the poem in), typesets the title in the table of contents % (with the page number), typesets the title in the textual notes % (adding the page number, and checking to see whether there is room % enough on the page), and prepares similar entries in the lists of % emendations and in the explanatory notes (if you need them). Titles % with italics, multiple line titles, titles of subsections of poems, % titles of sequences of poems, and titles of the elements of a % sequence of poems are all special cases, which will be dealt with % below. % % \DescribeMacro{\poemsubtitle} Subtitles of poems should be issued as % the arguments to the |\poemsubtitle{}| macro. % % \DescribeMacro{\titleindent} For indented parts of titles. In the % macros for setting the sections and subsections of poetic sequences, % \textsf{poemscol} uses |\titleindent| internally to set up a % hierarchy of indentations. (A section of a sequence is indented one % |\titleindent|. A subsection is indented two. And so on.) % % \subsection{The body of the poem} % % \DescribeEnv{poem} The body of every poem should be placed in a poem % environment. Putting the body of the poem between |\begin{poem}| % and |\end{poem}| resets the line counter to 1, and puts the poem in % a |\verse| environment (to handle run over lines automatically). % \textsf{poemscol} slightly modifies the |\verse| environment from % the standard \LaTeX\ definition, increasing the indentation used for % run over lines, in order to make the difference between the indented % run over portion of a long line, on one hand, and an explicitly % indented second line, more obvious in the output. % % \textsf{poemscol} turns off automatic hyphenation in poetry % environments. The idea here is that every hyphen in the printed poem is % authorial, obviating the need for you to compile a hyphenated-lines % list to distinguish between authorial hyphens and hyphens you added % for lineation purposes. (You may wish to change this for your own % edition, in order to improve its look; but if you do so you must % keep track of added hyphens yourself. This list will be easy to % compile, however, because only authorial hyphens will appear in your % source code. Automatically added hyphens will appear only in the % output. You might even modify the output routine so that % automatically added hyphens have a different look. That would be % non-trivial, but Donald Knuth has an exercise about doing just that in % \emph{The \TeX book}.) \textsf{poemscol} turns automatic hyphenation back on % in prose contexts, so if you wish to keep a hyphenation list for % such things as authorial prefaces and so on, you must do so yourself % manually. (Alternatively, you can turn automatic hyphenation off in % those contexts as well, by setting the |\language| to 255. For an % example of how to do this, look at the definition of the |\poem| % environment in the implementation section below. If you do turn % automatic hyphenation off, it would be wise to restrict the change to % some particular environment, rather than changing the |\language| % globally.) % % \DescribeEnv{stanza} Every stanza should be placed in its own stanza % environment. Every poem should have at least one stanza. Marking % the beginning and end of every stanza (with |\begin{stanza}| and % |\end{stanza}|) provides \textsf{poemscol} with a way of detecting % cases in which a page boundary falls on a stanza break, since in % those cases a page turn happens when one is \emph{inside} a poem % environment but \emph{not} inside a stanza environment. Further, % marking the beginning and end of every stanza makes the logical % structure of the poem (and the editor's intentions about it) clear % to readers of your source code. \textsf{poemscol} adds a little bit % more white space between stanzas than the standard \LaTeX\ |verse| % environment does. (I found that the standard stanza breaks did not % leap out on the page as stanza breaks.) % % \DescribeMacro{\verseline} |\verseline| should mark the end of every % line, except the last line of every stanza (which should be marked % with |\end{stanza}|. |\verseline| marks the end of every line as a % prosodic unit (since a line of verse is not simply a carriage % return), and advances the line counter. There are commands below % for changing the line counter's horizontal placement (how close it % is to the left margin of the line) and appearance. (You can change % a great deal more by changing the values used by the \textsf{marn} % package. For instance, you can change from left numbering to right, % ``outside,'' or ``gutter'' numbering.) To change how often the % marginal line number appears (the default is every 10 lines), you % need to change the value of a counter called |\lineindexrepeat|. To % change |\lineindexrepeat| to print a line number every five lines, % issue |\setcounter{lineindexrepeat}{4}| in your preamble. To turn % marginal line numbering on (default is on), issue |\makelinenumbers| % in your preamble. To turn line numbering off, issue % |\global\linenumbersfalse|. % % \subsection{Special features} % \DescribeMacro{\linebend} \textsf{poemscol} automatically runs over % long lines, indenting the run over portion on the next physical % line. If you are unhappy with where \textsf{poemscol} has run over % a particular line, you can ``bend'' that line by issuing |\linebend| % at the point where you wish it to run over. The run over portion of % the line will be indented just as if \textsf{poemscol} had ``bent'' % the line at your selected point. This command only works if you % have chosen to bend the line at some point earlier than % \textsf{poemscol} would have chosen on its own. If you really do % want to extend a line further into the right margin, you can % probably do so by using a combination of |\nobreak| and |\hbox{}|, % or by turning all of the spaces in that line into unbreakable % spaces, marked with |~| in your source. But \textsf{poemscol} will % complain if you do this, and rightly so, since the result is likely % to be ugly. % % You may also wish to use |\linebend| to reproduce how your author broke up % long lines on the page (if you know that your author cared about % such things and did not leave them up to the typesetter). % % I have not yet figured out how to right flush the run over % portions of long lines instead of indenting them, but I am sure it can % be done. % % |\linebend| should only be used for managing run over lines, not for % cases in which a line is to be broken into separate half-lines. For % cases in which a line is to be broken into half-lines, use the % |\brokenline| macro. The two macros do similar (but not identical) % things. But a ``linebend'' is a feature of typesetting, and a % ``broken line'' is a feature of versification, and it seems best to % distinguish them logically. (|\linebend|, like |\brokenline|, issues % a carriage return without incrementing the line number, but % |\linebend| adds indentation to the next line. % % To change the indentation for run over lines globally, go to the % description of the |\verse| environment in the implementation section % below and change the two places where a length is defined as 6 em. % Rather than modify \textsf{poemscol} itself you might just copy and % modify (with |\renewcommand|) the definition of the verse % environment below and add the new definition to your preamble. Be % sure to add |\makeatletter| just before and |\makeatother| just % after the redefinition, or \LaTeX\ will stop and complain about the % ``at'' signs. % % If you globally change the amount of indentation for run over % lines in the |\verse| environment, you should use |\renewcommand| to % change the amount for the |\linebend| macro as well, since it % indents the portion of the line after the ``bend'' by the same % amount that the |\verse| environment itself uses for the run over % portion of bent lines. For example, to change the run over % indentation to 4 em for ``line bends,'' issue % |\renewcommand{\linebend}{\\| \\ |\hspace{4em}|. % % % \DescribeMacro{\verseindent} The |\verseindent| command is to be % used for formally indented lines. It should not be used to indent % the run over portion of long lines (which \textsf{poemscol} handles % automatically anyway). |\verseindent| indents the line a bit less % than the run over portion of long ``bent'' lines are indented, so % that the two cases can be visually distinguished. % % % \DescribeMacro{\brokenline} % \DescribeMacro{\versephantom}|\brokenline| should be used where you % wish to break the line without incrementing the line counter. % Authors often break a line into two half-lines, setting the % beginning of the second half-line flush with the end of the first % half-line. (Sometimes these broken lines indicate a change of % speaker. Sometimes they just indicate a change of subject, usually % an abrupt one, a change which calls attention to itself by % interrupting a line rather than waiting for a line break or stanza % break). |\brokenline| is normally used with |\versephantom{}|, % which adds white space exactly as long as its argument would have % been had it been set in type. |\versephantom{}| thus provides an easy % way of setting the beginning of the second half-line flush with the % end of the first, whatever the font size or special formatting of the % first line. % % The sestet of Yeats's sonnet ``Leda and the Swan,'' has such a broken % line: % \begin{verse} % A shudder in the loins engenders there\\ % The broken wall, the burning roof and tower\\ % And Agamemnon dead.\\ % $\phantom{And Agamemnon dead.~}$ Being so caught up,\\ % So mastered by the brute blood of the air,\\ % Did she put on his knowledge with his power\\ % Before the indifferent beak could let her drop?\end{verse} % % To set the broken line properly, issue: % \begin{verse} % And Agamemnon dead.|\brokenline|\\ % |\versephantom{And Agamemnon dead.}| Being so caught up,|\verseline| % \end{verse} % % \DescribeMacro{\stanzalinestraddle} % Some poets (such as Robert Penn Warren) occasionally introduce a % stanza break in the middle of a broken line, considering the line to % be a single metrical unit despite the fact that it straddles a stanza % break. To record these cases, mark the end of the first half-line % with |\end{stanza}| as usual. But instead of opening the next stanza % with |\begin{stanza}| issue |\stanzalinestraddle| instead. This will % make sure that the line counter counts the straddling line as only one % line, despite the stanza break. |\stanzalinestraddle| is usually used % with |\versephantom{}|. % % \section{Making a table of contents} % \DescribeMacro{\makepoemcontents} To make a table of contents for your % poems, issue |\makepoemcontents| in your preamble. Information for % your table of contents will be written to an external file with the % extension .ctn. You will need to run your book through \LaTeX\ twice % in order to generate a table of contents, the first time to generate % the correct page numbers, and the second time to set the table of % contents. (Under some circumstances --- if you have an index, for % instance --- you may need three passes rather % than two.) % % There are several ways of handling this external file. One way is % to generate the contents file by running your file through \LaTeX\ % once, and then to run \LaTeX\ again, this time reading the contents % file back in with an |\input| command. One can print the contents % in the proper place simply by issuing an |\input| command in the % right place in one's driver file on one's second or final run, as % for example |\input{mypoems.ctn}|. (You may also need to adjust the % page number for the contents with |\setcounter{page}| just before % the |\input|.) If you do wish to read in the contents file at the % proper place, be sure that the |\input| command is commented out for % the first run, or you will get a series of very bad error messages. % Be sure as well that you comment out the |\makepoemcontents| line on % the final run, so that you don't overwrite the contents file you % have just made with a new (empty) one. Finally, be sure that the % |\input| occurs in some context where the page numbering is in small % roman numerals and be sure to reset the page counter with % |\pagenumbering{arabic}| and |\setcounter{page}{1}| when you get to % the body of your poems. % % Alternatively, you can take the easy way out and issue the |\finish| % command just before your |\end{document}|. |\finish| turns automatic % hyphenation back on, closes and reads back in the external files for % the emendations, the textual collations, and the explanatory notes % (setting them in small type), sets the index of first lines and % titles, puts the information about these sections in the table of % contents, closes the external file for the contents, and reads it back % in. The only disadvantage of this method is that you print the book % with the contents at the end, so when you print it you must retrieve % the contents pages and put them in the proper place. I found the % convenience worth the hassle, but you might not. % % If you use |\finish| be sure to comment it out on the first run. You % will get an error message if you don't (because it is asking for % numbers that are only defined in the .aux file). If you do get this % error message, don't worry. Just run \LaTeX\ again. You will have % made that .aux file on your first run anyway. % % If you don't use the |\finish| macro, you will have to use |\input| % for all of the various notes sections. You should be sure to use % |\literalcontents{}| (described below) to send the page label % information for the notes sections to the contents file. % % All of the commands that generate lines in the table of contents are % somewhat messy and somewhat rigid. In the long run, I plan to % change them to enable them to make use of the table of contents % structures \LaTeX\ usually employs. % % \section{Making an index of titles and first lines} To set up the Index % section of your volume, issue |\indexingontrue| in your preamble. % This will create the external file for your index information and % send that file the typesetting information for its title. You must % process this external file (the .idx file) with MakeIndex and run % your book through \LaTeX\ again in order to set a properly organized % and formatted index. MakeIndex sorts the various multi-level % ``index cards'' generated by all of the |\index| commands in your % source files. Once you have processed your .idx file with % MakeIndex, and generated the sorted and formatted .ind file for your % book, the |\printindex| command will insert the typeset index where % you issue it. % % Alternatively, |\finish|, which I describe below, will include the % (formatted) index (if it is ready) and send the proper information % about the index to the table of contents. \textsf{poemscol} sets up % a two-column index with a simple running header. (Setting up a % two-column index, however, requires that you include the % \textsf{multicol} package in your |\usepackage{}| list.) To turn % indexing off, issue |\global\indexingonfalse|. If you don't use % |\finish| to read the index in, you will have to be sure to send the % contents information about the index to the contents file. The % |\index| environment will automatically record the page for the % index. To enter the page number for the index section into the % contents (if you don't use |\finish|), issue \begin{verbatim} % \immediate\write\poemcontents{\string~ / \string~\ % \string\pageref{indexpage}\string\par} \end{verbatim} immediately % after issuing |\printindex|. (This command writes its argument on % the external file for the contents. Since you want the command just % to write out the names of the commands in the argument (such as % |\pageref|) on the external file rather than interpreting them as % commands, you specify that what follows is not a command but a % string with |\string|. Hence all of the funny business with the % |\string| command. When the contents file is read back in, all % those strings turn into the commands that will be needed to set a % contents line that will look like all the other contents lines. % This may be a little more (messy) \LaTeX\ than you need to know % right now, but I include it just for the curious.) % % Enter the individual index entries in the poems as you normally % would for use by MakeIndex (say, after each title and first line). One of % the nice features of MakeIndex is that every entry has two parts, % one for specifying the sort key of the entry (or subentry), the other % for specifying the font and typesetting information of the entry (or % subentry). This enables you to drop all of the initial uses of % ``the'' in titles for sorting purposes, while still including the % ``the'' in the title. It also enables you to distinguish titles % from first lines (by italicizing them), and to include typesetting % information (such as italicization) in titles or first lines without % messing up their sort order. % % \section{Collections with multiple volumes} % \DescribeEnv{volumetitlepage} \DescribeEnv{maintitlepage} % The |\volumetitlepage| environment is an % environment for divider pages in collections made up of several % volumes. Volume title pages will always appear on recto pages. % \textsf{poemscol} will automatically create a blank verso page % preceding the volume title page if it necessary. The % |\maintitlepage| environment is for the title page of the whole % book. The main title page will also automatically always be on a % recto page. These divider pages have special % page styles, with no page numbers and no running headers. % % \DescribeMacro{\wholebooktitle} \DescribeMacro{\volumetitle} % \DescribeMacro{\volumetitlefirstline} % \DescribeMacro{\volumetitlelastline} \DescribeMacro{\volumesubtitle} % \DescribeMacro{\volumesectiontitle} |\wholebooktitle{}| is for the % title of the entire collection. The |\volumetitle{}|, % |\volumetitlefirstline{}|, and |\volumetitlelastline{}| macros are % for the titles of volumes gathered into the collection. (The last % two commands are for long titles. You may want to specify how a % long title is broken up both in the text and in the table of % contents.) |\volumesubtitle{}| is for setting the subtitle to a % volume. |\volumesectiontitle{}| is for setting the title of a % section of a volume. In addition to setting the text in the body of % your edition, these commands send the title (and the formatting % information about it) to the table of contents file and to the % textnotes file. % % \DescribeMacro{\volumeepigraph} % \DescribeMacro{\volumeattribution} % \DescribeMacro{\volumeheader} % \DescribeMacro{\leftheader} % |\volumeepigraph{}| and % |\volumeattribution{}| are for epigraphs and attributions on the % divider pages. |\volumeheader{}| is the right running header for % that volume (except for divider pages, the table of contents, the % notes sections, and other special cases). Normally that is just the % name of the particular volume. |\leftheader{}| is the % left running header for the entire book (except for divider pages, % the table of contents, the notes sections, and other special % cases). Normally that is the name of the entire book. % % \section{Recording textual notes} % \subsection{Setup for sections for textual notes, emendations, and % explanatory notes.} % \DescribeMacro{\makeemendations} % \DescribeMacro{\maketextnotes} % \DescribeMacro{\makeexplanatorynotes} % \textsf{poemscol} puts all of the emendations, textual collations, % and explanatory notes in the backmatter of your volume. % \textsf{poemscol} opens external files for emendations, textual % collations, and explanatory notes (with extensions .emd, .ent, and % .enx respectively), and reads them back in at the place you specify % with an |\input| command or at the end (if you use the |\finish| % command). % % To collect emendations, issue |\makeemendations| in your preamble. % To collect textual collations, issue |\maketextnotes| in your % preamble. To collect explanatory notes, issue % |\makeexplanatorynotes| in your preamble. These commands set up the % external files, send to them the commands for typesetting the % title of each section (e.g. Explanatory Notes) and modifying the % running headers of the notes sections to xx--yy format (e.g. % ``Explanatory Notes to pp.~55--7''). % % % Issuing |\textnotesatfoot| will set the textual collations as % footnotes, using the line number as the footnote number. It should % be possible to set the emendations and the explanatory notes as % separate sets of footnotes, but I haven't done that. % % % \textsf{poemscol} opens an entry (headed with the title and page of % the poem in the text) in the textual notes section for every poem % (since, minimally, you want to include information about the % variants and copy text of the poem), but only opens entries in the % emendations or explanatory notes sections if you actually have % emendations or explanatory notes on that poem. The notes for each % poem are set in a block paragraph, with a new paragraph for every % |\poemtitle| command, and the line counter for the notes is reset to % 1 with every |\begin{poem}|. (For long poems in books or cantos, it % would be wise to use |\poemtitle| for the canto names or numbers, % setting the volume title in some other way, perhaps with % |\volumetitle| described above.) % % \subsection{Textual notes of various kinds} % \DescribeMacro{\sources} To record information about the copy text, editions and % publication history of individual poems, or any information not tied to % specific lines in the poem, you should place that information in the % argument to the |\sources{}| macro. Typically, you should issue this % macro after you have issued |\poemtitle{}| and before you issue % |\begin{poem}|. If you wish to send information to the textual notes % file (such as to force a page break), you can do so by using % |\sources{}|. You can send typesetting information to other sections % by using |\literalemend{}|, |\literalexplain{}|, or |\literalcontents{}|. % {There is also a |\literaltextnote{}| command, which is equivalent to % |\sources{}|. % % \DescribeMacro{\textnote} % \DescribeMacro{\sameword} % \DescribeMacro{\missingpunct} % \DescribeMacro{\emendation} % \DescribeMacro{\explanatory} % % |\textnote{}| is used to capture variants and tie them to the % correct line number. You don't have to count line numbers. % \textsf{poemscol} keeps track of them for you. Issue |\textnote{}| % immediately after the |\verseline| command which marks the ending of % the line you wish to comment upon. Put the text of your note (which % may be simply the recording of a variant in standard notation) into % the argument of the macro. You should put both the lemma and the % variants or comment in the argument to the |\textnote{}| macro. To % put the $\sim$ glyph in your note (used for recording places where % the variant and the copy text have the same word, as for instance % when recording a variation of punctuation) use |\sameword|. To put % the ${}_{\wedge}$ glyph into your text (used for recording places % where a punctuation mark is missing in a variant), use % |\missingpunct|. % % |\emendation{}| and |\explanatory{}| are used exactly as |\textnote{}| % is. Issue the emendation or the explanatory note as the argument to % the command. Place the command immediately after the |\verseline| that % concludes the line to which it is a comment. % % If you quote verse \emph{within} a textual note, an explanatory note, or an % emendation, you may want to use the normal \LaTeX\ markup for verse % for that quotation, rather than the special markup for % \textsf{poemscol}. \textsf{poemscol} will not complain about this. % % If a textual note \emph{ends} with a quotation in verse, you should % follow the |\textnote{}| entry with % |\quotedversecorrectiontextnote|. \goodbreak % |\quotedversecorrectionexplanatory| and % |\quotedversecorrectionemendation| should follow explanatory notes % or emendations that end with snippets of verse. These three % commands are an embarrassing kludge on my part. I found that if I % quoted verse in the note sections a dirty trick I used to send the % notes to the external files would cause the following notes on that % poem in the notes sections to be set in a new paragraph. (This is % of course not a problem if the quoted verse is the last thing in the % notes to that poem, since the next poem will open a new paragraph in % the notes anyway. It is also not a problem if more of the % individual textnote follows the verse. It's only a problem if the % last thing in the note is quoted verse, and it's not the last note % on the poem.) These three commands simply send commands to the relevant % note sections that prohibit opening a new paragraph. You should % issue this command right after the close of the textnote (not in the % text of the textnote itself). % % \DescribeMacro{\accidental} |\accidental{}| behaves exactly like % |\textnote{}|. If you wish to distinguish between accidentals and % substantives, this provides a way of doing so. If you wish to include % these accidentals in your textual collations, issue % |\global||\includeaccidentalstrue| in your preamble. % % \textsf{poemscol} does not provide for a separate backmatter section % for accidentals, but it would be trivial to construct one, creating % a |\makeaccidentals| command on the analogy with |\maketextnotes| % and redefining the |\accidental{}| macro to divert its output into a % new, separate external file. % % If you wish to exclude accidentals from your printed output, but to % mark them in your source files, so that your published collation % consists only of substantives, issue % |\global\includeaccidentalsfalse| in your preamble. Many publishers % are reluctant to publish accidentals, believing that they are, well, % less substantive than substantives. Using the |\accidental{}| command % allows you to exclude accidentals from the published version should your % publisher insist, while preserving the information about them should the % publisher's mind change. In the very worst case, if you have marked % all the accidentals in this way you can still produce a list of % accidentals for later use, and other scholars can search for % accidentals in your source files simply by searching for the string % |\accidental|. % % % \DescribeMacro{\tsvariant} % \DescribeMacro{\tsentry} % If you wish to distinguish between published variants and typescript, % man\-u\-script, or galley variants, this provides a way of doing so. If you wish to include % these variants in your textual collations, issue % |\global||\includetypescriptstrue| in your preamble, in which case % |\tsvariant{}| will behave exactly like |\textnote{}|. % % To exclude typescript variants, issue % |\global\includetypescriptsfalse| in your preamble. (Some % publishers may turn up their noses at typescript variants in just % the way they turn up their noses at accidentals.) % % \textsf{poemscol} does not provide for a separate backmatter section % for typescript variants, but it would be trivial to construct one, % creating a |\maketypescripts| command on the analogy with % |\maketextnotes| and redefining the |\tsvariant{}| macro to divert % its output into a new, separate external file. % % If you wish to include typescript entries in a single note including % those entries in a list with variants from other published versions % (as for instance when a comma appears in a typescript but only in % the second edition of the published poem), simply issue % |\textnote{}| as usual, marking the relevant variant in the list of % variants with the |\tsentry{}| macro. If % |\global||\includetypescriptstrue| appears in your preamble, the % entry will be included in that textual note. If typescript variants % are excluded, the typescript entry will also be excluded. You can % mark individual variants with |\tsentry{}| in the arguments to the % |\explanatory{}| and |\emendation{}| commands as well. % % Here is a typical use of the |\tsentry{}| command: % \begin{verbatim} % Of moonlit desert. A stallion, white and flashing, slips,\verseline % \textnote{Of moonlit] Of the moonlit {\em NY\/}\tsentry{\unskip, SP85TS % (revised in black pen to SP85)}} % \end{verbatim} % % Notice that since the |\tsentry{}| comes in the middle of the list, % it begins with a comma. The |\unskip| command is there to prevent % \LaTeX\ from adding white space before the comma. It is a bit of a % kludge, and it adds formatting information to what I had hoped to % make purely content markup. But not every |\tsentry{}| begins with a % comma, so one will just have to remember to add the kludge. % % \section{Pulling it all together} \DescribeMacro{\finish} The % |\finish| macro is one you will undoubtedly wish to modify. It is % designed to be placed just before |\end{document}| (which, in fact, % it replaces --- but you should still put an |\end{document}| at the % end of your document for form's sake). |\finish| closes the % external files for the three notes sections and reads them back into % the document (turning the automatic hyphenation back on for these % sections). It adds entries to the table of contents file for the % notes sections. It reads in the formatted index file (which you % have made from your raw .idx file using MakeIndex between \LaTeX\ % runs) and adds an entry for the index to the table of contents. % Then it closes the external file for the table of contents and reads % that in (putting it at the end of the document, as I explained % before). Then it adds a page explaining that the * symbol at the % bottom of certain pages marks places where a stanza break and a page % break coincide. If you have an editor's introduction preceding your % notes section, or a list of abbreviations, you may wish to consult % the |\finish| macro for suggestions about how to add the lines to % read those files in and add entries for them in the table of % contents. % % % \section{Special cases} % \subsection{Epigraphs, attributions etc.} % \DescribeMacro{\epigraph} \DescribeMacro{\headnote} % \DescribeMacro{\attribution} \DescribeMacro{\dedication} Set % epigraphs, attributions, dedications, and headnotes as arguments to % these macros. If you have epigraphs, attributions, dedications on the % divider pages of editions that combine several volumes of poetry, % use |\volumededication{}|, |\volumeepigraph{}|, and % |\volumeattribution{}|. % % \subsection{Inset prose quotations} % \DescribeMacro{\savelinenumber} % \DescribeMacro{\restorelinenumber} Sometime you will have inset prose % passages, but you will not wish to start the line numbering over % after the passage. The way to set this is to issue |\end{stanza}| % at the end of the stanza before the prose insert. Then issue % |\savelinenumber|. Then issue |\end{poem}|. Insert the prose % quotation (perhaps followed by |\attribution{}|). Then issue % |\begin{poem}| followed by |\restorelinenumber| and |\begin{stanza}|. % Then begin entering the rest of the poem. % % \subsection{Multiline poem titles} % \DescribeMacro{\poemtitlefirstline} % \DescribeMacro{\poemtitlemiddleline} % \DescribeMacro{\poemtitlelastline} % \DescribeMacro{\poemtitlenocontents} % \DescribeMacro{\poemtitlebaretitle} % % Very long titles present special problems. In the first place, they % require special provisions to make sure that page breaks don't % happen in the middle of a title, or immediately after a title. In % the second place, they raise questions about how the author wished % to break them up over several lines. If you think it might matter, % these macros make it possible for you to ensure that long titles are % broken in exactly the same way in your text and in your table of % contents. (I didn't pursue this question for titles in notes % sections, and in notes sections these commands simply concatenate a % long title.) % % If you wish to set the titles differently in the text and in the % contents, you can set the title in the text and notes with % |\poemtitlenocontents{}| and send a differently formatted entry to % the table of contents file using |\literalcontents{}|. % |\poemtitlebaretitle{}| simply sets the title in the text, enabling % you to use |\literalcontents{}| and |literaltextnotes{}| to produce % whatever effect you wish. % % \subsection{Italicized poem titles and empty poem titles} % Titles with italics or other special formatting also pose special % problems since the typesetting commands gum up how I pass parameters % around that I was unable to solve using |\protect|. % \DescribeMacro{\poemtitleitalic{}{}} % |\poemtitleitalic{}{}| takes two arguments. The first is the title of the % poem with the italics (or small capitals or what have you}, for % typesetting, and the second is the title without the commands, for % cross reference purposes. % % \DescribeMacro{\poemtitlenotitle{}} % |\poemtitlenotitle{}|, with its paradoxical name, is for poems % without formal titles. Usually such poems are referred to by their % first lines. This macro does not produce a title in the text, but % sets its argument in the table of contents and in the notes. Usually % you use the first line as the moral equivalent of a title. % % \DescribeMacro{\poemtitlenotitleitalic{}{}} % |\poemtitlenotitleitalic{}{}|, with its even more paradoxical name, % is for poems without formal titles but with italicized words in their % first lines. |\poemtitlenotitleitalic{}{}| takes two arguments. The % first is the first line with the italics (for cross-reference % purposes), and the second is the % first line without the italics. % \subsection{Poems in sections} % % \DescribeMacro{\poemsectiontitle} |\poemsectiontitle{}| and its % relatives (|\poemsubsectiontitle{}|,\goodbreak |\poemsectiontitlefirstline{}|, % |\poemsectiontitlelastline{}|,\goodbreak |\poemsectiontitlenocontents{}|, and % |\poemsectiontitlebaretitle{}|), as their titles imply, are used for % the titles of sections of poems that have titled sections, and for % special cases such as long section titles. You can construct % variants of these macros for dealing with section titles with % italics and whatnot by adjusting the |\poemtitleitalic{}{}| macro % above, or by using |\poemsectiontitlebaretitle{}| and % |\literalcontents{}| and its siblings. % % \subsection{Poetic sequences} % % \DescribeMacro{\sequencetitle} \DescribeMacro{\sequencesectiontitle} % \DescribeMacro{\sequencefirstsectiontitle} Sequences of related % poems, perhaps with an over-title, demand special handling in the % text, in the notes sections, and in the table of contents. (A % moment's thought will show that they are different in some ways from % poems in sections. For one thing, a sequence manifests a different % relationship between part and whole than a poem in sections does, % and often provides stronger experiences of momentary closure between % sections.) |\sequencefirstsectiontitle{}| gives a little more % vertical space between the main title and the first section title % than |\sequencesectiontitle{}| gives between adjacent sections later % on in the sequence (since the over title for the sequence is in % larger type) and adjusts the page breaking penalties to reflect the % fact that such titles should not occur near the bottom of a page, % since there should be no page break between the sequence title and % the title of the first section of the sequence (although page breaks % are permissible, indeed even slightly favored, between later % sections). There should also never be a page break between a % section title and the first or second line of the section. The % penalties \textsf{poemscol} sets should take care of these % automatically, but you may still have cases which require you to % specify a page break with |\pagebreak| or |\newpage|. There are a % host of other commands, all with self-explanatory titles, that deal % with some special situations that arise in setting the elements of % poetic sequences. These macros don't of course exhaust the dizzying % possibilities, but from them you can construct whatever other macros % you may need. % % \begin{itemize} % \item |\sequencetitlefirstline{}|, % and |\sequencetitlelastline{}| are for long sequence titles % % \item |\sequencesectiontitlefirstline{}|, \goodbreak % |\sequencesectiontitlemiddleline{}|,\goodbreak and % |\sequencesectiontitlelastline{}| \goodbreak are for long titles of sequence % sections. % \item |\sequencefirstsectiontitlefirstline{}|, \goodbreak % |\sequencefirstsectiontitlemiddleline{}|, \goodbreak and % |\sequencefirstsectiontitlelastline{}|, \goodbreak are for long % titles of the first section of a sequence. % % \item |\sequencesectiontitleitalic{}{}|, \goodbreak % |\sequencesectiontitlefirstlineitalic{}{}|, Others of this kind are easy % to construct. Remember to use two arguments --- one for the title % without the formatting characters and one for the title with the % formatting characters. % % \item |\sequencefirstsectiontitlenonotes{}|, \goodbreak and % |\sequencesectiontitleitalicnonotes{}{}|, \goodbreak % |\sequencesectiontitlebaretitle{}| for special cases % % \item % |\sequencesubsectiontitle{}|, \goodbreak % |\sequencefirstsubsectiontitle{}|, \goodbreak % |\sequencesubsectiontitlenocontents{}|, \goodbreak % |\sequencesubsectiontitlefirstline{}|, \goodbreak % |\sequencesubsectiontitlemiddleline{}|, \goodbreak % |\sequencesubsectiontitlelastline{}|, \goodbreak % |\sequencefirstsubsectiontitlefirstline{}|, \goodbreak % |\sequencefirstsubsectiontitlemiddleline{}|,\goodbreak % |\sequencefirstsubsectiontitlelastline{}|, \goodbreak % |\sequencefirstsubsectiontitlenocontents{},| \goodbreak % |\sequencefirstsubsubsectiontitlenocontents{}| and so on. % \end{itemize} % % \bigskip % \DescribeMacro{\sequencefirstsectiontitlenocontents} % \DescribeMacro{\sequencesectiontitlenocontents} % % \medskip % % These macros are designed to kludge around situations where the % section title is just a number. Obviously you can't just use that % number as the label to hold the page number, since there may be % other sequences that are organized the same way, and the label % ``I.'' might take several meanings. This macro has two arguments. % The first is the title of the section. The second is the title of % the sequence as a whole. \textsf{poemscol} will combine both % arguments to produce a unique label for cross referencing the page % number for the section. % % \subsection{Visual formatting} % \DescribeMacro{\longpage} % \DescribeMacro{\shortpage} % The ideal in \LaTeX\ is to separate % content markup and formatting as completely as possible. In the text % itself you simply mark the logical units (a poem, a title, a stanza, % a textual note), and a header program like this interprets the % meaning of those terms typographically. However, one still winds up % having to do some visual formatting. Especially in prose sections, % such as in the textual notes, you will sometimes have to enlarge or % shrink a page by one line in order to avoid an intractable widow or % club line, and when one does so one must be careful to do the same to % the other member of the two-page spread of which that page is a part. % These commands enable one to wiggle pagelength enough to handle these % problems. Since verse sections should be set with |\raggedbottom| % in effect, the commands are not necessary in verse sections. % \section{A sample driver file} % % If you are compiling a collected poems, you are probably preparing your % volume from many files. You may (or may not) wish to subdivide your % edition by the original volumes. Or you may subdivide by year, or by the % significant phases of the poet's career. One way to keep in control of the process is % to create a driver file, which calls all the appropriate\ .sty files % and sets the variables globally, and then read in the sections of % the edition using |\input|. Here is a version of the driver file I used for % \emph{The Collected Poems of Robert Penn Warren}: % \begin{verbatim} % \documentclass[10pt,twoside]{article} % \usepackage{fancyhdr,kdgreek,makeidx,times,multicol,newmarn,geometry,} % \usepackage{keyval,ifthen,newcropmark,poemscol} % \begin{document} % \leftheader{The Collected Poems of Robert Penn Warren} % \makeexplanatorynotes % \makeemendations % \maketextnotes % \makepoemcontents % \makelinenumbers % \global\indexingontrue % \global\includeaccidentalstrue % \global\includetypescriptstrue % \input maintitle.tex % \input poems1922_1943.tex % \input thirtysix.tex % \input eleven.tex % \input sp43.tex % \input promises1.tex % \input promises2.tex % \input promises3.tex % \input yeo1.tex.tex % \input yeo2.tex.tex % \input yeo3.tex.tex % \input tale1.tex % \input tale2.tex % \input incarnations.tex % \input audubon.tex % \input orelse1.tex % \input orelse2.tex % \input arcturus.tex % \input nowthen.tex % \input beinghere.tex % \input rumor1.tex % \input rumor2.tex % \input cj1.tex.tex % \input cj2.tex.tex % \input altitudes.tex.tex % \input poems1943_1989.tex % \input introduction.tex % \finish % \end{verbatim} % % \section{A sample poem markup} % Here is a poem Robert Penn Warren wrote in his first volume, % \emph{Thirty-Six Poems} (1935). The poem is the first poem of his % sequence ``Kentucky Mountain Farm.'' I include the over-title, to % demonstrate how to mark up such cases. % \begin{verbatim} % \sequencetitle{Kentucky Mountain Farm} % \index{Kentucky Mountain Farm@{\em Kentucky Mountain Farm\/}} % \sources{Text: TSP. Variants: SP43, SP66 (Deletes ``The Cardinal,'' ``The % Jay,'' and ``Watershed''), SP75 (Same sections as SP66), SP85 (Restores % ``Watershed''), {\em Helsinki\/} (includes only ``Rebuke of % the Rocks'' and % ``At the Hour of the Breaking of the Rocks''). % ``The Owl'' (above) was marked as a section of ``Kentucky % Mountain Farm'' when it first appeared in {\em Poetry,\/} but it was never % included in any book version of the entire sequence. The sequence in {\em % Poetry\/} included, in this order, ``The Owl,'' ``The Cardinal,'' and % ``Watershed.'' TSP uses lower case Roman numerals in the section % titles. The typescript drafts in the Beinecke Library do not seem to % be setting copies.} % \sequencefirstsectiontitle{I. Rebuke of the Rocks} % \index{Rebuke of the Rocks@{\em Rebuke of the Rocks\/}} % \sources{Text: TSP. Variants: {\em Nation\/}, 11 Jan.\ 1928, % p.~47, {\em Literary % Digest,\/} 28 Jan.\ 1928, p.~32, {\em Vanderbilt Masquerader,\/} 10 % (Dec.\ 1933), p.~16, SP43, SP66, SP75, SP85, {\em Helsinki\/}, % Broadside: The Press at Colorado College, printed on paper handmade by % Thomas Leech for the American Poetry Society, April~26, 1985. This % poem was not included in SP85 until the second set of galleys, in % which a photocopy of the SP75 text is a stapled insert.} % \begin{poem} % \begin{stanza} % Now on you is the hungry equinox,\verseline % \index{Now on you is the hungry equinox} % O little stubborn people of the hill,\verseline % \accidental{hill,] \sameword--- {\em Nation,\/} {\em Literary Digest\/} % \sameword, {\em Vanderbilt\/} (I include the reading % from {\em Vanderbilt\/} % even though it is the same as in TSP, because % {\em Vanderbilt\/} was published % after the other magazine versions but before TSP.)} % The season of the obscene moon whose pull\verseline % Disturbs the sod, the rabbit, the lank fox,\verseline % Moving the waters, the boar's dull blood,\verseline % And the acrid sap of the ironwood.\end{stanza} % % \begin{stanza} % But breed no tender thing among the rocks.\verseline % Rocks are too old under the mad moon,\verseline % \accidental{old\missingpunct] \sameword, {\em Vanderbilt\/}} % Renouncing passion by the strength that locks\verseline % The eternal agony of fire in stone.\end{stanza} % % \begin{stanza} % Then quit yourselves as stone and cease\verseline % \accidental{stone\missingpunct] \sameword, {\em Vanderbilt\/}} % To break the weary stubble-field for seed;\verseline % Let not the naked cattle bear increase,\verseline % Let barley wither and the bright milkweed.\verseline % \accidental{milkweed.] milk-weed. {\em Vanderbilt\/}} % Instruct the heart, lean men, of a rocky place\verseline % That even the little flesh and fevered bone\verseline % May keep the sweet sterility of stone.\end{stanza} % \end{poem} % \end{verbatim} % \goodbreak % \section{A sample divider page} % \begin{verbatim} % \begin{volumetitlepage} % % \volumetitle{Being Here} % \volumeheader{Being Here} % \volumesubtitle{Poetry 1977--1980} % \volumededication{To Gabriel Thomas Penn\\ % (1836--1920)} % \bigskip % % \volumeepigraph{OLD MAN: You get old and you can't do anybody % any good any more.\\ % BOY: You do me some good, Grandpa. You % tell me things.} % % % \bigskip % % \volumeepigraph{There is in short no absolute time standard.} % \volumeattribution{{\em Van Nostrand's Scientific Encyclopedia,\/}\\ % Fifth Edition, p. 2203} % % \bigskip % % % \volumeepigraph{I thirst to know the power and nature of Time\ldots.} % \volumeattribution{St.\ Augustine: {\em Confessions,\/}\\ % Book {\em XI,\/} Chapter {\em XXIII\/}\\ % Translated by Albert C. Outler} % % % \bigskip % % \volumeepigraph{Time is the dimension in which God % strives to define His own Being.} % % \sources{The typescript material in the Beinecke Library % indicates that this % book went through many drafts, and some rethinking about what to % include and how to order the poems. Until a late stage of % production---very late, since the typescript includes a designed % mock-up of the proposed title page---the title of this volume was {\em % Life is a Fable.\/} Indeed, as late as the time the book was set in % galleys it was called {\em Life is a Fable\/}, although the title was % corrected on the galleys. Like {\em Now and Then\/}, the typescript % was assembled from photocopies of re-typed copies of poems made after % their magazine appearance, with annotations giving the name of the % magazine in which they occurred. Unlike {\em Now and Then\/}, the % typescript seems to have been typed in one piece, and the annotations % added for the convenience of the permissions department at % Random House. The page numbers have been added---presumably % later---in blue pen. The copy is marked up in Warren's hand in black % pencil, and in another hand in red pencil. (Unless marked otherwise, % all of the mark-up described here is in black pencil.) \tsentry{Like most % Warren typescripts BHTS is single-spaced. The dedication to Gabriel % Thomas Penn and the dialogue between the old man and the boy appeared % on a separate page, and the three epigraphs appeared on another % separate page. BHTS gives 1838 as the year of Gabriel % Thomas Penn's % birth (the error is corrected on the galleys). In the quotation from % Augustine, the second word is corrected to ``thirst'' from ``yearn,'' % and the translator's name is added in pencil, not in Warren's % handwriting.} In one of Warren's own % copies at Western Kentucky University, he has corrected the date of % Gabriel Thomas Penn's birth to 1837 (copy 310). Some revisions in this book % may have come very late % indeed. A letter to Erskine of January 28, 1980, refers to changes % made in a bound manuscript that Warren kept after returning the % copy-edited typescripts. There are revisions not only on the galleys, % but also on the page proofs. There are even some corrections on the % ``blues'' for this volume, including some new copy on a card referred % to in a note on the cover of the ``blues'' but now lost. The Secker % and Warburg London edition is, except for the title page, printed from % the American plates. There is a copy of this book, marked up by % Warren with % proposed revisions for Stuart Wright's use on May 25, 1987, in the % Special Collections % Department of the Emory University Library. I quote Warren's % notes by permission. % Warren has also marked up, slightly, a copy of this book now in the % Robert Penn Warren Room of the Library of the Kentucky Museum at % Western Kentucky University. I quote that volume too by permission. % The setting typescript for the section of SP85 drawn from this volume % consisted of taped-in photocopies of passages from BH. Because the % revisions for SP85 are sometimes a vexed question, I have indicated % where the SP85 revisions are made on SP85TS.} % % % \sources{Title Page] SP85 omits the dialogue between the old man and % the young boy. SP85 capitalizes ``time standard'' in the quotation % from Van Nostrand's Scientific Encyclopedia, and does not capitalize % ``Time'' in the quotation from Augustine.} % % % % \end{volumetitlepage} % \end{verbatim} % % % % % \StopEventually{\PrintChanges\PrintIndex} % \section{Implementation} % \subsection{Page geometry and crop marks} % \begin{macro}{\geometry} There's no reason why you should use the % page geometry I specify here. I use the \textsf{geometry} package, % since it's simpler to figure out. I give my page geometry here % chiefly to remind the reader of some important variables that should % be kept track of, such as marginparsep, which controls the % separation of the marginal line numbers from the verse line, % marginparwidth, which controls how wide the block for the marginal % line numbers will be, headsep, which controls how far the text will % be from the running headers, and footskip, which controls how far % the last verse line will be from the marker which tells the reader % that there is a stanza break at the end of the page (if there is % one). I've also set the odd side margin and the even side margin % for two-sided printing, and defined a set of dimensions to use with % the \textsf{newcropmarks} package, defining with width between the % cropmarks, moving the top and bottom cropmarks around, and defining % the width of the cropmark. Finally, I have set the default handling % of page endings to |\raggedbottom|. Verse should always be set with % a ragged bottom margin, otherwise \LaTeX\ will stretch the spaces % between stanzas to make the bottom perfectly flush. When you enter % prose sections, such as the editor's introduction, you should enter % the command |\flushbottom| to make sure that the prose sections have % flush page bottoms. If you wish to use a different geometry, you % should issue the geometry command in your preamble. You can change % the parameters for the cropmarks with |\setlength|. % \begin{macrocode} \geometry{verbose, tmargin= 33pt, textwidth=318.21pt,textheight=550pt, marginparsep=7pt,marginparwidth=10pt, headheight= 12pt, headsep=19pt, footskip=9pt, lmargin=132pt, twosideshift=0pt} \setlength{\oddsidemargin}{60pt} \setlength{\evensidemargin}{65.41pt} \newdimen\croppagewidth \croppagewidth=6.125in \newdimen\croppadtop \newdimen\croppadbot \newdimen\croppadlr \croppadlr=0pt \newdimen\croppadright \croppadright=0pt \newdimen\croppadleft \croppadleft=0pt \newdimen\cropwidth \cropwidth=.25pt \croppadbot=41.2pt \croppadtop=73pt \cropwidth=.25pt \raggedbottom % \end{macrocode} % \end{macro} % % \subsection{Special font commands} % \subsubsection{Redefining normalsize and small} % % Here again is something you may wish to change for yourself. Normal % 10 point \LaTeX\ uses 12 point leading. Strictly to save money, I % redefined |\normalsize| to use 11 point leading. You will probably % wish to comment this area out of the style file, or issue a % |\renewcommand| changing the values back to the normal ones (look in % article.cls to see what they are). % % If you chose to redefine |\normalsize| or |\small| (or re-redefine % them), be sure to surround your |\renewcommand| with |\makeatletter| % and |\makeatother|, lest \LaTeX\ take exception to the ``at'' signs. % % I have left my geometry in here, chiefly to show you how to do the % trick if you need it. I did the same thing for |\small|, which I % changed from 9 on 11 to 9 on 10. \begin{macro}{\normalsize} % \begin{macrocode} \makeatletter \renewcommand\normalsize{% \@setfontsize\normalsize\@xpt\@xipt \abovedisplayskip 10\p@ \@plus2\p@ \@minus5\p@ \abovedisplayshortskip \z@ \@plus3\p@ \belowdisplayshortskip 6\p@ \@plus3\p@ \@minus3\p@ \belowdisplayskip \abovedisplayskip \let\@listi\@listI} % \end{macrocode} % \end{macro} % \begin{macrocode} \makeatother \normalsize \makeatletter \renewcommand\small{% \@setfontsize\small\@ixpt{10}% \abovedisplayskip 8.5\p@ \@plus3\p@ \@minus4\p@ \abovedisplayshortskip \z@ \@plus2\p@ \belowdisplayshortskip 4\p@ \@plus2\p@ \@minus2\p@ \def\@listi{\leftmargin\leftmargini \topsep 4\p@ \@plus2\p@ \@minus2\p@ \parsep 2\p@ \@plus\p@ \@minus\p@ \itemsep \parsep}% \belowdisplayskip \abovedisplayskip } \makeatother % \end{macrocode} % \subsubsection{Internal font size commands} You will probably never need % to use these font commands explicitly. I defined these for internal % use within \textsf{poemscol}, so that a command will always call the % same fonts. % % As a way of making global changes to repeated features I have % defined various special fonts for special purposes. For instance, % in a Collected Poems in which the poems are arranged by volume, with % divider pages for the beginning of each volume, the first command % sets the font for the volume title on the divider page, using the % default font family, setting it in 18 point type on 23 point % leading. The second command, as the name of the command indicates, % sets the font for the subtitle of the volume to be 14 point type on % 18 point leading. You can change these either by changing the % values in your (renamed) style file, or by using |\renewcommand|. % For instance, you can change the font parameters for the font for % setting poem titles from 14 on 18 to 12 on 14 by issuing % |\renewcommand{\poemtitlefont}{\fontsize{12}{14}\selectfont}| in % your preamble. Notice that there are special fonts for titles in % the back matter and in the table of contents as well. % \begin{macrocode} \newcommand{\volumetitlefont}{\fontsize{18}{23}\selectfont} \newcommand{\volumesubtitlefont}{\fontsize{14}{18}\selectfont} \newcommand{\poemtitlefont}{\fontsize{14}{18}\selectfont} \newcommand{\sequencetitlefont}{\fontsize{16}{20}\selectfont} \newcommand{\subsectiontitlefont}{\fontsize{12}{14.5}\selectfont} \newcommand{\backmatterheaderfont}{\fontsize{16}{20}\selectfont} \newcommand{\volumetitlesink}{\leavevmode\vspace{23.5pt}} \newcommand{\backmattersink}{\leavevmode\vspace{21.5pt}} \newcommand{\backmatterafterheadersink}{\leavevmode\vspace{11pt}} \newcommand{\backmattertextfont}{\small} \newcommand{\backmatterintrofont}{\normalsize} \newcommand{\backmattervolumefont}{\fontsize{12}{14.5}\selectfont} \newcommand{\backmattervolumesubtitlefont}{\fontsize{11}{13}\selectfont} \newcommand{\contentsvolumefont}{\fontsize{14}{20}\selectfont} \newcommand{\contentsvolumesubtitlefont}{\fontsize{12}{14.5}\selectfont} \newcommand{\contentssequencetitlefont}{\fontsize{10}{14}\selectfont} \newcommand{\contentspoemtitlefont}{\fontsize{10}{14}\selectfont} % \end{macrocode} % \subsection{Miscellaneous dimensions and constants} % \textsf{poemscol} sets relatively large penalties for widows and % clubs, both in the main text, and in the notes sections. There are % also special penalties after volume titles in the notes sections, % since one does not want to leave a volume title in the notes % sections stranded at the bottom of a page. (Setting penalties may % not automatically solve all the problems, however. You can fix an % intractable widow problem in the contents or in the notes sections % by issuing |\literalcontents{\pagebreak}| or % |\literalemend{\pagebreak}| just before you issue the % |\poemtitle{}| or |\volumetitle{}| that resulted in the problematic % title line.) \textsf{poemscol} also manipulates penalties for places like % the space between a poem's title and its first line. It defines % special values for the white space before and after poems and for % the amount of a stanza break. |\contentsindentone|, % |\contentsindenttwo|, and so on are amounts to indent different % hierarchical levels, say of poetic sequences and subsequences, in % the table of contents. % \begin{macrocode} \widowpenalty=300 \clubpenalty=300 \newcommand{\notespoemclubpenalty}{\penalty-300} \newcommand{\notessequenceclubpenalty}{\penalty-1500} \newcommand{\notesvolumetitlepenalty}{\penalty-1500} % \end{macrocode} % Since the right margin of verse is ragged anyway, I allowed some % flexibility for slightly longer lines. % \begin{macrocode} \hfuzz=2pt % \end{macrocode} % For explicitly declared indented lines: % \begin{macrocode} \newcommand{\verseindent}{\hspace{2em}} % \end{macrocode} % A hierarchy of indentations for sequence section titles and % subsection titles. % \begin{macrocode} \newdimen\titleindentamount \titleindentamount=1pc \newcommand{\titleindent}{\hspace{\titleindentamount}} \setlength{\parindent}{\titleindentamount} % \end{macrocode} % White space after poem titles, after poems, and after sequence % titles. % \begin{macrocode} \newcommand{\afterpoemtitleskip}{\smallskip} \newcommand{\afterpoemskip}{\bigskip} \newcommand{\aftersequencetitleskip}{\medskip} % \end{macrocode} % A little extra white space between stanzas. % \begin{macrocode} \newcommand{\stanzaskip}{\medskip} % \end{macrocode} % A hierarchy of indentations for the table of contents: % \begin{macrocode} \newdimen\volumetitleshiftamount \volumetitleshiftamount=1pc \newcommand{\volumetitleshift}{\hbox{\hspace{\volumetitleshiftamount}}} \newdimen\voladditionalamount \voladditionalamount=2pc \newdimen\contentsindentoneamount \contentsindentoneamount=24pt \newcommand{\contentsindentone}{\hspace{\contentsindentoneamount}} \newdimen\contentsindenttwoamount \contentsindenttwoamount=42pt \newcommand{\contentsindenttwo}{\hspace{\contentsindenttwoamount}} \newdimen\contentsindentthreeamount \contentsindentthreeamount=60pt \newcommand{\contentsindentthree}{\hspace{\contentsindentthreeamount}} \newdimen\contentsindentfouramount \contentsindentfouramount=72pt \newcommand{\contentsindentfour}{\hspace{\contentsindentfouramount}} % \end{macrocode} % Penalties to encourage page breaks before poem titles, before % multi-line poem titles, and before sequence titles. % \begin{macrocode} \newcommand{\poemtitlepenalty}{\penalty-1000} \newcommand{\multilinetitlepenalty}{\penalty-3000} \newcommand{\sequencetitlepenalty}{\penalty-3000} \newcommand{\multilinesequencepenalty}{\penalty-3500} % \end{macrocode} % \subsection{Verse} The verse environment here is taken from \LaTeX, % slightly modified to indent run over lines more. The idea is to % distinguish the automatic indentation of run over lines from the % explicitly declared indentation of indented lines. % \begin{macrocode} \def\makeatletter{\catcode`\@=11} \def\makeatother{\catcode`\@=12 } \makeatletter \def\verse{\let\\=\@centercr \list{}{\itemsep\z@ \itemindent -6em\listparindent \itemindent \rightmargin 1sp\leftmargin 1sp\advance\leftmargin 6em}\item[]} \let\endverse\endlist \makeatother \makeatletter % \end{macrocode} % \subsection{Miscellaneous internal counters} % |\linenumber| is the line number, obviously. |\printlineindex| % records how many lines have passed since the last marginal line % number was output. |\lineindexrepeat| governs how often the marginal % line numbers appear. % \begin{macrocode} \newcounter{linenumber} \newcounter{printlineindex} \newcounter{linenumberscratch} \newcounter{printlineindexscratch} \newcounter{lineindexrepeat} \setcounter{lineindexrepeat}{9} % \end{macrocode} % These next two are used to set the page numbers in the running % headers of the various notes sections, which are of the form % ``Textual notes to pp.~xx--yy.'' % \begin{macrocode} \newcounter{notepageholdertitle} \setcounter{notepageholdertitle}{1} \newcounter{notepageholdernote} \setcounter{notepageholdernote}{1} % \end{macrocode} % % \subsection{Miscellaneous booleans} % Most of these have self-explanatory names. % \begin{macrocode} \newif\ifinstanza \newif\ifinpoem \newif\ifpoemcontentson \newif\iftextnoteson \newif\iflinenumbers \newif\ifexplanon \newif\ifemendationson \newif\iftextnotesatfoot \global\linenumberstrue \newif\ifindexingon \global\indexingontrue \ifindexingon \makeindex \fi \newif\ifincludeaccidentals \global\includeaccidentalstrue \newif\ifincludetypescripts \global\includetypescriptstrue \newif\ifredundantemendations \global\redundantemendationsfalse \newif\ifnoemendyet \newif\ifnoexplainyet \newcommand{\makelinenumbers}{\global\linenumberstrue} % \end{macrocode} % \subsection{Page styles} These define several special page styles. % To use them you must have the \textsf{fancyhdr} package installed. % First, the default running headers: the right side (|\volumeheader|) % is the title of the volume in a multivolume edition, and the left % (|\leftheader|) is the title of the general collection. % \begin{macro}{\volumeheader} \begin{macro}{\leftheader} % \begin{macrocode} \newcommand{\volumeheader}[1]{\global\edef\volumeheadervalue{#1} } \newcommand{\leftheader}[1]{\global\edef\leftheadervalue{#1} } \leftheader{\relax} \volumeheader{\relax} % \end{macrocode} % \end{macro} % \end{macro} % The default page style. Note the use of the mark mechanism to keep % track of cases where the stanza breaks and page breaks overlap. % \begin{macro}{\pagestyle{fancy}} % \begin{macrocode} \pagestyle{fancy} \fancyhead{} \fancyfoot{} \fancyhead[RO,LE]{{\small\textrm{\thepage}}} \fancyhead[CO]{{\small{\em \volumeheadervalue}}} \fancyhead[CE]{{\small{\em \leftheadervalue}}} \fancyfoot[L]{{\small \botmark}} \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} % \end{macrocode} % \end{macro} % Style for the first page of every volume in a Collected Poems. You % don't have to call this style explicitly. It is called by the |\volumetitlepage| % environment. But of course if you want to change the style of those % pages, you should do it here. % \begin{macrocode} \fancypagestyle{volumefirststyle}{% \fancyhf{} \fancyfoot[L]{{\small \botmark}} \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} } % \end{macrocode} % Style for plain pages. % \begin{macrocode} \fancypagestyle{plain}{% \fancyhf{} \fancyhead[RO,LE]{{\small\textrm{\thepage}}} \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} } % \end{macrocode} % Style for divider pages between volumes % \begin{macrocode} \fancypagestyle{volumetitlestyle}{% \fancyhf{} \renewcommand{\headrulewidth}{0pt} \renewcommand{\footrulewidth}{0pt} } % \end{macrocode} % Here the marks mechanism keeps track of pages from which notes % come. Marks are used different in the notes sections and in the body % of the volume. In the body, they are used to keep track of cases % where a stanza break falls on a page break. In the notes sections, % they set the running headers. % \begin{macro}{\mymarks} % \begin{macrocode} \newcommand{\mymarks}{ \ifthenelse{\equal{\firstmark}{\botmark}} {\unskip to p.~\firstmark} % if equal {\unskip to pp.~\firstmark--\botmark}}%if not equal \newcommand{\poemdotfill}{\dotfill} % \end{macrocode} % \end{macro} % \subsection{Marginal line numbers, verse lines} % \begin{macrocode} \renewcommand{\marnfont}{\scriptsize} \newcommand{\@putlinenumber}{\nolinebreak\begin{marginenvironment} \nolinebreak \marn{\hfil\textrm{\thelinenumber}} \nolinebreak \end{marginenvironment}\nolinebreak } % \end{macrocode} % \begin{macro}{\verseline} % \begin{macrocode} \newcommand{\verseline}{\nolinebreak\incrementlinenumber \nolinebreak\\} \newcommand{\incrementlinenumber}{\nolinebreak\addtocounter{linenumber}{1} \addtocounter{printlineindex}{1} \ifnum\theprintlineindex>\thelineindexrepeat \iflinenumbers\nobreak \@putlinenumber\nobreak \fi\nobreak \setcounter{printlineindex}{0} \fi } % \end{macrocode} % \end{macro} % \begin{macro}{\linebend} % A linebend is a a normal linebreak from \LaTeX , with no incrementing % of the line number counter, but the indentation makes the line look % like a run over line. If you change the value of the run over in the % definition of the |\verse| environment, be sure to change it here % too. |\linebend| should be used for tweaking how \textsf{poemscol} % runs over long lines. % \begin{macrocode} \newcommand{\linebend}{\\ \hspace{6em} } % \end{macrocode} % \end{macro} % |\savelinenumber| and |\restorelinenumber| are useful for setting % prose interjections in the midst of poems. % \begin{macro}{\savelinenumber} % \begin{macro}{\restorelinenumber} % \begin{macrocode} \newcommand{\savelinenumber}{\setcounter{linenumberscratch} {\value{linenumber}} \setcounter{printlineindexscratch}{\value{printlineindex}}} \newcommand{\restorelinenumber}{\setcounter{linenumber} {\value{linenumberscratch}} \setcounter{printlineindex}{\value{printlineindexscratch}}} % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\hour} % |\hour{}| is useful for typesetting the AM and the PM in the time. % \begin{macrocode} \newcommand{\hour}[1]{{{\textsc{#1}}\ $\!\!\!$} } % \end{macrocode} % \end{macro} % \begin{macro}{\brokenline} % \begin{macro}{\versephantom} % |\brokenline| and |\versephantom{}| are a pair, useful for setting % cases where there is a line break in the midst of a single metrical % line. % \begin{macrocode} \newcommand{\brokenline}{\\} \newcommand{\versephantom}[1]{\leavevmode\phantom{#1}} % \end{macrocode} % \end{macro} % \end{macro} % \subsection{Setup for contents, textual notes, emendations, and explanatory notes} % First, the table of contents: % \begin{macro}{\makepoemcontents} % An external file is created with the extension .ctn, and the % filename of your driver file. The % channel to that file is called |\poemcontents|. The rest of the % command is the page style for the contents section. You will notice % the running head Contents, and the title of the Contents section. I am % assuming that the table of contents starts on page 5, but it may be % different in different books. If you want to change that page % number (say, to page 3) without messing with this file, issue % |\literalcontents{\setcounter{page}{3}| just after you issue % |\makepoemcontents| % \begin{macrocode} \newcommand{\makepoemcontents}{\global\poemcontentsontrue \newwrite\poemcontents \immediate\openout\poemcontents=\jobname.ctn \literalcontents{\flushbottom\normalfont {\par\clearpage{\pagestyle{volumetitlestyle}\cleardoublepage} \pagestyle{fancy}\thispagestyle{volumetitlestyle}} \pagenumbering{roman} \setcounter{page}{5} \fancyhead[RO,LE]{{\small\textrm{\thepage}}} \fancyhead[CO]{{\small{\em Contents}}} \fancyhead[CE]{{\small{\em Contents}}} \fancyfoot{} \backmattersink \begin{center}{\normalfont \backmatterheaderfont CONTENTS}\end{center} \lefthyphenmin=2\backmatterafterheadersink\tolerance=500\language=0}} % \end{macrocode} % \end{macro} % Next, the textual collations: % \begin{macro}{\maketextnotes} Like the |\makecontents| macro, % |\maketextnotes| opens an external file with the extension .ent. It % makes sure that line numbering is on (since it makes no sense to make % notes without numbering the lines, particularly since the % |\textnote{}| macro uses the line number). And it makes sure that the % notes section is set with a flush bottom line, rather than with the % ragged bottom line used for the verse sections. Also, it sets a % label for sending the page number of the textual notes to the table of % contents. % \begin{macrocode} \newcommand{\maketextnotes}{\global\textnotesontrue \global\linenumberstrue \newwrite\textnotes \immediate\openout\textnotes=\jobname.ent \literaltextnote{\flushbottom{\par\clearpage {\pagestyle{volumetitlestyle}\cleardoublepage} \thispagestyle{volumetitlestyle}} \fancyhead{} \fancyfoot{} \fancyhead[RO,LE]{{\small\textrm{\thepage}}} \fancyhead[CO]{{\small{\em Textual Notes~\mymarks}}} \fancyhead[CE]{{\small{\em Textual Notes~\mymarks}}} \fancyfoot[L]{} \mark{3} \backmattersink \begin{center}{\normalfont \backmatterheaderfont TEXTUAL NOTES}\end{center} \label{textualnotes} \lefthyphenmin=2\backmatterafterheadersink\tolerance=500\language=0 \normalfont \backmattertextfont} } % \end{macrocode} % \end{macro} % \begin{macro}{\makeemendations} % Next, the emendations section: % \begin{macrocode} \newcommand{\makeemendations}{\global\emendationsontrue \newwrite\emendations \global\linenumberstrue \immediate\openout\emendations=\jobname.emd \literalemend{\flushbottom{\par\clearpage {\pagestyle{volumetitlestyle}\cleardoublepage} \thispagestyle{volumetitlestyle}} \fancyhead{} \fancyhead[RO,LE]{{\small\textrm{\thepage}}} \fancyhead[CO]{{\small{\em Emendations~\mymarks}}} \fancyhead[CE]{{\small{\em Emendations~\mymarks}}} \fancyfoot{} \mark{3} \backmattersink \begin{center}{\normalfont \backmatterheaderfont EMENDATIONS}\end{center} \label{emendationnotes} \lefthyphenmin=2\backmatterafterheadersink\tolerance=500\language=0 \normalfont \backmattertextfont} } % \end{macrocode} % \end{macro} % \begin{macro}{\makeexplanatorynotes} % And the explanatory notes: % \begin{macrocode} \newcommand{\makeexplanatorynotes}{\global\explanontrue \global\linenumberstrue \newwrite\explanations \immediate\openout\explanations=\jobname.enx \literalexplain{\flushbottom{\par\clearpage {\pagestyle{volumetitlestyle}\cleardoublepage} \thispagestyle{volumetitlestyle}} \fancyhead[RO,LE]{{\small\textrm{\thepage}}} \fancyhead[CO]{{\small{\em Explanatory Notes~\mymarks}}} \fancyhead[CE]{{\small{\em Explanatory Notes~\mymarks}}} \fancyfoot{} \mark{3} \backmattersink \begin{center}{\normalfont \backmatterheaderfont EXPLANATORY NOTES}\end{center} \label{explanatorynotes} \lefthyphenmin=2\backmatterafterheadersink\tolerance=500\language=0 \normalfont \backmattertextfont } } % \end{macrocode} % \end{macro} % Auxiliary commands for note and title sections % \begin{macrocode} \newcommand{\@poempagetotextnotes}[1]{ \immediate\write\textnotes{\string\par\string\argpageref\string{#1\string}} \@pagemarktotextnotes{#1}} \newcommand{\@poemtitletotextnotes}[1]{\literaltextnote{\textbf{#1}}} \newcommand{\@pagemarktotextnotes}[1] {\immediate\write\textnotes{\string\setcounter\string{notepageholdertitle\string} \string{\string\argpageref\string{#1\string}\string}} \immediate\write\textnotes{\string\mark \string{\string\thenotepageholdertitle\string}\string\unskip}} % \end{macrocode} % % \subsection{Book, volume, and volume section titles} % \begin{macro}{\wholebooktitle} % \begin{macro}{\booksection} % \begin{macrocode} \newcommand{\wholebooktitle}[1]{{\Huge\begin{center} \hbox{#1}\end{center}} } \newcommand{\booksection}[1]{\volumesection{#1}} % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\volumetitle{}} % \begin{macrocode} \newcommand{\volumetitle}[1]{\volumetitlesink\par {\volumetitlefont\volumetitleshift #1}\par \ifpoemcontentson \literalcontents{\par {\contentsvolumefont #1\vspace{5pt}\par\nobreak}} \fi \iftextnoteson \immediate\write\textnotes{\string\notesvolumetitlepenalty\string\bigskip} \immediate\write\textnotes{\string\goodbreak} \immediate\write\textnotes{\string\par \string\par} \immediate\write\textnotes{\string\backmattervolumefont\ #1} \immediate\write\textnotes{\string\mark\string{\thepage\string}\string\unskip} \immediate\write\textnotes{\string\par \string\backmattertextfont} \immediate\write\textnotes{\string\nobreak} \fi } % \end{macrocode} % \end{macro} % \begin{macro}{\volumetitlefirstline} % \begin{macro}{\volumetitlelastline} % \begin{macro}{\volumesubtitle} % \begin{macro}{\volumesectiontitle} % \begin{macrocode} \newcommand{\volumetitlefirstline}[1] {\volumetitlesink\par{\volumetitlefont \volumetitleshift #1 \par} \ifpoemcontentson \literalcontents{ {\contentsvolumefont #1\par\nobreak}} \fi \iftextnoteson \immediate\write\textnotes{\string\penalty-2000\string\bigskip} \immediate\write\textnotes{\string\par \string\par} \immediate\write\textnotes{\string\backmattervolumefont\ #1} \fi } \newcommand{\volumetitlelastline}[1]{{\volumetitlefont \volumetitleshift #1 \par} \ifpoemcontentson \literalcontents{{\contentsvolumefont #1\vspace{5pt}\par\nobreak}} \fi \iftextnoteson \immediate\write\textnotes{\string\backmattervolumefont\ #1} \immediate\write\textnotes{\string\mark\string{\thepage\string}\string\unskip} \immediate\write\textnotes{\string\par \string\backmattertextfont} \immediate\write\textnotes{\string\nobreak} \fi } \newcommand{\volumesubtitle}[1]{{\volumesubtitlefont \volumetitleshift #1 \par} \ifpoemcontentson \literalcontents{{\contentsvolumesubtitlefont #1\vspace{3pt}\par\nobreak}} \fi \iftextnoteson \immediate\write\textnotes{\string\backmattervolumesubtitlefont\ #1} \immediate\write\textnotes{\string\par \string\backmattertextfont} \immediate\write\textnotes{\string\nobreak} \fi } \newcommand{\volumesectiontitle}[1] {\clearpage\thispagestyle{volumefirststyle} \begin{center} {\volumesubtitlefont\textbf{#1}} \end{center} \bigskip\bigskip \ifpoemcontentson \literalcontents{\goodbreak{\contentsvolumesubtitlefont #1\par\nobreak}} \fi \iftextnoteson \immediate\write\textnotes{\string\notesvolumetitlepenalty} \immediate\write\textnotes{\string\par \string\begin{bf}} \immediate\write\textnotes{#1 \string\end{bf}} \immediate\write\textnotes{\string\par} \immediate\write\textnotes{\string\nobreak} \fi } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \subsection{Commands for setting titles of poems and sequences} % First, commands for sending labels to the table of contents and to % the notes sections. Since these are internal commands, not intended % to be issued in the body of the text, they might have been marked out % with ``at'' signs to prevent accidental redefinition. But since they % are repeatedly written out to the external files, it seemed more % economical to run the risk of redefinition than to write out % |\makeatletter| and |\makeatother| with every note. % \begin{macrocode} \newcommand{\makepoemlabel}[1]{\label{#1}} \newcommand{\argpageref}[1]{\pageref{#1}} % \end{macrocode} % \subsubsection{Poem Titles} % \begin{macro}{\poemtitle} % All of the other commands in this section are % variations on this one, changing the penalties, the skips, and the % fonts, or, in the case of lines with italics, separating a non-italic % version of the title for use as a label for page references from the % italic version used to actually set the title. The command breaks into three sections. % First, the title is set in the text. |\poemtitlepenalty| tests % whether there is room for the title and the first couple of lines. % |\poemtitlefont| globally sets the fonts for all poem titles. % The |\hbox{}| is to make sure that the poem title is not broken across % two lines, and the |\label| records the page for the contents and % notes sections. |\afterpoemtitleskip| is the amount of white space % after a poem title. |\@fulltitle| and |\@compoundlabelscratch| record % the title for concatenation later. % % Second, the poem is entered in the external file for the table of % contents. |\contentsindentone| sets it in one level in the hierarchy % of indentations, and |\contentspoemtitlefont| is the type size used % for poems in the table of contents. The |\pageref{}| holds the page % number of the poem. % % Third, a new paragraph is opened in the textual notes for textual % collations. |\@poempagetotextnotes{}| sends the page number to the % textual notes. |\@poemtitletotextnotes{}| sends the title. % \begin{macrocode} \newcommand{\poemtitle}[1] {\poemtitlepenalty{\poemtitlefont \hbox{#1}}\label{#1} \nobreak\par\nobreak\afterpoemtitleskip\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{\contentsindentone{\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % \end{macro} % \begin{macro}{\poemtitleitalic} Poems with italic titles or other % formatting (such as |\hour{}|) take two arguments. The first, with the % formatting characters included, is sent to the text and to the % contents for setting. The second, without the formatting characters, % is used to define the labels used to keep cross references to the page % number for this title correct. % \begin{macrocode} \newcommand{\poemtitleitalic}[2] {\poemtitlepenalty{\poemtitlefont \hbox{#1}}\label{#2} \nobreak\par\nobreak\afterpoemtitleskip\nobreak \global\edef\@fulltitle{#2} \global\edef\@compoundlabelscratch{#2} \ifpoemcontentson \literalcontents{\contentsindentone{\contentspoemtitlefont #1 ~/~\pageref{#2}\par}} \fi \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#2} \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % \end{macro} % For poem subtitles, see the entry on |\sequencesectionsubtitle{}|. % % \begin{macro}{\poemtitlefirstline} % \begin{macro}{\poemtitlemiddleline} % \begin{macro}{\poemtitlelastline} % Next, macros for setting multiline poem titles. Notice the special larger % penalty for page breaks in the middle of multiple line title. % \begin{macrocode} \newcommand{\poemtitlefirstline}[1] {\multilinetitlepenalty{\poemtitlefont \hbox{#1}}\label{#1} \nobreak\par\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{ \contentsindentone{\contentspoemtitlefont #1\par\nobreak}} \fi \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % Notice the use of |\let| and |\edef| here to concatenate the first and second % lines. % \begin{macrocode} \newcommand{\poemtitlemiddleline}[1]{{\poemtitlefont \hbox{#1}} \nobreak\par\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \ifpoemcontentson \literalcontents{\nobreak\contentsindenttwo {\contentspoemtitlefont #1\par\nobreak}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } \newcommand{\poemtitlelastline}[1]{{\poemtitlefont \hbox{#1}}\label{#1} \nobreak\par\nobreak \afterpoemtitleskip\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \makepoemlabel{\@compoundlabelscratch} \ifpoemcontentson \literalcontents{\nobreak\contentsindenttwo{\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % Titles for sections of poems, and multi-line titles of sections % of poems % \begin{macro}{\poemsectiontitle} % \begin{macro}{\poemsectiontitlefirstline} % \begin{macrocode} \newcommand{\poemsectiontitle}[1]{\par\nobreak {\subsectiontitlefont \hbox{\titleindent #1}}\label{#1}\par\nobreak \afterpoemtitleskip\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{\nobreak\contentsindenttwo{\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } \newcommand{\poemsectiontitlefirstline}[1]{\par\nobreak {\subsectiontitlefont \hbox{\titleindent #1}}\label{#1}\par\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{ \contentsindenttwo{\contentspoemtitlefont #1}\par\noskip} \fi \iftextnoteson \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } \newcommand{\poemsectiontitlelastline}[1]{ {\subsectiontitlefont \hbox{\titleindent #1}}\label{#1}\par\nobreak \afterpoemtitleskip\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \makepoemlabel{\@compoundlabelscratch} \ifpoemcontentson \literalcontents{\nobreak\contentsindentthree{\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\poemsectiontitlenocontents} % \begin{macro}{\poemsectionbaretitle} % \begin{macro}{\poemsubsectiontitle} % \begin{macro}{\poemtitlenotitle} % \begin{macro}{\poemtitlenotitleitalic} % \begin{macrocode} \newcommand{\poemsectiontitlenocontents}[2]{ \sequencesubsectiontitlenocontents{#1}{#2}} \newcommand{\poemfirstsectiontitlebaretitle}[1] {\par\nobreak\aftersequencetitleskip {\subsectiontitlefont \hbox{\titleindent #1}}\par\nobreak \afterpoemtitleskip\nobreak } \newcommand{\poemsectiontitlebaretitle}[1]{\par\poemtitlepenalty {\subsectiontitlefont \hbox{\titleindent #1}}\par\nobreak \afterpoemtitleskip\nobreak } \newcommand{\poemsubsectiontitle}[1] {{\large \hbox{\titleindent\titleindent #1}} \afterpoemtitleskip\nobreak} \newcommand{\poemtitlenotitle}[1] {\poemtitlepenalty \label{#1} \nobreak\par\nobreak\afterpoemtitleskip\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{\contentsindentone{\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } \newcommand{\poemtitlenotitleitalic}[2] {\poemtitlepenalty\label{#2} \nobreak\par\nobreak\afterpoemtitleskip\nobreak \global\edef\@fulltitle{#2} \global\edef\@compoundlabelscratch{#2} \ifpoemcontentson \literalcontents{\contentsindentone{\contentspoemtitlefont #1 ~/~\pageref{#2}\par}} \fi \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#2} \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % % \subsubsection{Poetic Sequences: Setting the Main Title} % \begin{macro}{\sequencetitle} % Variants here for multiple line titles and titles with font % commands. Also some all-purpose kludges to work around other problems. % \begin{macrocode} \newcommand{\sequencetitle}[1]{\par\sequencetitlepenalty {\sequencetitlefont \hbox{#1}}\label{#1}\par\nobreak\aftersequencetitleskip\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{ \par\contentsindentone {\contentssequencetitlefont #1\par\nobreak}} \fi \iftextnoteson \immediate\write\textnotes{\string\notessequenceclubpenalty} \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % \end{macro} % \begin{macro}{\sequencetitlefirstline} %% \begin{macro}{\sequencetitlelastline} % To set the title of a poetic sequence if it requires two lines % to do so. % \begin{macrocode} \newcommand{\sequencetitlefirstline}[1]{\par\multilinesequencepenalty {\sequencetitlefont \hbox{#1}}\label{#1}\par\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{ \contentsindentone {\contentssequencetitlefont #1\par\nobreak}} \fi \iftextnoteson \immediate\write\textnotes{\string\penalty-2000\string\par} \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencetitlelastline}[1]{ {\sequencetitlefont \hbox{#1}} \label{#1}\par\nobreak\aftersequencetitleskip\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \makepoemlabel{\@compoundlabelscratch} \ifpoemcontentson \literalcontents{\nobreak\contentsindenttwo {\contentssequencetitlefont #1\par\nobreak}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % \end{macro} % \end{macro} % \subsubsection{Sections of poetic sequences} % \begin{macro}{\sequencesectiontitle} % First, the easy case: a simple section of a poetic sequence. % \begin{macrocode} \newcommand{\sequencesectiontitle}[1]{\par\poemtitlepenalty {\poemtitlefont \hbox{\titleindent #1}}\label{#1} \nobreak\par\nobreak\afterpoemtitleskip\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{\contentsindenttwo{\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % \end{macro} % If you don't have any notes on a sequence section, it seems a shame % to open an entry in the textual notes for that section: % \begin{macrocode} \newcommand{\sequencesectiontitlenonotes}[1]{ \par\poemtitlepenalty {\poemtitlefont \hbox{\titleindent #1}}\label{#1} \nobreak\par\nobreak\afterpoemtitleskip\nobreak \ifpoemcontentson \literalcontents{\contentsindenttwo{\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi } % \end{macrocode} % \begin{macro}{\sequencefirstsectiontitle} % The first poem in a sequence is a special case. % \begin{macrocode} \newcommand{\sequencefirstsectiontitle}[1]{\par\nobreak {\poemtitlefont \hbox{{\titleindent #1}}}\label{#1} \nobreak\par\nobreak\afterpoemtitleskip\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{\nobreak\contentsindenttwo{\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi \iftextnoteson \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % \end{macro} % The following macros are to kludge around situations where the section % title is just a number. Obviously you can't just use that number as % the label to hold the page number, since there may be other sequences % that are organized the same way, and the label ``I.'' might take % several meanings. This macro has two arguments. The first is the % title of the section. The second is the title of the sequence as a % whole. % \begin{macrocode} \newcommand{\sequencefirstsectiontitlenocontents}[2]{\par\nobreak {\poemtitlefont \hbox{{\titleindent #1}}}\label{#1 #2} \nobreak\par\nobreak\afterpoemtitleskip\nobreak \global\edef\@fulltitle{#2 \string~ #1} \global\edef\@compoundlabelscratch{#1 #2} \iftextnoteson \@poempagetotextnotes{#1 #2} \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencesectiontitlenocontents}[2] {\par\poemtitlepenalty\goodbreak {\poemtitlefont \hbox{\titleindent #1}}\label{#1 #2} \nobreak\par\nobreak\afterpoemtitleskip\nobreak \global\edef\@fulltitle{#2 \string~ #1} \global\edef\@compoundlabelscratch{#1 #2} \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#1 #2} \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % If the first section of a sequence is a multiple line title, the % following macros can handle the special problems that situation poses. % \begin{macrocode} \newcommand{\sequencefirstsectiontitlefirstline}[1]{\par\nobreak {\poemtitlefont \hbox{{\titleindent #1}}}\label{#1} \nobreak\par\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{\nobreak\contentsindenttwo {\contentspoemtitlefont #1\par\nobreak}} \fi \iftextnoteson \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencefirstsectiontitlemiddleline}[1]{ {\poemtitlefont \hbox{\titleindent #1}} \nobreak\par\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \ifpoemcontentson \literalcontents{\nobreak\contentsindentthree{\contentspoemtitlefont #1\par\nobreak}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencefirstsectiontitlelastline}[1]{ {\poemtitlefont \hbox{\titleindent #1}}\label{#1} \nobreak\par\nobreak\afterpoemtitleskip\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \makepoemlabel{\@compoundlabelscratch} \ifpoemcontentson \literalcontents{\nobreak\contentsindentthree{\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencefirstsectiontitlenonotes}[1]{ \par\nobreak\afterpoemtitleskip\nobreak {\poemtitlefont \hbox{\titleindent #1}}\label{#1} \nobreak\par\nobreak \ifpoemcontentson \literalcontents{\nobreak\contentsindenttwo{\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi } % \end{macrocode} % \begin{macro}{\sequencesectionsubtitle} % \begin{macro}{\poemsubtitle} % \begin{macrocode} \newcommand{\sequencesectionsubtitle}[1]{{\large \hbox{\titleindent #1}} \nobreak\par\nobreak\afterpoemtitleskip\nobreak } \newcommand{\poemsubtitle}[1]{\sequencesectionsubtitle{#1} } % \end{macrocode} % \end{macro} % \end{macro} % Another kludge for special situations: % \begin{macrocode} \newcommand{\sequencesectiontitleitalicnonotes}[2] {\par\poemtitlepenalty\goodbreak {\poemtitlefont \hbox{\titleindent #1}}\label{#2} \nobreak\par\nobreak\afterpoemtitleskip\nobreak \global\edef\@fulltitle{#2} \global\edef\@compoundlabelscratch{#2} \ifpoemcontentson \literalcontents{\contentsindenttwo{\contentspoemtitlefont #1 ~/~\pageref{#2}\par}} \fi } % \end{macrocode} % Italic titles require two arguments. % % \begin{macro}{\sequencesectiontitleitalic} % \begin{macrocode} \newcommand{\sequencesectiontitleitalic}[2] {\par\poemtitlepenalty\goodbreak {\poemtitlefont \hbox{\titleindent #1}}\label{#2} \nobreak\par\nobreak\afterpoemtitleskip\nobreak \global\edef\@fulltitle{#2} \ifpoemcontentson \literalcontents{\contentsindenttwo{\contentspoemtitlefont #1 ~/~\pageref{#2}\par}} \fi \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#2} \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencesectiontitlefirstlineitalic}[2] {\par\multilinetitlepenalty\goodbreak {\poemtitlefont \hbox{\titleindent #1}}\label{#2} \nobreak\par\nobreak \global\edef\@fulltitle{#2} \global\edef\@compoundlabelscratch{#2} \ifpoemcontentson \literalcontents{\contentsindenttwo{\contentspoemtitlefont #1\par\nobreak}} \fi \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#2} \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencesectiontitlebaretitle}[1] {\par\poemtitlepenalty\goodbreak {\poemtitlefont \hbox{\titleindent #1}} \nobreak\par\nobreak\afterpoemtitleskip\nobreak } % \end{macrocode} % \end{macro} % For multiple line titles of sequence sections % \begin{macrocode} \newcommand{\sequencesectiontitlefirstline}[1] {\par\multilinetitlepenalty\goodbreak%\smallskip {\poemtitlefont \hbox{\titleindent #1}}\label{#1} \nobreak\par\nobreak%\medskip\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{\contentsindenttwo {\contentssequencetitlefont #1\par\nobreak}} \fi \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencesectiontitlemiddleline}[1]{ {\poemtitlefont \hbox{\titleindent #1}} \nobreak\par\nobreak%\medskip\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \ifpoemcontentson \literalcontents{\nobreak\contentsindentthree {\contentssequencetitlefont #1\par\nobreak}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencesectiontitlelastline}[1]{ {\poemtitlefont \hbox{\titleindent #1}}\label{#1} \nobreak\par\nobreak\afterpoemtitleskip\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \makepoemlabel{\@compoundlabelscratch} \ifpoemcontentson \literalcontents{\nobreak\contentsindentthree {\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % \subsubsection{Subsections of sequences} % \begin{macro}{\sequencesubsectiontitle} % Continuing several levels down: macros for setting subsections and % subsubsections of sequences. |\sequencesubsectiontitlenocontents| % and its relatives % take two arguments. Since the titles of subsections of sequences are % often just roman numerals, they don't make good labels for % crossreferencing purposes. The second argument of the macro is for % the title of the sequence section (or of the sequence), which enables % a unique label for that poem to be generated. % \begin{macrocode} \newcommand{\sequencesubsectiontitle}[1]{ \par\poemtitlepenalty\goodbreak {\subsectiontitlefont \hbox{\titleindent\titleindent #1}}\label{#1}\par\nobreak \afterpoemtitleskip\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{\nobreak\contentsindentthree{\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencesubsectiontitlenocontents}[2]{ \par\poemtitlepenalty\goodbreak {\large \hbox{\titleindent\titleindent #1}} \label{#1 #2}\par\nobreak \afterpoemtitleskip\nobreak \global\edef\@fulltitle{#2 \string~ #1} \global\edef\@compoundlabelscratch{#1 #2} \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#1 #2} \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencefirstsubsectiontitlenocontents}[2]{ \par\nobreak {\large \hbox{\titleindent\titleindent #1}}\label{#1 #2}\par\nobreak \afterpoemtitleskip\nobreak \global\edef\@fulltitle{#2 \string~ #1} \global\edef\@compoundlabelscratch{#1 #2} \iftextnoteson \@poempagetotextnotes{#1 #2} \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencesubsubsectiontitlenocontents}[2]{ \sequencesubsectiontitlenocontents{#1}{#2} } \newcommand{\sequencefirstsubsubsectiontitlenocontents}[2]{ \sequencefirstsubsectiontitlenocontents{#1}{#2} } % \end{macrocode} % \end{macro} % \begin{macrocode} \newcommand{\sequencesubsectiontitlefirstline}[1]{ \par\multilinetitlepenalty\goodbreak {\subsectiontitlefont \hbox{\titleindent\titleindent#1}}\label{#1}\par\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{\contentsindentthree {\contentspoemtitlefont #1\par\nobreak}} \fi \iftextnoteson \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencesubsectiontitlemiddleline}[1]{ \par\nobreak {\subsectiontitlefont \hbox{\titleindent\titleindent #1}}\par\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \ifpoemcontentson \literalcontents{\nobreak\contentsindentfour {\contentspoemtitlefont #1\par\nobreak}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencesubsectiontitlelastline}[1]{ \par\nobreak {\subsectiontitlefont \hbox{\titleindent\titleindent #1}} \label{#1}\par\nobreak \afterpoemtitleskip\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \makepoemlabel{\@compoundlabelscratch} \ifpoemcontentson \literalcontents{\nobreak\contentsindentfour {\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencefirstsubsectiontitle}[1]{ \par\nobreak {\subsectiontitlefont \hbox{\titleindent\titleindent #1}} \label{#1}\par\nobreak \afterpoemtitleskip\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{\nobreak\contentsindentthree {\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi \iftextnoteson \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencefirstsubsectiontitlefirstline}[1]{ \par\nobreak {\subsectiontitlefont \hbox{\titleindent\titleindent #1}} \label{#1}\par\nobreak \global\edef\@fulltitle{#1} \global\edef\@compoundlabelscratch{#1} \ifpoemcontentson \literalcontents{\nobreak\contentsindentthree {\contentspoemtitlefont #1\par\nobreak}} \fi \iftextnoteson \immediate\write\textnotes{\string\par} \immediate\write\textnotes{\string\nopagebreak} \@poempagetotextnotes{#1} \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencefirstsubsectiontitlemiddleline}[1]{ \par\nobreak {\subsectiontitlefont \hbox{\titleindent\titleindent #1}}\par\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \ifpoemcontentson \literalcontents{\nobreak\contentsindentfour {\contentspoemtitlefont #1\par\nobreak}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } \newcommand{\sequencefirstsubsectiontitlelastline}[1]{ \par\nobreak {\subsectiontitlefont \hbox{\titleindent\titleindent #1}} \label{#1}\par\nobreak \afterpoemtitleskip\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \makepoemlabel{\@compoundlabelscratch} \ifpoemcontentson \literalcontents{\nobreak\contentsindentfour {\contentspoemtitlefont #1 ~/~\pageref{#1}\par}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % Interjections in sequences, as in Robert Penn Warren's \emph{Or Else}. % \begin{macrocode} \newcommand{\interjectiontitlefirstline}[2]{ \par\multilinetitlepenalty%\smallskip {\poemtitlefont \hbox{\titleindent\titleindent \emph{#1}}} \label{#2}\par\nobreak \afterpoemtitleskip\nobreak \global\edef\@fulltitle{#2} \global\edef\@compoundlabelscratch{#2} \ifpoemcontentson \literalcontents{ \contentsindentthree {\contentspoemtitlefont \emph{#1}\par\nobreak}} \fi \iftextnoteson \immediate\write\textnotes{\string\notespoemclubpenalty} \@poempagetotextnotes{#2} \@poemtitletotextnotes{#1} \fi } \newcommand{\interjectiontitlelastline}[1]{ {\poemtitlefont \hbox{\titleindent\titleindent \emph{#1}}} \label{#1}\par\nobreak \afterpoemtitleskip\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \makepoemlabel{\@compoundlabelscratch} \ifpoemcontentson \literalcontents{\nobreak\contentsindentfour{\contentspoemtitlefont \emph{#1}\/~/~\pageref{#1}\par}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } \newcommand{\interjectiontitlemiddleline}[1]{\par\nobreak {\poemtitlefont \hbox{\titleindent\titleindent #1}}\par\nobreak \let\@titlesofar=\@fulltitle \global\edef\@fulltitle{\@titlesofar\string~#1} \let\@compoundsofar=\@compoundlabelscratch \global\edef\@compoundlabelscratch{\@compoundsofar #1} \ifpoemcontentson \literalcontents{\nobreak\contentsindentfour {\contentspoemtitlefont \emph{#1}\par\nobreak}} \fi \iftextnoteson \@poemtitletotextnotes{#1} \fi } % \end{macrocode} % \subsection{Epigraphs, headnotes, attributions, dedications} % Notice that epigraphs to volumes are handled differently from % epigraphs to poems. % \begin{macro}{\epigraph} % \begin{macro}{\headnote} % \begin{macro}{\attribution} % \begin{macro}{\dedication} % \begin{macro}{\volumededication} % \begin{macro}{\volumeepigraph} % \begin{macro}{\volumeattribution} % \begin{macrocode} \newcommand{\epigraph}[1]{\nopagebreak\afterpoemtitleskip\begin{epigraphquote} \emph{#1}\end{epigraphquote}\afterpoemtitleskip\nopagebreak} \newcommand{\headnote}[1]{\epigraph{#1}} \newcommand{\attribution}[1]{\nopagebreak\afterpoemtitleskip\begin{epigraphquote} {\small\emph{#1}}\end{epigraphquote}\afterpoemtitleskip\nopagebreak} \newcommand{\dedication}[1]{\nopagebreak\afterpoemtitleskip\begin{epigraphquote} \emph{#1}\end{epigraphquote}\afterpoemtitleskip\nopagebreak} \newcommand{\volumededication}[1]{\par\bigskip\begin{volumetitlepagequote} \emph{#1}\end{volumetitlepagequote}} \newcommand{\volumeepigraph}[1]{\par\bigskip\begin{volumetitlepagequote} \emph{#1}\end{volumetitlepagequote}} \newcommand{\volumeattribution}[1]{\par\smallskip\begin{volumetitlepagequote} {\small \emph{#1}}\end{volumetitlepagequote}} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \end{macro} % \subsection{Tools used for making note sections} The main tool is % a dirty trick borrowed from John Lavagnino's package for endnotes, % \textsf{endnotes}, which allows for writing out literal characters to an % external file. The trick involves redefining the space character as % the newline character and treating the text of the note as the body of % a macro that |\meaning| specifies. The result is that the text is % written to the external file in a long ribbon one word wide. % \begin{macrocode} \def\strip#1>{} \newcommand{\literaltextnote}[1]{ \begingroup \def\next{#1}% \newlinechar='40 \immediate\write\textnotes{\expandafter\strip\meaning\next}% \endgroup } \newcommand{\literalemend}[1]{ \begingroup \def\next{#1}% \newlinechar='40 \immediate\write\emendations{\expandafter\strip\meaning\next}% \endgroup } \newcommand{\literalexplain}[1]{ \begingroup \def\next{#1}% \newlinechar='40 \immediate\write\explanations{\expandafter\strip\meaning\next}% \endgroup } \newcommand{\literalcontents}[1]{ \begingroup \def\next{#1}% \newlinechar='40 \immediate\write\poemcontents{\expandafter\strip\meaning\next}% \endgroup } \newcommand{\literaltextnoteshort}[1]{ \begingroup \def\next{#1}% \immediate\write\textnotes{\expandafter\strip\meaning\next}% \endgroup} \newcommand{\literalemendshort}[1]{ \begingroup \def\next{#1}% \immediate\write\emendations{\expandafter\strip\meaning\next}% \endgroup} \newcommand{\literalexplainshort}[1]{ \begingroup \def\next{#1}% \immediate\write\explanations{\expandafter\strip\meaning\next}% \endgroup} \newcommand{\literalcontentsshort}[1]{ \begingroup \immediate\write\poemcontents{\expandafter\strip\meaning\next}% \endgroup} \newcommand{\sameword}{$\sim$} \newcommand{\missingpunct}{${}_{\wedge}$} % \end{macrocode} % \subsection{Commands to make notes and send info to contents} % % \begin{macro}{\textnote} % The % basic |\textnote{}| command, on which everything else is based, has % several parts. First, it tests to see whether endnotes or footnotes % are required. Second, If endnotes are required, it writes out a little program % on the external endnotes file which, when it is read back in when % the endnotes are typeset, sets a variable with the value of % the page of the line the note is commenting upon and checks to see % whether that value is equal to or greater than that of previous notes % on that page of notes. Depending upon the outcome of that test, it % sets the value of |\mark| with the correct numbers to print the proper % running header of the form ``Textual Notes to pp.xx--yy.'' Third, it % sends the line number of the line it is a comment upon and the text of % the note to the notes section. % % % % \begin{macrocode} \newcommand{\textnote}[1]{ \iftextnotesatfoot \footnotetext[\thelinenumber]{#1} \fi \iftextnoteson \immediate\write \textnotes{\string\setcounter\string{notepageholdernote\string} \string{\thepage\string}\string\unskip} \immediate\write \textnotes{\string\ifthenelse\string{\string\value\string{notepageholdernote\string} >\string\value\string{notepageholdertitle\string}\string}} \immediate\write \textnotes{\string{\string\mark\string{\string\thenotepageholdernote\string}\string}} \immediate\write \textnotes{\string{\string\mark\string{\string\thenotepageholdertitle\string} \string}\string\unskip} \immediate\write\textnotes {\string\unskip\string\relax\ \thelinenumber :\string~\string\nolinebreak} \literaltextnote{#1} \fi } % \end{macrocode} % \end{macro} % \begin{macro}{\accidental} % Accidentals: As it is, the command just tests to see whether % accidentals are being included or not, and sets the accidental as a % textnote if accidentals are being included. It would not be hard to % divert accidentals to another external file in order to compile a % separate list of accidentals. % \begin{macrocode} \newcommand{\accidental}[1]{ \ifincludeaccidentals \immediate\write\textnotes{\string\unskip\string\nobreak} \textnote{#1} \immediate\write\textnotes{\string\unskip\string\nobreak} \fi } % \end{macrocode} % \end{macro} % \begin{macro}{\tsvariant} % \begin{macro}{\tsaccidental} % Typescript variants. Treated like accidentals. If they are being % collected, they are sent to the textual notes. Again, it would not be % hard to collect them separately. % \begin{macrocode} \newcommand{\tsvariant}[1]{ \ifincludetypescripts \immediate\write \textnotes{\string\unskip\string\nobreak} \textnote{#1} \immediate\write\textnotes{\string\unskip\string\nobreak} \fi } \newcommand{\tsaccidental}[1]{\ifincludetypescripts\accidental{#1}\fi} % \end{macrocode} % \end{macro} % \end{macro} % \begin{macro}{\tsentry} % Typescript entries. Allows one to to selectively include or exclude % typescript entries from lists of variants. % \begin{macrocode} \newcommand{\tsentry}[1]{\ifincludetypescripts{#1}\fi\unskip} % \end{macrocode} % \end{macro} % \begin{macro}{\sources} % |\sources{}| is essentially a |\textnote{}| with no line number % and no page checking. Useful for typesetting the sources of the text % (hence the name) and for sending literal characters to the endnotes % file for other purposes. % \begin{macrocode} \newcommand{\sources}[1]{ \iftextnoteson \begingroup \newlinechar='40 \def\next{#1}% \immediate\write\textnotes{\expandafter\strip\meaning\next}% \endgroup \fi } % \end{macrocode} % \end{macro} % % \subsection{Emendations and explanatory notes} % The difference between these kinds of notes and ordinary % |\textnotes{}| is that they must first test to see whether there have % been any emendations or explanatory notes for the poem in question. % If there have not been prior notes, then a new paragraph must be % opened and the page number and title of the poem set in the note % section. % \begin{macro}{\emendation} % \begin{macrocode} \newcommand{\emendation}[1]{ \ifnoemendyet \firstemendation{#1} \global\noemendyetfalse \else \ifredundantemendations \textnote{#1} \fi \ifemendationson \immediate\write \emendations{\string\setcounter\string{notepageholdernote\string} \string{\thepage\string}\string\unskip} \immediate\write \emendations{\string\ifthenelse\string{\string\value\string{notepageholdernote\string} >\string\value\string{notepageholdertitle\string}\string}} \immediate\write \emendations{\string\unskip\string\relax\ \thelinenumber :\string~\string\nolinebreak} \literalemend{{#1}} \immediate\write\emendations{\string\leavevmode\string\nolinebreak} \fi \fi } % \end{macrocode} % \end{macro} % This next is an internal command, % called by |\emendation|. There's no need to use it explicitly. % \begin{macrocode} \newcommand{\firstemendation}[1]{ \ifredundantemendations \textnote{#1} \fi \ifemendationson \immediate\write\emendations{\string\par} \immediate\write \emendations{\string\argpageref\string{\@compoundlabelscratch\string}} \immediate\write \emendations{\string\setcounter\string{notepageholdertitle\string} \string{\string\argpageref\string{\@compoundlabelscratch\string}\string}\string\unskip} \immediate\write \emendations{\string\mark\string{\string\thenotepageholdertitle\string} \string\unskip} \immediate\write\emendations{\string\textbf\string{\ \@fulltitle\string}} \immediate\write\emendations{\thelinenumber :\string~\string\nolinebreak} \literalemend{#1} \fi } % \end{macrocode} % \begin{macro}{\explanatory} % Again, |\firstexplanatory| is internal, called by |\explanatory|. % \begin{macrocode} \newcommand{\explanatory}[1]{ \ifnoexplainyet \firstexplanatory{#1} \global\noexplainyetfalse \else \ifexplanon \immediate\write \explanations{\string\setcounter\string{notepageholdernote\string} \string{\thepage\string}\string\unskip} \immediate\write \explanations{\string\ifthenelse\string{\string\value\string{notepageholdernote\string} >\string\value\string{notepageholdertitle\string}\string}} \immediate\write \explanations{\string\unskip\string\relax\ \thelinenumber :\string~\string\nolinebreak} \literalexplain{#1} \immediate\write\explanations{\string\leavevmode\string\nolinebreak} \fi \fi } \newcommand{\firstexplanatory}[1]{ \ifexplanon \immediate\write\explanations{\string\par} \immediate\write \explanations{\string\argpageref\string{\@compoundlabelscratch\string}} \immediate\write \explanations{\string\setcounter\string{notepageholdertitle\string} \string{\string\argpageref\string{\@compoundlabelscratch\string}\string}\string\unskip} \immediate\write \explanations{\string\mark\string{\string\thenotepageholdertitle\string}\string\unskip} \immediate\write\explanations{\string\textbf\string{\ \@fulltitle\string}} \immediate\write\explanations{\thelinenumber :\string~\string\nolinebreak} \literalexplain{#1} \fi } % \end{macrocode} % \end{macro} % % % \subsection{Embarrassing kludges} Because the dirty trick % mentioned above writes out textnotes as a ribbon one word wide, % quoted poetry in the notes sections will leave a blank line at the % end, which will be interpreted as a paragraph break when the file is % read back in by \LaTeX. These kludges correct that problem. % \begin{macrocode} \newcommand{\quotedversecorrectiontextnote} {\immediate\write \textnotes{\string\par\string\noindent\string\kern-3pt}}% a bad kludge \newcommand{\quotedversecorrectionemendation} {\immediate\write \emendations{\string\par\string\noindent\string\kern-3pt}}% a bad kludge \newcommand{\quotedversecorrectionexplanatory} {\immediate\write \explanations{\string\par\string\noindent\string\kern-3pt}}% a bad kludge % \end{macrocode} % % \subsection{Finishing up} % \begin{macro}{\finish} % The |\finish| macro reads in the notes, % the index (previously created from your .aux file by MakeIndex), and % the contents sections and sets them. The notes sections send page % information to the contents file as they are set. Then the page % information for the index is sent to the contents file. Finally the % contents file is closed and read in. If you have an editor's % introduction or a list of abbreviations, copy this macro, uncomment out the commented out lines, % and issue it all as a |\renewcommand| for |\finish|. Be sure to % have the command |\label{editorsintroduction}| on the first page of % your introduction. % It usually takes three % passes to get the table of contents and the index files correct. % % The consequence of doing using |\finish| is that the table of % contents comes last. There are ways around this that are described % earlier. The notes sections are all typeset in the |\small| size. % % \begin{macrocode} \newcommand{\finish}{ \small\bf \hyphenchar\font=45 \small\it \hyphenchar\font=45 \small\rm \hyphenchar\font=45 \ifemendationson \newpage \immediate\closeout\emendations \input \jobname.emd \fi \iftextnoteson \newpage \immediate\closeout\textnotes \input \jobname.ent \newpage \fi \ifexplanon \immediate\closeout\explanations \input \jobname.enx \newpage \fi \ifindexingon \printindex \fi \ifpoemcontentson % \immediate\write\poemcontents{\string\vspace{10pt}\string\par} % \immediate\write % \poemcontents{\string\contentspoemtitlefont\ Introduction to the Notes} % \immediate\write % \poemcontents{\string~ / \string~\ \string\pageref{editorsintroduction} \string\par} % \immediate\write\poemcontents{\string\par \string\smallskip} % \immediate\write\poemcontents{\string\contentspoemtitlefont\ Abbreviations} % \immediate\write % \poemcontents{\string~ / \string~\ \string\pageref{abbreviations} \string\par} % \immediate\write\poemcontents{\string\par \string\smallskip} \ifemendationson \immediate\write\poemcontents{\string\contentspoemtitlefont\ Emendations} \immediate\write \poemcontents{\string~ / \string~\ \string\pageref{emendationnotes} \string\par} \immediate\write\poemcontents{\string\par \string\smallskip} \fi \iftextnoteson \immediate\write\poemcontents{\string\contentspoemtitlefont\ Textual Notes} \immediate\write \poemcontents{\string~ / \string~\ \string\pageref{textualnotes} \string\par} \immediate\write\poemcontents{\string\par \string\smallskip} \fi \ifexplanon \immediate\write \poemcontents{\string\contentspoemtitlefont\ Explanatory Notes} \immediate\write \poemcontents{\string~ / \string~\ \string\pageref{explanatorynotes}} \fi \ifindexingon \immediate\write\poemcontents{\string\par \string\smallskip} \immediate\write \poemcontents{\string\contentspoemtitlefont\ Index of Titles and First Lines} \immediate\write \poemcontents{\string~ / \string~\ \string\pageref{indexpage}\string\par} \fi \immediate\closeout\poemcontents \input \jobname.ctn \fi \clearpage \thispagestyle{volumetitlestyle} \vspace{106pt} \begin{center} {\poemtitlefont Note} \end{center} \noindent The symbol * is used to indicate a space between sections of a poem wherever such spaces are lost in pagination. \cleardoublepage } % \end{macrocode} % \end{macro} % \subsection{Visual formatting} The ideal in \LaTeX\ is to separate % content markup and formatting as completely as possible. In the text % itself you simply mark the logical units (a poem, a title, a stanza, % a textual note), and a header program like this interprets the % meaning of those terms typographically. However, one still winds up % having to do some visual formatting. Sometimes you have to enlarge or % shrink a page by one line in order to avoid an intractable widow or % club line, and when one does so one must be careful to do the same to % the other member of the two-page spread of which that page is a part. % These commands enable one to wiggle pagelength enough to handle these % problems. % \begin{macrocode} \newcommand{\longpage}{\enlargethispage{\baselineskip}} \newcommand{\shortpage}{\enlargethispage{-\baselineskip}} % \end{macrocode} % % \subsection{Environments: poem, and stanza} Here are definitions % of the poem and stanza environments, and of the |\verseline| and % |\stanzalinestraddle| macros. % \begin{macro}{stanza} % Page breaks are slightly encouraged in stanza breaks. Notice that % entering a stanza sets the mark to |\relax| and leaving it sets the % mark to *. If you want to use some other symbol for this purpose, put % it here. % \begin{macrocode} \newenvironment{stanza}{\penalty-100\instanzatrue\mark{\relax}} {\nobreak\mark{*}\nobreak\incrementlinenumber \nobreak \instanzafalse \stanzaskip } \newenvironment{marginenvironment}{}{} \newcommand{\stanzalinestraddle} {\begin{stanza}\addtocounter{linenumber}{-1} \addtocounter{printlineindex}{-1} } % \end{macrocode} % \end{macro} % The poem environment. The little trick about setting the language % number is designed to suppress automatic hyphenation in the poem % environment. The booleans tell the |\emendation{}| and % |\explanatory{}| macros that there have not yet been emendations or % explanatory notes for this poem. The little trick with |\mark| sets % the value of |\mark| to * if the current location is in a poem but not % in a stanza (which is to say, in a stanza break). The |\pagestyle| for % poetry sets the value of |\mark| in the footer, which is * if the page % break happens at a stanza break, and |\relax| if the page break % happens anywhere else. % \begin{macro}{poem} % \begin{macrocode} \newenvironment{poem}{\raggedright \language=255%no hyphenation in verse \noemendyettrue \noexplainyettrue \setcounter{linenumber}{0}\setcounter{printlineindex}{0} \nobreak\begin{verse} \inpoemtrue\nobreak\mark{\relax}}{\end{verse} \inpoemfalse\mark{\relax} \goodbreak\afterpoemskip%\bigskip } % \end{macrocode} % \end{macro} % \subsection{Environments: main title page, divider pages} % Environments for the main title page, and for the divider pages for % individual volumes in a Collected Poems. % \begin{macro}{volumetitlepage} % \begin{macro}{maintitlepage} % \begin{macro}{booksectionpage} % \begin{macrocode} \newenvironment{volumetitlepage} {\par\clearpage{\pagestyle{volumetitlestyle}\cleardoublepage} \thispagestyle{volumetitlestyle}} {\newpage\thispagestyle{volumetitlestyle} \cleardoublepage\thispagestyle{volumefirststyle}} \newenvironment{maintitlepage} {\par\cleardoublepage\thispagestyle{volumetitlestyle} }{\newpage\thispagestyle{volumetitlestyle}\cleardoublepage} \newenvironment{booksectionpage} {\par\newpage\thispagestyle{volumetitlestyle}}{\newpage} % \end{macrocode} % \end{macro} % \end{macro} % \end{macro} % \subsection{Special environments: cjquotation and theindex} % An environment for special prose quotations within verse % as in ``Chief Joseph of the Nez Perce'' % % \goodbreak % % \begin{macro}{cjquotation} % \begin{macrocode} \makeatletter \newenvironment{cjquotation} {\tolerance=2000% \vspace{-\bigskipamount} \restorelinenumber \language=255 \noindent\relax \list{}{\listparindent 0em% \itemindent 0em% \rightmargin 2em% \leftmargin 2em% \topsep 0em% \parskip 0em% \itemindent \listparindent \rightmargin \leftmargin \parsep \z@ \@plus\p@}% \item[] } {\endlist} \makeatother \makeatletter % \end{macrocode} % \end{macro} % \begin{macro}{theindex} % And the environment for the index: % \begin{macrocode} \renewenvironment{theindex} {{\par\clearpage{\pagestyle{volumetitlestyle}\cleardoublepage} \thispagestyle{volumetitlestyle}} \makeatletter \def\@idxitem{\par\hangindent 1em} \makeatother \fancyhead[RO,LE]{{\small\textrm{\thepage}}} \fancyhead[CO]{{\small{\em Index of Titles and First Lines}}} \fancyhead[CE]{{\small{\em Index of Titles and First Lines}}} \fancyfoot{} \label{indexpage} \lefthyphenmin=2\tolerance=500\language=0 \normalfont \backmattertextfont \raggedright \begin{multicols} {2}[\backmattersink\begin{center}{\normalfont \backmatterheaderfont INDEX OF TITLES AND FIRST LINES}\end{center} \backmatterafterheadersink]% \let\item\@idxitem} {\end{multicols}\clearpage} \makeatother % \end{macrocode} % \end{macro} % Finally, some other miscellaneous environments. % \begin{macrocode} \newenvironment{epigraphquote}{\list{}{\rightmargin 1.5em% \leftmargin 1.5em% \topsep 0pt% \partopsep 0pt% \listparindent 0pt% }% \item\relax} {\endlist} \newenvironment{volumetitlepagequote}{\list{}{\rightmargin \voladditionalamount% \leftmargin \voladditionalamount% \topsep 0pt% \partopsep 0pt% \listparindent 0pt }% \item\relax} {\endlist} % \end{macrocode} % \Finale \endinput