如何将 ocg-p 与 LuaLaTeX(TeXlive 2015)一起使用?

如何将 ocg-p 与 LuaLaTeX(TeXlive 2015)一起使用?

如果我编译以下 MWE

\documentclass{scrartcl} 
\usepackage{ocg-p}%Layers
\begin{document}
\end{document}

使用 luaLaTeX 时,它会停止并出现以下错误:

! Package ocg-p Error: pdfeTeX, version >= 1.20, required.

ocg-p 软件包仅支持 pdflatex 和 xelatex,但在过去(TeXLive 2014)我将它与 luaLaTeX 结合使用没有任何问题。

我需要 ocg-p 和 luaLaTeX 的组合。

ocg-p-包其本身自 2013 年以来没有变化,因此对 pdfeTeX 版本的检查在之前的版本中已经存在。

答案1

软件包可以作为、和软件包ocgx2的替代品。ocg-pocgocgx

自述与其他软件包相比,有修复和添加。

\documentclass{scrartcl}
%\documentclass[dvipdfmx]{scrartcl}

\usepackage{ocgx2} %pdflatex, lualatex, xelatex, latex+dvips+ps2pdf

\begin{document}

%same interface as ocg.sty, ocg-p.sty, ocgx.sty
\begin{ocg}{hello}{hello}{1}
  \strut Hello!
\end{ocg}
\begin{ocg}{good bye}{good bye}{0}
  \strut Good bye!
\end{ocg}

\toggleocgs{hello {good bye}}{\fbox{Toggle visibility}} %ocg-p
%\switchocg{hello {good bye}}{\fbox{Toggle visibility}} %ocgx

\end{document}

答案2

快速帮助:将 pdftexversion-number 设置为预期值。

\documentclass{scrartcl} 
\def\pdftexversion{120}
\usepackage{ocg-p}%Layers

\begin{document}
\end{document}

背景:

ocg-p 进行以下检查:

\RequirePackage{ifpdf}
\RequirePackage{ifxetex}
[...]
\ifpdf
  \ifnum\pdftexversion<120
    \PackageError{ocg-p}{%
      pdfeTeX, version >= 1.20, required%
    }{%
       Install a newer version!%
    }%
  \fi
\else
  \ifxetex
     %already ok 
  \else
    % dvips
    \@ocgp@ifpstrue
    \PackageWarningNoLine{ocg-p}{%
      Only XeLaTeX and pdfLaTeX are supported%
    }%
  \fi
\fi

过去,lualatex 79 设置了 pdftexversion 200。从 TeXlive 2015 开始,该值设置为 lualatexversion 的值(实际上是 80)。因此,此检查失败,您会收到错误。

将来pdftexversion 将不会被定义。


如果有人在其他软件包中遇到类似问题。版本检查可以修改为:

\RequirePackage{ifpdf}
\RequirePackage{ifxetex}
\RequirePackage{ifluatex}

%....

\ifluatex
  %already ok (tested with luatexversion ...)
\else
  \ifpdf
    \ifnum\pdftexversion<120
      \PackageError{ocg-p}{%
        pdfeTeX, version >= 1.20, required%
      }{%
         Install a newer version!%
      }%
    \fi
  \else
    \ifxetex
       %already ok 
    \else
      % dvips
      \@ocgp@ifpstrue
      \PackageWarningNoLine{ocg-p}{%
        Only XeLaTeX and pdfLaTeX are supported%
      }%
    \fi
  \fi
\fi

相关内容