Erreur sur conversion de ".tex" en "pdf" (Rmarkdown) : pdflatex not found / pdfTeX run failed with value 1

Bonjour,
J'avais une erreur quand j'ai lancé un script nextflow qui appele un script Rmd de créer un rapport pdf.
J'ai vérifié que j'ai pandoc et la librairie "tex" installés pour R/4.4.1.

  • dans .sbatch :
module load pandoc/2.7.2 
  • dans Rmd script :
library (tinytex) #  v=0.52

J'ai relancé le pipeline et dans le .nextflow.log j'ai trouvé ces détails ci-dessous :

 kpathsea: Running mktexfmt pdftex.fmt
  Can't locate mktexlsr.pl in @INC (@INC contains: /shared/ifbstor1/software/miniconda/envs/pandoc-2.7.2/share/texlive/tlpkg /shared/ifbstor1/software/miniconda/envs/pandoc-2.7.2/share/texlive/texmf-dist/scripts/texlive /shared/ifbstor1/software/miniconda/envs/r-4.4.1/lib/perl5/5.32/site_perl /shared/ifbstor1/software/miniconda/envs/r-4.4.1/lib/perl5/site_perl /shared/ifbstor1/software/miniconda/envs/r-4.4.1/lib/perl5/5.32/vendor_perl /shared/ifbstor1/software/miniconda/envs/r-4.4.1/lib/perl5/vendor_perl /shared/ifbstor1/software/miniconda/envs/r-4.4.1/lib/perl5/5.32/core_perl /shared/ifbstor1/software/miniconda/envs/r-4.4.1/lib/perl5/core_perl .) at /shared/ifbstor1/software/miniconda/envs/pandoc-2.7.2/bin/mktexfmt line 23.
  BEGIN failed--compilation aborted at /shared/ifbstor1/software/miniconda/envs/pandoc-2.7.2/bin/mktexfmt line 25.
  !!! Error: pdfTeX run failed with value 1!

J'ai essayé de lancer un exemple simple de pandoc pour voir si ça va donner la même erreur :
(Le fichier .tex a été produit par le dernier lancement, c est sur le pdf que ça donne erreur).

[...]/Nextflow_Pip/work/5a/481c86c988e9b4a05d8e997c226330/outputs$ pandoc RNAseqDownstreamAnalysisReport_DM1_vs_sgDMPK.tex  -o RNAseqDownstreamAnalysisReport_DM1_vs_sgDMPK.pdf --pdf-engine=xelatex

...mais ça donne la suivante :

Error at "source" (line 292, column 71):
unexpected \textcolor
expecting \end{Highlighting}
\ControlFlowTok{if}\NormalTok{ (}\FunctionTok{is.null}\NormalTok{(opt}\SpecialCharTok{$}\NormalTok{species)) \{}

La commande initiale de nextflow (v24.04.1) qui donne ces erreurs est :

nextflow run /shared/projects/rnaseq_downstream_pipe/Nextflow_Pip/nxf_scripts/myDESeq2Module --species human --input_file /shared/projects/rnaseq_downstream_pipe/Nextflow_Pip/Raw_Counts_all_conditions_DM1sgDMPK.txt --metadata /shared/projects/rnaseq_downstream_pipe/Nextflow_Pip/metadata_DM1_vs_sgDMPK.txt --project_name DM1_vs_sgDMPK --cpus 6

Pourriez-vous m'aider à identifier quel package/outil m' échappe, et me dire s'il faut l'installer globalement ou localement ?
De quelques recherches en ligne j'ai vu des packages "texconfig" ,"texlive", etc. qui sont proposés en sudo !
merci,
Cdt,
Maria

Hello @maria_myologie, est-ce que la librairie tinytex est bien chargée avant de lancer le render ? Comme ca: library(tinytex); rmarkdown::trender(xxx)

Pour l'erreur avec pandoc ca a l'air de venir d'une accolade non fermée.

Oui, j'ai déjà noté que la librairie tinytex est appelé, et je la vois aussi sur la sessionInfo() dans le fichier ".tex" qui est produit.

Concernant l'accolade non fermée où peut-elle être ? Dans mon code Rmd ? Mon code se lance correctement jusqu'à la fin, c est que la conversion de tex en pdf qui n 'est pas faite!

Est-ce que ca marche en faisant la compilation du fichier latex sur overleaf ? Si oui ca peut aussi être pandoc qui fait son difficile avec les balises.

Oui, via Overleaf je peux avoir le pdf, mais il y a quelques jours je pouvais créer le pdf. Qu est ce qui a changé dernièrement ?

ça veut dire quoi "les balises" ? Comment on peut rendre pandoc 'facile' alors ? :laughing:

En fait j'ai retrouvé mes rapports pdf de la semaine dernière, qui étaient produits sans erreurs, et la version de pandoc sur R, est différente :

rmarkdown::pandoc_version()
## [1] '3.2.1'

En plus, la semaine dernière je faisais pas appel à module load pandoc sur le cluster !
Je l'ai ajouté après cette erreur !
Est-ce que vous pourriez mettre à jour pandoc sur le cluster ,pour voir si ça peut marcher ? ( que la 2.7.2 est dispo mnt )

Rien n'a changé ces derniers jours concernant le module r/4.4.1 ou pandoc/2.7.2 pourtant... Après la version de pandoc commence a se faire vieille (la 2.7.2 date d'il y a 4 ans), je vais voir pour installer une version plus récente, c'est possible que ca résolve le souci.

