Je souhaite partager un document latex via git avec de nombreuses autres personnes. Par conséquent, nous avons décidé de mettre tous les fichiers sty spéciaux, qui ne sont pas présents dans l'installation latex de tout le monde, dans un répertoire de ressources. Ce serait cool, si ce dir était un superdir. du répertoire de travail réel Comment puis-je importer ces fichiers de style exactement?
Il est important que même les dépendances de ces styles distants soient résolues avec d'autres styles distants.
Vous pouvez importer un fichier de style (mystyle.sty
) dans votre document de deux manières:
.tex
fichier, incluez simplement cette ligne dans votre préambule: \usepackage{mystyle}
\usepackage{/path/to/folder/mystyle}
Cela dit, si vous n'êtes pas sûr que le fichier de style se trouve dans l'installation de tout le monde, incluez-le simplement dans le même répertoire et assurez-vous de faire git add mystyle.sty
et suivez-le avec le reste de vos fichiers (bien qu'il n'y ait probablement aucun changement). Il n'est pas nécessaire d'avoir un répertoire parent. Mais si vous insistez sur un répertoire différent, voir l'option 2 ci-dessus.
Il serait préférable que ce soit dans un sous-répertoire que dans un répertoire parent, car vous pouvez toujours appeler le fichier en tant que \usepackage{subdir/mystyle}
et assurez-vous d'invoquer votre fichier de style. Cependant, si vous vous échappez vers le répertoire parent, vous ne savez jamais si les autres utilisateurs ont un dossier de même nom qui ne fait pas partie de votre package, ce qui peut entraîner des erreurs.
Cela ne vous concerne probablement plus, mais voici une autre façon de faire ce que vous voulez. Configurez votre dépôt git comme ceci:
mystyle.sty
project/
makefile
project.tex
et met \usepackage{mystyle}
dans le préambule de project.tex
. Compilation project.tex
manuellement ne fonctionnera pas, bien sûr, car mystyle.sty
n'est pas dans le même répertoire que project.tex
.
Cependant, si makefile
contient quelque chose comme:
project.pdf: mystyle.sty project.tex
pdflatex project
mystyle.sty: ../mystyle.sty
cp ../$@ $@
puis en exécutant make
à partir du répertoire project
, mystyle.sty
à copier au bon endroit avant project.tex
est (cette fois avec succès) compilé.
Cette façon peut sembler un peu exagérée, mais elle combine les meilleures fonctionnalités d'autres méthodes.
mystyle.sty
ayant alors une commune mystyle.sty
s'asseoir au-dessus d'eux a plus de sens que d'avoir une copie dans chaque répertoire de projet; toutes ces copies devraient être conservées.mystyle.sty
et project.tex
alors je serais (en théorie du moins) capable de compiler manuellement sans avoir à modifier les fichiers que vous m'avez donnés. Par exemple, je n'aurais pas à remplacer \usepackage{/your/path/mystyle}
avec \usepackage{/my/path/mystyle}
.Vous pouvez utiliser les Makefiles comme suggéré ci-dessus. Une autre option est CMake. Je n'ai pas testé les répertoires parents.
Si vous avez la structure de fichiers suivante:
├── CMakeLists.txt
├── cmake
│ └── UseLATEX.cmake
├── img
│ └── logo.jpg
├── lib
│ └── framed.sty
└── main.tex
vous devriez avoir CMake installé, des instructions sur ressources CMake
UseLATEX.cmake peut être téléchargé depuis ici
puis à l'intérieur du CMakeLists.txt
╚═$ cat CMakeLists.txt
cmake_minimum_required (VERSION 2.6)
set(PROJECT_NAME_STR myProject)
project(${PROJECT_NAME_STR})
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
include(UseLATEX)
ADD_LATEX_DOCUMENT(main.tex
IMAGE_DIRS img
DEFAULT_PDF
MANGLE_TARGET_NAMES)
Quelques exemples de contenu pour main.tex (notez l'image)
╚═$ cat main.tex
\documentclass{report}
\begin{document}
\begin{center}
\includegraphics[width=300px]{img/logo.jpg}
\end{center}
\end{document}
Le répertoire lib contient les fichiers * .sty
Vous pouvez maintenant compiler:
cd /directory/that/has/CMakeLists.txt/
mkdir build
cd build
cmake ..
make
vous pouvez ensuite afficher main.pdf qui se trouve dans le répertoire de construction.
Lorsque vous utilisez la distribution TeX qui utilise kpathsea , vous pouvez utiliser la variable d'environnement TEXINPUTS
pour spécifier où TeX recherche les fichiers. La variable doit être utilisée de la manière suivante.
Les chemins dans TEXINPUTS
sont séparés par :
. Un chemin vide comprendra les chemins de recherche par défaut, c'est-à-dire juste les deux points. Deux barres obliques consécutives signifient que le répertoire et tous les sous-répertoires sont recherchés.
Ainsi, par exemple, pour créer un fichier document.pdf
qui utilise les fichiers du répertoire courant, tous les sous-répertoires du répertoire resources
et les répertoires par défaut, vous pouvez utiliser le Makefile suivant.
document.pdf: document.tex
TEXINPUTS=.:./resources//: pdflatex document.tex
Pour accélérer la recherche de nom de fichier, vous pouvez créer un ls-R
base de données à l'aide de la commande mktexlsr
.
Pour tous les détails sur kpathsea, jetez un œil au manuel .