libreim / apuntesDGIIM

Repositorio de apuntes del Doble Grado en Ingeniería Informática y Matemáticas de la Universidad de Granada.
https://libreim.github.io/apuntesDGIIM/
Other
81 stars 26 forks source link

Cambia Rakefile a Makefile #77

Closed mx-psi closed 4 years ago

mx-psi commented 4 years ago

Este Pull Request modifica el Rakefile por un Makefile. Ahora mismo reproduce en mi ordenador el comportamiento que tenía el Rakefile pero hay que discutir algunas cosas:

  1. el Makefile asume la estructura de los apuntes de la wiki, pero la asignatura Análisis Matemático 1 no sigue esa estructura y no está cubierta por tanto en su totalidad por el Makefile,
  2. los nombres de las carpetas se han cambiado a minúscula (siguiendo lo que expuse en #76),
  3. no puedo compilar algunos de los apuntes en mi máquina por lo que no puedo verificar si funciona correctamente en estos (AC, FR, ISE, MC, PDOO, SCD). El error que da es el mismo que con el Rakefile así que supongo que hace lo mismo (aunque los comandos han cambiado ligeramente),
  4. no he añadido soporte para org ya que no hay apuntes para org y el Rakefile realmente no lo tenía, 5. los objetivos actuales son phony, por lo que el Makefile siempre rehace los apuntes y 6. el Makefile no puede establecer la dependencia ante la plantilla.

Las cuestiones más relevantes son 5 y 6:

Para 5, la opción más sencilla que veo es que los ficheros de salida no estén en la carpeta de su asignatura dentro de .out ya que al fin y al cabo, siguiendo la estructura de los apuntes, cada carpeta debería tener un único fichero pdf, por lo que sería redundante.

En tal caso podríamos construir el nombre de los ficheros de salida en una variable TEX_PDFS y modificar las reglas para que tengan un patrón estático como sigue:

$(TEX_PDFS): .out/%.pdf : %/apuntes.tex %/ejercicios.tex
    ...

Para 6, el problema está en que los patrones estáticos no permiten duplicar el %. Lo más sencillo sería establecer un nombre fijo para todas las plantillas (del tipo plantilla.tex).

mx-psi commented 4 years ago

Resueltas 5 y 6 con los últimos cambios. Falta arreglar la compilación de los apuntes que no funcionaban antes

danipozo commented 4 years ago

Parece que la compilación de los apuntes que fallaban antes es un problema independiente de este PR, por tanto, podemos mezclarlo, ¿no?

mx-psi commented 4 years ago

Sí, yo creo que sí. Mi único miedo era que al haber cambiado ligeramente los comandos podría haber introducido algún error nuevo, pero no parece.

jmml97 commented 4 years ago

Lo de la compilación continua ¿lo has mirado, @mx-psi?

mx-psi commented 4 years ago

Lo de la compilación continua ¿lo has mirado, @mx-psi?

Eso dependerá del editor que use cada uno, ¿no? En bash usando inotifywait se puede hacer algo como:

continous(){
  while true; do
    make $@
    inotifywait -e modify,close_write plantilla_* $@/apuntes.* $@/ejercicios.*
  done
}

Si vas a editar los apuntes de EMV dejas una terminal abierta con continous emv y se ejecutará make con cada modificación.

jmml97 commented 4 years ago

@mx-psi latexmk tiene una opción para hacer compilación continua, a eso me refería.

mx-psi commented 4 years ago

@mx-psi latexmk tiene una opción para hacer compilación continua, a eso me refería

Ah, no, no lo he mirado. Diría que es una cuestión que no tiene por qué resolverse aquí y así puedes mezclar #68.

Para implementarlo supongo que podría añadirse en las tareas phony específicas de las asignaturas, aunque me queda la duda de, incluso si se puede hacer con latexmk, cómo gestionar el caso de los apuntes creados con Markdown.

La alternativa de continous que ponía antes funcionaría con pandoc pero no es portable a macOS o Windows (¿quizá se puedan encontrar comandos equivalentes en esos SOs?).