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