summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/bxorigcapt/bxorigcapt.sty
diff options
context:
space:
mode:
Diffstat (limited to 'macros/latex/contrib/bxorigcapt/bxorigcapt.sty')
-rw-r--r--macros/latex/contrib/bxorigcapt/bxorigcapt.sty154
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