Configuración de variables y directorios.

Configuración de variables y directorios.

En un sistema tipo Unix que usa TeX Live, el comando kpsewhich --var-value=TEXMFLOCALproporciona la ruta del directorio donde instalar el paquete casero. Por ejemplo, en mi Mac obtengo la ruta /usr/local/texlive/texmf-local.

¿Funciona esto en Windows usando TeX Live?

Respuesta1

Aunque ya obtuviste algunas respuestas (algunas de ellas en los comentarios), déjame decirte lo siguiente: TeXLive (y MikTeX hasta donde yo sé)

  1. está configurado, para utilizar correctamenteSDT, que es la(s) estructura(s) de directorio TeX.
  2. está utilizando las herramientas de Karl Berry Search Path. Por lo tanto, puede utilizar la herramienta de línea de comando kpsewhichpara determinar dónde se encuentra un archivo. Este comando se inspiró en la whichherramienta Unix, que intenta encontrar la ubicación de un ejecutable determinado. Para su uso en sistemas TeX, se mejoró un poco.

Especialmente en TeXLive (pero nuevamente, creo que también en MikTeX), puedes usar más de un árbol TDS paralelo a otro. Por lo general, los sistemas TeXLive están configurados para tener tres de estos árboles TDS:

  1. El TDS para el mantenedor de las distribuciones,
  2. El TDS para el administrador del sistema local,
  3. La TDS para el usuario individual.

El primero contiene todos los paquetes que vienen con TeXLive (MikTeX, respectivamente). Se instalará cuando usted (como administrador del sistema) instale su sistema TeXLive. Se cambiará cada vez que actualice su sistema TeXLive. Por lo tanto, no deberías instalar ningún paquete en ese árbol TDS (a menos que seas un mantenedor de TeXLive, por supuesto. Pero, ¿por qué debería explicarte la configuración?).

El segundo árbol TDS es para el administrador del sistema, que apoya a sus usuarios con un depósito central de paquetes locales fácilmente instalados. Por ejemplo, aquí se instalarán los archivos de estilo que obedecerán al diseño corporativo de tu universidad. Si se trata de una red compartida, todos los usuarios de TeX de toda la universidad (de toda la empresa, si lo desea) pueden utilizar estos archivos sin ninguna configuración adicional. Para poder instalar paquetes en este árbol, generalmente también necesita tener derechos de administrador del sistema para poder escribir archivos aquí.

El tercer y último árbol es el árbol del usuario individual. Estará ubicado en un directorio propiedad del propio usuario; Clásicamente esto estaba dentro del directorio de inicio del usuario en sistemas Unix.

Puede utilizar la herramienta de comando TeXLive tlmgrpara averiguar dónde se encuentran estos tres TDS en su computadora individual. Solo corre

tlmgr conf

y verifique las líneas que comienzan con

  1. TEXMFDIST
  2. TEXMFLOCAL
  3. TEXMFHOME

Le indican las ubicaciones correctas en su instalación TeX.

(No conozco la herramienta que proporciona esta información sobre MikTeX, lo siento).

También hay una línea texmf.cnfque comienza con la ubicación del archivo de configuración maestro. Si alguna vez planeas cambiar algunas de las ubicaciones y realmente sabes lo que estás haciendo allí, ¡ese es el archivo que debes editar!

Hay otra cosa importante que señalar. Hoy en día, un sistema TeX completo consta de cientos de miles de archivos. Sería tedioso para su computadora buscar en cada ruta una y otra vez, solo para localizar, por ejemplo book.cls. (¿He mencionado que las computadoras son estúpidas? ¡Las computadoras no pueden recordar esas ubicaciones si no les brindas ayuda!) Para evitar buscar, buscar y buscar nuevamente, todos los archivos, que se encuentran en el árbol de distribución TDS y en el árbol TDS local, se almacenan en una base de datos simple. Por lo tanto, no es suficiente copiar un archivo en uno de esos árboles. TeX no encontrará estos archivos, a menos que actualice la base de datos. Por supuesto, seguramente necesitarás derechos de superusuario (también conocido como super poder de vaca :-)) para actualizar la base de datos. En los sistemas Unix clásicos, este solía ser el texhashcomando o mktexlsrla forma abreviada de "Crear la base de datos TeX ls-minus-R" (Para ser cierto: no es nada más que ls -R $TEXMFDISTcualquier árbol TDS que desee agregar a su base de datos. )

