summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2017-04-09 22:40:10 +0000
committerKarl Berry <karl@freefriends.org>2017-04-09 22:40:10 +0000
commit362b2fc01b04915a3706a78c8d7072a2c4265707 (patch)
treeb1c0ec08446f33c6a8caf2dcdf5a5cb70f5bfb1c
parent07cc5c2480421e2ca1ca9fd8e58897a4c42dc0e7 (diff)
easyformat (9apr17)
git-svn-id: svn://tug.org/texlive/trunk@43724 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/latex/easyformat/README16
-rw-r--r--Master/texmf-dist/doc/latex/easyformat/easyformat.pdfbin0 -> 146508 bytes
-rw-r--r--Master/texmf-dist/doc/latex/easyformat/easyformat.tex149
-rw-r--r--Master/texmf-dist/tex/latex/easyformat/easyformat.sty152
-rwxr-xr-xMaster/tlpkg/bin/tlpkg-ctan-check2
-rw-r--r--Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/easyformat.tlpsrc0
7 files changed, 319 insertions, 1 deletions
diff --git a/Master/texmf-dist/doc/latex/easyformat/README b/Master/texmf-dist/doc/latex/easyformat/README
new file mode 100644
index 00000000000..a5e1a68d638
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/easyformat/README
@@ -0,0 +1,16 @@
+easyformat is a package that allows the use of _ (the underscore) to add italics and bold text.
+
+Usage:
+Import the package with: \usepackage{easyformat}
+
+Now you can do the following in textmode:
+_italics_, __bold__, ___bolditalic___.
+
+The underscore's (_) meaning in mathmode stays the same.
+
+(See easyformat.pdf for more info.)
+
+
+A package by Evert Provoost, licensed under GPLv3.
+
+Made with <3 in Berlaar, Belgium.
diff --git a/Master/texmf-dist/doc/latex/easyformat/easyformat.pdf b/Master/texmf-dist/doc/latex/easyformat/easyformat.pdf
new file mode 100644
index 00000000000..48ecdb6b477
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/easyformat/easyformat.pdf
Binary files differ
diff --git a/Master/texmf-dist/doc/latex/easyformat/easyformat.tex b/Master/texmf-dist/doc/latex/easyformat/easyformat.tex
new file mode 100644
index 00000000000..a0f544a76ff
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/easyformat/easyformat.tex
@@ -0,0 +1,149 @@
+% !TeX spellcheck = en_GB
+
+\documentclass[a4paper, 11pt]{article}
+\usepackage[british]{babel}
+\usepackage[hidelinks]{hyperref}
+\usepackage{microtype}
+\usepackage{easyformat}
+
+\def\labelitemi{--}
+
+\def\easyformat{\texttt{easyformat}}
+
+\title{\easyformat\\[.5em]
+ \large _the_ manual for the 2017/04/09 version (v1.1.0)}
+
+\author{Evert Provoost}
+
+\date{}
+
+\begin{document}
+
+ \maketitle
+
+ \begin{abstract}
+ \easyformat\ is a package that allows the use of~\_ to begin/end _italic_ or __bold__ formatting as an alternative to the standard \LaTeXe\ \verb|\textit{italic}| and/or \verb|\textbf{bold}|.
+ \end{abstract}
+
+ %\tableofcontents % NOT NEEDED
+ \newpage
+
+ %% NOT NEEDED.
+ % Insert a blank page.
+ %\null % The page has to contain 'something'.
+ %\thispagestyle{empty} % Hide the pagenumber.
+ %\addtocounter{page}{-1} % So the next doesn't turn 3.
+ %\newpage
+
+ \section{Introduction}
+ Usually when you want to make something _italic_ or __bold__ in \LaTeX\ you insert \verb|\textit{italic}| or \verb|\textbf{bold}| respectively.
+
+ However when writing a book or another text where this formatting is common, this quickly becomes annoying to type.
+
+ \begin{quote}
+ __Quick disclaimer:__\\
+ I'm not saying that the \LaTeX\ way is bad. I just want to explain that it's not ideal under all circumstances.
+ \end{quote}
+
+ Simple markuplanguages (eg. Markdown) have a more elegant solution.
+ If you, for example, wanted to write:
+ \begin{quote}
+ __Stop!__, you _have_ to wait!
+ \end{quote}
+
+ In Markdown, you'd type:
+ \begin{quote}
+ \verb|**Stop!**, you *have* to wait!|
+ \end{quote}
+
+ As you can see it's a matter of _wanting_ italic or bold formatting, adding~*'s where needed and done; no (long) macros to type.
+
+ With the help of \easyformat\ we can do something similar, here we get the same result with:
+ \begin{quote}
+ \verb|__Stop!__, you _have_ to wait!|
+ \end{quote}
+
+ (Why underscores? See: \ref{Why?!})
+
+ \section{Usage, syntax and examples}
+ Like usual you import the package with: \verb|\usepackage{easyformat}|
+
+ \easyformat\ makes \_ an active character, however it was already 'special' before so you still have to type~\verb|\_| if you want to insert an underscore.
+
+ As already said, \easyformat\ uses a Markdown-like syntax, so:
+
+ \begin{quote}
+ \verb|_italic,_ __bold,__ and ___bolditalic!___|
+ \end{quote}
+
+ Gives:
+ \begin{quote}
+ _italic,_ __bold,__ and ___bolditalic!___
+ \end{quote}
+
+ However we can also do more complex stuff, eg.:
+ \begin{quote}
+ \verb|_Lorem __ipsum_ totalem__ da __givea _zin_ doram__ _zet_tim, liefkan.|
+ \end{quote}
+
+ Becomes:
+ \begin{quote}
+ _Lorem __ipsum_ totalem__ da __givea _zin_ doram__ _zet_tim, liefkan.
+ \end{quote}
+
+ Those with a good eye might have noticed that \easyformat\ adds italicscorrection when needed. Just like \verb|\textit{zet}tim| would have.
+
+ \section{Utilities}
+ %% This is solved in version 2017/04/09
+ %\subsection{Underscore in subtitles\label{undtitles}}
+ %If you ever try something similar to \verb|\section{__Vectors:__ %$\vec{F}_g$}|: \TeX\ will shout at you. Why? I don't really know. However I %do know how to fix this. If we want to get the previous example we would use:
+
+ %\begin{quote}
+ % \verb|\setundsub|\\
+ % % Yeah there's a glitch were the first is indented slightly more
+ % % unless there is something before the next lines......
+ % \hspace*{0pt}\verb|\section{$\textbf{Vectors:} \vec{F}_g$}|\\
+ % \hspace*{0pt}\verb|\setundact|
+ %\end{quote}
+
+ %This first resets the \_ character so it can only be used as the start of %subscripts; then adds the subtitle and afterwards re-initiates \_ for %__bold__ and _italic_. (Obviously the \easyformat\ syntax does not work %_in_ the subtitle, so you'll have to use the \LaTeX-commands.)
+
+ \subsection{\texttt{\textbackslash nrshape}}
+ Reverts the fontshape to the default.
+
+ \subsection{\texttt{\textbackslash nrseries}}
+ Reverts the fontseries to the default.
+
+ \subsection{\texttt{\textbackslash setundact}}
+ Sets the catcode of \_ to 13 (active), effectively _(re-)enabling_ the \easyformat\ syntax.
+
+ \subsection{\texttt{\textbackslash setundsub}}
+ Sets the catcode of \_ to 8 (subscript), effectively _disabling_ the \easyformat\ syntax.
+
+ \section{Technical details}
+ \subsection{Why \_ and not *?\label{Why?!}}
+ To make * work we would have to make it an active character, however this would break things like \verb|\section*{Art}|. The~\_ is already protected by \TeX\ because of it's meaning in mathmode. However, it has little to no use in textmode. This is why we can use~\_ for this purpose and not~*.
+
+ \subsection{Does this break mathmode?}
+ No it doesn't. It keeps behaving like before in mathmode, it's meaning only changes in textmode. (We first check whether we are in mathmode or not and behave accordingly.)
+
+ \section{Contact}
+ If you want to make suggestions or have any questions whose answer could be included in a future version of this document, you can email to this address: \url{mailto:evert.provoost@gmail.com}
+ \newpage
+
+ \section{Changelog}
+ We only include important changes from v1.0.0 onwards, since earlier versions barely worked.
+
+ \subsection*{2017/04/09 v1.1.0}
+ Made usage of syntax in \verb|\section{}|, and similar macros, possible. Changed the behaviour so it works more like \verb|\emph{}| (this also simplifies the code).
+
+ \subsection*{2017/04/07 v1.0.0}
+ First stable version.
+
+
+ % Insert a friendly message :)
+ \vspace*{\fill}\noindent
+ Made with $\heartsuit$ in Berlaar, Belgium.
+ \clearpage
+
+\end{document}
diff --git a/Master/texmf-dist/tex/latex/easyformat/easyformat.sty b/Master/texmf-dist/tex/latex/easyformat/easyformat.sty
new file mode 100644
index 00000000000..922d09abd46
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/easyformat/easyformat.sty
@@ -0,0 +1,152 @@
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+% %
+% easyformat Adds easier bolds and italics to LaTeX. %
+% Copyright (C) 2017 Evert Provoost <evert.provoost@gmail.com> %
+% %
+% This program is free software: you can redistribute it and/or modify %
+% it under the terms of the GNU General Public License as published by %
+% the Free Software Foundation, either version 3 of the License, or %
+% (at your option) any later version. %
+% %
+% This program is distributed in the hope that it will be useful, %
+% but WITHOUT ANY WARRANTY; without even the implied warranty of %
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the %
+% GNU General Public License for more details. %
+% %
+% You should have received a copy of the GNU General Public License %
+% along with this program. If not, see <http://www.gnu.org/licenses/>. %
+% %
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+
+%% NOTE TO FUTURE: Italics correction works because of \maybe@ic.
+% this macro might disappear in LaTeX3...
+%
+% If the New Font Selection Scheme would change,
+% stuff WILL break...
+
+
+%% Administration...
+\NeedsTeXFormat{LaTeX2e} % Why no date? We'll leave that to the imports.
+\ProvidesPackage{easyformat}
+ [2017/04/09 v1.1.0 Adds easier bolds and italics.]
+
+
+%% Import this handy package
+\RequirePackage{ltxcmds}[2011/04/18]
+
+
+%% Public macros
+% Add macros to switch the syntax on or off.
+\newcommand*{\setundact}{
+ \catcode`\_=\active
+}
+
+\newcommand*{\setundsub}{
+ \catcode`\_=8
+}
+
+% Add some macros which do small parts of what \normalfont does.
+\newcommand*{\nrshape}{%
+ \fontshape{\shapedefault}%
+ \selectfont%
+}
+
+\newcommand*{\nrseries}{%
+ \fontseries{\seriesdefault}%
+ \selectfont%
+}
+
+
+%% CONSTANTS
+% Yes I could use \sb but that is a dependency...
+\let\EFOR@subscript=_
+
+% To test what style we're currently in.
+\def\EFOR@it{it}
+\def\EFOR@bf{bx}
+
+
+%% UTILS
+% So we can remove an unnecessary undescore when starting/stopping bold.
+\newcommand*{\EFOR@util@removeChar}[1]{}
+
+% Do the first when in mathmode, the second if not.
+\newcommand*{\EFOR@util@ifmmode}{%
+ \ifmmode
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+
+% Do the first when equal, the second if not (first or second of
+% what comes *after* \EFOR@util@ifx{...}{...} that is).
+\newcommand*{\EFOR@util@ifx}[2]{%
+ \ifx#1#2\relax
+ \expandafter\@firstoftwo
+ \else
+ \expandafter\@secondoftwo
+ \fi
+}
+
+
+%% Formating handling
+% Switch italics on or off.
+\newcommand*{\EFOR@handle@italic}{%
+ \EFOR@util@ifx{\f@shape}{\EFOR@it}
+ % \maybe@ic adds italics correction if needed.
+ % (might stop working in LaTeX3?)
+ {\nrshape\maybe@ic}
+ {\itshape}%
+}
+
+% Switch boldface on or off.
+\newcommand*{\EFOR@handle@bold}{%
+ \EFOR@util@ifx{\f@series}{\EFOR@bf}
+ {\nrseries}
+ {\bfseries}%
+}
+
+
+%% Activate the systems!
+% Prepare the syntax in the preamble.
+\setundact
+
+% Now finally add the new syntax in the document part.
+\AtBeginDocument{
+ % Just to be sure
+ \setundact
+
+ % This is where the magic happens (also differentiates between
+ % the text and math mode.)
+ % It is \protected because it should work in eg. \section{}
+ \protected\def_{\EFOR@util@ifmmode
+ {\EFOR@subscript}
+ {\ltx@ifnextchar@nospace_
+ % \EFOR@util@removeChar removes the second underscore.
+ {\EFOR@handle@bold\EFOR@util@removeChar}
+ {\EFOR@handle@italic}%
+ }%
+ }
+}
+
+% Cleanup
+\AtEndDocument{
+ % Why no \def_\undefined?
+ % Because if we use this syntax in eg. \section{},
+ % the macro should still work in the .aux file...
+ \setundsub
+}
+
+
+%% DONE!
+\endinput
+
+
+%% IMPLEMENTATION DETAILS:
+%% Why not \textit/bf\bgroup and \egroup?
+% Well actualy that was the original solution. Hwoever this
+% doesn't differentiate between ending itallics or ending
+% boldface. The current solution does and this makes the syntax
+% more predictable and generally more useful. \ No newline at end of file
diff --git a/Master/tlpkg/bin/tlpkg-ctan-check b/Master/tlpkg/bin/tlpkg-ctan-check
index d0db952e74d..29e5bcf915e 100755
--- a/Master/tlpkg/bin/tlpkg-ctan-check
+++ b/Master/tlpkg/bin/tlpkg-ctan-check
@@ -222,7 +222,7 @@ my @TLP_working = qw(
dtxtut duerer duerer-latex duotenzor dutchcal
dvdcoll dvgloss dviasm dviincl
dvipsconfig dynamicnumber dynblocks dyntree
- e-french ean ean13isbn easy easy-todo easyfig easylist easyreview
+ e-french ean ean13isbn easy easy-todo easyfig easyformat easylist easyreview
ebezier ebgaramond ebgaramond-maths ebong ebook ebproof ebsthesis
ec ecc ecclesiastic ecgdraw ecltree eco ecobiblatex econometrics economic
ecv ed edfnotes edmac edmargin ednotes eemeir eepic efbox egameps
diff --git a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
index e8dac9d3e92..11052017e96 100644
--- a/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-latexextra.tlpsrc
@@ -301,6 +301,7 @@ depend ean13isbn
depend easy
depend easy-todo
depend easyfig
+depend easyformat
depend easylist
depend easyreview
depend ebezier
diff --git a/Master/tlpkg/tlpsrc/easyformat.tlpsrc b/Master/tlpkg/tlpsrc/easyformat.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/easyformat.tlpsrc