summaryrefslogtreecommitdiff
path: root/macros/latex209/contrib/textfit
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /macros/latex209/contrib/textfit
Initial commit
Diffstat (limited to 'macros/latex209/contrib/textfit')
-rw-r--r--macros/latex209/contrib/textfit/textfit.ctn10
-rw-r--r--macros/latex209/contrib/textfit/textfit.dtx299
-rw-r--r--macros/latex209/contrib/textfit/textfit.ins53
3 files changed, 362 insertions, 0 deletions
diff --git a/macros/latex209/contrib/textfit/textfit.ctn b/macros/latex209/contrib/textfit/textfit.ctn
new file mode 100644
index 0000000000..f0fada900d
--- /dev/null
+++ b/macros/latex209/contrib/textfit/textfit.ctn
@@ -0,0 +1,10 @@
+Name=textfit
+Author=Sebastian Rahtz <spqr@ftp.tex.ac.uk> and Philip Taylor
+Date=1994/01/15
+Version=3
+Supported=yes
+Checked=1994/01/15
+Summary= LaTeX package for scaling up text to a desired size.
+
+
+
diff --git a/macros/latex209/contrib/textfit/textfit.dtx b/macros/latex209/contrib/textfit/textfit.dtx
new file mode 100644
index 0000000000..1e59c3247b
--- /dev/null
+++ b/macros/latex209/contrib/textfit/textfit.dtx
@@ -0,0 +1,299 @@
+% \iffalse meta-comment
+% File `textfit.dtx'.
+%
+% Copyright (C) 1994 by Sebastian Rahtz and Phil Taylor
+% All rights reserved.
+%
+% @LaTeX-style-file{
+% author = "Sebastian Rahtz and Phil Taylor",
+% version = "3",
+% date = "10th January 1994",
+% filename = "textfit.sty",
+% email = "spqr@ftp.tex.ac.uk (Internet)",
+% keywords = "LaTeX, scaling",
+% supported = "yes",
+% docstring = "
+%
+% textfit.sty
+%
+% LaTeX style option for scaling up text to a desired size. Requires LaTeX2e
+% "}
+% You are not allowed to change this file. You may however copy
+% this file to a file with a different name and then change the copy.
+%
+% \fi
+\def\fileversion{3}
+\def\filedate{1994/01/10}
+\def\docdate{1994/01/10}
+% \CheckSum{310}
+%
+% \iffalse This is a META comment
+%
+% Copying of this file is authorized only if either
+% (1) you make absolutely no changes to your copy, including name, or
+% (2) if you do make changes, you name it something other than
+% textfit.dtx.
+% Please send bug reports to:
+%
+% S Rahtz
+% 12 Cygnet Street
+% York Y02 1AG
+% UK
+% email: spqr@ftp.tex.ac.uk
+% \fi
+%
+%
+% \title{The \texttt{textfit.dtx} file\thanks
+% {This file has version number \fileversion, dated \filedate.
+% The documentation was last revised on \docdate}\\
+% }
+% \author{Sebastian Rahtz and Phil Taylor}
+%
+% \MakeShortVerb{\|}
+% \def\dst{{\csname mediumseries\endcsname\sc docstrip}}
+% \setcounter{StandardModuleDepth}{1}
+%
+% \maketitle
+%
+% \section{Introduction}
+%
+% The user needs to be able to specify the width or height for text, and
+% use the largest size necessary to fill that width or height. You
+% can choose whether to have the size increased by simple points, or
+% by using magsteps.
+% Usage:
+% \verb|\scaletowidth{3in}{This is the way of the world}|
+% \verb|\scaletoheight{7mm}{This is the way of the world}|
+% Details are controlled by two options: `magstep' will
+% make the system use magsteps, not points, and `noisy'
+% will produce useful messages.
+% \changes{1}{5/2/93}{Worked out point size by trial and error, increasing
+% it in increments of 1pt until result reached desired size}
+% \changes{2}{9/2/93}{Final point size calculated by comparison of size at
+% 10pt. faster, and takes less TeX memory for intermediate fonts}
+% \changes{3}{10/1/94}{Revised to make it a \LaTeXe\ package}
+%
+%Examples; note that the base font is taken from the current state when
+%you enter the macros. so if you start off with a large font (eg
+%cmr17), it will give a different result from that obtained by scaling
+%up cmr5.
+%
+%\scaletowidth{1in}{This is the way of the world}
+%
+%{\Huge \scaletowidth{1in}{This is the way of the world}}
+%
+%{\Huge \scaletowidth{5in}{This is the way of the world}}
+%
+%\scaletowidth{5in}{This is the way of the world}
+%
+%{\Huge \scaletoheight{1.3in}{Cowabunga!} }
+%
+% \scaletowidth{5in}{Gloucestershire Warwickshire Railway}
+%
+%\ScalebyMagstepstrue
+%
+%\scaletowidth{1in}{This is the way of the world}
+%
+%{\Huge \scaletowidth{1in}{This is the way of the world}}
+%
+%{\Huge \scaletowidth{5in}{This is the way of the world}}
+%
+%\scaletowidth{5in}{This is the way of the world}
+%
+%{\Huge \scaletoheight{1.3in}{Cowabunga!} }
+% \StopEventually{}
+% \begin{macrocode}
+%<*textfit>
+\NeedsTeXFormat{LaTeX2e}
+\ProvidesPackage{textfit}[\filedate]
+\newif\ifScalebyMagsteps
+\newif\ifNoisyFitting
+\NoisyFittingfalse
+\ScalebyMagstepsfalse
+\DeclareOption{noisy}{\NoisyFittingtrue}
+\DeclareOption{magstep}{\ScalebyMagstepstrue}
+\ProcessOptions
+\newcount \mags@f@r
+\newdimen \desired@size
+\newcount \r@mainder
+\newcount \m@gstepcount
+\newcount \m@gsteplimit
+\newcount \m@gstepvalue
+\newdimen \m@gstepdimen
+% \end{macrocode}
+% Code for working out the right magstep (this is Phil's bit).
+% \begin{macrocode}
+\def \magsteps {\afterassignment \m@gsteps \m@gsteplimit = }
+\def \m@gsteps
+ {\let \@r = \or
+ \def \or {\noexpand \or}%
+ \m@gstepdimen = 0.166667 \maxdimen
+ \m@gstepvalue = 1000
+ \m@gstepcount = 0
+ \def \magstep {}%
+ \loop
+ \ifnum \m@gstepcount < \m@gsteplimit
+ \advance \m@gstepcount by 1
+ \ifnum \m@gstepvalue > \m@gstepdimen
+ \advance \m@gstepcount by -1
+ \message {Sorry --- integer overflow would occur if
+ I went any further; stopped at
+ \the \m@gstepcount.}
+ \m@gsteplimit = \m@gstepcount
+ \else
+ \multiply \m@gstepvalue by 12
+ \multiply \r@mainder by 12
+ \divide \r@mainder by 10
+ \advance \m@gstepvalue by \r@mainder
+ \r@mainder = \m@gstepvalue
+ \divide \m@gstepvalue by 10
+ \multiply \m@gstepvalue by 10
+ \advance \r@mainder by -\m@gstepvalue
+ \divide \m@gstepvalue by 10
+ \ifnum \r@mainder < 5
+ \edef \magstep {\magstep \or \the \m@gstepvalue}%
+ \else
+ \advance \m@gstepvalue by 1
+ \edef \magstep {\magstep \or \the \m@gstepvalue}%
+ \advance \m@gstepvalue by -1
+ \fi
+ \fi
+ \repeat
+ \edef \magstep ##1%
+ {\noexpand \ifcase ##1
+ 1000\magstep
+ \noexpand \else 0%
+ \noexpand \message
+ {Sorry --- \string \magstep \space ##1
+ is not in range 0 .. \the \m@gsteplimit}%
+ \noexpand \fi
+ \noexpand \relax
+ }%
+ \let \or = \@r
+ }
+\magsteps 63
+\def \Fontname #1{\expandafter \strip@size \fontname #1 }
+\def \strip@size #1 #2#{#1\void@@@}
+\def \void@@@ #1{}
+\gdef\n@d#1.#2:{#1}
+\def \@scaletofit[#1]#2#3{%
+ \def\Hb@x{h}\def\H@rV{#1}%
+ \ifx\H@rV\Hb@x\def\C@mpare{\wd}\else\def\C@mpare{\ht}\fi
+ \desired@size #2
+ \def\curr@fontname{\Fontname \font {} }%
+ \ifScalebyMagsteps
+ \mags@f@r \z@
+ \setbox 0 = \hbox{#3}%
+ \def\@increment{1}%
+ \def\@test{<}%
+ \ifdim \C@mpare 0 > \desired@size
+ \message{When scaling by Magsteps, you cannot go downwards!}%
+ \fi
+ \loop
+ \font \temp@font = \curr@fontname scaled \magstep \mags@f@r
+ \setbox 0 = \hbox{{\temp@font #3}}%
+ \ifNoisyFitting
+ \message {Trying \noexpand \magstep \the \mags@f@r...}%
+ \fi
+ \ifdim \C@mpare 0 \@test \desired@size
+ \advance \mags@f@r by \@increment
+ \repeat
+ \ifnum \mags@f@r=\z@
+ \mags@f@r1
+ \fi
+ \advance \mags@f@r by -\@increment
+ \else
+ \font\temp@font=\curr@fontname at1pt
+ \setbox 0 = \hbox{{\temp@font #3}}%
+ \@tempdima\C@mpare0
+ \multiply\@tempdima by 500 %\@m
+ \def\foo@@{\expandafter\n@d\the\@tempdima:}%
+ \@tempdimb\desired@size
+ \divide\@tempdimb by \foo@@
+ \multiply\@tempdimb by 500 %\@m
+ \fi
+ \ifNoisyFitting
+ \ifScalebyMagsteps
+ \message {The calculated font is \curr@fontname
+ scaled \noexpand \magstep \the \mags@f@r}%
+ \font \temp@font = \curr@fontname scaled \magstep \mags@f@r
+ \else
+ \message {The calculated font is \curr@fontname ->\the\@tempdimb}%
+ \font\temp@font=\curr@fontname at \the\@tempdimb
+ \fi
+ \fi
+ \ifx\H@rV\Hb@x
+ \hbox to \desired@size {\hss{\temp@font #3}\hss}%
+ \else
+ \hbox {{\temp@font #3}}%
+ \fi
+ }
+% user interface
+\def\scaletowidth{\@scaletofit[h]}
+\def\scaletoheight{\@scaletofit[v]}
+%</textfit>
+% \Finale
+% \end{macrocode}
+% \section{A driver for this document}
+%
+% The next bit of code contains the documentation driver file for
+% \TeX{}, i.e., the file that will produce the documentation you are
+% currently reading. It will be extracted from this file by the
+% \dst{} program.
+% \begin{macrocode}
+%<*driver>
+\documentclass{article}
+\usepackage{doc}
+\usepackage[noisy]{textfit}
+% dimensions from ltugboat.sty:
+\setlength\textwidth{31pc}
+\setlength\textheight{54pc}
+\setlength{\parindent}{0pt}
+\setlength{\parskip}{2pt plus 1pt minus 1pt}
+\setlength{\oddsidemargin}{8pc}
+\setlength{\marginparwidth}{8pc}
+\setlength{\topmargin}{-2.5pc}
+\setlength{\headsep}{20pt}
+\setlength{\columnsep}{1.5pc}
+\setlength{\columnwidth}{18.75pc}
+
+\DisableCrossrefs
+
+\CodelineIndex % Index code by line number
+
+%\OnlyDescription % comment out for implementation details
+
+\begin{document}
+ \DocInput{textfit.dtx}
+\end{document}
+%</driver>
+% \end{macrocode}
+%
+%
+% The next line goes into all files and in addition prevents \dst{}
+% from adding any further code from the main source file (such as a
+% character table.
+% \begin{macrocode}
+\endinput
+% \end{macrocode}
+%
+% \DeleteShortVerb{\|}
+%
+% \Finale
+%
+%% \CharacterTable
+%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+%% Digits \0\1\2\3\4\5\6\7\8\9
+%% Exclamation \! Double quote \" Hash (number) \#
+%% Dollar \$ Percent \% Ampersand \&
+%% Acute accent \' Left paren \( Right paren \)
+%% Asterisk \* Plus \+ Comma \,
+%% Minus \- Point \. Solidus \/
+%% Colon \: Semicolon \; Less than \<
+%% Equals \= Greater than \> Question mark \?
+%% Commercial at \@ Left bracket \[ Backslash \\
+%% Right bracket \] Circumflex \^ Underscore \_
+%% Grave accent \` Left brace \{ Vertical bar \|
+%% Right brace \} Tilde \~}
+
diff --git a/macros/latex209/contrib/textfit/textfit.ins b/macros/latex209/contrib/textfit/textfit.ins
new file mode 100644
index 0000000000..d4ff816dfd
--- /dev/null
+++ b/macros/latex209/contrib/textfit/textfit.ins
@@ -0,0 +1,53 @@
+\def\fileversion{1}
+\def\filedate{1994/01/10}
+%
+% \StopEventually{}
+%
+% As always we begin by identifying the latest version of this file
+% on the VDU and in the {\sf log} file.
+% \begin{macrocode}
+\def\batchfile{textfit.ins}
+\input docstrip.tex
+\preamble
+
+Copyright (C) 1993,94 by Sebastian Rahtz, Phil Taylor
+All rights reserved.
+
+\endpreamble
+
+\def\batchfile{textfit.dst} % ignored in distribution
+\input docstrip.tex % ignored in distribution
+
+\keepsilent
+
+\preamble
+Copyright (C) 1993,94 Sebastian Rahtz and Phil Taylor.
+All rights reserved. Permission is granted to to
+customize the declarations in this file to serve the needs of your
+installation. However, no permission is granted to distribute a
+modified version of this file under its original name.
+
+\endpreamble
+
+\Msg{*** Generating style file for Textfit ***}
+
+\generateFile{textfit.sty}{f}{
+ \from{textfit.dtx}{textfit}}
+
+\Msg{*** Generating driver file to print code ***}
+
+\generateFile{textfit.drv}{f}{
+ \from{textfit.dtx}{driver}}
+
+\Msg{***********************************************************}
+\Msg{*}
+\Msg{* To finish the installation you have to move the}
+\Msg{* file textfit.sty into a directory searched by TeX}
+\Msg{*}
+\Msg{***********************************************************}
+
+
+\endinput
+
+
+