Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support latexmk and custom compilation chains #23

Open
MonsieurV opened this issue Nov 29, 2022 · 3 comments
Open

Support latexmk and custom compilation chains #23

MonsieurV opened this issue Nov 29, 2022 · 3 comments

Comments

@MonsieurV
Copy link
Member

Allows to specify custom compilation chains, while ensuring containment.

Include a support for latexmk, and make it the default.

@MonsieurV
Copy link
Member Author

MonsieurV commented Nov 29, 2022

(From a correspondence with David Carlisle)

Bibtex / Biblatex

Thanks for bringing this point to my consciousness.
I use Latex for documents without references, so I didn't address this point so far.

I've just added an additional option to select the bibliography to run with the Latex compiler: they are two commands available so far (bibtex and biber), with bibtex the default.

There are still limitations for the moment (for eg. platex and uplatex doesn't use the main Latex wrapper used in Latex-on-HTTP, so bibliography certainly won't work properly with them and the option has no effect). If you encounter them, I'll be glad to support more cases with examples provided.

See the README
https://github.com/YtoTech/latex-on-http#compiling-latex
And a sample with the multipart API
https://github.com/YtoTech/latex-on-http/tree/master/examples/bibtex

In practice you can add {
"options.bibliography.command": "biber"
...
}
to your json payload

platex / uplatex

The wrapper used for the moment (runlatex) doesn't support platex and uplatex, so for the moment there will be limitations when multiple runs are necessary or for specifying bibtex executable.

My platex examples are basically taken from overleaf, their example has a pbibtex citation:

https://www.overleaf.com/learn/latex/Questions/Does_Overleaf_support_pTeX%3F

I removed the Japanese \cite part of that example from the version on the learnlatex tutorial since I wanted to get the simpler example working first:-)

@MonsieurV
Copy link
Member Author

(from a correspondence with Denis Bitouzé)

Abstract:

  • support latexmk
  • give access to complete logs

avec le client CLI lol qui a été créé par la communauté :
https://github.com/YtoTech/latex-on-http#using-cli

Miam miam ! (Quel nom ! 😉

Par ex:
lol -s ytotech -c lualatex -b bibtex

La classe letgut s'appuie sur biber et non sur bibtex. J'ai vu que
lol permet de spécifier le moteur de bibliographie désiré (mais
cf. ci-dessous).

lettre45.tex *.tex *.bib *.cls *.sty *.png

Bon, après vu la classe lesgut, ça ne serra peut-être pas évident
à faire tourner. (pas de shell-escape pour le moment côté
LaTex-on-HTTP)

Bonne nouvelle : la classe letgut ne le nécessite pas 😄

J'ai fais quelques essais, et même en copiant letgut-banner.sty et
CTAN.png d'une autre lettre il y a des erreurs dont je ne suis pas sûr
de déchiffrer la vraie cause.

J'ai pushé des modifications (dont une pour momentanément contourner un
bug, a priori pas lié à letgut, que j'examinerai demain si j'ai le
temps) qui font que, désormais, le fichier compile avec une TL 2021
à jour en recourant à latexmk...

C'est sensé se compiler complètement avec latexmk -pdflua, c'est
cela ?

... oui mais, au moyen d'un fichier de configuration .latexmkrc qui
était déjà utilisé pour la Lettre 44 et que je viens de pusher. Je ne
sais pas si lol permet d'utiliser ce genre de fichier, notamment du
fait qu'il est caché mais, au pire, on peut le renommer en latexmkrc,
latexmk acceptant les deux. Du coup, il devient inutile de spécifier
les moteurs lualatex et biber.

Avec :

┌────
│ lol -v -s ytotech -c lualatex -b biber lettre45.tex *.tex *.bib *.cls *.sty *.png
└────

j'obtiens les erreurs suivantes :

