inbo / protocolhelper

Helper functions and templates to manage the INBO/protocols repository.
https://inbo.github.io/protocolhelper/
GNU General Public License v3.0
5 stars 0 forks source link

renderen van protocols met referenties faalt #122

Closed ElsLommelen closed 2 months ago

ElsLommelen commented 2 months ago

Renderen van een nieuw protocol met referenties faalt, maar bij tests ontdekten we ook dat het renderen van de bestaande protocols faalt als hier referenties in opgenomen zijn (zowel .bib als .yaml). De foutmelding is ! LaTeX Error: Lonely \item--perhaps a missing list environment., en er wordt hierbij gerefereerd naar \bibitem[\citeproctext]{ref-xxx2012}, verwijzend naar de eerste referentie van het rapport in kwestie. Het lijkt er dus op dat \bibitem niet herkend wordt of zoiets. Als ik hetzelfde bookdown-project run in een ander project om renv te omzeilen, krijg ik dezelfde foutmelding; @wlangera kan in andere bookdown-projecten wel rapporten met referenties renderen. Het probleem treedt zowel op onder Windows als onder Linux, waardoor een ontbrekende dependency van een tex-package minder waarschijnlijk lijkt (omdat Linux andere software gebruikt).

Na een halve dag zoeken hebben we de oorzaak niet kunnen achterhalen, mogelijk conflicterende versies van pandoc, tex, R-packages? Hieruit leid ik af dat er in pandoc enkele versies geleden wat veranderd is, misschien is dat nog niet in alle R-packages aangepast, of te recent waardoor het nog niet in de renv opgenomen is? Of is er een probleem met de layout of volgorde van de verschillende onderdelen van het rapport, zoals hier blijkbaar de oorzaak van een probleem is? Deze recente post lijkt over een gelijkaardig probleem te gaan, dus evt. in de gaten houden voor een oplossing?

@wlangera Vul jij aan wat je je nog herinnert van de testen?

@hansvancalster Ik hoop dat jij dit kan oplossen? Best even proberen tot je zo'n protocol lokaal gerenderd krijgt (zonder renv), lijkt mij. Of de vergelijking maken met een ander rapport dat je lokaal wel kan renderen?

wlangera commented 2 months ago

I cannot render my own project but also not others. As @ElsLommelen mentions, this is a general issue. No further additions.

Feel free to test in a branch of spp-002-nl.

hansvancalster commented 2 months ago

De oorzaak lijkt een wijziging in pandoc vanaf versie 3.1.7. De huidige RStudio heeft pandoc 3.1.11. En we hebben in juni ook gezorgd dat de docker dezelfde pandoc versie heeft omdat er andere problemen waren met een oudere versie. INBOmd vereist minstens 3.1.8. Downgraden is dus ook daarom geen oplossing voor ons, want zal problemen geven met INBOmd.

Na wat verder opzoekwerk, heb ik gevonden dat het met de LaTeX template te maken heeft. Zie https://github.com/jgm/citeproc/issues/135. In het protocolhelper package zit een template die dus moet aangepast worden.

Ik heb dit getest door in de spp-002-nl branch het protocol te renderen (dit geeft inderdaad die foutmelding). Vervolgens in het .tex bestand de code voor de CSL environment aangepast (vervanging doen zoals in https://github.com/jgm/citeproc/issues/135) en dan op de compile pdf knop gedrukt. Dit werkt!

hansvancalster commented 2 months ago

Na wat verder opzoekwerk, heb ik gevonden dat het met de LaTeX template te maken heeft. Zie jgm/citeproc#135. In het protocolhelper package zit een template die dus moet aangepast worden.

Ik heb dit getest door in de spp-002-nl branch het protocol te renderen (dit geeft inderdaad die foutmelding). Vervolgens in het .tex bestand de code voor de CSL environment aangepast (vervanging doen zoals in jgm/citeproc#135) en dan op de compile pdf knop gedrukt. Dit werkt!

@ThierryO misschien is dit ook nodig voor de pandoc templates in INBOmd?

ThierryO commented 2 months ago

Ik verwacht geen INBOmd issue omdat ik reeds vertrok vanaf pandoc 3.1.8