Re: 箇条書き

名前: 野村
日時: 2004-05-20 13:04:56
IPアドレス: 150.84.51.*

>>29112 こんなことを考えるのが好きなので,少し試してみました. 少し長くなりますが以下に書いておきます. ただ,これだと enumerate 環境の変数をそのまま使用しているので, 設定する変数の範囲に注意する必要があります. backenumerate 専用のカウンタを使う方が良いと思いますが,そこまでしていません. \documentclass{jarticle} \makeatletter \def\backenumerate#1{% \ifnum \@enumdepth >\thr@@\@toodeep\else \advance\@enumdepth\@ne \edef\@enumctr{enum\romannumeral\the\@enumdepth}% \@tempcnta#1\relax\advance\@tempcnta\@ne \expandafter \list \csname label\@enumctr\endcsname {\usecounter[\@tempcnta]\@enumctr\def\makelabel##1{\hss\llap{##1}}}% \fi} \let\endbackenumerate =\endlist \def\usecounter{\@ifnextchar[%] \use@counter{\use@counter[\z@]}} \def\use@counter[#1]#2{\@nmbrlisttrue\def\@listctr{#2}% \setcounter{#2}{#1}} \def\reserved@backenumerate@envir{backenumerate} \def\@item[#1]{% \if@noparitem \@donoparitem \else \if@inlabel \indent \par \fi \ifhmode \unskip\unskip \par \fi \if@newlist \if@nobreak \@nbitem \else \addpenalty\@beginparpenalty \addvspace\@topsep \addvspace{-\parskip}% \fi \else \addpenalty\@itempenalty \addvspace\itemsep \fi \global\@inlabeltrue \fi \everypar{% \@minipagefalse \global\@newlistfalse \if@inlabel \global\@inlabelfalse {\setbox\z@\lastbox \ifvoid\z@ \kern-\itemindent \fi}% \box\@labels \penalty\z@ \fi \if@nobreak \@nobreakfalse \clubpenalty \@M \else \clubpenalty \@clubpenalty \everypar{}% \fi}% \if@noitemarg \@noitemargfalse \if@nmbrlist \ifx\reserved@backenumerate@envir\@currenvir \addtocounter{\@listctr}{-1}% \else \refstepcounter\@listctr \fi \fi \fi \sbox\@tempboxa{\makelabel{#1}}% \global\setbox\@labels\hbox{% \unhbox\@labels \hskip \itemindent \hskip -\labelwidth \hskip -\labelsep \ifdim \wd\@tempboxa >\labelwidth \box\@tempboxa \else \hbox to\labelwidth {\unhbox\@tempboxa}% \fi \hskip \labelsep}% \ignorespaces} \makeatother \begin{document} \begin{itemize} \item 1 \begin{backenumerate}{100} \item 100 \item 99 \item 98 \begin{backenumerate}{10} \item 10 \item 9 \item 8 \begin{backenumerate}{100} \item 100 \item 99 \item 98 \end{backenumerate} \end{backenumerate} \end{backenumerate} \end{itemize} \begin{enumerate} \item 1 in enumerate \end{enumerate} \begin{backenumerate}{10} \item 10 in backenumerate \item 9 \item 8 \end{backenumerate} \end{document}

この書き込みへの返事:

お名前
題名 
メッセージ(タグは <a href="...">...</a> だけ使えます)