% \iffalse meta-comment % % Copyright (C) 2019-2023 by Jan Hajer % ----------------------------------- % % This file may be distributed and/or modified under the % conditions of the LaTeX Project Public License, either version 1.3c % 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.3c or later is part of all distributions of LaTeX % version 2005/12/01 or later. % % \fi % % \iffalse %\NeedsTeXFormat{LaTeX2e}[2005/12/01] %\ProvidesPackage{hep-text}[2024/11/01 v1.3 Some text macros] %\ProvidesFile{hep-text-documentation.tex}[2024/11/01 v1.3 HEP-Text documentation] % %<*documentation> \RequirePackage[l2tabu, orthodox]{nag} \documentclass{ltxdoc} \renewcommand\theCodelineNo{\rmfamily\tstyle\footnotesize\arabic{CodelineNo}} \AtBeginEnvironment{macrocode}{\renewcommand{\ttdefault}{clmt}} \renewcommand{\MacroFont}{\codestyle} \AtBeginDocument{\DeleteShortVerb{\|}} \AtBeginDocument{\MakeShortVerb{\"}} \EnableCrossrefs \CodelineIndex \RecordChanges \usepackage{hologo} \usepackage[parskip,oldstyle,font=10pt]{hep-paper} \bibliography{bibliography} \acronym{CM}{computer modern} \acronym{LM}{latin modern} \newenvironment{columns}[1][.5]{% \par\vspace{-\bigskipamount}% \begin{minipage}[t]{\linewidth}% \begin{minipage}[t]{#1\linewidth}% \def\column{% \end{minipage}% \begin{minipage}[t]{\linewidth-#1\linewidth}% }% }{\end{minipage}\end{minipage}\par} % %<*driver> \expandafter\newif\csname ifshort\endcsname \shortfalse \begin{document} \DocInput{hep-text-implementation.dtx} \end{document} % % % \fi % % \CheckSum{129} % % \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{v1.0}{2019/01/01}{Initial version of the style file.} % \changes{v1.1}{2022/11/01}{Bug fixes.} % \changes{v1.2}{2023/07/01}{Bug fixes.} % \changes{v1.3}{2024/11/01}{Bug fixes.} % % \ifshort %<*documentation> % \fi % \GetFileInfo{hep-text.sty} \title{The \software{hep-text} package\thanks{This document corresponds to \software{hep-text}~\fileversion.}} \subtitle{List and text extensions} \author{Jan Hajer \email{jan.hajer@tecnico.ulisboa.pt}} \date{\filedate} % \ifshort \begin{document} % \fi \newgeometry{vscale=.8, vmarginratio=3:4, includeheadfoot, left=11em, marginparwidth=4.6cm, marginparsep=3mm, right=7em} \maketitle \begin{abstract} The \software{hep-text} package extends \hologo{LaTeX} lists using the \software{enumitem} package and provides some text macros. \end{abstract} The package can be loaded by "\usepackage{hep-text}". \DescribeMacro{lang} The "lang" option sets the used language and takes the values allowed by the \software{babel} package \cite{babel}, that is loaded for its hyphenation support. Quotation commands are provided by the \software{csquotes} package \cite{csquotes}. \DescribeMacro{\enquote} \DescribeMacro{\MakeOuterQuote} It provides the convenient macros "\enquote"\marg{text} and "\MakeOuterQuote{}" allowing to leave the choice of quotation marks to \hologo{LaTeX} and use \verb|"| instead of the pair \verb|``| and \verb|''|, respectively. \DescribeMacro{\eg} \DescribeMacro{\vs} The \software{foreign} package \cite{foreign} defines macros such as "\eg", "\ie", "\cf", and "\vs" which are typeset as \eg, \ie, \cf, and \vs with the appropriate spacing. Issuing "\renewcommand\foreignabbrfont{\itshape}" these abbreviations are typeset in italic. \DescribeMacro{\no} The "\no"\marg{number} macro is typeset as \no{123}. \DescribeMacro{\software} The "\software"\oarg{version}\marg{name} macro is typeset as \software[\fileversion]{HEP-Paper}. \DescribeMacro{\online} The "\online"\marg{url}\marg{text} macro combines the features of the "\href"\marg{url}\allowbreak\marg{text}\allowbreak \cite{hyperref} and the "\url"\marg{text} \cite{url} macros, resulting in \eg \online{https://ctan.org/pkg/hep-text}{ctan.org/pkg/hep-text}. \DescribeMacro{inlinelist} \DescribeMacro{enumdescript} The "inlinelist" and "enumdescript" environments are defined using the \software{enumitem} package \cite{enumitem}. \\ \begin{columns} \begin{verbatim} The three main points are \begin{inlinelist} \item one \item two \item three \end{inlinelist} \end{verbatim} \column % \vspace{.1ex} The three main points are \begin{inlinelist} \item one \item two \item three \end{inlinelist} \end{columns} \vspace{4ex} \begin{columns}[.6] \begin{verbatim} \begin{enumdescript}[label=\Roman*)] \item{First} one \item{Second} two \item{Third} three \end{enumdescript} \end{verbatim} \column \begin{enumdescript}[label=\Roman*)] \item{First} one \item{Second} two \item{Third} three \end{enumdescript} \end{columns} \DescribeMacro{\underline} The "\underline" macro is redefined to allow line-breaks using the \software{soul} package \cite{soul}. % \ifshort \printbibliography \end{document} % % % \fi % % \StopEventually{ % \printbibliography % \PrintChanges % } % % \appendix % % \section{Implementation} % %<*package> % % Load the \software{kvoptions} package \cite{kvoptions} and define a "heptext" namespace. % \begin{macrocode} \RequirePackage{kvoptions} \SetupKeyvalOptions{ family=heptext, prefix=heptext@ } % \end{macrocode} % % \begin{macro}{lang} % Define the "lang" option, which takes the values provided by the \software{babel} package \cite{babel}. % Make "british" the default language. % \begin{macrocode} \DeclareStringOption[british]{lang} % \end{macrocode} % \end{macro} % % \begin{macrocode} \ProcessKeyvalOptions* % \end{macrocode} % % Load the \software{babel} package \cite{babel} for hyphenation and the recommended \software{csquotes} package \cite{csquotes}. % \begin{macrocode} \PassOptionsToPackage{\heptext@lang}{babel} \RequirePackage{babel} \PassOptionsToPackage{autostyle}{csquotes} \RequirePackage{csquotes} % \end{macrocode} % % \begin{macro}{\underline} % Load the \software{soul} package \cite{soul} for hyphenable underlined text. % \begin{macrocode} \RequirePackage{soul} \let\underline\textul % \end{macrocode} % \end{macro} % % Check the "lang" option using the \software{pdftexcmds} package \cite{pdftexcmds}. % \begin{macrocode} \RequirePackage{pdftexcmds} \ifnum\pdf@strcmp{\heptext@lang}{american}=0 \newcommand{\heptext@lang@foreign}{USenglish} \else \ifnum\pdf@strcmp{\heptext@lang}{USenglish}=0 \newcommand{\heptext@lang@foreign}{USenglish} \else \newcommand{\heptext@lang@foreign}{british} \fi \fi % \end{macrocode} % %\begin{macro}{\vs} % Load the \software{foreign} package \cite{foreign} in order to highlight abbreviations and vocabularies from foreign languages. % Add the missing "\vs" command. % \begin{macrocode} \PassOptionsToPackage{all, \heptext@lang@foreign}{foreign} \RequirePackage{foreign} \renewcommand\foreignabbrfont{} \DeclareRobustCommand\vs{\xperiodafter{{\foreignabbrfont{vs}}}} % \end{macrocode} % \end{macro} % % The \software{foreign} package relies on the \software{xspace} package \cite{xspace}. % Ensure that "\xspace" is compatible with the "\enquote" macro from the \software{csquote} package. % \begin{macrocode} \xspaceaddexceptions{\csq@qclose@i} % \end{macrocode} % %\begin{macro}{\no} % Define the macro "\no"\marg{number} for the use of \textnumero\ with appropriate spacing. % \begin{macrocode} \newcommand{\no}[1]{\textnumero~#1} % \end{macrocode} % \end{macro} % %\begin{macro}{\software} % Define a macro for software with optional version information "\software"\linebreak[1]\oarg{version}\linebreak[1]\marg{name}, using the \software{relsize} \cite{relsize} and \software{xparse} \cite{xparse} packages. % \begin{macrocode} \RequirePackage{relsize} \newcommand{\software}[2][\hspace{-\fontdimen2\font}]{% {\smaller[.5]\textsc{#2}~#1}% } \RequirePackage{xparse} \NewExpandableDocumentCommand\hep@gobble@opt@arg{om}{#2} \AtBeginDocument{\@ifpackageloaded{hyperref}{% \pdfstringdefDisableCommands{\let\software\hep@gobble@opt@arg}% }{}} % \end{macrocode} % \end{macro} % % \begin{macro}{\online} % \begin{macro}{\email} % Define the "\online"\marg{text}\marg{url} macro combining the features of the "\href" and the "\url" macros. % Define a macro for typesetting emails. % \begin{macrocode} \providecommand{\online}[2]{\texttt{#2}}% \providecommand{\hep@email}[1]{\online{mailto:#1}{#1}} \providecommand\email{\hep@email} \AtBeginDocument{\@ifpackageloaded{hyperref}{% \renewcommand{\online}[2]{\href{#1}{\nolinkurl{#2}}}% }{}} % \end{macrocode} % \end{macro} % \end{macro} % % \begin{macro}{\prefix} % Define the "\prefix"\marg{prefix}\marg{word} macro ensuring the correct linebreak in \prefix{prefix}{word}. % \begin{macrocode} \newcommand{\prefix}[2]{(#1\mbox{-)}\allowbreak #2} % \end{macrocode} % \end{macro} % % \begin{macro}{\subsubparagraph} % Define the "\subsubparagraph" macro starting a new paragraph with the same spacing as the paragraph macro but without title. % \begin{macrocode} \newcommand\subsubparagraph{% \@tempskipa 3.25ex \@plus 1ex \@minus .2ex\relax% \addpenalty\@secpenalty\addvspace\@tempskipa% \everypar{\setbox\z@\lastbox\everypar{}}% } % \end{macrocode} % \end{macro} % % \subsection{Lists} % % Load the \software{enumitem} package \cite{enumitem}. % \begin{macrocode} \PassOptionsToPackage{inline}{enumitem} \RequirePackage{enumitem} % \end{macrocode} % % \begin{environment}{inlinelist} % Define an inline list environment. % \begin{macrocode} \newlist{inlinelist}{enumerate*}{1} \setlist*[inlinelist,1]{% label=\roman*), itemjoin={,\ }, itemjoin*={, and\ }, after=.% } % \end{macrocode} % \end{environment} % % \begin{environment}{enumdescript} % Define an enumdescript list environment. % \begin{macrocode} \newlist{enumdesc}{enumerate}{2} \setlist[enumdesc]{label=\arabic*.} \newenvironment{enumdescript}[1][]{ \begin{enumdesc}[#1] \let\hep@item\item \renewcommand{\item}[2][]{% \ifx&##1&\hep@item\else\hep@item[##1]\fi% \textbf{##2}\ifx##2\empty\else\hspace{1em}\fi% \@ifnextchar\par\@gobble\relax% } }{\end{enumdesc}} % \end{macrocode} % \end{environment} % % % % \section{Readme} % %<*readme> % % \begin{macrocode} # The `hep-text` package List and text extensions ## Introduction The `hep-text` package extends `LaTeX` lists using the `enumitem package and provides some text macros. The package can be loaded by `\usepackage{hep-text}`. ## Author Jan Hajer ## License This file may be distributed and/or modified under the conditions of the `LaTeX` Project Public License, either version 1.3c 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.3c or later is part of all distributions of LaTeX version 2005/12/01 or later. % \end{macrocode} % % % % \Finale \endinput % \PrintIndex % makeindex -s gglo.ist -o hep-text-implementation.gls hep-text-implementation.glo % makeindex -s gglo.ist -o hep-text-implementation.ind hep-text-implementation.idx