%3F.png)
pessoas---
Tenho uma dúvida que não sei como resolver. Estou reunindo um compêndio das questões do meu exame em um único PDF que gostaria de compartilhar com outros professores que também usam LaTeX. O problema é que, embora o LaTeX produza um belo PDF, pode ser muito difícil copiar/colar do PDF em um arquivo TeX diferente, se alguém quiser usar o meu problema. É claro que eu forneceria o código-fonte de cada problema em seu próprio pequeno arquivo de problema, mas vasculhar uma pasta inteira ou um único arquivo para encontrar um problema específico pode ser um pouco chato.
Eu sei – essas reclamações parecem tão pequenas que não valem a pena e são principalmente produto da preguiça. Mas se eles puderem ser resolvidos, o trabalho nisso com outras pessoas será um pouco menos sujeito a erros e um pouco mais fácil de revisar, copiar e modificar problemas no futuro.
O que espero é poder fazer algo como:
\documentclass[options]{exam}
\usepackage{graphicx}
\usepackage{tikz}
\tikzlibrary{blahblah}
\usepackage{listings}
\usepackages{any other necessary packages to make this work}
\begin{document}
\begin{questions}
\some-command-to-duplicate-question,but-in-a-lstlistings-sort-of-environment{%
\question A question?
\begin{solution}
The solution
\end{solution}
}
\same-command-as-before{%
\includegraphics{diagramforquestion}%could also be for Tikz drawings, tables, other figures, etc
\question Another question?
\begin{solution}
Another solution.
\end{solution}
}
\end{questions}
\end{document}
Dessa forma, no pdf, teria:
Uma lista de perguntas, completa com diagramas/etc que são compostos corretamente pelo LaTeX;
algumas lstlistings ou ambiente similar, mostrando o código fonte desse problema.
Obviamente, eu poderia simplesmente copiar/colar o texto da pergunta em um ambiente lstlisting, mas se alguma alteração for feita, a pessoa que colabora comigo e faz alterações em uma pergunta (ou, mais provavelmente, eu) terá que se lembrar de copiar todas as mudanças no segundo ambiente, ao passo que se houvesse alguma maneira de emitir algum comando ou redefinir algum ambiente para este compêndio onde seria digitadoegerar o código-fonte para facilitar a cópia, com apenas um local necessário para modificação, o que tornaria os arquivos de problemas individuais muito mais limpos e fáceis de manter ao longo do tempo.
Obrigado por qualquer ajuda que todos vocês possam oferecer!
Responder1
Ambos input
e lstinputlisting
são seus amigos aqui.
Você \question
também pode modificar o comando para incluir arquivos para soluções, a única coisa é se eles forem usados, pois \input
devem ser TeX válidos.
\documentclass[10pt]{article}
\usepackage{graphicx}
\usepackage{tikz}
\usepackage{listings}
\lstset{basicstyle=\footnotesize\ttfamily,breaklines=true}
\newcommand{\question}[4]{
#1
The question is
\begin{center}
\input{#2}
\end{center}
For copy-pasting, the question is
\lstinputlisting{#2}
The solution is here:
\begin{center}
#3
\end{center}
#4
}
\begin{document}
Introduction
\begin{enumerate}
\item \question{For undergraduates:}{q1}{My solution}{
A figure to help explain
\begin{tikzpicture}
\draw (0,0) -- (2,0) -- (2,2) -- (0,0);
\end{tikzpicture}
}
\item \question{For grad students:}{q1}{Another solution}{No figure needed for grad students}
\end{enumerate}
\end{document}
Para tornar este um verdadeiro MWE, tenho um arquivo chamado q1.tex
no mesmo diretório que é este:
If $n = 3$, $x^n + y^n = z^n$ has no integer solutions. If you have extra time, please prove this for all other $n > 2$.