GNU/Linux >> Znalost Linux >  >> Linux

Auto Package ke stažení pro TeXLive

V MiKTeXu se instalační proces spustí automaticky, pokud máte, řekněme, \usepackage{beamer} v preambuli dokumentu bez nainstalovaného příslušného balíčku taková funkce na TeX Live není.

Poslední tvrzení není ve skutečnosti pravdivé, jak upozornilo wasteofspace v komentářích, že existuje balíček texliveonfly, který implementuje instalaci na vyžádání v TeX Live 2010 a novějších. Nikdy jsem to netestoval a nevím, jestli to má nějaké nevýhody.

Pokud však nainstalujete plnou (nebo téměř plnou) kolekci balíčků TeX Live (~2400), nebudete muset přidávat nové balíčky, pravidelně tlmgr update -all se o vše postará, včetně instalace balíčků přidaných do kolekce TeX Live po vaší první plné instalaci. Tato funkce je vysvětlena v tlmgr manuál.

Analogicky, pokud byl balíček přidán do kolekce na serveru, který je také nainstalován lokálně, bude přidán do místní instalace. Toto se nazývá auto-install a je jako takové oznámeno při použití volby --list . Tuto automatickou instalaci lze potlačit pomocí volby --no-auto-install

Příručka obsahuje spoustu informací o užitečných příkazech a je doporučenou četbou pro každého uživatele.

Nevýhodou je samozřejmě to, že na vašem počítači potřebujete nainstalovanou celou sadu balíčků, což může být problém, pokud nemáte dostatek volného místa. Pokud opravdu nemůžete ušetřit 2GB z vašeho HD, je také možné nainstalovat TeX Live na řekněme 4GB USB klíč a žít šťastně až do smrti :)

Vše, co jsem právě napsal, vyžaduje, abyste si TeX Live nainstalovali jednou ze zde popsaných metod. Pokud se rozhodnete používat balíčky TeX z vašeho distribuce, jste nuceni dodržovat jejich zásady aktualizací, které se liší pro různá distribuce


texliveonfly

Jak bylo zmíněno v komentářích, existuje balíček TeX Live nazvaný texliveonfly který můžete použít s texliveonfly filename.tex a automaticky stáhne správné balíčky TeX Live.

Toto funguje také pro balíčky, u kterých se název balíčku LaTeX a název balíčku TeX Live neshodují (například LaTeX rubikrotation balíček je obsažen v rubik balíček TeX Live) a také bere v úvahu závislosti balíčku.

Použití

Instalace Je to skript Python, takže vyžaduje instalaci Pythonu. Poté jej můžete nainstalovat jako obvykle pomocí tlmgr install texliveonfly . Pokud musíte použít sudo tlmgr zde budete muset použít sudo texliveonfly později.

Spuštěno Pokud ve svém terminálu přejdete do adresáře vašeho filename.tex soubor, můžete jej spustit pomocí texliveonfly filename.tex .

Další kompilátory V současné době používá pdflatex ve výchozím nastavení, ale můžete jej nakonfigurovat tak, aby běžel s jinými stroji kompilátoru pomocí --compiler (nebo -c ) příznak, například texliveonfly --compiler=lualatex filename.tex .

Příznaky kompilátoru Příznaky pro kompilátor, který používáte, můžete předat do texliveonfly pomocí --arguments (nebo -a ) příznak, takže pokud jste například dříve používali latexmk -shell-escape -pdf filename.tex pak nyní použijete texliveonfly --compiler=latexmk --arguments='-shell-escape -pdf' filename.tex .

Známé problémy

  1. Existují některé případy chybějících balíčků, které selžou s nestandardní chybovou zprávou, například babel, když v něm chybí jazyky, v takovém případě texliveonfly nestahuje je. V současné době je známo, že následující balíčky je třeba nainstalovat ručně:(pokud najdete další, upravte je)
  • Jazyky Babel, například pro evropské jazyky, nainstalujte collection-langeuropean balíček
  • Styl Biblatex, např. pro přírodní styl potřebujete biblatex-nature balíček
  • kódování fontenc, např. získat t2aenc.def potřebujete cyrillic balíček a získat ly1enc.def potřebujete ly1 balíček.
  • Balíčky související s používáním raženého balíčku, které jsou minted fvextra upquote lineno xstring framed caption (díky pablgonz za testování)
  • Při spouštění externích programů, jako je texcount ve vašem souboru LaTeX texliveonfly nezjistí, že potřebujete texcount balíček.
  1. Když dáváte možnosti texliveonfly, například pro jiný kompilátor, někdy se při instalaci balíčků zasekne bez zjevného důvodu. S největší pravděpodobností to můžete obejít tak, že nejprve spustíte texliveonfly bez voleb, takže texliveonfly main.tex (takže to stáhne balíčky) a pak spusťte, co chcete, například latexmk main.tex .

Pozadí

V podstatě texliveonfly je nástroj pro sestavení jako latexmk (což je skript v Perlu), obaluje TeX engine. Pamatujte však, že je můžete řetězit pomocí texliveonfly --compiler=latexmk filename.tex .

Je to python skript, který funguje tak, že se pokouší spustit váš soubor LaTeX, a pokud selže, protože balíček chybí, pokusí se nainstalovat tento balíček.

Kromě na ctan.org/pkg/texliveonfly si můžete zdroj prohlédnout na ctan.org/tex-archive/support/texliveonfly nebo na latex.org/forum

PS Testoval jsem to na Arch Linuxu 4.19.4 a na Travis CI (Ubuntu 14.04).


Můj poněkud zjednodušený přístup byl hledat \usepackage , rozbalte obsah a nainstalujte pomocí správce balíčků distribuce.

cat *.tex | sed -n 's/^[^%]*\\usepackage[^{]*{\([^}]*\)}.*$/tex\(\1.sty\)/p' | paste -sd ' ' -

Toto vrátí seznam balíků s .sty a obklopené tex() , např. tex(amsmath.sty) tex(enumitem.sty) tex(graphicx.sty) . Mohu je předat přímo na yum /dnf (Používám Fedoru).

sudo dnf install $( cat *.tex | sed -n 's/^[^%]*\\usepackage[^{]*{\([^}]*\)}.*$/tex\(\1.sty\)/p' | paste -sd ' ' - )

Bylo tam několik balíčků, které jsem rozdělil na více řádků, které byly sed výraz chyběl, který jsem nainstaloval ručně pomocí sudo dnf install 'tex(some-package-name.sty)' .

Doufejme, že existuje jednoduchý .sty instalace ekvivalentu pro apt-get na ubuntu.


Linux
  1. Který balíček Dia bych si měl stáhnout pro Ubuntu 14.04 64-bit?

  2. Persepolis – Libre Cross-Platform Download Manager pro Linux

  3. youtube-dl-gui – Multiplatformní GUI pro youtube-dl

  1. Použití AppImage pro správu balíčků Linuxu

  2. Chyba při instalaci balíčku R pro Linux

  3. Software pro automatickou extrakci pro Linux?

  1. Jak zabalit aplikace Python pro Linux

  2. Nix – výkonný správce balíčků pro Linux a Unix

  3. Trizen – lehký správce balíčků AUR pro systémy založené na Arch