From b3fd7332ea18e6172db25318716832397b625ddd Mon Sep 17 00:00:00 2001 From: Karl Berry Date: Thu, 26 Feb 2009 00:51:49 +0000 Subject: new latex package nicetext (24feb09) git-svn-id: svn://tug.org/texlive/trunk@12236 c570f23f-e606-0410-a88d-b1316a301751 --- Master/texmf-dist/doc/latex/nicetext/README | 59 ++++ Master/texmf-dist/doc/latex/nicetext/README.txt | 1 + .../doc/latex/nicetext/docsrc/WIKICHEA.TEX | 148 ++++++++ .../doc/latex/nicetext/docsrc/makedoc.tex | 82 +++++ .../doc/latex/nicetext/docsrc/niceverb.tex | 261 ++++++++++++++ Master/texmf-dist/doc/latex/nicetext/niceverb.pdf | Bin 0 -> 138688 bytes Master/texmf-dist/doc/latex/nicetext/wikicheat.pdf | Bin 0 -> 78545 bytes Master/texmf-dist/tex/latex/nicetext/niceverb.sty | 210 ++++++++++++ Master/texmf-dist/tex/latex/nicetext/wiki.sty | 376 +++++++++++++++++++++ Master/tlpkg/bin/tlpkg-ctan-check | 2 +- Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc | 1 + Master/tlpkg/tlpsrc/nicetext.tlpsrc | 2 + 12 files changed, 1141 insertions(+), 1 deletion(-) create mode 100644 Master/texmf-dist/doc/latex/nicetext/README create mode 120000 Master/texmf-dist/doc/latex/nicetext/README.txt create mode 100644 Master/texmf-dist/doc/latex/nicetext/docsrc/WIKICHEA.TEX create mode 100644 Master/texmf-dist/doc/latex/nicetext/docsrc/makedoc.tex create mode 100644 Master/texmf-dist/doc/latex/nicetext/docsrc/niceverb.tex create mode 100644 Master/texmf-dist/doc/latex/nicetext/niceverb.pdf create mode 100644 Master/texmf-dist/doc/latex/nicetext/wikicheat.pdf create mode 100644 Master/texmf-dist/tex/latex/nicetext/niceverb.sty create mode 100644 Master/texmf-dist/tex/latex/nicetext/wiki.sty create mode 100644 Master/tlpkg/tlpsrc/nicetext.tlpsrc diff --git a/Master/texmf-dist/doc/latex/nicetext/README b/Master/texmf-dist/doc/latex/nicetext/README new file mode 100644 index 00000000000..171fd1d339f --- /dev/null +++ b/Master/texmf-dist/doc/latex/nicetext/README @@ -0,0 +1,59 @@ + The NICETEXT bundle + + (c) 2009 Uwe Lueck http://contact-ednotes.sty.de.vu + + == General Idea == + +The NICETEXT bundle offers ``minimal'' markup syntax for rather +simple kinds of text. The code you type should show little more +characters than are printed, though you get LaTeX quality. We try +to do away with backslashes, technical terms, and curly braces +(which also are so clumsy to type on PC keyboards). + + == Packages == + +'wiki.sty' addresses general kinds of texts. 'niceverb.sty' is +made for documenting LaTeX packages. 'niceverb.sty' especially +offers [almost-]WYSIWIG for meta-variables (macro arguments) and +for referring to commands (and their syntax) in footnotes, +section titles etc. E.g., to get the syntax description + + \foo[]{} +you just type + \foo[]{} +!-) + + == Comparison == + +One source of inspiration is the markup syntax that is used in +editing Wikipedia pages. The package 'wiki.sty' of the bundle +offers a very similar syntax as a LaTeX front-end. It suffices for +italics, boldface, sectioning, and certain list-like environments. +This is also similar to 'easylatex', + + http.//www.ctan.org/pkg/easylatex + +which is more powerful and uses Perl. 'wiki.sty', by contrast, is +just a LaTeX package, working on any TeX installation. + + == Documentation == + +'wikicheat.pdf' is a one-page manual of 'wiki.sty'. The file +'wiki.sty' contains additional documentation as ASCII text. +'niceverb.pdf' describes 'niceverb.sty'. Note that certain +features must be activated by commands in the document environment. + + == What is missing == + +1. 'niceverb' should extend 'wiki', yet their font switchings are +incompatible at present. 2. 'niceverb' should typeset the ASCII +documentation of 'wiki.sty' ... This upload is for reference and +for proving that I am not just dreaming. I think repairing needs +only few hours, yet I must do something different right now. See +more on what's missing in 'niceverb.pdf'. + +3. I have a package 'nicedots' for controlling horizontal spacing +with ellipses which may go here. + + ________________________________ + [This file 2009/02/23 Uwe Lueck] diff --git a/Master/texmf-dist/doc/latex/nicetext/README.txt b/Master/texmf-dist/doc/latex/nicetext/README.txt new file mode 120000 index 00000000000..100b93820ad --- /dev/null +++ b/Master/texmf-dist/doc/latex/nicetext/README.txt @@ -0,0 +1 @@ +README \ No newline at end of file diff --git a/Master/texmf-dist/doc/latex/nicetext/docsrc/WIKICHEA.TEX b/Master/texmf-dist/doc/latex/nicetext/docsrc/WIKICHEA.TEX new file mode 100644 index 00000000000..e56bff99120 --- /dev/null +++ b/Master/texmf-dist/doc/latex/nicetext/docsrc/WIKICHEA.TEX @@ -0,0 +1,148 @@ +\ProvidesFile{wikicheat}[2008/07/10 Cheatsheet for wiki.sty] +% \def\title{Cheatsheet for the \textsf{wiki} Package} +\def\title{\textbf{Cheatsheet} for the \textbf{\textsf{wiki}} Package} +\def\author{Uwe L\"uck} +\documentclass[12pt,a4paper]{article} +\nofiles +\pagestyle{empty} +\makeatletter +\@ifundefined{UndeclareTextCommand}{}{\usepackage{upquote}} %% 2008/07/02 +\makeatother +\usepackage{wiki} +% \let\WE\relax \let\WF\relax \let\WH\relax +\let\WE\wikiEnvironments +\let\WF\wikiFonts +\let\WH\wikiHeadings +\def\SP#1{\multicolumn{3}{\VR c\VR}{% +% \parbox{11cm}{% + \parbox{13cm}{% + \footnotesize\it\sloppy\SU#1\SD}}} +\def\SL{/\hskip.16667em} +% \setbox0\hbox{(}\showthe\ht0\showthe\dp0 %% height = 3x depth +\def\SU{\rule{0pt}{.99em}}%%%{1.1em}} +\def\HSU{\rule{0pt}{.75em}} +\def\SD{\rule[-.33em]{0pt}{0pt}}%%%45em]{0pt}{0pt}} +% \def\CS#1{{\tt\textbackslash #1}} %% 2008/07/02 +{\makeatletter \gdef\CS#1{{\tt\@backslashchar#1}}} +\let\VR| \catcode`\|\active \def|{\verb|} +\begin{document} +% \maketitle + +\enlargethispage{3\normalbaselineskip} +\vspace*{-\topmargin} %% !? +\vspace*{-\headheight}\vspace*{-\headsep}\vspace*{-\topsep}\vspace*{-\partopsep} +\begin{center} +\large \title\\[.4ex] \normalsize +Some \LaTeX-Markup through some Wiki-Markup\\[.8ex] + \author, \today +% \end{center} + +\vspace{\topsep} +\vspace*{\partopsep} +% \vspace{1.5ex} +% \vspace{1ex} +% \hrule +% \vspace{1ex} + +% \begin{center} +\leavevmode\kern-1em +\begin{tabular}{\VR l\VR l\VR l\VR} +\hline\hline +\SU\SD\bf Code for \textsf{wiki.sty}&\bf What you get& \bf like \LaTeX-code\\ +\hline\hline +|''italic''|&\WF ''italic''&|\textit{italic}|\SU\\ +|'''bold'''|&\WF '''bold'''&|\textbf{bold}|%%%\\ +\SD\\ +% |'''''bf+it'''''|&\WF '''''bf+it''''' +% &|\textbf{\textit{bf+it}}|\SD\\ +% |'''''B+I'''''|&\WF '''''B+I''''' &|\textbf{\textit{B+I}}|\SD\\ +\hline +\SP{``Italic'' and ``bold'' may be combined, nested, overlap. +% Automatic italic correction cannot be suppressed by \CS{nocorr}. +% Implementation uses \LaTeX\ internals; no groups are formed. +Quotation marks +% (even German) +usually are not +affected.---Turn +% {\tt '\string{\string}''} may help with +% apostrophes.---Turn +font feature on/off by \CS{wikiFonts}\SL\CS{nowikiFonts}; disable feature +entirely by package option {\tt noFonts}.}\\ +\hline\hline +|== Level 1 ==|&\Large\bf\HSU 1\quad Level 1&|\section{Level 1}|\SU\\ +|=== Level 2 ===|&\large\bf 1.1\quad Level 2&|\subsection{Level 2}|\SU\\ +|==== Level 3 ====|&\bf 1.1.1\quad Level 3&|\subsubsection{Level 3}|\\ +|===== Level 4 =====|&\bf Level 4 &|\paragraph{Level 4}|\SD\\ +|====== Level 5 ======|&\bf Level 5 &|\subparagraph{Level 5}|\SD\\ +\hline +\SP{Turn heading feature on/off by \CS{wikiHeadings}\SL\CS{nowikiHeadings}; +disable feature entirely by package option {\tt noHeadings}.}\\ +\hline\hline +&&|\begin{itemize}|\SU\\ +|* One|&\textbullet\hspace\labelsep One &|\item One|\\[2\parsep] +|* Two|&\textbullet\hspace\labelsep Two &|\item Two|\\ +&&|\end{itemize}|\SD\\ +\hline +&&|\begin{enumerate}|\SU\\ +|# One|&1.\hspace\labelsep One &|\item One|\\[2\parsep] +|# Two|&2.\hspace\labelsep Two &|\item Two|\\ +&&|\end{enumerate}|\SD\\ +\hline +&&|\begin{description}|\SU\\ +|;[club] explain|&\textbf{club}\hspace\labelsep explain + &|\item[club] explain|\\[2\parsep] +|;[widow] explain|&\textbf{widow}\hspace\labelsep explain + &|\item[widow] explain|\\ +&&|\end{description}|\SD\\ +\hline + & &|She wrote:|\SU\\ +|She wrote:|&\smash{\raisebox{\topsep}{She wrote:}}&|\begin{quote}|\\ +|:Indeed| &\hspace\leftmargini Indeed&|Indeed|\\ + & &|\end{quote}|\SD\\ +\hline + & &|Type|\SU\\ +|Type| &\smash{\raisebox{\topsep}{Type}}&|\begin{verbatim}|\\ +| \typeout{OK!}| &|\typeout{OK!}|&|\typeout{OK!}|\\ + & &|\end{verbatim}|\SD\\ +\hline +\SP{A \CS{begin} is executed when {\tt*} etc.\ is first character of a +code line; an indent starts {\tt verbatim}. +\CS{end} is executed at code line without indent and not beginning with +{\tt*} etc.---Turn this feature on by \CS{wikiEnvironments}; turn off by +\CS{nowikiEnvironments}, e.g., to get around incompatibilities +(lists feature is most dangerous). +Disable feature entirely by package option {\tt noEnvironments}. +Package option {\tt noVerbatim} instead may usually suffice, +if you don't want to have any {\tt verbatim}.}\\ +\hline +\end{tabular} +\kern-1em +\end{center} + +% \section{Test}\subsection{Sub-Test}\subsubsection{Subsub-Test} +% \paragraph{Para}\subparagraph{Sub-Para} + +\footnotesize +% \vspace{2ex} +\sloppy +\noindent \WE\WF %%% '''Please note:''' +''Note:'' +% * +Explicit '''turning on''' by %%% one of +% \[|\wikiEnvironments|,\quad |\wikiFonts|,\quad |\wikiHeadings|\] +|\wikiEnvironments| %%% , |\wikiFonts|, |\wikiHeadings|, +etc.\ +% or by |\wikimarkup| (which executes the former three) is ''required''; +is '''required'''; +e.g., after %%% |\maketitle| and +|\tableofcontents|. +|\wikimarkup| '''activates ''all''''' the features. +% * +|\nowikimarkup| %%% executes all of +% \[|\nowikiEnvironments|,\quad |\nowikiFonts|,\quad |\nowikiHeadings|.\] +% |\nowikiEnvironments|, |\nowikiFonts|, |\nowikiHeadings|. +% Use them to get around incompatible code. +'''''dis''ables all''' of them, e.g., to get around incompatibilities. + +\end{document} + diff --git a/Master/texmf-dist/doc/latex/nicetext/docsrc/makedoc.tex b/Master/texmf-dist/doc/latex/nicetext/docsrc/makedoc.tex new file mode 100644 index 00000000000..65beb83f9f1 --- /dev/null +++ b/Master/texmf-dist/doc/latex/nicetext/docsrc/makedoc.tex @@ -0,0 +1,82 @@ +\ProvidesPackage{makedoc.tex}[2009/02/21 (UL)] +%% make packagecode environments and remove percents starting lines + +\makeatletter \catcode`\_=11 + +\openin\@inputcheck=niceverb.sty %% JUST HERE +\newwrite\result_file + \immediate\openout \result_file=niceverb.doc %% JUST HERE + +\newif\if_package_code_ \_package_code_false +% \newif\if_empty_code_lines_ \_empty_code_lines_false + %% <- FAILED SO FAR +% \let\maybe_result_empty_line\empty +% \def\result_empty_line{^^J} + +\def\write_result{\immediate\write\result_file} + +\def\process_file{% + %% This macro here to avoid category changes + %% affecting the present code + \begingroup + \let\do\@makeother \dospecials + %% from docstrip.tex: + \@makeother\^^A\@makeother\^^K\endlinechar\m@ne + %% <- cf. TeXbook "extended keyboards" up-/downarrow + %% -> "math specials", cf. "space specials" + \@makeother\^^I% ASCII horizontal tab -- guessed!? ^^L!? +% \tracingmacros=1 + \loop \ifeof\@inputcheck \else + \read\@inputcheck to \InputLine + \expandafter \process_line \InputLine ======&%% primitive version + \repeat + \endgroup} + +\def\process_line#1===#2===#3&{%% may be preferable to wiki.sty + \ifx$#2$% + \ifx$#1$% +% \show\InputLine + \if_package_code_ +% \if_empty_code_lines_ +% \write_result{}\_empty_code_lines_false +% \fi + \else + \write_result{}% +% \let\maybe_result_empty_line\result_empty_line + \fi + \else +% \show\InputLine + \if_package_code_ +% \_empty_code_lines_true + \else + \write_result{\string\begin{packagecode}}% + \_package_code_true + \fi + \write_result{#1}% +% \write_result{\maybe_result_empty_line #1}% +% \let\maybe_result_empty_line\empty + \fi + \else + \write_result{% + \string\end{packagecode}^^J^^J% + \string\subsection{\ignorespaces#2\unskip}^^J}% + \_package_code_false +% \_empty_code_lines_false + \fi} + +\process_file + +\write_result{\string\end{packagecode}} +\closein\@inputcheck \immediate\closeout\result_file + +\endinput + +\stop + %% TODO or \ThankYou; which NICEVERB.TEX may redefine into \endinput + %% or \ThankYou issues \endinput if jobname ... + %% the whole file may be enclosed in \begingroup ... \endgroup + %% ... this is a "driver file"!? + +TODO make own listing environment like this -- own linewise processing, + without verbatim.sty + diff --git a/Master/texmf-dist/doc/latex/nicetext/docsrc/niceverb.tex b/Master/texmf-dist/doc/latex/nicetext/docsrc/niceverb.tex new file mode 100644 index 00000000000..be4c19e3e43 --- /dev/null +++ b/Master/texmf-dist/doc/latex/nicetext/docsrc/niceverb.tex @@ -0,0 +1,261 @@ +\ProvidesFile{niceverb.tex}[2009/02/23 documenting niceverb.sty] +\title{\textsf{niceverb.sty}\\---\\Minimizing + Markup\\for Documenting \LaTeX\ packages\thanks{This + manual describes package version + version 0.1 as of February 23, 2009%%%\fileversion\ as of \filedate\ + .}}%%%of the package.}} +\author{Uwe L\"uck\\{\tt http://contact-ednotes.sty.de.vu}} +\input{makedoc} +\documentclass[12pt,a4paper]{article} +\usepackage{niceverb} +\usepackage{moreverb} +% \usepackage{verbatim} +\newenvironment{packagecode} + {\PackageCode} + {\endPackageCode} + \gdef\PackageCode{\listing[5]{1}} + \gdef\endPackageCode{% + \endlisting + \global\let\PackageCode\listingcont + \global\let\endPackageCode\endlistingcont} +\begin{document} +\maketitle + +\tableofcontents + +\section{Presenting 'niceverb'} +\subsection{Purpose} +% \begin{abstract}\noindent +% The 'nicetext' bundle provides ``minimal'' markup +The 'niceverb' package provides ``minimal'' markup for documenting \LaTeX\ +packages, reducing the number of keystrokes/visible characters needed +% .\,.\,. %%% ... %% TODO nicedots +(kind of poor man's WYSIWYG).\footnote{``What you see is what you +get.'' Novices are always warned that WYSIWYG is essentially +impossible with \LaTeX.} +% One feature---\verb'&\foo'%%% badly self-documenting, `&' fails +It conveniently handles command names in arguments of macros +such as &\footnote or even of sectioning commands. +% (`.aux'/`.toc' entries). +% +% This is done by making some characters active. +% 'niceverb.sty' thus resembles 'wiki.sty'; both are siblings. +% \end{abstract} +Commands for typesetting a package's code are inserted +automatically (just using \TeX). %%%\footnote{Stephan I. B\"ottcher used +%%%'AWK' instead to typeset the documentation of his 'lineno.sty'.} +As opposed to tools that are rather common on UNIX/Linux, this +operation should work at any \TeX\ installation, irrespective of +platform. + +The package may at least be useful while working at a very new package +and may suffice with small, simple packages. After having edited your +package's code (typically in a `.sty' file), you just ``{`latex'}'' the +manual file (maybe some `.tex' file) and get instantly the corresponding +refreshed documentation. + +'niceverb' may also help to generate without much effort documentations +of nowadays commonly expected typographical quality for packages that +so far only had ASCII documentations. + +\subsection{Acknowledgement/Basic Ideas} +Three ideas of Stephan I. B\"ottcher's in documenting his 'lineno.sty' +inspired the present work: +\begin{enumerate} +\item +The markup and its definitions are short and simple, +markup commands are placed at the right ``margin'' +of the ASCII file, +so you hardly see them in reading the source file, +you rather just read the text that will be printed. +\item +An 'AWK' script removes the `%'s starting \emph{documentation} lines +and inserts the commands for typesetting the package's \emph{code} +(you don't see them in the source). +\item +An active character (\lq`|'\rq) issues a `\string' \emph{and} switches +to typewriter typeface for typesetting a command verbatim---so this +works without changing category codes (which is the usual idea of +typesetting code), therefore it works even in macro arguments. +\end{enumerate} + +\subsection{The Commands and Features of 'niceverb'} + +Single quotes \verb|`|, \verb|'|, ``less than'' \verb|<| (accompanied +with \verb|>|), the hash mark \verb|#|, ampersand \verb|&|, and in an +extended ``auto mode'' even backslash \verb|\| become &\active +characters with ``special effects.'' + +The package mainly aims at typesetting commands and descriptions of their +syntax \emph{if the latter is ``standard \LaTeX-like''}, +using ``meta-variables.'' A string to be +typeset ``verbatim'' thus is assumed to start with a single command like +&\foo, maybe followed by stars (\lq`*'\rq) and pairs of +square brackets (`['.\,.\,.`]') or +curly braces (\verb'{'.\,.\,.\verb'}'), +where those pairs contain strings indicating the typical +kinds of contents for the respective arguments of that command. +A typical example is this: +$$&\foo*[]{}$$ +This was achieved by typing \verb'&\foo*[]{}'. +In ``auto mode'' of the package, even typing +$$\verb|\foo*[]{}|$$ + %% angle brackets feature to be suppressed here! +would have sufficed---WYSIWYG! (I call such mixtures of +\emph{verbatim} and ``meta-variables'' \textit{\lq meta-code\rq}.) + +Now for the details: +\begin{description} + +\item[``Meta-variables:''] {\sloppy The package supports the ``angle +brackets'' style of ``meta-variables'' (as with ). +You just type \lq\verb''\rq\ to get \lq\rq.\par} + +This works due to a sloppy variant &\SimpleVerb of &\verb +which doesn't care about possible ligatures and definitions of active +characters. Instead, it assumes that the ``verbatim'' font doesn't +contain ligatures anyway. \lq\verb'\verb||'\rq, by contrast, just +yields \lq\verb''\rq. + +Almost the same feature is offered by 'ltxguide.cls' which formats the +basic guides from the \LaTeX\ Project Team. The present feature, +however, also works in plain text outside verbatim mode. +% On the other hand: without << feature + +\item[Single quotes (left/right) for ``short verb:''] +{\sloppy The package ``assumes'' that \emph{quoting} refers to +\emph{code}, therefore \lq\verb|`foo'|\rq\ is typeset as +\lq`foo'\rq. This somewhat resembles the &\MakeShortVerb feature of +'doc.sty'.\par} + +It will typically fail when you try to typeset commands (and their +syntax) in \emph{macro arguments}---e.g., +$$\verb|\footnote{`\bar' is a celebrated fake example!}|$$ +will try to \emph{execute} &\bar instead of typesetting it, giving +an ``undefined'' error so. +\verb|\verb| fails in the same situation, for the same reason. +\lq\verb|&|\rq\ (&\footnote{&&&\bar}) or +``auto mode'' (see below) may then work better. + +Double quotes and apostrophes should still work the usual way; +otherwise you could control the parsing mechanisms using curly braces +(outside and inside don't interact). +To get usual single quotes, you can use their standard substitutes +`\lq' and `\rq'. +You can ``abuse'' this ``single quotes'' feature just to get typewriter +typeface.\footnote{In macro arguments this requires that the right +single quote &' is &\active.} +For difficult cases, you can still use the standard `\verb' +command from \LaTeX. + +\item[Single right quotes for &\textsf:] +{\sloppy Package names are (by some unwritten convention!?) +typeset with `\textsf'; +it was natural to use a remaining case of using single quotes +for replacing &\textsf{} by \SimpleVerb|''|.\footnote{% +Font switching by sequences of single quotes is a feature of the +syntax for editing Wikipedia pages and of 'wiki.sty'.}\par} +%% TODO fails in parentheses due to preserving apostrophes + +This idea of switching fonts continues font switching of 'wiki.sty' +which uses the syntax for editing Wikipedia pages. + +\item[Ampersand \lq&&\rq\ typesets command syntax even in arguments:] +\hfil e.g., type \lq\verb|&\foo{}|\rq\ to get +\lq`\foo{}'\rq. This may be even more convenient for typing than +the single quotes method, although looking somewhat strange. +However, `&' may terminate \textit{verbatim} unexpectedly, being +designed for displaying ``\LaTeX-like command syntax'' in the first +instance.\footnote{Moreover, && currently has a limited 'xspace' +functionality only.}\footnote{You can even use && for referring to +active characters like && in footnotes etc.!} + +\begin{sloppypar} +This choice of `&' rests on the assumption that there won't be many +tables in the documenation. You can restore the usual meaning of `&' +by \verb|\MakeAlign\&| and turn the present special meaning on again by +$$\verb|\MakeActiveLet\&\CmdSyntaxVerb|.$$ +You could also +redefine (&\renewcommand) &\descriptionlabel using `\CmdSyntaxVerb' +(the ``normal command'' equivalent to `&') so \verb|\item[\foo]| works +as wanted. +\end{sloppypar} + +\item[``Auto mode'' typesets commands verbatim unless .\,.\,.] +{\sloppy +\hfil In~``auto mode'', the backslash \lq`\'\rq\ is an active character that +builds a command name from the ensuing letters and typesets the +command (and its syntax, allowing meta-variables) verbatim. +However, there are some exceptions, which are collected in a macro +&\niceverbNoVerbList. &\begin, &\end, and &\item belong to this list, +you can redefine (`\renewcommand') it. +There is also a command &\NormalCommand{} \emph{issuing} the +command `\' instead of typesetting it. +Since auto mode is somewhat dangerous, you have to start it explicitly +by &\AutoCmdSyntaxVerb. You can end it by &\EndAutoCmdSyntaxVerb.\par} + +Auto mode is motivated by the observation that there are package files +containing their documentation as pure (well-readable) ASCII +text---containing the names of the new commands without any kind of +quotation marks or verbatim commands. +Auto mode should typeset such documentation just from the same ASCII +text. + +\item[Hash mark &# comes verbatim.] +No macro definitions are expected in the `document' +environment.\footnote{This idea recently appeared on the 'latex-l' +mailing list. It may be wrong, not sure at the moment, think of +'latexa.ltx' .\,.\,.} +Rather, \lq`#'\rq\ is an active character for taking the next +character (assuming it is a digit) to form a reference to a +\emph{macro parameter}---\lq`#1'\rq\ becomes \lq#1\rq\ (WYSIWYG +indeed!). +\end{description} + +\subsection{What is Wrong with the Present Version} +\begin{enumerate} +\item +'niceverb.sty' should be an extension of 'wiki.sty'; +yet their font selection mechanisms are currently not compatible. +\item +Font switching or horizontal spacing may fail in certain situations with +parentheses. (You can correct spacing by \lq`\ '\rq.) +\item +The feature of mixing high-quality-typeset comments into the +package code listing is implemented in a very rudimentary way only. +% just allowing for `\subsection's. +The ``comment detector'' detects Wikipedia-style subsection titles +instead of lines beginning with percent characters.\footnote{% +Percent characters will definitely not be ``ignored'' as with &\DocInput, +rather they will hide rests of \emph{documentation} lines as usually, +while they will be typeset verbatim in \emph{package code} lines.} +% Switching between plain and verbatim typesetting in the package +% listings isn't settled yet, since there are different styles of using +% percent symbols. I have sometimes used double percent symbols +% (\lq\verb|%%|\rq) +% for commenting text and single ones just for ``reversible deletion of +% code,'' while usually single percent symbols indicate commenting text +% indeed. Double percent symbols may, by contrast, mean that the text remains +% visible in the `.sty' file only, suppressed in the typeset +% documentation ('lineno.sty'). +% For a while, it may be necessary to provide replacing macros for each +% package separately instead of providing a single macro package +% managing all of them. +\item +The code listing currently uses the `listing' and `listingcont' +environments of 'moreverb.sty'; +the code font and the line numbers may be too large. +\item +The ``vertical'' character \lq`|'\rq\ should be active and provide a +version of the `decl' environment of 'ltxguide.cls'. +\end{enumerate} + +\section{Implementation of the Markup Syntax} +% \verbatiminput{niceverb.sty} +% \listinginput[5]{1}{niceverb.sty} +\input{niceverb.doc} + +\section{Code Preparing Source for Typesetting} +This is at present in a file `makedoc.tex'. +\listinginput[5]{1}{makedoc} +\end{document} diff --git a/Master/texmf-dist/doc/latex/nicetext/niceverb.pdf b/Master/texmf-dist/doc/latex/nicetext/niceverb.pdf new file mode 100644 index 00000000000..51bd438d453 Binary files /dev/null and b/Master/texmf-dist/doc/latex/nicetext/niceverb.pdf differ diff --git a/Master/texmf-dist/doc/latex/nicetext/wikicheat.pdf b/Master/texmf-dist/doc/latex/nicetext/wikicheat.pdf new file mode 100644 index 00000000000..481c7e314d4 Binary files /dev/null and b/Master/texmf-dist/doc/latex/nicetext/wikicheat.pdf differ diff --git a/Master/texmf-dist/tex/latex/nicetext/niceverb.sty b/Master/texmf-dist/tex/latex/nicetext/niceverb.sty new file mode 100644 index 00000000000..c82ae3deaa0 --- /dev/null +++ b/Master/texmf-dist/tex/latex/nicetext/niceverb.sty @@ -0,0 +1,210 @@ +\NeedsTeXFormat{LaTeX2e}[1994/12/01] +\ProvidesPackage{niceverb}[2009/02/21 + minimize \string\verb\space code (UL)] + +%% Copyright (C) 2009 Uwe Lueck, +%% http://www.contact-ednotes.sty.de.vu +%% -- author-maintained in the sense of LPPL below -- +%% +%% This file can be redistributed and/or modified under +%% the terms of the LaTeX Project Public License; either +%% version 1.3a of the License, or any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% We did our best to help you, but there is NO WARRANTY. +%% +%% Please report bugs, problems, and suggestions via +%% +%% http://www.contact-ednotes.sty.de.vu +%% +%% === Switching category codes === +\providecommand{\CatCode}{\catcode`} +% \providecommand*{\MakeActive}[1]{\CatCode#1\active} +\providecommand*{\MakeAlign} [1]{\CatCode#14\relax} +\providecommand*{\MakeLetter}[1]{\CatCode#111\relax} +\providecommand*{\MakeOther} [1]{\CatCode#112\relax} +\providecommand*{\MakeSub} [1]{\CatCode#18\relax} + +\newcommand*{\MakeActiveLet}[2]{%% cf. \@sverb & \do@noligs + \CatCode#1\active + \begingroup + \lccode`\~`#1\relax \lowercase{\endgroup \let~#2}} + +\MakeLetter\_ + +\newcommand*{\make_iii_other}{\MakeOther\\\MakeOther\{\MakeOther\}} + +%% === Parsimonious version of &\verb === +\newcommand*{\begin_min_verb}{% + \relax \ifmmode \hbox \else \leavevmode\null \fi + %% standard, for $$...$$ + \bgroup \tt %%%\let\do\MakeOther \dospecials + \MakeLetter\_\MakeLetter\@} +\newcommand*{\SimpleVerb}[1]{% + %% mainly avoid \verb's noligs list which overrides definitions + %% of some active characters, while cmtt doesn't have any + %% ligatures anyway. + \ifx\protect\@typeset@protect + \begin_min_verb \make_iii_other \MakeActiveLet#1\egroup + \else \string\SimpleVerb \string#1\fi} + +%% === Single quotes make code === +\newcommand*{\lq_verb}{% + \ifx\protect\@typeset@protect + \expandafter \lq_double_test + \else \lq \fi} +% \ifcat\noexpand'\noexpand~% +% \expandafter\expandafter\expandafter +% \protect_corresp_quotes +% \else +% \RqVerb +% \fi +% \fi} +\newcommand*{\lq_double_test}{% + %% test settles next catcode, better switch to ``other'' + %% in advance: + \begingroup \let\do\MakeOther \dospecials + \futurelet\let_token \lq_double_decide} +\newcommand*{\lq_double_decide}{% + \ifx\let_token\lq_verb + \endgroup + \lq\lq \expandafter \@gobble + %% corresponding right quotes will become ``other'' due to + %% having no space at the left. TODO to be changed with + %% wiki.sty + \else + \endgroup +% \expandafter \rq_verb + \expandafter \SimpleVerb \expandafter \'% + \fi} +% \newcommand*{\rq_verb}{\SimpleVerb\'} +% \AtBeginDocument{\MakeActiveLet\`\RqVerb} +\AtBeginDocument{\MakeActiveLet\`\lq_verb} + %% Strings referred to will be code + %% TODO to be changed with wiki.sty + +%% === Single mark for reference to commands === +\newcommand*{\CmdSyntaxVerb}{% + \ifx\protect\@typeset@protect + \expandafter \cmd_syntax_verb + \else %% thinking of .aux only + \string\CmdSyntaxVerb \expandafter \string + \fi} +\newcommand*{\cmd_syntax_verb}[1]{% + \begin_min_verb \string#1\futurelet\let_token \after_cs} + +\AtBeginDocument{\MakeActiveLet\&\CmdSyntaxVerb} + %% not needed with \Auto... OTHERWISE useful in args! + %% TODO \MakeAmpCmdSyntax + %% TODO \let\endcell& (wie \endline, \endgraf) \MakeEndCell +\newcommand*{\after_cs}{% + \ifcat\noexpand\let_token a\egroup \space + \else \expandafter \decide_verb \fi} +\newcommand*{\test_more_verb}{\futurelet\let_token \decide_verb} +\newcommand*{\decide_verb}{% +% \show\let_token + \jumpteg_on_with\bgroup\braces_verb + \jumpteg_on_with[\brackets_verb + \jumpteg_on_with*\star_verb + \egroup} + %% CAUTION/TODO wrong before (... if cmd without arg + %% use \ then or choose usual verb... + %% or \MakeLetter\( etc. ... or \xspace +\newcommand*{\jumpteg_on_with}[2]{% + \ifx\let_token#1\do_jumpteg_with#2\fi} + %% TODO cf. xfor, xspace (break@loop); + %% \DoOrBranch#1...#1 or so +\def\do_jumpteg_with#1#2\egroup{\fi#1} +\def\braces_verb#1{\string{#1\string}\test_more_verb} +\def\brackets_verb[#1]{[#1]\test_more_verb} +\def\star_verb*{*\test_more_verb} + + +\makeatletter + +%% === Escape makes meta-code === +\DeclareRobustCommand*{\BuildCsSyntax}{% + \futurelet\let_token \build_cs_syntax_sp} +\newcommand*{\build_cs_syntax_sp}{% + \ifx\let_token\@sptoken \else %% TODO ^^M!? + \expandafter \start_build_cs_syntax + \fi} +\newcommand*{\start_build_cs_syntax}[1]{% + \edef\string_built{\string#1}%% #1 may be active + \MakeLetter\_\MakeLetter\@%% CAUTION, cf. ... + \test_more_cs} +\newcommand*{\test_more_cs}{% + \futurelet\let_token \decide_more_cs} +\newcommand*{\decide_more_cs}{% + \ifcat\noexpand\let_token a\expandafter \add_to_cs + \else + \MakeSub\_\MakeOther\@% + \expandafter \in@ \expandafter + {\csname \string_built \expandafter \endcsname + \expandafter}\expandafter{\niceverbNoVerbList}% + \ifin@ + \csname \string_built + \expandafter\expandafter\expandafter \endcsname + \else + \begin_min_verb \@backslashchar\string_built + \expandafter\expandafter\expandafter \test_more_verb + \fi + \fi} + %% TODO such \if nestings with ifthen!? + %% cf.: +% \let\let_token,\typeout{\meaning\let_token} + %% TEST TODO fuer xspace!? (\ifin@) +\newcommand*{\add_to_cs}[1]{% + \edef\string_built{\string_built#1}\test_more_cs} +\newcommand*{\AutoCmdSyntaxVerb}{\MakeActiveLet\\\BuildCsSyntax} + %% TODO or \niceverbswitch... + +\newcommand*{\EndAutoCmdSyntaxVerb}{\CatCode\\\z@} +\newcommand*{\NormalCommand}{} \let\NormalCommand\@nameuse +%% Were tests: +% \futurelet\LetToken\relax \relax +% \show\LetToken \typeout{\ifcat\noexpand\LetToken aa\else x\fi} + +\newcommand*{\niceverbNoVerbList}{% + \begin\end\item\verb\EndAutoCmdSyntaxVerb\NormalCommand + \section\subsection}%% TODO!? + +%% === Meta-variables === +\def\niceverb_meta#1>{% + \mbox{\normalfont\itshape $\langle$#1\/$\rangle$}} + %% TODO offer without angles as well +\AtBeginDocument{\MakeActiveLet\<\niceverb_meta} + %% difference to ltxguide.cls: also outside verbatim + +%% === Hash mark must be code === +\newcommand*{\param_verb}[1]{{\tt\##1}} +\AtBeginDocument{\MakeActiveLet\#\param_verb} + +%% === Single right quote for &\sf === +%% TODO fails in parentheses due to preserving apostrophes +\newcommand*{\niceverb_rq_sf}{% + \ifx\protect\@typeset@protect + \expandafter \niceverb_rq_sf_test + \else \rq \fi} + %% introduced another macro just to avoid more sequences + %% of \expandafter ... +\newcommand*{\niceverb_rq_sf_test}{% + \ifhmode \ifdim\lastskip>\z@ + \expandafter\expandafter\expandafter \niceverb_rq_sf_exec + %% TODO but after `('!? make \( active, also for \after_cs!? + \else \rq \fi + \else \ifvmode + \expandafter\expandafter\expandafter \niceverb_rq_sf_exec + \else \rq \fi + \fi} +{\CatCode\'\active \gdef\niceverb_rq_sf_exec#1'{\textsf{#1}}} +%% TODO to be changed with wiki.sty: +\AtBeginDocument{\MakeActiveLet\'\niceverb_rq_sf} + +%% TODO \niceverbswitch{}{} (bzw. Doku ohne {}) + +%% === Leave package mode === +\makeatother +\MakeSub\_ + +\endinput diff --git a/Master/texmf-dist/tex/latex/nicetext/wiki.sty b/Master/texmf-dist/tex/latex/nicetext/wiki.sty new file mode 100644 index 00000000000..6fe7b4e4b46 --- /dev/null +++ b/Master/texmf-dist/tex/latex/nicetext/wiki.sty @@ -0,0 +1,376 @@ +\ProvidesPackage{wiki}[2008/07/02 v0.2 LaTeX through Wiki markup] +%% <- vorige Aenderungen gg. 2008/06/25 verworfen +%% +%% == Legal == +%% (C) 2008 Uwe Lueck http://contact-ednotes.sty.de.vu +%% License: http://www.latex-project.org/lppl/ +%% -- AUTHOR-MAINTAINED, NO WARRANTY! +%% +%% == Features == +%% +%% The `wiki' package enables LaTeX users to use some of the +%% markup used in editing Wikipedia pages, cf. +%% +%% http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet +%% +%% or German: +%% +%% http://de.wikipedia.org/wiki/Hilfe:Bearbeitungshilfe +%% http://de.wikipedia.org/wiki/Hilfe:Textgestaltung +%% +%% Advantages of such a kind of markup are: +%% +%% 1. easier and faster to type than LaTeX code; +%% +%% 2. intuitive, understandable at a glance; +%% +%% 3. in reading the source code of the document, +%% the markup doesn't much distract from the ''text'' +%% to be printed. +%% +%% There is a binary `easylatex' available on CTAN which is more +%% powerful than the `wiki' package; the idea here is that a ''macro +%% package'' doing something similar is easier to use and to customize. +%% +%% +%% === What the Package Supports === +%% +%% 1. ''Italics'' are marked up by surrounding pairs of apostrophes, +%% '''boldface''' needs one apostrophe more on each side. +%% Boldface and italics may be nested or overlap. +%% (This endangers quoting, but I have dealt with it.) +%% +%% 2. Surrounding ``equals'' symbols (`=') mark up section headings +%% etc.: `== Section ==', `=== Subsection ===', down to +%% `===== Subparagraph ====='. +%% +%% 3. If a line starts with `*', it becomes an item in an +%% `itemize' environment. Likewise, `#' creates an `enumerate' +%% environment, and `;' makes an item in a `discription' +%% environment (differs from Wiki! -- since I don't understand +%% what the Wiki version is good for). `:' makes a `quote' -- +%% while on Wikipedia instead is used for comments on talk +%% pages. But it is also used for indented math displays, +%% so it may be combined with $...$ here. +%% An indented line is typeset ''verbatim''. Each of these +%% environments is ended by a code line without leading blank +%% spaces. +%% +%% +%% === Limitations === +%% +%% 1. The markup ``language'' provided here replaces a few most +%% common LaTeX commands only in their most simple versions. +%% (Yet I think that already this makes the code more readable; +%% the more special cases are very rare.) E.g., it's not +%% possible to suppress the italic correction as with +%% `\textit{...\nocorr}'. However, in ``normal'' cases it +%% should be possible to use the more powerful LaTeX markup +%% mixed with ``Wiki'' markup. +%% +%% 2. The parsing algorithms employed here differ in outcome to +%% those of Wikipedia in difficult cases. +%% +%% 3. Tables, nesting lists, links, Wiki templates and tags +%% are not supported -- and I don't expect that I can afford +%% improving this soon! +%% +%% 4. I still have encountered problems that I didn't understand ... +%% +%% == Package Options and User Commands == +%% +%% \usepackage[]{wiki}, of course. There are +%% `noEnvironments', `noFonts', `noHeadings' giving up +%% functionality for lists etc., for italics and boldface, +%% for section headings etc., respectively. +%% +%% There are commands \wikimarkup, \wikiEnvironments, +%% \wikiFonts, \wikiHeadings to turn respective functionality on +%% (unless disabled by package option). \nowikimarkup, +%% \nowikiEnvironments, \nowikiFonts, \nowikiHeadings turn them +%% off. +%% +%% '''Vital:''' The package does ''not'' execute \wikimarkup +%% because this would have strange effects, e.g., packages +%% loaded later may break. The user must put activating +%% commands into the `document' environment, maybe just preceding +%% the first heading. +%% +%% Dangers to be avoided by \nowiki... are: +%% * \wikiHeadings (which also is executed by \wikimarkup) +%% disables TeX assignments using `='. +%% * \wikiEnvironments (executed by \wikimarkup) executes macros +%% at every end of a code line (containing no comment marke), +%% and it tries to typeset a following line verbatim if it is +%% indented. +%% +%% +%% == Implementation and Further Remarks == + +%% === Commands for Category Codes === +% \RequirePackage{fdcodes} + %% <- TODO -- or do away ... -> +\providecommand*\AssignCatCode[2]{\catcode`#1=#2\relax} +\providecommand*\MakeActive[1]{\catcode`#1=\active} +% \providecommand*\MakeLetter[1]{\catcode`#1=11\relax} + %% <- Declaring characters usable in command strings + %% Todo: print arrow indicators like ``->'' as real arrows +\providecommand*\MakeOther [1]{\catcode`#1=12\relax} + +\AssignCatCode{\_}{11} +% \MakeLetter\_ %% own macros somewhat LaTeX3-style +%% Todo \newcommand <-> \def !? + +%% === Package Options === +\DeclareOption{noFonts} {\let\wikiFonts \empty + \let\nowikiFonts \relax} +\DeclareOption{noHeadings} {\let\wikiHeadings \empty + \let\nowikiHeadings \relax} +\DeclareOption{noEnvironments}{\let\wikiEnvironments \empty + \let\nowikiEnvironments\relax} +\DeclareOption{noVerbatim}{% + \def\W_active_return{ \futurelet\@let@token\W_on_firsttoken}} + %% \[no]wikiVerbatim must wait, too complex 2008/07/01 +\ProcessOptions + +%% === Auxiliaries for both Fonts and Headings === + + \@tempswafalse + \ifx\wikiFonts \empty \else \@tempswatrue \fi + \ifx\wikiHeadings\empty \else \@tempswatrue \fi + \if@tempswa +\def\W_start_samecnt{\futurelet\@let@token\W_process_samecnt} +\def\W_init_samecnt#1#2#3{% + \let\W_samesymb =#1%% repeated symbol + \def\W_repllist {#2}% replacing strings + \def\W_incase_all{#3}% final replacement + \def\W_next##1{\W_start_samecnt}} +\def\W_process_samecnt{% + \expandafter \W_splitlist \W_repllist \@nil + \W_next} +\def\W_splitlist#1#2\@nil{% + \def\W_repllist{#2}% + \ifx\@let@token\W_samesymb + \ifx\W_repllist\empty \def\W_next##1{\W_incase_all}\fi + \else + \def\W_next{#1}% + \fi} + \fi + +%% === Italics and Boldface === + +%% ==== Code ==== + \ifx\wikiFonts\empty \else +\def\W_toggle#1#2#3{\def#1{\W_toggle#1{#3}{#2}}#2} +%% Cf. LaTeX's `\DeclareTextFontCommand': +\def\W_bf_toggle{% + \W_toggle\W_bf_toggle{\bfseries\W_maybe@ic}{\mdseries\W_maybe@ic}} +\def\W_maybe@ic{\futurelet\@let@token\W_maybe_maybe@ic} +\def\W_maybe_maybe@ic{% + \ifx\@let@token\W_rq_robust \else \expandafter \maybe@ic \fi} +\def\W_it_toggle{% + \W_toggle\W_it_toggle{\itshape\maybe@ic}{\upshape\maybe@ic}} +%% <- Doesn't support \nocorr. + +\def\W_rq_robust{%% will become meaning of single right quote. + \ifx\protect\@typeset@protect + \ifmmode \rq \else + \W_init_samecnt{\W_rq_robust}% + {\rq\W_it_toggle}% + {\W_bf_toggle}% + \expandafter\expandafter\expandafter \W_start_samecnt + \fi + \else \rq \fi} +%% Remark: +%% LaTeX's \rq expands to ``other'' apostrophe: +\CheckCommand*\rq{'} %% Must be before `\catcode`\' +%% \wikiFonts -- restoring `...' and ``...'' -- + \nowikiFonts: +%% requiring single left quote \active as well: +\CheckCommand*{\lq}{`} +\MakeActive\`\MakeActive\' +\def\wikiFonts{% + \MakeActive\`\MakeActive\'% + \def`##1'{\lq ##1\rq}% + \let'\W_rq_robust} +\def\nowikiFonts{\MakeOther`\MakeOther\'} +\MakeOther\` \MakeOther\' + \fi + +%% ==== Remarks ==== +%% Wiki: a''b'''cd typesets `b' in italic with an apostrophe, +%% a''b'''c'''d typsets all after `a' in italic with bold `b'. +%% One might use make a difference depending on \lastskip. +%% Wikimedia seems to read more ahead, maybe entire paragraphs. +%% %% <- Todo: try here!? (Test!) +%% +%% Todo: Variants using \textit and \textbf (option, switching +%% command) +%% +%% german.sty's "` and "' are not affected. +%% +%% Merit: ``...'' resembles ''...''; indeed Wikipedia Guidelines +%% demand to think which of both is appropriate in a +%% certain situation. + +%% A test about \ifx with active characters: +%\catcode`\`=\active \let`\rq \let'\rq +%\ifx`'\typeout{OHHH}\else \typeout{OCH}\fi %% OHHH +%% <- how typeset code commented out!? (^!? diff. comment char.!?) +%% indent %! TODO or no space after %!! TODO!! +%% xEDIT: dann Alt C/D fuer Kommentar/Dok./auskomm. (!?) !! + +%% === Section Headings === + + \ifx\wikiHeadings\empty \else +\providecommand*{\normalequals}{=} +\MakeActive\= +\def\wikiHeadings{\MakeActive\=\let=\W_eq_robust} +\def\nowikiHeadings{\MakeOther\=} +\def\W_eq_robust{% + \ifx\protect\@typeset@protect + %% in case without math mode in heading + \ifmmode \normalequals \else + \W_init_samecnt{\W_eq_robust}% + {\normalequals\W_sec\W_subsec\W_subsubsec + \W_para\W_subpara}% + {\W_bf_toggle}% + \expandafter\expandafter\expandafter \W_start_samecnt + \fi + \else \normalequals \fi} + +\def\W_sec #1=={\section{#1}} +\def\W_subsec #1==={\subsection{#1}} +\def\W_subsubsec #1===={\subsubsection{#1}} +\def\W_para #1====={\paragraph{#1}} +\def\W_subpara #1======{\subparagraph{#1}} + +\MakeOther\= + \fi + +%% Todo: think of reimplementation by the start-line +%% mechanism which is going to be used for lists. + +%% === Environments === +%% + \ifx\wikiEnvironments\empty \else + +%% ==== Prepare Dealing with Indents ==== + +\MakeActive{\^^M}% +\def\wikiEnvironments{\MakeActive{\^^M}\let^^M\W_active_return}% +\def\nowikiEnvironments{\AssignCatCode{\^^M}{5}}% +\nowikiEnvironments%% TeX restored + +\MakeActive{\ }% +\@ifundefined{W_active_return}{% +\expandafter\def\expandafter\W_active_return\expandafter{% +\space\catcode`\ \active\let \W_indent% +%% <- \W_indent will start verbatim +\futurelet\@let@token\W_on_firsttoken}% +}{}%% end of \@ifundefined which is true without noVerbatim +%% Much doubling for saving time (!??): +\expandafter\def\expandafter\W_list_activereturn\expandafter{% +\space\catcode`\ \active\let \W_restore_space% +%% <- \W_indent will start verbatim +\futurelet\@let@token\W_maybe_newitem}% +% \def\W_restore_space{\catcode`\ 10\relax}% + %% <- was vital for a math display in a list -> +\def\W_restore_space{\catcode`\ 10\ignorespaces}% +\W_restore_space%% TeX blank space restored + +%% ==== Start and End List-Like Environments ==== + +%% \W_on_firsttoken may be edited (preamble or .cfg): +\def\W_on_firsttoken{% + % \show\@let@token + \W_restore_space + \let\W_next\relax %% must be before \W_skip... works + \ifx\@let@token\W_active_return \expandafter \W_par \fi + %% <- found by guessing/with \show\@let@token + \let\W_item\item + \W_on_startenv{*}{itemize}% + \W_on_startenv{\W_hash}{enumerate}% + \W_on_startenv{;}{description}% + \let\W_item\relax %% must precede `quote' + \W_on_startenv{:}{quote}%% instead of quotation 2008/07/01 + \W_next} +\let\W_hash=# +\def\W_par#1\W_next{\par} +\def\W_skiprest_item#1\W_next#2{\W_item} + +\MakeActive{\^^M}% +\def\W_on_startenv#1#2{% + \ifx#1\@let@token% + \begin{#2}% + \let\W_itemsymbol#1% + \let^^M\W_list_activereturn% + \expandafter \W_skiprest_item% + \fi}% +\nowikiEnvironments% + +\def\W_maybe_newitem{% + \W_restore_space + \ifx\@let@token\W_itemsymbol + \expandafter \W_gobbling_item + \else + \ifx\@let@token\W_restore_space + \else + \ifx\@let@token\W_list_activereturn + \par + \else + \edef\W_next{\noexpand\end{\@currenvir}}% + \W_next + \fi + \fi + \fi} +\def\W_gobbling_item#1{\item} + +%% ==== Verbatim Environment ==== + +\def\W_indent{\begin{W_verbatim}} +\def\W_verbatim{% + \let\obeylines\W_obeylines + \@verbatim \frenchspacing\@vobeyspaces} +\let\endW_verbatim\endverbatim + +\MakeActive{\^^M} +\def\W_obeylines{% + \catcode`\^^M\active% + \def^^M{\par\futurelet\@let@token\W_check_verbcont}}% +\nowikiEnvironments% + +\def\W_check_verbcont{% + \ifx\@let@token\@xobeysp + \expandafter \@gobble %% gobble one space + \else + \def\W_next{\end{W_verbatim}}% + \expandafter \W_next + \fi} + +%% TODO: enable user to switch between environment ``encodings'' +%% or to disable some of them (edit \W_on_firsttoken) + + \fi %% from \ifx\wikiEnvironments \else + + +%% === Turning Wiki Markup On and Off === + +\def\wikimarkup{\wikiFonts\wikiHeadings\wikiEnvironments} +\def\nowikimarkup{% + \MakeOther\`\MakeOther\'\MakeOther\=\AssignCatCode{\^^M}{5}} + +% \wikimarkup %% strange effects here, to be put into document + +\AssignCatCode\_{8} +\endinput + +%% todo: tables, links, templates, (pseudo-)html-tags ... +%% TODO: credits: easylatex etc. +%% TODO: useful for: ... intuitive markup, ``poor man's WYSIWYG'', +%% ASCII-WYSIWYG. +%% Todo: improve Wiki markup: ``tab'' indents instead of `:' +%% as in testing for end of list: after finding one +%% leading space, test for another. + + + diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check index a6636dee6b0..36d22174d87 100755 --- a/Master/tlpkg/bin/tlpkg-ctan-check +++ b/Master/tlpkg/bin/tlpkg-ctan-check @@ -158,7 +158,7 @@ my @WorkingTLP = qw( mpman-ru ms msc msg mslapa multibib multicap multido multiobjective munich muthesis mwcls mxedruli nag namespc natbib nath nature ncclatex ncctools newlfm - nfssext-cfr nih noitcrul + nfssext-cfr nicetext nih noitcrul nomencl nomentbl nostarch notes notes2bib ntgclass ntheorem-vn numname numprint oberdiek ocr-latex octavo ofs ogham oldstyle onlyamsmath opcit diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc index e213e1c9bf8..e8ecc2b929c 100644 --- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc +++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc @@ -342,6 +342,7 @@ depend newlfm depend newspaper depend newvbtm depend nfssext-cfr +depend nicetext depend noitcrul depend nomencl depend nomentbl diff --git a/Master/tlpkg/tlpsrc/nicetext.tlpsrc b/Master/tlpkg/tlpsrc/nicetext.tlpsrc new file mode 100644 index 00000000000..536ae9b8c00 --- /dev/null +++ b/Master/tlpkg/tlpsrc/nicetext.tlpsrc @@ -0,0 +1,2 @@ +name nicetext +category Package -- cgit v1.2.3