je connais pas le terme consacré en latex pour désigner les "instructions" (\begin{document}) désolé si c'est pas clair :laughing:

pandoc v3.3 est installé, est-ce que vous pouvez essayer avec?

Merci pour le màj ! ça marche toujours pas ! :frowning:

! BEGIN failed--compilation aborted at /shared/ifbstor1/software/miniconda/envs/pandoc-3.3/bin/mktexfmt line 25.

  Error: LaTeX failed to compile outputs/RNAseqDownstreamAnalysisReport_DM1_vs_sgDMPK.tex.

Mais je sais pas comment le mettre à jour sur R aussi, parce que là j'ai toujours la 3.2.1 ! J ai pas trouvé de commande claire pour rmarkdown::pandoc !

Ah je vois, le module R vient avec sa propre version de pandoc... Fausse piste alors :confused:

Il faudrait essayer avec l'option clean = FALSE dans rmarkdown::render, ca permettrait de voir le fichier markdown produit par pandoc lors de la conversion Rmd -> md.

Bonjour @arthurlebars ! J ai relancé avec clean=FALSE le script Rmd, mais je reçois toujours le même erreur qu'avant concernant mktexfmt ( Can't locate mktexlsr.pl in @INC ) :

En fait ,je suis allé dans le script de pandoc 3.3, et le soucis est sur la ligne :
--> require "mktexlsr.pl"; !
Donc je pense qu'il faut voir d'où il cherche ce script et pourquoi il ne le trouve pas !

Message au complet :

kpathsea: Running mktexfmt pdftex.fmt
  Can't locate mktexlsr.pl in @INC (@INC contains: /shared/ifbstor1/software/miniconda/envs/pandoc-3.3/share/tlpkg /shared/ifbstor1/software/miniconda/envs/pandoc-3.3/share/texmf-dist/scripts/texlive /shared/ifbstor1/software/miniconda/envs/r-4.4.1/lib/perl5/5.32/site_perl /shared/ifbstor1/software/miniconda/envs/r-4.4.1/lib/perl5/site_perl /shared/ifbstor1/software/miniconda/envs/r-4.4.1/lib/perl5/5.32/vendor_perl /shared/ifbstor1/software/miniconda/envs/r-4.4.1/lib/perl5/vendor_perl /shared/ifbstor1/software/miniconda/envs/r-4.4.1/lib/perl5/5.32/core_perl /shared/ifbstor1/software/miniconda/envs/r-4.4.1/lib/perl5/core_perl .) at /shared/ifbstor1/software/miniconda/envs/pandoc-3.3/bin/mktexfmt line 23.
  BEGIN failed--compilation aborted at /shared/ifbstor1/software/miniconda/envs/pandoc-3.3/bin/mktexfmt line 25.
  !!! Error: pdfTeX run failed with value 1!

La commande qui est lancé en interne par pandoc :


/shared/ifbstor1/software/miniconda/envs/r-4.4.1/bin/pandoc +RTS -K512m -RTS DESeq2_and_visualisations_with_DM1sgDMPK.knit.md \
--to latex \ 
--from markdown+autolink_bare_uris+tex_math_single_backslash \
--output /shared/ifbstor1/projects/rnaseq_downstream_pipe/Nextflow_Pip/work/4a/7c9723a2f3b9fc0ee7c5359205c546/outputs/RNAseqDownstreamAnalysisReport_DM1_vs_sgDMPK.tex  \ 
--lua-filter /shared/ifbstor1/home/mkondili/R/x86_64-conda-linux-gnu-library/4.4/rmarkdown/rmarkdown/lua/pagebreak.lua \
--lua-filter  /shared/ifbstor1/home/mkondili/R/x86_64-conda-linux-gnu-library/4.4/rmarkdown/rmarkdown/lua/latex-div.lua \
--embed-resources --standalone --highlight-style tango \
--pdf-engine pdflatex --variable graphics \
--include-in-header /tmp/RtmpKkfd9i/rmarkdown-str3e1b8314a86115.html \
--variable 'geometry:margin=1in'

output folder :

/shared/ifbstor1/projects/rnaseq_downstream_pipe/Nextflow_Pip/work/4a/7c9723a2f3b9fc0ee7c5359205c546/outputs

output file (attendu) :

DESeq2_and_visualisations_with_DM1sgDMPK.knit.md

output file (produit ) :

RNAseqDownstreamAnalysisReport_DM1_vs_sgDMPK.tex