diff options
Diffstat (limited to 'macros/latex/contrib/poemscol/poemscol.dtx')
-rw-r--r-- | macros/latex/contrib/poemscol/poemscol.dtx | 294 |
1 files changed, 235 insertions, 59 deletions
diff --git a/macros/latex/contrib/poemscol/poemscol.dtx b/macros/latex/contrib/poemscol/poemscol.dtx index 5a4984c229..b1dd14c6d9 100644 --- a/macros/latex/contrib/poemscol/poemscol.dtx +++ b/macros/latex/contrib/poemscol/poemscol.dtx @@ -1,7 +1,7 @@ % \iffalse meta-comment % !TEX TS-program = dtxmk % -% Copyright (C) 2002-2019 by John Burt <burt@brandeis.edu> +% Copyright (C) 2002-2020 by John Burt <burt@brandeis.edu> % -------------------------------------------------- % % This file may be distributed and/or modified under the @@ -23,7 +23,7 @@ % \iffalse %<package>\NeedsTeXFormat{LaTeX2e}[1997/12/01] %<package>\ProvidesPackage{poemscol} -%<package> [2020/06/02 v3.14159 poemscol file] +%<package> [2020/06/12 v3.141592 poemscol file] % %<*driver> \documentclass{ltxdoc} @@ -38,7 +38,7 @@ %</driver> % \fi % -% \CheckSum{10550} +% \CheckSum{10704} % % \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 @@ -268,6 +268,11 @@ % and its siblings. Marginal marks are now set using their own inserts, rather than using marginpar.} % \changes{v3.14159}{2020/06/02}{Marginal marks set by JHpoemtitle now work with the different % title placement schemes.} +% \changes{v3.141592}{2020/06/12}{Special commands for titles with footnotes (where the footnotes +% are authorial and part of the title). Title footnotes can be set at the bottom of the page, like +% traditional footnotes, at the bottom of the page like ``Layered'' footnotes, or at the +% end of the poem. Marginal marks set by JHpoemtitle can be placed +% independently of the marginal marks produced by margreftextnote..} % \DoNotIndex{\newcommand,\newenvironment,\def,\edef,\else,\renewcommand,\makeatletter,\makeatother} % \DoNotIndex{\abovedisplayskip,\belowdisplayskip,\abovedisplayshortskip,\belowdisplayshortskip} % \DoNotIndex{\newcommand, \section, \subsection, \subsubsection, @@ -300,15 +305,15 @@ % \textsc, \unskip} % \setcounter{IndexColumns}{2} % \MakeShortVerb{|} -% \def\fileversion{3.14159} -% \def\filedate{2 June 2020} -% \def\docdate{2 June 2020} +% \def\fileversion{3.141592} +% \def\filedate{12 June 2020} +% \def\docdate{12 June 2020} % \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{2 June 2020} +% \date{12 June 2020} % \maketitle % \begin{abstract} \textsf{poemscol} provides commands for \LaTeX\ for % setting collections of poetry. It is especially suited for setting @@ -2290,7 +2295,8 @@ % range of line numbers of the lemma. To define a footnote called % |\mynote|, first declare new footnote |\footnoteE| (A, B, C and D % are reserved for sources, textual notes, emendations, and explanatory notes, -% respectively). Then issue: \begin{verbatim} +% respectively, and H is reserved for use for titles with +% authorial footnotes). Then issue: \begin{verbatim} % \newcommand{\mynote}[2][0]{\setlemmarange{#1}\\ % \FootnotetextE{\citerange}{#2} % \resetlemmacounters} \end{verbatim} @@ -2811,14 +2817,19 @@ % This is so that you can control the placement of these marks % independently of how you place the line numbers (which use % |\pmclsidepar|) or other marginal marks you may define using -% |\marginpar|. Horizontal placement of the mark is controlled by the +% |\marginpar|. +% +% Horizontal placement of the mark is controlled by the % length |\JHmarginparsep|, which is set by default to 0 pt. Vertical -% placement of the marginal mark, relative to the baseline, is set by +% placement of the marginal mark for a textual note, relative to the baseline, is set by % the length |\JHmarginparvshift|, which is set by default to 0 pt. -% |\JHpoemtitle|, however, uses the same commands to -% control the placement of the mark after the title, and the two +% The horizontal placement of the +% marginal mark set by |\JHpoemtitle|, and its siblings, however, +% is controlled by the length |\JHtitlemarginparsep|. |\JHtitlemarginparsep| +% is set by default to value of |\JHmarginparsep|, +% so that the two % kinds of mark -% are designed so that they should always align vertically. +% should align with each other by default. % \end{sloppy} % % By default these marginal references are placed in the right @@ -2828,14 +2839,20 @@ % If you wish the % marks to aways be in the outer margin, issue the command % |\JHmarksouter|. If you wish the marks to always be in the inner -% margin, issue |\JHmarksgutter|. +% margin, issue |\JHmarksgutter|. (The marks for titles and the marks for +% notes always appear on the same side of the page, and the different |\JHmarks| commands +% always move both kinds of mark.) % % If you are centering the verse block on the longest line, the verse % line numbers normally move in towards the verse block. (To center % the verse block on the longest line, see section % \ref{centeringtextblock}.) The marginal % marks for |\margeftextnote| do not do this, since they are designed to -% line up with the marginal mark produced by |\JHpoemtitle|. +% line up with the marginal mark produced by |\JHpoemtitle|. You can change +% the alignment if you wish by changing the value of either the length |\JHmarginparsep|, +% which controls the placement of marginal marks for notes, or changing the value +% of the length |\JHtitlemarginparsep|, which controls the placement of the marginal +% marks for titles. % % \begin{sloppypar} % If you define a new endnote type using |\definenewnotetype|, @@ -2864,6 +2881,65 @@ % \DescribeMacro{\margrefexplanatory}|\margrefexplanatory| is a % version of |\margreftextnote| for explanatory notes. % +% \subsection{~Titles with footnotes} +% In James Benstead's edition of the collected poems of Hugh +% MacDiarmid, many of the titles of the poems have footnotes by the +% author. Under most circumstances, one can put a note about the title +% in the textual notes section simply by, after the |\begin{poem}| +% command, issuing something like this: |\literaltextnote{title] text of note}|. +% (One can make similar notes for the explanatory notes +% section or for the emendations section.) But MacDiarmid's notes are +% authorial, not editorial, and should be considered part of the +% title. At the same time, the notes should not be printed in the Table +% of Contents, nor for that matter in the endnotes sections. +% +% \DescribeMacro{\footnotepoemtitle} |\footnotepoemtitle| is for the default +% case. It takes two arguments. The first argument is the title of +% the poem. The second is the text of the footnote. +% +% \begin{sloppypar} +% \DescribeMacro{\footnotepoemtitlefirstline} +% |\footnotepoemtitlefirstline| |\footnotepoemtitlemiddleline| and +% |\footnotepoemtitlelastline| are for long titles in which how the +% author broke up the title on the page matters, and one or more of +% the lines has a footnote. These commands also take two arguments, +% of which the first is the title line and the second is the text of +% the footnote. You can intersperse these commands with +% |\poemtitlefirstline| +% |\poemtitlemiddleline| or |\poemtitlelastline| (depending on which +% line has the footnote). The lines will be broken in the same way in +% the text and in the table of contents. \end{sloppypar} +% +% \DescribeMacro{\footnotesplitpoemtitle} |\footnotesplitpoemtitle| +% is for the most general case. Use it if there is a footnote in the middle +% of the title, or if you have a long title and don't need to ensure +% that it is broken in the text and in the table of contents in the +% same way. |\footnotesplitpoemtitle| takes three arguments. The first +% argument is the first part of the title, up to the footnote mark, +% the second is the text of the footnote, and the third is the rest +% of the title. +% +% I have not created footnoted titles for sequences, sequence +% sections, and so on. But if you compare how those titles are +% defined in the implementation section below and how footnoted +% titles are defined at \ref{footnotetitles} +% (page \pageref{footnotetitles}), how to write those commands should be clear. +% +% You can control where the footnotes for footnoted titles are placed. +% By default, those footnotes are conventional footnotes (and all +% their parameters are set in the way normal \LaTeX\ footnotes are +% set). You can force the default setting by issuing the command +% |\maketitlefootnotesplain| in your preamble. If you are setting +% your textual notes or other notes at the foot of the page using +% ``layers'' of footnotes, you can treat these footnotes as just +% another layer by issuing the command |\maketitlefootnoteslayered| in +% your preamble. (``Layered'' footnotes are described at section \ref{makingfootnotes}, +% page \pageref{makingfootnotes}.) If you wish to place these footnotes at the end of +% the poem, you must issue |\maketitlefootnotesatpoemend| in the +% preamble. Just before you declare a title with a footnote, issue +% |\makepoemendnotes|, and just after issuing |\end{poem}| for that +% poem, issue |\putpoemendnotes|. +% % \subsection{~Empty poem titles and italicized poem titles} % % \DescribeMacro{\poemtitlenotitle} @@ -7140,6 +7216,8 @@ \setlength{\JHmarginparwidth}{\marginparwidth} \newlength{\JHmarginparsepmin} \setlength{\JHmarginparsepmin}{\marginparsepmin} +\newlength{\JHtitlemarginparsep}% +\setlength{\JHtitlemarginparsep}{\JHmarginparsep}% \newif{\ifJHmarkstoleft} \JHmarkstolefttrue \newif{\ifJHmarkstoright} @@ -7307,10 +7385,10 @@ \newcommand{\JHrighttitlemarginpar}[1]{% \pmclbsphack\strut\vadjust{% \rlap{\kern-\parindent% -\kern\textwidth\kern\JHmarginparsep% at right -\ifcentertitleson -\kern-.5\JHtextwidth\kern\marginparsepmin -\fi +\kern\textwidth\kern\JHtitlemarginparsep% at right +\ifcentertitleson% +\kern-.5\JHtextwidth\kern\marginparsepmin% +\fi% \setbox0=\vtop to 0pt{% added \begin{minipage}[t]{\JHmarginparwidth}% added #1% @@ -7318,18 +7396,17 @@ \vss}% \vtop to 0pt{\kern\JHmarginparvshift% default should be 0pt \kern-\dp\strutbox \kern-\ht0 \box0 \vss}}}\pmclesphack}% - % % commands for placing the marginal marks for titles % left side \newcommand{\JHlefttitlemarginpar}[1]{% \pmclbsphack\strut\vadjust{% changed \rlap{\kern-\parindent% -\kern -\JHmarginparsep \kern -\JHmarginparwidth% at left -\ifcentertitleson -\kern-.5\JHtextwidth\kern\marginparsepmin -\fi -\setbox0=\vtop to 0pt{ +\kern -\JHtitlemarginparsep \kern -\JHmarginparwidth% at left +\ifcentertitleson% +\kern-.5\JHtextwidth\kern\marginparsepmin% +\fi% +\setbox0=\vtop to 0pt{% \begin{minipage}[t]{\JHmarginparwidth}% added #1% \end{minipage}% @@ -7337,46 +7414,46 @@ \vtop to 0pt{\kern\JHmarginparvshift % default should be 0pt \kern-\dp\strutbox \kern-\ht0 \box0 \vss}}}\pmclesphack}% changed % -% command for JHmarks in title in outer margin or in gutter +% command for JHtitlemarks in title in outer margin or in gutter \newcommand{\JHswitchtitlemarginpar}{\@dblarg{\@JHswitchtitlemarginpar}} %\long\def\@pmclsidepar[#1]#2{\@bsphack\leavevmode\vadjust{% \long\def\@JHswitchtitlemarginpar[#1]#2{\@bsphack\strut\vadjust{% added -\checkoddpage - \ifJHmarginparswitch - \ifJHreversemarginpar - \ifoddpage - \oddpagefalse - \else - \oddpagetrue - \fi - \fi - \else - \oddpagetrue - \ifJHreversemarginpar - \oddpagefalse - \fi - \fi - \rlap{\kern-\parindent - \if@twocolumn +\checkoddpage% + \ifJHmarginparswitch% + \ifJHreversemarginpar% + \ifoddpage% + \oddpagefalse% + \else% + \oddpagetrue% + \fi% + \fi% + \else% + \oddpagetrue% + \ifJHreversemarginpar% + \oddpagefalse% + \fi% + \fi% + \rlap{\kern-\parindent% + \if@twocolumn% \if@firstcolumn % put at left - \kern -\JHmarginparsep \kern -\marginparwidth % at left - \kern-.5\JHtextwidth\kern\marginparsepmin + \kern -\JHtitlemarginparsep \kern -\marginparwidth % at left + \kern-.5\JHtextwidth\kern\marginparsepmin% \else % put at right - \kern \columnwidth \kern \JHmarginparsep % at right - \fi - \else + \kern \columnwidth \kern \JHtitlemarginparsep % at right + \fi% + \else% \ifoddpage % put at right - \kern \textwidth \kern \JHmarginparsep % at right - \ifcentertitleson - \kern-.5\JHtextwidth\kern\marginparsepmin - \fi + \kern \textwidth \kern \JHtitlemarginparsep % at right + \ifcentertitleson% + \kern-.5\JHtextwidth\kern\marginparsepmin% + \fi% \else % put at left - \kern -\JHmarginparsep \kern -\marginparwidth % at left - \ifcentertitleson - \kern-.5\JHtextwidth\kern\marginparsepmin - \fi - \fi - \fi + \kern -\JHtitlemarginparsep \kern -\marginparwidth % at left + \ifcentertitleson% + \kern-.5\JHtextwidth\kern\marginparsepmin% + \fi% + \fi% + \fi% % \vbox to 0pt{% % \kern \pmclsideparvshift% % vertical shift to align top text lines % \begin{minipage}{\marginparwidth}% @@ -7388,7 +7465,7 @@ \vss}% added \vtop to 0pt{\kern\JHmarginparvshift % default should be 0pt \kern-\dp\strutbox \kern-\ht0 \box0 \vss}}}\@esphack}% added -% + % \newcommand{\set@margp@emtitle}[7]{\setlength{\titleentryoverrun}{#6}% {#2}% {#3 \begin{titleentryenvironment}% @@ -7653,6 +7730,105 @@ % } % \catcode`\@=12 % \end{verbatim} +% \subsection{~Titles with footnotes} +% \label{footnotetitles} +% \begin{macro}{\footnotepoemtitle} +% \begin{macrocode} +\newif\iftitlefootnotesatpoemend% +\titlefootnotesatpoemendfalse% +\newif\iftitlefootnotesplain% +\titlefootnotesplaintrue% +\newif\iftitlefootnoteslayered% +\titlefootnoteslayeredfalse% +% +\newcommand{\maketitlefootnoteslayered}{% +\DeclareNewFootnote[plain]{H}% +\titlefootnoteslayeredtrue% +\titlefootnotesplainfalse% +\titlefootnotesatpoemendfalse% +} +% +\newcommand{\maketitlefootnotesatpoemend}{ +\titlefootnoteslayeredfalse% +\titlefootnotesplainfalse% +\titlefootnotesatpoemendtrue% +} +% +\newcommand{\maketitlefootnotesplain}{ +\titlefootnoteslayeredfalse% +\titlefootnotesplaintrue% +\titlefootnotesatpoemendfalse% +} +% +\newcommand{\placetitlefootnote}[1]{\iftitlefootnoteslayered% +\footnoteH{#1}% +\fi% +\iftitlefootnotesatpoemend% +\footnotemark% +\immediate\write\poemendnotes{\string\makeatletter}% +\immediate\write\poemendnotes{\string\footnotemark\string[\the\c@footnote \string]}% +\immediate\write\poemendnotes{\string\makeatother}% +\literalpoemendnote{#1}% +\fi% +\iftitlefootnotesplain% +\footnote{#1}% +\fi% +} +% +\newcommand{\footnotepoemtitle}[2]{% +\set@p@emtitle{#1\placetitlefootnote{#2}}{\poemtitlepenalty}{\poemtitlefont}% +{\poemtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}% +\c@ntentsinfo{#1}{\contentspoemtitleindent}{\contentspoemtitlefont}% +{\contentspoemtitleindentamount}% +\t@xtnotesinfo{#1}% +} +% +% \end{macrocode} +% \end{macro} +% \begin{macro}{\footnotepoemtitlefirstline} +% \begin{macrocode} +\newcommand{\footnotepoemtitlefirstline}[2]{% +\firstlinesettings% +\set@p@emtitle{#1\placetitlefootnote{#2}}{\multilinetitlepenalty}{\poemtitlefont}% +{\poemtitleindent}{\nobreak\par\nobreak}{\z@}% +\c@ntentsinfo{#1}{\contentspoemtitleindent}{\contentspoemtitlefont}% +{\contentspoemtitleindentamount}% +\t@xtnotesinfo{#1}% +\restoresinglelinesettings% +} +% +\newcommand{\footnotepoemtitlemiddleline}[2]{% +\middlelinesettings% +\set@p@emtitle{#1\placetitlefootnote{#2}}{\par\nobreak}{\poemtitlefont}% +{\poemtitlesecondlineindent}{\nobreak\par\nobreak}{\z@}% +\c@ntentsinfo{#1}{\contentspoemtitlesecondlineindent}{\contentspoemtitlefont}% +{\contentspoemtitlesecondlineindentamount}% +\t@xtnotesinfo{#1}% +\restoresinglelinesettings% +} +% +\newcommand{\footnotepoemtitlelastline}[2]{% +\lastlinesettings% +\set@p@emtitle{#1\placetitlefootnote{#2}}{\par\nobreak}{\poemtitlefont}% +{\poemtitlesecondlineindent}{\nobreak\par\afterpoemtitleskip\nobreak}{\z@}% +\c@ntentsinfo{#1}{\contentspoemtitlesecondlineindent}{\contentspoemtitlefont}% +{\contentspoemtitlesecondlineindentamount}% +\t@xtnotesinfo{#1}% +\restoresinglelinesettings% +} +% \end{macrocode} +% \end{macro} +% \begin{macro}{\footnotesplitpoemtitle} +% \begin{macrocode} +\newcommand{\footnotesplitpoemtitle}[3]{% +\set@p@emtitle{#1\placetitlefootnote{#2} #3}{\poemtitlepenalty}{\poemtitlefont}% +{\poemtitleindent}{\nobreak\par\nobreak\afterpoemtitleskip\nobreak}{\z@}% +\c@ntentsinfo{#1 #3}{\contentspoemtitleindent}{\contentspoemtitlefont}% +{\contentspoemtitleindentamount}% +\t@xtnotesinfo{#1 #3}% +} +% \end{macrocode} +% \end{macro} % \subsection{~Epigraphs, headnotes, attributions, dedications} % Notice that epigraphs to volumes are handled differently from % epigraphs to poems. Notice also the ``short'' commands, which |