summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/bxorigcapt
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2022-08-01 03:04:31 +0000
committerNorbert Preining <norbert@preining.info>2022-08-01 03:04:31 +0000
commitc7ecdfe2e07e2e010de5e2a8d94c001c5dc9fc27 (patch)
tree80bdca45c628ce054648b8b6adc4c97d21bd48bb /macros/latex/contrib/bxorigcapt
parent0d7064c66024537b237407f8b36413b055cf9a9a (diff)
CTAN sync 202208010304
Diffstat (limited to 'macros/latex/contrib/bxorigcapt')
-rw-r--r--macros/latex/contrib/bxorigcapt/LICENSE21
-rw-r--r--macros/latex/contrib/bxorigcapt/README.md56
-rw-r--r--macros/latex/contrib/bxorigcapt/bxorigcapt.pdfbin0 -> 256321 bytes
-rw-r--r--macros/latex/contrib/bxorigcapt/bxorigcapt.sty255
-rw-r--r--macros/latex/contrib/bxorigcapt/bxorigcapt.tex112
5 files changed, 444 insertions, 0 deletions
diff --git a/macros/latex/contrib/bxorigcapt/LICENSE b/macros/latex/contrib/bxorigcapt/LICENSE
new file mode 100644
index 0000000000..b9164b46b1
--- /dev/null
+++ b/macros/latex/contrib/bxorigcapt/LICENSE
@@ -0,0 +1,21 @@
+The MIT License
+
+Copyright (c) 2016-2022 Takayuki YATO (aka. "ZR")
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
diff --git a/macros/latex/contrib/bxorigcapt/README.md b/macros/latex/contrib/bxorigcapt/README.md
new file mode 100644
index 0000000000..a17c825fad
--- /dev/null
+++ b/macros/latex/contrib/bxorigcapt/README.md
@@ -0,0 +1,56 @@
+BXorigcapt Package
+==================
+
+LaTeX: To retain the original caption names when using Babel
+
+This package forces the caption names (`\chaptername`, `\today`, etc)
+declared by the document class in use to be used as the caption names
+for a specific language introduced by the Babel package.
+
+Starting from version 0.3, this package also supports Polyglossia.
+
+### System requirement
+
+ * TeX format: LaTeX.
+ * TeX engine: Any engine with e-TeX extension.
+ * Dependent packages:
+ - babel or polyglossia
+ - etoolbox v2.1+
+
+### Installation
+
+ - `*.sty` → $TEXMF/tex/latex/BXorigcapt
+
+### License
+
+This package is distributed under the MIT License.
+
+
+The bxorigcapt Package
+----------------------
+
+See the manual bxorigcapt.pdf for detail.
+
+
+Revision History
+----------------
+
+ * Version 1.0 〈2022/04/10〉
+ - Now e-TeX and etoolbox are required.
+ - Add option `main`.
+ * Version 0.4a 〈2022/04/08〉
+ - Add option `nowarn`.
+ - Bug fix.
+ * Version 0.4 〈2022/03/12〉
+ - Adjustment for new version of Babel.
+ - Add option `warn`.
+ * Version 0.3 〈2018/09/05〉
+ - Add support for Polyglossia.
+ * Version 0.2a 〈2017/05/03〉
+ - Minor fix.
+ * Version 0.2 〈2016/04/01〉
+ - The first public version.
+
+--------------------
+Takayuki YATO (aka. "ZR")
+https://github.com/zr-tex8r
diff --git a/macros/latex/contrib/bxorigcapt/bxorigcapt.pdf b/macros/latex/contrib/bxorigcapt/bxorigcapt.pdf
new file mode 100644
index 0000000000..8206ebbd69
--- /dev/null
+++ b/macros/latex/contrib/bxorigcapt/bxorigcapt.pdf
Binary files differ
diff --git a/macros/latex/contrib/bxorigcapt/bxorigcapt.sty b/macros/latex/contrib/bxorigcapt/bxorigcapt.sty
new file mode 100644
index 0000000000..7baf67ec5a
--- /dev/null
+++ b/macros/latex/contrib/bxorigcapt/bxorigcapt.sty
@@ -0,0 +1,255 @@
+%%
+%% This is file 'bxorigcapt.sty'.
+%%
+%% Copyright (c) 2016-2022 Takayuki YATO (aka. "ZR")
+%% GitHub: https://github.com/zr-tex8r
+%% Twitter: @zr_tex8r
+%%
+%% This package is distributed under the MIT License.
+%%
+
+%% package declaration
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{bxorigcapt}[2022/04/10 v1.0]
+\def\bxoc@pkgname{bxorigcapt}
+\providecommand\bxDebug[1]{}
+
+%% code guard
+\edef\bxoc@restore@codes{%
+\catcode33=\the\catcode33%
+\catcode39=\the\catcode39%
+\catcode46=\the\catcode46%
+\catcode47=\the\catcode47%
+\catcode58=\the\catcode58%
+\catcode63=\the\catcode63%
+\relax}
+\catcode33=12 % <!>
+\catcode39=12 % <'>
+\catcode46=12 % <.>
+\catcode47=12 % </>
+\catcode58=12 % <:>
+\catcode63=12 % <?>
+\AtEndOfPackage{%
+\bxoc@restore@codes
+\let\bxoc@restore@codes\relax}
+
+%--------------------------------------- options
+
+%% \bxoc@target@lang
+\let\bxoc@target@lang\relax
+
+%% \bxoc@warn@or@info
+\let\bxoc@warn@or@info\PackageInfo
+
+%% handle options
+% '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}%
+}
+% dispatch
+\ProcessOptions*
+\bxDebug{target language = %
+ \ifx\bxoc@target@lang\relax (main)\else \bxoc@target@lang\fi}
+
+%--------------------------------------- environment
+
+%% packages
+\RequirePackage{etoolbox}[2011/01/03]% v2.1
+\ifx\numdef\@undefined % etoolbox is aborted
+ \PackageWarningNoLine
+ {Package loading is aborted}
+\expandafter\endinput\fi\relax
+
+%--------------------------------------- general
+
+%% \bxoc@name@list
+% The list of caption names.
+\@onlypreamble\bxoc@name@list
+\def\bxoc@name@list{%
+ abstract,also,appendix,author,bib,cc,chapter,contents,%
+ encl,figure,glossary,headto,index,listfigure,listtable,%
+ page,part,preface,proof,ps,ref,seealso,see,subject,table,%
+ prepart,postpart,prechapter,postchapter,presection,postsection%
+}
+
+%% \bxoc@deprecated@ldf@list
+% The list of the names of deprecated commands.
+\@onlypreamble\bxoc@deprecated@ldf@list
+\def\bxoc@deprecated@ldf@list{}
+
+%--------------------------------------- public commands
+
+%%<+> \bxorigcaptDeprecateCommand{<csname>,...}
+\@onlypreamble\bxorigcaptDeprecateCommand
+\newcommand*\bxorigcaptDeprecateCommand[1]{%
+ \eappto\bxoc@deprecated@ldf@list{,#1}%
+}
+
+%--------------------------------------- hook
+
+%% \bxoc@check@conflict
+% Check if both babel and polyglossia are loaded, and then
+% annihilate all the function of this package.
+\@onlypreamble\bxoc@check@conflict
+\def\bxoc@check@conflict{%
+ \@ifpackageloaded{polyglossia}{%
+ %NB. polyglossia marks babel as loaded.
+ \@ifpackageloaded{babel}{%
+ \ifx\bbl@afterelse\@undefined\else % Babel is REALLY loaded
+ \PackageError\bxoc@pkgname
+ {Both Babel and Polyglossia are loaded!\MessageBreak
+ Such usage is not supported}%
+ {All the function of \bxoc@pkgname\space
+ is invalidated.\MessageBreak
+ \@ehc}%
+ % annihilate
+ \let\bxoc@babel@hook\relax
+ \let\bxoc@check@conflict\relax
+ \fi
+ }{}%
+ }{}%
+}
+
+%% \bxoc@if@babel@or@polyglossia@loaded
+\@onlypreamble\bxoc@if@babel@or@polyglossia@loaded
+\def\bxoc@if@babel@or@polyglossia@loaded{%
+ \let\bxoc@next\@secondoftwo
+ \@ifpackageloaded{babel}{\let\bxoc@next\@firstoftwo}{}%
+ \@ifpackageloaded{polyglossia}{\let\bxoc@next\@firstoftwo}{}%
+ \bxoc@next
+}
+
+%% \bxoc@babel@hook
+% Note that \bxoc@babel@hook must be invoked between the loading
+% of babel and the dispatch of babel's begin-document hook.
+\@onlypreamble\bxoc@babel@hook
+\let\bxoc@babel@hook\@empty
+\bxoc@if@babel@or@polyglossia@loaded{%
+ \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}%
+ }%
+ }%
+}
+
+%--------------------------------------- deprecated ldf stuffs
+
+%% \bxoc@clear@deprecated@ldf
+\@onlypreamble\bxoc@clear@deprecated@ldf
+\def\bxoc@clear@deprecated@ldf{%
+ \begingroup
+ \@for\bxoc@tmpa:=\bxoc@deprecated@ldf@list\do{%
+ \ifx\bxoc@tmpa\@empty\else
+ \ifcsdef{\bxoc@tmpa}{%
+ \bxDebug{Smashed \@backslashchar\bxoc@tmpa}%
+ \global\cslet{\bxoc@tmpa}\@empty
+ }{}%
+ \fi
+ }%
+ \endgroup
+ \bxoc@clear@deprecated@ldf@a
+}
+\@onlypreamble\bxoc@clear@deprecated@ldf@a
+\def\bxoc@clear@deprecated@ldf@a{%
+ \global\let\bxoc@clear@deprecated@ldf@a\relax
+ \gdef\bxorigcaptDeprecateCommand##1{% modified
+ \edef\bxoc@deprecated@ldf@list{##1}%
+ \bxoc@clear@deprecated@ldf}}
+\g@addto@macro\bxoc@babel@hook{\bxoc@clear@deprecated@ldf}
+
+%--------------------------------------- save and restore
+
+%% variables
+\let\bxoc@@today\relax
+% \[bxoc@@<caption>name]
+
+%% \bxoc@save@captions
+%% \bxoc@restore@captions
+\@onlypreamble\bxoc@save@captions
+\let\bxoc@save@captions\@empty
+\let\bxoc@restore@captions\@empty
+\begingroup
+ \@for\bxoc@tmpa:=\bxoc@name@list\do{%
+ \edef\bxoc@next{%
+ \noexpand\g@addto@macro\noexpand\bxoc@save@captions{%
+ \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\expandonce{\csname\bxoc@tmpa name\endcsname}%
+ \expandonce{\csname bxoc@@\bxoc@tmpa name\endcsname}}%
+ }\bxoc@next
+ }
+\endgroup
+
+%% \bxoc@restore@date
+\def\bxoc@restore@date{%
+ \let\today\bxoc@@today
+}
+
+%% \bxoc@enable@restore
+\@onlypreamble\bxoc@enable@restore
+\def\bxoc@enable@restore{%
+ \ifx\bxoc@target@lang\relax
+ \@ifpackageloaded{polyglossia}{%
+ \let\bxoc@target@lang\xpg@main@language
+ }{%else
+ \let\bxoc@target@lang\bbl@main@language
+ }%
+ \ifx\bxoc@target@lang\@undefined
+ \PackageError\bxoc@pkgname
+ {The main language is not set}%
+ {\@ehc}%
+ \def\bxoc@target@lang{?bxoc}%
+ \cslet{date\bxoc@target@lang}\@empty
+ \fi
+ \fi
+ \bxDebug{target language = \bxoc@target@lang}%
+ \ifcsundef{date\bxoc@target@lang}{%
+ \PackageError\bxoc@pkgname
+ {Language '\bxoc@target@lang' not defined}%
+ {\@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
+\bxoc@save@captions
+\let\bxoc@@today\today
+\g@addto@macro\bxoc@babel@hook{\bxoc@enable@restore}
+
+%--------------------------------------- done
+\endinput
+%% EOF
diff --git a/macros/latex/contrib/bxorigcapt/bxorigcapt.tex b/macros/latex/contrib/bxorigcapt/bxorigcapt.tex
new file mode 100644
index 0000000000..83dffe4c8a
--- /dev/null
+++ b/macros/latex/contrib/bxorigcapt/bxorigcapt.tex
@@ -0,0 +1,112 @@
+\documentclass[a4paper]{article}
+\usepackage[scale=0.75]{geometry}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern,textcomp}
+\usepackage{color}
+\definecolor{myblue}{rgb}{0,0,0.75}
+\definecolor{mygreen}{rgb}{0,0.45,0}
+\usepackage[colorlinks]{hyperref}
+\hypersetup{linkcolor=myblue,urlcolor=mygreen,
+ pdftitle={The bxorigcapt package},
+ pdfauthor={Takayuki YATO}}
+\usepackage{bxtexlogo}
+\bxtexlogoimport{*}
+\usepackage{shortvrb}
+\MakeShortVerb{\|}
+\newcommand{\PkgVersion}{1.0}
+\newcommand{\PkgDate}{2022/04/10}
+\newcommand{\Pkg}[1]{\textsf{#1}}
+\newcommand{\Meta}[1]{$\langle$#1$\rangle$}
+\newcommand{\Note}{\par\noindent\emph{Note.}}
+\newcommand{\Means}{:\quad}
+%-----------------------------------------------------------
+\begin{document}
+\title{The \Pkg{bxorigcapt} package}
+\author{Takayuki YATO\quad (aka.~``ZR'')}
+\date{v\PkgVersion\quad[\PkgDate]}
+\maketitle
+%\tableofcontents
+\begin{abstract}
+This package forces the caption names (|\chaptername|, |\today|, etc.)\ %
+declared by the document class in use to be used as the caption names
+for a specific language introduced by the Babel package.
+
+Starting from version 0.3, this package also supports Polyglossia.
+\end{abstract}
+
+%===========================================================
+\section{Introduction}
+\label{sec:Introduction}
+
+Suppose you have designed a document class
+tailored for the Esperanto language.
+The class has the following definition of caption names
+and you like it:
+\begin{quote}
+|\newcommand\contentsname{Tabelo de Enhavo}|
+\end{quote}
+
+If a document is written solely in Esperanto,
+then there is no need to employ the Babel package.
+(Yes, the document class should select the hyphenation rule
+for the language.)
+However, when you want to create document
+that contains Esperanto and German,
+then you have to utilize Babel,
+to have correct hyphenations for both languages.
+\begin{quote}
+|\usepackage[ngerman,esperanto]{babel}|
+\end{quote}
+
+But unfortunately, this changes |\contentsname|
+from ``Tabelo de Enhavo'' (what you have chosen)
+to ``Enhavo''
+(what is declared in the language definition file of Babel),
+which is unfavorable.
+
+In fact, when using a document class for a specific language,
+the most suitable caption names \emph{for that language}
+should be the ones provided by the class.
+The \Pkg{bxorigcapt} package realizes this natural request,
+that is, it enables you
+to make the caption names declared in the current document class
+treated as the caption names for a specific language.
+
+
+%===========================================================
+\section{Package Loading}
+\label{sec:Package-Loading}
+
+\begin{quote}
+|\usepackage[|\Meta{option}|,...]{bxorigcapt}|
+\end{quote}
+
+Available options are:
+\begin{itemize}
+\item |main| (default)\Means
+ Sets the main language of Babel to the default target language.
+\item \emph{a Babel language name}\Means
+ Specifies the target language.
+\item |warn|\Means
+ Issues a warning (instead of an info)
+ if Babel is never loaded in the preamble.
+\item |nowarn| (default)\Means
+ Negation of |warn|.
+\end{itemize}
+
+
+%===========================================================
+\section{Usage}
+\label{sec:Usage}
+
+Once this package is loaded,
+the caption names provided by the document class
+(actually the ones that are effective when this package is loaded)
+will be used as the caption names for the target language
+(which is specified by the package option).
+
+This package has no public commands.
+
+
+%===========================================================
+\end{document}