无法使用 texlive 在 Ubuntu 上的 devops 中运行自己的样式文档

无法使用 texlive 在 Ubuntu 上的 devops 中运行自己的样式文档

我正在尝试使用 Linux 发行版在 DevOps 中设置管道,以使用 texlive 构建 LaTeX 文档。我安装了 texlive,并确认它可以正常工作。但是,我的 latex 文档使用我们的样式文档在所有文档中具有相同的布局,这就是我的问题所在。无论我做什么,texlive 都找不到我的 .sty 文件。

我尝试在 TEXMFHOME 文件夹中注册我的 sty 文件,如以下条目所述:我应该将自己的 .sty 或 .cls 文件放在哪里,以使它们可供我的所有 .tex 文件使用?,但失败了。这是我尝试的脚本:

#!/bin/sh
#Creating comments

#setting TEXMFHOME
texmfhome=$(kpsewhich -var-value=TEXMFHOME)
echo texmfhome: $texmfhome

echo Creating TEXMFHOME/dxpc:
mkdir -p -v $texmfhome/dxcpc   

echo Coping sty document
cp -v pathtostydocument/mystyle.sty $texmfhome/dxcpc/mystyle.sty

echo texhash $texmfhome/dxcpc   
texhash --verbose $texmfhome/dxcpc   

echo Verifying installation:
cd $texmfhome
kpsewhich mystyle.sty

这种方法的奇怪之处在于 TEXMFHOME 指向 /home/vsts/texmf,但 texmf 文件夹不存在,因此我先创建它,并将我的样式文件夹放在名为 dxcpc 的子文件夹中。根据网上的各种页面,这应该意味着我可以跳过 texhash 调用,尽管我无论如何都会这样做。

然后我发现一个 SO 条目,其中指出我可以尝试使用路径导入样式文档:https://stackoverflow.com/questions/5993965/include-sty-file-from-a-super-subdirectory-of-main-tex-file。我的 latex 文件树是这样的:

[Latex]
    - [Extensions]
        - [Ext1]
            - mainpage.tex
    - mystyle.sty

因此我尝试从以下方式更改我在 Latex 中的使用包调用:

\usepackage{myStyle} 

\usepackage{../../myStyle} 

但是 texlive 以同样的方式失败了,尽管出现消息!LaTeX 错误:未找到文件“../../mystyle.sty”。

然后,我还尝试将样式文档移动到与我正在构建的 tex 文档相同的文件夹中。但这以同样的方式失败了。我在这 3 种情况下遇到的错误如下:

/bin/bash --noprofile --norc /home/vsts/work/_temp/1a5a7e0d-09c3-4a75-b462-e2144e715abd.sh
Build Clients Tools readme.txt Starting pdflatex Build Clients Tools readme.txt
This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) (preloaded format=pdflatex)
 restricted \write18 enabled.
entering extended mode

(/pathtolatex/Extensions/Ext1/mainpage.tex
LaTeX2e <2017-04-15>
Babel <3.18> and hyphenation patterns for 3 language(s) loaded.
(/usr/share/texlive/texmf-dist/tex/latex/base/report.cls
Document Class: report 2014/09/29 v1.4h Standard LaTeX document class
(/usr/share/texlive/texmf-dist/tex/latex/base/size10.clo))

! LaTeX Error: File `mystyle.sty' not found.

Type X to quit or <RETURN> to proceed,
or enter new name. (Default extension: sty)

Enter file name: 
! Emergency stop.
<read *> 
Transcript written on "mainpage.log".
Build Clients mainpage.log EGPaymentSolution Tools readme.txt Done pdflatex. Build Clients mainpage.log Tools readme.txt

Finishing: Build mainpage

当我尝试在 Windows 中使用 MiKTeX 使用方案 2 和 3 构建文档时,没有任何问题,系统按预期构建。如果我删除样式文档并在 DevOps 系统中构建,它运行起来没有问题。在我尝试过的任何情况下,它都不会接受样式文档,我还没有弄清楚为什么或者是否有其他方法可以让它工作。

我在网上查看了一下,想到如果我不将样式文档作为包包含,我可以直接包含它。所以我将导入改为

\输入{../../myStyle.sty}

我的 Windows 上的 miktex 发行版按预期进行了编译,但是 texlive 仍然无法找到该文件:

LaTeX Error: File `../../myStyle.sty' not found.

我开始怀疑我是否可能对 ubuntu 及其执行 texlive build 命令的方式存在更深层次的问题。目前看来它可以很好地获取目标文件,但随后它开始从我的 tex 文档位置以外的其他基本位置进行构建,然后它找不到所需的资源。

我一直在研究 kpathsea 的文档。我读了几页,Tex 在需要查找文件时会将该任务委托给 kpathsea。然后它会尝试查找该文件。我确信我需要以某种形式的路径正确配置它,并且我仍在通过互联网阅读以找出我需要在哪里执行此操作。配置文件有点复杂,但我找到了一些我目前正在研究的页面:

https://www.overleaf.com/learn/latex/Articles/An_introduction_to_Kpathsea_and_how_TeX_engines_search_for_files

https://www.tug.org/texinfohtml/kpathsea.html#Path-searching

http://kirste.userpage.fu-berlin.de/chemnet/use/info/kpathsea/kpathsea_2.html

相关内容