我想通過git與許多其他人共享乳膠文檔。 因此,我們決定將所有特殊的sty文件放入資源目錄中,這些文件並不存在於每個人的latex-installation中。如果這個目錄是超級目錄,這將是很酷的。的實際工作目錄 如何導入這些樣式文件?從主* .tex文件的超/子目錄中包含* .sty文件
即使這些遠程樣式的依賴關係也可以用其他遠程樣式解決,這一點很重要。
我想通過git與許多其他人共享乳膠文檔。 因此,我們決定將所有特殊的sty文件放入資源目錄中,這些文件並不存在於每個人的latex-installation中。如果這個目錄是超級目錄,這將是很酷的。的實際工作目錄 如何導入這些樣式文件?從主* .tex文件的超/子目錄中包含* .sty文件
即使這些遠程樣式的依賴關係也可以用其他遠程樣式解決,這一點很重要。
您可以導入樣式文件(mystyle.sty
)插入到文檔中有兩種方式:
.tex
文件,只需在你序言這條線:\usepackage{mystyle}
\usepackage{/path/to/folder/mystyle}
這就是說,如果你不知道,如果樣式文件是在每個人的installati只需將其包含在同一個目錄中,並確保您執行了git add mystyle.sty
並跟蹤其中的其他文件(儘管很可能不會有任何更改)。不需要父目錄。但是如果你堅持不同的目錄,請參閱上面的選項2。
如果它位於子目錄中而不是父目錄中,則仍然可以更好,因爲您仍然可以將該文件調用爲\usepackage{subdir/mystyle}
,並確定您正在調用您的樣式文件。但是,如果您逃離到父目錄,則永遠不知道其他用戶是否具有不屬於您包的一部分的類似命名的文件夾,這可能會導致錯誤。
這可能與您無關,但這裏有另一種方法可以做您想做的事。 設置您的Git倉庫這樣的:
mystyle.sty
project/
makefile
project.tex
並在project.tex
序言把\usepackage{mystyle}
。 手動編譯project.tex
當然不起作用,因爲mystyle.sty
與project.tex
不在同一個目錄中。
但是,如果makefile
包含沿着線的東西:
project.pdf: mystyle.sty project.tex
pdflatex project
mystyle.sty: ../mystyle.sty
cp ../[email protected] [email protected]
然後從project
目錄中運行make
會導致mystyle.sty
被複制到正確的位置project.tex
之前(這一次成功)編譯。
這種方式可能看起來有點超過頂端,但它確實結合了其他方法的最佳功能。
mystyle.sty
然後有一個共同的mystyle.sty
坐在上面所有這些使得不必在每個項目目錄拷貝更有意義;所有這些副本都必須保留。mystyle.sty
和project.tex
的副本,那麼我將(至少在理論上)能夠手動編譯而不需要修改你給我的文件。例如,我不需要用\usepackage{/my/path/mystyle}
代替\usepackage{/your/path/mystyle}
。我會使用符號鏈接而不是直接複製文件。 – 2017-03-06 02:02:29
您可以按照上面的建議使用Makefiles。另一種選擇是CMake。我沒有測試父目錄。
如果您有以下文件結構:
├── CMakeLists.txt
├── cmake
│ └── UseLATEX.cmake
├── img
│ └── logo.jpg
├── lib
│ └── framed.sty
└── main.tex
你應該安裝CMake的,說明書上CMake resources
UseLATEX.cmake可以從here
然後下載在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
然後,您可以查看build.pub文件中的main.pdf文件。
這是否應該與'\ documentclass'一起使用?我似乎無法加載位於我的主要.tex文件的子文件夾中的類文件。 – 2016-06-12 19:37:30
由[由David Carlisle指出](http://tex.stackexchange.com/a/124013/6903),'\ usepackage {/ path/to/folder/mystyle}'工作的事實是由於缺乏錯誤檢查。 '\ usepackage {}'的參數應該是一個名稱而不是一個路徑,所以2.並不是一個好的選擇。 – mforbes 2016-07-26 20:43:21