From e0c6872cf40896c7be36b11dcc744620f10adf1d Mon Sep 17 00:00:00 2001
From: Norbert Preining <norbert@preining.info>
Date: Mon, 2 Sep 2019 13:46:59 +0900
Subject: Initial commit

---
 macros/latex/contrib/fmtcount/fc-lang.tex | 356 ++++++++++++++++++++++++++++++
 1 file changed, 356 insertions(+)
 create mode 100644 macros/latex/contrib/fmtcount/fc-lang.tex

(limited to 'macros/latex/contrib/fmtcount/fc-lang.tex')

diff --git a/macros/latex/contrib/fmtcount/fc-lang.tex b/macros/latex/contrib/fmtcount/fc-lang.tex
new file mode 100644
index 0000000000..b2a8907ffb
--- /dev/null
+++ b/macros/latex/contrib/fmtcount/fc-lang.tex
@@ -0,0 +1,356 @@
+ % This file is public domain
+
+ % This is an interactive script. Run it through \LaTeX
+ % and enter appropriate responses. (This won't work with
+ % LaTeX2HTML)
+
+\documentclass[a4paper]{article}
+
+\usepackage[utf8]{inputenc}
+\usepackage[T1]{fontenc}
+
+\usepackage{etoolbox}
+
+\usepackage[french,english,spanish,portuges,ngerman,italian]{babel}
+\usepackage{fmtcount}
+
+\newcounter{startval}
+\newcounter{endval}
+\newcounter{stepsize}
+\newcounter{N}
+\newcount\myctr
+\newcount\langid
+
+\newcommand*{\deflangopt}[2][\relax]{%
+ \csdef{setlang#2}{\langid=#2#1}%
+}
+\newcommand*{\uselangopt}[1]{\csuse{setlang#1}}
+\deflangopt{1}
+\deflangopt{2}
+\deflangopt{3}
+\deflangopt[\fmtcountsetoptions{french}]{4}
+\deflangopt[\fmtcountsetoptions{french=swiss}]{5}
+\deflangopt[\fmtcountsetoptions{french=belgian}]{6}
+\deflangopt{7}
+\deflangopt{8}
+
+\newcommand*{\defformat}[1]{%
+  \csdef{setformat#1}{\numformat=#1\relax}%
+}
+\newcommand*{\useformat}[1]{\csuse{setformat#1}}
+
+\newcommand*{\setformat}{\numformat=1\relax}
+
+\defformat{1}
+\defformat{2}
+\defformat{3}
+\defformat{4}
+\defformat{5}
+\defformat{6}
+
+\newcommand*{\defgender}[2]{%
+  \csdef{setgender#1}{\myctr=#2\relax}%
+}
+\newcommand*{\usegender}[1]{\csuse{setgender#1}}
+
+\defgender{}{1}
+\defgender{m}{1}
+\defgender{f}{2}
+\defgender{n}{3}
+
+\begin{document}
+
+\section{Displaying the value of a counter}
+
+\typeout{This is an interactive script, testing the fmtcount package.}
+
+\langid=-1
+
+\loop
+  \typeout{Which language?^^J}
+  \typeout{[1] English}
+  \typeout{[2] Portuguese}
+  \typeout{[3] Spanish}
+  \typeout{[4] French}
+  \typeout{[5] French (Swiss)}
+  \typeout{[6] French (Belgium)}
+  \typeout{[7] German}
+  \typeout{[8] Italian}
+
+  \typein[\response]{}
+
+  \ifcsundef{setlang\response}%
+  {%
+    \typeout{Invalid response '\response', please select a number from 1 to 8}%
+    \langid=-1\relax
+  }%
+  {\uselangopt{\response}}
+
+\ifnum\langid=-1
+\repeat
+
+\ifcase\langid
+\or \selectlanguage{english}
+Current language: English.
+\or \selectlanguage{portuges}
+Current language: Portuguese.
+\or \selectlanguage{spanish}
+Current language: Spanish.
+\or \selectlanguage{french}
+Current language: French.
+\or \selectlanguage{french}
+Current language: French (Swiss).
+\or \selectlanguage{french}
+Current language: French (Belgium).
+\or \selectlanguage{ngerman}
+Current language: German.
+\or \selectlanguage{italian}
+Current language: Italian.
+\fi
+
+\def\startval{-1}
+
+\loop
+ \typein[\startval]{Start value? (Integer from 0 to 99999) [Default 1]}
+ \ifdefempty{\startval}{\def\startval{1}}{}
+ \ifnum\startval<0\def\startval{-1}\fi
+ \ifnum\startval>99999\def\startval{-1}\fi
+
+\ifnum\startval=-1
+\repeat
+
+\def\endval{-1}
+
+\loop
+  \typein[\endval]{End value? (Integer from 0 to 99999) [Default 1000]}
+  \ifdefempty{\endval}{\def\endval{1000}}{}
+  \ifnum\endval<0\def\endval{-1}\fi
+  \ifnum\endval>99999\def\endval{-1}\fi
+\ifnum\endval=-1
+\repeat
+
+\def\stepsize{0}
+
+\loop
+ \typein[\stepsize]{Step size? (Non zero integer) [Default 1]}
+ \ifdefempty{\stepsize}{\def\stepsize{1}}{}
+\ifnum\stepsize=0
+\repeat
+
+\typeout{From {\startval} to {\endval} step {\stepsize}}
+
+\ifnum\startval<\endval\relax
+ \ifnum\stepsize<0\relax
+  \PackageError{fc-lang}{Infinite loop not permitted!}{}
+  \def\endval{\startval}
+ \fi
+\fi
+
+\ifnum\startval>\endval\relax
+ \ifnum\stepsize>0\relax
+  \PackageError{fc-lang}{Infinite loop not permitted!}{}
+  \def\endval{\startval}
+ \fi
+\fi
+
+\newcount\numformat
+
+\numformat=-1
+\loop
+  \typeout{Which format?^^J}
+  \typeout{[1] ordinalstring}
+  \typeout{[2] Ordinalstring}
+  \typeout{[3] ORDINALstring}
+  \typeout{[4] numberstring}
+  \typeout{[5] Numberstring}
+  \typeout{[6] NUMBERstring}
+
+  \typein[\response]{Default: 1}
+
+  \ifcsundef{setformat\response}%
+  {%
+    \numformat=-1\relax
+    \typeout{Invalid response '\response', please select a number from 1 to 6}%
+  }%
+  {%
+    \useformat\response
+  }
+
+\ifnum\numformat=-1
+\repeat
+
+\ifcase\numformat
+\or\def\stringtype{ordinalstring}
+\or\def\stringtype{Ordinalstring}
+\or\def\stringtype{ORDINALstring}
+\or\def\stringtype{numberstring}
+\or\def\stringtype{Numberstring}
+\or\def\stringtype{NUMBERstring}
+\fi
+
+\ifnum\langid>3\relax
+  \ifnum\langid<7\relax
+  \myctr=-1\relax
+  \loop
+    \typeout{Ordinal type?^^J}
+    \typeout{[1] eme}
+    \typeout{[2] e}
+    \typein[\response]{Default: 1}
+    \ifdefempty{\response}%
+      {%
+        \def\response{1}% default
+        \myctr=1\relax
+      }%
+      {%
+        \ifdefstring{\response}{1}%
+        {%
+          \fmtcountsetoptions{abbrv=false}\myctr=1\relax
+        }%
+        {%
+          \ifdefstring{\response}{2}%
+          {%
+            \fmtcountsetoptions{abbrv}\myctr=2\relax
+          }%
+          {%
+            \myctr=-1\relax
+            \typeout{Invalid response '\response', please select a
+number from 1 to 2}%
+          }%
+        }%
+      }%
+    \ifnum\myctr=-1
+  \repeat
+  \fi
+\fi
+
+\myctr=-1
+\loop
+  \typeout{Ordinal format?^^J}
+  \typeout{[1] raised}
+  \typeout{[2] level}
+  \typein[\response]{Default: 1}
+  \ifdefempty{\response}{\def\response{1}}{}%
+
+  \ifdefstring{\response}{1}
+  {%
+    \fmtcountsetoptions{fmtord=raise}\myctr=1\relax
+  }%
+  {%
+    \ifdefstring{\response}{2}
+    {%
+       \fmtcountsetoptions{fmtord=level}\myctr=2\relax
+    }%
+    {%
+       \myctr=-1\relax
+       \typeout{Invalid response '\response', please select a
+       number from 1 to 2}%
+    }%
+  }
+
+\ifnum\myctr=-1
+\repeat
+
+\ifnum\langid=1\relax
+ \myctr=1\relax
+\else
+
+ \ifboolexpr
+ {
+   test {\ifnumequal{\langid}{7}}
+   and
+   test {\ifnumgreater{\numformat}{3}} 
+ }%
+ {%
+   \loop
+     \ifnum\langid=7\relax
+       \typein[\response]{Gender? (m, f or n) [Default: m]}
+       \ifcsundef{setgender\response}%
+       {%
+         \typeout{Invalid response '\response', please select a
+          number from 1 to 3}%
+          \myctr=-1\relax
+       }%
+       {\usegender\response}
+     \else
+       \typein[\response]{Gender? (m or f) [Default: m]}
+       \ifcsundef{setgender\response}%
+       {%
+         \typeout{Invalid response '\response', please select a
+          number from 1 to 2}%
+          \myctr=-1\relax
+       }%
+       {%
+         \ifdefstring{\response}{3}
+         {%
+           \typeout{Invalid response '\response', please select a
+            number from 1 to 2}%
+            \myctr=-1\relax
+         }
+         {%
+           \usegender\response
+         }
+       }
+     \fi
+   \ifnum\myctr=-1
+   \repeat
+ }%
+ {%
+ }
+
+\fi
+
+\ifcase\myctr
+\or \def\gender{m}
+\or \def\gender{f}
+\or \def\gender{n}
+\fi
+
+\ifnum\langid=7
+\ifnum\startval>99
+\myctr=-1
+\loop
+\typeout{einhundert/eintausend or hundert/tausend?^^J}
+\typeout{[1] einhundert/eintausend}
+\typeout{[2] hundert/tausend}
+\typein[\response]{Default: 1}
+\ifthenelse{\equal{\response}{}}{\def\response{1}}{}%default
+\ifthenelse{\equal{\response}{1}}{%
+\renewcommand{\einhundert}{einhundert}
+\renewcommand{\eintausend}{eintausend}
+\myctr=1}{%
+\ifthenelse{\equal{\response}{2}}{%
+\renewcommand{\einhundert}{hundert}
+\renewcommand{\eintausend}{tausend}
+\myctr=2}{%
+\myctr=-1}}
+\ifnum\myctr=-1
+\repeat
+\fi
+\fi
+
+\setcounter{startval}{\startval}
+\setcounter{endval}{\endval}
+\setcounter{stepsize}{\stepsize}
+
+\stepcounter{endval}
+\begin{ttfamily}
+\noindent
+\makebox[0.25in][c]{N}
+\makebox[0.5in][c]{ordinal}\quad
+\stringtype
+\par
+\myctr=\value{startval}
+\loop
+\noindent
+\setcounter{N}{\myctr}
+\makebox[0.25in][r]{\arabic{N}}
+\makebox[0.5in][r]{\ordinal{N}[\gender]}\quad
+\csname\stringtype\endcsname{N}[\gender].
+\par
+\advance\myctr by \value{stepsize}\relax
+\ifnum\myctr<\value{endval}
+\repeat
+
+\end{ttfamily}
+
+\end{document}
-- 
cgit v1.2.3

