
Estoy escribiendo un examen para mis alumnos y he definido 3 comandos para insertar espacios que \dotfill
les permitan escribir sus respuestas: \rep
, \replarge
, \repLarge
para respuestas cortas y grandes:
\newcommand{\rep}{\noindent \dotfill
\noindent\dotfill
\noindent\dotfill
\noindent\dotfill
}
\newcommand{\repshort}\rep \rep
\newcommand{\repLarge}\rep \rep \rep \rep
Entonces, mis preguntas son:
- ¿Hay alguna manera de mejorar esos comandos?
- ¿Cómo puedo producir dos versiones en pdf al compilar: una con los espacios generados con los comandos y la otra sin los espacios?
Respuesta1
Aquí hay una solución rápida y sucia para la segunda pregunta y un enlace a soluciones más avanzadas (los comentarios anteriores también contienen enlaces útiles para ambas preguntas):
a) Cree dos archivos principales donde (1) proporcione los comandos con espacios y (2) proporcione los mismos comandos que los comandos vacíos (también puede simplemente agregar algo como \renewcommand{\rep}{}
y comentar esto dentro o fuera).
O
b) Utilice parámetros para su documento y utilice un Makefile. Mira las respuestas aPasar parámetros a un documentoen busca de inspiración. A continuación se muestra un ejemplo de cómo podría verse un Makefile de este tipo y cómo su archivo .tex puede utilizarlo:
Archivo Make:
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}