Si un proyecto LaTeX contiene una bibliografía, se requieren varios pasos para actualizar la bibliografía. Primero hay que usar LaTeX para crear un archivo .aux. Entonces se ejecuta BibTeX, que usa este archivo crear los archivos .bbl y .blg. Luego, de nuevo LaTeX para añadir la bibliografía al documento.

Tu proyecto concreto puede requerir otras secuencias similares de comandos de composición. Es una buena idea usar AppleScript para automatizar estas secuencias.

Para ver cómo hacerlo, examinemos el script OtherScripts->Bibliography que viene con TeXShop. Éste es el código del script:

  --Applescript

  set fileName to #FILEPATH#
  if fileName is equal to ""
  display dialog "Please save the file first" buttons {"OK"} default button "OK"
  return
  end if

  set frontName to #DOCUMENTNAME#
  tell application "TeXShop"
  save document frontName
  end tell

  tell document frontName of application "TeXShop"

    latex

    repeat
      delay 2
      if taskdone
      exit repeat
      end if
    end repeat

    bibtex

    repeat
      delay 2
      if taskdone
      exit repeat
      end if
    end repeat

    latex

    repeat
      delay 2
      if taskdone
      exit repeat
      end if
    end repeat

    latex

    repeat
      delay 2
      if taskdone
      exit repeat
      end if
    end repeat

  end tell

La primera línea indica que esto es una macro AppleScript. Las siguientes líneas comprueban #FILEPATH#, un parámetro que da la ruta completa al archivo con el código tex. Cuando se crea un documento nuevo, este parámetro es una cadena vacía, hasta que guardamos el documento por primera vez. Si el documento aún no está guardado, el script pregunta al usuario si lo quiere guardar, y entonces termina.

La siguiente línea manda a TeXShop que guarde el documento. Nótese que usamos #DOCUMENTNAME# para referirnos al documento en cuestión.

Los siguientes comandos ejecutan latex, bibtex, latex, y latex. Recuerda que el control vuelve a applescript inmediamente tras cada llamada a un comando de composición, sin esperar a que la composición de páginas termine. El bucle que se repite le dice al script que compruebe si cada proceso de composición ha concluido ya, antes de empezar la siguiente tarea. La línea «delay 2» hace que applescript haga una pausa en lugar de estar preguntando continuamente si la tarea ha acabado, lo que ralentizaría todo el ordenador.

Ayuda para macros
Scripts con comandos de composición de TeXShop