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
- 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řebujetecyrillic
balíček a získatly1enc.def
potřebujetely1
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řebujetetexcount
balíček.
- 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říkladlatexmk 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.