Verbatim with line breaks

From Wiki
Revision as of 06:45, 3 August 2005 by Taco (talk | contribs) (fix self-link)
Jump to navigation Jump to search

< From LaTeX to ConTeXt

In LaTeX

\documentclass[frenchb]{article}% in french texts, : ; ? and ! are active
\usepackage[latin9]{inputenc}
\usepackage{listings,babel}
\lstset{breaklines=true,basicstyle=\ttfamily}
\begin{document}
\hsize8cm\noindent\lstinline{hööah:aloh/aa?lha llol!loh%lloh#allhal\lohhll;ohohal~loll ohalölo}
\end{document}

In ConTeXt

\mainlanguage[fr]
\framed
   [width=8cm,
    align=flushleft,
    strut=no]{% no empty line at the beginning
\starttyping[lines=hyphenated]
hööah:aloh/aa?lha llol!loh%lloh#allhal\lohhll;ohohal~loll ohalölo
\stoptyping
}

To the one who wrote this question: the ConTeXt example above shows how to hyphenate verbatim text (you can't really notice that from the example), but not how to hyphenate French verbatim with active characters. You have to ask on the mailing list for that if you are still interested.

Breaking lines on the right border

Inspired by the (bad line breaking) example above, Taco wrote the following macro, which breaks a line as soon as it doesn't fit to the box any more.

The second box may serve as an example of what to do when you become desperate about your German grammar and hyphenation rules. The explanation follows below

%
% BREAK is a special pretty handler that auto-wraps lines
% to fit the current hsize.

\gdef\BREAKsetspecials%
  {\dorecurse{256}{\setpretty\numexpr \recurselevel-1\relax=10 }}

\gdef\BREAKsethandlers%
  {\installprettyhandler 10 \BREAKtypeone  }

\newcount\BREAKcharcounter
\newcount\BREAKmaxcharcount

\def\BREAKtypeone#1%
  {\advance\BREAKcharcounter 1
   \ifnum\BREAKcharcounter > \BREAKmaxcharcount
      \hfil\break
      \BREAKcharcounter=1
   \fi
   \getpretty{#1}}

\def\BREAKsetcounters%
  {\setbox\scratchbox=\hbox{0}%
   \BREAKmaxcharcount=\hsize
   \divide\BREAKmaxcharcount \wd\scratchbox
   \def\flushrestofverbatimline{\BREAKcharcounter=0 }%
   \BREAKcharcounter=0 }

\gdef\setupprettyBREAKtype%
  {\def\prettyidentifier{BREAK}%
   \BREAKsetcounters
   \BREAKsethandlers
   \BREAKsetspecials}

\installprettytype [BREAK] [BREAK]


\starttext
\framed
   [width=8cm,
    align=flushleft,
    strut=no]{%
\setuptyping[option=BREAK]
\starttyping
Hottentottenstottertrottelmutterlattengitterkotterbeutelratenattentater
\stoptyping
}
\stoptext


(This has nothing to do with ConTeXt, its just the explanation of the example above.)

Why German is a relatively easy language

by Gila Scheffler

German is a relatively easy language. If you know Latin you're used to declensions and can learn German without great difficulty. That's what German teachers tell you at the first lesson. Then you start studying the der, die, das, den ... and they tell you that everything follows a logical order. So it's easy. And to prove it, let's look at an example more closely: you sign up for first-year German and go out and buy the textbook. It's a beautiful, expensive, hardbound book, published in Dortmund, which talks about the customs of the Hottentots (Hottentotten in German).

The book tells us that when opossums (Beutelratten) are captured, they are placed in cages (Kasten) with bars made of wood slats (Lattengitter) to keep them from escaping. These cages are called Lattengitterkasten in German, and when there are opossums inside them they are known as Beutelrattenlattengitterkasten.

One day, the Hottentot police arrested a would-be murderer (Attentäter), who allegedly tried to kill a Hottentot mother (Mutter). Her son is a good-for-nothing stutterer (Stottertrottel), so his mother is, therefore, a Hottentottenstottertrottelmutter and her would-be murderer is a Hottentottenstottertrottelmutterattentäter. Easy, right? So the police captured the suspect and put him, temporarily, in an opossum cage (Beutelrattenlattengitterkasten) for safekeeping until they could take him to jail. But the prisoner escaped!

A search ensued and a Hottentot warrior cried out, ‘I have captured the murder suspect (den Attentäter)!’

‘Yes? Which one?’ asked the chieftain.

‘The Beutelrattenlattengitterkastenattentäter!’ replied the warrior.

‘What? The murder suspect who was in the opossum cage?’ asked the Hottentot chieftain.

‘That's right,’ said the warrior, ‘the Hottentottenstottertrottelmutterattentäter.’

By now you know enough German to understand that he's talking about the would-be murderer of the mother of the good-for-nothing Hottentot stutterer, right?

‘Oh, I see,’ says the Hottentot chieftain, ‘why didn't you say so right away? You could have begun by saying that you had captured the Hottentottenstottertrottelmutterbeutelrattenlattengitterkastenattentäter!’

As you can see, German is a very easy language. All you have to do is pay a little attention.