diff options
Diffstat (limited to 'macros/latex/contrib/bxorigcapt/bxorigcapt.sty')
-rw-r--r-- | macros/latex/contrib/bxorigcapt/bxorigcapt.sty | 154 |
1 files changed, 57 insertions, 97 deletions
diff --git a/macros/latex/contrib/bxorigcapt/bxorigcapt.sty b/macros/latex/contrib/bxorigcapt/bxorigcapt.sty index 14faeccb3a..7baf67ec5a 100644 --- a/macros/latex/contrib/bxorigcapt/bxorigcapt.sty +++ b/macros/latex/contrib/bxorigcapt/bxorigcapt.sty @@ -10,9 +10,9 @@ %% package declaration \NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{bxorigcapt}[2022/03/12 v0.4] +\ProvidesPackage{bxorigcapt}[2022/04/10 v1.0] \def\bxoc@pkgname{bxorigcapt} -\providecommand*\bxDebug[1]{} +\providecommand\bxDebug[1]{} %% code guard \edef\bxoc@restore@codes{% @@ -42,10 +42,17 @@ \let\bxoc@warn@or@info\PackageInfo %% handle options -% 'warn' +% 'warn'/'nowarn' \DeclareOption{warn}{% \let\bxoc@warn@or@info\PackageWarning } +\DeclareOption{nowarn}{% + \let\bxoc@warn@or@info\PackageInfo +} +% 'main' +\DeclareOption{main}{% + \let\bxoc@target@lang\relax +} % language options \DeclareOption*{% \edef\bxoc@target@lang{\CurrentOption}% @@ -57,45 +64,15 @@ %--------------------------------------- environment -%% switch 'bxoc@etoolbox@available' -\newif\ifbxoc@etoolbox@available -%% switch 'bxoc@polyglossia@available' -\newif\ifbxoc@polyglossia@available -\begingroup - \def\bxoc@next#1{% - \edef\bxoc@tmpa{\string#1}\edef\bxoc@tmpb{\meaning#1}% - \ifx\bxoc@tmpa\bxoc@tmpb \@tempswatrue \fi - } - %% set 'bxoc@etoolbox@available' - \@tempswafalse - \bxoc@next\eTeXversion - \if@tempswa - \IfFileExists{etoolbox.sty}{}{\@tempswafalse} - \fi - \if@tempswa - \bxDebug{etoolbox is available} - \global\bxoc@etoolbox@availabletrue - %% set 'bxoc@polyglossia@available' - \@tempswafalse - \bxoc@next\XeTeXversion - \bxoc@next\luatexversion - \if@tempswa - \IfFileExists{polyglossia.sty}{}{\@tempswafalse} - \fi - \if@tempswa - \bxDebug{Polyglossia is available} - \global\bxoc@polyglossia@availabletrue - \fi - \fi -\endgroup +%% packages +\RequirePackage{etoolbox}[2011/01/03]% v2.1 +\ifx\numdef\@undefined % etoolbox is aborted + \PackageWarningNoLine + {Package loading is aborted} +\expandafter\endinput\fi\relax %--------------------------------------- general -%% packages -\ifbxoc@etoolbox@available - \RequirePackage{etoolbox}\relax -\fi - %% \bxoc@name@list % The list of caption names. \@onlypreamble\bxoc@name@list @@ -116,7 +93,8 @@ %%<+> \bxorigcaptDeprecateCommand{<csname>,...} \@onlypreamble\bxorigcaptDeprecateCommand \newcommand*\bxorigcaptDeprecateCommand[1]{% - \edef\bxoc@deprecated@ldf@list{\bxoc@deprecated@ldf@list,#1}} + \eappto\bxoc@deprecated@ldf@list{,#1}% +} %--------------------------------------- hook @@ -133,7 +111,8 @@ {Both Babel and Polyglossia are loaded!\MessageBreak Such usage is not supported}% {All the function of \bxoc@pkgname\space - is invalidated.\MessageBreak\@ehc}% + is invalidated.\MessageBreak + \@ehc}% % annihilate \let\bxoc@babel@hook\relax \let\bxoc@check@conflict\relax @@ -157,36 +136,21 @@ \@onlypreamble\bxoc@babel@hook \let\bxoc@babel@hook\@empty \bxoc@if@babel@or@polyglossia@loaded{% - \ifbxoc@etoolbox@available - \AtEndPreamble{% + \AtEndPreamble{% + \bxoc@check@conflict + \bxoc@babel@hook + }% +}{%else + \AtEndPreamble{% + \bxoc@if@babel@or@polyglossia@loaded{% \bxoc@check@conflict \bxoc@babel@hook + }{%else + \bxoc@warn@or@info\bxoc@pkgname + {Neither Polyglossia nor Babel is\MessageBreak + loaded, reported}% }% - \else - \AtEndOfPackage{\bxoc@babel@hook}% - \fi -}{%else - \ifbxoc@etoolbox@available - \AtEndPreamble{% - \bxoc@if@babel@or@polyglossia@loaded{% - \bxoc@check@conflict - \bxoc@babel@hook - }{%else - \bxoc@warn@or@info\bxoc@pkgname - {Neither Polyglossia nor Babel is\MessageBreak - loaded, reported}% - }% - }% - \else - \AtBeginDocument{% - \@ifpackageloaded{babel}{% - \bxoc@babel@hook - }{%else - \bxoc@warn@or@info\bxoc@pkgname - {Babel is not loaded,\MessageBreak reported}% - }% - }% - \fi + }% } %--------------------------------------- deprecated ldf stuffs @@ -196,11 +160,11 @@ \def\bxoc@clear@deprecated@ldf{% \begingroup \@for\bxoc@tmpa:=\bxoc@deprecated@ldf@list\do{% - \ifx\@bxoc@tmpa\@empty\else - \expandafter\ifx\csname \bxoc@tmpa\endcsname\relax\else + \ifx\bxoc@tmpa\@empty\else + \ifcsdef{\bxoc@tmpa}{% \bxDebug{Smashed \@backslashchar\bxoc@tmpa}% - \global\expandafter\let\csname\bxoc@tmpa\endcsname\@empty - \fi + \global\cslet{\bxoc@tmpa}\@empty + }{}% \fi }% \endgroup @@ -209,7 +173,7 @@ \@onlypreamble\bxoc@clear@deprecated@ldf@a \def\bxoc@clear@deprecated@ldf@a{% \global\let\bxoc@clear@deprecated@ldf@a\relax - \gdef\bxorigcaptDeprecateCommand##1{% + \gdef\bxorigcaptDeprecateCommand##1{% modified \edef\bxoc@deprecated@ldf@list{##1}% \bxoc@clear@deprecated@ldf}} \g@addto@macro\bxoc@babel@hook{\bxoc@clear@deprecated@ldf} @@ -229,13 +193,13 @@ \@for\bxoc@tmpa:=\bxoc@name@list\do{% \edef\bxoc@next{% \noexpand\g@addto@macro\noexpand\bxoc@save@captions{% - \let\expandafter\noexpand\csname bxoc@@\bxoc@tmpa name\endcsname - \expandafter\noexpand\csname\bxoc@tmpa name\endcsname}% + \let\expandonce{\csname bxoc@@\bxoc@tmpa name\endcsname}% + \expandonce{\csname\bxoc@tmpa name\endcsname}}% }\bxoc@next \edef\bxoc@next{% \noexpand\g@addto@macro\noexpand\bxoc@restore@captions{% - \let\expandafter\noexpand\csname \bxoc@tmpa name\endcsname - \expandafter\noexpand\csname bxoc@@\bxoc@tmpa name\endcsname}% + \let\expandonce{\csname\bxoc@tmpa name\endcsname}% + \expandonce{\csname bxoc@@\bxoc@tmpa name\endcsname}}% }\bxoc@next } \endgroup @@ -258,31 +222,27 @@ \PackageError\bxoc@pkgname {The main language is not set}% {\@ehc}% - \def\bxoc@target@lang{?bxoc} - \@namedef{date\bxoc@target@lang}{}% + \def\bxoc@target@lang{?bxoc}% + \cslet{date\bxoc@target@lang}\@empty \fi \fi \bxDebug{target language = \bxoc@target@lang}% - \expandafter\ifx\csname date\bxoc@target@lang\endcsname\relax + \ifcsundef{date\bxoc@target@lang}{% \PackageError\bxoc@pkgname {Language '\bxoc@target@lang' not defined}% - \@ehc - \@namedef{date\bxoc@target@lang}{}% - \fi - \expandafter\ifx\csname captions\bxoc@target@lang\endcsname\relax - \@namedef{captions\bxoc@target@lang}{}% - \fi - \expandafter\g@addto@macro\csname date\bxoc@target@lang\endcsname{% - \bxoc@restore@date}% - \expandafter\g@addto@macro\csname captions\bxoc@target@lang\endcsname{% - \bxoc@restore@captions}% - \ifbxoc@etoolbox@available - % do not do 'ensure'! - \ifcsundef{bbl@e@\bxoc@target@lang}{}{%else - \bxDebug{ensure for \bxoc@target@lang\space invalidated}% - \csundef{bbl@e@\bxoc@target@lang}% - }% - \fi + {\@ehc}% + \cslet{date\bxoc@target@lang}\@empty + }{}% + \ifcsundef{captions\bxoc@target@lang}{% + \cslet{captions\bxoc@target@lang}\@empty + }{}% + \csappto{date\bxoc@target@lang}{\bxoc@restore@date}% + \csappto{captions\bxoc@target@lang}{\bxoc@restore@captions}% + % do not do 'ensure'! + \ifcsundef{bbl@e@\bxoc@target@lang}{}{%else + \bxDebug{ensure for \bxoc@target@lang\space invalidated}% + \csundef{bbl@e@\bxoc@target@lang}% + }% } %% Saves the current captions |