summaryrefslogtreecommitdiff
path: root/macros/latex/contrib/efbox
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/latex/contrib/efbox
Initial commit
Diffstat (limited to 'macros/latex/contrib/efbox')
-rw-r--r--macros/latex/contrib/efbox/README24
-rw-r--r--macros/latex/contrib/efbox/efbox.dtx367
-rw-r--r--macros/latex/contrib/efbox/efbox.ins57
-rw-r--r--macros/latex/contrib/efbox/efbox.pdfbin0 -> 145616 bytes
4 files changed, 448 insertions, 0 deletions
diff --git a/macros/latex/contrib/efbox/README b/macros/latex/contrib/efbox/README
new file mode 100644
index 0000000000..79b2540f32
--- /dev/null
+++ b/macros/latex/contrib/efbox/README
@@ -0,0 +1,24 @@
+efbox
+=====
+
+`efbox` is a LaTeX package that defines the `\efbox` command, which
+creates a box just wide enough to hold the text created by its argument,
+and optionally puts a frame around the outside of the box, and it allows
+setting the box background color. It uses key-value pairs for that.
+
+License
+-------
+
+Copyright 2011 - 2014 José Romildo Malaquias
+
+This material is subject to the
+[LaTeX Project Public License](http://www.ctan.org/license/lppl1.3).
+
+Installation
+------------
+
+To install the distribution:
+
+- run `latex efbox.ins`
+- move `efbox.sty` to locations where LaTeX will find it
+- run `pdflatex efbox.dtx` to generate the documentation file
diff --git a/macros/latex/contrib/efbox/efbox.dtx b/macros/latex/contrib/efbox/efbox.dtx
new file mode 100644
index 0000000000..95806579fd
--- /dev/null
+++ b/macros/latex/contrib/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/macros/latex/contrib/efbox/efbox.ins b/macros/latex/contrib/efbox/efbox.ins
new file mode 100644
index 0000000000..f801d38b79
--- /dev/null
+++ b/macros/latex/contrib/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
diff --git a/macros/latex/contrib/efbox/efbox.pdf b/macros/latex/contrib/efbox/efbox.pdf
new file mode 100644
index 0000000000..db2bbc60ed
--- /dev/null
+++ b/macros/latex/contrib/efbox/efbox.pdf
Binary files differ