\archivos de entrada compartidos entre colaboradores y ubicados en diferentes carpetas

\archivos de entrada compartidos entre colaboradores y ubicados en diferentes carpetas

Estoy trabajando en un proyecto colaborativo y usamos Dropbox para almacenar nuestros archivos compartidos. Me gustaría ingresar una tabla hecha en tex (llamada table.tex) en un documento tex, pero table.tex tiene una ruta de archivo diferente dentro de Dropbox en diferentes computadoras. Por ejemplo, el de una persona podría verse así

/Users/usernameA/Dropbox/folder1/tables/table.tex

y el del otro podría ser

/Users/usernameB/Dropbox/folderx/folder1/tables/table.tex

Esto es lo que hemos estado haciendo:

\newcommand{\rootPath}{/Users/usernameA/Dropbox/folder1/tables
%\newcommand{\rootPath}{/Users/usernameB/Dropbox/folderX/folder1/tables

Quien esté recompilando el documento comenta las rutas de otras personas y más adelante en el documento.

\input{"\rootpath/table.tex"}

¿Existe una forma más sencilla de acceder a table.tex desde diferentes carpetas en diferentes computadoras?

Respuesta1

La siguiente solución llama idal comando para obtener el nombre de usuario del sistema UNIX actual y lo almacena en formato \username. Debe agregar --shell-escapeuna bandera a su compilador LaTeX porque ides un comando externo (no registrado).

Mira aquí:¿Qué hace --shell-escape?

\documentclass{article}
\usepackage{expl3}

\ExplSyntaxOn

\newcommand{\username}{}

\msg_new:nnn {doc} {noshell} {no~shell~avaliable-please~enable~shell~escape!}
\msg_new:nnn {doc} {nousername} {unable~to~extract~user~name}

\cs_generate_variant:Nn \regex_extract_once:nnN {nVN}

% determine if shell is avaliable
\sys_if_shell_unrestricted:TF {
    % run id command
    \sys_get_shell:nnN {id} {} \l_tmpa_tl
    % use regex to extract user name
    \regex_extract_once:nVN {uid=[0-9]*\((.*?)\)} \l_tmpa_tl \l_tmpa_seq
    \int_compare:nTF {\seq_count:N \l_tmpa_seq < 2} {
        \msg_error:nn {doc} {nousername}
    }{
        % extract user name
        \tl_gset:Nx \username {\seq_item:Nn \l_tmpa_seq {2}}
    }
} {
    \msg_error:nn {doc} {noshell}
}

\ExplSyntaxOff

\begin{document}

\newcommand{\rootpath}{/Users/\username/Dropbox/folder1/tables}
\rootpath

\end{document}

Respuesta2

Para profundizar en mi comentario: si el archivo tex principal está en el mismo directorio que folder1, entonces todos los usuarios pueden tener \input{folder1/tables/table}. El principal requisito para que esto suceda es que hayas compartido la carpeta que contiene todo el proyecto. (Y \inputno necesita "ni .tex.)

información relacionada