Difference between revisions of "Verbatim with line breaks"

From Wiki
Jump to navigation Jump to search
m (D'oh! utf, not utf-8!)
m
 
(4 intermediate revisions by 3 users not shown)
Line 1: Line 1:
< [[From LaTeX to ConTeXt]] | [[Verbatim text]] >
+
===In ConTeXt===
  
===In LaTeX===
+
<context source="yes">
<texcode>
 
 
\enableregime[utf] % needed in MkII
 
\enableregime[utf] % needed in MkII
\documentclass[frenchb]{article}% in french texts, : ; ? and ! are active
+
\setuppapersize[A5]
\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}
 
</texcode>
 
  
===In ConTeXt===
 
  
<context source="yes">
 
\enableregime[utf] % needed in MkII
 
\mainlanguage[fr]
 
 
\framed
 
\framed
 
   [width=8cm,
 
   [width=8cm,
Line 27: Line 15:
 
}
 
}
 
</context>
 
</context>
 
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==
 
==Breaking lines on the right border==
Line 34: Line 20:
 
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.
 
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 [[#Why German is a relatively easy language|below]]
+
The second box may serve as an example of what to do when you become desperate about your German grammar and hyphenation rules.
  
<context>
+
<context source=yes>
%
 
 
% BREAK is a special pretty handler that auto-wraps lines
 
% BREAK is a special pretty handler that auto-wraps lines
 
% to fit the current hsize.
 
% to fit the current hsize.
Line 73: Line 58:
 
\installprettytype [BREAK] [BREAK]
 
\installprettytype [BREAK] [BREAK]
  
\setupregime[utf] % needed in MkII
+
\enableregime[utf] % needed in MkII
 +
\setuppapersize[A5]
 +
 
 
\starttext
 
\starttext
 +
 
\framed
 
\framed
 
   [width=8cm,
 
   [width=8cm,
Line 84: Line 72:
 
\stoptyping
 
\stoptyping
 
}
 
}
 +
 
\framed
 
\framed
 
   [width=4cm,
 
   [width=4cm,
Line 93: Line 82:
 
\stoptyping
 
\stoptyping
 
}
 
}
 +
 
\stoptext
 
\stoptext
 
</context>
 
</context>
  
<texcode>
+
(The word "Hottentottenstottertrottelmutterlattengitterkotterbeutelratenattentater" has an amusing story attached, which can be found in [http://www.editorscanberra.org/May03.htm the May 2003 issue of the Canberra Society of Editors Newsletter].
%
 
% BREAK is a special pretty handler that auto-wraps lines
 
% to fit the current hsize.
 
  
\gdef\BREAKsetspecials%
+
Another mechanism has been suggested on [[Wrapping]].
  {\dorecurse{256}{\setpretty\numexpr \recurselevel-1\relax=10 }}
 
 
 
\gdef\BREAKsethandlers%
 
  {\installprettyhandler 10 \BREAKtypeone  }
 
 
 
\newcount\BREAKcharcounter
 
\newcount\BREAKmaxcharcount
 
  
\def\BREAKtypeone#1%
+
== See also ==
  {\advance\BREAKcharcounter 1
+
{{Hyphenation see also}}
  \ifnum\BREAKcharcounter > \BREAKmaxcharcount
 
      \hfil\break
 
      \BREAKcharcounter=1
 
  \fi
 
  \getpretty{#1}}
 
  
\def\BREAKsetcounters%
+
[[Category:Basics]]
  {\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
 
</texcode>
 
 
 
(The word "Hottentottenstottertrottelmutterlattengitterkotterbeutelratenattentater" has an amusing story attached, which can be found in [http://www.editorscanberra.org/May03.htm the May 2003 issue of the Canberra Society of Editors Newsletter].
 

Latest revision as of 15:58, 8 June 2020

In ConTeXt

\enableregime[utf] % needed in MkII
\setuppapersize[A5]


\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
}

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.

% 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]

\enableregime[utf] % needed in MkII
\setuppapersize[A5]

\starttext

\framed
   [width=8cm,
    align=flushleft,
    strut=no]{%
\setuptyping[option=BREAK]
\starttyping
hööah:aloh/aa?lha llol!loh%lloh#allhal\lohhll;ohohal~loll ohalölo
\stoptyping
}

\framed
   [width=4cm,
    align=flushleft,
    strut=no]{%
\setuptyping[option=BREAK]
\starttyping
Hottentottenstottertrottelmutterbeutelrattenlattengitterkastenattentäter
\stoptyping
}

\stoptext

(The word "Hottentottenstottertrottelmutterlattengitterkotterbeutelratenattentater" has an amusing story attached, which can be found in the May 2003 issue of the Canberra Society of Editors Newsletter.

Another mechanism has been suggested on Wrapping.

See also