summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/chemformula-ru
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2024-03-03 03:01:28 +0000
committerNorbert Preining <norbert@preining.info>2024-03-03 03:01:28 +0000
commit56847810aa645903c20fb112fa248caeaef82db6 (patch)
tree4430e794cbb8ab6caf72bbdde5ac5f5c7fe32dfd /macros/latex/contrib/chemformula-ru
parentb7323fe884f378851ee661babaa5bd644271f348 (diff)
CTAN sync 202403030301
Diffstat (limited to 'macros/latex/contrib/chemformula-ru')
-rw-r--r--macros/latex/contrib/chemformula-ru/README.md14
-rw-r--r--macros/latex/contrib/chemformula-ru/README.ru7
-rw-r--r--macros/latex/contrib/chemformula-ru/chemformula-ru.pdfbin0 -> 167712 bytes
-rw-r--r--macros/latex/contrib/chemformula-ru/chemformula-ru.sty32
-rw-r--r--macros/latex/contrib/chemformula-ru/chemformula-ru.tex82
5 files changed, 135 insertions, 0 deletions
diff --git a/macros/latex/contrib/chemformula-ru/README.md b/macros/latex/contrib/chemformula-ru/README.md
new file mode 100644
index 0000000000..c9ca6fdebe
--- /dev/null
+++ b/macros/latex/contrib/chemformula-ru/README.md
@@ -0,0 +1,14 @@
+Using chemformula package with babel-russian.
+
+DESCRIPTION
+
+The chemformula package and babel-russian settings (russian.ldf) define the same macro \ch.
+The package chemformula-ru undefines babel's macro to prevent an error when
+both packages are loaded together.
+Optionally it redefines the \cosh macro to print the hyperbolic cosine
+in Russian notations and/or defines new macro \Ch for that.
+
+Licence: LPPL 1.3c or any later version.
+
+Alexey Kuznetsov mailtokuznetsov@gmail.com
+
diff --git a/macros/latex/contrib/chemformula-ru/README.ru b/macros/latex/contrib/chemformula-ru/README.ru
new file mode 100644
index 0000000000..83d6867d5e
--- /dev/null
+++ b/macros/latex/contrib/chemformula-ru/README.ru
@@ -0,0 +1,7 @@
+Пакеты chemformula и babel-russian (russian.ldf) вводят одинковую команду \ch,
+вызывающую ошибку при их совместной загрузке.
+Пакет chemformula-ru устраняет ее, делая команду пакета babel неопределенной.
+Дополнительно он позволяет настроить команду \cosh для печати гиперболического косинуса
+в русских нотациях и/или ввести для этого новую команду \Ch.
+
+Алексей Кузнецов mailtokuznetsov@gmail.com
diff --git a/macros/latex/contrib/chemformula-ru/chemformula-ru.pdf b/macros/latex/contrib/chemformula-ru/chemformula-ru.pdf
new file mode 100644
index 0000000000..09126f6cc1
--- /dev/null
+++ b/macros/latex/contrib/chemformula-ru/chemformula-ru.pdf
Binary files differ
diff --git a/macros/latex/contrib/chemformula-ru/chemformula-ru.sty b/macros/latex/contrib/chemformula-ru/chemformula-ru.sty
new file mode 100644
index 0000000000..f1df3002c1
--- /dev/null
+++ b/macros/latex/contrib/chemformula-ru/chemformula-ru.sty
@@ -0,0 +1,32 @@
+%% The chemformula-ru package eliminates an incompatibility
+%% between the chemformula package and Russian settings (russian.ldf) of the babel package.
+%%
+%% Copyright (c) 2024 by Alexey Kuznetsov (mailtokuznetsov at gmail.com)
+%%
+%% This file may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3c or later is part of all distributions of LaTeX
+%% version 2008/05/04 or later.
+%%
+
+\ProvidesPackage{chemformula-ru}[2024-03-01 Using chemformula package with babel-russian]
+
+\DeclareOption{cosh2ch}{\def\cosh@ch{\DeclareRobustCommand\cosh{\mathop{\operator@font ch}\nolimits}}}
+\DeclareOption{ch2Ch}{\def\ch@Ch{\DeclareRobustCommand\Ch{\mathop{\operator@font ch}\nolimits}}}
+\ProcessOptions\relax
+
+\BeforeBeginEnvironment{document}{
+ \IfPackageLoadedTF{chemformula}{
+ \IfPackageLoadedWithOptionsTF{babel}{russian}{
+ \let\@Chem@Formula\ch \let\ch\undefined
+ \AtBeginDocument{ \let\ch\@Chem@Formula
+ \@ifundefined{cosh@ch}{\relax}{\cosh@ch}
+ \@ifundefined{ch@Ch}{\relax}{\ch@Ch}
+ }
+ } { \relax }
+ } { \relax }
+}
+\endinput
diff --git a/macros/latex/contrib/chemformula-ru/chemformula-ru.tex b/macros/latex/contrib/chemformula-ru/chemformula-ru.tex
new file mode 100644
index 0000000000..02edcbca41
--- /dev/null
+++ b/macros/latex/contrib/chemformula-ru/chemformula-ru.tex
@@ -0,0 +1,82 @@
+\documentclass[a4paper]{article}
+\usepackage[]{geometry}
+\geometry{total={180mm, 267mm}, centering}
+
+\usepackage[russian]{babel}
+\usepackage{chemformula}
+\usepackage[ch2Ch,cosh2ch]{chemformula-ru}
+\usepackage{array,multicol}
+
+\begin{document}
+
+\title{The \textsf{chemformula-ru} package}
+\author{Alexey Kuznetsov}
+\date{01.03.2024}
+\maketitle
+
+\begin{multicols}{2}
+The \textsf{chemformula} package defines the command\\[.5ex]
+\mbox{}\hfil\verb|\сh{|\textit{chemical formula}\verb|}|\\[.5ex]
+to type up chemical formulas:\\[.5ex]
+\mbox{}\hfil\verb|\ch{H3PO4}| $\to$ \ch{H3PO4}.\\[.5ex]
+Russian settings of the \textsf{babel} package \textsf{(russianb.ldf)} define the same command to print the hyperbolic cosine:\\[.5ex]
+\mbox{}\hfil\verb|$\ch x$|\ $\to\ \Ch x$.\\[.5ex]
+Loading packages together leads to the error\\[1ex]
+\mbox{}\hfil\verb|! LaTeX Error: Command \ch already defined.|\\[1ex]
+The \textsf{chemformula-ru} package ``neutralizes'' it by making the babel's command undefined.
+
+The package has two parameters to configure the printing of the hyperbolic cosine in Russian notation:\\[1ex]
+\begin{tabular}{>\sf l @{ ---\quad } p{.75\linewidth}}
+cosh2ch & overrides the \verb|\cosh| command for printing:\linebreak
+ \verb|$\cosh x$| $\to \cosh x$. \\[1ex]
+ch2Ch & defines a new \verb|\Ch| command for printing:\linebreak
+ \verb|$\Ch x$| $\to \Ch x$.
+\end{tabular}\\[1ex]
+
+Пакет \textsf{chemformula} вводит команду\\[.5ex]
+\mbox{}\hfil\verb|\сh{|\textit{химическая фоормула}\verb|}|\\[.5ex]
+для верстки химических формул:\\[.5ex]
+\mbox{}\hfil\verb|\ch{H3PO4}| $\to$ \ch{H3PO4}.\\[.5ex]
+Русские настройки пакета \textsf{babel (russianb.ldf)} определяют одноименную команду для печати гиперболического косинуса:\\[-.5ex]
+\mbox{}\hfil\verb|$\ch x$|\ $\to\ \Ch x$.\\[.5ex]
+Cовместная загрузка пакетов ведет к ошибке\\[1ex]
+\mbox{}\hfil\verb|! LaTeX Error: Command \ch already defined.|\\[1ex]
+Пакет \textsf{chemformula-ru} <<нейтрализует>> ее, делая команду пакета \textsf{babel} неопределенной.
+
+Пакет имеет два параметра, настраивающих печать гиперболического косинуса в русских нотациях:\\[1ex]
+\begin{tabular}{>\sf l @{ --- } p{.8\linewidth}}
+cosh2ch & переопределяет для печати команду \verb|\cosh|:\linebreak
+ \verb|$\cosh x$| $\to \cosh x$. \\[1ex]
+ch2Ch & определяет для печати новую команду \verb|\Ch|:\linebreak
+ \verb|$\Ch x$| $\to \Ch x$.
+\end{tabular}
+\end{multicols}
+
+\noindent\hrulefill
+
+\begin{verbatim}
+
+%% Redefine \cosh to print ch.
+\DeclareOption{cosh2ch}{\def\cosh@ch{%
+ \DeclareRobustCommand\cosh{\mathop{\operator@font ch}\nolimits}}}
+
+%% Define new command \Ch to print ch.
+\DeclareOption{ch2Ch}{\def\ch@Ch{%
+ \DeclareRobustCommand\Ch{\mathop{\operator@font ch}\nolimits}}}
+
+\ProcessOptions\relax
+
+\BeforeBeginEnvironment{document}{
+ \IfPackageLoadedTF{chemformula}{
+ \IfPackageLoadedWithOptionsTF{babel}{russian}{
+ \let\@Chem@Formula\ch \let\ch\undefined
+ \AtBeginDocument{ \let\ch\@Chem@Formula
+ \@ifundefined{cosh@ch}{\relax}{\cosh@ch}
+ \@ifundefined{ch@Ch}{\relax}{\ch@Ch}
+ }
+ } { \relax }
+ } { \relax }
+}
+\end{verbatim}
+
+\end{document}