GNU/Linux >> Tutoriales Linux >  >> Linux

Descarga automática de paquetes para TeXLive

Mientras está en MiKTeX, se activa automáticamente un proceso de instalación si tiene, digamos, \usepackage{beamer} en el preámbulo de un documento sin el paquete correspondiente instalado, no existe tal función en TeX Live.

La última declaración no es cierta en realidad, como lo señaló wastofspace en los comentarios, existe el paquete texliveonfly que implementa la instalación bajo demanda en TeX Live 2010 y versiones posteriores. Nunca lo probé y no sé si tiene inconvenientes.

Sin embargo, si instala la colección completa (o casi completa) de paquetes de TeX Live (~2400), no necesitará agregar nuevos paquetes, un tlmgr update -all periódico se encargará de todo, incluida la instalación de paquetes agregados a la colección TeX Live después de su primera instalación completa. Esta característica se explica en el tlmgr manual.

De manera análoga, si se ha agregado un paquete a una colección en el servidor que también está instalada localmente, se agregará a la instalación local. Esto se llama auto-install y se anuncia como tal al usar la opción --list . Esta autoinstalación se puede suprimir mediante la opción --no-auto-install

El manual tiene mucha información sobre comandos útiles y es una lectura recomendada para todos los usuarios.

La desventaja es, por supuesto, que necesita el conjunto completo de paquetes instalados en su máquina, lo que puede ser un problema si no tiene suficiente espacio libre. Si realmente no puede prescindir de 2 GB de su HD, también es posible instalar TeX Live en una llave USB de, digamos, 4 GB y vivir felices para siempre :)

Todo lo que acabo de escribir requiere que instale TeX Live con uno de los métodos descritos aquí. Si decide usar los paquetes TeX de su distribución, se ve obligado a seguir su política de actualización, que es diferente para diferentes distribuciones


texliveonfly

Como se menciona en los comentarios, hay un paquete TeX Live llamado texliveonfly que puedes usar con texliveonfly filename.tex y descargará automáticamente los paquetes de TeX Live correctos.

Esto también funciona para paquetes en los que el nombre del paquete de LaTeX y el nombre del paquete de TeX Live no coinciden (por ejemplo, el rubikrotation de LaTeX el paquete está contenido en el rubik paquete TeX Live), y también tiene en cuenta las dependencias del paquete.

Uso

Instalando Es un script de Python, por lo que requiere que Python esté instalado. Luego puede instalarlo como de costumbre con tlmgr install texliveonfly . Si tienes que usar sudo tlmgr aquí, tendrás que usar sudo texliveonfly más tarde.

Correr Si vas en tu terminal al directorio de tu filename.tex archivo, puede ejecutarlo con texliveonfly filename.tex .

Otros compiladores Por el momento usa pdflatex de forma predeterminada, pero puede configurarlo para que se ejecute con otros motores de compilación utilizando el --compiler (o -c ), como texliveonfly --compiler=lualatex filename.tex .

Indicadores del compilador Puedes pasar indicadores para el compilador que usas a texliveonfly utilizando el --arguments (o -a ), por ejemplo, si utilizó anteriormente latexmk -shell-escape -pdf filename.tex entonces ahora usas texliveonfly --compiler=latexmk --arguments='-shell-escape -pdf' filename.tex .

Problemas conocidos

  1. Hay algunos casos de paquetes faltantes que fallan con un mensaje de error no estándar, por ejemplo babel cuando faltan idiomas, en cuyo caso texliveonfly no los descarga. Por el momento, se sabe que los siguientes paquetes deben instalarse manualmente:(edítelos si encuentra más)
  • Idiomas de Babel, por ejemplo, para idiomas europeos, instale el collection-langeuropean paquete
  • Estilos Biblatex, p. para el estilo natural necesitas el biblatex-nature paquete
  • codificación de fontenc, p. para obtener t2aenc.def necesitas el cyrillic paquete, y para obtener el ly1enc.def necesitas el ly1 paquete.
  • Paquetes involucrados cuando se usa el paquete acuñado, que son minted fvextra upquote lineno xstring framed caption (gracias a pablgonz por probar)
  • Al ejecutar programas externos como texcount en su archivo LaTeX, texliveonfly no detecta que necesita el texcount paquete.
  1. Al dar opciones a texliveonfly, por ejemplo para un compilador diferente, a veces se bloquea sin motivo aparente al instalar paquetes. Lo más probable es que puedas solucionarlo ejecutando primero texliveonfly sin opciones, así que texliveonfly main.tex (para que descargue los paquetes) y luego ejecute lo que quiera, por ejemplo latexmk main.tex .

Antecedentes

Esencialmente, texliveonfly es una herramienta de compilación como latexmk (que es un script de Perl), envuelve el motor TeX. Tenga en cuenta, sin embargo, que puede encadenarlos con texliveonfly --compiler=latexmk filename.tex .

Es un script de python que funciona al intentar ejecutar su archivo LaTeX, y si falla porque falta un paquete, intentará instalar ese paquete.

Además de en ctan.org/pkg/texliveonfly, puede ver la fuente en ctan.org/tex-archive/support/texliveonfly o en latex.org/forum

PD Probé esto en Arch Linux 4.19.4 y en Travis CI (Ubuntu 14.04).


Mi enfoque bastante simplista fue buscar \usepackage , extraiga el contenido e instálelo usando el administrador de paquetes de la distribución.

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

Esto devuelve una lista de paquetes con .sty y rodeado de tex() , p.ej. tex(amsmath.sty) tex(enumitem.sty) tex(graphicx.sty) . Puedo pasarlos directamente a yum /dnf (Estoy usando Fedora).

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

Había un par de paquetes que había dividido en varias líneas que el sed expresión perdida, que instalé manualmente usando sudo dnf install 'tex(some-package-name.sty)' .

Esperemos que haya un simple .sty instalación equivalente para apt-get en ubuntu.


Linux
  1. Cómo empaquetar aplicaciones de Python para Linux

  2. Apt-cache utilizado para?

  3. Persepolis:un administrador de descargas multiplataforma libre para Linux

  4. youtube-dl-gui:una GUI multiplataforma para youtube-dl

  5. ¿Software de extracción automática para Linux?

Descargue las 21 mejores hojas de trucos de comandos de Linux gratis

Averigüe si hay un paquete disponible para su distribución de Linux

Sysget:un front-end para administradores de paquetes populares

No se pudieron descargar los metadatos para el repositorio

Reseña:Gestores de descargas para Linux

Mejora automática de imagen para Ubuntu