
Estou escrevendo um exame para meus alunos e defini três comandos para inserir espaços permitindo \dotfill
que eles escrevam suas respostas: \rep
, \replarge
, \repLarge
para respostas curtas e grandes:
\newcommand{\rep}{\noindent \dotfill
\noindent\dotfill
\noindent\dotfill
\noindent\dotfill
}
\newcommand{\repshort}\rep \rep
\newcommand{\repLarge}\rep \rep \rep \rep
Então, minhas perguntas são:
- existe alguma maneira de melhorar esses comandos?
- como posso produzir duas versões do pdf na hora de compilar: uma com os espaços produzidos com os comandos e outra sem os espaços?
Responder1
Aqui está uma solução rápida e suja para a segunda questão e um link para soluções mais avançadas (os comentários acima também contêm links úteis para ambas as questões):
a) Crie dois arquivos principais onde você (1) fornece os comandos com espaços e (2) fornece os mesmos comandos que comandos vazios (você também pode simplesmente anexar algo como \renewcommand{\rep}{}
e comentar dentro ou fora).
OU
b) Use parâmetros para o seu documento e use um Makefile. Veja as respostas paraPassando parâmetros para um documentopara alguma inspiração. Aqui está um exemplo de como seria a aparência de um Makefile e como seu arquivo .tex pode usá-lo:
Makefile:
default: Exercise.pdf Solution.pdf
Exercise.pdf: *.tex
-rm Exercise.pdf
pdflatex -file-line-error --jobname=Exercise '\def\isexercise{1} \input{main.tex}'
pdflatex -file-line-error --jobname=Exercise '\def\isexercise{1} \input{main.tex}'
Solution.pdf: *.tex
-rm Solution.pdf
pdflatex -file-line-error --jobname=Solution '\input{main.tex}'
pdflatex -file-line-error --jobname=Solution '\input{main.tex}'
principal.tex:
\documentclass{article}
\newcommand{\rep}{}
\ifdefined\isexercise
\renewcommand{\rep}{
\noindent\dotfill
\noindent\dotfill
\noindent\dotfill
\noindent\dotfill
}
\fi
\begin{document}
Exercise 1: \rep
\end{document}