Para resumir todo eso: si planea enriquecer el mundo lanzando un paquete suyo, para instalarlo en la computadora de otra persona, la mejor manera sería convencer a los mantenedores de TeXLive para que lo incluyan en TeXLive. Entonces ya no tendrás que preocuparte. Si su paquete no es tan importante y puede convencer a los mantenedores de TeXLive para que lo incluyan, podría ser mejor instruir a sus clientes para que lo instalen en la TEXMFHOMEparte de su sistema. Sólo pídeles que corran

tlmgr conf | grep TEXMFHOME

en sistemas tipo Unix. En sistemas Windows más nuevos que tengan instalado un bash, también podría funcionar. En esa ubicación no necesitan tener poderes de súper vaca ni molestarse en actualizar la base de datos. Si entrega su paquete a los administradores del sistema, ellos generalmente sabrán dónde almacenar el paquete y cómo actualizar la base de datos.

PD: Si desea asegurarse de que la versión más reciente book.clsde CTAN se pueda utilizar en su sistema TeXLive, mientras que los mantenedores no la incorporaron a su distribución, debe instalarla en TEXMFLOCALo TEXMFHOMEy configurar su sistema mediante editando temf.cnfde tal manera que TEXMFDISTse buscará al final de los tres árboles TDS dados.

Respuesta2

Una de las cosas a tener en cuenta es que en Windows muchas de las variables de configuración no están activadas por defecto, sumado a esto, algunas cosas las podemos hacer con permisos de administrador y otras como un simple usuario. Me inclinaré por la opción de usuarios simples, es decir las configuraciones sólo afectarán al usuario actual del sistema.

Para este ejemplo el nombre de usuario es yourselfy cada vez que iniciemos una línea de comando cmdlo haremossin privilegios de administrador.

Configuración de variables y directorios.

  1. Configuración de TEXMFHOME Cuando ejecuta en una línea de comando cmdobtendrá:
C:\Users\yourself>kpsewhich -var-value=TEXMFHOME
C:/Users/yourself/texmf

Pero, en realidad el texmfdirectorio no existe como tal, debemos crearlo siguiendo la TDSestructura. Lo crearemos cuidando el separador de ruta que en este caso es \.

C:\Users\yourself>mkdir texmf\tex\latex
  1. Configuración de TEXMFCNF Abra una línea de comando cmdy ejecute la siguiente línea:
C:\Users\yourself>kpsewhich -all texmf.cnf
c:/texlive/2019/texmf.cnf
c:/texlive/2019/texmf-dist/web2c/texmf.cnf

El resultado indica que la variable no está configurada para nuestro usuario. Lo configuramos de la siguiente manera:

C:\Users\yourself>setx TEXMFCNF C:/Users/yourself/texmf;

CORRECTO: se guardó el valor especificado.

Salimos y volvemos a entrar y corremos:

C:\Users\yourself>reg query HKEY_CURRENT_USER\Environment

HKEY_CURRENT_USER\Environment
    Path    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Microsoft\WindowsApps;
    TEMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
    TMP    REG_EXPAND_SZ    %USERPROFILE%\AppData\Local\Temp
    OneDrive    REG_EXPAND_SZ    C:\Users\yourself\OneDrive
    TEXMFCNF    REG_SZ    C:/Users/yourself/texmf;

Hemos terminado de configurar esta variable. Esta variable se utilizará junto con el auxtreescomando del ejemplo.

  1. Configuración de TEXINPUTS Supongamos que tenemos un directorio D:/transcriptsde secciones o imágenes pero solo están disponibles localmente y las queremos para probar. Lo mejor en este caso es usar la TEXINPUTSvariable y aquí depende si queremos que la configuración sea permanente (siempre disponible) o temporal (solo en la consola actual).

