> Aditya Mahajan > 24. Juni 2016 um 21:19 > Hi, > > This is based on a question on tex.sx: > http://tex.stackexchange.com/q/316504/323 > > In file-job.lua, we have: > > local processors = utilities.storage.allocate { > ... > [v_product] = { > [v_text] = { "many", processfilemany }, > [v_project] = { "once", processfileonce }, > [v_environment] = { "once", processfileonce }, > [v_product] = { "many", processfilemany }, > [v_component] = { "many", processfilemany }, > }, > [v_component] = { > [v_text] = { "many", processfilemany }, > [v_project] = { "once", processfileonce }, > [v_environment] = { "once", processfileonce }, > [v_product] = { "none", processfilenone }, > [v_component] = { "many", processfilemany }, > } > } > > Then, why is the product file processed multiple times? The rules for a component files are applied *after* \startcomponent which isn’t the case for the example where in the first iteration the "text" rules are applied and in the following iteration the rules for a product file. Moving \product … after \startcomponent prevents the loop but the environment won’t be loaded anymore because the product file isn’t loaded anymore. Wolfgang