summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/tex/optex/base/languages.opm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/tex/optex/base/languages.opm')
-rw-r--r--Master/texmf-dist/tex/optex/base/languages.opm188
1 files changed, 188 insertions, 0 deletions
diff --git a/Master/texmf-dist/tex/optex/base/languages.opm b/Master/texmf-dist/tex/optex/base/languages.opm
new file mode 100644
index 00000000000..ff9373b7202
--- /dev/null
+++ b/Master/texmf-dist/tex/optex/base/languages.opm
@@ -0,0 +1,188 @@
+%% This is part of the OpTeX project, see http://petr.olsak.net/optex
+
+\_codedecl \_mtext {Languages <2021-01-21>} % preloaded in format
+
+ \_doc -----------------------------
+ Only four words are generated by \OpTeX/ macros: \"Chapter",
+ \"Table", \"Figure" and \"Subject". These phrases can be generated depending
+ on the current value of `\language` register, if you use \`\_mtext``{<phrase-id>}`,
+ specially `\_mtext{chap}`, `\_mtext{t}`, `\_mtext{f}` or `\_mtext{subj}`.
+ If your macros generate more words then
+ you can define such words by `\sdef{_mt:<phrase-id>:<lang>}` where
+ `<phrase-id>` is a label for the declared word and `<lang>` is a language shortcut
+ (iso code).
+ \_cod -----------------------------
+
+\_def\_mtext#1{\_trycs{_mt:#1:\_trycs{_lan:\_the\_language}{en}}
+ {\_csname _mt:#1:en\_endcsname}}
+
+\_sdef{_mt:chap:en}{Chapter} \_sdef{_mt:chap:cs}{Kapitola} \_sdef{_mt:chap:sk}{Kapitola}
+\_sdef{_mt:t:en}{Table} \_sdef{_mt:t:cs}{Tabulka} \_sdef{_mt:t:sk}{Tabuľka}
+\_sdef{_mt:f:en}{Figure} \_sdef{_mt:f:cs}{Obrázek} \_sdef{_mt:f:sk}{Obrázok}
+\_sdef{_mt:subj:en}{Subject} \_sdef{_mt:subj:cs}{Věc} \_sdef{_mt:subj:sk}{Vec}
+
+ \_doc -----------------------------
+ Using \`\_langw` `<lang> <chapter> <table> <figure> <subject>` you can
+ declare these words more effectively:
+ \maxlines=13
+ \_cod -----------------------------
+
+\_def \_langw #1 #2 #3 #4 #5 {%
+ \_sdef{_mt:chap:#1}{#2}\_sdef{_mt:t:#1}{#3}\_sdef{_mt:f:#1}{#4}%
+ \_sdef{_mt:subj:#1}{#5}%
+}
+
+\_langw en Chapter Table Figure Subject
+%--------------------------------------------------------------
+\_langw cs Kapitola Tabulka Obrázek Věc
+\_langw de Kapitel Tabelle Abbildung Betreff
+\_langw es Capítulo Tabla Figura Sujeto
+\_langw fr Chaptire Tableau Figure Matière
+\_langw it Capitolo Tabella Fig. Oggetto
+\_langw pl Rozdział Tabela Ilustracja Temat
+\_langw gr Κεφάλαιο Πίνακας Σχήμα θέμα
+\_langw ru Глава Таблица Рисунок Предмет
+\_langw sk Kapitola Tabuľka Obrázok Vec
+
+ \_doc -----------------------------
+ You can add more words as you wish. For example \`\today` macro:
+ \_cod -----------------------------
+
+\_def \_monthw #1 #2 #3 #4 #5 #6 #7 {%
+ \_sdef{_mt:m1:#1}{#2}\_sdef{_mt:m2:#1}{#3}\_sdef{_mt:m3:#1}{#4}%
+ \_sdef{_mt:m4:#1}{#5}\_sdef{_mt:m5:#1}{#5}\_sdef{_mt:m6:#1}{#5}%
+ \_monthwB #1
+}
+\_def \_monthwB #1 #2 #3 #4 #5 #6 #7 {%
+ \_sdef{_mt:m7:#1}{#2}\_sdef{_mt:m8:#1}{#3}\_sdef{_mt:m9:#1}{#4}%
+ \_sdef{_mt:m10:#1}{#5}\_sdef{_mt:m11:#1}{#5}\_sdef{_mt:m12:#1}{#5}%
+}
+
+\_monthw en January February March April May June
+ July August September October November December
+\_monthw cs ledna února března dubna května června
+ července srpna září října listopadu prosince
+\_monthw sk januára februára marca apríla mája júna
+ júla augusta septembra októbra novembra decembra
+\_monthw it gennaio febbraio marzo aprile maggio giugno
+ luglio agosto settembre ottobre novembre dicembre
+
+
+\_sdef{_mt:today:en}{\_mtext{m\_the\_month} \_the\_day, \_the\_year}
+\_sdef{_mt:today:cs}{\_the\_day.~\_mtext{m\_the\_month} \_the\_year}
+\_slet{_mt:today:sk}{_mt:today:cs}
+
+\_def\_today{\_mtext{today}}
+\_public \today ;
+
+ \_doc -----------------------------
+ Quotes should be tagged by `\"<text>"` and `\'<text>'` if `\<iso-code>quotes`
+ is declared at beginning of the document (for example `\enquotes`).
+ If not, then the control
+ sequences `\"` and `\'` are undefined. Remember, that they are used in
+ another meaning when the `\oldaccents` command is used.
+ The macros `\"` and `\'` are not defined as `\protected` because we need
+ their expansion when `\outlines` are created.
+ User can declare quotes by \^`\quoteschars``<clqq><crqq><clq><crq>`, where
+ `<clqq>...<crqq>` are normal quotes and `<clq>...<crq>` are alternative quotes.
+ or use \`\altquotes` to swap between the meaning of these two types of quotes.
+ \nl
+ \`\enquotes`, \`\csquotes`, \`\dequotes`, \`\frquotes` etc. are defined here.
+ \_cod -----------------------------
+
+\_def \_enquotes {\_quoteschars “”‘’}
+\_def \_csquotes {\_quoteschars „“‚‘}
+\_def \_frquotes {\_quoteschars “”«»}
+\_let \_plquotes = \_frquotes
+\_let \_esquotes = \_frquotes
+\_let \_grquotes = \_frquotes
+\_let \_ruquotes = \_frquotes
+\_let \_itquotes = \_frquotes
+\_let \_skquotes = \_csquotes
+\_let \_dequotes = \_csquotes
+
+ \_doc -----------------------------
+ The \`\quoteschars``<lqq><rqq><lq><rq>` defines `\"` and `\"` as `\_qqA`
+ in in normal mode and as expadable macros in outline mode.
+ We want to well process the common cases: \code{\\"`&`"} or \code{\\"`\{`"}.
+ This is the reason why the quotes parameter is read in verbatim mode and retokenized
+ again by `\scantextokens`. We want to allow to quote the quotes mark
+ itself by \code{\\"{`"`}"}. This is the reason why the sub-verbatim mode is
+ used when the first character is \code{\{} in the parameter.\nl
+ The `\"` is defined as `\_qqA\_qqB<lqq><rqq>` and `\'` as `\_qqA\_qqC<lq><rq>`.
+ The \`\_qqA``\_qqB<clqq><crqq>` runs \`\_qqB``<lqq><rqq><text>"`.\nl
+ The \`\_regquotes``\""<L><R>` does `\def\"#1"{<L>#1<R>}` for outlines but the `"`
+ separator is active (because `"` and `'` are active in \^`\pdfunidef`).
+ \_cod -----------------------------
+
+\_def \_quoteschars #1#2#3#4{\_def\_altquotes{\_quoteschars#3#4#1#2}\_public\altquotes;%
+ \_protected\_def \"{\_qqA\_qqB#1#2}\_protected\_def \'{\_qqA\_qqC#3#4}%
+ \_regmacro{}{}{\_regquotes\""#1#2\_regquotes\''#3#4}}
+
+\_def\_qqA#1#2#3{\_bgroup\_setverb \_catcode`\ =10
+ \_isnextchar\_bgroup{\_catcode`\{=1 \_catcode`\}=2 #1#2#3}{#1#2#3}}
+\_long\_def\_qqB#1#2#3"{\_egroup#1\_scantextokens{#3}#2}
+\_long\_def\_qqC#1#2#3'{\_egroup#1\_scantextokens{#3}#2}
+\_def\_regquotes#1#2#3#4{\_bgroup \_lccode`~=`#2\_lowercase{\_egroup \_def#1##1~}{#3##1#4}}
+
+ \_doc -----------------------------
+ Sometimes should be usable to leave the markup `"such"` or `'such'` i.e.~without
+ the first backslash. Then you can make the characters `"` and `'` active
+ by the \`\activequotes` macro and leave quotes without the first backslash.
+ First, declare `\<iso-code>quotes`, then \^`\altquotes` (if needed) and finally
+ \^`\activequotes`.
+ \_cod -----------------------------
+
+\_def\_activequotes{\_let\_actqq=\"\_adef"{\_actqq}\_let\_actq=\'\_adef'{\_actq}%
+ \_regmacro{}{}{\_adef"{\"}\_adef'{\'}}}
+
+\_public \quoteschars \activequotes \enquotes \csquotes \skquotes \frquotes \plquotes
+ \esquotes \grquotes \ruquotes \itquotes \dequotes ;
+
+ \_doc -----------------------------
+ Bibliography references generated by \^`\usebib` uses more
+ language-dependent phrases. They are declared here. We don't want to save
+ all these phrases into the format, so the trick with {`\_endinput`}
+ is used here. When \^`\usebib` is processed then the following part of the file
+ `languages.opm` is read again.
+
+ Only phrases of few languages are declared here now. If you want to declare
+ phrases of your language, please create an \"issue" or a \"request" at
+ \url{https://github.com/olsak/OpTeX} or send me an email with new
+ phrases for your language (or language you know:). I am ready to put them here.
+ Temporarily, you can put your definitions into `\bibtexhook` token list.
+ \_cod -----------------------------
+
+\_endinput % don't save these \def's to the format
+
+\_def\_langb#1 #2#3#4#5#6#7#8#9{\_def\_mbib##1##2{\_sdef{_mt:bib.##2:#1}{##1}}%
+ \_mbib{#2}{and}\_mbib{#3}{etal}\_mbib{#4}{edition}\_mbib{#5}{citedate}\_mbib{#6}{volume}%
+ \_mbib{#7}{number}\_mbib{#8}{prepages}\_mbib{#9}{postpages}\_langbA}
+\_def\_langbA#1#2#3#4#5#6#7{\_mbib{#1}{editor}\_mbib{#2}{editors}\_mbib{#3}{available}%
+ \_mbib{#4}{availablealso}\_mbib{#5}{bachthesis}\_mbib{#6}{masthesis}\_mbib{#7}{phdthesis}}
+
+\_langb en {, and } { et al.} { ed.} {cit.~} {Vol.~} {No.~} {pp.~} {~p.} {,~ed.} {,~eds.}
+ {Available from } {Available also from }
+ {Bachelor's Thesis} {Master's Thesis} {Ph.D. Thesis}
+%------------------------------------------------------------------------------------------
+\_langb cs { a } { a~kol.} { vyd.} {vid.~} {ročník~} {č.~} {s.~} {~s.} {,~editor} {,~editoři}
+ {Dostupné na } {Dostupné též na }
+ {Bakalářská práce} {Diplomová práce} {Disertační práce}
+\_langb sk { a } { a~kol.} { vyd.} {vid.~} {ročník~} {č.~} {s.~} {~s.} {,~editor} {,~editoři}
+ {Dostupné na } {Dostupné tiež na }
+ {Bakalárska práca} {Diplomová práca} {Dizertačná práca}
+
+% \_<lang>dateformat year/month/day\relax, for example: \_csdateformat 2020/05/21\relax
+% This is used in iso690 bib-style when the field "citedate" is used.
+
+\_def\_endateformat #1/#2/#3\relax{#1-#2-#3}
+% \_csdateformat 2020/05/21\relax -> \hbox{21. 5. 2020}
+\_def\_csdateformat #1/#2/#3\relax{\hbox{\_tmpnum=#3 \_the\_tmpnum. \_tmpnum=#2 \_the\_tmpnum. #1}}
+\_let\_skdateformat =\_csdateformat
+
+\_endcode % -------------------------------------
+
+2021-01-21 more robust quotes in outlines
+2020-12-05 bib phrases moved here
+2020-04-29 Obrazek -> Abbildung: bug fixed
+2020-03-15 introduced