\ProvidesFile{ifnextok.tex}[2011/06/26 documenting ifnextok.sty (UL)] \title{\textsf{\huge ifnextok}\\---\\\cs{IfNextToken} % \MakeNotSkipping\\{\\\relax}% instead of \cs{@ifnextchar}\\Does Not Skip Blank Spaces,\\ [\,and \qtd{\texttt{\string\\ [}} may print bracket in\\ new line\,]\thanks{This document describes version \textcolor{blue}{\UseVersionOf{ifnextok.sty}} of \file{ifnextok.sty} as of \UseDateOf{ifnextok.sty}.}} { \RequirePackage{makedoc}[2010/12/20] \ProcessLineMessage{} \MakeJobDoc{18}{\SectionLevelThreeParseInput} } \documentclass{article}%% TODO paper dimensions!? \input{makedoc.cfg} %% shared formatting settings \usepackage{color} % \ReadPackageInfos{ifnextok} %% 2011/06/26 \usepackage[stdbreaks]{ifnextok} %% 2011/05/27 % \usepackage{ifnextok} %% 2011/05/31 \newcommand*{\secref}[1]{Section~\ref{sec:#1}} %% 2011/05/30 \newcommand*{\meta}{\textit} %% 2011/06/14 % \MakeActive\" \def"#1"{``#1''} %% 2011/06/25 %% <- bad with examples!? TODO % \usepackage{german} \mdqoff %% 2011/05/31 % \tracingmacros=1 \tracingonline=1 % \IfNextSpace{\show\\}{\show\/} \makeatletter % \@beginparpenalty\@lowpenalty % \show\@xnewline % \tracingmacros=1 \tracingonline=1 % \NoNewlineSkipping % \NextTokenForNextChar\@xnewline % \show\@xnewline % \show\\ % \show\@normalcr \makeatother \sloppy \begin{document} % \MakeNotSkipping\\{\\\relax} \maketitle \begin{abstract} %%% \noindent % \MakeNotSkipping\\{\\\relax} % \mdqon \MakeNotSkipping"{\rq\rq} (``Uwe L"uck" ) The 'ifnextok' package deals with the behavior of \LaTeX's internal `\@ifnextchar' to skip blank spaces. This sometimes has surprising or for some users really \emph{unwanted} effects, especially with brackets following `\\' when %% v0.1a: was `where' the user does \emph{not} intend to specify an optional argument, rather wants that brackets are \emph{printed.} The package offers commands and options for modifying this behavior, maybe limited to certain parts of the document source.\\ [It works!] It may also be useful with active characters in lieu of `\\', % \mdqon e.g., the double quote `"' with \ctanpkgref{german}`.sty' or \ctanpkgref{babel}. v0.3 fixes behavior in non-typesetting mode with `\MakeNotSkipping', using a somewhat different technique than \LaTeX's robustifications. % `\DeclareRobustCommand'. \par\smallskip\noindent \strong{Keywords:}\quad macro programming, optional command arguments, manual line breaks, humanities \par\smallskip\noindent \strong{Related packages:}\quad \ctanpkgref{amsmath}, \ctanpkgref{mathtools} \end{abstract} \newpage %% 2011/06/26 \tableofcontents \newpage %% 2011/06/26 \section{Installing and Calling} The package file `ifnextok.sty' is provided ready, installation only requires putting it somewhere where \TeX\ finds it (which may need updating the filename data base).\urlfoot{ukfaqref}{inst-wlcf} Below the `\documentclass' line(s) and above `\begin{document}', you load `ifnextok.sty' (as usually) by \[`\usepackage{ifnextok}'\qquad \mbox{or by}\qquad `\usepackage[]{ifnextok}'\]--- described in Section~\ref{sec:options}. E.g., the \emph{main goal} of writing the package is achieved by \[`\usepackage[stdbreaks]{ifnextok}'\] % \section{The Package File} \section{Header (Legalize)} \input{ifnextok.doc} \end{document} VERSION HISTORY 2011/05/22f. very first 2011/05/27 mentioning [stdbreaks] for v0.11 2011/05/30 testing \MakeNotSkipping 2011/06/02 for v0.21: "related packages" 2011/06/26 for v0.3: mentioning \MakeNotSkipping, \newpage, different sectioning