Taha Ahmed 31037be7d6 | 1 year ago | |
---|---|---|
.gitignore | 1 year ago | |
LICENSE | 1 year ago | |
README.md | 1 year ago | |
ifprintedition.dtx | 1 year ago | |
ifprintedition.ins | 1 year ago | |
ifprintedition.pdf | 1 year ago | |
ifprintedition.sty | 1 year ago |
README.md
ifprintedition
A small package that emulates the behaviour of ifdraft
but for two other documentclass options, namely,
webedition
(the implicit default) and printedition
.
Package development
The .dtx
file is the source, in combination with the .ins
file.
Step 1: generate the .sty
file using TeX.
taha@luxor:/usr/local/texlive/texmf-local/tex/latex/ifprintedition
$ tex ifprintedition.ins
This is TeX, Version 3.141592653 (TeX Live 2023) (preloaded format=tex)
(./ifprintedition.ins
(/usr/local/texlive/2023/texmf-dist/tex/latex/base/docstrip.tex
Utility: `docstrip' v2.6b <2022-09-03>
English documentation <2022-09-03>
**********************************************************
* This program converts documented macro-files into fast *
* loadable files by stripping off (nearly) all comments! *
**********************************************************
********************************************************
* No Configuration file found, using default settings. *
********************************************************
)
Generating file(s) ifprintedition.sty
Processing file ifprintedition.dtx (package) -> ifprintedition.sty
File ifprintedition.dtx ended by \endinput.
Lines processed: 127
Comments removed: 88
Comments passed: 0
Codelines passed: 31
************************************************************************
*
* To finish the installation you have to move the following
* file into a directory searched by TeX:
*
* ifprintedition.sty
*
* To produce the documentation run the file `ifprintedition.drv'
* through LaTeX.
*
* Happy TeXing!
*
************************************************************************
)
No pages of output.
Transcript written on ifprintedition.log.
The above command requires interactively pressing y
to allow it
to overwrite an already existing ifprintedition.sty
file, which
is very annoying.
Ok, I added
\askforoverwritefalse
to theins
file, this successfully overrides the interactive confirmation step.
Step 2: generate PDF documentation from dtx
using LaTeX.
taha@luxor:/usr/local/texlive/texmf-local/tex/latex/ifprintedition
$ pdflatex ifprintedition.dtx
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023) (preloaded format=pdflatex)
restricted \write18 enabled.
entering extended mode
./ifprintedition.dtx
LaTeX2e <2022-11-01> patch level 1
L3 programming layer <2023-02-22>
/usr/local/texlive/2023/texmf-dist/tex/latex/base/ltxdoc.cls
Document Class: ltxdoc 2022/06/22 v2.1i Standard LaTeX documentation class
*************************************
* Local config file ltxdoc.cfg used
*************************************
[...]
***************************
* Character table correct *
***************************
[1{/usr/local/texlive/2023/texmf-var/fonts/map/pdftex/updmap/pdftex.map}]
No file ifprintedition.ind.
**********************************
* This macro file has no checksum!
* The checksum should be 23!
**********************************
No file ifprintedition.gls.
Now is a good time to edit the % \CheckSum{0}
line in the dtx
file
with the correct number.
Note, during development you might want to reset to
\CheckSum{0}
to avoid compilation errors.
And you might want to use latexmk -pdf ...
instead of pdflatex ...
to run the requisite number of compilations and also generate index, etc.
In your documentclass file
This package works in conjunction with the following settings in my LuaUUThesis class (summarised below):
\newif\if@webedition
\newif\if@printedition
% set webedition by default
\@webeditiontrue
\@printeditionfalse
\DeclareOption{webedition}{
\PassOptionsToClass{\CurrentOption}{book}
\@webeditiontrue
\@printeditionfalse
}
\DeclareOption{printedition}{
\PassOptionsToClass{\CurrentOption}{book}
\@printeditiontrue
\@webeditionfalse
}
You will need to set something similar in your own documentclass for the
\ifprintedition{}{}
commands to have any effect.
Links
- https://tex.stackexchange.com/questions/351644/use-latexmk-on-dtx-file-and-then-run-it-again-on-the-tex-files-it-creates
- https://aperiodical.com/2019/03/realhats-writing-a-latex-package/
- https://tex.stackexchange.com/questions/21262/what-do-firstoftwo-and-secondoftwo-do
- https://en.wikibooks.org/wiki/LaTeX/Creating_Packages
- https://ftpmirror1.infania.net/mirror/CTAN/info/dtxtut/dtxtut.pdf
- https://tex.stackexchange.com/questions/34175/how-do-i-create-a-latex-package
- https://www.overleaf.com/learn/latex/Writing_your_own_package
- https://tex.stackexchange.com/questions/21909/classes-and-packages-whats-the-difference