\def\pkgname{minibox} \RequirePackage{filecontents} \begin{filecontents*}{README.txt} ___________________ The minibox package v0.1 A small package to provide a convenient input syntax for boxes that don't break their text over lines automatically, but do allow manual lines breaks, and that shrink to the natural width of the maximum line width. \minibox{Some\\ broken\\ text} \minibox[c]{Centred\\ broken\\ text} Will Robertson Copyright 2009 \end{filecontents*} %%%%%%%%%1%%%%%%%%%2%%%%%%%%%3%%%%%%%%%4%%%%%%%%%5%%%%%%%%%6%%%%%%%%%7%%%%%%%%% \begin{filecontents}{minibox.sty} \ProvidesPackage{minibox}[2009/04/21 v0.1 Another type of box.] % This is the simplest definition I can get away with. % But it's not perfect; expect changes in the future. \newcommand\minibox[2][l]{% \begin{tabular}{@{}#1@{}} #2 \end{tabular}% } \end{filecontents} %%%%%%%%%1%%%%%%%%%2%%%%%%%%%3%%%%%%%%%4%%%%%%%%%5%%%%%%%%%6%%%%%%%%%7%%%%%%%%% % Conditionally compile the documentation & generate the .ins file: \providecommand\pstoolCompile{Y} \if\pstoolCompile N \expandafter\endinput \fi \begin{filecontents*}{\pkgname.ins} %&latex \def\pstoolCompile{N} \input minibox.tex \csname@@end\endcsname \end{filecontents*} \makeatletter \documentclass{article} \usepackage[rm,medium]{titlesec} \usepackage{bigfoot,xcolor} \usepackage[colorlinks,linktocpage]{hyperref} \usepackage{gmdoc} \usepackage{gmverb} \dekclubs \stanzaskip=\bigskipamount \CodeSpacesGrey \usepackage{tocloft,varwidth} \setcounter{tocdepth}{1} \def\tocwidthA{0.45} \def\tocwidthB{0.45} \def\cftpartfont{\scshape} \def\cftsecfont{\small} \cftbeforesecskip=0pt \def\cftpartleader{} \def\cftpartafterpnum{\cftparfillskip} \def\cftsecleader{} \def\cftsecafterpnum{\cftparfillskip} \let\pkg\textsf \def\pkgopt#1{\texttt{[#1]}} \def\PDF{\textsc{pdf}} \def\PS{\textsc{ps}} \def\DVI{\textsc{dvi}} \def\EPS{\textsc{eps}} \usepackage{\pkgname} \usepackage[T1]{fontenc} \usepackage{microtype} \usepackage{lmodern} \usepackage[sc,osf]{mathpazo} \linespread{1.1} \frenchspacing \GetFileInfo{\pkgname.sty} \begin{document} \title{The \pkg{\pkgname} package} \author{Will Robertson\\\texttt{wspr81@gmail.com}} \date{\fileversion\qquad\filedate} \maketitle \part{User documentation} \section{The \cmd\minibox\ command} It's sometimes useful to be able to stack text over lines in a small box; this is similar to paragraph text broken over lines, but for small amounts of text when automatic line breaking is not required. In other words, I'm looking for an \cmd\mbox\ that allows manual line breaks. \begin{center} \fbox{\vbox{\hbox{abcd}\hbox{efg}\hbox{h}}} \end{center} This sort of thing is a little awkward in plain \TeX\ and \LaTeX. \begin{center} |\vbox{\hbox{abcd}\hbox{efg}\hbox{h}}|\par \end{center} This package defines the \cmd\minibox\DescribeMacro{\minibox}\ command to write this more conveniently. Here's an example: \begin{center} \verb|\def\x{abcd\\efg\\h}| \def\x{abcd\\efg\\h} \begin{tabular}{ccc} \verb"\minibox{\x}" & \verb"\minibox[c]{\x}" & \verb"\minibox[r]{\x}" \\ \fbox{\minibox{\x}} & \fbox{\minibox[c]{\x}} & \fbox{\minibox[r]{\x}} \end{tabular} \end{center} Note that all examples here have been framed with the \cmd\fbox\ command to show the extent of the box; the output of \cmd\minibox\ itself does not have this border! Actually, if you look (not too) closely, the \cmd\minibox\ output has a little more padding than the |\vbox{\hbox{...}}| version; this will be rectified in a future release of the package. If you look at the source you'll see that the way \cmd\minibox\ command is implemented lends itself to begin mis-used to input generic tabular material; this is not the intention of the command, however, and any such usage may break in future versions of this package. \section{Licence} This package is freely modifiable and distributable under the terms and conditions of the \LaTeX\ Project Public Licence, version 1.3c or greater (your choice). The latest version of this license is available at: \url{http://www.latex-project.org/lppl.txt}. This work is maintained by \textsc{Will Robertson}. \clearpage \part{Implementation} \parindent=0pt \DocInput{\pkgname.sty} \end{document}