Estou digitando problemas de lição de casa e gostaria de um formato bem específico, mas não sei por onde começar. Gostaria que os números dos exercícios fossem alinhados em uma coluna e, em seguida, as perguntas e as respostas fossem alinhadas à esquerda com outra "coluna", por assim dizer. Para ter uma ideia do que quero dizer, este código simples funciona:
\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}
Parece o que eu quero, mas é chato colocar toda a minha tarefa em um ambiente tabular e me preocupar com caracteres de alinhamento, etc. O que eu realmente gostaria é de um ambiente onde eu pudesse especificar o número do exercício e ele criasse o layout adequado para a pergunta e a resposta. Isso é possível? Obrigado!
Responder1
Existem muitas maneiras de fazer isso. Uma maneira simples usando apenas um enumerate
ambiente
\begin{enumerate}
\item[5] This is the question.
\item[] This is where the answer goes
\end{enumerate}
ou talvez você queira seu próprio ambiente; Postei algumas opções diferentes abaixo – faça a sua escolha ou talvez construa uma com base em uma delas.
\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}
Se você quiser alterar o recuo do enumerate
ambiente, então oenumitem
pacote é a maneira mais sensata de fazer isso:
\documentclass{article}
\usepackage{calc}
\usepackage{enumitem}
\setlist[enumerate]{leftmargin=*}
Responder2
Você pode usar um enumerate
ambiente; o argumento opcional de \item
permite atribuir o rótulo desejado:
\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}
Responder3
Se você deseja ter o espaçamento entre o rótulo, o código a seguir, copiado da resposta de Gonzalo e modificado adequadamente, parece bom para mim:
\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}
Uma saída: