インデント練習

インデント練習

宿題の問題を入力しているのですが、非常に具体的な形式にしたいのですが、どこから始めたらよいかわかりません。練習問題の番号を列に並べて、質問と答えを別の「列」の左側に並べたいのです。私の言っていることを理解してもらうために、次の簡単なコードでうまくいきます:

\documentclass{article}

\begin{document}
\begin{tabular}{l l}
    5.  & This is the question          \\
        & This is where the answer goes \\

    11. & Another Questions             \\
        & Another Answer                
\end{tabular}
\end{document}

これは私が求めているもののように見えますが、課題全体を表形式の環境に配置し、文字の配置などを気にするのは面倒です。私が本当に欲しいのは、演習番号を指定でき、質問と回答の適切なレイアウトを作成できる環境です。これは可能ですか? ありがとうございます!

答え1

enumerateこれを行うには多くの方法があります。環境だけを使用する簡単な方法

\begin{enumerate}
  \item[5] This is the question.
  \item[] This is where the answer goes
\end{enumerate}

あるいは、独自の環境が必要な場合、以下にいくつかのオプションを掲載しましたので、その中からお選びいただくか、そのうちの 1 つに基づいて環境を構築してください。

\documentclass{article}
\usepackage{calc}

\newcommand{\question}[1]{\item[#1]}
\newcommand{\answer}{\item[]}
\newenvironment{questionandanswer}[2]{\enumerate\setcounter{enumi}{#2-1}\item#1\item[]}{\endenumerate}
\newenvironment{anotherapproach}{\enumerate}{\endenumerate}


\begin{document}

\begin{questionandanswer}{This is the question.}{5}
  This is where the answer goes
\end{questionandanswer}

\begin{anotherapproach}
  \question{5} This is the question.
  \answer This is where the answer goes
\end{anotherapproach}

\begin{enumerate}
  \item[5] This is the question.
  \item[] This is where the answer goes
\end{enumerate}
\end{document}

環境のインデントを変更したい場合はenumerateenumitemパッケージ化するのが、最も賢明な方法です:

\documentclass{article}
\usepackage{calc}
\usepackage{enumitem}
\setlist[enumerate]{leftmargin=*}

答え2

環境を使用できますenumerate。オプションの引数を使用すると\item、必要なラベルを割り当てることができます。

\documentclass{article}
\usepackage[nopar]{lipsum}% just to generate text for the example

\begin{document}

\begin{enumerate}
\item This is the question.

And this is where the question goes. \lipsum[2]
\item[11.] This is another question.

And this is where the question goes. \lipsum[4]
\end{enumerate}

\end{document}

ここに画像の説明を入力してください

答え3

ラベル間のスペースにこだわりたい場合は、Gonzalo の回答からコピーして適切に修正した次のコードが適切だと思います。

\documentclass{article}
\usepackage{enumitem}%provides the key labelsep

\begin{document}

\begin{enumerate}[labelsep=*]
\item[5.] This is the question.

And this is where the question goes. I use \texttt{labelsep}=*
\item[11.] This is another question.

And this is where the question goes. I use \texttt{labelsep}=*
\end{enumerate}

\begin{enumerate}
\item[5.] This is the question.

And this is where the question goes. No \texttt{labelsep}=*
\item[11.] This is another question.

And this is where the question goes. No \texttt{labelsep}=*
\end{enumerate}


\end{document}

出力:

ここに画像の説明を入力してください

関連情報