使用基本 TexLive 安裝時 LuaLaTex 和 pst 條碼出現「invalidfont」錯誤

使用基本 TexLive 安裝時 LuaLaTex 和 pst 條碼出現「invalidfont」錯誤

我正在嘗試為 docker 容器進行最小化的 TexLive 安裝,以最大限度地降低雲端成本。我的網頁應用程式使用 UPC 代碼建立產品包裝標籤。在我的 docker 容器中,產生 UPC 程式碼時出現「invalidfont」錯誤。我確信這是由於缺少軟體包依賴項而引起的問題,因為它使用我本地的完整 LaTex 安裝完美地進行了編譯。關於我可能會錯過什麼有什麼想法嗎?或者有沒有辦法準確找出哪些套件用於成功編譯 TEX 文件,以便我只能將它們安裝在我的容器中?

這是我的 Dockerfile 中的最小安裝腳本。您可以看到,除了最小安裝(「scheme-basic」)之外,我還使用 tlmgr 安裝 fontspec、pst-barcode、pstricks、xcolor、xkeyval、pgf、luapstricks、pst-tools、marginnote 和 voicetic:

# Use the most up-to-date version of Ubuntu LTS
FROM ubuntu:22.04

# Install necessary system utilities
RUN apt-get update && \
    apt-get install --no-install-recommends -y \
        wget \
        perl \
        python3 python3-pip python3-dev python3-venv \
        fontconfig \
        ghostscript && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Download and install TeX Live
RUN wget https://mirror.ctan.org/systems/texlive/tlnet/install-tl-unx.tar.gz && \
    tar -xzf install-tl-unx.tar.gz && \
    cd install-tl-* && \
    echo "selected_scheme scheme-basic" > texlive.profile && \
    ./install-tl -profile texlive.profile && \
    cd .. && \
    rm -rf install-tl* install-tl-unx.tar.gz

# Set the PATH to include the TeX Live binaries
ENV PATH="/usr/local/texlive/2024/bin/aarch64-linux:${PATH}"

# Install missing LaTex packages
RUN tlmgr update --self --all
RUN tlmgr install fontspec pst-barcode pstricks xcolor xkeyval pgf luapstricks pst-tools marginnote phonetic

# Set the working directory to root's home directory
WORKDIR /root

# Copy the fonts and images directories and TEX file
COPY fonts /root/fonts
COPY img /root/img
COPY label.tex /root/label.tex

# Move and cache fonts
RUN mkdir -p /usr/share/fonts/custom && \
    cp /root/fonts/*.otf /usr/share/fonts/custom/ && \
    fc-cache -fv
RUN ls -la /usr/share/fonts/custom
RUN fc-list

# Expose the port the app runs on
ENV PORT 8080
ENV HOST 0.0.0.0
EXPOSE 8080

# Use the virtual environment's Python as the default
ENV PATH="/root/venv/bin:$PATH"

# Define the command to run the app
CMD ["lualatex", "label.tex"]

這是我的 label.tex 檔案。您將看到我有三個實例,psbarcode但只有第一個包含在tikzpicture拋出錯誤:

\documentclass{article}
\usepackage{fontspec}

\setlength\parindent{0pt}
\usepackage{pst-barcode}
\usepackage{phonetic}
\usepackage{geometry}
\usepackage{graphicx}
\usepackage{tikz}
\geometry{paperwidth=4in, paperheight=2in, top=-0.5in, bottom=0.125in, left=0.125in, right=0.125in}

\renewcommand{\textsuperscript}[1]{\raisebox{0.8ex}{\scalebox{0.66}{#1}}}

\begin{document}

\fontsize{7pt}{8pt}\selectfont
\textbf{Company{\sffamily\textregistered} Product\\
Designed by Company\\
Assembled in USA\\
Model MP1
}

\begin{figure}
\begin{tikzpicture}[overlay, remember picture]
\node[xshift=-1.5in,yshift=-0.45in] at (current page.north east) {\psbarcode{196852002825}{includetext width=1.3 height=0.35 textsize=9 textyoffset=-2 textxoffset=-6}{upca}};
\end{tikzpicture}
\end{figure}

\vspace{0.075in}

\textbf{(A) Serial No. A12345678\\
}
\begin{pspicture}(0,0.35in)
\psbarcode{A12345678}{width=0.31 height=0.31}{qrcode}
\end{pspicture}

\vspace{0.075in}

\textbf{(B) Serial No. B12345678\\
}
\begin{pspicture}(0,0.35in)
\psbarcode{B12345678}{width=0.31 height=0.31}{qrcode}
\end{pspicture}

\vfill
\mbox{}\hfill \textbf{\textcopyright 2024 Company All rights reserved.}


\end{document}

這是我的錯誤:

[1! luapstricks:從「./label l-docker.tex:29」執行 PS 程式碼時發生「invalidfont」錯誤。 ……不是:N \tex_shipout:D
\box_use:N \l_shipout_box
_Shipout_drop_firstpage

l.60 \end{文檔}
? !緊急停車。 ……不是:N \tex_shipout:D \box_use:N \l_shipout_box
_Shipout_drop_firstpage

l.60\end{文檔}。仍在使用的節點記憶體有 5544 個字:80 hlist、14 vlist、1 條規則、14 個光碟、10 個 local_par、1 個目錄、182 個膠水、41.
kern、43 個罰分、271 個字形、 90 個屬性、57 個膠水規格、90. attribute_list、 1 個 temp、2 個 if_stack、4 個 write、2 個 save_pos、18 個 Late_lua、
34 個pdf_literal、14 個pdf_colorstack 節點可用列表:2:33,5: 2,10:4
! ==> 發生致命錯誤,未產生 PDF 輸出檔!

相關內容