Re: 単語カードの作成

名前: しっぽ愛好家
日時: 2004-07-12 17:50:37
IPアドレス: 211.4.121.*

>>30288 >\vfil を見つけたところで、TeX が \par を挿入しますが、 >段落終了処理はおろか水平モードから垂直モードへの変更も行われないので、 >そのまま次の \vfil を再び見つけて、以下無限ループに陥る。 これが,longtable パッケージと縦組み用クラスファイルを 併用した際の問題の原因でしたね. あと,(食事のついでに)もともとの質問に関するサンプルコードをひとつ… %%% トニイさんのお話(のリンク先)で挙げられているコードと同じこと %%% (出力すべきテキストを記憶した後,然るべき順序で再配置)ですが, %%% 今の場合は項目数が多くなるでしょうから,ある程度の自動化が必要です. \documentclass[tombow]{jarticle} \newdimen\CardHeight \CardHeight 55mm %%% カードの幅 \newdimen\CardWidth \CardWidth 91mm %%% カードの高さ \newdimen\CardPadding \CardPadding 2mm %%% 上下左右の余白 \newdimen\CardSideMargin \CardSideMargin 0mm %%% 各カードの綴じ代 %%% とりあえず,表面の左端に設定 \paperwidth 2\CardWidth %%% 2 列分 \paperheight 5\CardHeight %%% 5 段分 \textwidth\paperwidth \textheight\paperheight \oddsidemargin-1in \evensidemargin-1in \topmargin-1in \headheight 0pt \headsep 0pt \footskip0pt \topskip 0pt \hoffset-.5in \voffset-.5in \pagestyle{empty} \makeatletter \newcount\@card@no \def\CardList{\@init@card@data} \def\endCardList{\@output@card@data} % %%% 各カードに記述する内容の初期化 %%% CardList 環境内の n 番目の \Card マクロに対応する %%% カードの表面に記載するテキストは \@card@NH %%% (ただし,N は“(n - 1 を 10 で割ったときの剰余) + 1”) %%% に保存し,裏面に記載するテキストは \@card@NT に保存. \def\@init@card@data{% \count@\z@ \@whilenum10>\count@\do{% \advance\count@\@ne \@namedef{@card@\the\count@ H}{}% \@namedef{@card@\the\count@ T}{}}% \@card@no\z@} % %%% 個々のカードに記載するテキストを登録するマクロ %%% (出力処理は,1 ページ分が集まるか,CardList 環境の終端に到達した際に行う) \long\def\Card#1#2{%%% #1: 表面に記載するテキスト, #2: 裏面に記載するテキスト \advance\@card@no\@ne \@namedef{@card@\the\@card@no H}{#1}% \@namedef{@card@\the\@card@no T}{#2}% \ifnum10>\@card@no\else \@output@card@data \@init@card@data \fi} % %%% 個々のカードの記述内容を出力する処理(配置順に注意) \newdimen\@cards@seprule%%% “切り取り線”の太さ \def\@output@card@data{% %%% もっとエレガントな実装を与える余地はありますが,そうするまでもないでしょう. \@cards@seprule.4\p@ \begingroup \def\@elt##1{\noexpand\setcounter{##1}{\number\the\csname c@##1\endcsname}}% \xdef\@restore@counters{\cl@@ckpt}% \endgroup \vbox to\textheight{% \hbox{\@one@side@of@one@card{1H}\@cards@hsep\@one@side@of@one@card{2H}}% \@cards@vsep \hbox{\@one@side@of@one@card{3H}\@cards@hsep\@one@side@of@one@card{4H}}% \@cards@vsep \hbox{\@one@side@of@one@card{5H}\@cards@hsep\@one@side@of@one@card{6H}}% \@cards@vsep \hbox{\@one@side@of@one@card{7H}\@cards@hsep\@one@side@of@one@card{8H}}% \@cards@vsep \hbox{\@one@side@of@one@card{9H}\@cards@hsep\@one@side@of@one@card{10H}}% \vss}% \@restore@counters \newpage \@cards@seprule\z@ %%% 裏面には切り取り線は出力しない \vbox to\textheight{% \hbox{\@one@side@of@one@card{2T}\@cards@hsep\@one@side@of@one@card{1T}}% \@cards@vsep \hbox{\@one@side@of@one@card{4T}\@cards@hsep\@one@side@of@one@card{3T}}% \@cards@vsep \hbox{\@one@side@of@one@card{6T}\@cards@hsep\@one@side@of@one@card{5T}}% \@cards@vsep \hbox{\@one@side@of@one@card{8T}\@cards@hsep\@one@side@of@one@card{7T}}% \@cards@vsep \hbox{\@one@side@of@one@card{10T}\@cards@hsep\@one@side@of@one@card{9T}}% \vss}% \newpage} \def\@one@side@of@one@card#1{% \hbox to \CardWidth{% \@tempdima\CardPadding \advance\@tempdima\CardSideMargin \dimen@\CardWidth \advance\dimen@-\@tempdima \advance\dimen@-\CardPadding \ifodd\c@page \hskip\@tempdima \else \hss \fi \vbox to\CardHeight{% \vskip\CardPadding \vtop{\hsize\dimen@ \@parboxrestore \@nameuse{@card@#1}}% \vss}% \ifodd\c@page \hss \else \hskip\@tempdima \fi}} \def\@cards@hsep{% \ifdim\@cards@seprule>\z@ \kern-.5\@cards@seprule \vrule \@width \@cards@seprule \kern-.5\@cards@seprule \fi} \def\@cards@vsep{% \ifdim\@cards@seprule>\z@ \kern-.5\@cards@seprule \hrule \@height \@cards@seprule \kern-.5\@cards@seprule \else \nointerlineskip \fi} \makeatother \begin{document} \begin{CardList} \Card{\section{基本} 1枚目表\\ ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと} {\section{基本} 1枚目裏\\ ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと ぱたぱたおよよあれれとほほおっとっと} \Card{2枚目表}{2枚目裏} \Card{3枚目表}{3枚目裏} \Card{4枚目表}{4枚目裏} \Card{5枚目表}{5枚目裏} \Card{6枚目表}{6枚目裏} \Card{7枚目表}{7枚目裏} \Card{8枚目表}{8枚目裏} \Card{9枚目表}{9枚目裏} \Card{10枚目表}{10枚目裏} \Card{11枚目表}{11枚目裏} \Card{12枚目表}{12枚目裏} \Card{13枚目表}{13枚目裏} \Card{14枚目表}{14枚目裏} \Card{15枚目表}{15枚目裏} \end{CardList} \end{document}

この書き込みへの返事:

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