summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/msg/msgtest.tex
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex/contrib/msg/msgtest.tex
Initial commit
Diffstat (limited to 'macros/latex/contrib/msg/msgtest.tex')
-rw-r--r--macros/latex/contrib/msg/msgtest.tex205
1 files changed, 205 insertions, 0 deletions
diff --git a/macros/latex/contrib/msg/msgtest.tex b/macros/latex/contrib/msg/msgtest.tex
new file mode 100644
index 0000000000..085b74616d
--- /dev/null
+++ b/macros/latex/contrib/msg/msgtest.tex
@@ -0,0 +1,205 @@
+% This is a second test file for the "msg" package;
+% the first one being the msg.dtx file itself.
+%
+% If you want to test your own language messages file,
+% you can add your own \testlanguagefile at the end of this
+% test file.
+%
+\documentclass[10pt]{article}
+ \usepackage{inputenc}% Load usual input encoding.
+ \let\kbencoding\undefined% Don't use now any output encoding.
+ \usepackage[T1]{fontenc}
+ \usepackage[norsk,german,frenchb,english]{babel}
+ \usepackage{shortvrb}
+ \usepackage{msg}
+% \usepackage[tracefiles]{msg}% should also be tested with "tracefiles"
+% \usepackage{msg,french}% should also be tested with your language.
+ % As LaTeX don't save the input encoding
+ % the "msg" package will do it.
+ \inputencoding{latin1}% To have a _global_ latin1 encoding
+\begin{document}
+\MakeShortVerb{|}
+
+\title{The "msg" package test file}
+\author{}\date{}
+\maketitle
+
+The following examples are going from the ``msg'' documentation itself.
+
+\section*{Examples \& tests}
+ |\issuemsg1(msg)| will give at the console: \\
+ \centerline{\tt\getmsg1(msg)} but
+ |\issuemsg01(msg)| will give: \retrievemsg01(msg){\tt\themsg}.
+
+ While defining |\def\test#1{`\issuemsg4(msg)[#1]'}| the following call
+ |\emph{\test{SPECIAL}}| will print: \def\test#1{`\getmsg4(msg)[#1]'}\\
+ \centerline{\emph{\test{SPECIAL}}} showing that the argument
+ was inserted inside the message at the exact area, replacing |#1|.
+
+ In a French document, the same codes will issue:\\
+ \bgroup\selectlanguage{french}
+ \centerline{\tt\getmsg1(msg)}
+ \centerline{\retrievemsg01(msg){\tt\themsg}}
+ \centerline{\emph{\test{SPECIAL}}}
+ \egroup
+
+ \retrievemsg1(msg)
+ |\retrievemsg1(msg)| will set |\themsg| with the value of
+ the corresponding message ; nothing is issued at the console
+ nor in the log, except if the |<|\emph{id}|>| is not found in
+ the message file.
+
+ \noindent|\show\themsg| will explain:
+
+ \noindent|> \themsg=macro:|
+
+ \noindent|->|\texttt{\themsg}
+
+ \noindent In a French document, the same code will issue:
+
+ \bgroup\selectlanguage{french}
+ \retrievemsg1(msg)
+ \noindent|> \themsg=macro:|
+
+ \noindent|->|\texttt{\themsg}
+ \egroup
+
+ In case the message file is empty or do not contain neither the message
+ ``id'' nor any |\msg{*}| macro then we will obtain:
+ \bgroup\makeatletter
+ \catcode`*=\active\let*\relax%^^A for expansion when \read case.
+ \let\@msg@code@ast=\active%^^A to simulate a missing \msg{*}.
+ \retrievemsg999(msg)
+
+ \noindent|> \themsg=macro:|
+
+ \noindent|->|\texttt{\themsg}
+ \egroup
+
+ It may also arrive that we don't find that former message (|#6|) at all
+ then we will issue the usual \LaTeX\ |\PackageError| macro.
+
+ We use message \# 5 of |msg-msg.tex| file as following:
+
+ \noindent
+ \def\foo#1{\retrievemsg5(msg)[#1]\themsg\the\inputlineno\ \themsgi}
+ |\def\foo#1{\retrievemsg5(msg)[#1]\themsg\the\inputlineno\ \themsgi}|
+
+ \medskip\noindent
+ then |\emph{The \foo{test}}| will generate:
+
+ \centerline{The \emph{\foo{test}}}
+
+ \noindent
+ In a French document, the code |\emph{La \foo{test}}| will issue:
+
+ \bgroup\selectlanguage{french}
+ \centerline{\emph{La \foo{test}}}
+ \egroup
+
+ \medskip
+ We will now use the message \# 8 of |msg-msg.tex| file in order
+ to show the customization set in that file.
+
+ \medskip\noindent
+ |\getmsg8(msg)| will generate:\\
+ \getmsg8(msg)
+
+ The following |\texttt{\getmsg9(msg)}| using
+ |\MessageBreak| will give at the console:\\%
+ {\catcode`^^J=\active\let^^J\\%^^A We try to simulate the output console.
+ \def\@msgalspace{\hbox{\space}}%^^A In order to simule \obeyspaces
+ \def\space{\@sptoken}%^^A we used \space in \msgheader argument.
+ \def\MessageBreak{^^J\expandafter\@msgalign\msg@header\void%
+ \hbox{\space}}%^^A Please explain this tt behaviour...
+ \texttt{\getmsg9(msg)}\\%
+ }
+ (same message issued to the console\issuemsg9(msg)).%^^A Issue it really.
+
+ \noindent
+ And in a French document, the same calls will issue:\\
+ \bgroup\selectlanguage{french}%
+ \getmsg8(msg)\\%
+ \catcode`<=12\catcode`>=12\relax%^^A To remove ltxdoc active chars.
+ \catcode`^^J=\active\let^^J\\%^^A We try to simulate the output console.
+ \def\@msgalspace{\hbox{\space}}%^^A In order to simule \obeyspaces
+ \def\space{\@sptoken}%^^A We try to simulate the output console.
+ \def\MessageBreak{^^J\expandafter\@msgalign\msg@header\void%
+ \hbox{\space}}%^^A Please explain this tt behaviour...
+ \texttt{\getmsg9(msg)}
+
+ \egroup
+
+ Below is a test of an emphasized message (|\texttt{\getmsg{10}(msg)}|):
+
+ {\catcode`^^J=\active\let^^J\\%^^A We try to simulate the output console.
+ \def\msg{\@ifstar{\def\@msgskip{\\}\@msg}{\def\@msgskip{}\@msg}}%
+ \def\@msgalspace{\hbox{\space}}%^^A In order to simule \obeyspaces
+ \def\space{\@sptoken}%^^A we used \space in \msgheader argument.
+ \def\MessageBreak{^^J\expandafter\@msgalign\msg@header\void%
+ \hbox{\space}}%^^A Please explain this tt behaviour...
+ \noindent\texttt{\getmsg{10}(msg)}%
+ }
+ (same message issued to the console\issuemsg{10}(msg)).
+
+ Notice that the "msg" \emph{id} can be any string, not necessarily
+a string of digits. Here is an expample :
+
+\begin{verbatim}
+\newcommand{\ID}{12}
+\texttt{\getmsg{\ID}(msg)}
+\end{verbatim}
+
+\noindent
+will generate the following: \\
+\newcommand{\ID}{12}\texttt{\getmsg{\ID}(msg)}
+
+\section*{Test the message encoding}
+
+Temporary we reset the input encoding to \texttt{ascii} by
+calling |\inputencoding{ascci}|
+\bgroup
+\inputencoding{ascii}
+and switch to Norsk
+\selectlanguage{norsk}%
+to typeset the message \# 12 (|\getmsg{12}(msg}|):\\
+``\getmsg{12}(msg)''
+\egroup
+
+\section*{Message list for all messages files}
+
+\long\def\testlanguagefile#1{%
+{\selectlanguage{#1}% Don't forget to add it to \usepackage[...]{babel}
+\parindent=0pt\tt
+\textsf{Message list for the ``#1'' messages file:}\\[0.5\baselineskip]
+\getmsg1(msg)\hfuzz\maxdimen\\
+\getmsg2(msg)\hfuzz\maxdimen\\
+\getmsg3(msg)\hfuzz\maxdimen\\
+\getmsg4(msg)\hfuzz\maxdimen\\
+\getmsg5(msg)\hfuzz\maxdimen\\
+\getmsg6(msg)\hfuzz\maxdimen\\
+\getmsg7(msg)\hfuzz\maxdimen\\
+\getmsg8(msg)\hfuzz\maxdimen\\
+\getmsg9(msg)\hfuzz\maxdimen\\
+\getmsg{10}(msg)\hfuzz\maxdimen\\
+\getmsg{11}(msg)\hfuzz\maxdimen\\
+\getmsg{12}(msg)\hfuzz\maxdimen\\
+\getmsg{*}(msg)\par\bigskip
+
+\typeout{Message list for the ``#1'' messages file^^J}
+\issueallmsg(msg)%
+}}%
+
+All messages for each language are now listed
+in the document and on the console.
+
+\testlanguagefile{english}
+\testlanguagefile{french}
+\testlanguagefile{norsk}
+\testlanguagefile{german}
+
+\section*{and now?}
+
+You could try it on any of your document class or package...
+good testing.
+\end{document}