Comprendre *.sty fichier à partir d'un super/sous-répertoire principal *.fichier tex
Je veux partager un document latex via git avec beaucoup d'autres personnes. Par conséquent, nous avons décidé de mettre tous les fichiers sty spéciaux, qui ne sont pas présents dans everyones latex-installation, dans un répertoire de ressources. Ce serait cool, si ce dir serait un superdir. du répertoire de travail réel Comment puis-je importer ces fichiers de style?
Il est important que même les dépendances de ces styles distants soient résolues avec d'autres styles distants.
3 réponses
, Vous pouvez importer un fichier de style (mystyle.sty
) dans votre document de deux façons:
- Si vous l'avez dans votre chemin ou dans le même dossier que le fichier
.tex
, incluez simplement cette ligne dans votre préambule:\usepackage{mystyle}
- Si vous l'avez dans un dossier différent, vous pouvez y accéder en utilisant son chemin complet comme
\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 le faire git add mystyle.sty
et de le suivre avec le reste de vos fichiers (bien que probablement il n'y aura pas de modifications). Il n'y a pas besoin d'un répertoire parent. Mais si vous insistez sur un répertoire différent, voir l'option 2 ci-dessus.
, Il serait mieux si elle était dans un sous-répertoire que dans un répertoire parent, que vous pouvez toujours appeler le fichier \usepackage{subdir/mystyle}
et être certain que vous appelez 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 paquet, ce qui peut entraîner des erreurs.
Ce n'est probablement plus pertinent pour vous, 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 mettre \usepackage{mystyle}
dans le préambule de project.tex
.
Compiler 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 du type:
project.pdf: mystyle.sty project.tex
pdflatex project
mystyle.sty: ../mystyle.sty
cp ../$@ $@
Ensuite, l'exécution de make
à partir du répertoire project
entraînera la copie de mystyle.sty
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 caractéristiques des autres méthodes.
- Si plusieurs projets dans le même référentiel nécessitent {[5] } alors avoir un
mystyle.sty
commun au - dessus d'eux tous a plus de sens que d'avoir une copie dans chaque répertoire de projet; toutes ces copies devraient être conservées. - la compilation est portable, en ce sens que si vous m'avez donné vos copies de
mystyle.sty
etproject.tex
Ensuite, je serais (en théorie au moins) capable de compiler manuellement sans avoir besoin de 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 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 fichier suivante:
├── CMakeLists.txt
├── cmake
│ └── UseLATEX.cmake
├── img
│ └── logo.jpg
├── lib
│ └── framed.sty
└── main.tex
Vous devriez avoir CMake installé, instructions sur les ressources CMake
UseLATEX.cmake peut être téléchargé à partir de ici
-
Puis à L'intérieur des 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)
-
Un exemple de contenu pour main.tex (note de 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 a l' *.fichiers sty
-
Vous pouvez maintenant compiler:
cd /directory/that/has/CMakeLists.txt/ mkdir build cd build cmake .. make
Vous pouvez ensuite visualiser principal.pdf qui est dans le répertoire de construction.