From c7ecdfe2e07e2e010de5e2a8d94c001c5dc9fc27 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 1 Aug 2022 03:04:31 +0000 Subject: CTAN sync 202208010304 --- macros/latex/contrib/bxorigcapt/LICENSE | 21 ++ macros/latex/contrib/bxorigcapt/README.md | 56 ++++++ macros/latex/contrib/bxorigcapt/bxorigcapt.pdf | Bin 0 -> 256321 bytes macros/latex/contrib/bxorigcapt/bxorigcapt.sty | 255 +++++++++++++++++++++++++ macros/latex/contrib/bxorigcapt/bxorigcapt.tex | 112 +++++++++++ 5 files changed, 444 insertions(+) create mode 100644 macros/latex/contrib/bxorigcapt/LICENSE create mode 100644 macros/latex/contrib/bxorigcapt/README.md create mode 100644 macros/latex/contrib/bxorigcapt/bxorigcapt.pdf create mode 100644 macros/latex/contrib/bxorigcapt/bxorigcapt.sty create mode 100644 macros/latex/contrib/bxorigcapt/bxorigcapt.tex (limited to 'macros/latex/contrib/bxorigcapt') 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 Binary files /dev/null and b/macros/latex/contrib/bxorigcapt/bxorigcapt.pdf 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{,...} +\@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@@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} -- cgit v1.2.3