diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 331c555..0000000 --- a/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -*.aux -*.dvi -*.glo -*.gls -*.hd -*.idx -*.ilg -*.log -*.out -*.pdf -*.sty -*.toc diff --git a/CHANGELOG.md b/CHANGELOG.md index 4b84d20..89b71d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,12 +5,10 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## v0.1.0 [Unreleased] +## [Unreleased] ### Added -- Convert `dictionary.sty` to `dictionary.dtx` and create the install - file `dictionary.ins`. - Set the languages of the dictionary by using the package options `primary` and `secondary`. - Create the `dictionary` environment where the diff --git a/dictionary.dtx b/dictionary.dtx deleted file mode 100644 index 4493550..0000000 --- a/dictionary.dtx +++ /dev/null @@ -1,173 +0,0 @@ -% \iffalse meta-comment -% -% Copyright (C) 2024 by Fabian Nedoluha -% --------------------------------------------------------------------------- -% 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 Fabian Nedoluha. -% -% This work consists of the files dictionary.dtx and dictionary.ins -% and the derived filebase dictionary.sty. -% -% \fi -% -% \iffalse -%<*driver> -\ProvidesFile{dictionary.dtx} -% -%\NeedsTeXFormat{LaTeX2e}[1999/12/01] -%\ProvidesPackage{dictionary} -%<*package> - [2024/11/24 v0.1.0 dictionary] -% -% -%<*driver> -\documentclass{ltxdoc} -\usepackage{dictionary}[2024/11/24] -\EnableCrossrefs -\CodelineIndex -\RecordChanges -\begin{document} - \DocInput{dictionary.dtx} - \PrintChanges - \PrintIndex -\end{document} -% -% \fi -% -% \CheckSum{34} -% -% \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.0}{2024/11/24}{Initial version} -% -% \DoNotIndex{\newcommand,\newenvironment} -% -% \providecommand*{\url}{\texttt} -% \GetFileInfo{dictionary.dtx} -% \title{Create a \textsf{dictionary} in \LaTeX} -% \author{Fabian Nedoluha} -% \date{\fileversion~from \filedate} -% -% \maketitle -% \tableofcontents -% -% \begin{abstract} -% The \textsf{dictionary} \LaTeX\ package provides utility macros -% helping to typeset a dictionary. With the help of the datatool -% package it can build a database of words and their translation. Such -% a database can then be used to create a dictionary like text. -% \end{abstract} -% -% \section{Introduction} -% -% Currently only an environment and a macro are provided. -% -% \section{Usage} -% -% To use the \textsf{dictionary} package both package options -% (\texttt{primary} and \texttt{secondary}) have to be passed before -% using the package macros. -% -% \subsection{Package options} -% -% The package options \texttt{primary} and \texttt{secondary} have to -% be passed to \textsf{dictionary}. The \texttt{primary} option sets -% the language first part of each dictionary's entry and the -% \texttt{secondary} option sets the language of the second part, -% typically the translation, of each dictionary's entry. -% -% \DescribeMacro{\entry} -% -% The \texttt{\textbackslash entry} macro is used inside the -% \texttt{dictionary} environment in order to add entries to the -% dictionary. It expects two parameters, the primary part and the -% secondary part. -% -% \DescribeEnv{dictionary} -% -% The \texttt{dictionary} environment represents a dictionary. It is -% empty at the beginning but can be filled with the -% \texttt{\textbackslash entry} macro. -% - -% -% \StopEventually{} -% -% \section{Implementation} -% -% \iffalse -%<*package> -% \fi -% -% \begin{macrocode} -\NeedsTeXFormat{LaTeX2e} -\ProvidesPackage{dictionary}[2024/11/24 Dictionary] -\RequirePackage{babel} -\RequirePackage{datatool} -\DeclareKeys[dictionary]{ - primary.store = \@dictionary@primary, - secondary.store = \@dictionary@secondary -} -\ProcessKeyOptions[dictionary] -\PassOptionsToPackage{\@dictionary@primary,\@dictionary@secondary} - {babel} -% \end{macrocode} -% -% \begin{macro}{\entry} -% \begin{macrocode} -\newcommand{\entry}[2]{% - \DTLnewrow{dictionary}% - \DTLnewdbentry{dictionary}{word}{#1}% - \DTLnewdbentry{dictionary}{translation}{#2}% -} -% \end{macrocode} -% \end{macro} -% -% -% \begin{environment}{dictionary} -% \begin{macrocode} -\newenvironment{dictionary}{% - \DTLifdbexists{dictionary} - {\DTLcleardb{dictionary}}{\DTLnewdb{dictionary}}% -}{% - \DTLsort{word}{dictionary}% - \scriptsize% - \DTLforeach*{dictionary}{\word=word,\translation=translation}{% - \foreignlanguage{\@dictionary@primary}{\textbf{\word:}} - \foreignlanguage{\@dictionary@secondary}{\translation}\\}% - } -% \end{macrocode} -% \end{environment} -% - -% -% \iffalse -% -% \fi -% -% \Finale -\endinput diff --git a/dictionary.ins b/dictionary.ins deleted file mode 100644 index d94ea74..0000000 --- a/dictionary.ins +++ /dev/null @@ -1,57 +0,0 @@ -%% Copyright (C) 2024 by Fabian Nedoluha -%% -------------------------------------------------------------------------- -%% 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 Fabian Nedoluha. -%% -%% This work consists of the files dictionary.dtx and dictionary.ins -%% and the derived filebase dictionary.sty. -%% - -\input docstrip.tex -\keepsilent - -\usedir{tex/latex/dictionary} - -\preamble - -This is a generated file. - -Copyright (C) 2024 by Fabian Nedoluha --------------------------------------------------------------------------- -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{dictionary.sty}{\from{dictionary.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{* dictionary.sty *} -\Msg{* *} -\Msg{* To produce the documentation run the file dictionary.dtx *} -\Msg{* through LaTeX. *} -\Msg{* *} -\Msg{* Happy TeXing! *} -\Msg{* *} -\Msg{*************************************************************} - -\endbatchfile diff --git a/dictionary.sty b/dictionary.sty new file mode 100644 index 0000000..ccf41f0 --- /dev/null +++ b/dictionary.sty @@ -0,0 +1,29 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{dictionary}[2024/11/24 Dictionary] + +\RequirePackage{babel} +\RequirePackage{datatool} + +\DeclareKeys[dictionary]{ + primary.store = \@dictionary@primary, + secondary.store = \@dictionary@secondary +} + +\ProcessKeyOptions[dictionary] + +\PassOptionsToPackage{\@dictionary@primary,\@dictionary@secondary}{babel} + +\newcommand{\entry}[2]{% + \DTLnewrow{dictionary}% + \DTLnewdbentry{dictionary}{word}{#1}% + \DTLnewdbentry{dictionary}{translation}{#2}% +} + +\newenvironment{dictionary}{% + \DTLifdbexists{dictionary}{\DTLcleardb{dictionary}}{\DTLnewdb{dictionary}}% +}{% + \DTLsort{word}{dictionary}% + \scriptsize% + \DTLforeach*{dictionary}{\word=word,\translation=translation}{% + \foreignlanguage{\@dictionary@primary}{\textbf{\word:} }\foreignlanguage{\@dictionary@secondary}{\translation}\\}% +}