Pdflatex:使用手工制作的样式文件会出现令人意外的错误,而使用根文件中的命令则不会出现任何错误。出了什么问题?

Pdflatex:使用手工制作的样式文件会出现令人意外的错误,而使用根文件中的命令则不会出现任何错误。出了什么问题?

我尝试分析我的书中出现的 $^{+/-}$ 构造中的错误:减号全部显示为星号。因此我准备了一个最小示例:

\documentclass[11pt,a4paper]{scrbook}
%\usepackage{hormonbooktest}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[ngerman]{babel}
\usepackage{stix2}
\DeclareRobustCommand{\heterozyg}{$^{+/-}$}
\DeclareRobustCommand{\homozyg}{$^{+/+}$}
\DeclareRobustCommand{\minuszyg}{$^{-/-}$}
\DeclareRobustCommand{\gs}{$\rightwhitearrow$}
\begin{document}
    (\gs Shh\heterozyg) (\gs Shh\homozyg) (\gs Shh\minuszyg) 
\end{document}

事实证明这是正确的。但是,当我将前言放入样式文件中时,我收到错误:未找到命令 \gs。

样式文件为:

\ProvidesFile{hormonbooktest.sty}[2021/12/01 Bernhard Kleine]
\RequirePackage[ngerman]{babel}
\RequirePackage[utf8]{inputenc}
\RequirePackage[T1]{fontenc}
\RequirePackage{stix2}
\DeclareRobustCommand{\heterozyg}{$^{+/-}$}%heterozygous
\DeclareRobustCommand{\homozyg}{$^{+/+}$}%homozygouspositiv
\DeclareRobustCommand{\minuszyg}{$^{-/-}$}%homozygousnegativ
\DeclareRobustCommand*{\gs}[1]{\hyperlink{#1}{$\rightwhitearrow$#1}}%Verweise ins
%                                                                    Glossar

我想补充一点,原始样式文件太大,无法在 mwe 中显示,但对于星号,将样式文件复制到另一个文件中会出现错误。将样式文件修剪为上面的样式文件仍然有错误。

我正在使用 texstudio(已更新)和相当最新的 texlive。如果有人能向我展示样式文件中的错误,我就可以继续分析错误的星号而不是减号。

答案1

该错误与文件的使用无关.sty

! Undefined control sequence.
\gs  #1->\hyperlink 
                    {#1}{$\rightwhitearrow $#1}
l.5     (\gs Shh\heterozyg) (\gs S
                                  hh\homozyg) (\gs Shh\minuszyg)
? 

因为\hyperlink未定义(因为hyperref尚未加载)。

带有内联声明的文件版本不使用\hyperlink并且不会产生此错误。

相关内容