┌────
│ ERROR: YtoTech compilation error (status code 400):
│ b'/app/latex-on-http/tmp/loh_workspaces/a3e68fcc-98f5-41ef-98cf-1631fa26abd9/main_document.tex: warning: [hyperref] Draft mode on\n'
│ b"nouveautes.tex:9: error: [acro] You've requested acronym ctan' on line 9 but you\n" │ b' at \\ac{ctan}\n' │ b'nouveautes.tex:9: error: Missing number, treated as zero\n' │ b' at <to be read again>\n' │ b' from \\ac{ctan}\n' │ b"nouveautes.tex:9: error: You can't use \relax' after \advance\n"
│ b' at \g__acro_ctan_int\n'
│ b' from \ac{ctan}\n'
│ b'nouveautes.tex:9: error: TeX capacity exceeded, sorry [input stack size=5000]\n'
│ b' at \g__acro_ctan_pages_seq ->\g__acro_ctan_pages_seq \__seq_item:n {1@1@2}\n'
│ b' ^\n'
│ b' from \ac{ctan}\n'
│ b'nouveautes.tex: Fatal error (no output file produced)\n'
│ b'There were errors; /app/latex-on-http/tmp/loh_workspaces/a3e68fcc-98f5-41ef-98cf-1631fa26abd9/output.pdf not updated\n'
└────

manifestement liées au package acro. Comme les messages sont
incomplets, je ne comprends pas bien leurs causes. La distribution TeX
utilisée par LaTeX-on-HTTP est-elle à jour ? Par exemple, la File List
de :

--8<---------------cut here---------------start------------->8---
\listfiles

\documentclass{article}
\usepackage{acro}
\begin{document}
Foo.
\end{document}
--8<---------------cut here---------------end--------------->8---

est chez moi :

┌────
File List
│ article.cls 2021/02/12 v1.4n Standard LaTeX document class
│ size10.clo 2021/02/12 v1.4n Standard LaTeX file (size option)
│ acro.sty 2021/01/16 v3.5 typeset acronyms and other abbreviations (CN)
│ l3keys2e.sty 2021-08-27 LaTeX2e option processing using LaTeX3 keys
│ expl3.sty 2021-08-27 L3 programming layer (loader)
│ l3backend-luatex.def 2021-08-04 L3 backend support: PDF output (LuaTeX)
│ translations.sty 2021/01/17 v1.10a internationalization of LaTeX2e packages
│ (CN)
│ etoolbox.sty 2020/10/05 v2.5k e-TeX tools for LaTeX (JAW)
│ pdftexcmds.sty 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO)
│ infwarerr.sty 2019/12/03 v1.5 Providing info/warning/error messages (HO)
│ iftex.sty 2020/03/06 v1.0d TeX engine tests
│ ltxcmds.sty 2020-05-10 v1.25 LaTeX kernel commands for general use (HO)
│ test.acr
│ ts1cmr.fd 2019/12/16 v2.5j Standard LaTeX font definitions
│ translations-basic-dictionary-english.trsl (english translation file `transl
│ ations-basic-dictionary')
│ test.acr
│ ***********
└────

Serait-il possible que LaTeX-on-HTTP (ou lol) permette un accès au
fichier .log, notamment en cas d'échec de la compilation ?

-> Je peux regarder pour supporter latexmk,

Ce serait /très/ utile : ce makefile (codé en Perl) permet d'assurer que
le PDF obtenu est stable : toutes les compilations (pdf|xe|lua)latex,
biber, makeglossaries, xindy, etc. auront été faites le nombre
nécessaire et suffisant de fois.

je l'avais noté il y a un moment (par contre shell-espace ça risque
d'être plus compliqué)

Encore une fois, pas de shell-escape nécessaire.

@MonsieurV
Copy link
Member Author

(From a correspondence with Pedro Manso Bernal)

Abstract:

  • a support on convert in compile chain (PDF output)

[...]
now i need to compile latex to png (or any other image format) instead of pdf, i see on internet that is posible using the following command:

pdflatex file
convert -density 300 file.pdf -quality 90 file.png

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant