Plain TeX のアウトラインのスタイル/マクロ

Plain TeX のアウトラインのスタイル/マクロ

たとえば、従来のインデント スタイルのアウトラインを Plain TeX で作成するためのスタイル ファイルまたはその他のマクロを探しています。

I.  Big Idea  
    A.  Sub idea  
    B.  Sub idea  
        1.  Thought  
            a.  Sub thought

もしまだ誰もこれを書いていなくて、誰かが協力することに興味があるなら、私は(いつか)ぜひ書いてみたいです。

答え1

(コメントからCW回答を作成)

これらの Plain TeX マクロは 1991 年のものです。

http://homepages.rpi.edu/~sofkam/MTeX/mtex.html

答え2

私が見つけた Plain TeX マクロはどれも満足できるものではなく、1991 年の古いマクロは削除されたか移動された (リンクが腐った) ため、最終的に自分でマクロを作成しました。以下は LaTeX 用ではありません。結果は次のようになります。

スクリーンショット

マクロの最後にサンプルの概要があります。

%
% Plain TeX macros to create simple outlines, texoutlines.tex
%  C. Kelly, 2016
%
\def\outlinebeg{\parindent=1.5em\obeylines\bigbreak\leftline{\bf Outline}\smallskip\hrule\smallskip}
% Two versions of this macro, the second inserts an \hrule
\def\outlineend{\smallskip\bigskip}
%\def\outlineend{\smallskip\hrule\bigskip}

% Use \outlinefile to read a file with the outline
\def\outlinefile#1\par{\bgroup\outlinebeg\input#1\outlineend\egroup}
% Use \outline to read outline until the first \par
\def\outline#1\par{\bgroup\outlinebeg#1\outlineend\egroup}

% With these, you should provide either "." or "I.", "A.", etc, as you prefer. 
% They don't increment automatically.
\def\I#1.{\medskip\goodbreak\hang\noindent{#1.}}
\def\2#1.{\par\indent \hangindent2\parindent \textindent{#1.}}
\def\3#1.{\par\indent\indent \hangindent3\parindent \textindent{#1.}}
\def\4#1.{\par\indent\indent\indent \hangindent4\parindent \textindent{#1.}}
\def\5#1.{\par\indent\indent\indent\indent \hangindent5\parindent \textindent{#1.}}

% Following are new macros which don't require you to provide the outline item number
\def\letter#1{\ifcase#1\or a\or b\or c\or d\or e\or f\or g\or h\or i\or j\or
    k\or l\or m\or n\or o\or p\or q\or r\or s\or t\or u\or v\or w\or
    x\or y\or z\or aa\or bb\or cc\or dd\or ee\or ff\or gg\or hh\or ii\or
    jj\or kk\or ll\or mm\or nn\or oo\or pp\or qq\or rr\or ss\or tt\or
    uu\or vv\or ww\or xx\or yy\or zz\else$\dots$\fi}

\newcount\cnta \cnta=0
\newcount\cntb \cntb=0
\newcount\cntc \cntc=0
\newcount\cntd \cntd=0
\newcount\cnte \cnte=0

\def\A{\global\advance\cnta by 1
  \medskip\goodbreak\hang\noindent{\uppercase\expandafter
  {\romannumeral\cnta}. }
  \cntb=0 \cntc=0 \cntd=0 \cnte=0
}
\def\b{\global\advance\cntb by 1
  \par\indent \hangindent2\parindent \textindent
  {\uppercase\expandafter{\letter\cntb}. }
  \cntc=0 \cntd=0 \cnte=0
}
\def\c{\global\advance\cntc by 1
  \par\indent\indent \hangindent3\parindent \textindent
  {\number\cntc. }
  \cntd=0 \cnte=0
}
\def\d{\global\advance\cntd by 1
  \par\indent\indent\indent \hangindent4\parindent \textindent
  {\letter\cntd. } 
  \cnte=0
}
\def\e{\global\advance\cnte by 1
  \par\indent\indent\indent\indent \hangindent5\parindent \textindent
  {\romannumeral\cnte. }
}
\let\i\e
\def\f{
  \par\indent\indent\indent\indent\indent \hangindent6\parindent \textindent
  { $\bullet$ }
}
%
% Macros to create outlines {END}
\endinput

% A sample usage of the above macros

\outline % new style
\A Example using newer macros
    \b  Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor 
        \c incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
            \d Duis aute irure dolor 
                \e Freedom \dots from what?
                \5. from having to have a number in this point. This is using the old-style macro
                    \f At this level, we just want bullets
                \e Something more
                \e And another thing\dots
    \b What can be said more
        \c New point 1
        \c Yet another point 

\noindent Note that a blank line ends the outline
but the counters are not reset until a new {\tt\char`\\ outline} is
declared. So if you have something more to put into your outline, 
just do so. 

\A New point here.
    \b New subpoints 

\outline % old style
\I . Example outline with older macros
\I I. Big heading
    \2 A. Subhead
    \2 B. Subhead
        \3 1. Sub-subhead
        \3 2. Sub-subhead
            \4 a. Sub-sub-subhead
            \4 b. Sub-sub-subhead
                \5 i. sub-sub-sub-subhead
                \5 ii. sub-sub-sub-subhead
                \5 . Unlabeled sub-sub-sub-subhead
        \3 4. Next Sub-subhead. (oops! I skipped 3.)
\I II. New major head

%You can also insert a file with an outline in it, with \outlinefile 
\outlinefile file_with_my_outline.txt

%  Sample input, end
\vfill\eject\end

関連情報