Sophanatprime / cus

CusTeX
8 stars 4 forks source link

修改模块和库文件所在路径 #19

Closed xkwxdyy closed 1 month ago

xkwxdyy commented 1 month ago

目前的 \CUSLoadModule\CUSLoadLibrary 的检测貌似都是检测主 .tex 文件所在目录下是否存在文件。

但是随之模块和库文件越来越多,如果他们都还是放在主文件的话,视觉上文件就太多了,可能需要新建一个目录来存放模块和库(或者建立两个目录来分别存放)。

但是这样的话在检测的时候可能就会出问题,可能需要您写接口来处理这个问题了

Sophanatprime commented 1 month ago

一般这些文件都是直接放在 ~/texmf-dist/tex/latex~/texmf-local/tex/latex 目录下,放在它们的任何子目录下 TeX 都能找到。另外也可以在加载它们之前设置 \input@path\l_file_search_path_seqcus 是会自动查找这些路径的(不过会有警告就是了)。

xkwxdyy commented 1 month ago

好的谢谢您,我晚上试试。主要是我在基于 cus 开发一个论文模版,放在 /textmf-… 的目录对一般用户要求有点高了,大部分用户的需求都是即开即用,如果以前接触过 LaTeX 的话还好,一些用户甚至第一次接触 cmd 啥的。

xkwxdyy commented 1 month ago

一般这些文件都是直接放在 ~/texmf-dist/tex/latex~/texmf-local/tex/latex 目录下,放在它们的任何子目录下 TeX 都能找到。另外也可以在加载它们之前设置 \input@path\l_file_search_path_seqcus 是会自动查找这些路径的(不过会有警告就是了)。

请问一下这两个要怎么用呢?我查了一下 source3.pdf 但里面没有给例子。查了一下 tex.se 里面有一个 \seq_put_right:Nx \l_file_search_path_seq { \c_tilde_str \exp_not:n { /path/to/some/place } }

但是比如我在 whuthesis.cls 里面调用了 cus.sty,我把模块放在了 whuthesis.cls 同级的 module 目录下,库放在了 library 目录下,那我在模块里应该写什么呢?\seq_put_right:Nx \l_file_search_path_seq { ./module } 吗?

xkwxdyy commented 1 month ago

刚试了一下,好像把 \seq_put_right:Nx \l_file_search_path_seq { ./library } 放在 \Requirepackage{cus} 前就行?

Sophanatprime commented 1 month ago

刚试了一下,好像把 \seq_put_right:Nx \l_file_search_path_seq { ./library } 放在 \Requirepackage{cus} 前就行?

对。

\seq_put_right:Nx \l_file_search_path_seq { ./module }
\seq_put_right:Nx \l_file_search_path_seq { ./library }
...
\RequirePackage{cus}

这样即可。另外,如果不是在 TDS 目录和工作目录发现的 .sty .cls 文件,会报警告,.tex 文件不会。

xkwxdyy commented 1 month ago

好的,感谢。

关于这个路径,还有个问题,就是 cus 项目是依赖您另一个 lt3ekeys 项目的,lt3ekeys 项目后续应该会上传到 CTAN?不然如果要调用的话还需要手动安装,或者是把 lt3ekeys 项目和模板放在一起才行,更新上也会有一些不便。

Sophanatprime commented 1 month ago

lt3ekeys kit 的核心——lt3ekeys.sty 还没有完成,完成后才会上传到 ctan。