diff options
author | Karl Berry <karl@freefriends.org> | 2014-03-20 22:51:31 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2014-03-20 22:51:31 +0000 |
commit | bcdd727cf125ed31eca233342d885b79c0ac1bb9 (patch) | |
tree | 1b884f612c8098c48a83f1812d3a929c8bb2191e /Master/texmf-dist/source/latex/efbox | |
parent | 38b305d3983e9f6bf193cf73e4f70f29fbf38fd8 (diff) |
efbox (20mar14)
git-svn-id: svn://tug.org/texlive/trunk@33236 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/source/latex/efbox')
-rw-r--r-- | Master/texmf-dist/source/latex/efbox/efbox.dtx | 367 | ||||
-rw-r--r-- | Master/texmf-dist/source/latex/efbox/efbox.ins | 57 |
2 files changed, 424 insertions, 0 deletions
diff --git a/Master/texmf-dist/source/latex/efbox/efbox.dtx b/Master/texmf-dist/source/latex/efbox/efbox.dtx new file mode 100644 index 00000000000..95806579fda --- /dev/null +++ b/Master/texmf-dist/source/latex/efbox/efbox.dtx @@ -0,0 +1,367 @@ +% \iffalse meta-comment +% +% Copyright (C) 2014 by José Romildo Malaquias <malaquias@gmail.com> +% --------------------------------------------------------------------------- +% This work may be distributed and/or modified under the +% conditions of the LaTeX Project Public License, either version 1.3 +% of this license or (at your option) any later version. +% The latest version of this license is in +% http://www.latex-project.org/lppl.txt +% and version 1.3 or later is part of all distributions of LaTeX +% version 2005/12/01 or later. +% +% This work has the LPPL maintenance status `maintained'. +% +% The Current Maintainer of this work is José Romildo Malaquias. +% +% This work consists of the files efbox.dtx and efbox.ins +% and the derived filebase efbox.sty. +% +% \fi +% +% \iffalse +%<*driver> +\ProvidesFile{efbox.dtx} +%</driver> +%<package>\NeedsTeXFormat{LaTeX2e}[1999/12/01] +%<package>\ProvidesPackage{efbox} +%<*package> + [2014/03/19 1.0 An enhanced fbox command.] +%</package> +% +%<*driver> +\documentclass{ltxdoc} +\usepackage{efbox}[2014/03/19] +\usepackage[utf8]{inputenc} +\usepackage{xcolor} +\usepackage[final]{showexpl} +\EnableCrossrefs +\CodelineIndex +\RecordChanges +\lstset{% + language=[LaTeX]TeX, + basicstyle=\ttfamily\small, + breaklines=true, + backgroundcolor=\color{lightgray}, + breakautoindent=true, +} +\begin{document} + \DocInput{efbox.dtx} + \PrintChanges + % \PrintIndex +\end{document} +%</driver> +% \fi +% +% \CheckSum{0} +% +% \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 \~} +% +% +% \changes{v0.1}{2011/12/22}{Converted to DTX file.} +% +% \changes{v1.0}{2014/03/28}{Many changes in preparation for release.} +% +% \DoNotIndex{\newcommand,\newenvironment} +% \DoNotIndex{\def,\ifpdf,\begin} +% \DoNotIndex{\DeclareOption,\ExecuteOptions,\RequirePackage} +% \DoNotIndex{\renewcommand,\else,\fi,\relax,\@bsphack,\@esphack} +% \DoNotIndex{\active,\AtEndOfPackage,\catcode,\centering} +% \DoNotIndex{\closeout,\comment,\do,\dospecials,\end,\endcomment} +% \DoNotIndex{\fbox,\gdef,\immediate,\includegraphics,\let} +% \DoNotIndex{\linewidth,\message,\newif,\newwrite,\openout} +% \DoNotIndex{\PackageWarning,\space,\the,\verbatim@line} +% \DoNotIndex{\verbatim@processline,\verbatim@start,\write} +% \DoNotIndex{\@makeother,\IfFileExists,\ProcessOptions} +% \DoNotIndex{\@ifnextchar,\define@key,\MessageBreak,\setkeys} +% \DoNotIndex{\stepcounter,\newcounter,\trivlist,\AtEndDocument} +% \DoNotIndex{\@empty,\edef,\csname,\endcsname,\edef,\begingroup} +% \DoNotIndex{\endgroup,\endtrivlist,\global,\if,\ifx,\item} +% \DoNotIndex{\PackageWarningNoLine,\PassOptionsToPackage} +% \DoNotIndex{\ProvidesPackage,\@arabic} +% +% \providecommand*{\url}{\texttt} +% \GetFileInfo{efbox.dtx} +% \title{The \textsf{efbox} package} +% \author{José Romildo Malaquias \\ \url{malaquias@gmail.com}} +% \date{\fileversion~from \filedate} +% +% \maketitle +% +% \section{Introduction} +% +% The \texttt{efbox} package defines the command \texttt{efbox}, which +% is an enhanced version of the \texttt{fbox} command. It creates a box +% just wide enough to hold the text created by its argument, allowing to +% draw a frame around the outside of the box at the chosen borders, and +% to set a background color for the box. +% +% \section{Usage} +% +% In order to use the package, just load it in the preamble of your +% document: +% \begin{verbatim} +% \usepackage{efbox} +% \end{verbatim} +% +% \DescribeMacro{\efbox} +% +% The macro \verb|efbox| can be used to create a horizontal box just +% wide enough to hold the text created by its argument (like the +% \verb|makebox| macro). Additionaly a frame can be drawn around the +% outside of the box (like the \verb|fbox| macro) at the chosen +% borders. Also it can set a background color for the box. +% \begin{quote} +% \verb|\efbox[|\meta{keyword}$=$\meta{value}\verb|...]{|\meta{text}\verb|}| +% \end{quote} +% +% The available keywords are: +% \begin{description} +% \item[\normalfont\texttt{leftline}:] This is a boolean, either true +% or false; the default is true. If true, a line is drawn in the left +% border of the box. +% +% \item[\normalfont\texttt{rightline}:] This is a boolean, either true +% or false; the default is true. If true, a line is drawn in the right +% border of the box. +% +% \item[\normalfont\texttt{topline}:] This is a boolean, either true +% or false; the default is true. If true, a line is drawn in the top +% border of the box. +% +% \item[\normalfont\texttt{bottomline}:] This is a boolean, either +% true or false; the default is true. If true, a line is drawn in the +% bottom border of the box. +% +% \item[\normalfont\texttt{hidealllines}:] This is a boolean, either +% true or false; the default is false. If true, no line is drawn in +% the borders of the box. +% +% \item[\normalfont\texttt{backgroundcolor=}\meta{backgroundcolor}:] +% \meta{backgroundcolor} is the color used as the background for the +% box. The default is the current background color. +% +% \item[\normalfont\texttt{linecolor=}\meta{linecolor}:] +% \meta{linecolor} is the color used for the border lines. The default +% is black. +% +% \item[\normalfont\texttt{linewidth=}\meta{linewidth}:] +% \meta{linewidth} is the width of the lines drawn at the borders of +% the box. The default is \verb|\fboxrule|. +% +% \item[\normalfont\texttt{margin=}\meta{margin}:] \meta{margin} is +% the distance between the border lines and the box text. The default +% is \verb|\fboxsep|. +% +% \item[\normalfont\texttt{font=}\meta{font}:] \meta{font} is the font +% used to typeset the text in the box. The default is the current +% font. +% +% \item[\normalfont\texttt{baselinestretch=}\meta{baselinestretch}:] +% \meta{baselinestretch} is the base line stretch. There is no +% default. +% \end{description} +% +% \DescribeMacro{\efboxsetup} +% +% The macro \verb|efboxsetup| can be used to set options used by +% \verb|\efbox|. +% \begin{quote} +% \verb|\efboxsetup{|\meta{keyword}$=$\meta{value}\verb|...]| +% \end{quote} +% The available keyworkds are the same from the \verb|\efbox| macro. +% +% \StopEventually{} +% +% \section{Examples} +% +% This is a demonstration of the \texttt{efbox} macro. +% +% \iffalse +%<*example> +% \fi +% \begin{LTXexample}[pos=b,numbers=none] +\efbox{Foo} +\efbox[rightline=false,topline=false]{Foo} +\efbox[topline,backgroundcolor=red]{Foo} +\efbox[linewidth=2pt,font=\Large]{Large Foo} +\efbox[rightline=false,topline=false,linecolor=blue,linewidth=2pt]{Foo} +\efbox[margin=10pt,backgroundcolor=yellow,font=\ttfamily\itshape]{Italic Typewriter Foo} + +\efbox[linewidth=3pt,margin=5pt,backgroundcolor=red]{Foo} +\efbox[hidealllines,backgroundcolor=red]{Foo} +\efbox{Foo} +\efbox[hidealllines,backgroundcolor=red,margin=15pt]{Foo} +\efbox[margin=15pt,linewidth=5pt]{Foo} +\efbox[bottomline=false,rightline=false,linewidth=2pt,margin=1pt,backgroundcolor=yellow]{Foo} + +\efbox{Foo} +% \end{LTXexample} +% \iffalse +%</example> +% \fi +% +% \section{Implementation} +% +% \iffalse +%<*package> +% \fi +% +% \begin{macrocode} +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{efbox}[2014/03/19 v1.0 An enhanced fbox command] +\RequirePackage{color} +\RequirePackage{pgfkeys} +\newif\if@efbox@leftline +\newif\if@efbox@rightline +\newif\if@efbox@topline +\newif\if@efbox@bottomline +\pgfkeys{ + /efbox/.cd, + leftline/.is if = @efbox@leftline, + rightline/.is if = @efbox@rightline, + topline/.is if = @efbox@topline, + bottomline/.is if = @efbox@bottomline, + hidealllines/.style = {leftline=false,rightline=false,topline=false,bottomline=false}, + backgroundcolor/.store in = \efbox@backgroundcolor, + linecolor/.store in = \efbox@linecolor, + linewidth/.store in = \efbox@linewidth, + margin/.store in = \efbox@margin, + font/.store in = \efbox@font, + baselinestretch/.store in = \efbox@baselinestretch, +} +\pgfqkeys{/efbox}{ + leftline = true, + rightline = true, + topline = true, + bottomline = true, + linecolor = black, + linewidth = \fboxrule, + margin = \fboxsep, +} +\newif\if@efbox@hasframe +% \end{macrocode} +% +% \begin{macro}{\efboxsetup} +% \begin{macrocode} +\def\efbox@global@options{} +\newcommand\efboxsetup[1]{% + \def\efbox@global@options{#1}% +}% +\newcommand*\mypgfqkeys@with@saved@options[3]{% + % #1 => path + % #2 => macro holding saved options + % #3 => keys + \def\@pgfqkeys@##1{\pgfqkeys{#1}{##1}}% + \expandafter\@pgfqkeys@\expandafter{#2,#3}% +}% +% \end{macrocode} +% \end{macro} +% +% \begin{macro}{\efbox} +% \begin{macrocode} +\newcommand\efbox[2][]{% + \begingroup% + \mypgfqkeys@with@saved@options{/efbox}{\efbox@global@options}{#1}% + %\expandafter\pgfqkeys\expandafter{/efbox}\expandafter{\efbox@global@options,#1}% +% \end{macrocode} +% +% \begin{macrocode} + \ifdefined\efbox@font\efbox@font\fi +% \end{macrocode} +% +% \begin{macrocode} + \ifdefined\efbox@baselinestretch + \def\baselinestretch{\efbox@baselinestretch}% + \fi +% \end{macrocode} +% +% \begin{macrocode} + \@efbox@hasframefalse + \if@efbox@topline\@efbox@hasframetrue\else\fi + \if@efbox@bottomline\@efbox@hasframetrue\else\fi + \if@efbox@leftline\@efbox@hasframetrue\else\fi + \if@efbox@rightline\@efbox@hasframetrue\else\fi + \ifdefined\efbox@backgroundcolor\@efbox@hasframetrue\else\fi + \if@efbox@hasframe + \ifdefined\efbox@backgroundcolor\else\def\efbox@backgroundcolor{white}\fi + \fboxsep=\efbox@margin + \fboxrule=\efbox@linewidth + \let\@frameb@x\@my@frameb@x + \fboxsep=\efbox@margin + \def\efbox@body{\fcolorbox{\efbox@linecolor}{\efbox@backgroundcolor}{#2}}% + \else + \def\efbox@body{#2}% + \fi + \ifdefined\efbox@title + \ifx\@empty\efbox@title + \noindent\efbox@body + \else + \vbox{% + \nobreak\vskip\fboxsep + \rlap{\frametitle{\efbox@title}}% + \nobreak\nointerlineskip + \vskip-\baselineskip + \vskip \fboxsep + \noindent\efbox@body + }% + \fi + \else + \efbox@body + \fi + \endgroup +} +% \end{macrocode} +% \end{macro} +% +% +% \begin{macro}{\@my@frameb@x} +% \begin{macrocode} +\def\@my@frameb@x#1{% + \@tempdima\fboxrule + \advance\@tempdima\fboxsep + \advance\@tempdima\dp\@tempboxa + \hbox{% + \lower\@tempdima\hbox{% + \vbox{% + \if@efbox@topline\hrule\@height\fboxrule\fi + \hbox{% + \if@efbox@leftline\vrule\@width\fboxrule\fi + #1% + \vbox{% + \vskip\fboxsep + \box\@tempboxa + \vskip\fboxsep}% + #1% + \if@efbox@rightline\vrule\@width\fboxrule\fi + }% + \if@efbox@bottomline\hrule\@height\fboxrule\fi + }% + }% + }% +}% +\endinput +% \end{macrocode} +% \end{macro} +% +% +% \iffalse +%</package> +% \fi +% +% \Finale +\endinput diff --git a/Master/texmf-dist/source/latex/efbox/efbox.ins b/Master/texmf-dist/source/latex/efbox/efbox.ins new file mode 100644 index 00000000000..f801d38b793 --- /dev/null +++ b/Master/texmf-dist/source/latex/efbox/efbox.ins @@ -0,0 +1,57 @@ +%% Copyright (C) 2014 by José Romildo Malaquias <malaquias@gmail.com> +%% -------------------------------------------------------------------------- +%% This work may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.3 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.3 or later is part of all distributions of LaTeX +%% version 2005/12/01 or later. +%% +%% This work has the LPPL maintenance status `maintained'. +%% +%% The Current Maintainer of this work is José Romildo Malaquias. +%% +%% This work consists of the files efbox.dtx and efbox.ins +%% and the derived filebase efbox.sty. +%% + +\input docstrip.tex +\keepsilent + +\usedir{tex/latex/efbox} + +\preamble + +This is a generated file. + +Copyright (C) 2014 by José Romildo Malaquias <malaquias@gmail.com> +-------------------------------------------------------------------------- +This work may be distributed and/or modified under the +conditions of the LaTeX Project Public License, either version 1.3 +of this license or (at your option) any later version. +The latest version of this license is in + http://www.latex-project.org/lppl.txt +and version 1.3 or later is part of all distributions of LaTeX +version 2005/12/01 or later. + +\endpreamble + +\generate{\file{efbox.sty}{\from{efbox.dtx}{package}}} + +\obeyspaces +\Msg{*************************************************************} +\Msg{* *} +\Msg{* To finish the installation you have to move the following *} +\Msg{* file into a directory searched by TeX: *} +\Msg{* *} +\Msg{* efbox.sty *} +\Msg{* *} +\Msg{* To produce the documentation run the file efbox.dtx *} +\Msg{* through LaTeX. *} +\Msg{* *} +\Msg{* Happy TeXing! *} +\Msg{* *} +\Msg{*************************************************************} + +\endbatchfile |