txt ファイルから項目を含むドキュメントを生成する必要があります (例)。txt ファイル:
Item 1
Item 2
Item 3
Item 4
Item 5
Item 6
次のようなものを生成するスクリプト (?) を実行できますか?
ヘッダー#1。
- 項目 1 (txt から)
- 項目 4 (txt から)
ヘッダー#2。
1.項目2(txtから)
2.項目5(txtより)
ヘッダー#3。
1.項目3(txtから)
2.項目6(txtより)
それは可能でしょうか、それとも他の言語を使ったほうが簡単でしょうか?
答え1
ここにオプションがあります。
ファイル.txt
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer nec odio.
Praesent libero. Sed cursus ante dapibus diam. Sed nisi.
Nulla quis sem at nibh elementum imperdiet. Duis sagittis ipsum.
Praesent mauris. Fusce nec tellus sed augue semper porta. Mauris massa.
Vestibulum lacinia arcu eget nulla.
Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.
Curabitur sodales ligula in libero.
Sed dignissim lacinia nunc. Curabitur tortor.
Pellentesque nibh. Aenean quam. In scelerisque sem at dolor.
Maecenas mattis. Sed convallis tristique sem.
Proin ut ligula vel nunc egestas porttitor.
メイン.tex
\documentclass{article}
\newcounter{mtctr}
\newcounter{tmp}
\newread\mt
\openin\mt=file.txt
\loop
\read\mt to \mtt
\unless\ifeof\mt
\stepcounter{mtctr}
\expandafter\xdef\csname question\themtctr\endcsname{\mtt}
\repeat
\closein\mt
\xdef\qustionnbr{\themtctr}
\setcounter{mtctr}{0}
\renewcommand\labelenumi{\thetmp.\theenumi.}
\begin{document}
\loop
\stepcounter{tmp}
\section*{Header \thetmp}
\begin{enumerate}
\stepcounter{mtctr}
\item \csname question\themtctr\endcsname
\ifnum\value{mtctr}<\qustionnbr
\stepcounter{mtctr}
\item \csname question\themtctr\endcsname
\fi
\end{enumerate}
\ifnum\value{mtctr}<\qustionnbr
\repeat
\end{document}
アップデート以下に短縮バージョンを示します。
\documentclass{article}
\newcounter{tmp}
\newread\mt
\openin\mt=file.txt
\renewcommand\labelenumi{\thetmp.\theenumi.}
\begin{document}
\loop
\unless\ifeof\mt
\read\mt to \mtt
\ifeof\mt\else
\stepcounter{tmp}
\section*{Header \thetmp}
\begin{enumerate}
\item \mtt
\read\mt to \mtt
\ifeof\mt\else
\item \mtt
\fi
\end{enumerate}
\fi
\repeat
\end{document}