Включите * .sty файл из супер / подкаталога основного * .tex файла - PullRequest
27 голосов
/ 13 мая 2011

Я хочу поделиться латексным документом через git со многими другими людьми.Поэтому мы решили поместить все специальные файлы стилей, которые отсутствуют во всякой латексной установке, в каталог ресурсов.Было бы круто, если бы этот каталог был супердиром.фактического рабочего каталога Как именно я могу импортировать эти файлы стилей?

Важно, чтобы даже зависимости этих удаленных стилей были разрешены с другими удаленными стилями.

Ответы [ 3 ]

17 голосов
/ 13 мая 2011

Вы можете импортировать файл стиля (mystyle.sty) в ваш документ двумя способами:

  1. Если он находится в вашем пути или в той же папке, что и файл .tex, простовключите эту строку в преамбулу: \usepackage{mystyle}
  2. Если у вас она есть в другой папке, вы можете получить доступ, используя ее полный путь как \usepackage{/path/to/folder/mystyle}

При этом, если выВы не уверены, что файл стилей есть у всех при установке, просто включите его в тот же каталог и убедитесь, что вы делаете git add mystyle.sty и отслеживаете его вместе с остальными вашими файлами (хотя, скорее всего, не произойдет никаких изменений вЭто).Нет необходимости в родительском каталоге.Но если вы настаиваете на другом каталоге, см. Вариант 2 выше.

Было бы лучше, если бы он находился в подкаталоге, чем в родительском каталоге, так как вы все равно можете вызвать файл как \usepackage{subdir/mystyle} и быть увереннымчто вы вызываете свой файл стиля.Однако, если вы выйдете в родительский каталог, вы никогда не узнаете, есть ли у других пользователей папка с аналогичным именем, которая не является частью вашего пакета, что может привести к ошибкам.

7 голосов
/ 16 сентября 2012

Возможно, это больше не относится к вам, но здесь есть другой способ сделать то, что вы хотите. Настройте свой репозиторий git следующим образом:

mystyle.sty
project/
    makefile
    project.tex

и укажите \usepackage{mystyle} в преамбуле project.tex. Конечно, компиляция project.tex вручную не будет работать, потому что mystyle.sty не находится в том же каталоге, что и project.tex.

Однако, если makefile содержит что-то вроде:

project.pdf: mystyle.sty project.tex
    pdflatex project

mystyle.sty: ../mystyle.sty
    cp ../$@ $@

затем выполнение make из каталога project приведет к копированию mystyle.sty в правильное место до того, как project.tex (на этот раз успешно) будет скомпилировано.

Этот способ может показаться немного чрезмерным, но он сочетает в себе лучшие черты других методов.

  1. Если для нескольких проектов в одном и том же репозитории требуется mystyle.sty, то наличие общего mystyle.sty, расположенного над ними, имеет больше смысла, чем наличие копии в каждом каталоге проектов; все эти копии должны быть сохранены.
  2. Компиляция переносная, в том смысле, что если бы вы дали мне свои копии mystyle.sty и project.tex, то я (по крайней мере, в теории) мог бы скомпилировать вручную без необходимости изменять файлы, которые вы мне дали. Например, мне не пришлось бы заменять \usepackage{/your/path/mystyle} на \usepackage{/my/path/mystyle}.
3 голосов
/ 12 декабря 2013

Вы можете использовать Makefiles как предложено выше.Другой вариант - CMake.Я не проверял родительские каталоги.

Если у вас следующая файловая структура:

    ├── CMakeLists.txt
    ├── cmake
    │   └── UseLATEX.cmake
    ├── img
    │   └── logo.jpg
    ├── lib
    │   └── framed.sty
    └── main.tex
  • у вас должен быть установлен CMake, инструкции по ресурсам CMake

  • UseLATEX.cmake можно загрузить с здесь

  • , затем внутри 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)
    
  • Некоторые примеры содержимого для main.tex (обратите внимание на изображение)

    ╚═$ cat main.tex
    \documentclass{report}
    
    \begin{document}
    
    \begin{center}
      \includegraphics[width=300px]{img/logo.jpg}
    \end{center}
    
    \end{document}
    
  • В каталоге lib есть файлы * .sty

  • Теперь вы можете скомпилировать:

    cd /directory/that/has/CMakeLists.txt/
    mkdir build
    cd build
    cmake ..
    make
    
  • , затем вы можете просмотреть main.pdf, который находится в каталоге сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...