
For example, if you make a multi-column table with a `racketblock' in each column, then the columns size to fit the code --- instead of forcing the table width to match the page width and forcing each column to take an equal share width.
166 lines
6.5 KiB
TeX
166 lines
6.5 KiB
TeX
% This is the default style configuration for Scribble-generated Latex
|
|
|
|
\usepackage{graphicx}
|
|
\usepackage{hyperref}
|
|
\renewcommand{\rmdefault}{ptm}
|
|
\usepackage{stabular}
|
|
\usepackage{relsize}
|
|
\usepackage{wasysym}
|
|
\usepackage{skull}
|
|
\usepackage{textcomp}
|
|
\usepackage{framed}
|
|
\usepackage[htt]{hyphenat}
|
|
\usepackage[usenames,dvipsnames]{color}
|
|
\hypersetup{bookmarks=true,bookmarksopen=true,bookmarksnumbered=true}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% Configuration that is especially meant to be overridden:
|
|
|
|
% Inserted before every ``chapter'', useful for starting each one on a new page:
|
|
\newcommand{\sectionNewpage}{}
|
|
|
|
% Hooks for actions within the `document' environment:
|
|
\newcommand{\preDoc}{}
|
|
\newcommand{\postDoc}{}
|
|
|
|
% Generated by `secref'; first arg is section number, second is section title:
|
|
\newcommand{\BookRef}[2]{\emph{#2}}
|
|
\newcommand{\ChapRef}[2]{\SecRef{#1}{#2}}
|
|
\newcommand{\SecRef}[2]{section~#1}
|
|
% Generated by `Secref':
|
|
\newcommand{\BookRefUC}[2]{\BookRef{#1}{#2}}
|
|
\newcommand{\ChapRefUC}[2]{\SecRefUC{#1}{#2}}
|
|
\newcommand{\SecRefUC}[2]{Section~#1}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% Fonts
|
|
|
|
% Font commands used by generated text:
|
|
\newcommand{\Scribtexttt}[1]{{\texttt{#1}}}
|
|
\newcommand{\textsub}[1]{$_{\hbox{\textsmaller{#1}}}$}
|
|
\newcommand{\textsuper}[1]{$^{\hbox{\textsmaller{#1}}}$}
|
|
\newcommand{\intextcolor}[2]{\textcolor{#1}{#2}}
|
|
\newcommand{\intextrgbcolor}[2]{\textcolor[rgb]{#1}{#2}}
|
|
\newcommand{\incolorbox}[2]{{\fboxrule=0pt\fboxsep=0pt\colorbox{#1}{#2}}}
|
|
\newcommand{\inrgbcolorbox}[2]{{\fboxrule=0pt\fboxsep=0pt\colorbox[rgb]{#1}{#2}}}
|
|
\newcommand{\plainlink}[1]{#1}
|
|
\newcommand{\techoutside}[1]{#1}
|
|
\newcommand{\techinside}[1]{#1}
|
|
\newcommand{\badlink}[1]{#1}
|
|
\newcommand{\indexlink}[1]{#1}
|
|
\newcommand{\noborder}[1]{#1}
|
|
\newcommand{\imageleft}[1]{} % drop it
|
|
\newcommand{\Smaller}[1]{\textsmaller{#1}}
|
|
\newcommand{\Larger}[1]{\textlarger{#1}}
|
|
\newcommand{\planetName}[1]{PLane\hspace{-0.1ex}T}
|
|
\newcommand{\slant}[1]{{\textsl{#1}}}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% Tables
|
|
|
|
% The `stabular' environment seems to be the lesser of evils among
|
|
% page-breaking table environments:
|
|
\newenvironment{bigtabular}{\begin{stabular}}{\end{stabular}}
|
|
% For the 'boxed table style:
|
|
\newcommand{\SBoxedLeft}{\textcolor[rgb]{0.6,0.6,1.0}{\vrule width 3pt\hspace{3pt}}}
|
|
% Formerly used to keep the horizontal line for a definition on the same page:
|
|
\newcommand{\SEndFirstHead}[0]{ \nopagebreak \\ }
|
|
% Corrects weirdness when a table is the first thing in
|
|
% an itemization:
|
|
\newcommand{\bigtableinlinecorrect}[0]{~
|
|
|
|
\vspace{-\baselineskip}\vspace{\parskip}}
|
|
% Used to indent the table correctly in an itemization, since that's
|
|
% one of the things stabular gets wrong:
|
|
\newlength{\stabLeft}
|
|
\newcommand{\bigtableleftpad}{\hspace{\stabLeft}}
|
|
\newcommand{\atItemizeStart}[0]{\addtolength{\stabLeft}{\labelsep}
|
|
\addtolength{\stabLeft}{\labelwidth}}
|
|
|
|
|
|
% For a single-column table in simple environments, it's better to
|
|
% use the `list' environment instead of `stabular'.
|
|
\newenvironment{SingleColumn}{\begin{list}{}{\topsep=0pt\partopsep=0pt%
|
|
\listparindent=0pt\itemindent=0pt\labelwidth=0pt\leftmargin=0pt\rightmargin=0pt%
|
|
\itemsep=0pt\parsep=0pt}\item}{\end{list}}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
% Etc.
|
|
|
|
% ._ and .__
|
|
\newcommand{\Sendabbrev}[1]{#1\@}
|
|
\newcommand{\Sendsentence}[1]{\@#1}
|
|
|
|
% Default style for a nested flow:
|
|
\newenvironment{Subflow}{\begin{list}{}{\topsep=0pt\partopsep=0pt%
|
|
\listparindent=0pt\itemindent=0pt\labelwidth=0pt\leftmargin=0pt\rightmargin=0pt%
|
|
\itemsep=0pt}\item}{\end{list}}
|
|
|
|
% The 'inset nested-flow style uses the `quote' environment
|
|
|
|
% Indent a 'code-inset nested flow:
|
|
\newcommand{\SCodePreSkip}{\vskip\abovedisplayskip}
|
|
\newcommand{\SCodePostSkip}{\vskip\belowdisplayskip}
|
|
\newenvironment{SCodeFlow}{\SCodePreSkip\begin{list}{}{\topsep=0pt\partopsep=0pt%
|
|
\listparindent=0pt\itemindent=0pt\labelwidth=0pt\leftmargin=2ex\rightmargin=2ex%
|
|
\itemsep=0pt\parsep=0pt}\item}{\end{list}\SCodePostSkip}
|
|
\newcommand{\SCodeInsetBox}[1]{\setbox1=\hbox{\hbox{\hspace{2ex}#1\hspace{2ex}}}\vbox{\SCodePreSkip\vtop{\box1\SCodePostSkip}}}
|
|
|
|
% Inset a 'vertical-inset nested flow:
|
|
\newcommand{\SVInsetPreSkip}{\vskip\abovedisplayskip}
|
|
\newcommand{\SVInsetPostSkip}{\vskip\belowdisplayskip}
|
|
\newenvironment{SVInsetFlow}{\SVInsetPreSkip\begin{list}{}{\topsep=0pt\partopsep=0pt%
|
|
\listparindent=0pt\itemindent=0pt\labelwidth=0pt\leftmargin=0pt\rightmargin=0pt%
|
|
\itemsep=0pt\parsep=0pt}\item}{\end{list}\SVInsetPostSkip}
|
|
\newcommand{\SVInsetBox}[1]{\setbox1=\hbox{\hbox{#1}}\vbox{\SCodePreSkip\vtop{\box1\SCodePostSkip}}}
|
|
|
|
% The 'compact itemization style:
|
|
\newenvironment{compact}{\begin{itemize}}{\end{itemize}}
|
|
\newcommand{\compactItem}[1]{\item #1}
|
|
|
|
% The nested-flow style for `centerline':
|
|
\newenvironment{SCentered}{\begin{trivlist}\item \centering}{\end{trivlist}}
|
|
|
|
% The \refpara command corresponds to `margin-note'. The
|
|
% refcolumn and refcontent environments also wrap the note,
|
|
% because they simplify the CSS side.
|
|
\newcommand{\refpara}[1]{\normalmarginpar\marginpar{\raggedright \footnotesize #1}}
|
|
\newcommand{\refelem}[1]{\refpara{#1}}
|
|
\newenvironment{refcolumn}{}{}
|
|
\newenvironment{refcontent}{}{}
|
|
|
|
\newcommand{\refparaleft}[1]{\reversemarginpar\marginpar{\raggedright \footnotesize #1}}
|
|
\newcommand{\refelemleft}[1]{\refparaleft{#1}}
|
|
\newenvironment{refcolumnleft}{\begin{refcolumn}}{\end{refcolumn}}
|
|
|
|
% Macros used by `title' and `author':
|
|
\newcommand{\titleAndVersionAndAuthors}[3]{\title{#1\\{\normalsize Version #2}}\author{#3}\maketitle}
|
|
\newcommand{\titleAndVersionAndEmptyAuthors}[3]{\title{#1\\{\normalsize Version #2}}#3\maketitle}
|
|
\newcommand{\titleAndEmptyVersionAndAuthors}[3]{\title{#1}\author{#3}\maketitle}
|
|
\newcommand{\titleAndEmptyVersionAndEmptyAuthors}[3]{\title{#1}\maketitle}
|
|
\newcommand{\SAuthor}[1]{#1}
|
|
\newcommand{\SAuthorSep}[1]{\qquad}
|
|
|
|
% Used for parts with the 'hidden style variant:
|
|
\newcommand{\sectionhidden}[1]{\section{#1}}
|
|
\newcommand{\subsectionhidden}[1]{\subsection{#1}}
|
|
\newcommand{\subsubsectionhidden}[1]{\subsubsection{#1}}
|
|
|
|
% When brackets appear in section titles:
|
|
\newcommand{\SOpenSq}{[}
|
|
\newcommand{\SCloseSq}{]}
|
|
|
|
% Helper for box-mode macros:
|
|
\newcommand{\Svcenter}[1]{$\vcenter{#1}$}
|
|
|
|
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
|
|
|
% Scribble then generates the following:
|
|
%
|
|
% \begin{document}
|
|
% \preDoc
|
|
% \titleAndVersion{...}{...}
|
|
% ... document content ...
|
|
% \postDoc
|
|
% \end{document}
|