a. Configuración temporal Abra una línea de comando cmd y ejecute:

C:\Users\yourself>set TEXINPUTS=.;D:/transcripts//;

esto funcionará hasta que cierres la línea de comando, es decir, debes ejecutar estocada vezdespués de cerrar una línea de comando.

b. Configuración permanente Abra una línea de comando cmd y ejecute:

C:\Users\yourself>setx TEXINPUTS .;D:/transcripts//;

cerrar la línea de comando. De esta forma hemos configurado TEXINPUTSen tuVariable ambientaly ahora está permeando.

Si necesita ver TEXINPUTSdesde la variable de entorno, use:

C:\Users\yourself>reg query HKEY_CURRENT_USER\Environment

Si necesita eliminar TEXINPUTSde la variable de entorno, utilice:

C:\Users\yourself>reg delete HKEY_CURRENT_USER\Environment /v TEXINPUTS /f

Alternativamente, esto se puede hacer en modo gráfico ajustando suVariable ambiental.

Ejemplo completo usandoauxtrees

Esta es parte de la configuración que usamos con un grupo de colegas en mi trabajo usando un proyecto alojado en github(que también distribuimos en .zipformato) con el uso de algunos paquetes y clases personalizadas, transcribe la parte relacionada con windows (espero que entiendo, mi lengua materna es el español). La TDScarpeta para este ejemplo se encuentra D:/ltxcole/stycole/y la estructura del proyecto es:

D:\ltxcole>tree
Listado de rutas de carpetas para el volumen driveD
El número de serie del volumen es FACD-A6DF
D:.
├───octavo
│   ├───diagnostico
│   ├───guias
│   ├───pruebas
│   ├───test
│   └───trabajos
├───produccion
├───septimo
│   ├───diagnostico
│   ├───guias
│   ├───pruebas
│   └───test
├───sintesis
└───stycole
    └───tex
        └───latex

La clave está en stycoleque tiene una TDSestructura:

└───stycole
    └───tex
        └───latex
               colegio-new2019.sty
               keyanswer.sty
               logoaurora.jpg
               tkz-custom.sty

La documentación de TeXLive para configuraciones de Windows no es muy "explicativa", pero, en el foro hay buena información. El uso de auxtreesle permite mantener varios proyectos sin afectar todo el sistema usando la TEXMFLOCALvariable o cargando todo en TEXMFHOME.

Abra una línea de comando cmd y ejecute:

C:\Users\yourself>tlmgr conf auxtrees --conffile C:/Users/yourself/texmf/texmf.cnf show
tlmgr.pl: no auxiliary texmf trees defined.

el resultado nos dice que no tenemos nada configurado, ahora ejecutamos:

C:\Users\yourself>tlmgr conf auxtrees --conffile C:/Users/yourself/texmf/texmf.cnf add D:/ltxcole/stycole/

para comprobar que todo está correcto ejecutamos:

C:\Users\yourself>tlmgr conf auxtrees --conffile C:/Users/yourself/texmf/texmf.cnf show
List of auxiliary texmf trees:
  D:/ltxcole/stycole/

Con esto hemos terminado de configurar nuestro proyecto, los archivos colocados D:/ltxcole/stycole/tex/latex/estarán disponibles para todos nuestros archivos. El archivo C: Users\yourself\texmf.cnfcontiene la siguiente línea:

TEXMFAUXTREES = D:/ltxcole/stycole/,

y podrás agregar tantos proyectos como quieras siempre y cuando respetes la TDSestructura.

Por supuesto, si sólo quieres hacer pruebas por ti mismo es más sencillo de usar TEXMFHOME, aunque la ventaja de usarauxtrees+git es que puedes generar unmultiplataformaconfiguraciónguion o un sencillo READMEcon instrucciones relevantes para un proyecto colaborativo.

información relacionada