Hello community,
here is the log from the commit of package texlive-specs-e for openSUSE:Factory checked in at 2020-05-29 21:17:07
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/texlive-specs-e (Old)
and /work/SRC/openSUSE:Factory/.texlive-specs-e.new.3606 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "texlive-specs-e"
Fri May 29 21:17:07 2020 rev:40 rq:806887 version:unknown
Changes:
--------
--- /work/SRC/openSUSE:Factory/texlive-specs-e/texlive-specs-e.changes 2019-11-07 23:10:10.124110792 +0100
+++ /work/SRC/openSUSE:Factory/.texlive-specs-e.new.3606/texlive-specs-e.changes 2020-05-29 21:24:12.504292775 +0200
@@ -1,0 +2,60 @@
+Mon May 18 08:47:10 UTC 2020 - Dr. Werner Fink
+
+- Enhance spec file generator to find missing .so man page
+ links for better dependency resolution (bsc#1171682)
+
+-------------------------------------------------------------------
+Wed May 13 13:59:14 UTC 2020 - Dr. Werner Fink
+
+- Modify patch texdoc_cnf.dif to ignore tlpkg/texlive.tlpdb as
+ kpathsea uses the ls-R files as well
+
+-------------------------------------------------------------------
+Tue May 12 09:03:38 UTC 2020 - Dr. Werner Fink
+
+- Correct obsoletes for new packages
+
+-------------------------------------------------------------------
+Wed May 6 11:27:35 UTC 2020 - Dr. Werner Fink
+
+- Scan *.def files as well for RequirePackage
+
+-------------------------------------------------------------------
+Tue May 5 13:55:07 UTC 2020 - Dr. Werner Fink
+
+- Add Requires to tex(epstopdf-base.sty) to fix package split
+ of texlive-epstopdf
+
+-------------------------------------------------------------------
+Mon May 4 09:00:25 UTC 2020 - Dr. Werner Fink
+
+- Skip *-dev packages from file dependendcy scanner as otherwise
+ we see doubling name space for some style files like amsmath.sty
+
+-------------------------------------------------------------------
+Mon Apr 27 06:52:15 UTC 2020 - Dr. Werner Fink
+
+- Add patch pythontex_p2top3.dif and a removes file to fully
+ switch pythontex packages of TeXLive to python3
+
+-------------------------------------------------------------------
+Mon Apr 20 10:29:02 UTC 2020 - Dr. Werner Fink
+
+- Update to TeXLive 2020
+ * Port patches
+ kpathsea_cnf.dif
+ latexpand_perl.dif
+ luaotfload_varfonts.dif
+ luatex_cnf.dif
+ musixtex_various.dif
+ * Delete patches not needed anymore as files have moved
+ tetex_scripts.dif
+ * Delete patche updmap-map_roboto.dif as fixed upstream
+ * Add new patches to catch moved files
+ texlive-scripts-extra_scripts.dif
+ texlive-scripts_scripts.dif
+ * Add new patch xetex_conf.dif to fit FHS location
+ * Remove TeXLive installer files breaking rpm database
+ texlive-scripts.removes
+
+-------------------------------------------------------------------
New:
----
checkend.doc.tar.xz
checkend.tar.xz
chemplants.doc.tar.xz
chemplants.tar.xz
chicagoa.tar.xz
chklref.doc.tar.xz
chklref.tar.xz
chordbox.doc.tar.xz
chordbox.tar.xz
circledsteps.doc.tar.xz
circledsteps.tar.xz
circuit-macros.doc.tar.xz
circuit-macros.tar.xz
clara.doc.tar.xz
clara.tar.xz
clojure-pamphlet.doc.tar.xz
clojure-pamphlet.tar.xz
cmupint.doc.tar.xz
cmupint.tar.xz
codeanatomy.doc.tar.xz
codeanatomy.tar.xz
compare.tar.xz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ texlive-specs-e.spec ++++++
++++ 18198 lines (skipped)
++++ between /work/SRC/openSUSE:Factory/texlive-specs-e/texlive-specs-e.spec
++++ and /work/SRC/openSUSE:Factory/.texlive-specs-e.new.3606/texlive-specs-e.spec
++++++ checkcites.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/support/checkcites/README new/texmf-dist/doc/support/checkcites/README
--- old/texmf-dist/doc/support/checkcites/README 2017-08-26 00:26:15.000000000 +0200
+++ new/texmf-dist/doc/support/checkcites/README 2019-09-03 23:15:51.000000000 +0200
@@ -1,10 +1,10 @@
-checkcites.lua -- Version 2.0 from August 25, 2017.
-===================================================
+checkcites.lua -- Version 2.4 from September 3, 2019.
+=====================================================
License
-------
-Copyright (c) 2012, 2017 Enrico Gregorio, Paulo Roberto Massa Cereda
+Copyright (c) 2012, 2019 Enrico Gregorio, Paulo Roberto Massa Cereda
- Enrico dot Gregorio at univr dot it
- cereda at users dot sf dot net
Binary files old/texmf-dist/doc/support/checkcites/checkcites-doc.pdf and new/texmf-dist/doc/support/checkcites/checkcites-doc.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/support/checkcites/checkcites-doc.tex new/texmf-dist/doc/support/checkcites/checkcites-doc.tex
--- old/texmf-dist/doc/support/checkcites/checkcites-doc.tex 2017-08-26 00:26:15.000000000 +0200
+++ new/texmf-dist/doc/support/checkcites/checkcites-doc.tex 2019-09-03 23:15:51.000000000 +0200
@@ -1,3 +1,7 @@
+% arara: pdflatex
+% arara: pdflatex
+% arara: pdflatex
+% arara: clean: { extensions: [ listing, out, aux, log, toc ] }
\documentclass[12pt,a4paper]{article}
\usepackage[T1]{fontenc}
@@ -16,7 +20,7 @@
\newcommand{\checkcites}{\texttt{checkcites}}
\newcommand{\email}[1]{\small\texttt{#1}}
-\newcommand{\version}{Version 2.0 from August 25, 2017.}
+\newcommand{\version}{Version 2.4 from September 3, 2019.}
\newenvironment{infoblock}[1]
{\par\addvspace{\medskipamount}
@@ -62,9 +66,10 @@
modern \TeX\ distribution.
\begin{infoblock}{Attention!}
-\checkcites\ is known to run with the most recent \verb|texlua| and
-\verb|lua| interpreters. Unfortunately, the code is incompatible with
-interpreters prior to the Lua 5.1 language specification.
+From version 2.1 on, \checkcites\ relies on specific libraries available
+in the \verb|texlua| ecosystem and thus is not be supported in vanilla
+\verb|lua| interpreters. Please make sure to use this script with an
+updated \verb|texlua| interpreter in order to ensure the correct behaviour.
\end{infoblock}
\section{How the script works}
@@ -222,8 +227,8 @@
| _| | -_| _| '_| _| | _| -_|_ -|
|___|_|_|___|___|_,_|___|_|_| |___|___|
-checkcites.lua -- a reference checker script (v2.0)
-Copyright (c) 2012, 2017, Enrico Gregorio, Paulo Roberto Massa Cereda
+checkcites.lua -- a reference checker script (v2.4)
+Copyright (c) 2012, 2019, Enrico Gregorio, Paulo Roberto Massa Cereda
--------------------------------------------------------------------------
I am sorry, but you have not provided any command line argument, including
@@ -258,8 +263,8 @@
| _| | -_| _| '_| _| | _| -_|_ -|
|___|_|_|___|___|_,_|___|_|_| |___|___|
-checkcites.lua -- a reference checker script (v2.0)
-Copyright (c) 2012, 2017, Enrico Gregorio, Paulo Roberto Massa Cereda
+checkcites.lua -- a reference checker script (v2.1)
+Copyright (c) 2012, 2019, Enrico Gregorio, Paulo Roberto Massa Cereda
Usage: checkcites.lua [ [ --all | --unused | --undefined ] [ --backend
<arg> ] <file> [ ... <file n> ] | --help | --version ]
@@ -267,6 +272,7 @@
-a,--all list all unused and undefined references
-u,--unused list only unused references in your bibliography files
-U,--undefined list only undefined references in your TeX source file
+-c,--crossrefs enable cross-reference checks (disabled by default)
-b,--backend <arg> set the backend-based file lookup policy
-h,--help print the help message
-v,--version print the script version
@@ -318,8 +324,8 @@
| _| | -_| _| '_| _| | _| -_|_ -|
|___|_|_|___|___|_,_|___|_|_| |___|___|
-checkcites.lua -- a reference checker script (v2.0)
-Copyright (c) 2012, 2017, Enrico Gregorio, Paulo Roberto Massa Cereda
+checkcites.lua -- a reference checker script (v2.4)
+Copyright (c) 2012, 2019, Enrico Gregorio, Paulo Roberto Massa Cereda
Great, I found 4 citations in 1 file. I also found 1 bibliography file. Let
me check this file and extract the references. Please wait a moment.
@@ -459,8 +465,8 @@
| _| | -_| _| '_| _| | _| -_|_ -|
|___|_|_|___|___|_,_|___|_|_| |___|___|
-checkcites.lua -- a reference checker script (v2.0)
-Copyright (c) 2012, 2017, Enrico Gregorio, Paulo Roberto Massa Cereda
+checkcites.lua -- a reference checker script (v2.4)
+Copyright (c) 2012, 2019, Enrico Gregorio, Paulo Roberto Massa Cereda
Great, I found 4 citations in 1 file. I also found 1 bibliography file. Let
me check this file and extract the references. Please wait a moment.
@@ -487,7 +493,18 @@
\end{verbatim}
\end{terminal}
-That is all, folks!
+If you rely on cross-references in your bibliography file, \checkcites\ might complain about
+unused entries. We can try the experimental feature available from version 2.3 on that attempts
+to check cross-references through the \verb|--crossrefs| command line flag:
+
+\begin{terminal}
+\begin{verbatim}
+$ checkcites --crossrefs document.aux
+\end{verbatim}
+\end{terminal}
+
+This feature is disabled by default and it is known to work with both \verb|bibtex| and \verb|biber|
+backends. Please report if you find an issue. That is all, folks!
\section{License}
\label{sec:license}
@@ -498,8 +515,4 @@
donation, the best way to do this is donating to the
\href{http://www.tug.org/}{TeX Users Group}.
-\begin{infoblock}{Official code repository}
-\url{http://github.com/cereda/checkcites}
-\end{infoblock}
-
\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/checkcites.doc.tlpobj new/tlpkg/tlpobj/checkcites.doc.tlpobj
--- old/tlpkg/tlpobj/checkcites.doc.tlpobj 2019-02-28 03:25:15.000000000 +0100
+++ new/tlpkg/tlpobj/checkcites.doc.tlpobj 2019-09-04 01:54:57.000000000 +0200
@@ -1,8 +1,8 @@
name checkcites.doc
category Package
-revision 45131
+revision 52022
shortdesc doc files of checkcites
-docfiles size=61
+docfiles size=78
texmf-dist/doc/support/checkcites/README
texmf-dist/doc/support/checkcites/checkcites-doc.pdf
texmf-dist/doc/support/checkcites/checkcites-doc.tex
++++++ checkcites.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/scripts/checkcites/checkcites.lua new/texmf-dist/scripts/checkcites/checkcites.lua
--- old/texmf-dist/scripts/checkcites/checkcites.lua 2017-08-26 00:26:15.000000000 +0200
+++ new/texmf-dist/scripts/checkcites/checkcites.lua 2019-09-03 23:15:51.000000000 +0200
@@ -1,7 +1,7 @@
#!/usr/bin/env texlua
-- -----------------------------------------------------------------
-- checkcites.lua
--- Copyright 2012, 2017, Enrico Gregorio, Paulo Roberto Massa Cereda
+-- Copyright 2012, 2019, Enrico Gregorio, Paulo Roberto Massa Cereda
--
-- This work may be distributed and/or modified under the conditions
-- of the LaTeX Project Public License, either version 1.3 of this
@@ -145,6 +145,19 @@
return lines
end
+-- Gets a pluralized word based on a counter.
+-- @param i Counter.
+-- @param a Word in singular.
+-- @param b Word in plural.
+-- @return Either the first or second word based on the counter.
+local function plural(i, a, b)
+ if i == 1 then
+ return a
+ else
+ return b
+ end
+end
+
-- Normalizes the string, removing leading and trailing spaces.
-- @param str String.
-- @return Normalized string without leading and trailing spaces.
@@ -167,15 +180,28 @@
return false
end
+-- Checks if the key is allowed.
+-- @param v The key itself.
+-- @return Boolean value if the key is allowed.
+local function allowed(key)
+ local keys = { 'string', 'comment' }
+ for _, v in ipairs(keys) do
+ if string.lower(key) == v then
+ return false
+ end
+ end
+ return true
+end
+
-- Extracts the biblographic key.
-- @param lines Lines of a file.
-- @return Table containing bibliographic keys.
local function extract(lines)
local result = {}
for _, line in ipairs(lines) do
- local hit = string.match(line,
- '^%s*%@%w+%s*{%s*(.+),')
- if hit then
+ local key, hit = string.match(line,
+ '^%s*%@(%w+%s*){%s*(.+),')
+ if key and allowed(key) then
if not exists(result, hit) then
hit = normalize(hit)
table.insert(result, hit)
@@ -185,29 +211,91 @@
return result
end
--- Gets a pluralized word based on a counter.
--- @param i Counter.
--- @param a Word in singular.
--- @param b Word in plural.
--- @return Either the first or second word based on the counter.
-local function plural(i, a, b)
- if i == 1 then
- return a
+-- Extracts the cross-references found
+-- in lines of the bibligraphy file.
+-- @param lines Line of a file.
+-- @return Table containing cross-references.
+local function crossref(lines)
+ local result, lookup, key, hit = {}, ''
+ for _, line in ipairs(lines) do
+ key, hit = string.match(line,
+ '^%s*%@(%w+%s*){%s*(.+),')
+ if key and allowed(key) then
+ lookup = normalize(hit)
+ else
+ key, hit = string.match(line,
+ '^%s*(%w+)%s*=%s*(.+)$')
+ if key then
+ key = string.lower(key)
+ if key == 'crossref' then
+ if string.sub(hit, -1) == ',' then
+ hit = string.sub(hit, 2, -3)
+ else
+ hit = string.sub(hit, 2, -2)
+ end
+ result[lookup] = hit
+ end
+ end
+ end
+ end
+ return result
+end
+
+-- Adds the extension if the file does not have it.
+-- @param file File.
+-- @param extension Extension.
+-- @return File with proper extension.
+local function sanitize(file, extension)
+ extension = '.' .. extension
+ if string.sub(file, -#extension) ~= extension then
+ file = file .. extension
+ end
+ return file
+end
+
+-- Checks if a file exists.
+-- @param file File.
+-- @return Boolean value indicating if the file exists.
+local function valid(file)
+ local handler = io.open(file, 'r')
+ if handler then
+ handler:close()
+ return true
else
- return b
+ return false
end
end
+-- Wraps a string based on a line width.
+-- @param str String.
+-- @param size Line width.
+-- @return Wrapped string.
+local function wrap(str, size)
+ local parts = split(str, '[^%s]+')
+ local r, l = '', ''
+ for _, v in ipairs(parts) do
+ if (#l + #v) > size then
+ r = r .. '\n' .. l
+ l = v
+ else
+ l = normalize(l .. ' ' .. v)
+ end
+ end
+ r = normalize(r .. '\n' .. l)
+ return r
+end
+
-- Backend namespace
local backends = {}
-- Gets data from auxiliary files (BibTeX).
-- @param lines Lines of a file.
+-- @param rec Recursive switch.
-- @return Boolean indicating if an asterisk was found.
-- @return Table containing the citations.
-- @return Table containing the bibliography files.
-backends.bibtex = function(lines)
- local citations, bibliography = {}, {}
+backends.bibtex = function(lines, rec)
+ local citations, bibliography, invalid = {}, {}, {}
local asterisk, parts, hit = false
for _, line in ipairs(lines) do
hit = string.match(line, '^%s*\\citation{(.+)}$')
@@ -234,18 +322,52 @@
table.insert(bibliography, v)
end
end
+ else
+ hit = string.match(line, '^%s*\\@input{(.+)}$')
+ if rec and hit then
+ hit = sanitize(hit, 'aux')
+ if not valid(hit) then
+ table.insert(invalid, hit)
+ else
+ local a, b, c = backends.bibtex(read(hit), false)
+ asterisk = asterisk or a
+ for _, v in ipairs(b) do
+ if not exists(citations, v) then
+ table.insert(citations, v)
+ end
+ end
+ for _, v in ipairs(c) do
+ if not exists(bibliography, v) then
+ table.insert(bibliography, v)
+ end
+ end
+ end
+ end
end
end
end
+ if #invalid ~= 0 then
+ print()
+ print(wrap('Warning: there ' .. plural(#invalid,
+ 'is an invalid reference ', 'are ' ..
+ 'invalid references ') .. 'to the ' ..
+ 'following auxiliary ' .. plural(#invalid,
+ 'file ', 'files ') .. 'that could not ' ..
+ 'be resolved at runtime:', 74))
+ for _, v in ipairs(invalid) do
+ print('=> ' .. v)
+ end
+ end
return asterisk, citations, bibliography
end
-- Gets data from auxiliary files (Biber).
-- @param lines Lines of a file.
+-- @param _ To be discarded with biber.
-- @return Boolean indicating if an asterisk was found.
-- @return Table containing the citations.
-- @return Table containing the bibliography files.
-backends.biber = function(lines)
+backends.biber = function(lines, _)
local citations, bibliography = {}, {}
local asterisk, parts, hit = false
for _, line in ipairs(lines) do
@@ -294,28 +416,16 @@
-- Repeats the provided char a certain number of times.
-- @param c Char.
--- @param w Number of times.
+-- @param size Number of times.
-- @return String with a char repeated a certain number of times.
-local function pad(c, w)
+local function pad(c, size)
local r = c
- while #r < w do
+ while #r < size do
r = r .. c
end
return r
end
--- Adds the extension if the file does not have it.
--- @param file File.
--- @param extension Extension.
--- @return File with proper extension.
-local function sanitize(file, extension)
- extension = '.' .. extension
- if string.sub(file, -#extension) ~= extension then
- file = file .. extension
- end
- return file
-end
-
-- Flattens a table of tables into only one table.
-- @param t Table.
-- @return Flattened table.
@@ -331,6 +441,21 @@
return result
end
+-- Organizes a key/value table of tables into only one table.
+-- @param t Table.
+-- @return Flattened key/value table.
+local function organize(t)
+ local result = {}
+ for _, v in ipairs(t) do
+ for j, k in pairs(v) do
+ if not result[j] then
+ result[j] = k
+ end
+ end
+ end
+ return result
+end
+
-- Applies a function to elements of a table.
-- @param c Table.
-- @param f Function.
@@ -343,23 +468,13 @@
return result
end
--- Wraps a string based on a line width.
--- @param str String.
--- @param size Line width.
--- @return Wrapped string.
-local function wrap(str, size)
- local parts = split(str, '[^%s]+')
- local r, l = '', ''
- for _, v in ipairs(parts) do
- if (#l + #v) > size then
- r = r .. '\n' .. l
- l = v
- else
- l = normalize(l .. ' ' .. v)
- end
- end
- r = normalize(r .. '\n' .. l)
- return r
+-- Search the TeX tree for the file.
+-- @param library The library reference.
+-- @param file The filename.
+-- @param extension The extension.
+-- @return String pointing to the file location.
+local function lookup(library, file, extension)
+ return library.find_file(file, extension)
end
-- Prints the script header.
@@ -370,8 +485,8 @@
print("|___|_|_|___|___|_,_|___|_|_| |___|___|")
print()
print(wrap('checkcites.lua -- a reference ' ..
- 'checker script (v2.0)', 74))
- print(wrap('Copyright (c) 2012, 2017, ' ..
+ 'checker script (v2.4)', 74))
+ print(wrap('Copyright (c) 2012, 2019, ' ..
'Enrico Gregorio, Paulo ' ..
'Roberto Massa Cereda', 74))
end
@@ -383,7 +498,7 @@
-- @param citations Citations.
-- @param references References.
-- @return Integer representing the status.
-operations.unused = function(citations, references)
+operations.unused = function(citations, references, crossrefs)
print()
print(pad('-', 74))
print(wrap('Report of unused references in your TeX ' ..
@@ -391,6 +506,20 @@
'bibliography files, but not cited in ' ..
'the TeX source file)', 74))
print(pad('-', 74))
+
+ local z = {}
+ for _, citation in ipairs(citations) do
+ if crossrefs[citation] then
+ table.insert(z, crossrefs[citation])
+ end
+ end
+
+ for _, i in ipairs(z) do
+ if not exists(i, citations) then
+ table.insert(citations, i)
+ end
+ end
+
local r = difference(references, citations)
print()
print(wrap('Unused references in your TeX document: ' ..
@@ -409,7 +538,7 @@
-- @param citations Citations.
-- @param references References.
-- @return Integer value indicating the status.
-operations.undefined = function(citations, references)
+operations.undefined = function(citations, references, crossrefs)
print()
print(pad('-', 74))
print(wrap('Report of undefined references in your TeX ' ..
@@ -417,6 +546,20 @@
'TeX source file, but not present in the ' ..
'bibliography files)', 74))
print(pad('-', 74))
+
+ local z = {}
+ for _, citation in ipairs(citations) do
+ if crossrefs[citation] then
+ table.insert(z, crossrefs[citation])
+ end
+ end
+
+ for _, i in ipairs(z) do
+ if not exists(i, citations) then
+ table.insert(citations, i)
+ end
+ end
+
local r = difference(citations, references)
print()
print(wrap('Undefined references in your TeX document: ' ..
@@ -435,10 +578,10 @@
-- @param citations Citations.
-- @param references References.
-- @return Integer value indicating the status.
-operations.all = function(citations, references)
+operations.all = function(citations, references, crossrefs)
local x, y
- x = operations.unused(citations, references)
- y = operations.undefined(citations, references)
+ x = operations.unused(citations, references, crossrefs)
+ y = operations.undefined(citations, references, crossrefs)
if x + y > 0 then
return 1
else
@@ -446,36 +589,37 @@
end
end
--- Checks if a file exists.
--- @param file File.
--- @return Boolean value indicating if the file exists.
-local function valid(file)
- local handler = io.open(file, 'r')
- if handler then
- handler:close()
- return true
- else
- return false
- end
-end
-
-- Filters a table of files, keeping the inexistent ones.
-- @param files Table.
+-- @param lib Search library.
+-- @param enabled Boolean switch to enable lookup.
+-- @param extension Extension for lookup.
-- @return Table of inexistent files.
-local function validate(files)
- local result = {}
+-- @return Table of existent files.
+local function validate(files, lib, enabled, extension)
+ local bad, good = {}, {}
for _, v in ipairs(files) do
if not valid(v) then
- table.insert(result, v)
+ if enabled and lookup(lib, v, extension) then
+ table.insert(good, lookup(lib, v, extension))
+ else
+ table.insert(bad, v)
+ end
+ else
+ table.insert(good, v)
end
end
- return result
+ return bad, good
end
-- Main function.
-- @param args Command line arguments.
-- @return Integer value indicating the status
local function checkcites(args)
+
+ local kpse = require('kpse')
+ kpse.set_program_name('texlua')
+
header()
local parameters = {
@@ -484,6 +628,7 @@
{ short = 'U', long = 'undefined', argument = false },
{ short = 'v', long = 'version', argument = false },
{ short = 'h', long = 'help', argument = false },
+ { short = 'c', long = 'crossrefs', argument = false },
{ short = 'b', long = 'backend', argument = true }
}
@@ -525,8 +670,8 @@
if keys['version'] or keys['help'] then
if keys['version'] then
print()
- print(wrap('checkcites.lua, version 2.0 (dated August ' ..
- '25, 2017)', 74))
+ print(wrap('checkcites.lua, version 2.4 (dated September ' ..
+ '3, 2019)', 74))
print(pad('-', 74))
print(wrap('You can find more details about this ' ..
@@ -552,6 +697,7 @@
print('-a,--all list all unused and undefined references')
print('-u,--unused list only unused references in your bibliography files')
print('-U,--undefined list only undefined references in your TeX source file')
+ print('-c,--crossrefs enable cross-reference checks (disabled by default)')
print('-b,--backend <arg> set the backend-based file lookup policy')
print('-h,--help print the help message')
print('-v,--version print the script version')
@@ -611,16 +757,16 @@
return sanitize(a, (backend == 'bibtex'
and 'aux') or 'bcf') end)
- local vld = validate(auxiliary)
- if #vld ~= 0 then
+ local invalid, _ = validate(auxiliary, kpse, false, 'aux')
+ if #invalid ~= 0 then
print()
print(pad('-', 74))
print(wrap('I am sorry, but I was unable to ' ..
- 'locate ' .. plural(#vld, 'this file',
+ 'locate ' .. plural(#invalid, 'this file',
'these files') .. ' (the extension ' ..
'is automatically set based on the ' ..
'"' .. backend .. '" backend):', 74))
- for _, v in ipairs(vld) do
+ for _, v in ipairs(invalid) do
print('=> ' .. v)
end
@@ -631,13 +777,13 @@
'" to files if not provided.', 74))
print()
- print(wrap('Please make sure the ' .. plural(#vld,
+ print(wrap('Please make sure the ' .. plural(#invalid,
'path is', 'paths are') .. ' ' ..
- 'correct and the ' .. plural(#vld,
+ 'correct and the ' .. plural(#invalid,
'file exists', 'files exist') .. '. ' ..
'There is nothing I can do at the moment. ' ..
'Refer to the user documentation for ' ..
- 'details on the file lookup. If ' .. plural(#vld,
+ 'details on the file lookup. If ' .. plural(#invalid,
'this is not the file', 'these are not the ' ..
'files') .. ' you were expecting, ' ..
'double-check your source file or ' ..
@@ -647,7 +793,7 @@
end
local lines = flatten(apply(auxiliary, read))
- local asterisk, citations, bibliography = backends[backend](lines)
+ local asterisk, citations, bibliography = backends[backend](lines, true)
print()
print(wrap('Great, I found ' .. tostring(#citations) .. ' ' ..
@@ -671,27 +817,27 @@
bibliography = apply(bibliography, function(a)
return sanitize(a, 'bib') end)
- vld = validate(bibliography)
- if #vld ~= 0 then
+ invalid, bibliography = validate(bibliography, kpse, true, 'bib')
+ if #invalid ~= 0 then
print()
print(pad('-', 74))
print(wrap('I am sorry, but I was unable to locate ' ..
- plural(#vld, 'this file', 'these files') .. ' ' ..
+ plural(#invalid, 'this file', 'these files') .. ' ' ..
'(the extension is automatically set to ' ..
'".bib", if not provided):', 74))
- for _, v in ipairs(vld) do
+ for _, v in ipairs(invalid) do
print('=> ' .. v)
end
print()
- print(wrap('Please make sure the ' .. plural(#vld,
+ print(wrap('Please make sure the ' .. plural(#invalid,
'path is', 'paths are') .. ' ' ..
- 'correct and the ' .. plural(#vld,
+ 'correct and the ' .. plural(#invalid,
'file exists', 'files exist') .. '. ' ..
'There is nothing I can do at the moment. ' ..
'Refer to to the user documentation ' ..
'for details on bibliography lookup. If ' ..
- plural(#vld, 'this is not the file',
+ plural(#invalid, 'this is not the file',
'these are not the files') .. ' you were ' ..
'expecting (wrong bibliography), double-check ' ..
'your source file. The script will end ' ..
@@ -702,6 +848,9 @@
local references = flatten(apply(bibliography, function(a)
return extract(read(a)) end))
+ local crossrefs = (keys['crossrefs'] and organize(apply(bibliography,
+ function(a) return crossref(read(a)) end))) or {}
+
print()
print(wrap('Fantastic, I found ' .. tostring(#references) ..
' ' .. plural(#references, 'reference',
@@ -711,11 +860,10 @@
plural(((check == 'all' and 2) or 1), 'report is',
'reports are') .. ' generated.', 74))
- return operations[check](citations, references)
+ return operations[check](citations, references, crossrefs)
end
-- Call and exit
os.exit(checkcites(arg))
-- EOF
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/checkcites.tlpobj new/tlpkg/tlpobj/checkcites.tlpobj
--- old/tlpkg/tlpobj/checkcites.tlpobj 2019-02-28 03:25:15.000000000 +0100
+++ new/tlpkg/tlpobj/checkcites.tlpobj 2019-09-04 01:54:57.000000000 +0200
@@ -1,17 +1,17 @@
name checkcites
category Package
-revision 45131
+revision 52022
shortdesc Check citation commands in a document
longdesc The package provides a lua script written for the sole purpose
longdesc of detecting undefined and unused references from LaTeX
longdesc auxiliary or bibliography files.
depend checkcites.ARCH
-runfiles size=6
+runfiles size=7
texmf-dist/scripts/checkcites/checkcites.lua
catalogue-contact-bugs https://github.com/cereda/checkcites/issues
catalogue-contact-repository https://github.com/cereda/checkcites
catalogue-ctan /support/checkcites
-catalogue-date 2017-08-25 17:01:28 +0200
+catalogue-date 2019-09-03 13:10:18 +0200
catalogue-license lppl1.3
catalogue-topics debug-supp
-catalogue-version 2.0
+catalogue-version 2.4
++++++ chemfig.doc.tar.xz ++++++
++++ 6996 lines of diff (skipped)
++++++ chemfig.tar.xz ++++++
++++ 4382 lines of diff (skipped)
++++++ chemformula.doc.tar.xz ++++++
++++ 3756 lines of diff (skipped)
++++++ chemformula.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/chemformula/chemformula.sty new/tex/latex/chemformula/chemformula.sty
--- old/tex/latex/chemformula/chemformula.sty 2017-03-23 22:28:12.000000000 +0100
+++ new/tex/latex/chemformula/chemformula.sty 2020-03-07 22:40:05.000000000 +0100
@@ -12,7 +12,7 @@
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-% Copyright 2011-2017 Clemens Niederberger
+% Copyright 2011--2020 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -30,9 +30,9 @@
\usetikzlibrary{arrows.meta}
\ExplSyntaxOn
-\tl_const:Nn \c_chemformula_date_tl {2017/03/23}
+\tl_const:Nn \c_chemformula_date_tl {2020/03/07}
\tl_const:Nn \c_chemformula_version_number_tl {4.15}
-\tl_const:Nn \c_chemformula_version_suffix_tl {e}
+\tl_const:Nn \c_chemformula_version_suffix_tl {j}
\tl_const:Nx \c_chemformula_version_tl
{ \c_chemformula_version_number_tl \c_chemformula_version_suffix_tl }
\tl_const:Nn \c_chemformula_info_tl
@@ -146,20 +146,20 @@
% --------------------------------------------------------------------------
% variants of kernel functions:
-\cs_generate_variant:Nn \keys_set:nn { nV }
-\cs_generate_variant:Nn \tl_if_blank:nF { V }
-\cs_generate_variant:Nn \tl_if_in:nnT { x , nV }
-\cs_generate_variant:Nn \tl_if_eq:nnT { V, x }
-\cs_generate_variant:Nn \tl_if_eq:nnTF { o }
-\cs_generate_variant:Nn \tl_set:Nn { cV }
-\cs_generate_variant:Nn \tl_replace_all:Nnn { NV }
-\cs_generate_variant:Nn \tl_replace_once:Nnn { Nxx }
-\cs_generate_variant:Nn \tl_set_rescan:Nnn { NnV }
-\cs_generate_variant:Nn \prop_item:Nn { NV }
-\cs_generate_variant:Nn \prop_if_in:NnT { Nx }
-\cs_generate_variant:Nn \dim_set:Nn { NV }
-\cs_generate_variant:Nn \skip_set:Nn { cV }
-\cs_generate_variant:Nn \str_if_eq:nnT { V }
+\cs_generate_variant:Nn \keys_set:nn {nV}
+\cs_generate_variant:Nn \tl_if_blank:nF {V}
+\cs_generate_variant:Nn \tl_if_in:nnT {x,nV}
+\cs_generate_variant:Nn \tl_if_eq:nnT {V,x}
+\cs_generate_variant:Nn \tl_if_eq:nnTF {o}
+\cs_generate_variant:Nn \tl_set:Nn {cV}
+\cs_generate_variant:Nn \tl_replace_all:Nnn {NV}
+\cs_generate_variant:Nn \tl_replace_once:Nnn {Nxx}
+\cs_generate_variant:Nn \tl_set_rescan:Nnn {NnV}
+\cs_generate_variant:Nn \prop_item:Nn {NV}
+\cs_generate_variant:Nn \prop_if_in:NnT {Nx}
+\cs_generate_variant:Nn \dim_set:Nn {NV}
+\cs_generate_variant:Nn \skip_set:Nn {cV}
+\cs_generate_variant:Nn \str_if_eq:nnT {V}
% --------------------------------------------------------------------------
% VARIABLES
@@ -181,6 +181,8 @@
\seq_new:N \l__chemformula_tmpa_seq
+\bool_new:N \l__chemformula_tmpa_bool
+
% booleans:
% these are official:
\bool_new:N \l_chemformula_inside_ch_bool
@@ -340,6 +342,7 @@
\tl_set:Nn \l__chemformula_kroegervink_neutral_tl {$\times$}
\tl_new:N \l__chemformula_adduct_penalty_tl
\tl_set:Nn \l__chemformula_adduct_penalty_tl {300}
+\tl_new:N \l__chemformula_catcodes_tl
% property lists:
\prop_new:N \l__chemformula_arrows_code_prop
@@ -363,36 +366,91 @@
\box_new:N \l__chemformula_subscript_box
% --------------------------------------------------------------------------
+% catcode stuff
+\cs_new_protected:Npn \__chemformula_save_catcodes:
+ {
+ \cs_gset_protected:Npx \__chemformula_restore:
+ {
+ \char_set_catcode:nn { 95 } { \char_value_catcode:n { 95 } }% _
+ \char_set_catcode:nn { 58 } { \char_value_catcode:n { 58 } }% :
+ \char_set_catcode:nn { 94 } { \char_value_catcode:n { 94 } }% ^
+ \char_set_catcode:nn { 123 } { \char_value_catcode:n { 123 } }% {
+ \char_set_catcode:nn { 125 } { \char_value_catcode:n { 125 } }% }
+ \char_set_catcode:nn { 35 } { \char_value_catcode:n { 35 } }% #
+ \char_set_catcode:nn { 33 } { \char_value_catcode:n { 33 } }% !
+ \char_set_catcode:nn { 34 } { \char_value_catcode:n { 34 } }% "
+ \char_set_catcode:nn { 60 } { \char_value_catcode:n { 60 } }% <
+ \char_set_catcode:nn { 62 } { \char_value_catcode:n { 62 } }% >
+ \char_set_catcode:nn { 126 } { \char_value_catcode:n { 126 } }% ~
+ }
+ }
+
+\cs_gset_protected:Npn \__chemformula_basic_catcodes:
+ {
+ % expl3 catcodes:
+ \char_set_catcode_letter:N \_
+ \char_set_catcode_letter:N \:
+ % I've forgotten why I put this here:
+ \char_set_catcode_math_superscript:N \^
+ % disable some of the specials (needed for sub- and superscripts):
+ \char_set_catcode_letter:N \#
+ % make the naming work with babel languages like French that make
+ % ! active:
+ \char_set_catcode_other:N \!
+ % make the naming work with babel languages like Spanish that make
+ % < and > active:
+ \char_set_catcode_other:N \>
+ \char_set_catcode_other:N \<
+ % ensure " is other:
+ \char_set_catcode_other:N \"
+ % spaces are spaces:
+ \char_set_catcode_space:N \
+ }
+
+\cs_new_protected:Npn \__chemformula_sanitize:Nn #1#2
+ {
+ \tl_set_rescan:Nnn #1
+ {
+ \__chemformula_basic_catcodes:
+ % disable some of the specials (needed for sub- and superscripts):
+ \char_set_catcode_letter:N \{
+ \char_set_catcode_letter:N \}
+ }
+ {#2}
+ }
+\cs_generate_variant:Nn \__chemformula_sanitize:Nn {NV}
+
+% --------------------------------------------------------------------------
% general and helper functions:
\cs_new_protected:Npn \chemformula_tikz:nn #1#2
{
\group_begin:
\chemformula_tikzexternaldisable:
- \tikz [ #1 ] {#2}
+ \tikz [#1] {#2}
\group_end:
}
-\cs_generate_variant:Nn \chemformula_tikz:nn { xn,nf }
+\cs_generate_variant:Nn \chemformula_tikz:nn {xn,nf}
\cs_new_protected:Npn \chemformula_draw:nn #1#2
- { \draw [ #1 ] #2 ; }
-\cs_generate_variant:Nn \chemformula_draw:nn { xn,nx,xx,xf,Vn }
+ { \draw [#1] #2 ; }
+\cs_generate_variant:Nn \chemformula_draw:nn {xn,nx,xx,xf,Vn}
\cs_new_protected:Npn \chemformula_node:nn #1#2
- { \node [ #1 ] {#2} ; }
-\cs_generate_variant:Nn \chemformula_node:nn { x }
+ { \node [#1] {#2} ; }
+\cs_generate_variant:Nn \chemformula_node:nn {x}
\cs_new_protected:Npn \chemformula_node:nnn #1#2#3
- { \node [ #1 ] ( #2 ) {#3} ; }
-\cs_generate_variant:Nn \chemformula_node:nnn { nx }
+ { \node [#1] (#2) {#3} ; }
+\cs_generate_variant:Nn \chemformula_node:nnn {nx}
\cs_new_protected:Npn \chemformula_allow_break:
- { \tex_penalty:D \c_zero }
+ { \tex_penalty:D \c_zero_int }
\cs_new_protected:Npn \chemformula_leave_vmode:
{ \hbox_unpack:N \c_empty_box }
\cs_new_protected:Npn \chemformula_nobreak:
- { \tex_penalty:D \c_ten_thousand }
+ { \tex_penalty:D 10000 \scan_stop: }
\cs_new_protected:Npn \chemformula_skip_nobreak:N #1
{
@@ -428,7 +486,7 @@
% prevent externalisation of tikz parts of the formulae:
\AtBeginDocument { \providecommand \tikzexternaldisable {} }
-\keys_define:nn { chemformula }
+\keys_define:nn {chemformula}
{
tikz-external-disable .bool_set:N =
\l__chemformula_tikzexternaldisable_bool
@@ -636,7 +694,7 @@
{
\bool_if:NTF \l__chemformula_kroegervink_bool
{ \chemformula_kroegervink_negative: }
- { ' }
+ {'}
}
\keys_define:nn {chemformula}
@@ -826,9 +884,10 @@
\cs_new_protected:Npn \__chemformula_arrow_draw:nnn #1#2#3
{
\chemformula_nobreak:
+ % \__chemformula_sanitize:Nn \l__chemformula_tmpc_tl {#1}
% prepare arrow code for drawing:
\tl_set_rescan:Nnn \l__chemformula_tmpc_tl
- { \char_set_catcode_letter:N \_ } {#1}
+ { \__chemformula_basic_catcodes: } {#1}
% determine length of the arrow
\hbox_set:Nn \l__chemformula_arrow_arg_i_box
{ \tl_use:N \l__chemformula_arrow_label_style_tl #2 }
@@ -873,14 +932,31 @@
\c_zero_skip
\l__chemformula_arrow_penalty_tl
}
-\cs_generate_variant:Nn \__chemformula_arrow_draw:nnn { V }
+\cs_generate_variant:Nn \__chemformula_arrow_draw:nnn {V}
\prg_new_conditional:Npnn \chemformula_if_is_arrow:n #1 {p,T,F,TF}
{
- \seq_if_in:NnTF \l__chemformula_arrows_type_seq {#1}
+ \__chemformula_sanitize:Nn \l__chemformula_tmpa_tl {#1}
+ \seq_if_in:NVTF \l__chemformula_arrows_type_seq \l__chemformula_tmpa_tl
{ \prg_return_true: }
{ \prg_return_false: }
}
+\prg_generate_conditional_variant:Nnn \chemformula_if_is_arrow:n {V} {T,F,TF}
+
+\cs_new_protected:Npn \chemformula_define_arrow:nn #1#2
+ {
+ \__chemformula_sanitize:Nn \l__chemformula_tmpa_tl {#1}
+ \__chemformula_sanitize:Nn \l__chemformula_tmpb_tl {#2}
+ \seq_if_in:NVF \l__chemformula_arrows_type_seq \l__chemformula_tmpa_tl
+ {
+ \seq_put_right:NV
+ \l__chemformula_arrows_type_seq
+ \l__chemformula_tmpa_tl
+ }
+ \prop_put:NVV \l__chemformula_arrows_code_prop
+ \l__chemformula_tmpa_tl
+ \l__chemformula_tmpb_tl
+ }
% commands to declare arrows (can also be used by users):
% #1: symbol, #2: code
@@ -888,36 +964,23 @@
{
\chemformula_if_is_arrow:nTF {#1}
{ \msg_error:nnn {chemformula} {new-arrow} {#1} }
- {
- % store type in the sequence and code in the property list
- \seq_put_right:Nn \l__chemformula_arrows_type_seq {#1}
- \prop_put:Nnn \l__chemformula_arrows_code_prop {#1} {#2}
- }
+ { \chemformula_define_arrow:nn {#1} {#2} }
}
\NewDocumentCommand \DeclareChemArrow {mm}
- {
- \chemformula_if_is_arrow:nF {#1}
- { \seq_put_right:Nn \l__chemformula_arrows_type_seq {#1} }
- % store type in the sequence and code in the property list
- \prop_put:Nnn \l__chemformula_arrows_code_prop {#1} {#2}
- }
+ { \chemformula_define_arrow:nn {#1} {#2} }
\NewDocumentCommand \RenewChemArrow {mm}
{
\chemformula_if_is_arrow:nTF {#1}
- { \prop_put:Nnn \l__chemformula_arrows_code_prop {#1} {#2} }
+ { \chemformula_define_arrow:nn {#1} {#2} }
{ \msg_error:nnn {chemformula} {renew-arrow} {#1} }
}
\NewDocumentCommand \ProvideChemArrow {mm}
{
\chemformula_if_is_arrow:nF {#1}
- {
- % store type in the sequence and code in the property list
- \seq_put_right:Nn \l__chemformula_arrows_type_seq {#1}
- \prop_put:Nnn \l__chemformula_arrows_code_prop {#1} {#2}
- }
+ { \chemformula_define_arrow:nn {#1} {#2} }
}
\NewDocumentCommand \ShowChemArrow {m}
@@ -1018,7 +1081,7 @@
\draw[chemarrow] (cf_arrow_mid) ++ (.6ex,.4ex) -- ++(-.4ex,-.8ex) ;
}
% net reaction:
-\NewChemArrow {==} { \node at ([yshift=-.2ex]cf_arrow_mid) { = } ; }
+\NewChemArrow {==} { \node at ([yshift=-.2ex]cf_arrow_mid) {=} ; }
% quasi equilibria:
\NewChemArrow{<=o>}{
\draw[chemarrow,-left~cf]
@@ -1069,7 +1132,6 @@
\tl_set:Nn \l__chemmacros_tmpa_tl {#1}
\tl_trim_spaces:N \l__chemmacros_tmpa_tl
\seq_set_split:NnV \l__chemformula_input_seq {~} \l__chemmacros_tmpa_tl
- % \seq_show:N \l__chemformula_input_seq
% remove empty items in order to avoid unnecessary processing:
\seq_remove_all:Nn \l__chemformula_input_seq {}
% disable \xspace:
@@ -1084,7 +1146,9 @@
\seq_map_function:NN
\l__chemformula_input_seq
\__chemformula_input:n
- \__chemformula_prepare_output:N \l__chemformula_input_tl
+ \__chemformula_prepare_output:NV
+ \l__chemformula_input_tl
+ \l__chemformula_catcodes_tl
\chemformula_write:V \l__chemformula_input_tl
}
\group_end:
@@ -1096,7 +1160,7 @@
{ \text { \chemformula_font_inner: #1} }
{ { \chemformula_font_inner: #1 } }
}
-\cs_generate_variant:Nn \chemformula_write:n { V }
+\cs_generate_variant:Nn \chemformula_write:n {V}
% internal version of \ch command:
\cs_new_protected:Npn \chemformula_ch:nn #1#2
@@ -1109,10 +1173,9 @@
\__chemformula_ch_newline:w #2 \\ \q_no_value \q_stop
\group_align_safe_end:
\tl_use:N \g__chemformula_output_tl
-% \tl_show:N \g__chemformula_output_tl
\tl_gclear:N \g__chemformula_output_tl
}
-\cs_generate_variant:Nn \chemformula_ch:nn { V , nV , VV }
+\cs_generate_variant:Nn \chemformula_ch:nn {V,nV,VV}
% Trickery to use \ch inside align environment:
% bypass \\:
@@ -1130,7 +1193,7 @@
}
}
-\cs_new_protected:Npn \__chemformula_ch_newline_skip:w [ #1 ]
+\cs_new_protected:Npn \__chemformula_ch_newline_skip:w [#1]
{
\tl_gput_right:Nn \g__chemformula_output_tl { [#1] }
\__chemformula_ch_newline:w
@@ -1142,7 +1205,7 @@
\__chemformula_ch_intertext:w #1 \intertext{} \q_no_value \q_stop
\quark_if_no_value:nF {#2}
{
- \tl_gput_right:Nn \g__chemformula_output_tl { & }
+ \tl_gput_right:Nn \g__chemformula_output_tl {&}
\__chemformula_ch_align:w #2 \q_stop
}
}
@@ -1188,7 +1251,9 @@
\__chemformula_input_compound_no_check:NV
\l__chemformula_compound_tl
\l__chemformula_chemformula_tmpa_tl
- \__chemformula_prepare_output:N \l__chemformula_compound_tl
+ \__chemformula_prepare_output:NV
+ \l__chemformula_compound_tl
+ \l__chemformula_catcodes_tl
\chemformula_write:V \l__chemformula_compound_tl
}
\group_end:
@@ -1251,7 +1316,7 @@
}
\tl_set:NV #1 \l__chemformula_tmpa_tl
}
-\cs_generate_variant:Nn \__chemformula_generate_arrows:Nn { NV }
+\cs_generate_variant:Nn \__chemformula_generate_arrows:Nn {NV}
\cs_new_protected:Npn \__chemformula_detect_arrows:n #1
{
@@ -1277,8 +1342,6 @@
\cs_new_protected:Npn \chemformula_chwritebelow:nn #1#2
{
- % \tl_set:Nn \l_tmpa_tl {#1} \show \l_tmpa_tl
- % \tl_set:Nn \l_tmpa_tl {#2} \show \l_tmpa_tl
\c_math_toggle_token
\underset
{
@@ -1313,15 +1376,15 @@
\cs_new_protected:Npn \__chemformula_generate_name:Nn #1#2
{
\__chemformula_sanitize:Nn \l__chemformula_tmpa_tl {#2}
- \tl_if_in:VnT \l__chemformula_tmpa_tl { ! }
+ \tl_if_in:VnT \l__chemformula_tmpa_tl {!}
{
\tl_replace_all:Nnn \l__chemformula_tmpa_tl
- { ! }
+ {!}
{ \__chemformula_name_compound:w }
}
\tl_set:NV #1 \l__chemformula_tmpa_tl
}
-\cs_generate_variant:Nn \__chemformula_generate_name:Nn { NV }
+\cs_generate_variant:Nn \__chemformula_generate_name:Nn {NV}
\cs_new_protected:Npn \__chemformula_detect_name:n #1
{
@@ -1478,17 +1541,18 @@
\cs_new_protected:Npn \chemformula_bond:n #1
{
\chemformula_skip_nobreak:N \l__chemformula_bond_space_dim
+ \hbox_set:Nn \l__chemformula_tmpa_box {K}
+ \dim_set:Nn \l__chemformula_tmpa_dim { \box_ht:N \l__chemformula_tmpa_box }
\chemformula_tikz:nn
{
inner~sep = 0pt ,
outer~sep = 0pt ,
- text~height = 1em ,
+ text~height = \l__chemformula_tmpa_dim ,
baseline = (chemformula-bond-ground.base)
}
{
- \draw node[ draw=none, minimum~height=1em, minimum~width=0 ]
- (chemformula-bond-ground) at (0pt,0pt) {};
- \draw (chemformula-bond-ground) ++ (0pt,-.1716em)
+ \coordinate (chemformula-bond-ground) at (0pt,0pt) ;
+ \draw (chemformula-bond-ground) ++ (0pt,.5\l__chemformula_tmpa_dim)
coordinate (chemformula-bond-start) ;
\draw (chemformula-bond-start) ++(\l__chemformula_bond_dim ,0pt)
coordinate (chemformula-bond-end) ;
@@ -1654,7 +1718,7 @@
{ \ensuremath {#1} }
{ \ensuremath { \text {#1} } }
}
-\cs_generate_variant:Nn \__chemformula_number_style:n { V }
+\cs_generate_variant:Nn \__chemformula_number_style:n {V}
\cs_new_protected:Npn \chemformula_charge_style:n #1
{
@@ -1662,7 +1726,7 @@
{ \ensuremath {#1} }
{ \ensuremath { \text {#1} } }
}
-\cs_generate_variant:Nn \chemformula_charge_style:n { V }
+\cs_generate_variant:Nn \chemformula_charge_style:n {V}
% subscripts
% remove double or nested sub- and superscripts
@@ -1703,10 +1767,8 @@
}
}
}
-\cs_generate_variant:Nn \__chemformula_subscript:n { V }
+\cs_generate_variant:Nn \__chemformula_subscript:n {V}
-% TODO: add hook for cleanup?
-% similar to ChemCompoundProperty?
\prop_new:N \l__chemformula_clean_subscript_prop
\seq_new:N \l__chemformula_clean_subscript_seq
@@ -1727,10 +1789,10 @@
{ \chemformula_plus: }
\chemformula_add_subscript_cleanup:nn
{ \chemformula_adduct: }
- { . }
+ {.}
\chemformula_add_subscript_cleanup:nn
{ \chemformula_star_adduct: }
- { * }
+ {*}
\cs_new_protected:Npn \__chemformula_clean_subscript:
{
@@ -1740,14 +1802,6 @@
{##1}
{ \prop_item:Nn \l__chemformula_clean_subscript_prop {##1} }
}
- % \tl_replace_all:Nnn \l__chemformula_subscript_tl
- % { \chemformula_single_bond: } { \chemformula_minus: }
- % \tl_replace_all:Nnn \l__chemformula_subscript_tl
- % { \chemformula_triple_bond: } { \chemformula_plus: }
- % \tl_replace_all:Nnn \l__chemformula_subscript_tl
- % { \chemformula_adduct: } { . }
- % \tl_replace_all:Nnn \l__chemformula_subscript_tl
- % { \chemformula_star_adduct: } { * }
}
\cs_generate_variant:Nn \tl_replace_all:Nnn {Nnx}
@@ -1786,7 +1840,7 @@
}
\group_end:
}
-\cs_generate_variant:Nn \__chemformula_subscript_write:n { V }
+\cs_generate_variant:Nn \__chemformula_subscript_write:n {V}
\cs_new_protected:Npn \__chemformula_measure_subscript:n #1
{
@@ -1796,7 +1850,7 @@
{ -\box_wd:N \l__chemformula_tmpa_box }
\box_clear:N \l__chemformula_tmpa_box
}
-\cs_generate_variant:Nn \__chemformula_measure_subscript:n { V }
+\cs_generate_variant:Nn \__chemformula_measure_subscript:n {V}
% superscripts
% remove double or nested sub- and superscripts
@@ -1834,111 +1888,45 @@
}
}
}
-\cs_generate_variant:Nn \__chemformula_superscript:n { V }
-
-% TODO: add hook for cleanup?
-% \prop_new:N \l__chemformula_clean_superscript_prop
-% \seq_new:N \l__chemformula_clean_superscript_seq
-
-% \cs_new_protected:Npn \chemformula_add_superscript_cleanup:nnn #1#2#3
-% {
-% \seq_put_right:Nn \l__chemformula_clean_superscript_seq {#1}
-% \prop_put:Nnn \l__chemformula_clean_superscript_prop {#1}
-% { \bool_if:NTF \l__chemformula_kroegervink_bool {#2} {#3} }
-% }
-
-% \chemformula_add_superscript_cleanup:nnn
-% { \chemformula_single_bond: }
-% { \chemformula_minus: }
-% { \chemformula_minus: }
-% \chemformula_add_superscript_cleanup:nnn
-% { - }
-% { \chemformula_minus: }
-% { \chemformula_minus: }
-% \chemformula_add_superscript_cleanup:nnn
-% { \chemformula_triple_bond: }
-% { \chemformula_plus: }
-% { \chemformula_plus: }
-% \chemformula_add_superscript_cleanup:nnn
-% { + }
-% { \chemformula_plus: }
-% { \chemformula_plus: }
-% \chemformula_add_superscript_cleanup:nnn
-% { . }
-% { \chemformula_radical_or_decimal: }
-% { \chemformula_kroegervink_positive: }
-% \chemformula_add_superscript_cleanup:nnn
-% { \chemformula_adduct: }
-% { \chemformula_radical_or_decimal: }
-% { \chemformula_kroegervink_positive: }
-% \chemformula_add_superscript_cleanup:nnn
-% { \chemformula_radical_or_decimal: }
-% { \chemformula_radical_or_decimal: }
-% { \chemformula_kroegervink_positive: }
-% \chemformula_add_superscript_cleanup:nnn
-% { \chemformula_star_adduct: }
-% { * }
-% { \chemformula_kroegervink_positive: }
-% \chemformula_add_superscript_cleanup:nnn
-% { * }
-% { * }
-% { \chemformula_kroegervink_positive: }
-% \chemformula_add_superscript_cleanup:nnn
-% { ' }
-% { ' }
-% { \chemformula_kroegervink_negative: }
-% \chemformula_add_superscript_cleanup:nnn
-% { \chemformula_prime: }
-% { \chemformula_prime: }
-% { \chemformula_kroegervink_negative: }
-% \chemformula_add_superscript_cleanup:nnn
-% { , }
-% { \chemformula_decimal: }
-% { , }
+\cs_generate_variant:Nn \__chemformula_superscript:n {V}
% rename this function into treatment instead of cleanup
\cs_new_protected:Npn \__chemformula_clean_superscript:
{
- % \seq_map_inline:Nn \l__chemformula_clean_superscript_seq
- % {
- % \tl_replace_all:Nnx \l__chemformula_superscript_tl
- % {##1}
- % { \prop_item:Nn \l__chemformula_clean_superscript_prop {##1} }
- % }
\tl_replace_all:Nnn \l__chemformula_superscript_tl
{ \chemformula_single_bond: } { \chemformula_minus: }
\tl_replace_all:Nnn \l__chemformula_superscript_tl
- { - } { \chemformula_minus: }
+ {-} { \chemformula_minus: }
\tl_replace_all:Nnn \l__chemformula_superscript_tl
{ \chemformula_triple_bond: } { \chemformula_plus: }
\tl_replace_all:Nnn \l__chemformula_superscript_tl
- { + } { \chemformula_plus: }
+ {+} { \chemformula_plus: }
\tl_replace_all:Nnn \l__chemformula_superscript_tl
{ \chemformula_adduct: } { \chemformula_radical_or_decimal: }
\bool_if:NTF \l__chemformula_kroegervink_bool
{
\tl_replace_all:Nnn \l__chemformula_superscript_tl
- { ' } { \chemformula_kroegervink_negative: }
+ {'} { \chemformula_kroegervink_negative: }
\tl_replace_all:Nnn \l__chemformula_superscript_tl
- { \chemformula_adduct: } { . }
+ { \chemformula_adduct: } {.}
\tl_replace_all:Nnn \l__chemformula_superscript_tl
- { \chemformula_star_adduct: } { * }
+ { \chemformula_star_adduct: } {*}
\tl_replace_all:Nnn \l__chemformula_superscript_tl
- { \chemformula_radical_or_decimal: } { . }
+ { \chemformula_radical_or_decimal: } {.}
\tl_replace_all:Nnn \l__chemformula_superscript_tl
{ \chemformula_prime: } { \chemformula_kroegervink_negative: }
\tl_replace_all:Nnn \l__chemformula_superscript_tl
- { * } { \chemformula_kroegervink_positive: }
+ {*} { \chemformula_kroegervink_positive: }
\tl_replace_all:Nnn \l__chemformula_superscript_tl
- { . } { \chemformula_kroegervink_positive: }
+ {.} { \chemformula_kroegervink_positive: }
}
{
\tl_replace_all:Nnn \l__chemformula_superscript_tl
- { \chemformula_star_adduct: } { * }
+ { \chemformula_star_adduct: } {*}
\tl_replace_all:Nnn \l__chemformula_superscript_tl
- { . } { \chemformula_radical_or_decimal: }
+ {.} { \chemformula_radical_or_decimal: }
\tl_replace_all:Nnn \l__chemformula_superscript_tl
- { , } { \chemformula_decimal: }
+ {,} { \chemformula_decimal: }
}
}
@@ -1988,7 +1976,7 @@
}
\group_end:
}
-\cs_generate_variant:Nn \__chemformula_superscript_write:n { V }
+\cs_generate_variant:Nn \__chemformula_superscript_write:n {V}
\cs_new_protected:Npn \__chemformula_measure_superscript:n #1
{
@@ -1998,7 +1986,7 @@
{ -\box_wd:N \l__chemformula_tmpa_box }
\box_clear:N \l__chemformula_tmpa_box
}
-\cs_generate_variant:Nn \__chemformula_measure_superscript:n { V }
+\cs_generate_variant:Nn \__chemformula_measure_superscript:n {V}
% typeset both sub- and superscripts
\cs_new_protected:Npn \__chemformula_use_sub_and_superscript:
@@ -2127,7 +2115,7 @@
{#1}
\tl_if_in:VnTF \l__chemformula_tmpa_tl { @ }
{
- \bool_set_true:N \l__chemformula_options_bool
+ \bool_set_false:N \l__chemformula_options_bool
\bool_set_true:N \l__chemformula_is_option_bool
\tl_remove_all:Nn \l__chemformula_tmpa_tl { @ }
\exp_last_unbraced:Nno
@@ -2182,7 +2170,7 @@
\cs_new_protected:Npn \__chemformula_print_stoich:n #1
{ \chemformula_parse_stoich:n {#1} }
-\cs_generate_variant:Nn \__chemformula_print_stoich:n { V }
+\cs_generate_variant:Nn \__chemformula_print_stoich:n {V}
\cs_new_protected:Npn \chemformula_parse_stoich:n #1
{ \__chemformula_parse_stoich:w #1 \q_nil }
@@ -2292,7 +2280,6 @@
% input compounds
\cs_new_protected:Npn \__chemformula_input_compound:Nn #1#2
{
- % \tl_show:n {#1}
\tl_if_blank:VTF \l__chemformula_stoich_tl
{
% TODO
@@ -2303,13 +2290,14 @@
\__chemformula_input_options:n {#2}
\bool_if:NT \l__chemformula_is_option_bool
{
- \tl_put_right:Nn #1
+ \bool_set_true:N \l__chemformula_options_bool
+ \tl_put_right:Nx #1
{
\group_begin:
% open group
- \keys_set:nV
+ \keys_set:nn
{chemformula}
- \l__chemformula_internal_options_tl
+ { \exp_not:V \l__chemformula_internal_options_tl }
}
}
\bool_if:nT
@@ -2342,7 +2330,7 @@
\tl_clear:N \l__chemformula_stoich_tl
}
}
-\cs_generate_variant:Nn \__chemformula_input_compound:Nn { NV }
+\cs_generate_variant:Nn \__chemformula_input_compound:Nn {NV}
% TODO: this is redundant at the moment
\bool_new:N \g__chemformula_compound_group_open_bool
@@ -2376,84 +2364,42 @@
\selectfont
}
\bool_if:NT \l__chemformula_fontspec_bool
- { \chemformula_font: }
+ { \cs_if_exist_use:N \chemformula_font: }
\tl_use:N \l__chemformula_format_tl
\tl_if_eq:onTF { \f@series } {bx}
{ \cs_set_eq:NN \chemformula_bm:n \bm }
{ \cs_set:Nn \chemformula_bm:n {##1} }
}
-\cs_new_protected:Npn \chemformula_font: {}
+% \cs_new_protected:Npn \chemformula_font: {}
\cs_new_protected:Npn \__chemformula_fontspec:n #1
{
- \tl_if_in:nnTF {#1} { [ }
+ \tl_if_in:nnTF {#1} {[}
{ \__chemformula_fontspec_aux:w #1 \q_stop }
{ \__chemformula_fontspec_aux:w [] #1 \q_stop }
}
\cs_new_protected:Npn \__chemformula_fontspec_aux:w [#1]#2 \q_stop
- { \newfontfamily \chemformula_font: [ #1 ] {#2} }
-
-\cs_new_protected:Npn \__chemformula_save_catcodes:
- {
- \cs_gset_protected:Npx \__chemformula_restore:
- {
- \char_set_catcode:nn { 95 } { \char_value_catcode:n { 95 } }% _
- \char_set_catcode:nn { 58 } { \char_value_catcode:n { 58 } }% :
- \char_set_catcode:nn { 94 } { \char_value_catcode:n { 94 } }% ^
- \char_set_catcode:nn { 123 } { \char_value_catcode:n { 123 } }% {
- \char_set_catcode:nn { 125 } { \char_value_catcode:n { 125 } }% }
- \char_set_catcode:nn { 35 } { \char_value_catcode:n { 35 } }% #
- \char_set_catcode:nn { 33 } { \char_value_catcode:n { 33 } }% !
- \char_set_catcode:nn { 34 } { \char_value_catcode:n { 34 } }% "
- \char_set_catcode:nn { 60 } { \char_value_catcode:n { 60 } }% <
- \char_set_catcode:nn { 62 } { \char_value_catcode:n { 62 } }% >
- }
- }
-
-\cs_new_protected:Npn \__chemformula_sanitize:Nn #1#2
- {
- \tl_set_rescan:Nnn #1
- {
- % expl3 catcodes:
- \char_set_catcode_letter:N \_
- \char_set_catcode_letter:N \:
- % I've forgotten why I put this here:
- \char_set_catcode_math_superscript:N \^
- % disable some of the specials (needed for sub- and superscripts):
- \char_set_catcode_letter:N \{
- \char_set_catcode_letter:N \}
- % this one seems not necessary any more:
- % \char_set_catcode_letter:N \\
- \char_set_catcode_letter:N \#
- % make the naming work with babel languages like French that make
- % ! active:
- \char_set_catcode_other:N \!
- % make the naming work with babel languages like Spanish that make
- % < and > active:
- \char_set_catcode_other:N \>
- \char_set_catcode_other:N \<
- % ensure " is other:
- \char_set_catcode_other:N \"
- }
- {#2}
- }
-\cs_generate_variant:Nn \__chemformula_sanitize:Nn { NV }
+ { \newfontfamily \chemformula_font: [#1] {#2} }
-\cs_new_protected:Npn \__chemformula_prepare_output:N #1
+\cs_new_protected:Npn \__chemformula_prepare_output:Nn #1#2
{
\tl_set_rescan:NnV #1
{
\__chemformula_restore:
- \ExplSyntaxOn
- \makeatletter
+ #2
+ % we /need/ those:
+ \char_set_catcode_letter:N \@
+ \char_set_catcode_letter:N \_
+ \char_set_catcode_letter:N \:
}
#1
}
-
+\cs_generate_variant:Nn \__chemformula_prepare_output:Nn {NV}
+
\cs_new_protected:Npn \__chemformula_reset:Nn #1#2
{ \tl_set_rescan:Nnn #1 { \__chemformula_restore: } {#2} }
-\cs_generate_variant:Nn \__chemformula_reset:Nn { NV }
+\cs_generate_variant:Nn \__chemformula_reset:Nn {NV}
\prg_new_protected_conditional:Npnn \__chemformula_if_only_parens:n #1 {T,F,TF}
{
@@ -2547,6 +2493,7 @@
% start with formatting:
\tl_put_right:Nn #1
{
+ \tl_use:N \l__chemformula_format_tl
\group_begin:
\l__chemformula_atom_format_tl
}
@@ -2588,7 +2535,7 @@
}
\tl_clear:N \l__chemformula_tmpa_tl
}
-\cs_generate_variant:Nn \__chemformula_input_compound_no_check:Nn { NV }
+\cs_generate_variant:Nn \__chemformula_input_compound_no_check:Nn {NV}
% --------------------------------------------------------------------------
% clean up chemmacros commands:
@@ -2598,7 +2545,7 @@
{ \mode_if_math:TF { \text {##1} } {##1} }
\cs_set:Npn \chemmacros_xspace: {}
}
-\cs_generate_variant:Nn \__chemformula_clean_chemmacros:n { V }
+\cs_generate_variant:Nn \__chemformula_clean_chemmacros:n {V}
% --------------------------------------------------------------------------
% input "and" sign
@@ -2797,7 +2744,7 @@
}
\bool_set_false:N \l__chemformula_is_arrow_bool
}
-\cs_generate_variant:Nn \__chemformula_input_arrow:n { o,V }
+\cs_generate_variant:Nn \__chemformula_input_arrow:n {o,V}
% --------------------------------------------------------------------------
% input compound name
@@ -2854,30 +2801,23 @@
\__chemformula_read_escape_single:w #1 \q_nil
}
}
-\cs_generate_variant:Nn \__chemformula_input_escape_text:n { V }
+\cs_generate_variant:Nn \__chemformula_input_escape_text:n {V}
\cs_new_protected:Npn \__chemformula_read_escape_text:n #1
{
\tl_set_rescan:Nnn \l__chemformula_tmpa_tl
{
- \char_set_catcode_letter:N \_
- \char_set_catcode_other:N \:
-
+ % \char_set_catcode_letter:N \_
+ % \char_set_catcode_other:N \:
+ \char_set_catcode_space:N \~
}
{#1}
\tl_replace_all:Nnn \l__chemformula_tmpa_tl
{ \_ } { chemformulaplaceholder }
\tl_replace_all:Nnn \l__chemformula_tmpa_tl
- { _ } { \sb }
+ {_} { \sb }
\tl_replace_all:Nnn \l__chemformula_tmpa_tl
{ chemformulaplaceholder } { \_ }
- % those cause trouble with chemmacros' \ox:
- % \tl_put_left:Nn \l__chemformula_tmpa_tl
- % { \chemformula_group_begin: }
- % \tl_put_right:Nn \l__chemformula_tmpa_tl
- % { \chemformula_group_end: }
- % TODO: waum ist das auskommentiert
- % \__chemformula_reset:NV \l__chemformula_tmpa_tl \l__chemformula_tmpa_tl
\tl_put_right:NV \l__chemformula_input_tl \l__chemformula_tmpa_tl
}
@@ -2933,10 +2873,9 @@
\tl_replace_all:Nnn \l__chemformula_tmpa_tl
{ \_ } { chemformulaplaceholder }
\tl_replace_all:Nnn \l__chemformula_tmpa_tl
- { _ } { \sb }
+ {_} { \sb }
\tl_replace_all:Nnn \l__chemformula_tmpa_tl
{ chemformulaplaceholder } { \_ }
- % \__chemformula_reset:NV \l__chemformula_tmpa_tl \l__chemformula_tmpa_tl
\tl_put_left:Nn \l__chemformula_tmpa_tl
{ \chemformula_group_begin: }
\tl_put_right:Nn \l__chemformula_tmpa_tl
@@ -3072,7 +3011,8 @@
\bool_set_false:N \l__chemformula_fss_bool
\bool_set_false:N \l__chemformula_fontspec_bool
\tl_set:Nn \l__chemformula_format_tl {#1} ,
- atom-format .tl_set:N = \l__chemformula_atom_format_tl
+ atom-format .tl_set:N = \l__chemformula_atom_format_tl ,
+ set-catcodes .tl_set:N = \l__chemformula_catcodes_tl
}
% --------------------------------------------------------------------------
@@ -3114,13 +3054,13 @@
\cs_new_protected:Npn \chemformula_get_lewis_sequence:Nn #1#2
{
\tl_set:Nn \l__chemformula_tmpa_tl {#2}
- \tl_replace_all:Nnn \l__chemformula_tmpa_tl { : } { \scan_stop: : , }
+ \tl_replace_all:Nnn \l__chemformula_tmpa_tl {:} { \scan_stop: : , }
\tl_replace_all:NVn \l__chemformula_tmpa_tl \c__chemformula_colon_tl
{ \scan_stop: : , }
- \tl_replace_all:Nnn \l__chemformula_tmpa_tl { . } { \scan_stop: . , }
- \tl_replace_all:Nnn \l__chemformula_tmpa_tl { | } { \scan_stop: | , }
- \tl_replace_all:Nnn \l__chemformula_tmpa_tl { o } { \scan_stop: o , }
- \seq_set_split:NnV #1 { , } \l__chemformula_tmpa_tl
+ \tl_replace_all:Nnn \l__chemformula_tmpa_tl {.} { \scan_stop: . , }
+ \tl_replace_all:Nnn \l__chemformula_tmpa_tl {|} { \scan_stop: | , }
+ \tl_replace_all:Nnn \l__chemformula_tmpa_tl {o} { \scan_stop: o , }
+ \seq_set_split:NnV #1 {,} \l__chemformula_tmpa_tl
}
\cs_new_protected:Npn \chemformula_lewis_get_angle_and_spec:n #1
@@ -3149,26 +3089,26 @@
\l__chemformula_tmpa_tl
{ \tl_use:N \l__chemformula_tmpa_tl }
}
-\cs_generate_variant:Nn \__chemformula_lewis_set_elspec_type:n { V }
+\cs_generate_variant:Nn \__chemformula_lewis_set_elspec_type:n {V}
% available types:
\cs_new_protected:Npn \chemformula_declare_lewis_elspec_type:nn #1#2
{ \prop_put:Nnn \l__chemformula_lewis_elspec_types_prop {#1} {#2} }
\chemformula_declare_lewis_elspec_type:nn
- { | }
+ {|}
{ \__chemformula_lewis_elspec_pair_line: }
\chemformula_declare_lewis_elspec_type:nn
- { : }
+ {:}
{ \__chemformula_lewis_elspec_pair_dots: }
\chemformula_declare_lewis_elspec_type:nn
- { . }
+ {.}
{ \__chemformula_lewis_elspec_single: }
\chemformula_declare_lewis_elspec_type:nn
- { o }
+ {o}
{ \__chemformula_lewis_elspec_empty: }
\chemformula_declare_lewis_elspec_type:nn
@@ -3561,9 +3501,17 @@
takes an argument
2017/03/23 - version 4.15e - small bug fix (issue #5)
- implement \shortintertext bypass
+2019/09/23 - version 4.15f - add missing definition for temporary variable
+2019/09/27 - version 4.15g - bug fix in fontspec option
+2019/10/13 - version 4.15h - new (undocumented) option `set-catcodes'
+ - fix behaviour with category codes
+ (https://tex.stackexchange.com/q/511592/)
+ - fix bug: local format changes are now applied
+ again
+2020/02/01 - version 4.15i - fix issue #12
+2020/03/07 - version 4.15j - make sure that < and > have catcode 12 when read
+ as arrows -- again...
% --------------------------------------------------------------------------
-% TODO
+% IDEAS:
- Addukte: Zahlen nach * und . automatisch erkennen?
-- make escaped text/math /truely/ escaped, i.e., behave as if it's been input
- /outside/ of \ch
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/chemformula.tlpobj new/tlpkg/tlpobj/chemformula.tlpobj
--- old/tlpkg/tlpobj/chemformula.tlpobj 2019-02-28 03:25:19.000000000 +0100
+++ new/tlpkg/tlpobj/chemformula.tlpobj 2020-03-08 01:33:31.000000000 +0100
@@ -1,17 +1,17 @@
name chemformula
category Package
-revision 43583
+revision 54158
shortdesc Command for typesetting chemical formulas and reactions
relocated 1
longdesc The package provides a command to typeset chemical formulas and
longdesc reactions in support of other chemistry packages (such as
longdesc chemmacros). The package used to be distributed as a part of
longdesc chemmacros.
-runfiles size=33
+depend units
+runfiles size=32
RELOC/tex/latex/chemformula/chemformula.sty
catalogue-contact-repository https://github.com/cgnieder/chemformula/
catalogue-ctan /macros/latex/contrib/chemformula
-catalogue-date 2017-04-18 05:31:40 +0200
catalogue-license lppl1.3
-catalogue-topics chemistry
-catalogue-version 4.15e
+catalogue-topics chemistry expl3
+catalogue-version 4.15j
++++++ chemgreek.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/chemgreek/README new/doc/latex/chemgreek/README
--- old/doc/latex/chemgreek/README 2016-12-20 23:56:46.000000000 +0100
+++ new/doc/latex/chemgreek/README 2020-01-17 22:52:40.000000000 +0100
@@ -1,5 +1,5 @@
--------------------------------------------------------------------------
-the CHEMGREEK package v1.1 2016/12/20
+the CHEMGREEK package v1.1a 2020/01/16
typeset chemical compounds and reactions
@@ -8,7 +8,7 @@
Web: http://www.mychemistry.eu/forums/forum/chemgreek/
E-Mail: contact@mychemistry.eu
--------------------------------------------------------------------------
-Copyright 2011-2016 Clemens Niederberger
+Copyright 2015--2020 Clemens Niederberger
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
Binary files old/doc/latex/chemgreek/chemgreek_en.pdf and new/doc/latex/chemgreek/chemgreek_en.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/chemgreek/chemgreek_en.tex new/doc/latex/chemgreek/chemgreek_en.tex
--- old/doc/latex/chemgreek/chemgreek_en.tex 2016-12-20 23:56:46.000000000 +0100
+++ new/doc/latex/chemgreek/chemgreek_en.tex 2020-01-17 22:52:40.000000000 +0100
@@ -1,4 +1,4 @@
-% arara: pdflatex: { shell: on }
+% arara: pdflatex: { shell: on , interaction: nonstopmode }
% !arara: biber
% !arara: pdflatex
% !arara: pdflatex
@@ -16,7 +16,7 @@
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-% Copyright 2011-2015 Clemens Niederberger
+% Copyright 2015--2020 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/chemgreek.doc.tlpobj new/tlpkg/tlpobj/chemgreek.doc.tlpobj
--- old/tlpkg/tlpobj/chemgreek.doc.tlpobj 2019-02-28 03:25:19.000000000 +0100
+++ new/tlpkg/tlpobj/chemgreek.doc.tlpobj 2020-01-18 01:54:30.000000000 +0100
@@ -1,9 +1,9 @@
name chemgreek.doc
category Package
-revision 42758
+revision 53437
shortdesc doc files of chemgreek
relocated 1
-docfiles size=187
+docfiles size=181
RELOC/doc/latex/chemgreek/README
RELOC/doc/latex/chemgreek/chemgreek_en.pdf
RELOC/doc/latex/chemgreek/chemgreek_en.tex
++++++ chemgreek.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/chemgreek/chemgreek.sty new/tex/latex/chemgreek/chemgreek.sty
--- old/tex/latex/chemgreek/chemgreek.sty 2016-12-20 23:56:46.000000000 +0100
+++ new/tex/latex/chemgreek/chemgreek.sty 2020-01-17 22:52:40.000000000 +0100
@@ -6,13 +6,13 @@
% --------------------------------------------------------------------------
% Clemens Niederberger
% --------------------------------------------------------------------------
-% https://github.org/cgnieder/chemgreek/
+% https://github.com/cgnieder/chemgreek/
% contact@mychemistry.eu
% --------------------------------------------------------------------------
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-% Copyright 2011-2016 Clemens Niederberger
+% Copyright 2015--2020 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -28,9 +28,10 @@
% --------------------------------------------------------------------------
\RequirePackage{expl3,xparse,amstext}
\ExplSyntaxOn
-\tl_const:Nn \c_chemgreek_date_tl {2016/12/20}
-\tl_const:Nn \c_chemgreek_version_tl {1.1}
-\tl_const:Nn \c_chemgreek_info_tl {interface for upright greek letters for use in chemistry}
+\tl_const:Nn \c_chemgreek_date_tl {2020/01/16}
+\tl_const:Nn \c_chemgreek_version_tl {1.1a}
+\tl_const:Nn \c_chemgreek_info_tl
+ {interface~ for~ upright~ Greek~ letters~ for~ use~ in~ chemistry}
\ProvidesExplPackage{chemgreek}
{\c_chemgreek_date_tl}
@@ -186,13 +187,16 @@
\cs_generate_variant:Nn \msg_warning:nnnn { nnnV }
\cs_generate_variant:Nn \quark_if_no_value:nTF { V }
+\tl_new:N \l__chemgreek_lower_tl
+\tl_new:N \l__chemgreek_upper_tl
+
% ----------------------------------------------------------------------------
% helper function to retrieve upper- and lowercase entries while the mapping
% happens:
-\cs_new_protected:Npn \__chemgreek_get_upper_lower:w #1 / #2 \q_stop
+\cs_new_protected:Npn \__chemgreek_get_upper_lower:ww #1 / #2 \q_stop
{
- \tl_set:Nn \l__chemgreek_tmpa_tl {#1}
- \tl_set:Nn \l__chemgreek_tmpb_tl {#2}
+ \tl_set:Nn \l__chemgreek_lower_tl {#1}
+ \tl_set:Nn \l__chemgreek_upper_tl {#2}
}
% ----------------------------------------------------------------------------
@@ -270,13 +274,13 @@
\clist_map_inline:nn {#2}
{
\int_incr:N \l__chemgreek_tmpa_int
- \__chemgreek_get_upper_lower:w ##1 \q_stop
+ \__chemgreek_get_upper_lower:ww ##1 \q_stop
\prop_put:cxV { l__chemgreek_lowercase_mapping_#1_prop }
{ \tl_item:Nn \c__chemgreek_alphabet_tl { \l__chemgreek_tmpa_int } }
- \l__chemgreek_tmpa_tl
+ \l__chemgreek_lower_tl
\prop_put:cxV { l__chemgreek_uppercase_mapping_#1_prop }
{ \tl_item:Nn \c__chemgreek_alphabet_tl { \l__chemgreek_tmpa_int } }
- \l__chemgreek_tmpb_tl
+ \l__chemgreek_upper_tl
}
}
@@ -429,27 +433,27 @@
\cs_set_protected:cpx
{
chem
- \str_upper_case:f { \tl_head:n {##1} }
- \str_lower_case:f { \tl_tail:n {##1} }
+ \str_uppercase:f { \tl_head:n {##1} }
+ \str_lowercase:f { \tl_tail:n {##1} }
}
{ \prop_item:cn { l__chemgreek_uppercase_mapping_#1_prop } {##1} }
\cs_set_eq:cc
{
chemgreek_
- \str_upper_case:f { \tl_head:n {##1} }
- \str_lower_case:f { \tl_tail:n {##1} }
+ \str_uppercase:f { \tl_head:n {##1} }
+ \str_lowercase:f { \tl_tail:n {##1} }
:
}
{
chem
- \str_upper_case:f { \tl_head:n {##1} }
- \str_lower_case:f { \tl_tail:n {##1} }
+ \str_uppercase:f { \tl_head:n {##1} }
+ \str_lowercase:f { \tl_tail:n {##1} }
}
- \cs_set_protected:cpx { chem \str_lower_case:f {##1} }
+ \cs_set_protected:cpx { chem \str_lowercase:f {##1} }
{ \prop_item:cn { l__chemgreek_lowercase_mapping_#1_prop } {##1} }
\cs_set_eq:cc
- { chemgreek_ \str_lower_case:f {##1} : }
- { chem \str_lower_case:f {##1} }
+ { chemgreek_ \str_lowercase:f {##1} : }
+ { chem \str_lowercase:f {##1} }
}
\msg_info:nnn {chemgreek} {mapping-activated} {#1}
}
@@ -460,12 +464,12 @@
{
\tl_set:Nx \l__chemgreek_tmpa_tl
{
- \str_upper_case:f { \tl_head:n {#2} }
- \str_lower_case:f { \tl_tail:n {#2} }
+ \str_uppercase:f { \tl_head:n {#2} }
+ \str_lowercase:f { \tl_tail:n {#2} }
}
\str_if_eq:nVTF {#2} \l__chemgreek_tmpa_tl
{
- \tl_set:Nx \l__chemgreek_tmpa_tl { \str_lower_case:f {#2} }
+ \tl_set:Nx \l__chemgreek_tmpa_tl { \str_lowercase:f {#2} }
\prop_item:cV
{ l__chemgreek_uppercase_mapping_#1_prop }
\l__chemgreek_tmpa_tl
@@ -523,14 +527,14 @@
\iow_log:x
{
. \c_space_tl \c_space_tl \c_space_tl \c_space_tl \c_space_tl
- \str_lower_case:f {##1} ~ => ~
+ \str_lowercase:f {##1} ~ => ~
\prop_item:cn { l__chemgreek_lowercase_mapping_#1_prop } {##1}
}
\iow_log:x
{
. \c_space_tl \c_space_tl \c_space_tl \c_space_tl \c_space_tl
- \str_upper_case:f { \tl_head:n {##1} }
- \str_lower_case:f { \tl_tail:n {##1} }
+ \str_uppercase:f { \tl_head:n {##1} }
+ \str_lowercase:f { \tl_tail:n {##1} }
\c_space_tl => ~
\prop_item:cn { l__chemgreek_uppercase_mapping_#1_prop } {##1}
}
@@ -544,12 +548,12 @@
{
\tl_map_inline:Nn \c__chemgreek_alphabet_tl
{
- \use:c { chem \str_lower_case:f {##1} }
+ \use:c { chem \str_lowercase:f {##1} }
\use:c
{
chem
- \str_upper_case:f { \tl_head:n {##1} }
- \str_lower_case:f { \tl_tail:n {##1} }
+ \str_uppercase:f { \tl_head:n {##1} }
+ \str_lowercase:f { \tl_tail:n {##1} }
}
\c_space_tl
}
@@ -571,8 +575,8 @@
\chemgreek_drop_symbol:n {##1}
\chemgreek_drop_symbol:n
{
- \str_upper_case:f { \tl_head:n {##1} }
- \str_lower_case:f { \tl_tail:n {##1} }
+ \str_uppercase:f { \tl_head:n {##1} }
+ \str_lowercase:f { \tl_tail:n {##1} }
}
}
}
@@ -586,30 +590,30 @@
{
\int_to_symbols:nnn {#1} {24}
{
- { 1 } { \chemalpha }
- { 2 } { \chembeta }
- { 3 } { \chemgamma }
- { 4 } { \chemdelta }
- { 5 } { \chemepsilon }
- { 6 } { \chemzeta }
- { 7 } { \chemeta }
- { 8 } { \chemiota }
- { 9 } { \chemtheta }
- { 10 } { \chemkappa }
- { 11 } { \chemlambda }
- { 12 } { \chemmu }
- { 13 } { \chemnu }
- { 14 } { \chemxi }
- { 15 } { \chemomikron }
- { 16 } { \chempi }
- { 17 } { \chemrho }
- { 18 } { \chemsigma }
- { 19 } { \chemtau }
- { 20 } { \chemupsilon }
- { 21 } { \chemphi }
- { 22 } { \chemchi }
- { 23 } { \chempsi }
- { 24 } { \chemomega }
+ { 1 } { \chemgreek_alpha: }
+ { 2 } { \chemgreek_beta: }
+ { 3 } { \chemgreek_gamma: }
+ { 4 } { \chemgreek_delta: }
+ { 5 } { \chemgreek_epsilon: }
+ { 6 } { \chemgreek_zeta: }
+ { 7 } { \chemgreek_eta: }
+ { 8 } { \chemgreek_iota: }
+ { 9 } { \chemgreek_theta: }
+ { 10 } { \chemgreek_kappa: }
+ { 11 } { \chemgreek_lambda: }
+ { 12 } { \chemgreek_mu: }
+ { 13 } { \chemgreek_nu: }
+ { 14 } { \chemgreek_xi: }
+ { 15 } { \chemgreek_omikron: }
+ { 16 } { \chemgreek_pi: }
+ { 17 } { \chemgreek_rho: }
+ { 18 } { \chemgreek_sigma: }
+ { 19 } { \chemgreek_tau: }
+ { 20 } { \chemgreek_upsilon: }
+ { 21 } { \chemgreek_phi: }
+ { 22 } { \chemgreek_chi: }
+ { 23 } { \chemgreek_psi: }
+ { 24 } { \chemgreek_omega: }
}
}
@@ -617,30 +621,30 @@
{
\int_to_symbols:nnn {#1} {24}
{
- { 1 } { \chemAlpha }
- { 2 } { \chemBeta }
- { 3 } { \chemGamma }
- { 4 } { \chemDelta }
- { 5 } { \chemEpsilon }
- { 6 } { \chemZeta }
- { 7 } { \chemEta }
- { 8 } { \chemIota }
- { 9 } { \chemTheta }
- { 10 } { \chemKappa }
- { 11 } { \chemLambda }
- { 12 } { \chemMu }
- { 13 } { \chemNu }
- { 14 } { \chemXi }
- { 15 } { \chemOmikron }
- { 16 } { \chemPi }
- { 17 } { \chemRho }
- { 18 } { \chemSigma }
- { 19 } { \chemTau }
- { 20 } { \chemUpsilon }
- { 21 } { \chemPhi }
- { 22 } { \chemChi }
- { 23 } { \chemPsi }
- { 24 } { \chemOmega }
+ { 1 } { \chemgreek_Alpha: }
+ { 2 } { \chemgreek_Beta: }
+ { 3 } { \chemgreek_Gamma: }
+ { 4 } { \chemgreek_Delta: }
+ { 5 } { \chemgreek_Epsilon: }
+ { 6 } { \chemgreek_Zeta: }
+ { 7 } { \chemgreek_Eta: }
+ { 8 } { \chemgreek_Iota: }
+ { 9 } { \chemgreek_Theta: }
+ { 10 } { \chemgreek_Kappa: }
+ { 11 } { \chemgreek_Lambda: }
+ { 12 } { \chemgreek_Mu: }
+ { 13 } { \chemgreek_Nu: }
+ { 14 } { \chemgreek_Xi: }
+ { 15 } { \chemgreek_Omikron: }
+ { 16 } { \chemgreek_Pi: }
+ { 17 } { \chemgreek_Rho: }
+ { 18 } { \chemgreek_Sigma: }
+ { 19 } { \chemgreek_Tau: }
+ { 20 } { \chemgreek_Upsilon: }
+ { 21 } { \chemgreek_Phi: }
+ { 22 } { \chemgreek_Chi: }
+ { 23 } { \chemgreek_Psi: }
+ { 24 } { \chemgreek_Omega: }
}
}
@@ -649,88 +653,88 @@
% default:
\chemgreek_new_mapping:nnn {default} { }
{
- \ensuremath{\alpha} / \ensuremath{\mathrm{A}} , % 1
- \ensuremath{\beta} / \ensuremath{\mathrm{B}} , % 2
- \ensuremath{\gamma} / \ensuremath{\Gamma} , % 3
- \ensuremath{\delta} / \ensuremath{\Delta} , % 4
- \ensuremath{\epsilon} / \ensuremath{\mathrm{E}} , % 5
- \ensuremath{\zeta} / \ensuremath{\mathrm{Z}} , % 6
- \ensuremath{\eta} / \ensuremath{\mathrm{H}} , % 7
- \ensuremath{\theta} / \ensuremath{\Theta} , % 8
- \ensuremath{\iota} / \ensuremath{\mathrm{I}} , % 9
- \ensuremath{\kappa} / \ensuremath{\mathrm{K}} , % 10
- \ensuremath{\lambda} / \ensuremath{\Lambda} , % 11
- \ensuremath{\mu} / \ensuremath{\mathrm{M}} , % 12
- \ensuremath{\nu} / \ensuremath{\mathrm{N}} , % 13
- \ensuremath{\xi} / \ensuremath{\Xi} , % 14
- \ensuremath{o} / \ensuremath{\mathrm{O}} , % 15
- \ensuremath{\pi} / \ensuremath{\Pi} , % 16
- \ensuremath{\rho} / \ensuremath{\mathrm{P}} , % 17
- \ensuremath{\sigma} / \ensuremath{\Sigma} , % 18
- \ensuremath{\tau} / \ensuremath{\mathrm{T}} , % 19
- \ensuremath{\upsilon} / \ensuremath{\Upsilon} , % 20
- \ensuremath{\phi} / \ensuremath{\Phi} , % 21
- \ensuremath{\chi} / \ensuremath{\mathrm{X}} , % 22
- \ensuremath{\psi} / \ensuremath{\Psi}, % 23
- \ensuremath{\omega} / \ensuremath{\Omega} % 24
+ \ensuremath {\alpha} / \ensuremath {\mathrm{A}} , % 1
+ \ensuremath {\beta} / \ensuremath {\mathrm{B}} , % 2
+ \ensuremath {\gamma} / \ensuremath {\Gamma} , % 3
+ \ensuremath {\delta} / \ensuremath {\Delta} , % 4
+ \ensuremath {\epsilon} / \ensuremath {\mathrm{E}} , % 5
+ \ensuremath {\zeta} / \ensuremath {\mathrm{Z}} , % 6
+ \ensuremath {\eta} / \ensuremath {\mathrm{H}} , % 7
+ \ensuremath {\theta} / \ensuremath {\Theta} , % 8
+ \ensuremath {\iota} / \ensuremath {\mathrm{I}} , % 9
+ \ensuremath {\kappa} / \ensuremath {\mathrm{K}} , % 10
+ \ensuremath {\lambda} / \ensuremath {\Lambda} , % 11
+ \ensuremath {\mu} / \ensuremath {\mathrm{M}} , % 12
+ \ensuremath {\nu} / \ensuremath {\mathrm{N}} , % 13
+ \ensuremath {\xi} / \ensuremath {\Xi} , % 14
+ \ensuremath {o} / \ensuremath {\mathrm{O}} , % 15
+ \ensuremath {\pi} / \ensuremath {\Pi} , % 16
+ \ensuremath {\rho} / \ensuremath {\mathrm{P}} , % 17
+ \ensuremath {\sigma} / \ensuremath {\Sigma} , % 18
+ \ensuremath {\tau} / \ensuremath {\mathrm{T}} , % 19
+ \ensuremath {\upsilon} / \ensuremath {\Upsilon} , % 20
+ \ensuremath {\phi} / \ensuremath {\Phi} , % 21
+ \ensuremath {\chi} / \ensuremath {\mathrm{X}} , % 22
+ \ensuremath {\psi} / \ensuremath {\Psi}, % 23
+ \ensuremath {\omega} / \ensuremath {\Omega} % 24
}
% default-variant:
\chemgreek_new_mapping:nnn {var-default} { }
{
- \ensuremath{\alpha} / \ensuremath{\mathrm{A}} , % 1
- \ensuremath{\beta} / \ensuremath{\mathrm{B}} , % 2
- \ensuremath{\gamma} / \ensuremath{\Gamma} , % 3
- \ensuremath{\delta} / \ensuremath{\Delta} , % 4
- \ensuremath{\varepsilon} / \ensuremath{\mathrm{E}} , % 5
- \ensuremath{\zeta} / \ensuremath{\mathrm{Z}} , % 6
- \ensuremath{\eta} / \ensuremath{\mathrm{H}} , % 7
- \ensuremath{\vartheta} / \ensuremath{\Theta} , % 8
- \ensuremath{\iota} / \ensuremath{\mathrm{I}} , % 9
- \ensuremath{\kappa} / \ensuremath{\mathrm{K}} , % 10
- \ensuremath{\lambda} / \ensuremath{\Lambda} , % 11
- \ensuremath{\mu} / \ensuremath{\mathrm{M}} , % 12
- \ensuremath{\nu} / \ensuremath{\mathrm{N}} , % 13
- \ensuremath{\xi} / \ensuremath{\Xi} , % 14
- \ensuremath{o} / \ensuremath{\mathrm{O}} , % 15
- \ensuremath{\varpi} / \ensuremath{\Pi} , % 16
- \ensuremath{\varrho} / \ensuremath{\mathrm{P}} , % 17
- \ensuremath{\varsigma} / \ensuremath{\Sigma} , % 18
- \ensuremath{\tau} / \ensuremath{\mathrm{T}} , % 19
- \ensuremath{\upsilon} / \ensuremath{\Upsilon} , % 20
- \ensuremath{\varphi} / \ensuremath{\Phi} , % 21
- \ensuremath{\chi} / \ensuremath{\mathrm{X}} , % 22
- \ensuremath{\psi} / \ensuremath{\Psi} , % 23
- \ensuremath{\omega} / \ensuremath{\Omega} % 24
+ \ensuremath {\alpha} / \ensuremath {\mathrm{A}} , % 1
+ \ensuremath {\beta} / \ensuremath {\mathrm{B}} , % 2
+ \ensuremath {\gamma} / \ensuremath {\Gamma} , % 3
+ \ensuremath {\delta} / \ensuremath {\Delta} , % 4
+ \ensuremath {\varepsilon} / \ensuremath {\mathrm{E}} , % 5
+ \ensuremath {\zeta} / \ensuremath {\mathrm{Z}} , % 6
+ \ensuremath {\eta} / \ensuremath {\mathrm{H}} , % 7
+ \ensuremath {\vartheta} / \ensuremath {\Theta} , % 8
+ \ensuremath {\iota} / \ensuremath {\mathrm{I}} , % 9
+ \ensuremath {\kappa} / \ensuremath {\mathrm{K}} , % 10
+ \ensuremath {\lambda} / \ensuremath {\Lambda} , % 11
+ \ensuremath {\mu} / \ensuremath {\mathrm{M}} , % 12
+ \ensuremath {\nu} / \ensuremath {\mathrm{N}} , % 13
+ \ensuremath {\xi} / \ensuremath {\Xi} , % 14
+ \ensuremath {o} / \ensuremath {\mathrm{O}} , % 15
+ \ensuremath {\varpi} / \ensuremath {\Pi} , % 16
+ \ensuremath {\varrho} / \ensuremath {\mathrm{P}} , % 17
+ \ensuremath {\varsigma} / \ensuremath {\Sigma} , % 18
+ \ensuremath {\tau} / \ensuremath {\mathrm{T}} , % 19
+ \ensuremath {\upsilon} / \ensuremath {\Upsilon} , % 20
+ \ensuremath {\varphi} / \ensuremath {\Phi} , % 21
+ \ensuremath {\chi} / \ensuremath {\mathrm{X}} , % 22
+ \ensuremath {\psi} / \ensuremath {\Psi} , % 23
+ \ensuremath {\omega} / \ensuremath {\Omega} % 24
}
% mathdesign:
\chemgreek_new_mapping:nnn {mathdesign} {mathdesign}
{
- \ensuremath{\alphaup} / \ensuremath{\mathrm{A}} , % 1
- \ensuremath{\betaup} / \ensuremath{\mathrm{B}} , % 2
- \ensuremath{\gammaup} / \ensuremath{\Gammaup} , % 3
- \ensuremath{\deltaup} / \ensuremath{\Deltaup} , % 4
- \ensuremath{\epsilonup} / \ensuremath{\mathrm{E}} , % 5
- \ensuremath{\zetaup} / \ensuremath{\mathrm{Z}} , % 6
- \ensuremath{\etaup} / \ensuremath{\mathrm{H}} , % 7
- \ensuremath{\thetaup} / \ensuremath{\Thetaup} , % 8
- \ensuremath{\iotaup} / \ensuremath{\mathrm{I}} , % 9
- \ensuremath{\kappaup} / \ensuremath{\mathrm{K}} , % 10
- \ensuremath{\lambdaup} / \ensuremath{\Lambdaup} , % 11
- \ensuremath{\muup} / \ensuremath{\mathrm{M}} , % 12
- \ensuremath{\nuup} / \ensuremath{\mathrm{N}} , % 13
- \ensuremath{\xiup} / \ensuremath{\Xiup} , % 14
- \ensuremath{\mathrm{o}} / \ensuremath{\mathrm{O}} , % 15
- \ensuremath{\piup} / \ensuremath{\Piup} , % 16
- \ensuremath{\rhoup} / \ensuremath{\mathrm{R}} , % 17
- \ensuremath{\sigmaup} / \ensuremath{\Sigmaup} , % 18
- \ensuremath{\tauup} / \ensuremath{\mathrm{T}} , % 19
- \ensuremath{\upsilonup} / \ensuremath{\Upsilonup} , % 20
- \ensuremath{\phiup} / \ensuremath{\Phiup} , % 21
- \ensuremath{\chiup} / \ensuremath{\mathrm{X}} , % 22
- \ensuremath{\psiup} / \ensuremath{\Psiup} , % 23
- \ensuremath{\omegaup} / \ensuremath{\Omegaup} % 24
+ \ensuremath {\alphaup} / \ensuremath {\mathrm{A}} , % 1
+ \ensuremath {\betaup} / \ensuremath {\mathrm{B}} , % 2
+ \ensuremath {\gammaup} / \ensuremath {\Gammaup} , % 3
+ \ensuremath {\deltaup} / \ensuremath {\Deltaup} , % 4
+ \ensuremath {\epsilonup} / \ensuremath {\mathrm{E}} , % 5
+ \ensuremath {\zetaup} / \ensuremath {\mathrm{Z}} , % 6
+ \ensuremath {\etaup} / \ensuremath {\mathrm{H}} , % 7
+ \ensuremath {\thetaup} / \ensuremath {\Thetaup} , % 8
+ \ensuremath {\iotaup} / \ensuremath {\mathrm{I}} , % 9
+ \ensuremath {\kappaup} / \ensuremath {\mathrm{K}} , % 10
+ \ensuremath {\lambdaup} / \ensuremath {\Lambdaup} , % 11
+ \ensuremath {\muup} / \ensuremath {\mathrm{M}} , % 12
+ \ensuremath {\nuup} / \ensuremath {\mathrm{N}} , % 13
+ \ensuremath {\xiup} / \ensuremath {\Xiup} , % 14
+ \ensuremath {\mathrm{o}} / \ensuremath {\mathrm{O}} , % 15
+ \ensuremath {\piup} / \ensuremath {\Piup} , % 16
+ \ensuremath {\rhoup} / \ensuremath {\mathrm{R}} , % 17
+ \ensuremath {\sigmaup} / \ensuremath {\Sigmaup} , % 18
+ \ensuremath {\tauup} / \ensuremath {\mathrm{T}} , % 19
+ \ensuremath {\upsilonup} / \ensuremath {\Upsilonup} , % 20
+ \ensuremath {\phiup} / \ensuremath {\Phiup} , % 21
+ \ensuremath {\chiup} / \ensuremath {\mathrm{X}} , % 22
+ \ensuremath {\psiup} / \ensuremath {\Psiup} , % 23
+ \ensuremath {\omegaup} / \ensuremath {\Omegaup} % 24
}
% textgreek:
@@ -765,88 +769,88 @@
% upgreek:
\chemgreek_new_mapping:nnn {upgreek} {upgreek}
{
- \ensuremath{\upalpha} / \ensuremath{\mathrm{A}} , % 1
- \ensuremath{\upbeta} / \ensuremath{\mathrm{B}} , % 2
- \ensuremath{\upgamma} / \ensuremath{\Upgamma} , % 3
- \ensuremath{\updelta} / \ensuremath{\Updelta} , % 4
- \ensuremath{\upepsilon} / \ensuremath{\mathrm{E}} , % 5
- \ensuremath{\upzeta} / \ensuremath{\mathrm{Z}} , % 6
- \ensuremath{\upeta} / \ensuremath{\mathrm{H}} , % 7
- \ensuremath{\uptheta} / \ensuremath{\Uptheta} , % 8
- \ensuremath{\upiota} / \ensuremath{\mathrm{I}} , % 9
- \ensuremath{\upkappa} / \ensuremath{\mathrm{K}} , % 10
- \ensuremath{\uplambda} / \ensuremath{\Uplambda} , % 11
- \ensuremath{\upmu} / \ensuremath{\mathrm{M}} , % 12
- \ensuremath{\upnu} / \ensuremath{\mathrm{N}} , % 13
- \ensuremath{\upxi} / \ensuremath{\Upxi} , % 14
- \ensuremath{\mathrm{o}} / \ensuremath{\mathrm{O}} , % 15
- \ensuremath{\uppi} / \ensuremath{\Uppi} , % 16
- \ensuremath{\uprho} / \ensuremath{\mathrm{R}} , % 17
- \ensuremath{\upsigma} / \ensuremath{\Upsigma} , % 18
- \ensuremath{\uptau} / \ensuremath{\mathrm{T}} , % 19
- \ensuremath{\upupsilon} / \ensuremath{\Upupsilon} , % 20
- \ensuremath{\upphi} / \ensuremath{\Upphi} , % 21
- \ensuremath{\upchi} / \ensuremath{\mathrm{X}} , % 22
- \ensuremath{\uppsi} / \ensuremath{\Uppsi} , % 23
- \ensuremath{\upomega} / \ensuremath{\Upomega} % 24
+ \ensuremath {\upalpha} / \ensuremath {\mathrm{A}} , % 1
+ \ensuremath {\upbeta} / \ensuremath {\mathrm{B}} , % 2
+ \ensuremath {\upgamma} / \ensuremath {\Upgamma} , % 3
+ \ensuremath {\updelta} / \ensuremath {\Updelta} , % 4
+ \ensuremath {\upepsilon} / \ensuremath {\mathrm{E}} , % 5
+ \ensuremath {\upzeta} / \ensuremath {\mathrm{Z}} , % 6
+ \ensuremath {\upeta} / \ensuremath {\mathrm{H}} , % 7
+ \ensuremath {\uptheta} / \ensuremath {\Uptheta} , % 8
+ \ensuremath {\upiota} / \ensuremath {\mathrm{I}} , % 9
+ \ensuremath {\upkappa} / \ensuremath {\mathrm{K}} , % 10
+ \ensuremath {\uplambda} / \ensuremath {\Uplambda} , % 11
+ \ensuremath {\upmu} / \ensuremath {\mathrm{M}} , % 12
+ \ensuremath {\upnu} / \ensuremath {\mathrm{N}} , % 13
+ \ensuremath {\upxi} / \ensuremath {\Upxi} , % 14
+ \ensuremath {\mathrm{o}} / \ensuremath {\mathrm{O}} , % 15
+ \ensuremath {\uppi} / \ensuremath {\Uppi} , % 16
+ \ensuremath {\uprho} / \ensuremath {\mathrm{R}} , % 17
+ \ensuremath {\upsigma} / \ensuremath {\Upsigma} , % 18
+ \ensuremath {\uptau} / \ensuremath {\mathrm{T}} , % 19
+ \ensuremath {\upupsilon} / \ensuremath {\Upupsilon} , % 20
+ \ensuremath {\upphi} / \ensuremath {\Upphi} , % 21
+ \ensuremath {\upchi} / \ensuremath {\mathrm{X}} , % 22
+ \ensuremath {\uppsi} / \ensuremath {\Uppsi} , % 23
+ \ensuremath {\upomega} / \ensuremath {\Upomega} % 24
}
% kpfonts:
\chemgreek_new_mapping:nnn {kpfonts} {kpfonts}
{
- \ensuremath{\alphaup} / \ensuremath{\mathrm{A}} , % 1
- \ensuremath{\betaup} / \ensuremath{\mathrm{B}} , % 2
- \ensuremath{\gammaup} / \ensuremath{\Gammaup} , % 3
- \ensuremath{\deltaup} / \ensuremath{\Deltaup} , % 4
- \ensuremath{\epsilonup} / \ensuremath{\mathrm{E}} , % 5
- \ensuremath{\zetaup} / \ensuremath{\mathrm{Z}} , % 6
- \ensuremath{\etaup} / \ensuremath{\mathrm{H}} , % 7
- \ensuremath{\thetaup} / \ensuremath{\Thetaup} , % 8
- \ensuremath{\iotaup} / \ensuremath{\mathrm{I}} , % 9
- \ensuremath{\kappaup} / \ensuremath{\mathrm{K}} , % 10
- \ensuremath{\lambdaup} / \ensuremath{\Lambdaup} , % 11
- \ensuremath{\muup} / \ensuremath{\mathrm{M}} , % 12
- \ensuremath{\nuup} / \ensuremath{\mathrm{N}} , % 13
- \ensuremath{\xiup} / \ensuremath{\Xiup} , % 14
- \ensuremath{\mathrm{o}} / \ensuremath{\mathrm{O}} , % 15
- \ensuremath{\piup} / \ensuremath{\Piup} , % 16
- \ensuremath{\rhoup} / \ensuremath{\mathrm{R}} , % 17
- \ensuremath{\sigmaup} / \ensuremath{\Sigmaup} , % 18
- \ensuremath{\tauup} / \ensuremath{\mathrm{T}} , % 19
- \ensuremath{\upsilonup} / \ensuremath{\Upsilonup} , % 20
- \ensuremath{\phiup} / \ensuremath{\Phiup} , % 21
- \ensuremath{\chiup} / \ensuremath{\mathrm{X}} , % 22
- \ensuremath{\psiup} / \ensuremath{\Psiup} , % 23
- \ensuremath{\omegaup} / \ensuremath{\Omegaup} % 24
+ \ensuremath {\alphaup} / \ensuremath {\mathrm{A}} , % 1
+ \ensuremath {\betaup} / \ensuremath {\mathrm{B}} , % 2
+ \ensuremath {\gammaup} / \ensuremath {\Gammaup} , % 3
+ \ensuremath {\deltaup} / \ensuremath {\Deltaup} , % 4
+ \ensuremath {\epsilonup} / \ensuremath {\mathrm{E}} , % 5
+ \ensuremath {\zetaup} / \ensuremath {\mathrm{Z}} , % 6
+ \ensuremath {\etaup} / \ensuremath {\mathrm{H}} , % 7
+ \ensuremath {\thetaup} / \ensuremath {\Thetaup} , % 8
+ \ensuremath {\iotaup} / \ensuremath {\mathrm{I}} , % 9
+ \ensuremath {\kappaup} / \ensuremath {\mathrm{K}} , % 10
+ \ensuremath {\lambdaup} / \ensuremath {\Lambdaup} , % 11
+ \ensuremath {\muup} / \ensuremath {\mathrm{M}} , % 12
+ \ensuremath {\nuup} / \ensuremath {\mathrm{N}} , % 13
+ \ensuremath {\xiup} / \ensuremath {\Xiup} , % 14
+ \ensuremath {\mathrm{o}} / \ensuremath {\mathrm{O}} , % 15
+ \ensuremath {\piup} / \ensuremath {\Piup} , % 16
+ \ensuremath {\rhoup} / \ensuremath {\mathrm{R}} , % 17
+ \ensuremath {\sigmaup} / \ensuremath {\Sigmaup} , % 18
+ \ensuremath {\tauup} / \ensuremath {\mathrm{T}} , % 19
+ \ensuremath {\upsilonup} / \ensuremath {\Upsilonup} , % 20
+ \ensuremath {\phiup} / \ensuremath {\Phiup} , % 21
+ \ensuremath {\chiup} / \ensuremath {\mathrm{X}} , % 22
+ \ensuremath {\psiup} / \ensuremath {\Psiup} , % 23
+ \ensuremath {\omegaup} / \ensuremath {\Omegaup} % 24
}
% newtx:
\chemgreek_new_mapping:nnn {newtx} {newtxmath}
{
- \ensuremath{\upalpha} / \ensuremath{\mathrm{A}} , % 1
- \ensuremath{\upbeta} / \ensuremath{\mathrm{B}} , % 2
- \ensuremath{\upgamma} / \ensuremath{\upGamma} , % 3
- \ensuremath{\updelta} / \ensuremath{\upDelta} , % 4
- \ensuremath{\upepsilon} / \ensuremath{\mathrm{E}} , % 5
- \ensuremath{\upzeta} / \ensuremath{\mathrm{Z}} , % 6
- \ensuremath{\upeta} / \ensuremath{\mathrm{H}} , % 7
- \ensuremath{\uptheta} / \ensuremath{\upTheta} , % 8
- \ensuremath{\upiota} / \ensuremath{\mathrm{I}} , % 9
- \ensuremath{\upkappa} / \ensuremath{\mathrm{K}} , % 10
- \ensuremath{\uplambda} / \ensuremath{\upLambda} , % 11
- \ensuremath{\upmu} / \ensuremath{\mathrm{M}} , % 12
- \ensuremath{\upnu} / \ensuremath{\mathrm{N}} , % 13
- \ensuremath{\upxi} / \ensuremath{\upXi} , % 14
- \ensuremath{\mathrm{o}} / \ensuremath{\mathrm{O}} , % 15
- \ensuremath{\uppi} / \ensuremath{\upPi} , % 16
- \ensuremath{\uprho} / \ensuremath{\mathrm{R}} , % 17
- \ensuremath{\upsigma} / \ensuremath{\upSigma} , % 18
- \ensuremath{\uptau} / \ensuremath{\mathrm{T}} , % 19
- \ensuremath{\upupsilon} / \ensuremath{\upUpsilon} , % 20
- \ensuremath{\upphi} / \ensuremath{\upPhi} , % 21
- \ensuremath{\upchi} / \ensuremath{\mathrm{X}} , % 22
- \ensuremath{\uppsi} / \ensuremath{\upPsi} , % 23
- \ensuremath{\upomega} / \ensuremath{\upOmega} % 24
+ \ensuremath {\upalpha} / \ensuremath {\mathrm{A}} , % 1
+ \ensuremath {\upbeta} / \ensuremath {\mathrm{B}} , % 2
+ \ensuremath {\upgamma} / \ensuremath {\upGamma} , % 3
+ \ensuremath {\updelta} / \ensuremath {\upDelta} , % 4
+ \ensuremath {\upepsilon} / \ensuremath {\mathrm{E}} , % 5
+ \ensuremath {\upzeta} / \ensuremath {\mathrm{Z}} , % 6
+ \ensuremath {\upeta} / \ensuremath {\mathrm{H}} , % 7
+ \ensuremath {\uptheta} / \ensuremath {\upTheta} , % 8
+ \ensuremath {\upiota} / \ensuremath {\mathrm{I}} , % 9
+ \ensuremath {\upkappa} / \ensuremath {\mathrm{K}} , % 10
+ \ensuremath {\uplambda} / \ensuremath {\upLambda} , % 11
+ \ensuremath {\upmu} / \ensuremath {\mathrm{M}} , % 12
+ \ensuremath {\upnu} / \ensuremath {\mathrm{N}} , % 13
+ \ensuremath {\upxi} / \ensuremath {\upXi} , % 14
+ \ensuremath {\mathrm{o}} / \ensuremath {\mathrm{O}} , % 15
+ \ensuremath {\uppi} / \ensuremath {\upPi} , % 16
+ \ensuremath {\uprho} / \ensuremath {\mathrm{R}} , % 17
+ \ensuremath {\upsigma} / \ensuremath {\upSigma} , % 18
+ \ensuremath {\uptau} / \ensuremath {\mathrm{T}} , % 19
+ \ensuremath {\upupsilon} / \ensuremath {\upUpsilon} , % 20
+ \ensuremath {\upphi} / \ensuremath {\upPhi} , % 21
+ \ensuremath {\upchi} / \ensuremath {\mathrm{X}} , % 22
+ \ensuremath {\uppsi} / \ensuremath {\upPsi} , % 23
+ \ensuremath {\upomega} / \ensuremath {\upOmega} % 24
}
% fourier:
@@ -866,28 +870,28 @@
\chemgreek_new_mapping:nnn {fourier} {fourier}
{
- \__chemgreek_lfourier:n {alpha} / \ensuremath{\mathrm{A}} , % 1
- \__chemgreek_lfourier:n {beta} / \ensuremath{\mathrm{B}} , % 2
+ \__chemgreek_lfourier:n {alpha} / \ensuremath {\mathrm{A}} , % 1
+ \__chemgreek_lfourier:n {beta} / \ensuremath {\mathrm{B}} , % 2
\__chemgreek_lfourier:n {gamma} / \__chemgreek_ufourier:n {Gamma} , % 3
\__chemgreek_lfourier:n {delta} / \__chemgreek_ufourier:n {Delta} , % 4
- \__chemgreek_lfourier:n {epsilon} / \ensuremath{\mathrm{E}} , % 5
- \__chemgreek_lfourier:n {zeta} / \ensuremath{\mathrm{Z}} , % 6
- \__chemgreek_lfourier:n {eta} / \ensuremath{\mathrm{H}} , % 7
+ \__chemgreek_lfourier:n {epsilon} / \ensuremath {\mathrm{E}} , % 5
+ \__chemgreek_lfourier:n {zeta} / \ensuremath {\mathrm{Z}} , % 6
+ \__chemgreek_lfourier:n {eta} / \ensuremath {\mathrm{H}} , % 7
\__chemgreek_lfourier:n {theta} / \__chemgreek_ufourier:n {Theta} , % 8
- \__chemgreek_lfourier:n {iota} / \ensuremath{\mathrm{I}} , % 9
- \__chemgreek_lfourier:n {kappa} / \ensuremath{\mathrm{K}} , % 10
+ \__chemgreek_lfourier:n {iota} / \ensuremath {\mathrm{I}} , % 9
+ \__chemgreek_lfourier:n {kappa} / \ensuremath {\mathrm{K}} , % 10
\__chemgreek_lfourier:n {lambda} / \__chemgreek_ufourier:n {Lambda} , % 11
- \__chemgreek_lfourier:n {mu} / \ensuremath{\mathrm{M}} , % 12
- \__chemgreek_lfourier:n {nu} / \ensuremath{\mathrm{N}} , % 13
+ \__chemgreek_lfourier:n {mu} / \ensuremath {\mathrm{M}} , % 12
+ \__chemgreek_lfourier:n {nu} / \ensuremath {\mathrm{N}} , % 13
\__chemgreek_lfourier:n {xi} / \__chemgreek_ufourier:n {Xi} , % 14
- \ensuremath {\mathrm{o}} / \ensuremath{\mathrm{O}} , % 15
+ \ensuremath {\mathrm{o}} / \ensuremath {\mathrm{O}} , % 15
\__chemgreek_lfourier:n {pi} / \__chemgreek_ufourier:n {Pi} , % 16
- \__chemgreek_lfourier:n {rho} / \ensuremath{\mathrm{R}} , % 17
+ \__chemgreek_lfourier:n {rho} / \ensuremath {\mathrm{R}} , % 17
\__chemgreek_lfourier:n {sigma} / \__chemgreek_ufourier:n {Sigma} , % 18
- \__chemgreek_lfourier:n {tau} / \ensuremath{\mathrm{T}} , % 19
+ \__chemgreek_lfourier:n {tau} / \ensuremath {\mathrm{T}} , % 19
\__chemgreek_lfourier:n {upsilon} / \__chemgreek_ufourier:n {Upsilon} , % 20
\__chemgreek_lfourier:n {phi} / \__chemgreek_ufourier:n {Phi} , % 21
- \__chemgreek_lfourier:n {chi} / \ensuremath{\mathrm{X}} , % 22
+ \__chemgreek_lfourier:n {chi} / \ensuremath {\mathrm{X}} , % 22
\__chemgreek_lfourier:n {psi} / \__chemgreek_ufourier:n {Psi} , % 23
\__chemgreek_lfourier:n {omega} / \__chemgreek_ufourier:n {Omega} % 24
}
@@ -960,30 +964,30 @@
\chemgreek_new_mapping:nnn {pxgreeks} {pxgreeks}
{
- \ensuremath{\alphaup} / \ensuremath{\mathrm{A}} , % 1
- \ensuremath{\betaup} / \ensuremath{\mathrm{B}} , % 2
- \ensuremath{\gammaup} / \__chemgreek_upxgreeks:n {Gamma} , % 3
- \ensuremath{\deltaup} / \__chemgreek_upxgreeks:n {Delta} , % 4
- \ensuremath{\epsilonup} / \ensuremath{\mathrm{E}} , % 5
- \ensuremath{\zetaup} / \ensuremath{\mathrm{Z}} , % 6
- \ensuremath{\etaup} / \ensuremath{\mathrm{H}} , % 7
- \ensuremath{\thetaup} / \__chemgreek_upxgreeks:n {Theta} , % 8
- \ensuremath{\iotaup} / \ensuremath{\mathrm{I}} , % 9
- \ensuremath{\kappaup} / \ensuremath{\mathrm{K}} , % 10
- \ensuremath{\lambdaup} / \__chemgreek_upxgreeks:n {Lambda} , % 11
- \ensuremath{\muup} / \ensuremath{\mathrm{M}} , % 12
- \ensuremath{\nuup} / \ensuremath{\mathrm{N}} , % 13
- \ensuremath{\xiup} / \__chemgreek_upxgreeks:n {Xi} , % 14
- \ensuremath{\omicronup} / \ensuremath{\mathrm{O}} , % 15
- \ensuremath{\piup} / \__chemgreek_upxgreeks:n {Pi} , % 16
- \ensuremath{\rhoup} / \ensuremath{\mathrm{R}} , % 17
- \ensuremath{\sigmaup} / \__chemgreek_upxgreeks:n {Sigma} , % 18
- \ensuremath{\tauup} / \ensuremath{\mathrm{T}} , % 19
- \ensuremath{\upsilonup} / \__chemgreek_upxgreeks:n {Upsilon} , % 20
- \ensuremath{\phiup} / \__chemgreek_upxgreeks:n {Phi} , % 21
- \ensuremath{\chiup} / \ensuremath{\mathrm{X}} , % 22
- \ensuremath{\psiup} / \__chemgreek_upxgreeks:n {Psi} , % 23
- \ensuremath{\omegaup} / \__chemgreek_upxgreeks:n {Omega} % 24
+ \ensuremath {\alphaup} / \ensuremath {\mathrm{A}} , % 1
+ \ensuremath {\betaup} / \ensuremath {\mathrm{B}} , % 2
+ \ensuremath {\gammaup} / \__chemgreek_upxgreeks:n {Gamma} , % 3
+ \ensuremath {\deltaup} / \__chemgreek_upxgreeks:n {Delta} , % 4
+ \ensuremath {\epsilonup} / \ensuremath {\mathrm{E}} , % 5
+ \ensuremath {\zetaup} / \ensuremath {\mathrm{Z}} , % 6
+ \ensuremath {\etaup} / \ensuremath {\mathrm{H}} , % 7
+ \ensuremath {\thetaup} / \__chemgreek_upxgreeks:n {Theta} , % 8
+ \ensuremath {\iotaup} / \ensuremath {\mathrm{I}} , % 9
+ \ensuremath {\kappaup} / \ensuremath {\mathrm{K}} , % 10
+ \ensuremath {\lambdaup} / \__chemgreek_upxgreeks:n {Lambda} , % 11
+ \ensuremath {\muup} / \ensuremath {\mathrm{M}} , % 12
+ \ensuremath {\nuup} / \ensuremath {\mathrm{N}} , % 13
+ \ensuremath {\xiup} / \__chemgreek_upxgreeks:n {Xi} , % 14
+ \ensuremath {\omicronup} / \ensuremath {\mathrm{O}} , % 15
+ \ensuremath {\piup} / \__chemgreek_upxgreeks:n {Pi} , % 16
+ \ensuremath {\rhoup} / \ensuremath {\mathrm{R}} , % 17
+ \ensuremath {\sigmaup} / \__chemgreek_upxgreeks:n {Sigma} , % 18
+ \ensuremath {\tauup} / \ensuremath {\mathrm{T}} , % 19
+ \ensuremath {\upsilonup} / \__chemgreek_upxgreeks:n {Upsilon} , % 20
+ \ensuremath {\phiup} / \__chemgreek_upxgreeks:n {Phi} , % 21
+ \ensuremath {\chiup} / \ensuremath {\mathrm{X}} , % 22
+ \ensuremath {\psiup} / \__chemgreek_upxgreeks:n {Psi} , % 23
+ \ensuremath {\omegaup} / \__chemgreek_upxgreeks:n {Omega} % 24
}
% ----------------------------------------------------------------------------
@@ -1025,25 +1029,25 @@
\cs_set_eq:cc
{
chem
- \str_upper_case:f { \tl_head:n {#1} }
- \str_lower_case:f { \tl_tail:n {#1} }
+ \str_uppercase:f { \tl_head:n {#1} }
+ \str_lowercase:f { \tl_tail:n {#1} }
}
{
text
- \str_upper_case:f { \tl_head:n {#1} }
- \str_lower_case:f { \tl_tail:n {#1} }
+ \str_uppercase:f { \tl_head:n {#1} }
+ \str_lowercase:f { \tl_tail:n {#1} }
}
\cs_set_eq:cc
{
chemgreek_
- \str_upper_case:f { \tl_head:n {#1} }
- \str_lower_case:f { \tl_tail:n {#1} }
+ \str_uppercase:f { \tl_head:n {#1} }
+ \str_lowercase:f { \tl_tail:n {#1} }
:
}
{
text
- \str_upper_case:f { \tl_head:n {#1} }
- \str_lower_case:f { \tl_tail:n {#1} }
+ \str_uppercase:f { \tl_head:n {#1} }
+ \str_lowercase:f { \tl_tail:n {#1} }
}
\cs_set_eq:cc {chem#1} {text#1}
\cs_set_eq:cc { chemgreek_ #1 : } {text#1}
@@ -1103,6 +1107,5 @@
2016/02/10 - v1.0e - one missed \prop_get:Nn
2016/20/12 - v1.1 - fix wrong alphabet order (issue #5)
- fix errors in fontspec mapping (issue #4)
-
-TODO:
+2020/01/16 - v1.1a - adapt to renaming of string case changing functions
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/chemgreek.tlpobj new/tlpkg/tlpobj/chemgreek.tlpobj
--- old/tlpkg/tlpobj/chemgreek.tlpobj 2019-02-28 03:25:20.000000000 +0100
+++ new/tlpkg/tlpobj/chemgreek.tlpobj 2020-01-18 01:54:30.000000000 +0100
@@ -1,6 +1,6 @@
name chemgreek
category Package
-revision 42758
+revision 53437
shortdesc Upright Greek letters in chemistry
relocated 1
longdesc The package provides upright Greek letters in support of other
@@ -10,7 +10,6 @@
RELOC/tex/latex/chemgreek/chemgreek.sty
catalogue-contact-repository https://github.com/cgnieder/chemgreek/
catalogue-ctan /macros/latex/contrib/chemgreek
-catalogue-date 2017-04-18 05:31:40 +0200
catalogue-license lppl1.3
catalogue-topics chemistry
-catalogue-version 1.1
+catalogue-version 1.1a
++++++ chemmacros.doc.tar.xz ++++++
++++ 7386 lines of diff (skipped)
++++++ chemmacros.tar.xz ++++++
++++ 2349 lines of diff (skipped)
++++++ chemnum.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/chemnum/README new/doc/latex/chemnum/README
--- old/doc/latex/chemnum/README 2016-04-14 23:45:57.000000000 +0200
+++ new/doc/latex/chemnum/README 2019-10-02 23:15:52.000000000 +0200
@@ -1,16 +1,14 @@
--------------------------------------------------------------------------
-chemnum v1.2 2016/04/14
+chemnum v1.2c 2019/10/02
a comprehensive approach for the numbering of chemical compounds
--------------------------------------------------------------------------
Clemens Niederberger
-Web:
- v0.* https://bitbucket.org/cgnieder/chemnum/
- v1.* https://github.com/cgnieder/chemnum
+Web: https://github.com/cgnieder/chemnum
E-Mail: contact@mychemistry.eu
--------------------------------------------------------------------------
-Copyright 2011-2016 Clemens Niederberger
+Copyright 2011--2019 Clemens Niederberger
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -32,5 +30,3 @@
- chemnum_en.tex, chemnum_en.pdf
- README
--------------------------------------------------------------------------
-Version 1 is a complete re-write from scratch of the `chemnum' package.
---------------------------------------------------------------------------
Binary files old/doc/latex/chemnum/chemnum_en.pdf and new/doc/latex/chemnum/chemnum_en.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/chemnum/chemnum_en.tex new/doc/latex/chemnum/chemnum_en.tex
--- old/doc/latex/chemnum/chemnum_en.tex 2016-04-14 23:45:57.000000000 +0200
+++ new/doc/latex/chemnum/chemnum_en.tex 2019-10-02 23:15:52.000000000 +0200
@@ -1,8 +1,36 @@
-% arara: pdflatex: { shell: on }
-%! arara: pdflatex: { shell: on }
-% arara: biber
-% arara: pdflatex
-% arara: pdflatex
+% --------------------------------------------------------------------------
+% the CHEMNUM package
+%
+% a comprehensive approach for the numbering of chemical compounds
+%
+% --------------------------------------------------------------------------
+% Clemens Niederberger
+% --------------------------------------------------------------------------
+% https://github.org/cgnieder/chemnum/
+% contact@mychemistry.eu
+% --------------------------------------------------------------------------
+% If you have any ideas, questions, suggestions or bugs to report, please
+% feel free to contact me.
+% --------------------------------------------------------------------------
+% Copyright 2011--2019 Clemens Niederberger
+%
+% 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 Clemens Niederberger.
+% --------------------------------------------------------------------------
+% !arara: pdflatex: { shell: on , interaction: nonstopmode }
+% !arara: pdflatex: { shell: on , interaction: nonstopmode }
+% !arara: biber
+% arara: pdflatex: { interaction: nonstopmode }
+% arara: pdflatex: { interaction: nonstopmode }
\documentclass[load-preamble+,ngerman,british,american]{cnltx-doc}
\usepackage[utf8]{inputenc}
\usepackage{chemnum}
@@ -47,7 +75,7 @@
keyis,
marginnote, midrule,
NewDocumentCommand,
- schemestart,schemestop,setatomsep,
+ schemestart,schemestop,setchemfig,
theffbibliography, toprule
} ,
index-setup = { othercode=\footnotesize,level=\addsec },
@@ -60,11 +88,13 @@
\usepackage{chemformula}
\setchemformula{format=\libertineLF}
\usepackage{chemfig,relsize}
-\setatomsep{1.78500 em}
-\setbondstyle{line width = 0.06642 em}
+\setchemfig{
+ atom sep = 1.78500 em ,
+ bond style = {line width = 0.06642 em}
+}
\renewcommand*\printatom[1]{\textsmaller{\ensuremath{\mathsf{#1}}}}
-\usepackage{array,booktabs}
+\usepackage{array,booktabs,csquotes}
\usepackage{graphicx}
@@ -112,57 +142,6 @@
\pkg{chemgreek}~\cite{pkg:chemgreek} and the \pkg{psfrag}~\cite{pkg:psfrag}
package.
-\section{News}\label{sec:news}
-The \chemnum\ package has been my first attempt to create a comprehensive
-labeling package for chemical compounds. However, it had and has more than
-one weakness and its code was -- to be frank -- a mess. Version~1 is now a
-complete re-write of \chemnum\ where I tried to achieve several points:
-\begin{itemize}
- \item A cleaner code internally.
- \item A cleaner user interface, \ie, more user macros for different tasks, a
- unified naming of the commands and a less redundant naming of the
- options.
- \item Extended functionality such as sorting and compressing of sublabel
- lists and sorting and merging of main label lists.
-\end{itemize}
-
-Although the syntax seems more or less the same at first sight quite a number
-of changes have been made that make version~1 incompatible with version~0.
-While I thought a while about maintaining backwards compatibility version~0
-was known to be in an experimental stage where everything was allowed to be
-changed at any time. So users \emph{could} know there was a risk. I have a
-feeling that many users nevertheless didn't realize this and may be bothered
-by this incompatibility. So I am well aware that the update will
-inconvenience some users. However, since version~0 won't be updated any more
-it made more sense to make a breaking update once.
-
-The same is not true for version~1. The syntax and commands described in this
-manual will not be changed as easily and from this version on I will take care
-of backwards compatibility.
-
-For those people wanting to keep older versions: they are are still available
-from websites such as \website{ctanhg.scharrer-online.de} or
-\securewebsite{bitbucket.org/cgnieder/chemnum}. You can also email me for an
-older version.
-
-Many commands have got a new name! The most important ones are:
-\begin{itemize}
- \item \cs*{cmpdref}; this is now called \cs{replacecmpd}.
- \item \cs*{cmpdinit}; this is now called \cs{initcmpd}.
- \item \cs*{cmpdreset}; this is now called \cs{resetcmpd}.
- \item \cs*{cmpdsetup}; this is now called \cs{setchemnum}.
-\end{itemize}
-However, there are many more changes. Basically all options have new names
-and often do their thing slightly different from the way things have been
-before.
-
-Please note that this overall change does not mean that version~1 is version~0
-declared stable. It is very likely that version~1 will now have quite a
-number of bugs to be fixed and probably missing features, too. So I'd be very
-glad to receive feedback either on \chemnum's homepage
-\securewebsite{github.com/cgnieder/chemnum} or via email to
-\email{contact@mychemistry.eu}.
-
\section{Overview over the Available Commands}\label{sec:overv-over-avail}
This section lists all available commands with a brief description. Commands
@@ -198,7 +177,7 @@
section~\ref{sec:deta-comp-labels}.
\command{replacecmpd}[\code{+}\oarg{options}\marg{\ac{id}}]
A command for replacing tags in \ac{eps} files, see
- section~\ref{sec:replacing-tags-aceps} for details.
+ section~\ref{sec:replacing-tags-eps-ps} for details.
\command{initcmpd}[\oarg{options}\marg{list of \acp{id}}]
Initiate compound labels. This command can only be used in the preamble.
It is desribed in section~\ref{sec:deta-comp-labels}.
@@ -329,7 +308,7 @@
More than one label can be put inside \cs{cmpd}, separated by commas. Then
a list like \cmpd{a, b, c, e, g.two} is printed.
\end{example}
-The Harvard comma (see section~\ref{sec:lang-depend-sett}) in \code{, and}
+The Harvard comma (see section~\ref{sec:lang-depend-sett}) in \enquote{\code{, and}}
between \cmpd{e} and \cmpd{g.two} suggests that there are options to customize
the list, see section~\ref{sec:formatting-labels} for more on this.
@@ -608,10 +587,14 @@
\keybool{merge}\Module{both (l)}\Default{false}
If set to true a list of labels is merged, \ie,
``\cmpd{q.five,a,q.two}'' becomes ``\cmpd[merge=true]{q.five,a,q.two}''.
- \keyval{pre-label-code}{code}\Module{cmpd (g)}\Default
+ \keyval{pre-label-code}{code}\Module{both (g)}\Default
Code to be inserted before a label.
- \keyval{post-label-code}{code}\Module{cmpd (g)}\Default
+ \keyval{post-label-code}{code}\Module{both (g)}\Default
Code to be inserted after a label.
+ \keyval{pre-main-label-code}{code}\Module{both (g)}\Default
+ \sinceversion{1.2a}Code to be inserted before a main label.
+ \keyval{post-main-label-code}{code}\Module{both (g)}\Default
+ \sinceversion{1.2a}Code to be inserted after a main label.
\keyval{main-sub-sep}{code}\Module{both (l)}\Default{.}
The separator symbol that is used in \cs{cmpd} to separate the \meta{main
\ac{id}} from a \meta{sub \ac{id}}.
@@ -855,9 +838,9 @@
the separators to your language have a look at
section~\ref{sec:lang-depend-sett}.
-\section{Replacing Tags in \ac{eps} or \ac{ps} Files}\label{sec:replacing-tags-aceps}
+\section{Replacing Tags in \ac{eps} or \ac{ps} Files}\label{sec:replacing-tags-eps-ps}
-Although it is quite possible to create rection schemes within \LaTeX\
+Although it is quite possible to create reaction schemes within \LaTeX\
directly -- for example with the \pkg{chemfig} package~\cite{pkg:chemfig} --
many people prefer to use a program such as \textsc{ChemDraw} for it. In
order to be able to use the labels with such schemes as well the following
@@ -865,11 +848,18 @@
\begin{itemize}
\item Create the scheme and place temporary tags like \code{TMP1},
\code{TMP2} and so on where you want the compound labels to be.
- \item Export the scheme as \ac{eps} or \ac{ps} figure where you make sure
- that the tags are embedded as text strings.
+ \item Export the scheme as \ac{eps} or \ac{ps} figure \emph{where you make
+ sure that the tags are embedded as text strings}. If the tags are not
+ present as text strings they cannot be replaced. This is a common source
+ of user problems.
\item Include the \ac{eps} with \cs*{includegraphics}. Right before that
use \cs{replacecmpd} once for every temporary tag.
\end{itemize}
+\emph{For the actual replacement please make sure that you compile with
+ \code{shell-escape} enabled. If you compile with \code{pdflatex} you
+ probably also need \pkg{auto-pst-pdf}~\cite{pkg:auto-pst-pdf} loaded. In
+ subsequent runs load it with option \code{off} when you turned off
+ \code{shell-escape}.}
\begin{commands}
\command{replacecmpd}[\code{+}\oarg{options}\marg{\ac{id}}]
@@ -894,7 +884,7 @@
figure~\ref{fig:scheme-tmp-tags-replaced}.
\begin{example}[compile,exe-with={--shell-escape},runs=1,float=htbp,caption={A scheme with
temporary tags replaced with labels.\label{fig:scheme-tmp-tags-replaced}}]
- % code for figure 2
+ % code for figure 2 -- compiled with shell-escape enabled
\documentclass{standalone}
\usepackage{graphicx,auto-pst-pdf,chemnum}
\begin{document}
@@ -971,7 +961,7 @@
\begin{example}[compile,exe-with={--shell-escape},runs=1,float=htbp,caption={A scheme with
arbitrary tags replaced with labels.\label{fig:scheme-bla-tags-replaced}}]
- % code for figure 4
+ % code for figure 4 -- compiled with shell-escape enabled
\documentclass{standalone}
\usepackage{graphicx,auto-pst-pdf,chemnum}
\begin{document}
@@ -1025,6 +1015,11 @@
translation.
\begin{table}[htbp]
+ \newcommand*\showlanguageentry[1]{%
+ #1
+ & \visualizespaces{\GetTranslationFor{#1}{chemnum-sep-two}}
+ & \visualizespaces{\GetTranslationFor{#1}{chemnum-sep-last-two}}
+ }
\centering
\caption{Available languages}
\label{tab:languages}
@@ -1034,45 +1029,19 @@
\bfseries chemnum-sep-two &
\bfseries chemnum-sep-last-two \\
\midrule
- English
- & \visualizespaces{\GetTranslationFor{English}{chemnum-sep-two}}
- & \visualizespaces{\GetTranslationFor{English}{chemnum-sep-last-two}} \\
- American
- & \visualizespaces{\GetTranslationFor{American}{chemnum-sep-two}}
- & \visualizespaces{\GetTranslationFor{American}{chemnum-sep-last-two}} \\
- German
- & \visualizespaces{\GetTranslationFor{German}{chemnum-sep-two}}
- & \visualizespaces{\GetTranslationFor{German}{chemnum-sep-last-two}} \\
- French
- & \visualizespaces{\GetTranslationFor{French}{chemnum-sep-two}}
- & \visualizespaces{\GetTranslationFor{French}{chemnum-sep-last-two}} \\
- Spanish
- & \visualizespaces{\GetTranslationFor{Spanish}{chemnum-sep-two}}
- & \visualizespaces{\GetTranslationFor{Spanish}{chemnum-sep-last-two}} \\
- Italian
- & \visualizespaces{\GetTranslationFor{Italian}{chemnum-sep-two}}
- & \visualizespaces{\GetTranslationFor{Italian}{chemnum-sep-last-two}} \\
- Catalan
- & \visualizespaces{\GetTranslationFor{Catalan}{chemnum-sep-two}}
- & \visualizespaces{\GetTranslationFor{Catalan}{chemnum-sep-last-two}} \\
- Portuguese
- & \visualizespaces{\GetTranslationFor{Portuguese}{chemnum-sep-two}}
- & \visualizespaces{\GetTranslationFor{Portuguese}{chemnum-sep-last-two}} \\
- Dutch
- & \visualizespaces{\GetTranslationFor{Dutch}{chemnum-sep-two}}
- & \visualizespaces{\GetTranslationFor{Dutch}{chemnum-sep-last-two}} \\
- Danish
- & \visualizespaces{\GetTranslationFor{Danish}{chemnum-sep-two}}
- & \visualizespaces{\GetTranslationFor{Danish}{chemnum-sep-last-two}} \\
- Swedish
- & \visualizespaces{\GetTranslationFor{Swedish}{chemnum-sep-two}}
- & \visualizespaces{\GetTranslationFor{Swedish}{chemnum-sep-last-two}} \\
- Finnish
- & \visualizespaces{\GetTranslationFor{Finnish}{chemnum-sep-two}}
- & \visualizespaces{\GetTranslationFor{Finnish}{chemnum-sep-last-two}} \\
- Norwegian
- & \visualizespaces{\GetTranslationFor{Norwegian}{chemnum-sep-two}}
- & \visualizespaces{\GetTranslationFor{Norwegian}{chemnum-sep-last-two}} \\
+ \showlanguageentry{English} \\
+ \showlanguageentry{American} \\
+ \showlanguageentry{German} \\
+ \showlanguageentry{French} \\
+ \showlanguageentry{Spanish} \\
+ \showlanguageentry{Italian} \\
+ \showlanguageentry{Catalan} \\
+ \showlanguageentry{Portuguese} \\
+ \showlanguageentry{Dutch} \\
+ \showlanguageentry{Danish} \\
+ \showlanguageentry{Swedish} \\
+ \showlanguageentry{Finnish} \\
+ \showlanguageentry{Norwegian} \\
\bottomrule
\end{tabular}
\end{table}
@@ -1173,6 +1142,55 @@
\NewDocumentCommand\subcmpdshowref{mm}{\chemnumshowref{#2}}
\end{sourcecode}
-\end{document}
+\section{From Version~0 to Version~1}\label{sec:news}
+The \chemnum\ package has been my first attempt to create a comprehensive
+labeling package for chemical compounds. However, it had and has more than
+one weakness and its code was -- to be frank -- a mess. Version~1 is now a
+complete re-write of \chemnum\ where I tried to achieve several points:
+\begin{itemize}
+ \item A cleaner code internally.
+ \item A cleaner user interface, \ie, more user macros for different tasks, a
+ unified naming of the commands and a less redundant naming of the
+ options.
+ \item Extended functionality such as sorting and compressing of sublabel
+ lists and sorting and merging of main label lists.
+\end{itemize}
+Although the syntax seems more or less the same at first sight quite a number
+of changes have been made that make version~1 incompatible with version~0.
+While I thought a while about maintaining backwards compatibility version~0
+was known to be in an experimental stage where everything was allowed to be
+changed at any time. So users \emph{could} know there was a risk. I have a
+feeling that many users nevertheless didn't realize this and may be bothered
+by this incompatibility. So I am well aware that the update will
+inconvenience some users. However, since version~0 won't be updated any more
+it made more sense to make a breaking update once.
+The same is not true for version~1. The syntax and commands described in this
+manual will not be changed as easily and from this version on I will take care
+of backwards compatibility.
+
+For those people wanting to keep older versions: they are are still available
+from websites such as \website{ctanhg.scharrer-online.de} or
+\securewebsite{bitbucket.org/cgnieder/chemnum}. You can also email me for an
+older version.
+
+Many commands have got a new name! The most important ones are:
+\begin{itemize}
+ \item \cs*{cmpdref}; this is now called \cs{replacecmpd}.
+ \item \cs*{cmpdinit}; this is now called \cs{initcmpd}.
+ \item \cs*{cmpdreset}; this is now called \cs{resetcmpd}.
+ \item \cs*{cmpdsetup}; this is now called \cs{setchemnum}.
+\end{itemize}
+However, there are many more changes. Basically all options have new names
+and often do their thing slightly different from the way things have been
+before.
+
+Please note that this overall change does not mean that version~1 is version~0
+declared stable. It is very likely that version~1 will now have quite a
+number of bugs to be fixed and probably missing features, too. So I'd be very
+glad to receive feedback either on \chemnum's homepage
+\securewebsite{github.com/cgnieder/chemnum} or via email to
+\email{contact@mychemistry.eu}.
+
+\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/chemnum.doc.tlpobj new/tlpkg/tlpobj/chemnum.doc.tlpobj
--- old/tlpkg/tlpobj/chemnum.doc.tlpobj 2019-02-28 03:25:20.000000000 +0100
+++ new/tlpkg/tlpobj/chemnum.doc.tlpobj 2019-10-03 01:55:13.000000000 +0200
@@ -1,9 +1,9 @@
name chemnum.doc
category Package
-revision 40522
+revision 52256
shortdesc doc files of chemnum
relocated 1
-docfiles size=263
+docfiles size=272
RELOC/doc/latex/chemnum/README
RELOC/doc/latex/chemnum/chemnum_en.pdf
RELOC/doc/latex/chemnum/chemnum_en.tex
++++++ chemnum.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/chemnum/chemnum.sty new/tex/latex/chemnum/chemnum.sty
--- old/tex/latex/chemnum/chemnum.sty 2016-04-14 23:45:57.000000000 +0200
+++ new/tex/latex/chemnum/chemnum.sty 2019-10-02 23:15:52.000000000 +0200
@@ -12,7 +12,7 @@
% If you have any ideas, questions, suggestions or bugs to report, please
% feel free to contact me.
% --------------------------------------------------------------------------
-% Copyright 2011-2016 Clemens Niederberger
+% Copyright 2011--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -26,32 +26,41 @@
%
% The Current Maintainer of this work is Clemens Niederberger.
% --------------------------------------------------------------------------
-\def\chemnumdate{2016/04/14}
-\def\chemnumversion{1.2}
-\def\chemnuminfo{a comprehensive approach for the numbering of chemical compounds}
+\RequirePackage{expl3,xparse,l3keys2e}
-\RequirePackage{expl3}[2016/03/28]
-\RequirePackage{xparse,l3keys2e}
+\ExplSyntaxOn
+\tl_const:Nn \c_chemnum_date_tl {2019/10/02}
+\tl_const:Nn \c_chemnum_version_number_tl {1.2}
+\tl_const:Nn \c_chemnum_version_suffix_tl {c}
+\tl_const:Nx \c_chemnum_version_tl
+ { \c_chemnum_version_number_tl \c_chemnum_version_suffix_tl }
+\tl_const:Nn \c_chemnum_info_tl
+ {a~ comprehensive~ approach~ for~ the~ numbering~ of~ chemical~ compounds}
% ----------------------------------------------------------------------------
% provide the package:
-\ProvidesExplPackage{chemnum}
- {\chemnumdate}
- {\chemnumversion}
- {\chemnuminfo\space (CN)}
+\ProvidesExplPackage
+ {chemnum}
+ {\c_chemnum_date_tl}
+ {\c_chemnum_version_tl}
+ {\c_chemnum_info_tl \c_space_tl (CN)}
% ----------------------------------------------------------------------------
% required packages:
% language support:
-\RequirePackage{translations}[2015/11/07]
+\RequirePackage{translations}
+
% greek alphabet for the labels matching to chemmacros' selection:
-\RequirePackage{chemgreek}[2016/02/10]
+\RequirePackage{chemgreek}
\RequirePackage{psfrag}
% ----------------------------------------------------------------------------
% messages:
\msg_new:nnn {chemnum} {missing-label}
- { The~ key~ `#1'~ has~ no~ label~ associated~ \msg_line_context: }
+ {
+ The~ key~ `#1' \tl_if_blank:nF {#2} {~ of~`#2'} ~ has~ no~ label~
+ associated~ \msg_line_context:
+ }
\msg_new:nnn {chemnum} {erroneous-argument-combination}
{
@@ -210,6 +219,8 @@
\int_new:N \l__chemnum_tmpb_int
\int_new:N \l__chemnum_tmpc_int
+\str_new:N \l__chemnum_tmpa_str
+
% ----------------------------------------------------------------------------
% variables:
\prop_new:N \l__chemnum_label_formats_prop
@@ -227,6 +238,7 @@
\seq_new:N \g__chemnum_defined_compounds_seq
\seq_new:N \g__chemnum_compound_defined_subcompounds_seq
+\tl_const:Nn \c_chemnum_nothing_here_tl {??}
\tl_new:N \l__chemnum_label_format_tl
\tl_set:Nn \l__chemnum_label_format_tl {\bfseries}
\tl_new:N \l__chemnum_local_label_format_tl
@@ -367,13 +379,13 @@
sub-counter-format .groups:n = {compound,general} ,
% label:
pre-label-code .tl_set:N = \l__chemnum_pre_label_default_tl ,
- pre-label-code .groups:n = {compound} ,
+ pre-label-code .groups:n = {compound,general} ,
post-label-code .tl_set:N = \l__chemnum_post_label_default_tl ,
- post-label-code .groups:n = {compound} ,
+ post-label-code .groups:n = {compound,general} ,
pre-main-label-code .tl_set:N = \l__chemnum_pre_main_label_default_tl ,
- pre-main-label-code .groups:n = {compound} ,
+ pre-main-label-code .groups:n = {compound,general} ,
post-main-label-code .tl_set:N = \l__chemnum_post_main_label_default_tl ,
- post-main-label-code .groups:n = {compound} ,
+ post-main-label-code .groups:n = {compound,general} ,
main-sub-sep .tl_set:N = \l__chemnum_compound_separator_tl ,
main-sub-sep .groups:n = {general,list} ,
list-label-sep .tl_set:N = \l__chemnum_main_separator_tl ,
@@ -512,14 +524,15 @@
% if the `chemnum' package is removed from the preamble
\AtBeginDocument
{
- \if@filesw
- \iow_now:Nn \@auxout
- {
- \providecommand\chemnum@cmpd[8]{} ^^J
- \providecommand\chemnum@subcmpd[4]{} ^^J
- \providecommand\chemnum@check{}
- }
- \fi
+ \legacy_if:nT {@filesw}
+ {
+ \iow_now:Nn \@auxout
+ {
+ \providecommand\chemnum@cmpd[8]{} ^^J
+ \providecommand\chemnum@subcmpd[4]{} ^^J
+ \providecommand\chemnum@check{}
+ }
+ }
}
% we use this one to trigger a LaTeX rerun warning -- to be precise the
@@ -528,7 +541,11 @@
{ \AtEndDocument { \def \chemnum@check { \@tempswatrue } } }
% add the rerun check at the end:
-\AtEndDocument { \if@filesw \iow_now:Nn \@auxout { \chemnum@check } \fi }
+\AtEndDocument
+ {
+ \legacy_if:nT {@filesw}
+ { \iow_now:Nn \@auxout { \chemnum@check } }
+ }
% ----------------------------------------------------------------------------
% initiating new compounds
@@ -624,8 +641,8 @@
\int_gincr:N \g__chemnum_main_int
\stepcounter{cmpdmain}
}
- \seq_if_exist:cF { g__chemnum_#1_initiated_subcompounds_seq }
- { \seq_new:c { g__chemnum_#1_initiated_subcompounds_seq } }
+ \seq_if_exist:cF {g__chemnum_#1_initiated_subcompounds_seq}
+ { \seq_new:c {g__chemnum_#1_initiated_subcompounds_seq} }
}
% #1: main ID
@@ -643,11 +660,11 @@
\chemnum_subcompound_set_property:nnnn {#1} {#2} {ID} {#2}
\chemnum_subcompound_set_property:nnnn {#1} {#2} {main-compound} {#1}
\chemnum_subcompound_set_property:nnnx {#1} {#2} {number}
- { \int_use:c { g__chemnum_compound_#1_subcompound_int } }
+ { \int_use:c {g__chemnum_compound_#1_subcompound_int} }
\chemnum_subcompound_set_property:nnnx {#1} {#2} {counter-representation}
{
\__chemnum_label_format:cV
- { g__chemnum_compound_#1_subcompound_int }
+ {g__chemnum_compound_#1_subcompound_int}
\l__chemnum_default_subcounter_representation_tl
}
}
@@ -661,26 +678,41 @@
\cs_new_protected:Npn \chemnum_initialize_subcompound:nn #1#2
{
- \int_if_exist:cF { g__chemnum_compound_#1_subcompound_int }
- { \int_new:c { g__chemnum_compound_#1_subcompound_int } }
- \int_gincr:c { g__chemnum_compound_#1_subcompound_int }
- \seq_if_exist:cF { g__chemnum_compound_#1_subcompounds_seq }
- { \seq_new:c { g__chemnum_compound_#1_subcompounds_seq } }
- \prop_if_exist:cF { g__chemnum_compound_#1_subcompounds_prop }
- { \prop_new:c { g__chemnum_compound_#1_subcompounds_prop } }
- \seq_if_in:cnF { g__chemnum_compound_#1_subcompounds_seq } {#2}
- { \seq_gput_right:cn { g__chemnum_compound_#1_subcompounds_seq } {#2} }
+ \int_if_exist:cF {g__chemnum_compound_#1_subcompound_int}
+ { \int_new:c {g__chemnum_compound_#1_subcompound_int} }
+ \int_gincr:c {g__chemnum_compound_#1_subcompound_int}
+ \seq_if_exist:cF {g__chemnum_compound_#1_subcompounds_seq}
+ { \seq_new:c {g__chemnum_compound_#1_subcompounds_seq} }
+ \prop_if_exist:cF {g__chemnum_compound_#1_subcompounds_prop}
+ { \prop_new:c {g__chemnum_compound_#1_subcompounds_prop} }
+ \seq_if_in:cnF {g__chemnum_compound_#1_subcompounds_seq} {#2}
+ { \seq_gput_right:cn {g__chemnum_compound_#1_subcompounds_seq} {#2} }
\seq_gput_right:Nn \g__chemnum_compound_defined_subcompounds_seq {#1#2}
- \prop_gput:cnx { g__chemnum_compound_#1_subcompounds_prop } {#2}
+ \prop_gput:cnx {g__chemnum_compound_#1_subcompounds_prop} {#2}
{
- \int_use:c { g__chemnum_compound_#1_subcompound_int } :
+ \int_use:c {g__chemnum_compound_#1_subcompound_int} :
\__chemnum_label_format:cV
- { g__chemnum_compound_#1_subcompound_int }
+ {g__chemnum_compound_#1_subcompound_int}
\l__chemnum_default_subcounter_representation_tl
}
}
% ----------------------------------------------------------------------------
+
+\cs_new:Npn \__chemnum_nothing_here:n #1
+ {
+ \c_chemnum_nothing_here_tl
+ \msg_warning:nnn {chemnum} {missing-label} {#1}
+ }
+
+\cs_new:Npn \__chemnum_nothing_here:nn #1#2
+ {
+ \c_chemnum_nothing_here_tl
+ \msg_warning:nnnn {chemnum} {missing-label} {#1} {#2}
+ }
+\cs_generate_variant:Nn \__chemnum_nothing_here:nn {x}
+
+% ----------------------------------------------------------------------------
\cs_new_protected:Npn \chemnum_log_main:n #1
{
\bool_if:NT \l__chemnum_log_bool
@@ -716,7 +748,7 @@
\prg_new_protected_conditional:Npnn \chemnum_subcompound_if_initiated:nn #1#2
{ T,F,TF }
{
- \seq_if_in:cnTF { g__chemnum_#1_initiated_subcompounds_seq } {#2}
+ \seq_if_in:cnTF {g__chemnum_#1_initiated_subcompounds_seq} {#2}
{ \prg_return_true: }
{ \prg_return_false: }
}
@@ -745,12 +777,12 @@
% #2: property to be defined
\cs_new_protected:Npn \chemnum_compound_declare_property:nn #1#2
{
- \seq_if_exist:cF { g__chemnum_compound_#1_properties_seq }
- { \seq_new:c { g__chemnum_compound_#1_properties_seq } }
- \prop_if_exist:cF { g__chemnum_compound_#1_prop }
- { \prop_new:c { g__chemnum_compound_#1_prop } }
- \seq_if_in:cnF { g__chemnum_compound_#1_properties_seq } {#2}
- { \seq_gput_right:cn { g__chemnum_compound_#1_properties_seq } {#2} }
+ \seq_if_exist:cF {g__chemnum_compound_#1_properties_seq }
+ { \seq_new:c {g__chemnum_compound_#1_properties_seq} }
+ \prop_if_exist:cF {g__chemnum_compound_#1_prop}
+ { \prop_new:c {g__chemnum_compound_#1_prop} }
+ \seq_if_in:cnF {g__chemnum_compound_#1_properties_seq} {#2}
+ { \seq_gput_right:cn {g__chemnum_compound_#1_properties_seq} {#2} }
}
% #1: ID
@@ -766,8 +798,8 @@
% #3: value of property
\cs_new_protected:Npn \chemnum_compound_set_property:nnn #1#2#3
{
- \seq_if_in:cnTF { g__chemnum_compound_#1_properties_seq } {#2}
- { \prop_gput:cnn { g__chemnum_compound_#1_prop } {#2} {#3} }
+ \seq_if_in:cnTF {g__chemnum_compound_#1_properties_seq} {#2}
+ { \prop_gput:cnn {g__chemnum_compound_#1_prop} {#2} {#3} }
{ \msg_error:nnn {chemnum} {property-undefined} {#1} {#2} }
}
\cs_generate_variant:Nn \chemnum_compound_set_property:nnn { nnV , nnx }
@@ -776,15 +808,15 @@
% #2: property to be updated
\cs_new_protected:Npn \chemnum_compound_update_property:nn #1#2
{
- \seq_if_in:cnTF { g__chemnum_compound_#1_properties_seq } {#2}
+ \seq_if_in:cnTF {g__chemnum_compound_#1_properties_seq} {#2}
{
- \prop_get:cnN { g__chemnum_compound_#1_prop } {previous-#2}
+ \prop_get:cnN {g__chemnum_compound_#1_prop} {previous-#2}
\l__chemnum_tmpa_tl
- \prop_get:cnN { g__chemnum_compound_#1_prop } {#2}
+ \prop_get:cnN {g__chemnum_compound_#1_prop} {#2}
\l__chemnum_tmpb_tl
\tl_if_eq:NNF \l__chemnum_tmpb_tl \l__chemnum_tmpa_tl
{
- \prop_gput:cnV { g__chemnum_compound_#1_prop }
+ \prop_gput:cnV {g__chemnum_compound_#1_prop}
{previous-#2}
\l__chemnum_tmpb_tl
}
@@ -795,7 +827,7 @@
% #1: ID
\cs_new_protected:Npn \chemnum_compound_update_properties:n #1
{
- \seq_map_inline:cn { g__chemnum_compound_#1_properties_seq }
+ \seq_map_inline:cn {g__chemnum_compound_#1_properties_seq}
{ \chemnum_compound_update_property:nn {#1} {##1} }
}
@@ -804,8 +836,8 @@
% #3: property to be defined
\cs_new_protected:Npn \chemnum_subcompound_declare_property:nnn #1#2#3
{
- \seq_if_in:cnF { g__chemnum_compound_#1_#2_properties_seq } {#3}
- { \seq_gput_right:cn { g__chemnum_compound_#1_#2_properties_seq } {#3} }
+ \seq_if_in:cnF {g__chemnum_compound_#1_#2_properties_seq} {#3}
+ { \seq_gput_right:cn {g__chemnum_compound_#1_#2_properties_seq} {#3} }
}
% #1: main ID
@@ -813,11 +845,11 @@
% #3: properties to be defined
\cs_new_protected:Npn \chemnum_subcompound_declare_properties:nnn #1#2#3
{
- \seq_if_exist:cF { g__chemnum_compound_#1_#2_properties_seq }
- { \seq_new:c { g__chemnum_compound_#1_#2_properties_seq } }
- \prop_if_exist:cF { g__chemnum_compound_#1_#2_properties_prop }
- { \prop_new:c { g__chemnum_compound_#1_#2_properties_prop } }
- \clist_map_inline:nn { #3 }
+ \seq_if_exist:cF {g__chemnum_compound_#1_#2_properties_seq}
+ { \seq_new:c {g__chemnum_compound_#1_#2_properties_seq} }
+ \prop_if_exist:cF {g__chemnum_compound_#1_#2_properties_prop}
+ { \prop_new:c {g__chemnum_compound_#1_#2_properties_prop} }
+ \clist_map_inline:nn {#3}
{ \chemnum_subcompound_declare_property:nnn {#1} {#2} {##1} }
}
@@ -827,8 +859,8 @@
% #4: value of property
\cs_new_protected:Npn \chemnum_subcompound_set_property:nnnn #1#2#3#4
{
- \seq_if_in:cnTF { g__chemnum_compound_#1_#2_properties_seq } {#3}
- { \prop_gput:cnn { g__chemnum_compound_#1_#2_properties_prop } {#3} {#4} }
+ \seq_if_in:cnTF {g__chemnum_compound_#1_#2_properties_seq} {#3}
+ { \prop_gput:cnn {g__chemnum_compound_#1_#2_properties_prop} {#3} {#4} }
{ \msg_error:nnn {chemnum} {property-undefined} {#1.#2} {#3} }
}
\cs_generate_variant:Nn \chemnum_subcompound_set_property:nnnn { nnnV , nnnx }
@@ -838,15 +870,15 @@
% #3: property to be updated
\cs_new_protected:Npn \chemnum_subcompound_update_property:nnn #1#2#3
{
- \seq_if_in:cnTF { g__chemnum_compound_#1_#2_properties_seq }
+ \seq_if_in:cnTF {g__chemnum_compound_#1_#2_properties_seq}
{
- \prop_get:cnN { g__chemnum_compound_#1_#2_properties_prop } {previous-#3}
+ \prop_get:cnN {g__chemnum_compound_#1_#2_properties_prop} {previous-#3}
\l__chemnum_tmpa_tl
- \prop_get:cnN { g__chemnum_compound_#1_#2_properties_prop } {#3}
+ \prop_get:cnN {g__chemnum_compound_#1_#2_properties_prop} {#3}
\l__chemnum_tmpb_tl
\tl_if_eq:NNF \l__chemnum_tmpb_tl \l__chemnum_tmpa_tl
{
- \prop_gput:cnV { g__chemnum_compound_#1_#2_properties_prop }
+ \prop_gput:cnV {g__chemnum_compound_#1_#2_properties_prop}
{previous-#3}
\l__chemnum_tmpb_tl
}
@@ -858,7 +890,7 @@
% #2: sub ID
\cs_new_protected:Npn \chemnum_subcompound_update_properties:nn #1#2
{
- \seq_map_inline:cn { g__chemnum_compound_#1_#2_properties_seq }
+ \seq_map_inline:cn {g__chemnum_compound_#1_#2_properties_seq}
{ \chemnum_subcompound_update_property:nnn {#1} {#2} {##1} }
}
@@ -869,14 +901,14 @@
\cs_new_protected:Npn \chemnum_get_compound_property_or:nnn #1#2#3
{
- \prop_get:cnNTF { g__chemnum_compound_#1_prop } {#2}
+ \prop_get:cnNTF {g__chemnum_compound_#1_prop} {#2}
\l__chemnum_tmpa_tl
{ \tl_use:N \l__chemnum_tmpa_tl }
{#3}
}
\cs_new:Npn \chemnum_expandable_get_compound_property:nn #1#2
- { \prop_item:cn { g__chemnum_compound_#1_prop } {#2} }
+ { \prop_item:cn {g__chemnum_compound_#1_prop} {#2} }
\cs_generate_variant:Nn \chemnum_expandable_get_compound_property:nn { V }
% #1: main ID
@@ -887,14 +919,14 @@
\cs_new_protected:Npn \chemnum_get_subcompound_property_or:nnnn #1#2#3#4
{
- \prop_get:cnNTF { g__chemnum_compound_#1_#2_properties_prop } {#3}
+ \prop_get:cnNTF {g__chemnum_compound_#1_#2_properties_prop} {#3}
\l__chemnum_tmpa_tl
{ \tl_use:N \l__chemnum_tmpa_tl }
{#4}
}
\cs_new:Npn \chemnum_expandable_get_subcompound_property:nnn #1#2#3
- { \prop_item:cn { g__chemnum_compound_#1_#2_properties_prop } {#3} }
+ { \prop_item:cn {g__chemnum_compound_#1_#2_properties_prop} {#3} }
% ----------------------------------------------------------------------------
\DeclareExpandableDocumentCommand \cmpdproperty { mm }
@@ -911,7 +943,7 @@
\cs_new_protected:Npn \chemnum_initiate_subcompound:nn #1#2
{
\chemnum_subcompound_if_initiated:nnF {#1} {#2}
- { \seq_gput_right:cn { g__chemnum_#1_initiated_subcompounds_seq } {#2} }
+ { \seq_gput_right:cn {g__chemnum_#1_initiated_subcompounds_seq} {#2} }
}
% ----------------------------------------------------------------------------
@@ -927,13 +959,11 @@
% #8: label format
\cs_new_protected:Npn \__chemnum_write_compound_to_auxfile_x:nnnnnnnn #1#2#3#4#5#6#7#8
{
- \if@filesw
- \token_if_eq_meaning:NNT \@nodocument \relax
- {
- \iow_now:Nx \@auxout
- { \exp_not:N \chemnum@cmpd {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8} }
- }
- \fi
+ \legacy_if:nT {@filesw}
+ {
+ \iow_now:Nx \@auxout
+ { \exp_not:N \chemnum@cmpd {#1}{#2}{#3}{#4}{#5}{#6}{#7}{#8} }
+ }
}
\cs_generate_variant:Nn \__chemnum_write_compound_to_auxfile_x:nnnnnnnn { nnnVVVVV }
@@ -955,13 +985,11 @@
% #3: counter representation
\cs_new_protected:Npn \__chemnum_write_subcompound_to_auxfile_x:nnnn #1#2#3#4
{
- \if@filesw
- \token_if_eq_meaning:NNT \@nodocument \relax
- {
- \iow_now:Nx \@auxout
- { \exp_not:N \chemnum@subcmpd {#1}{#2}{#3}{#4} }
- }
- \fi
+ \legacy_if:nT {@filesw}
+ {
+ \iow_now:Nx \@auxout
+ { \exp_not:N \chemnum@subcmpd {#1}{#2}{#3}{#4} }
+ }
}
\cs_new_protected:Npn \chemnum_save_subcompound_to_auxfile:nn #1#2
@@ -989,21 +1017,21 @@
\cs_new_protected:Npn \chemnum@cmpd #1#2#3#4#5#6#7#8
{
% \chemnum_initialize_compound:n {#1}
- \prop_if_exist:cF { g__chemnum_compound_#1_prop }
- { \prop_new:c { g__chemnum_compound_#1_prop } }
- \prop_gput:cnn { g__chemnum_compound_#1_prop }
+ \prop_if_exist:cF {g__chemnum_compound_#1_prop}
+ { \prop_new:c {g__chemnum_compound_#1_prop} }
+ \prop_gput:cnn {g__chemnum_compound_#1_prop}
{previous-number} {#2}
- \prop_gput:cnn { g__chemnum_compound_#1_prop }
+ \prop_gput:cnn {g__chemnum_compound_#1_prop}
{previous-counter-representation} {#3}
- \prop_gput:cnn { g__chemnum_compound_#1_prop }
+ \prop_gput:cnn {g__chemnum_compound_#1_prop}
{previous-pre-label-code} {#4}
- \prop_gput:cnn { g__chemnum_compound_#1_prop }
+ \prop_gput:cnn {g__chemnum_compound_#1_prop}
{previous-post-label-code} {#5}
- \prop_gput:cnn { g__chemnum_compound_#1_prop }
+ \prop_gput:cnn {g__chemnum_compound_#1_prop}
{previous-pre-main-label-code} {#6}
- \prop_gput:cnn { g__chemnum_compound_#1_prop }
+ \prop_gput:cnn {g__chemnum_compound_#1_prop}
{previous-post-main-label-code} {#7}
- \prop_gput:cnn { g__chemnum_compound_#1_prop }
+ \prop_gput:cnn {g__chemnum_compound_#1_prop}
{previous-label-format} {#8}
}
@@ -1013,15 +1041,15 @@
% #4: counter representation
\cs_new_protected:Npn \chemnum@subcmpd #1#2#3#4
{
- \prop_if_exist:cF { g__chemnum_compound_#1_#2_properties_prop }
- { \prop_new:c { g__chemnum_compound_#1_#2_properties_prop } }
- \seq_if_exist:cF { g__chemnum_compound_#1_subcompounds_seq }
- { \seq_new:c { g__chemnum_compound_#1_subcompounds_seq } }
- \seq_if_in:cnF { g__chemnum_compound_#1_subcompounds_seq } {#2}
- { \seq_gput_right:cn { g__chemnum_compound_#1_subcompounds_seq } {#2} }
- \prop_gput:cnn { g__chemnum_compound_#1_#2_properties_prop }
+ \prop_if_exist:cF {g__chemnum_compound_#1_#2_properties_prop}
+ { \prop_new:c {g__chemnum_compound_#1_#2_properties_prop} }
+ \seq_if_exist:cF {g__chemnum_compound_#1_subcompounds_seq}
+ { \seq_new:c {g__chemnum_compound_#1_subcompounds_seq} }
+ \seq_if_in:cnF {g__chemnum_compound_#1_subcompounds_seq} {#2}
+ { \seq_gput_right:cn {g__chemnum_compound_#1_subcompounds_seq} {#2} }
+ \prop_gput:cnn {g__chemnum_compound_#1_#2_properties_prop}
{previous-number} {#3}
- \prop_gput:cnn { g__chemnum_compound_#1_#2_properties_prop }
+ \prop_gput:cnn {g__chemnum_compound_#1_#2_properties_prop}
{previous-counter-representation} {#4}
}
@@ -1060,7 +1088,6 @@
% #3: sub ID
\cs_new_protected:Npn \chemnum_declare_subcompound:nnn #1#2#3
{
- % \keys_set:nn {chemnum} {#1}
\chemnum_subcompound_if_initiated:nnF {#2} {#3}
{
\bool_if:NT \g__chemnum_initiate_sub_bool
@@ -1170,8 +1197,11 @@
\chemnum_get_compound_property:nn {#1} {previous-label-format}
{
\chemnum_get_compound_property_or:nnn {#1}
- { previous-counter-representation }
- { ?? \__chemnum_rerun: }
+ {previous-counter-representation}
+ {
+ \__chemnum_nothing_here:n {#1}
+ \__chemnum_rerun:
+ }
}
\group_end:
\chemnum_get_compound_property:nn {#1} {previous-post-main-label-code}
@@ -1189,7 +1219,10 @@
{
\chemnum_get_subcompound_property_or:nnnn {#1} {#2}
{previous-counter-representation}
- { ?? \__chemnum_rerun: }
+ {
+ \__chemnum_nothing_here:nn {#2} {#1}
+ \__chemnum_rerun:
+ }
}
\group_end:
}
@@ -1265,7 +1298,7 @@
{
\tl_clear:N \l__chemnum_tmpa_tl
\tl_set:Nx \l__chemnum_tmpa_tl
- { \seq_use:cn { g__chemnum_compound_##4_subcompounds_seq } { , } }
+ { \seq_use:cn {g__chemnum_compound_##4_subcompounds_seq} {,} }
\tl_if_blank:VF \l__chemnum_tmpa_tl
{
\chemnum_write_sublist:NNnnV ##1 ##2 {##3} {##4}
@@ -1294,8 +1327,8 @@
{
\bool_if:NTF #2
{
- \chemnum_hyper_link:nn {#4}
- { \chemnum_compound_read:n {#4} }
+ \bool_if:NF \l__chemnum_sub_only_bool
+ { \chemnum_hyper_link:nn {#4} { \chemnum_compound_read:n {#4} } }
\bool_if:NT #1
{ \msg_error:nn {chemnum} {erroneous-argument-combination} }
}
@@ -1353,10 +1386,18 @@
}
% ----------------------------------------------------------------------------
-\cs_set_protected:Npn \chemnum_show_key_def:n #1
- { \marginpar { \fbox { \normalfont \ttfamily #1 } } }
+\cs_new_protected:Npn \chemnum_print_label_id:n #1
+ {
+ \group_begin:
+ \str_set:Nn \l__chemnum_tmpa_str {#1}
+ \str_use:N \l__chemnum_tmpa_str
+ \group_end:
+ }
+
+\cs_new_protected:Npn \chemnum_show_label_margin:n #1
+ { \marginpar { \fbox {#1} } }
-\cs_set_protected:Npn \chemnum_show_key_ref:n #1
+\cs_new_protected:Npn \chemnum_show_label_inline:n #1
{
\group_begin:
\hbox_unpack:N \c_empty_box % this is \leavevmode
@@ -1366,18 +1407,38 @@
\hbox_overlap_right:n
{
\tex_vrule:D \tex_raise:D .75em
- \hbox:n
- { \underbar { \normalfont \footnotesize \ttfamily #1 } }
+ \hbox:n { \underbar {#1} }
}
}
\group_end:
}
-% ----------------------------------------------------------------------------
+\NewDocumentCommand \cmpdprintlabelid {m}
+ { \chemnum_print_label_id:n {#1} }
+
+\NewDocumentCommand \cmpdshowlabelmargin {m}
+ { \chemnum_show_label_margin:n {#1} }
+
+\NewDocumentCommand \cmpdshowlabelinline {m}
+ { \chemnum_show_label_inline:n {#1} }
+
\NewDocumentCommand \chemnumshowdef {m}
- { \chemnum_show_key_def:n {#1} }
+ {
+ \cmpdshowlabelmargin
+ {
+ \normalfont \ttfamily
+ \cmpdprintlabelid {#1}
+ }
+ }
+
\NewDocumentCommand \chemnumshowref {m}
- { \chemnum_show_key_ref:n {#1} }
+ {
+ \cmpdshowlabelinline
+ {
+ \normalfont \ttfamily \footnotesize
+ \cmpdprintlabelid {#1}
+ }
+ }
\NewDocumentCommand \cmpdshowdef {m} { \chemnumshowdef {#1} }
\NewDocumentCommand \cmpdshowref {m} { \chemnumshowref {#1} }
@@ -1396,7 +1457,7 @@
\l__chemnum_tmpc_seq
\l__chemnum_sub_separator_tl
{#5}
- \seq_remove_duplicates:N \l__chemnum_tmpc_seq
+ \seq_remove_duplicates:N \l__chemnum_tmpc_seq
\seq_map_inline:Nn \l__chemnum_tmpc_seq
{
\bool_if:NF #2
@@ -1467,29 +1528,34 @@
\seq_clear:N #7
\bool_if:NF #1
{
- \seq_map_inline:cn { g__chemnum_compound_#5_subcompounds_seq }
+ \seq_if_exist:cTF {g__chemnum_compound_#5_subcompounds_seq}
{
- \seq_if_in:NnT #3 {##1}
+ \seq_map_inline:Nn #3
{
- \seq_put_right:Nn #6
- { \chemnum_write_subcompound:NNnnn #1 #2 {#4} {#5} {##1} }
- \bool_if:NTF #2
+ \seq_if_in:cnTF {g__chemnum_compound_#5_subcompounds_seq} {##1}
{
- \seq_put_right:Nx #7
+ \seq_put_right:Nn #6
+ { \chemnum_write_subcompound:NNnnn #1 #2 {#4} {#5} {##1} }
+ \bool_if:NTF #2
{
- \chemnum_expandable_get_subcompound_property:nnn
- {#5} {##1} {previous-number}
+ \seq_put_right:Nx #7
+ {
+ \chemnum_expandable_get_subcompound_property:nnn
+ {#5} {##1} {previous-number}
+ }
}
- }
- {
- \seq_put_right:Nx #7
{
- \chemnum_expandable_get_subcompound_property:nnn
- {#5} {##1} {number}
+ \seq_put_right:Nx #7
+ {
+ \chemnum_expandable_get_subcompound_property:nnn
+ {#5} {##1} {number}
+ }
}
}
+ { \__chemnum_nothing_here:nn {##1} {#5} }
}
}
+ { \__chemnum_nothing_here:xn { \seq_use:Nnnn #3 {,~} {,~} {,~} } {#5} }
}
}
@@ -1917,8 +1983,8 @@
}
\NewDocumentCommand \initcmpd {O{}m}
- { \chemnum_init:nn {#1} {#2} }
-\@onlypreamble\cmpdinit
+ { \AtBeginDocument { \chemnum_init:nn {#1} {#2} } }
+\@onlypreamble\initcmpd
% ----------------------------------------------------------------------------
% resetting compound numbering
@@ -2008,4 +2074,10 @@
\prop_item:Nn)
2016/04/14 v1.2 - changes to how compounds are saved to auxfile
- hyperref support: backlinks to first appearance of label
-
+2016/05/11 v1.2a - pre- and post-label options now belong both to the
+ `compound' and the `general' groups
+2016/10/22 v1.2b - enable label keys to be printed (with `show-keys') if they
+ contain underscores or similar tokens
+ - easier customization possibilities of the `show-keys'
+ functions
+2019/10/02 v1.2c - fix issues #5, #7
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/chemnum.tlpobj new/tlpkg/tlpobj/chemnum.tlpobj
--- old/tlpkg/tlpobj/chemnum.tlpobj 2019-02-28 03:25:21.000000000 +0100
+++ new/tlpkg/tlpobj/chemnum.tlpobj 2019-10-03 01:55:13.000000000 +0200
@@ -1,17 +1,17 @@
name chemnum
category Package
-revision 40522
+revision 52256
shortdesc A method of numbering chemical compounds
relocated 1
longdesc The package defines a \label- and \ref-like commands for
-longdesc compound numbers. The package requires LaTeX 3 packages expl3
-longdesc (from the l3kernel bundle) and xparse (from the l3packages
-longdesc bundle).
-runfiles size=18
+longdesc compound numbers. The package requires LaTeX3 packages expl3
+longdesc (from the l3kernel bundle) as well as xparse and l3keys2e (from
+longdesc the l3packages bundle).
+runfiles size=19
RELOC/tex/latex/chemnum/chemnum.sty
catalogue-also chemcompounds chemcono
catalogue-ctan /macros/latex/contrib/chemnum
-catalogue-date 2016-06-24 19:18:15 +0200
+catalogue-date 2019-10-02 17:51:21 +0200
catalogue-license lppl1.3
catalogue-topics chemistry expl3
-catalogue-version 1.2
+catalogue-version 1.2c
++++++ chess-problem-diagrams.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/chess-problem-diagrams/README new/doc/latex/chess-problem-diagrams/README
--- old/doc/latex/chess-problem-diagrams/README 2016-01-08 23:22:49.000000000 +0100
+++ new/doc/latex/chess-problem-diagrams/README 2020-01-02 23:10:48.000000000 +0100
@@ -1,5 +1,5 @@
diagram --- A package for typesetting chessproblems
-Version v1.12 / Stefan Hoening 2015
+Version v1.15 / Stefan Hoening 1994-2019
CONTENTS
Binary files old/doc/latex/chess-problem-diagrams/diagram.pdf and new/doc/latex/chess-problem-diagrams/diagram.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/chess-problem-diagrams.doc.tlpobj new/tlpkg/tlpobj/chess-problem-diagrams.doc.tlpobj
--- old/tlpkg/tlpobj/chess-problem-diagrams.doc.tlpobj 2019-02-28 03:25:29.000000000 +0100
+++ new/tlpkg/tlpobj/chess-problem-diagrams.doc.tlpobj 2020-01-03 01:54:38.000000000 +0100
@@ -1,8 +1,8 @@
name chess-problem-diagrams.doc
category Package
-revision 39317
+revision 53302
shortdesc doc files of chess-problem-diagrams
relocated 1
-docfiles size=87
+docfiles size=89
RELOC/doc/latex/chess-problem-diagrams/README
RELOC/doc/latex/chess-problem-diagrams/diagram.pdf
++++++ chess-problem-diagrams.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/chess-problem-diagrams/diagram.sty new/tex/latex/chess-problem-diagrams/diagram.sty
--- old/tex/latex/chess-problem-diagrams/diagram.sty 2016-01-08 23:22:49.000000000 +0100
+++ new/tex/latex/chess-problem-diagrams/diagram.sty 2020-01-02 23:10:48.000000000 +0100
@@ -36,7 +36,7 @@
%%
%%
-\ProvidesPackage{diagram}[2016/01/06]
+\ProvidesPackage{diagram}[2019/12/28]
\newcommand*{\DefaultDiagramSize}{}
\DeclareOption{10pt}{\renewcommand*{\DefaultDiagramSize}{\diagramx}}
\DeclareOption{11pt}{\renewcommand*{\DefaultDiagramSize}{\diagramxi}}
@@ -114,6 +114,9 @@
\newcounter{cpd@blackPieces}
\newcounter{cpd@neutralPieces}
+\newcounter{cpd@row}
+\newcounter{cpd@line}
+
\newcommand{\cpd@stepcounterWhite}{\stepcounter{cpd@whitePieces}}
\newcommand{\cpd@stepcounterBlack}{\stepcounter{cpd@blackPieces}}
\newcommand{\cpd@stepcounterNeutral}{\stepcounter{cpd@neutralPieces}}
@@ -183,6 +186,7 @@
\newtoks\fieldframe@tk\fieldframe@tk={\relax}
\newtoks\gridlines@tk\gridlines@tk={\relax}
\newtoks\pieces@tk\pieces@tk={\relax}
+\newtoks\fen@tk\fen@tk={\relax}
\newtoks\fieldtext@tk\fieldtext@tk={\relax}
\newtoks\text@tk\text@tk={\relax}
\newtoks\stipulation@tk\stipulation@tk={\relax}
@@ -214,6 +218,7 @@
\newif\if@judgement\@judgementfalse
\newif\if@comment\@commentfalse
\newif\if@pieces\@piecesfalse
+\newboolean{@cpd@fen}\setboolean{@cpd@fen}{false}%
\newif\if@fieldtext\@fieldtextfalse
\newif\if@nofields\@nofieldsfalse
\newif\if@gridlines\@gridlinesfalse
@@ -257,17 +262,23 @@
\newif\if@sindex\@sindexfalse
\newif\if@tindex\@tindexfalse
\newif\ifds@label
+\newcommand{\cpd@begindiagram@hook}{}
+\newcommand{\cpd@enddiagram@hook}{}
\def\diagram{%
\begingroup%
\@ifnextchar [{\@diagram}{\@diagram[\@ight x\@ight]}%
}
-\def\@diagram[#1x#2]{%
- \lines@max=#1%
- \rows@max=#2%
+\def\@cpd@initsize#1#2{%
\setcounter{cpd@linesmax}{#1}%
\setcounter{cpd@rowsmax}{#2}%
\setcounter{cpd@maxsquare}{\value{cpd@rowsmax}*\value{cpd@linesmax}}%
+}
+
+\def\@diagram[#1x#2]{%
+ \lines@max=#1%
+ \rows@max=#2%
+ \@cpd@initsize{#1}{#2}%
\pl@ne=\z@%
\current@plane=\z@%
\let\put@sqs=\put@sqs@normal%
@@ -276,13 +287,16 @@
}
\def\stereodiagram{%
\begingroup%
+ \inner@frame=0.6pt%
\@stereotrue%
+ \@cpd@initsize{8}{8}%
\let\put@sqs=\put@sqs@stereo%
\let\read@plane=\read@plane@stereo%
\@start@diagram%
}
\def\spacediagram{%
\begingroup%
+ \inner@frame=0.6pt%
\@spacetrue%
\@ifnextchar [{\@spacediagram}{\@spacediagram[5x5x5]}%
}
@@ -291,6 +305,7 @@
\lines@max=#1%
\rows@max=#2%
\planes@max=#3%
+ \@cpd@initsize{#1}{#2}%
\let\put@sqs=\put@sqs@space%
\let\read@plane=\read@plane@space%
\@start@diagram%
@@ -302,6 +317,7 @@
\let\month=\ds@month%
\let\year=\ds@year%
\let\label=\ds@label%
+ \cpd@begindiagram@hook%
\ignorespaces%
}
@@ -468,6 +484,7 @@
}%
}}% End of \dia@box
\do@dia@job%
+ \cpd@enddiagram@hook%
\endgroup%
}
@@ -732,6 +749,16 @@
\pieces@tk={#1}\@piecestrue%
\ignorespaces%
}
+\newcommand{\fen}[2][]{%
+ \ifthenelse{\equal{#1}{}}%
+ {}% Do nothing
+ {%
+ \setboolean{cpd@checkPieceCounts}{true}%
+ \@parseWhiteAndBlackCount#1+\e@list
+ }%
+ \fen@tk={#2}\setboolean{@cpd@fen}{true}%
+ \ignorespaces%
+}
\def\fieldtext#1{%
\fieldtext@tk={#1}\@fieldtexttrue%
\ignorespaces%
@@ -1557,6 +1584,18 @@
\fi%
\l@@k%
}
+\def\cpd@fen@setpiece{%
+ \ifnum\pl@ne=\current@plane%
+ \cpd@stepcounterPieces%
+ \set@current@square@index{\value{cpd@line}}{\value{cpd@row}}%
+ \get@current@square@value%
+ \ifthenelse{\value{cpd@current@square@value}=\m@ne}
+ {\set@current@square@value{\the\help@a}}%
+ {\ifthenelse{\value{cpd@current@square@value}=144}%
+ {\set@current@square@value{\the\help@a+18}}%
+ {\errmessage{Trying to set a piece to an occupied square}}}%
+ \fi%
+}
\def\set@nofield, {%
\ifnum\pl@ne=\current@plane%
\set@current@square@index\lin@\r@w%
@@ -1590,6 +1629,95 @@
\fi%
\nextpr@c%
}
+\def\@cpd@handle@fen#1{%
+ \ifx#1/\relax%
+ \ifthenelse{\value{cpd@line}=8}%
+ {%
+ \setcounter{cpd@line}{0}%
+ \addtocounter{cpd@row}{\m@ne}%
+ }%
+ {%
+ \errmessage{FEN: there is now row to end here}%
+ }%
+ \else\ifx#1K\relax%
+ \let\cpd@stepcounterPieces\cpd@stepcounterWhite%
+ \help@a=5%
+ \cpd@fen@setpiece%
+ \addtocounter{cpd@line}{\@ne}%
+ \else\ifx#1Q\relax%
+ \let\cpd@stepcounterPieces\cpd@stepcounterWhite%
+ \help@a=4%
+ \cpd@fen@setpiece%
+ \addtocounter{cpd@line}{\@ne}%
+ \else\ifx#1R\relax%
+ \let\cpd@stepcounterPieces\cpd@stepcounterWhite%
+ \help@a=3%
+ \cpd@fen@setpiece%
+ \addtocounter{cpd@line}{\@ne}%
+ \else\ifx#1B\relax%
+ \let\cpd@stepcounterPieces\cpd@stepcounterWhite%
+ \help@a=2%
+ \cpd@fen@setpiece%
+ \addtocounter{cpd@line}{\@ne}%
+ \else\ifx#1N\relax%
+ \let\cpd@stepcounterPieces\cpd@stepcounterWhite%
+ \help@a=1%
+ \cpd@fen@setpiece%
+ \addtocounter{cpd@line}{\@ne}%
+ \else\ifx#1P\relax%
+ \let\cpd@stepcounterPieces\cpd@stepcounterWhite%
+ \help@a=0%
+ \cpd@fen@setpiece%
+ \addtocounter{cpd@line}{\@ne}%
+ \else\ifx#1k\relax%
+ \let\cpd@stepcounterPieces\cpd@stepcounterBlack%
+ \help@a=17%
+ \cpd@fen@setpiece%
+ \addtocounter{cpd@line}{\@ne}%
+ \else\ifx#1q\relax%
+ \let\cpd@stepcounterPieces\cpd@stepcounterBlack%
+ \help@a=16%
+ \cpd@fen@setpiece%
+ \addtocounter{cpd@line}{\@ne}%
+ \else\ifx#1r\relax%
+ \let\cpd@stepcounterPieces\cpd@stepcounterBlack%
+ \help@a=15%
+ \cpd@fen@setpiece%
+ \addtocounter{cpd@line}{\@ne}%
+ \else\ifx#1b\relax%
+ \let\cpd@stepcounterPieces\cpd@stepcounterBlack%
+ \help@a=14%
+ \cpd@fen@setpiece%
+ \addtocounter{cpd@line}{\@ne}%
+ \else\ifx#1n\relax%
+ \let\cpd@stepcounterPieces\cpd@stepcounterBlack%
+ \help@a=13%
+ \cpd@fen@setpiece%
+ \addtocounter{cpd@line}{\@ne}%
+ \else\ifx#1p\relax%
+ \let\cpd@stepcounterPieces\cpd@stepcounterBlack%
+ \help@a=12%
+ \cpd@fen@setpiece%
+ \addtocounter{cpd@line}{\@ne}%
+ \else\ifx1#1\relax%
+ \addtocounter{cpd@line}{1}%
+ \else\ifx2#1\relax%
+ \addtocounter{cpd@line}{2}%
+ \else\ifx3#1\relax%
+ \addtocounter{cpd@line}{3}%
+ \else\ifx4#1\relax%
+ \addtocounter{cpd@line}{4}%
+ \else\ifx5#1\relax%
+ \addtocounter{cpd@line}{5}%
+ \else\ifx6#1\relax%
+ \addtocounter{cpd@line}{6}%
+ \else\ifx7#1\relax%
+ \addtocounter{cpd@line}{7}%
+ \else\ifx8#1\relax%
+ \addtocounter{cpd@line}{8}%
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+}
+\def\@cpd@parse@fen#1{\@cpd@handle@fen#1\l@@klist}
\def\p@rsepieces#1, {\getc@lor#1\e@list\l@@klist}
\def\p@rsetext#1, {\get@text#1\e@list\l@@klist}
\def\set@text{%
@@ -1805,6 +1933,14 @@
% Now we should clear the board
\clear@board%
% Let us now parse the list of pieces
+ \ifthenelse{\boolean{@cpd@fen}}{%
+ \ifthenelse{\value{cpd@rowsmax}=8}{}{\errmessage{FEN is only allowed for 8x8 boards.}}
+ \ifthenelse{\value{cpd@linesmax}=8}{}{\errmessage{FEN is only allowed for 8x8 boards.}}
+ \setcounter{cpd@row}{7}%
+ \setcounter{cpd@line}{0}%
+ \let\@action\@cpd@parse@fen%
+ \@parseTokenlist\fen@tk\e@list%
+ }{}%
\if@pieces%
\let\@action\p@rsepieces%
\let\piece@job\l@@k\let\plane@job\set@piece%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/chess-problem-diagrams.tlpobj new/tlpkg/tlpobj/chess-problem-diagrams.tlpobj
--- old/tlpkg/tlpobj/chess-problem-diagrams.tlpobj 2019-02-28 03:25:29.000000000 +0100
+++ new/tlpkg/tlpobj/chess-problem-diagrams.tlpobj 2020-01-03 01:54:38.000000000 +0100
@@ -1,15 +1,14 @@
name chess-problem-diagrams
category Package
-revision 39317
+revision 53302
shortdesc A package for typesetting chess problem diagrams
relocated 1
longdesc This package provides macros to typeset chess problem diagrams
longdesc including fairy chess problems (mostly using rotated images of
longdesc pieces) and other boards.
-runfiles size=14
+runfiles size=15
RELOC/tex/latex/chess-problem-diagrams/diagram.sty
catalogue-ctan /macros/latex/contrib/chess-problem-diagrams
-catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl1.2
catalogue-topics games
-catalogue-version 1.12
+catalogue-version 1.15
++++++ chessboard.doc.tar.xz ++++++
++++ 3974 lines of diff (skipped)
++++++ chessboard.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/chessboard/UF-chessboard-documentation.sty new/tex/latex/chessboard/UF-chessboard-documentation.sty
--- old/tex/latex/chessboard/UF-chessboard-documentation.sty 1970-01-01 01:00:00.000000000 +0100
+++ new/tex/latex/chessboard/UF-chessboard-documentation.sty 2019-06-24 23:06:01.000000000 +0200
@@ -0,0 +1,220 @@
+\ProvidesFile{UF-xskak-documentation.sty}[2008/01/09 local style for documentations]
+\DeclareOption{codemargin}{\AtEndOfPackage{%
+ \advance\oddsidemargin by 0.5in\relax
+ \advance\marginparwidth by 1in\relax}}
+\ProcessOptions
+\newcommand\filetype[1] {\upshape\texttt{#1}} %e.g. \filetype{.pdf}
+\newcommand\programm[1] {\upshape\textsf{#1}} %e.g. \programm{afm2tfm}
+\newcommand\chessfontname[1]{\upshape\textsf{#1}} %e.g. chessfontname{maya}
+\newcommand\konzept[1] {\upshape\textsf{#1}} %e.g. \konzept{nfss}
+\newcommand\packagename[1] {\upshape\textsf{#1}}
+
+\newcommand\skaksty{the package \packagename{skak}\xspace}
+\newcommand\Skaksty{The package \packagename{skak}\xspace}
+
+\newcommand\xskak{the package \packagename{xskak}\xspace}
+\newcommand\Xskak{The package \packagename{xskak}\xspace}
+
+\newcommand\chessfss{the package \packagename{chessfss}\xspace}
+\newcommand\Chessfss{The package \packagename{chessfss}\xspace}
+
+\newcommand\pchessboard{the package \packagename{chessboard}\xspace}
+\newcommand\Pchessboard{The package \packagename{chessboard}\xspace}
+
+
+\newcommand\mynobreakpar{\par\nobreak\@afterheading}
+\newcommand\key[1]{\texttt{#1}}
+\newcommand\obsoletekey[1]{\key{#1}\index{#1 (obsolete)}}
+\providecommand\gobble[1]{}
+\newcommand\keyoarg{\oarg{key=value list}}
+\newcommand\keymarg{\marg{key=value list}}
+\newcommand\keylist{\textit{key=value list}\xspace}
+\newcommand\keylists{\textit{key=value lists}\xspace}
+\newcommand\keyvalue{\textit{key=value}\xspace}
+
+\AtBeginDocument{%
+ \renewcommand*\lstlistlistingname{Examples}
+ \renewcommand*\lstlistingname{Example}
+}
+
+%
+\setcounter{secnumdepth}{4}
+\renewcommand{\theparagraph}{\alph{paragraph})}
+
+
+%% standard needed packages
+\RequirePackage[english]{babel}
+\RequirePackage{microtype}
+
+\RequirePackage{array}
+\RequirePackage{booktabs}
+\RequirePackage{xspace}
+\RequirePackage{ifluatex}
+
+%% fonts
+\ifluatex
+\else
+\RequirePackage[scaled=0.85]{luximono}
+\RequirePackage{fourier}
+\RequirePackage[scaled=0.86]{helvet}
+\fi
+%\addtokomafont{sectioning}{\rmfamily}
+\renewcommand*\descfont{\rmfamily\bfseries}
+
+%% colors
+\RequirePackage{xcolor}
+\colorlet{hellgelb}{yellow!15}
+
+
+% Quotes
+\RequirePackage[babel]{csquotes}
+\MakeAutoQuote {«}{»}
+
+
+%% index
+\RequirePackage{makeidx}
+\makeindex % number of columns set after doc
+
+\begin{filecontents}{\jobname.mst}
+actual '='
+quote '!'
+level '>'
+preamble
+"\n \\begin{theindex} \n \\makeatletter\\scan@allowedfalse\n"
+postamble
+"\n\n \\end{theindex}\n"
+item_x1 "\\efill \n \\subitem "
+item_x2 "\\efill \n \\subsubitem "
+delim_0 "\\pfill "
+delim_1 "\\pfill "
+delim_2 "\\pfill "
+% The next lines will produce some warnings when
+% running Makeindex as they try to cover two different
+% versions of the program:
+lethead_prefix "{\\bfseries\\hfil "
+lethead_suffix "\\hfil}\\nopagebreak\n"
+lethead_flag 1
+heading_prefix "{\\bfseries\\hfil "
+heading_suffix "\\hfil}\\nopagebreak\n"
+headings_flag 1
+%%
+%%
+\end{filecontents}
+
+
+%% codes and examples
+\begin{filecontents}{UFlstlocal.cfg}
+\ProvidesFile{UFlstlocal.cfg}[2005/07/01 lokale Listingsdefinitionen (UF)]
+
+\RequirePackage{xcolor}
+
+
+\colorlet{UFkeyscolor}{black}
+\colorlet{UFidentifiercolor}{black}
+\colorlet{UFcommentscolor}{red}
+\colorlet{UFstringcolor}{green!50}
+\colorlet{UFbackgroundcolor}{yellow!10}
+
+\lstdefinestyle{inline}{%
+ basicstyle=\ttfamily,
+ keywordstyle={}}
+
+
+\lstdefinestyle{UFdocu}{% mehr oder weniger kopiert aus showexpl.cfg
+ language=[LaTeX]TeX,%
+ float=hbp,%
+ basicstyle=\ttfamily,%
+ identifierstyle=\color{UFidentifiercolor},%
+ keywordstyle=\color{UFkeyscolor},%
+ stringstyle=\color{UFstringcolor},%
+ commentstyle=\itshape,%
+ columns=flexible,%
+ tabsize=4,%
+ frame=single,%
+ extendedchars=true,%
+ showspaces=false,%
+ showstringspaces=false,%
+ numbers=none,%
+ %numberstyle=\tiny\ttfamily,%
+ breaklines=true,%
+ breakindent=10pt,%
+ backgroundcolor=\color{UFbackgroundcolor},%
+ breakautoindent=true,%
+ captionpos=t,%
+ xleftmargin=1em,%
+ xrightmargin=\fboxsep,%
+ %numbersep=1em,%
+ breakatwhitespace=true,
+ preset=\raggedright\setlength{\parskip}{1ex},%
+ explpreset={numbers=none, basicstyle=\footnotesize\ttfamily},% ueberschreibt default
+ rframe={},% code ist im Rahmen
+ varwidth=true,% Breite des Beispiels
+ pos=o,
+ overhang=4em,%
+ literate={Ì}{{\"u}}1{ö}{{\"o}}1{À}{{\"a}}1
+}
+
+\lstdefinestyle{inline}{%
+ basicstyle=\ttfamily,
+ keywordstyle={}}
+
+\newcommand\mylstinline{\lstinline[style=inline]}
+
+\endinput
+%%
+%% End of file `UFlstlocal.cfg'.
+\end{filecontents}
+
+\RequirePackage[final]{showexpl}
+\input{UFlstlocal.cfg}
+\lstset{style=UFdocu}
+
+\newcommand\UFleftexamples{%
+\let\OriisSX@odd\isSX@odd
+\renewcommand*{\isSX@odd}[2]{##2}}
+
+\UFleftexamples
+
+\RequirePackage{doc}
+\def\meta@font@select{\rmfamily\itshape}
+\c@IndexColumns = 2
+\renewcommand\MacroFont{\scriptsize\ttfamily}
+\renewcommand\encapchar{ -- }
+% from ltxdoc.sty
+\DeclareRobustCommand\cs[1]{\texttt{\char`\\#1}}
+\providecommand\marg[1]{%
+ {\ttfamily\char`\{}\meta{#1}{\ttfamily\char`\}}}
+\providecommand\oarg[1]{%
+ {\ttfamily[}\meta{#1}{\ttfamily]}}
+\providecommand\parg[1]{%
+ {\ttfamily(}\meta{#1}{\ttfamily)}}
+
+
+%% pagestyle and layout
+\providecommand\UFcurrentpackage{unknown}
+\providecommand\UFcurrentversion{version unknown}
+
+\reversemarginpar
+
+\RequirePackage{fancyhdr}
+\pagestyle{fancy}
+
+\renewcommand\headrulewidth{0pt}
+\fancyhf{}
+\cfoot{\thepage}
+\lfoot{\today}
+\rfoot{\packagename{\UFcurrentpackage} \UFcurrentversion}
+
+
+%% captions
+\RequirePackage[tableposition=top]{caption}
+\captionsetup{singlelinecheck=false,format=hang,belowskip=1em}
+
+
+
+%% pdf-goodies:
+\RequirePackage{animate}
+\RequirePackage[colorlinks=true, %options are passed to hyperref
+ linkcolor=black,
+ hyperindex=true% true clashes with doc.sty
+ ]{attachfile}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/chessboard/chessboard-keys-main.sty new/tex/latex/chessboard/chessboard-keys-main.sty
--- old/tex/latex/chessboard/chessboard-keys-main.sty 2014-05-02 23:14:31.000000000 +0200
+++ new/tex/latex/chessboard/chessboard-keys-main.sty 2019-06-24 23:06:01.000000000 +0200
@@ -4,10 +4,10 @@
%%
%% The original source files were:
%%
-%% chessboard-src.dtx (with options: `chessboard-keys-main')
+%% chessboard.dtx (with options: `chessboard-keys-main')
%%
%% chessboard: a package to print chessboards
-%% Copyright 2006-2014 Ulrike Fischer (chess@nililand.de)
+%% Copyright 2006-2019 Ulrike Fischer (chess@nililand.de)
%% -------------------------------------------
%%
%% This file can be redistributed and/or modified under the terms of
@@ -16,7 +16,7 @@
%% License, or (at your option) any later version.
%%
%% For error reports see documentation.
-\ProvidesFile{chessboard-keys-main.sty}[2014/05/01 version v1.7 key definitions for chessboard.sty]
+\ProvidesFile{chessboard-keys-main.sty}[2019/06/23 version v1.8 key definitions for chessboard.sty]
%%$Date: 2011/03/23 08:42:57 $$Version: 66142533647c $
%%file=Linie=column=vertikal=al_f_abetisch= a-h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/chessboard/chessboard-keys-pgf.sty new/tex/latex/chessboard/chessboard-keys-pgf.sty
--- old/tex/latex/chessboard/chessboard-keys-pgf.sty 2014-05-02 23:14:31.000000000 +0200
+++ new/tex/latex/chessboard/chessboard-keys-pgf.sty 2019-06-24 23:06:01.000000000 +0200
@@ -4,10 +4,10 @@
%%
%% The original source files were:
%%
-%% chessboard-src.dtx (with options: `chessboard-keys-pgf')
+%% chessboard.dtx (with options: `chessboard-keys-pgf')
%%
%% chessboard: a package to print chessboards
-%% Copyright 2006-2014 Ulrike Fischer (chess@nililand.de)
+%% Copyright 2006-2019 Ulrike Fischer (chess@nililand.de)
%% -------------------------------------------
%%
%% This file can be redistributed and/or modified under the terms of
@@ -16,7 +16,7 @@
%% License, or (at your option) any later version.
%%
%% For error reports see documentation.
-\ProvidesFile{chessboard-keys-pgf.sty}[2014/05/01 version v1.7 key definitions for chessboard.sty]
+\ProvidesFile{chessboard-keys-pgf.sty}[2019/06/23 version v1.8 key definitions for chessboard.sty]
%%$Date: 2011/03/17 13:42:38 $$Version: e7ec1b100ede $
%% new 1.5.: style keys for curvemove
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/chessboard/chessboard-pgf.sty new/tex/latex/chessboard/chessboard-pgf.sty
--- old/tex/latex/chessboard/chessboard-pgf.sty 2014-05-02 23:14:31.000000000 +0200
+++ new/tex/latex/chessboard/chessboard-pgf.sty 2019-06-24 23:06:01.000000000 +0200
@@ -4,10 +4,10 @@
%%
%% The original source files were:
%%
-%% chessboard-src.dtx (with options: `chessboard-pgf')
+%% chessboard.dtx (with options: `chessboard-pgf')
%%
%% chessboard: a package to print chessboards
-%% Copyright 2006-2014 Ulrike Fischer (chess@nililand.de)
+%% Copyright 2006-2019 Ulrike Fischer (chess@nililand.de)
%% -------------------------------------------
%%
%% This file can be redistributed and/or modified under the terms of
@@ -16,7 +16,7 @@
%% License, or (at your option) any later version.
%%
%% For error reports see documentation.
-\ProvidesFile{chessboard-pgf.sty}[2014/05/01 version v1.7 pgf code for chessboard.sty]
+\ProvidesFile{chessboard-pgf.sty}[2019/06/23 version v1.8 pgf code for chessboard.sty]
%%$Date: 2011/01/11 14:07:20 $$Version: 3d9f59c743f1 $
\newcommand\board@pgf@extrabackground{}%
@@ -90,7 +90,7 @@
{\setcounter{cnt@board@rank}{0}%
\whiledo %nodes for on one field for each rank
{\value{cnt@board@rank}<\numexpr\board@val@maxranknum+1\relax}%
- {\edef\board@temp{\zeroalph{cnt@board@file}\arabic{cnt@board@rank}}%
+ {\edef\board@temp{\zeroalph{cnt@board@file}\number\value{cnt@board@rank}}%
\expandafter\board@pgf@addnode\expandafter{\board@temp}{#1}%
\expandafter\board@do@l@addto@macro\csname board@pgf@#1ground\endcsname{%
\pgftransformshift{\pgfpointxy{0}{1}}}%
@@ -204,7 +204,7 @@
{\setcounter{cnt@board@file}{\board@temp@curstartfilenum}%
\whiledo
{\value{cnt@board@file}<\numexpr \board@temp@curstopfilenum+1\relax}%
- {\edef\board@temp@curfield{\zeroalph{cnt@board@file}\arabic{cnt@board@rank}}%
+ {\edef\board@temp@curfield{\zeroalph{cnt@board@file}\number\value{cnt@board@rank}}%
\expandafter\board@pgf@addpgftofield\expandafter{\board@temp@curfield}{mark}%
\addtocounter{cnt@board@file}{1}}%
\addtocounter{cnt@board@rank}{-1}}}%
@@ -222,7 +222,7 @@
{\setcounter{cnt@board@file}{\board@temp@curstartfilenum}%
\whiledo
{\value{cnt@board@file}<\numexpr \board@temp@curstopfilenum+1\relax}%
- {\edef\board@temp@curfield{\zeroalph{cnt@board@file}\arabic{cnt@board@rank}}%
+ {\edef\board@temp@curfield{\zeroalph{cnt@board@file}\number\value{cnt@board@rank}}%
\expandafter\board@pgf@addpgftofield\expandafter{\board@temp@curfield}{back}%
\addtocounter{cnt@board@file}{1}}%
\addtocounter{cnt@board@rank}{-1}}}%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/chessboard/chessboard.sty new/tex/latex/chessboard/chessboard.sty
--- old/tex/latex/chessboard/chessboard.sty 2014-05-02 23:14:31.000000000 +0200
+++ new/tex/latex/chessboard/chessboard.sty 2019-06-24 23:06:01.000000000 +0200
@@ -4,10 +4,10 @@
%%
%% The original source files were:
%%
-%% chessboard-src.dtx (with options: `chessboard')
+%% chessboard.dtx (with options: `chessboard')
%%
%% chessboard: a package to print chessboards
-%% Copyright 2006-2014 Ulrike Fischer (chess@nililand.de)
+%% Copyright 2006-2019 Ulrike Fischer (chess@nililand.de)
%% -------------------------------------------
%%
%% This file can be redistributed and/or modified under the terms of
@@ -17,7 +17,7 @@
%%
%% For error reports see documentation.
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{chessboard}[2014/05/01 version v1.7 print chessboards]
+\ProvidesPackage{chessboard}[2019/06/23 version v1.8 print chessboards]
%%$Date: 2011/03/23 08:42:57 $$Version: 66142533647c $
\DeclareOption{skaknew}{}%
@@ -46,7 +46,7 @@
\ifpdf\else
\RequirePackage{pst-node}%
\fi
-
+\RequirePackage{etoolbox}
%%%%%%%
%% naming conventions
%%%%%%%
@@ -304,13 +304,13 @@
{\isodd{\value{cnt@board}}}
{\ifthenelse%
{\equal{\board@val@whitefieldlist}{}}%
- {\edef\board@val@whitefieldlist{\zeroalph{cnt@board@file}\arabic{cnt@board@rank}}}%
- {\edef\board@temp@curfield{\zeroalph{cnt@board@file}\arabic{cnt@board@rank}}%
+ {\edef\board@val@whitefieldlist{\zeroalph{cnt@board@file}\number\value{cnt@board@rank}}}%
+ {\edef\board@temp@curfield{\zeroalph{cnt@board@file}\number\value{cnt@board@rank}}%
\expandafter\board@do@l@addto@macro\expandafter\board@val@whitefieldlist\expandafter{\expandafter,\board@temp@curfield}}}%
{\ifthenelse%
{\equal{\board@val@blackfieldlist}{}}%
- {\edef\board@val@blackfieldlist{\zeroalph{cnt@board@file}\arabic{cnt@board@rank}}}%
- {\edef\board@temp@curfield{\zeroalph{cnt@board@file}\arabic{cnt@board@rank}}%
+ {\edef\board@val@blackfieldlist{\zeroalph{cnt@board@file}\number\value{cnt@board@rank}}}%
+ {\edef\board@temp@curfield{\zeroalph{cnt@board@file}\number\value{cnt@board@rank}}%
\expandafter\board@do@l@addto@macro\expandafter\board@val@blackfieldlist\expandafter{\expandafter,\board@temp@curfield}}}%
\addtocounter{cnt@board@rank}{1}}%
\addtocounter{cnt@board@file}{1}}}%
@@ -695,7 +695,7 @@
{\value{cnt@board}>0}%
{\edef\board@temp@currankposition{%
\board@temp@currankposition
- \arabic{cnt@board}%
+ \number\value{cnt@board}%
\csname board@val@f\the\c@cnt@board@file r\the\c@cnt@board@rank @piecechar\endcsname}%
\setcounter{cnt@board}{0}}%
{\edef\board@temp@currankposition{%
@@ -706,7 +706,7 @@
{\value{cnt@board}>0}%
{\edef\board@temp@currankposition{%
\board@temp@currankposition
- \arabic{cnt@board}}}%
+ \number\value{cnt@board}}}%
{}}%
%% stores the fen in chessgame.<name> (as in skak.sty the \storegame command
@@ -1361,10 +1361,16 @@
\newcommand\board@skak@piececharlist{K,Q,R,B,N,P,k,q,r,b,n,p}%
\newcommand\board@skak@whitepiececharlist{K,Q,R,B,N,P}%
\newcommand\board@skak@blackpiececharlist{k,q,r,b,n,p}%
-
\AtBeginDocument{%
\@ifpackageloaded{skak}%
- {\def\board@skak@do@fencalculate{%
+ {%patch skak, see issue #1
+ \patchcmd\Fen@handleA{\arabic}{\number\value}{}{}%
+ \patchcmd\Fen@handleA{\arabic}{\number\value}{}{}%
+ \patchcmd\Fen@handleA{\thehelpgobble}{\c@helpgobble}{}{}%
+ \patchcmd\Fen@handleA{\thehelpgobble}{\c@helpgobble}{}{}%
+ \patchcmd\Fen@calculate{\arabic}{\number\value}{}{}%
+ \patchcmd\Fen@calculate{\arabic}{\number\value}{}{}%
+ \def\board@skak@do@fencalculate{%
\Fen@calculate
\let\board@val@fencalculate\temp@board}%
\def\board@skak@set@special@psmarkers#1#2{%
@@ -1372,8 +1378,8 @@
\setcounter{fileFrom}{\value{fileTo}}%
\setcounter{rankFrom}{\value{rankTo}}%
\get@translation#2%
- \rput(BM){\pnode(-\arabic{fileFrom},\arabic{rankFrom}){From}}%
- \rput(BM){\pnode(-\arabic{fileTo},\arabic{rankTo}){To}}}}%
+ \rput(BM){\pnode(-\number\value{fileFrom},\number\value{rankFrom}){From}}%
+ \rput(BM){\pnode(-\number\value{fileTo},\number\value{rankTo}){To}}}}%
{\def\board@skak@do@fencalculate{%
\def\board@val@fencalculate{8/8/8/8/8/8/8/8}}}}%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/chessboard.tlpobj new/tlpkg/tlpobj/chessboard.tlpobj
--- old/tlpkg/tlpobj/chessboard.tlpobj 2019-02-28 03:25:29.000000000 +0100
+++ new/tlpkg/tlpobj/chessboard.tlpobj 2019-06-27 01:54:21.000000000 +0200
@@ -1,6 +1,6 @@
name chessboard
category Package
-revision 33801
+revision 51469
shortdesc Print chess boards
relocated 1
longdesc This package offers commands to print chessboards. It can print
@@ -10,13 +10,16 @@
longdesc chess) is possible. The documentation includes an example of an
longdesc animated chessboard, for those whose PDF viewer can display
longdesc animations.
-runfiles size=48
+runfiles size=50
+ RELOC/tex/latex/chessboard/UF-chessboard-documentation.sty
RELOC/tex/latex/chessboard/chessboard-keys-main.sty
RELOC/tex/latex/chessboard/chessboard-keys-pgf.sty
RELOC/tex/latex/chessboard/chessboard-pgf.sty
RELOC/tex/latex/chessboard/chessboard.sty
+catalogue-contact-repository https://github.com/u-fischer/chessboard
+catalogue-contact-support https://github.com/u-fischer/chessboard/issues
catalogue-ctan /macros/latex/contrib/chessboard
-catalogue-date 2016-06-24 19:18:15 +0200
+catalogue-date 2019-06-24 05:47:40 +0200
catalogue-license lppl
catalogue-topics games
-catalogue-version 1.7
+catalogue-version 1.8
++++++ chivo.doc.tar.xz ++++++
Binary files old/doc/fonts/chivo/Chivo.pdf and new/doc/fonts/chivo/Chivo.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/chivo/OFL.txt new/doc/fonts/chivo/OFL.txt
--- old/doc/fonts/chivo/OFL.txt 2016-05-07 00:52:30.000000000 +0200
+++ new/doc/fonts/chivo/OFL.txt 2019-07-14 22:46:37.000000000 +0200
@@ -1,4 +1,4 @@
-Copyright (c) 2011-2015, Omnibus-Type (www.omnibus-type.com|omnibus.type@gmail.com).
+Copyright 2016 The Sansita Project Authors (omnibus.type@gmail.com)
This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/chivo/README.md new/doc/fonts/chivo/README.md
--- old/doc/fonts/chivo/README.md 2016-05-07 00:52:30.000000000 +0200
+++ new/doc/fonts/chivo/README.md 2019-07-21 00:27:00.000000000 +0200
@@ -1,14 +1,23 @@
# Chivo fonts for LaTeX #
This work provides the necessary files to use the Chivo fonts with
-LaTeX. Chivo is a set of eight fonts provided by Héctor Gatti &
-[Omnibus-Type](http://www.omnibus-type.com/fonts/chivo.php) Team under
+LaTeX. Chivo is a set of fourteen fonts provided by Héctor Gatti &
+[Omnibus-Type](https://www.omnibus-type.com/fonts/chivo/) Team under
the Open Font License [(OFL)](http://scripts.sil.org/OFL), version
-1.1. The fonts are copyright (c) 2011-2015, Omnibus-Type.
+1.1. The fonts are copyright (c) 2011-2019, Omnibus-Type.
The LaTeX package is released under the LaTeX Project Public License
[(LPPL)](http://www.latex-project.org/lppl.txt) v1.3c or later,
-copyright (c) 2016 Arash Esbati.
+copyright (c) 2016-2019 Arash Esbati.
+
+ v2.1, 2019/07/19
+ * Fix a bug in handling of alias keys
+
+ v2.0, 2019/07/07
+ * Add the `scaled' key
+ * Use NFSS scheme for fonts mapping
+ * Rewrite major part of the code supporting 14 fonts. Harmonize
+ the usage of package options over different TeX engines
v1.0, 2016/05/05
* Initial release
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/chivo.doc.tlpobj new/tlpkg/tlpobj/chivo.doc.tlpobj
--- old/tlpkg/tlpobj/chivo.doc.tlpobj 2019-02-28 03:25:31.000000000 +0100
+++ new/tlpkg/tlpobj/chivo.doc.tlpobj 2020-03-24 01:56:41.000000000 +0100
@@ -1,9 +1,9 @@
name chivo.doc
category Package
-revision 40931
+revision 54512
shortdesc doc files of chivo
relocated 1
-docfiles size=91
+docfiles size=150
RELOC/doc/fonts/chivo/Chivo.pdf
RELOC/doc/fonts/chivo/OFL.txt
RELOC/doc/fonts/chivo/README.md
++++++ chivo.tar.xz ++++++
++++ 11796 lines of diff (skipped)
++++++ chktex.doc.tar.xz ++++++
Binary files old/texmf-dist/doc/man/man1/chktex.man1.pdf and new/texmf-dist/doc/man/man1/chktex.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/chkweb.man1.pdf and new/texmf-dist/doc/man/man1/chkweb.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/deweb.man1.pdf and new/texmf-dist/doc/man/man1/deweb.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/chktex.doc.tlpobj new/tlpkg/tlpobj/chktex.doc.tlpobj
--- old/tlpkg/tlpobj/chktex.doc.tlpobj 2019-03-27 02:24:03.000000000 +0100
+++ new/tlpkg/tlpobj/chktex.doc.tlpobj 2019-11-19 01:55:39.000000000 +0100
@@ -1,6 +1,6 @@
name chktex.doc
category TLCore
-revision 50602
+revision 52851
shortdesc doc files of chktex
docfiles size=112
texmf-dist/doc/chktex/ChkTeX.pdf
++++++ chktex.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/chktex.tlpobj new/tlpkg/tlpobj/chktex.tlpobj
--- old/tlpkg/tlpobj/chktex.tlpobj 2019-03-27 02:24:03.000000000 +0100
+++ new/tlpkg/tlpobj/chktex.tlpobj 2019-11-19 01:55:39.000000000 +0100
@@ -1,6 +1,6 @@
name chktex
category TLCore
-revision 50602
+revision 52851
shortdesc Check for errors in LaTeX documents
longdesc The program reports typographic and other errors in LaTeX
longdesc documents. Filters are also provided for checking the LaTeX
++++++ chs-physics-report.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/chs-physics-report.doc.tlpobj new/tlpkg/tlpobj/chs-physics-report.doc.tlpobj
--- old/tlpkg/tlpobj/chs-physics-report.doc.tlpobj 2019-02-28 03:25:35.000000000 +0100
+++ new/tlpkg/tlpobj/chs-physics-report.doc.tlpobj 2020-03-24 01:56:44.000000000 +0100
@@ -1,6 +1,6 @@
name chs-physics-report.doc
category Package
-revision 48549
+revision 54512
shortdesc doc files of chs-physics-report
relocated 1
docfiles size=56
++++++ chs-physics-report.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/chs-physics-report.tlpobj new/tlpkg/tlpobj/chs-physics-report.tlpobj
--- old/tlpkg/tlpobj/chs-physics-report.tlpobj 2019-02-28 03:25:36.000000000 +0100
+++ new/tlpkg/tlpobj/chs-physics-report.tlpobj 2020-03-24 01:56:44.000000000 +0100
@@ -1,6 +1,6 @@
name chs-physics-report
category Package
-revision 48549
+revision 54512
shortdesc Physics lab reports for Carmel High School
relocated 1
longdesc This package may optionally be used by students at Carmel High
@@ -15,6 +15,5 @@
runfiles size=2
RELOC/tex/latex/chs-physics-report/chs-physics-report.sty
catalogue-ctan /macros/latex/contrib/chs-physics-report
-catalogue-date 2018-09-06 05:15:28 +0200
-catalogue-license pdcc-by-sa-3
+catalogue-license pd cc-by-sa-3
catalogue-topics physics report-like
++++++ cinzel.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/cinzel/README new/doc/fonts/cinzel/README
--- old/doc/fonts/cinzel/README 2014-06-25 17:18:47.000000000 +0200
+++ new/doc/fonts/cinzel/README 2019-10-15 23:49:22.000000000 +0200
@@ -1,4 +1,4 @@
-This is the README for the cinzel package, version 2014-05-24.
+This is the README for the cinzel package, version 2019-10-15.
This package provides LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX support
for the Cinzel and Cinzel Decorative families of fonts, designed
@@ -24,12 +24,24 @@
\usepackage{cinzel}
-to the preamble of your document. This will activate Cinzel as the
-main (serifed) text font and Cinzel Decorative as the "italic"
-variants.
+to the preamble of your document. This will define
-The black option selects the Black variants as the default bold
-series.
+\cinzel and \textcinzel{...}
+
+and
+
+\cinzelblack and \textcinzelblack{...}
+
+for localized use of Cinzel and the black series,
+respectively. Cinzel Decorative is treated as the italic
+shape.
+
+To activate Cinzel as the main (serifed) text font and
+Cinzel Decorative as the "italic" variants, use the
+"default" option.
+
+The "black" option selects the Black variants as the default
+bold series.
LuaLaTeX and xeLaTeX users who might prefer type1 fonts or who wish
to avoid fontspec may use the type1 option.
@@ -38,10 +50,6 @@
Font encodings supported are OT1, T1, LY1 and TS1.
-Command \cinzel allows for localized use of Cinzel (and Cinzel
-Decorative). Command \cinzelblack allows for localized use of the
-Black series.
-
The truetype fonts were downloaded from
http://www.google.com/webfonts and are licensed under the SIL Open
Font License, (version 1.1); the text may be found in the doc
Binary files old/doc/fonts/cinzel/cinzel-samples.pdf and new/doc/fonts/cinzel/cinzel-samples.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/cinzel/cinzel-samples.tex new/doc/fonts/cinzel/cinzel-samples.tex
--- old/doc/fonts/cinzel/cinzel-samples.tex 2014-06-25 17:18:47.000000000 +0200
+++ new/doc/fonts/cinzel/cinzel-samples.tex 2019-05-12 22:16:41.000000000 +0200
@@ -1,12 +1,12 @@
\documentclass[12pt]{article}
\usepackage[T1]{fontenc}
-\usepackage{cinzel}
+\usepackage[default]{cinzel}
\usepackage{lipsum}
\begin{document}
\thispagestyle{empty}
-\begin{center}\LARGE\bfseries\itshape
-Cinzel and Cinzel Decorative
+\begin{center}\LARGE\bfseries
+\cinzel Cinzel and \Large\itshape Cinzel Decorative
\end{center}
\sloppy
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cinzel.doc.tlpobj new/tlpkg/tlpobj/cinzel.doc.tlpobj
--- old/tlpkg/tlpobj/cinzel.doc.tlpobj 2019-02-28 03:25:36.000000000 +0100
+++ new/tlpkg/tlpobj/cinzel.doc.tlpobj 2020-03-24 01:56:44.000000000 +0100
@@ -1,9 +1,9 @@
name cinzel.doc
category Package
-revision 34408
+revision 54512
shortdesc doc files of cinzel
relocated 1
-docfiles size=12
+docfiles size=13
RELOC/doc/fonts/cinzel/README
RELOC/doc/fonts/cinzel/SIL_Open_Font_License.txt
RELOC/doc/fonts/cinzel/cinzel-samples.pdf
++++++ cinzel.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fonts/enc/dvips/cinzel/cnzl_7luz43.enc new/fonts/enc/dvips/cinzel/cnzl_7luz43.enc
--- old/fonts/enc/dvips/cinzel/cnzl_7luz43.enc 2014-06-25 17:18:47.000000000 +0200
+++ new/fonts/enc/dvips/cinzel/cnzl_7luz43.enc 2019-10-15 23:49:22.000000000 +0200
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_7luz434ypt3pnlnjm2v7veregd
-% Encoding created by otftotfm on Sat May 24 08:57:58 2014
+% Encoding created by otftotfm on Tue Oct 15 12:03:15 2019
% Command line follows encoding
/AutoEnc_7luz434ypt3pnlnjm2v7veregd [
%00
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fonts/enc/dvips/cinzel/cnzl_7t2zcj.enc new/fonts/enc/dvips/cinzel/cnzl_7t2zcj.enc
--- old/fonts/enc/dvips/cinzel/cnzl_7t2zcj.enc 2014-06-25 17:18:47.000000000 +0200
+++ new/fonts/enc/dvips/cinzel/cnzl_7t2zcj.enc 2019-10-15 23:49:22.000000000 +0200
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_7t2zcj7avoq2hw5wmb7d3cuoug
-% Encoding created by otftotfm on Sat May 24 08:57:58 2014
+% Encoding created by otftotfm on Tue Oct 15 12:03:15 2019
% Command line follows encoding
/AutoEnc_7t2zcj7avoq2hw5wmb7d3cuoug [
%00
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fonts/enc/dvips/cinzel/cnzl_aakhvz.enc new/fonts/enc/dvips/cinzel/cnzl_aakhvz.enc
--- old/fonts/enc/dvips/cinzel/cnzl_aakhvz.enc 2014-06-25 17:18:47.000000000 +0200
+++ new/fonts/enc/dvips/cinzel/cnzl_aakhvz.enc 2019-10-15 23:49:22.000000000 +0200
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_aakhvzp3cpj6fyj77cfsufw3ga
-% Encoding created by otftotfm on Sat May 24 08:57:59 2014
+% Encoding created by otftotfm on Tue Oct 15 12:03:15 2019
% Command line follows encoding
/AutoEnc_aakhvzp3cpj6fyj77cfsufw3ga [
%00
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fonts/enc/dvips/cinzel/cnzl_k6z3ge.enc new/fonts/enc/dvips/cinzel/cnzl_k6z3ge.enc
--- old/fonts/enc/dvips/cinzel/cnzl_k6z3ge.enc 2014-06-25 17:18:47.000000000 +0200
+++ new/fonts/enc/dvips/cinzel/cnzl_k6z3ge.enc 2019-10-15 23:49:22.000000000 +0200
@@ -1,7 +1,7 @@
% THIS FILE WAS AUTOMATICALLY GENERATED -- DO NOT EDIT
%%AutoEnc_k6z3gecwro7ayfjhhk2i7i2wgc
-% Encoding created by otftotfm on Sat May 24 08:57:58 2014
+% Encoding created by otftotfm on Tue Oct 15 12:03:15 2019
% Command line follows encoding
/AutoEnc_k6z3gecwro7ayfjhhk2i7i2wgc [
%00
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/fonts/map/dvips/cinzel/cinzel.map new/fonts/map/dvips/cinzel/cinzel.map
--- old/fonts/map/dvips/cinzel/cinzel.map 2014-06-25 17:18:47.000000000 +0200
+++ new/fonts/map/dvips/cinzel/cinzel.map 2019-10-15 23:49:22.000000000 +0200
@@ -1,5 +1,4 @@
-% Automatically maintained by otftotfm or other programs. Do not edit.
Cinzel-Black-lf-ot1 Cinzel-Black "AutoEnc_k6z3gecwro7ayfjhhk2i7i2wgc ReEncodeFont" <[cnzl_k6z3ge.enc \Cinzel@@scale Cinzel-Regular-lf-ly1
+}{}
+
+
+% ---- black ----
+
+\DeclareFontShape{LY1}{Cinzel-LF}{black}{n}{
<-> \Cinzel@@scale Cinzel-Black-lf-ly1
}{}
-\DeclareFontShape{LY1}{Cinzel-LF}{b}{n}{
+
+% ---- bold ----
+
+\DeclareFontShape{LY1}{Cinzel-LF}{bold}{n}{
<-> \Cinzel@@scale Cinzel-Bold-lf-ly1
}{}
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
\DeclareFontShape{LY1}{Cinzel-LF}{m}{n}{
- <-> \Cinzel@@scale Cinzel-Regular-lf-ly1
+ <-> ssub * Cinzel-LF/regular/n
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LY1}{Cinzel-LF}{b}{n}{
+ <-> ssub * Cinzel-LF/bold/n
+}{}
+
+
+% eb --> black
+
+\DeclareFontShape{LY1}{Cinzel-LF}{eb}{n}{
+ <-> ssub * Cinzel-LF/black/n
}{}
\DeclareFontShape{LY1}{Cinzel-LF}{bx}{n}{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/cinzel/LY1CinzelDecorative-LF.fd new/tex/latex/cinzel/LY1CinzelDecorative-LF.fd
--- old/tex/latex/cinzel/LY1CinzelDecorative-LF.fd 2014-06-25 17:18:47.000000000 +0200
+++ new/tex/latex/cinzel/LY1CinzelDecorative-LF.fd 2019-10-15 23:49:22.000000000 +0200
@@ -1,7 +1,7 @@
-%% Generated by autoinst on 2014/05/24
+%% Generated by autoinst on 2019/10/15
%%
\ProvidesFile{LY1CinzelDecorative-LF.fd}
- [2014/05/24 (autoinst) Font definitions for LY1/CinzelDecorative-LF.]
+ [2019/10/15 (autoinst) Font definitions for LY1/CinzelDecorative-LF.]
\expandafter\ifx\csname CinzelDecorative@scale\endcsname\relax
\let\CinzelDecorative@@scale\@empty
@@ -11,16 +11,49 @@
\DeclareFontFamily{LY1}{CinzelDecorative-LF}{}
-\DeclareFontShape{LY1}{CinzelDecorative-LF}{k}{n}{
+
+% ---- regular ----
+
+\DeclareFontShape{LY1}{CinzelDecorative-LF}{regular}{n}{
+ <-> \CinzelDecorative@@scale CinzelDecorative-Regular-lf-ly1
+}{}
+
+
+% ---- black ----
+
+\DeclareFontShape{LY1}{CinzelDecorative-LF}{black}{n}{
<-> \CinzelDecorative@@scale CinzelDecorative-Black-lf-ly1
}{}
-\DeclareFontShape{LY1}{CinzelDecorative-LF}{b}{n}{
+
+% ---- bold ----
+
+\DeclareFontShape{LY1}{CinzelDecorative-LF}{bold}{n}{
<-> \CinzelDecorative@@scale CinzelDecorative-Bold-lf-ly1
}{}
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
\DeclareFontShape{LY1}{CinzelDecorative-LF}{m}{n}{
- <-> \CinzelDecorative@@scale CinzelDecorative-Regular-lf-ly1
+ <-> ssub * CinzelDecorative-LF/regular/n
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{LY1}{CinzelDecorative-LF}{b}{n}{
+ <-> ssub * CinzelDecorative-LF/bold/n
+}{}
+
+
+% eb --> black
+
+\DeclareFontShape{LY1}{CinzelDecorative-LF}{eb}{n}{
+ <-> ssub * CinzelDecorative-LF/black/n
}{}
\DeclareFontShape{LY1}{CinzelDecorative-LF}{bx}{n}{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/cinzel/OT1Cinzel-LF.fd new/tex/latex/cinzel/OT1Cinzel-LF.fd
--- old/tex/latex/cinzel/OT1Cinzel-LF.fd 2014-06-25 17:18:47.000000000 +0200
+++ new/tex/latex/cinzel/OT1Cinzel-LF.fd 2019-10-15 23:49:22.000000000 +0200
@@ -1,7 +1,7 @@
-%% Generated by autoinst on 2014/05/24
+%% Generated by autoinst on 2019/10/15
%%
\ProvidesFile{OT1Cinzel-LF.fd}
- [2014/05/24 (autoinst) Font definitions for OT1/Cinzel-LF.]
+ [2019/10/15 (autoinst) Font definitions for OT1/Cinzel-LF.]
\expandafter\ifx\csname Cinzel@scale\endcsname\relax
\let\Cinzel@@scale\@empty
@@ -11,16 +11,49 @@
\DeclareFontFamily{OT1}{Cinzel-LF}{}
-\DeclareFontShape{OT1}{Cinzel-LF}{k}{n}{
+
+% ---- regular ----
+
+\DeclareFontShape{OT1}{Cinzel-LF}{regular}{n}{
+ <-> \Cinzel@@scale Cinzel-Regular-lf-ot1
+}{}
+
+
+% ---- black ----
+
+\DeclareFontShape{OT1}{Cinzel-LF}{black}{n}{
<-> \Cinzel@@scale Cinzel-Black-lf-ot1
}{}
-\DeclareFontShape{OT1}{Cinzel-LF}{b}{n}{
+
+% ---- bold ----
+
+\DeclareFontShape{OT1}{Cinzel-LF}{bold}{n}{
<-> \Cinzel@@scale Cinzel-Bold-lf-ot1
}{}
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
\DeclareFontShape{OT1}{Cinzel-LF}{m}{n}{
- <-> \Cinzel@@scale Cinzel-Regular-lf-ot1
+ <-> ssub * Cinzel-LF/regular/n
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{OT1}{Cinzel-LF}{b}{n}{
+ <-> ssub * Cinzel-LF/bold/n
+}{}
+
+
+% eb --> black
+
+\DeclareFontShape{OT1}{Cinzel-LF}{eb}{n}{
+ <-> ssub * Cinzel-LF/black/n
}{}
\DeclareFontShape{OT1}{Cinzel-LF}{bx}{n}{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/cinzel/OT1CinzelDecorative-LF.fd new/tex/latex/cinzel/OT1CinzelDecorative-LF.fd
--- old/tex/latex/cinzel/OT1CinzelDecorative-LF.fd 2014-06-25 17:18:47.000000000 +0200
+++ new/tex/latex/cinzel/OT1CinzelDecorative-LF.fd 2019-10-15 23:49:22.000000000 +0200
@@ -1,7 +1,7 @@
-%% Generated by autoinst on 2014/05/24
+%% Generated by autoinst on 2019/10/15
%%
\ProvidesFile{OT1CinzelDecorative-LF.fd}
- [2014/05/24 (autoinst) Font definitions for OT1/CinzelDecorative-LF.]
+ [2019/10/15 (autoinst) Font definitions for OT1/CinzelDecorative-LF.]
\expandafter\ifx\csname CinzelDecorative@scale\endcsname\relax
\let\CinzelDecorative@@scale\@empty
@@ -11,16 +11,49 @@
\DeclareFontFamily{OT1}{CinzelDecorative-LF}{}
-\DeclareFontShape{OT1}{CinzelDecorative-LF}{k}{n}{
+
+% ---- regular ----
+
+\DeclareFontShape{OT1}{CinzelDecorative-LF}{regular}{n}{
+ <-> \CinzelDecorative@@scale CinzelDecorative-Regular-lf-ot1
+}{}
+
+
+% ---- black ----
+
+\DeclareFontShape{OT1}{CinzelDecorative-LF}{black}{n}{
<-> \CinzelDecorative@@scale CinzelDecorative-Black-lf-ot1
}{}
-\DeclareFontShape{OT1}{CinzelDecorative-LF}{b}{n}{
+
+% ---- bold ----
+
+\DeclareFontShape{OT1}{CinzelDecorative-LF}{bold}{n}{
<-> \CinzelDecorative@@scale CinzelDecorative-Bold-lf-ot1
}{}
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
\DeclareFontShape{OT1}{CinzelDecorative-LF}{m}{n}{
- <-> \CinzelDecorative@@scale CinzelDecorative-Regular-lf-ot1
+ <-> ssub * CinzelDecorative-LF/regular/n
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{OT1}{CinzelDecorative-LF}{b}{n}{
+ <-> ssub * CinzelDecorative-LF/bold/n
+}{}
+
+
+% eb --> black
+
+\DeclareFontShape{OT1}{CinzelDecorative-LF}{eb}{n}{
+ <-> ssub * CinzelDecorative-LF/black/n
}{}
\DeclareFontShape{OT1}{CinzelDecorative-LF}{bx}{n}{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/cinzel/T1Cinzel-LF.fd new/tex/latex/cinzel/T1Cinzel-LF.fd
--- old/tex/latex/cinzel/T1Cinzel-LF.fd 2014-06-25 17:18:47.000000000 +0200
+++ new/tex/latex/cinzel/T1Cinzel-LF.fd 2019-10-15 23:49:22.000000000 +0200
@@ -1,7 +1,7 @@
-%% Generated by autoinst on 2014/05/24
+%% Generated by autoinst on 2019/10/15
%%
\ProvidesFile{T1Cinzel-LF.fd}
- [2014/05/24 (autoinst) Font definitions for T1/Cinzel-LF.]
+ [2019/10/15 (autoinst) Font definitions for T1/Cinzel-LF.]
\expandafter\ifx\csname Cinzel@scale\endcsname\relax
\let\Cinzel@@scale\@empty
@@ -11,16 +11,49 @@
\DeclareFontFamily{T1}{Cinzel-LF}{}
-\DeclareFontShape{T1}{Cinzel-LF}{k}{n}{
+
+% ---- regular ----
+
+\DeclareFontShape{T1}{Cinzel-LF}{regular}{n}{
+ <-> \Cinzel@@scale Cinzel-Regular-lf-t1
+}{}
+
+
+% ---- black ----
+
+\DeclareFontShape{T1}{Cinzel-LF}{black}{n}{
<-> \Cinzel@@scale Cinzel-Black-lf-t1
}{}
-\DeclareFontShape{T1}{Cinzel-LF}{b}{n}{
+
+% ---- bold ----
+
+\DeclareFontShape{T1}{Cinzel-LF}{bold}{n}{
<-> \Cinzel@@scale Cinzel-Bold-lf-t1
}{}
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
\DeclareFontShape{T1}{Cinzel-LF}{m}{n}{
- <-> \Cinzel@@scale Cinzel-Regular-lf-t1
+ <-> ssub * Cinzel-LF/regular/n
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{T1}{Cinzel-LF}{b}{n}{
+ <-> ssub * Cinzel-LF/bold/n
+}{}
+
+
+% eb --> black
+
+\DeclareFontShape{T1}{Cinzel-LF}{eb}{n}{
+ <-> ssub * Cinzel-LF/black/n
}{}
\DeclareFontShape{T1}{Cinzel-LF}{bx}{n}{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/cinzel/T1CinzelDecorative-LF.fd new/tex/latex/cinzel/T1CinzelDecorative-LF.fd
--- old/tex/latex/cinzel/T1CinzelDecorative-LF.fd 2014-06-25 17:18:47.000000000 +0200
+++ new/tex/latex/cinzel/T1CinzelDecorative-LF.fd 2019-10-15 23:49:22.000000000 +0200
@@ -1,7 +1,7 @@
-%% Generated by autoinst on 2014/05/24
+%% Generated by autoinst on 2019/10/15
%%
\ProvidesFile{T1CinzelDecorative-LF.fd}
- [2014/05/24 (autoinst) Font definitions for T1/CinzelDecorative-LF.]
+ [2019/10/15 (autoinst) Font definitions for T1/CinzelDecorative-LF.]
\expandafter\ifx\csname CinzelDecorative@scale\endcsname\relax
\let\CinzelDecorative@@scale\@empty
@@ -11,16 +11,49 @@
\DeclareFontFamily{T1}{CinzelDecorative-LF}{}
-\DeclareFontShape{T1}{CinzelDecorative-LF}{k}{n}{
+
+% ---- regular ----
+
+\DeclareFontShape{T1}{CinzelDecorative-LF}{regular}{n}{
+ <-> \CinzelDecorative@@scale CinzelDecorative-Regular-lf-t1
+}{}
+
+
+% ---- black ----
+
+\DeclareFontShape{T1}{CinzelDecorative-LF}{black}{n}{
<-> \CinzelDecorative@@scale CinzelDecorative-Black-lf-t1
}{}
-\DeclareFontShape{T1}{CinzelDecorative-LF}{b}{n}{
+
+% ---- bold ----
+
+\DeclareFontShape{T1}{CinzelDecorative-LF}{bold}{n}{
<-> \CinzelDecorative@@scale CinzelDecorative-Bold-lf-t1
}{}
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
\DeclareFontShape{T1}{CinzelDecorative-LF}{m}{n}{
- <-> \CinzelDecorative@@scale CinzelDecorative-Regular-lf-t1
+ <-> ssub * CinzelDecorative-LF/regular/n
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{T1}{CinzelDecorative-LF}{b}{n}{
+ <-> ssub * CinzelDecorative-LF/bold/n
+}{}
+
+
+% eb --> black
+
+\DeclareFontShape{T1}{CinzelDecorative-LF}{eb}{n}{
+ <-> ssub * CinzelDecorative-LF/black/n
}{}
\DeclareFontShape{T1}{CinzelDecorative-LF}{bx}{n}{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/cinzel/TS1Cinzel-LF.fd new/tex/latex/cinzel/TS1Cinzel-LF.fd
--- old/tex/latex/cinzel/TS1Cinzel-LF.fd 2014-06-25 17:18:47.000000000 +0200
+++ new/tex/latex/cinzel/TS1Cinzel-LF.fd 2019-10-15 23:49:22.000000000 +0200
@@ -1,7 +1,7 @@
-%% Generated by autoinst on 2014/05/24
+%% Generated by autoinst on 2019/10/15
%%
\ProvidesFile{TS1Cinzel-LF.fd}
- [2014/05/24 (autoinst) Font definitions for TS1/Cinzel-LF.]
+ [2019/10/15 (autoinst) Font definitions for TS1/Cinzel-LF.]
\expandafter\ifx\csname Cinzel@scale\endcsname\relax
\let\Cinzel@@scale\@empty
@@ -11,16 +11,49 @@
\DeclareFontFamily{TS1}{Cinzel-LF}{}
-\DeclareFontShape{TS1}{Cinzel-LF}{k}{n}{
+
+% ---- regular ----
+
+\DeclareFontShape{TS1}{Cinzel-LF}{regular}{n}{
+ <-> \Cinzel@@scale Cinzel-Regular-lf-ts1
+}{}
+
+
+% ---- black ----
+
+\DeclareFontShape{TS1}{Cinzel-LF}{black}{n}{
<-> \Cinzel@@scale Cinzel-Black-lf-ts1
}{}
-\DeclareFontShape{TS1}{Cinzel-LF}{b}{n}{
+
+% ---- bold ----
+
+\DeclareFontShape{TS1}{Cinzel-LF}{bold}{n}{
<-> \Cinzel@@scale Cinzel-Bold-lf-ts1
}{}
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
\DeclareFontShape{TS1}{Cinzel-LF}{m}{n}{
- <-> \Cinzel@@scale Cinzel-Regular-lf-ts1
+ <-> ssub * Cinzel-LF/regular/n
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{TS1}{Cinzel-LF}{b}{n}{
+ <-> ssub * Cinzel-LF/bold/n
+}{}
+
+
+% eb --> black
+
+\DeclareFontShape{TS1}{Cinzel-LF}{eb}{n}{
+ <-> ssub * Cinzel-LF/black/n
}{}
\DeclareFontShape{TS1}{Cinzel-LF}{bx}{n}{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/cinzel/TS1CinzelDecorative-LF.fd new/tex/latex/cinzel/TS1CinzelDecorative-LF.fd
--- old/tex/latex/cinzel/TS1CinzelDecorative-LF.fd 2014-06-25 17:18:47.000000000 +0200
+++ new/tex/latex/cinzel/TS1CinzelDecorative-LF.fd 2019-10-15 23:49:22.000000000 +0200
@@ -1,7 +1,7 @@
-%% Generated by autoinst on 2014/05/24
+%% Generated by autoinst on 2019/10/15
%%
\ProvidesFile{TS1CinzelDecorative-LF.fd}
- [2014/05/24 (autoinst) Font definitions for TS1/CinzelDecorative-LF.]
+ [2019/10/15 (autoinst) Font definitions for TS1/CinzelDecorative-LF.]
\expandafter\ifx\csname CinzelDecorative@scale\endcsname\relax
\let\CinzelDecorative@@scale\@empty
@@ -11,16 +11,49 @@
\DeclareFontFamily{TS1}{CinzelDecorative-LF}{}
-\DeclareFontShape{TS1}{CinzelDecorative-LF}{k}{n}{
+
+% ---- regular ----
+
+\DeclareFontShape{TS1}{CinzelDecorative-LF}{regular}{n}{
+ <-> \CinzelDecorative@@scale CinzelDecorative-Regular-lf-ts1
+}{}
+
+
+% ---- black ----
+
+\DeclareFontShape{TS1}{CinzelDecorative-LF}{black}{n}{
<-> \CinzelDecorative@@scale CinzelDecorative-Black-lf-ts1
}{}
-\DeclareFontShape{TS1}{CinzelDecorative-LF}{b}{n}{
+
+% ---- bold ----
+
+\DeclareFontShape{TS1}{CinzelDecorative-LF}{bold}{n}{
<-> \CinzelDecorative@@scale CinzelDecorative-Bold-lf-ts1
}{}
+%
+% Extra 'ssub' rules to map the standard NFSS codes to our fancy names
+%
+
+% m --> regular
+
\DeclareFontShape{TS1}{CinzelDecorative-LF}{m}{n}{
- <-> \CinzelDecorative@@scale CinzelDecorative-Regular-lf-ts1
+ <-> ssub * CinzelDecorative-LF/regular/n
+}{}
+
+
+% b --> bold
+
+\DeclareFontShape{TS1}{CinzelDecorative-LF}{b}{n}{
+ <-> ssub * CinzelDecorative-LF/bold/n
+}{}
+
+
+% eb --> black
+
+\DeclareFontShape{TS1}{CinzelDecorative-LF}{eb}{n}{
+ <-> ssub * CinzelDecorative-LF/black/n
}{}
\DeclareFontShape{TS1}{CinzelDecorative-LF}{bx}{n}{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/cinzel/cinzel.sty new/tex/latex/cinzel/cinzel.sty
--- old/tex/latex/cinzel/cinzel.sty 2014-06-25 17:18:47.000000000 +0200
+++ new/tex/latex/cinzel/cinzel.sty 2019-10-15 23:49:22.000000000 +0200
@@ -1,6 +1,6 @@
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{cinzel}
- [2014/05/24 (Bob Tennent) Supports Cinzel and CinzelDecorative for all LaTeX engines.]
+ [2019/10/15 (Bob Tennent) Supports Cinzel and CinzelDecorative for all LaTeX engines.]
\RequirePackage{ifxetex,ifluatex,xkeyval,textcomp}
@@ -14,9 +14,11 @@
\fi\fi
\newif\ifcinzel@black \cinzel@blackfalse
+\newif\ifcinzel@default \cinzel@defaultfalse
\DeclareOptionX{type1}{\cinzel@ttffalse}
\DeclareOptionX{black}{\cinzel@blacktrue}
+\DeclareOptionX{default}{\cinzel@defaulttrue}
\ProcessOptionsX\relax
\ifcinzel@ttf
@@ -25,7 +27,7 @@
\else % type1
\def\bfseries@rm{b}
- \ifcinzel@black\def\bfseries@rm{k}\fi
+ \ifcinzel@black\def\bfseries@rm{eb}\fi
\fi
@@ -41,12 +43,14 @@
\defaultfontfeatures{
Ligatures = TeX ,
Extension = .ttf }
- \setmainfont
+ \ifcinzel@default
+ \setmainfont
[ UprightFont = *-Regular ,
ItalicFont = *Decorative-Regular ,
BoldFont = *-\cinzel@boldstyle ,
BoldItalicFont = *Decorative-\cinzel@boldstyle ]
{Cinzel}
+ \fi
\newfontfamily\cinzel
[ UprightFont = *-Regular ,
ItalicFont = *Decorative-Regular ,
@@ -60,13 +64,24 @@
\else % type1
\def\cinzelfamily{Cinzel-LF}
- \newcommand*\cinzel{\fontfamily{\cinzelfamily}\def\itshape{\fontfamily{CinzelDecorative-LF}\fontshape{n}\selectfont}\selectfont}
- \def\rmdefault{\cinzelfamily}
- \def\itshape{\fontfamily{CinzelDecorative-LF}\fontshape{n}\selectfont}
- \newcommand*\cinzelblack{\fontfamily{\cinzelfamily}\fontseries{k}\def\itshape{\fontfamily{CinzelDecorative-LF}\fontshape{n}\selectfont}\selectfont}
+ \newcommand*\cinzel{%
+ \fontfamily{\cinzelfamily}\selectfont
+ \def\itshape{\ifx\f@family\cinzelfamily\fontfamily{CinzelDecorative-LF}\fontshape{n}\else\fontshape{\itdefault}\fi\selectfont}
+ }
+ \ifcinzel@default
+ \def\rmdefault{\cinzelfamily}
+ \def\itshape{\ifx\f@family\cinzelfamily\fontfamily{CinzelDecorative-LF}\fontshape{n}\else\fontshape{\itdefault}\fi\selectfont}
+ \fi
+ \newcommand*\cinzelblack{%
+ \fontfamily{\cinzelfamily}\fontseries{eb}\selectfont
+ \def\itshape{\ifx\f@family\cinzelfamily\fontfamily{CinzelDecorative-LF}\fontseries{eb}\else\fontshape{\itdefault}\fi\selectfont}
+ }
\fi
+\DeclareTextFontCommand{\textcinzel}{\cinzel}
+\DeclareTextFontCommand{\textcinzelblack}{\cinzelblack}
+
\ifcinzel@ttf
% turn off defaults in case other fonts are selected:
\defaultfontfeatures{}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cinzel.tlpobj new/tlpkg/tlpobj/cinzel.tlpobj
--- old/tlpkg/tlpobj/cinzel.tlpobj 2019-02-28 03:25:36.000000000 +0100
+++ new/tlpkg/tlpobj/cinzel.tlpobj 2020-03-24 01:56:44.000000000 +0100
@@ -1,6 +1,6 @@
name cinzel
category Package
-revision 34408
+revision 54512
shortdesc LaTeX support for Cinzel and Cinzel Decorative fonts
relocated 1
longdesc Cinzel and Cinzel Decorative fonts, designed by Natanael Gama
@@ -101,6 +101,5 @@
RELOC/tex/latex/cinzel/cinzel.sty
catalogue-contact-home http://ndiscovered.com
catalogue-ctan /fonts/cinzel
-catalogue-date 2018-01-03 05:10:13 +0100
-catalogue-license ofl
-catalogue-topics font font-decor font-type1 font-ttf
+catalogue-license ofl lppl
+catalogue-topics font font-decor font-type1 font-ttf font-supp font-t1enc
++++++ circuitikz.doc.tar.xz ++++++
++++ 8541 lines of diff (skipped)
++++++ circuitikz.tar.xz ++++++
++++ 192707 lines of diff (skipped)
++++++ cjk-gs-integrate.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/fonts/cjk-gs-integrate/ChangeLog new/texmf-dist/doc/fonts/cjk-gs-integrate/ChangeLog
--- old/texmf-dist/doc/fonts/cjk-gs-integrate/ChangeLog 2019-03-03 23:13:02.000000000 +0100
+++ new/texmf-dist/doc/fonts/cjk-gs-integrate/ChangeLog 2020-03-07 22:39:27.000000000 +0100
@@ -1,10 +1,186 @@
+2020-03-07 Hironobu Yamashita
+
+ * Release 20200307.0 (HEAD -> master) [57531f5]
+
+2020-03-07 Hironobu Yamashita
+
+ * cjk-gs-integrate-macos.pl: support Catalina (at least nothing is wrong) (origin/master, origin/HEAD) [d43852e]
+
+2020-03-07 Hironobu Yamashita
+
+ * don't check PSName even in --strict-psname mode if false e.g. STKaiti-Adobe-CNS1 has intentionally wrong PSName in database. [be79554]
+
+2020-03-07 Hironobu Yamashita
+
+ * fix database for MalgunGothic (#28) [bccb1a5]
+
+2020-03-07 Hironobu Yamashita
+
+ * comment [8f64741]
+
+2020-03-07 Hironobu Yamashita
+
+ * improve hidden debug option --strict-psname [c037fe3]
+
+2020-03-07 Hironobu Yamashita
+
+ * typo in warning [53d0a58]
+
+2020-03-07 Hironobu Yamashita
+
+ * don't add symlinking AI0 CMaps when real fonts are unavailable [5ce4c52]
+
+2020-03-07 Masamichi Hosoda
+
+ * Add search_cmap (trueroad/add-kpsewhich-cmap-cache) [b0b0b09]
+
+2020-03-07 Hironobu Yamashita
+
+ * 'CMap:' entry is unsupported for class other than AI0 (trueroad/master) [f499f39]
+
+2020-03-05 Masamichi Hosoda
+
+ * Add warning when AI0 is specified for non-OTF (trueroad/add-ai0-cmap) [0d8bceb]
+
+2020-03-05 Masamichi Hosoda
+
+ * Add AI0 font alias handling [37a8f77]
+
+2020-03-03 Masamichi Hosoda
+
+ * Add CMap parameters to the database for sourcehan [adac7e5]
+
+2020-03-03 Masamichi Hosoda
+
+ * Change the class of AI0 fonts to AI0 in the database [9a47a63]
+
+2020-03-03 Masamichi Hosoda
+
+ * Add database class AI0 and parameter CMap for AI0 fonts [96b7811]
+
+2020-03-05 Hironobu Yamashita
+
+ * HaranoAji -> J70 [e29c9a2]
+
+2020-03-05 Hironobu Yamashita
+
+ * Merge remote-tracking branch 'trueroad/add-haranoaji-alias' [7c68c9e]
+
+2020-03-05 Hironobu Yamashita
+
+ * reduce kpsewhich call [c8f9877]
+
+2020-03-04 Masamichi Hosoda
+
+ * Add removing CMap files when `--remove` option (trueroad/add-symlinking-cmaps) [534e4de]
+
+2020-03-04 Masamichi Hosoda
+
+ * Add symlinking CMap files used by created snippets [a354a37]
+
+2020-03-03 Masamichi Hosoda
+
+ * Add haranoaji for aliases (trueroad/add-haranoaji-alias) [78a8a63]
+
+2020-01-15 Hironobu Yamashita
+
+ * more info on debug message [9bf9f64]
+
+2020-01-15 Hironobu Yamashita
+
+ * Release 20200115.0 (tag: 20200115.0) [2eba287]
+
+2020-01-15 Hironobu Yamashita
+
+ * copyright year [ec0590e]
+
+2020-01-14 Hironobu Yamashita
+
+ * fix for incompatible change in msgothic.ttc index [14485c6]
+
+2019-11-09 Hironobu Yamashita
+
+ * add haranoaji database (see texjporg/jfontmaps#23) [091e829]
+
+2019-10-11 Hironobu Yamashita
+
+ * prioritize database/ dir in current [ed62e0e]
+
+2019-10-11 Hironobu Yamashita
+
+ * cjk-gs-integrate.pl: support macOS 10.15 Catalina font path (wip) [d870a3f]
+
+2019-09-05 Hironobu Yamashita
+
+ * YuMincho-DemiBold -> YuMincho-Demibold [e819473]
+
+2019-09-04 Hironobu Yamashita
+
+ * Makefile: also install zrlistttc.lua [c03fe55]
+
+2019-09-04 Hironobu Yamashita
+
+ * cjkgs-microsoft.dat: fix typo of HGPMinchoE [6e2de8c]
+
+2019-09-04 Hironobu Yamashita
+
+ * code cleanup [840be09]
+
+2019-09-04 Hironobu Yamashita
+
+ * use local zrlistttc.lua [3216bf6]
+
+2019-09-04 Hironobu Yamashita
+
+ * zrlistttc.lua: licensed under MIT license [b4f072c]
+
+2019-09-04 Hironobu Yamashita
+
+ * zrlistttc.lua: add -i option, support macOS-TrueType (v0.4) [bda3126]
+
+2019-09-04 Takayuki YATO
+
+ * First public version of zrlistttc.lua (v0.2) [6bd8986]
+
+2019-09-01 Hironobu Yamashita
+
+ * use zrlistttc.lua for checking PSName (preliminary) [789ba5b]
+
+2019-08-16 Hironobu Yamashita
+
+ * Release 20190816.0 (tag: 20190816.0) [089a440]
+
+2019-08-16 Hironobu Yamashita
+
+ * gs-9.27 doesn't like snippets for TTF/TTC it seems gs-9.25 and gs-9.26 does not require snippets for TTF/TTC so it will be safe enough [22bc208]
+
+2019-05-22 Hironobu Yamashita
+
+ * mention requirement of kpsewhich in help message [fd6f3d2]
+
+2019-05-19 Hironobu Yamashita
+
+ * make sure CR is stripped [2120e9f]
+
+2019-05-19 Hironobu Yamashita
+
+ * \/dev\/null -> $nul [1145435]
+
+2019-05-19 Norbert Preining
+
+ * test for kpsewhich (Issue: #33) [68ae7ce]
+
+2019-04-06 Hironobu Yamashita
+
+ * Add info for latest BIZ-UD fonts [ce8d802]
+
2019-03-03 Hironobu Yamashita
- * Release 20190303.0 (HEAD -> master) [131b0f4]
+ * Release 20190303.0 (tag: 20190303.0) [131b0f4]
2019-03-03 Hironobu Yamashita
- * copyright year (origin/master, origin/HEAD) [0732219]
+ * copyright year [0732219]
2019-03-03 Hironobu Yamashita
@@ -140,7 +316,7 @@
2018-02-15 Hironobu Yamashita
- * don't discard when otfinfo exits with non-zero (origin/otfinfo-rewrite, otfinfo-rewrite) [9e630e3]
+ * don't discard when otfinfo exits with non-zero [9e630e3]
2018-02-15 Hironobu Yamashita
@@ -496,7 +672,7 @@
2017-06-20 Hironobu Yamashita
- * NTFS symlink on win32 has file size = 0, we can distinguish it (origin/cleanup) [ab9b543]
+ * NTFS symlink on win32 has file size = 0, we can distinguish it [ab9b543]
2017-06-20 Hironobu Yamashita
@@ -588,7 +764,7 @@
2017-05-05 Hironobu Yamashita
- * fix a mistake, adjust help message for search path (origin/win32-support, aminophen/win32-support) [8fd2c88]
+ * fix a mistake, adjust help message for search path (aminophen/win32-support) [8fd2c88]
2017-05-02 Hironobu Yamashita
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/doc/fonts/cjk-gs-integrate/README.md new/texmf-dist/doc/fonts/cjk-gs-integrate/README.md
--- old/texmf-dist/doc/fonts/cjk-gs-integrate/README.md 2018-03-06 23:52:16.000000000 +0100
+++ new/texmf-dist/doc/fonts/cjk-gs-integrate/README.md 2020-03-07 22:39:27.000000000 +0100
@@ -5,6 +5,9 @@
them available to an installed Ghostscript. In the simplest case with
sufficient privileges, a run without arguments should effect in a
complete setup of Ghostscript.
+Search is done using the kpathsea library, in particular `kpsewhich`
+program. To run this script, you will need some TeX distribution in
+your system.
Usage
-----
@@ -188,6 +191,7 @@
For the Japanese fonts:
Morisawa Pr6N, Morisawa, Hiragino ProN, Hiragino,
Kozuka Pr6N, Kozuka ProVI, Kozuka Pro, Kozuka Std,
+ HaranoAji,
Yu OS X, Yu Win, MS,
Moga-Mobo-ex, Moga-Mobo, IPAex, IPA, Ume
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cjk-gs-integrate.doc.tlpobj new/tlpkg/tlpobj/cjk-gs-integrate.doc.tlpobj
--- old/tlpkg/tlpobj/cjk-gs-integrate.doc.tlpobj 2019-03-04 02:24:04.000000000 +0100
+++ new/tlpkg/tlpobj/cjk-gs-integrate.doc.tlpobj 2020-03-08 01:33:31.000000000 +0100
@@ -1,7 +1,7 @@
name cjk-gs-integrate.doc
category Package
-revision 50214
+revision 54155
shortdesc doc files of cjk-gs-integrate
-docfiles size=13
+docfiles size=15
texmf-dist/doc/fonts/cjk-gs-integrate/ChangeLog
texmf-dist/doc/fonts/cjk-gs-integrate/README.md
++++++ cjk-gs-integrate.tar.xz ++++++
++++ 2053 lines of diff (skipped)
++++++ cjkutils.doc.tar.xz ++++++
Binary files old/texmf-dist/doc/man/man1/bg5conv.man1.pdf and new/texmf-dist/doc/man/man1/bg5conv.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/cef5conv.man1.pdf and new/texmf-dist/doc/man/man1/cef5conv.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/cefconv.man1.pdf and new/texmf-dist/doc/man/man1/cefconv.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/cefsconv.man1.pdf and new/texmf-dist/doc/man/man1/cefsconv.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/extconv.man1.pdf and new/texmf-dist/doc/man/man1/extconv.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/hbf2gf.man1.pdf and new/texmf-dist/doc/man/man1/hbf2gf.man1.pdf differ
Binary files old/texmf-dist/doc/man/man1/sjisconv.man1.pdf and new/texmf-dist/doc/man/man1/sjisconv.man1.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cjkutils.doc.tlpobj new/tlpkg/tlpobj/cjkutils.doc.tlpobj
--- old/tlpkg/tlpobj/cjkutils.doc.tlpobj 2019-03-27 02:24:03.000000000 +0100
+++ new/tlpkg/tlpobj/cjkutils.doc.tlpobj 2019-11-19 01:55:39.000000000 +0100
@@ -1,6 +1,6 @@
name cjkutils.doc
category TLCore
-revision 50602
+revision 52851
shortdesc doc files of cjkutils
docfiles size=55
texmf-dist/doc/man/man1/bg5conv.1
++++++ cjkutils.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cjkutils.tlpobj new/tlpkg/tlpobj/cjkutils.tlpobj
--- old/tlpkg/tlpobj/cjkutils.tlpobj 2019-03-27 02:24:03.000000000 +0100
+++ new/tlpkg/tlpobj/cjkutils.tlpobj 2019-11-19 01:55:39.000000000 +0100
@@ -1,6 +1,6 @@
name cjkutils
category TLCore
-revision 50602
+revision 52851
catalogue cjk
shortdesc CJK language support
longdesc CJK is a macro package for LaTeX, providing simultaneous
++++++ classics.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/classics/README new/doc/latex/classics/README
--- old/doc/latex/classics/README 2013-02-03 23:52:46.000000000 +0100
+++ new/doc/latex/classics/README 2020-02-04 23:16:32.000000000 +0100
@@ -1,9 +1,13 @@
Package: classics
Description: Cite classic works
-This package provides a basic framework to cite classic works in accordance
-with traditional pagination systems. It can also be used in conjunction with
-other citation packages.
+The package provides a basic framework to cite classic works (from authors such
+as Homer, Plato, Aristotle, Descartes, Hume, and Kant) in accordance with
+traditional pagination systems. It may be used in conjunction with other
+citation packages.
+
+2020/02/03 v0.1a
+ * replaced \str_if_eq_x_p:nn with \str_if_eq_p:ee
2013/02/02 v0.1
Initial version
@@ -20,7 +24,7 @@
*See classics.pdf
--------------------------------------------------------------------------------
-Copyright (C) 2013 Eduardo C. Lourenço de Lima
+Copyright (C) 2020 Eduardo C. Lourenço de Lima
This material is subject to the LaTeX Project Public License. See
http://www.ctan.org/tex-archive/help/Catalogue/licenses.lppl.html
Binary files old/doc/latex/classics/classics.pdf and new/doc/latex/classics/classics.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/classics/classics.tex new/doc/latex/classics/classics.tex
--- old/doc/latex/classics/classics.tex 2013-02-03 23:52:46.000000000 +0100
+++ new/doc/latex/classics/classics.tex 2020-02-04 23:16:32.000000000 +0100
@@ -1,4 +1,4 @@
-% Copyright (C) 2013 Eduardo C. Lourenço de Lima
+% Copyright (C) 2020 Eduardo C. Lourenço de Lima
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either
@@ -11,8 +11,8 @@
% version 2005/12/01 or later.
\documentclass{ltxdoc}
-\newcommand\fileversion{0.1}
-\newcommand\filedate{February 2, 2013}
+\newcommand\fileversion{0.1a}
+\newcommand\filedate{February 3, 2020}
\usepackage{color}
\usepackage{classics}
@@ -44,7 +44,7 @@
\begin{document}
\title{The \textsf{\color{myblue} classics} package,\thanks{This document
corresponds to \textsf{classics}~\fileversion, dated~\filedate. I am grateful
-to Joseph Wright and Scott \mbox{H.} for suggestions.}\\{or the end of
+to Joseph Wright, Scott \mbox{H.}, and Robert Alessi for suggestions.}\\{or the end of
anachronism}}
\author{Eduardo C. Louren\c{c}o de Lima \\ \texttt{elourenco@phi.pro.br}}
\maketitle
@@ -52,7 +52,7 @@
\begin{abstract}\noindent This package provides a basic framework to
cite classic works in accordance with traditional pagination systems.
- It can also be used in conjunction with other citation
+ It may be used in conjunction with other citation
packages.\end{abstract}
\section*{Introduction}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/classics.doc.tlpobj new/tlpkg/tlpobj/classics.doc.tlpobj
--- old/tlpkg/tlpobj/classics.doc.tlpobj 2019-02-28 03:25:48.000000000 +0100
+++ new/tlpkg/tlpobj/classics.doc.tlpobj 2020-02-05 01:54:52.000000000 +0100
@@ -1,6 +1,6 @@
name classics.doc
category Package
-revision 29018
+revision 53671
shortdesc doc files of classics
relocated 1
docfiles size=55
++++++ classics.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/classics/classics.sty new/tex/latex/classics/classics.sty
--- old/tex/latex/classics/classics.sty 2013-02-03 23:52:46.000000000 +0100
+++ new/tex/latex/classics/classics.sty 2020-02-04 23:16:32.000000000 +0100
@@ -1,4 +1,4 @@
-%% Copyright (C) 2013 Eduardo C. Lourenço de Lima
+%% Copyright (C) 2020 Eduardo C. Lourenço de Lima
%%
%% This work may be distributed and/or modified under the
%% conditions of the LaTeX Project Public License, either
@@ -13,7 +13,7 @@
%\NeedsTeXFormat{LaTeX2e}[1996/06/01]
\RequirePackage{expl3}
\RequirePackage{xparse}
-\ProvidesExplPackage {classics} {2013/02/02} {0.1} {Cite classic works}
+\ProvidesExplPackage {classics} {2020/02/03} {0.1a} {Cite classic works}
\tl_new:N \g_classics_style_range_separator_tl
\tl_new:N \g_classics_style_separator_tl
@@ -54,7 +54,7 @@
}
%Range: Typeset page when last page is provided only if they differ
- \bool_if:nTF { (! #1) && \str_if_eq_x_p:nn{##2}{##4} }
+ \bool_if:nTF { (! #1) && \str_if_eq_p:ee{##2}{##4} }
{
\classics_style_map:nnnnnnn{#3} {} {##5}{##6}{##7}{##8}{##9}
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/classics.tlpobj new/tlpkg/tlpobj/classics.tlpobj
--- old/tlpkg/tlpobj/classics.tlpobj 2019-02-28 03:25:48.000000000 +0100
+++ new/tlpkg/tlpobj/classics.tlpobj 2020-02-05 01:54:52.000000000 +0100
@@ -1,6 +1,6 @@
name classics
category Package
-revision 29018
+revision 53671
shortdesc Cite classic works
relocated 1
longdesc The package provides a basic framework to cite classic works
@@ -11,7 +11,6 @@
runfiles size=1
RELOC/tex/latex/classics/classics.sty
catalogue-ctan /macros/latex/contrib/classics
-catalogue-date 2016-06-24 19:18:15 +0200
catalogue-license lppl1.3
-catalogue-topics humanities cite-supp
-catalogue-version 0.1
+catalogue-topics humanities cite-supp expl3
+catalogue-version 0.1a
++++++ cleanthesis.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/CHANGELOG.md new/doc/latex/cleanthesis/CHANGELOG.md
--- old/doc/latex/cleanthesis/CHANGELOG.md 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/CHANGELOG.md 2019-06-26 22:40:49.000000000 +0200
@@ -1,7 +1,7 @@
---
CHANGELOG.md
-Copyright 2015 R. Langner
+Copyright 2019 R. Langner
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -27,6 +27,19 @@
## Latest Dev
- ...
+## v0.4.0
+- Fixed compatibility to new version of KOMA script
+- Fixed code for headline/title styles (e.g., removed use of package titlesec)
+- Fixed code for footer style (e.g., removed use of package fancyhdr)
+- Fixed compatibility to new version of biblatex (e.g., obsolete options)
+- Fixed an issue with page breaks at headings (thanks @guillerodriguez)
+- Added style for part sections (often used for books)
+- Added new package options: quotation style, bibliography sorting,
+- Changed alignment of titles from justified to left aligned
+- Changed the documentation according the updates
+- Changed file structure of the repository in order to improve the development and release process
+- Example: several improvements, such as location of appendix, use of subsubsections and paragraphs, long section titles, listings, pdf bookmark for toc, or separate config file
+
## v0.3.1
- re-licensed cleanthesis using the LPPL 1.3, http://www.latex-project.org/lppl.txt
- moved documentation into a separate subfolder (doc/)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/MANIFEST.md new/doc/latex/cleanthesis/MANIFEST.md
--- old/doc/latex/cleanthesis/MANIFEST.md 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/MANIFEST.md 2019-06-26 22:40:49.000000000 +0200
@@ -1,7 +1,7 @@
---
MANIFEST.md
-Copyright 2015 R. Langner
+Copyright 2019 R. Langner
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -27,6 +27,7 @@
|-- cleanthesis.sty - the cleanthesis style
|-- MANIFEST.md - this file
|-- README.md - readme file
+|-- VERSION - the version of the style
|-- doc/
|-- cleanthesis-doc.tex - documentation source
|-- cleanthesis-doc.pdf - generated documentation
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/README.md new/doc/latex/cleanthesis/README.md
--- old/doc/latex/cleanthesis/README.md 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/README.md 2019-06-26 22:40:49.000000000 +0200
@@ -1,7 +1,15 @@
# Clean Thesis
-*-- A LaTeX Style for Thesis Documents --*
+*-- A Clean LaTeX Style for Thesis Documents --*
-## Readme:
+## Table of contents
+
+* [About](#about)
+* [Getting started](#getting-started)
+* [Documentation and Support](#documentation-and-support)
+* [Contributing](#contributing)
+* [License Information](#license-information)
+
+## About
**Clean, Simple, Elegant**
*Clean Thesis* is a LaTeX style for thesis documents, developed for my diploma thesis (Diplomarbeit). The style can be understood as my personal compromise â a typical clean looking scientific document combined and polished with minor beautifications.
@@ -11,15 +19,32 @@
Note: If you are looking for an exact and correct style regarding typographic rules, please have a look at the "[Classic Thesis Style](see http://www.miede.de/#classicthesis)".
**Donation = Postcard**
-Based on the idea of André Miede: If you like the *Clean Thesis* style I would be very pleased about a donation in the form of a POSTCARD. You can find my address at the *Clean Thesis* [website](http://cleanthesis.der-ric.de/) as well as in the [documentation](Clean-Thesis.pdf). I am going to collect all postcards and exhibit them at the website I mentioned.
+Based on the idea of André Miede: If you like the *Clean Thesis* style I would be very pleased about a donation in the form of a POSTCARD. You can find my address at the *Clean Thesis* [website](http://cleanthesis.der-ric.de/) as well as in the [documentation](doc/cleanthesis-doc.pdf). I am going to collect all postcards and exhibit them at the website I mentioned.
**Idea and Inspiration**
-The idea of providing my customized style for thesis documents passed through my mind while writing my own thesis. Motivated and inspired by the superb "[Classic Thesis Style](see http://www.miede.de/#classicthesis)" by André Miede (thanks to André for doing a great job) I decided to collect all design and style related functionality in a separate LaTeX style and provide this style to other thesis writers.
+The idea of providing my customized style for thesis documents passed through my mind while writing my own thesis. Motivated and inspired by the superb "[Classic Thesis Style](http://www.miede.de/#classicthesis)" by André Miede (thanks to André for doing a great job) I decided to collect all design and style related functionality in a separate LaTeX style and provide this style to other thesis writers.
+
+## Getting started
+
+* Make sure you have an up-to-date TeX distribution
+* Download the latest [release](https://github.com/derric/cleanthesis/releases) or clone the repository with `git clone https://github.com/derric/cleanthesis.git`
+* Check out the included [example thesis](my-thesis.tex)
+* [Read the documentation](doc/cleanthesis-doc.pdf) to learn more about *Clean Thesis* and available package options
+
+## Documentation and Support
+
+The [documentation](doc/cleanthesis-doc.pdf) gives an overview of available package options.
+
+Please ask **questions** or start **discussions** about *Clean Thesis* at [Stack Exchange](http://tex.stackexchange.com/questions/tagged/cleanthesis) (tagged [cleanthesis](http://tex.stackexchange.com/questions/tagged/cleanthesis)). GitHub issues are for development purposes, e.g, reporting bugs or requesting new features.
+
+## Contributing
+
+Did you find an error or a bug? Do you have a feature request? Before opening a [new issue](https://github.com/derric/cleanthesis/issues/new), please check out the list of [existing](https://github.com/derric/cleanthesis/issues) and [closed](https://github.com/derric/cleanthesis/issues?q=is%3Aissue+is%3Aclosed) issues.
-## License Information:
+## License Information
README.md
-Copyright 2015 R. Langner
+Copyright 2019 R. Langner
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/VERSION new/doc/latex/cleanthesis/VERSION
--- old/doc/latex/cleanthesis/VERSION 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/cleanthesis/VERSION 2019-06-26 22:40:49.000000000 +0200
@@ -0,0 +1 @@
+0.4.0
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/content/abstract.tex new/doc/latex/cleanthesis/content/abstract.tex
--- old/doc/latex/cleanthesis/content/abstract.tex 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/content/abstract.tex 2019-06-26 22:40:49.000000000 +0200
@@ -1,14 +1,14 @@
-% !TEX root = ../thesis-example.tex
+% !TEX root = ../my-thesis.tex
%
\pdfbookmark[0]{Abstract}{Abstract}
-\chapter*{Abstract}
+\addchap*{Abstract}
\label{sec:abstract}
-\vspace*{-10mm}
\blindtext
\vspace*{20mm}
-{\usekomafont{chapter}Abstract (different language)}\label{sec:abstract-diff} \\
+{\usekomafont{chapter}Abstract (different language)}
+\label{sec:abstract-diff}
\blindtext
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/content/acknowledgement.tex new/doc/latex/cleanthesis/content/acknowledgement.tex
--- old/doc/latex/cleanthesis/content/acknowledgement.tex 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/content/acknowledgement.tex 2019-06-26 22:40:49.000000000 +0200
@@ -1,8 +1,7 @@
-% !TEX root = ../thesis-example.tex
+% !TEX root = ../my-thesis.tex
%
\pdfbookmark[0]{Acknowledgement}{Acknowledgement}
-\chapter*{Acknowledgement}
+\addchap*{Acknowledgement}
\label{sec:acknowledgement}
-\vspace*{-10mm}
\Blindtext[2][2]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/content/chapter-appendix.tex new/doc/latex/cleanthesis/content/chapter-appendix.tex
--- old/doc/latex/cleanthesis/content/chapter-appendix.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/cleanthesis/content/chapter-appendix.tex 2019-06-26 22:40:49.000000000 +0200
@@ -0,0 +1,40 @@
+% !TEX root = ../my-thesis.tex
+%
+\chapter{Example Appendix}
+\label{sec:appendix}
+
+\Blindtext[1][1]
+
+\section{Appendix Section 1}
+\label{sec:appendix:sec1}
+
+\Blindtext[1][1]
+
+\begin{table}[h]
+ \begin{tabularx}{\textwidth}{X | X | X}
+ %\hline
+ Alpha & Beta & Gamma \\ \hline
+ 0 & 1 & 2 \\ \hline
+ 3 & 4 & 5 \\ %\hline
+ \end{tabularx}
+ \label{tab:table1}
+ \caption{This is a caption text.}
+\end{table}
+
+\section{Appendix Section 2}
+\label{sec:appendix:sec2}
+
+\Blindtext[1][1]
+
+\begin{table}[h]
+ \begin{tabularx}{\textwidth}{X | X | X}
+ %\hline
+ Alpha & Beta & Gamma \\ \hline
+ 0 & 1 & 2 \\ \hline
+ 3 & 4 & 5 \\ %\hline
+ \end{tabularx}
+ \label{tab:table2}
+ \caption{This is a caption text.}
+\end{table}
+
+\Blindtext[1][2]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/content/chapter-concepts.tex new/doc/latex/cleanthesis/content/chapter-concepts.tex
--- old/doc/latex/cleanthesis/content/chapter-concepts.tex 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/content/chapter-concepts.tex 2019-06-26 22:40:49.000000000 +0200
@@ -1,6 +1,6 @@
-% !TEX root = ../thesis-example.tex
+% !TEX root = ../my-thesis.tex
%
-\chapter{Concepts: This text is here to test a very long title, to simulate the line break behavior, to show that an extremely long tilte also works}
+\chapter{Concepts: This text is here to test a very long title, to simulate the line break behavior, to show that an extremely long title also works}
\label{sec:concepts}
\cleanchapterquote{Users do not care about what is inside the box, as long as the box does what they need done.}{Jef Raskin}{about Human Computer Interfaces}
@@ -12,7 +12,7 @@
\Blindtext[2][2]
-\section{Concepts Section 2}
+\section{Concepts Section 2 with a very very long title that illustrates how long section titles are handled in the footer}
\label{sec:concepts:sec2}
\Blindtext[3][2]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/content/chapter-conclusion.tex new/doc/latex/cleanthesis/content/chapter-conclusion.tex
--- old/doc/latex/cleanthesis/content/chapter-conclusion.tex 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/content/chapter-conclusion.tex 2019-06-26 22:40:49.000000000 +0200
@@ -1,4 +1,4 @@
-% !TEX root = ../thesis-example.tex
+% !TEX root = ../my-thesis.tex
%
\chapter{Conclusion}
\label{sec:conclusion}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/content/chapter-introduction.tex new/doc/latex/cleanthesis/content/chapter-introduction.tex
--- old/doc/latex/cleanthesis/content/chapter-introduction.tex 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/content/chapter-introduction.tex 2019-06-26 22:40:49.000000000 +0200
@@ -1,4 +1,4 @@
-% !TEX root = ../thesis-example.tex
+% !TEX root = ../my-thesis.tex
%
\chapter{Introduction}
\label{sec:intro}
@@ -28,7 +28,40 @@
\subsection{Some References}
\label{sec:intro:results:refs}
+
\cite{WEB:GNU:GPL:2010,WEB:Miede:2011}
+\Blindtext[1][1]
+
+\subsubsection{Methodology}
+\label{sec:intro:results:refs:method}
+
+\Blindtext[1][2]
+
+\paragraph{Strategy 1}
+\Blindtext[1][1]
+
+\begin{lstlisting}[language=Python, caption={This simple helloworld.py file prints Hello World.}\label{lst:pyhelloworld}]
+#!/usr/bin/env python
+print "Hello World"
+\end{lstlisting}
+
+\paragraph{Strategy 2}
+\Blindtext[1][1]
+
+\begin{lstlisting}[language=Python, caption={This is a bubble sort function.}\label{lst:pybubblesort}]
+#!/usr/bin/env python
+def bubble_sort(list):
+ for num in range(len(list)-1,0,-1):
+ for i in range(num):
+ if list[i]>list[i+1]:
+ tmp = list[i]
+ list[i] = list[i+1]
+ list[i+1] = tmp
+
+alist = [34,67,2,4,65,16,17,95,20,31]
+bubble_sort(list)
+print(list)
+\end{lstlisting}
\section{Thesis Structure}
\label{sec:intro:structure}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/content/chapter-related-work.tex new/doc/latex/cleanthesis/content/chapter-related-work.tex
--- old/doc/latex/cleanthesis/content/chapter-related-work.tex 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/content/chapter-related-work.tex 2019-06-26 22:40:49.000000000 +0200
@@ -1,4 +1,4 @@
-% !TEX root = ../thesis-example.tex
+% !TEX root = ../my-thesis.tex
%
\chapter{Related Work}
\label{sec:related}
@@ -7,6 +7,17 @@
\Blindtext[2][1]
+\begin{lstlisting}[language=Java, caption={A simple Hellow World example in Java.}\label{lst:javahelloworld}]
+public class HelloWorld {
+ public static void main ( String[] args ) {
+ // Output Hello World!
+ System.out.println( "Hello World!" );
+ }
+}
+\end{lstlisting}
+
+\Blindtext[1][1]
+
\section{Related Work Section 1}
\label{sec:related:sec1}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/content/chapter-system.tex new/doc/latex/cleanthesis/content/chapter-system.tex
--- old/doc/latex/cleanthesis/content/chapter-system.tex 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/content/chapter-system.tex 2019-06-26 22:40:49.000000000 +0200
@@ -1,4 +1,4 @@
-% !TEX root = ../thesis-example.tex
+% !TEX root = ../my-thesis.tex
%
\chapter{System}
\label{sec:system}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/content/colophon.tex new/doc/latex/cleanthesis/content/colophon.tex
--- old/doc/latex/cleanthesis/content/colophon.tex 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/content/colophon.tex 2019-06-26 22:40:49.000000000 +0200
@@ -1,4 +1,4 @@
-% !TEX root = ../thesis-example.tex
+% !TEX root = ../my-thesis.tex
%
\pagestyle{empty}
\hfill
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/content/declaration.tex new/doc/latex/cleanthesis/content/declaration.tex
--- old/doc/latex/cleanthesis/content/declaration.tex 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/content/declaration.tex 2019-06-26 22:40:49.000000000 +0200
@@ -1,10 +1,10 @@
-% !TEX root = ../thesis-example.tex
+% !TEX root = ../my-thesis.tex
%
%************************************************
% Declaration
%************************************************
\pdfbookmark[0]{Declaration}{Declaration}
-\chapter*{Declaration}
+\addchap{Declaration}
\label{sec:declaration}
\thispagestyle{empty}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/content/titlepages.tex new/doc/latex/cleanthesis/content/titlepages.tex
--- old/doc/latex/cleanthesis/content/titlepages.tex 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/content/titlepages.tex 2019-06-26 22:40:49.000000000 +0200
@@ -1,4 +1,4 @@
-% !TEX root = ../thesis-example.tex
+% !TEX root = ../my-thesis.tex
%
% ------------------------------------ --> cover title page
\begin{titlepage}
Binary files old/doc/latex/cleanthesis/doc/cleanthesis-doc.pdf and new/doc/latex/cleanthesis/doc/cleanthesis-doc.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/doc/cleanthesis-doc.tex new/doc/latex/cleanthesis/doc/cleanthesis-doc.tex
--- old/doc/latex/cleanthesis/doc/cleanthesis-doc.tex 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/doc/cleanthesis-doc.tex 2019-06-26 22:40:49.000000000 +0200
@@ -1,5 +1,5 @@
%% cleanthesis-doc.tex
-%% Copyright 2015 R. Langner
+%% Copyright 2019 R. Langner
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -25,8 +25,7 @@
\usepackage{booktabs}
\usepackage{shortvrb}
\usepackage{pifont}
-
-\rcsid{$Id: cleanthesis.tex,v 0.3.1 2015/08/26 23:32:00 derric stable $}
+\usepackage{graphicx}
\newcommand*{\cleanthesis}{\emph{Clean Thesis}\xspace}
\newcommand*{\cthesishome}{http://cleanthesis.der-ric.de/}
@@ -34,21 +33,26 @@
\titlepage{%
title={The \sty{cleanthesis} Package},
- subtitle={A LaTeX Style for Thesis Documents},
+ subtitle={A Clean LaTeX Style for Thesis Documents},
url={\cthesishome},
author={Ricardo Langner},
email={info@cleanthesis.der-ric.de},
- revision={\rcsrevision},
- date={\rcstoday}}
+ revision={0.4.0},
+ date={2019/06/21}}
\hypersetup{%
pdftitle={The \cleanthesis Package},
- pdfsubject={A LaTeX Style for Thesis Documents},
+ pdfsubject={A Clean LaTeX Style for Thesis Documents},
pdfauthor={Ricardo Langner},
pdfkeywords={tex, latex, thesis, style}}
%\setcounter{secnumdepth}{4}
+% > adjust depth of the toc and removes the indention
+\setcounter{tocdepth}{3}
+\AtBeginToc{\setcounter{tocdepth}{3}}
+\AtEndToc{\setcounter{tocdepth}{5}}
+\KOMAoption{toc}{flat}
\begin{document}
@@ -83,7 +87,7 @@
\subsection{License}
\label{sec:intro:license}
-Copyright \textcopyright\ 2015 R. Langner
+Copyright \textcopyright\ 2019 R. Langner
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
@@ -107,7 +111,7 @@
First of all I would like to thank André Miede. He is the author of the Classic Thesis style. His Classic Thesis style inspired end encouraged me to publish my own thesis style. Thank you André for doing a great job.
-I would like to thank the following people for using the \cleanthesis style and giving important initial feedback to me, e.g., features, bugs: (1) \textbf{Sebastian Kleinau}\footnote{\url{http://www.sk-downloading.de/} (in German only)} in his bachelor thesis, (2) \textbf{Mathias Frisch}\footnote{\url{http://wwwpub.zih.tu-dresden.de/~frisch/}} in his dissertation (PhD), and (3) \textbf{Anton Augsburg}\footnote{\url{http://antonaugsburg.de/} (in German only)} in his project thesis.
+I would like to thank the following people for using the \cleanthesis style and providing me important initial feedback (e.g., features, bugs): (1) \textbf{Sebastian Kleinau} in his bachelor thesis, (2) \textbf{Mathias Frisch} in his dissertation (PhD), and (3) \textbf{Anton Augsburg} in his project thesis.
\subsection{Prerequisites}
\label{sec:intro:pre}
@@ -124,16 +128,12 @@
\label{sec:userguide:pkgopt}
All package options are given in \keyval notation.
-The value \texttt{true} can be omitted for all boolean keys, \eg \opt{sansserif} without a value is equivalent to \kvopt{sansserif}{true}.
+The value \texttt{true} can be omitted for all boolean keys, \eg \opt{hangsection} without a value is equivalent to \kvopt{hangsection}{true}.
All of the following options must be used as \sty{cthesis} is loaded, \ie in the optional argument to \cmd{usepackage}.
\begin{optionlist}
-\boolitem[false]{sansserif}
-
-Sets whether to use a sans serif font or not.
-
\boolitem[false]{hangfigurecaption}
Sets whether to use a hanging figure label (similar to headlines, placed in page margin) or not.
@@ -146,6 +146,14 @@
Sets whether to use a hanging sub-section label (placed in page margin) or not.
+\boolitem[false]{sansserif}
+
+Sets whether to use a sans serif font or not.
+
+\boolitem[false]{configurelistings}
+
+Sets whether to use the package listings and to configure the visual appearance of lstlisting environments.
+
\optitem[endash]{figuresep}{\opt{none},\opt{colon},\opt{period},\opt{space},\opt{quad},\opt{endash}}
This option can be used to define a different label separator for cations of figures. The following value are allowed:
@@ -187,6 +195,23 @@
\item[bluegreen] Headlines and titles use a blue color, figure labels use green.
\end{valuelist}
+\optitem[english]{quotesstyle}{csquotes style options}
+
+Sets the quote style.
+This is a direct interface to the corresponding style option of the csquotes package.
+For further information please check out the csquotes documentation \url{https://www.ctan.org/pkg/csquotes}.
+The default is \texttt{english}.
+For individual settings, for instance German quotes, you can use \texttt{quotesstyle=german}.
+
+
+\subsubsection{Setup Your Bibliography}
+
+\boolitem[false]{configurebiblatex}
+
+Sets whether to use and configure the package biblatex within the template.
+
+If this option is set to false, you can setup your bibliography environment by yourself depending on your individual needs or requirements. In this case, you have to include something like \cs{usepackage\{biblatex\}} and \cs{bibliography\{bib-refs\}} in your preamble (i.e., before the \cs{begin\{document\}} statement).
+
\optitem[bibtex]{bibsys}{\opt{biber},\opt{bibtex}}
Sets whether to use \texttt{biber} or \texttt{bibtex} as citation management tool (engine).
@@ -199,11 +224,35 @@
Sets the file name of the bibtex file used for the bibliography.
If this option is not used (defined), the package looks for the default bibliography \texttt{bib-refs.bib}.
-\optitem[alphabetic]{bibstyle}{\opt{alphabetic},\opt{numeric},\opt{authoryear}}
+\optitem[alphabetic]{bibstyle}{biblatex style options}
-Sets whether to use an \texttt{alphabetic}, a \texttt{numeric}, or an \texttt{authoryear} reference style for the bibliography.
-For further information please check out the biblatex documentation\footnote{\url{http://www.ctan.org/pkg/biblatex}}.
+Sets the bibliography style.
+This is a direct interface to the corresponding style option of the biblatex package.
+For further information please check out the biblatex documentation \url{http://www.ctan.org/pkg/biblatex}.
The default is \texttt{alphabetic}.
+Two popular options are:
+
+\begin{valuelist}
+\item[alphabetic] (default) Prints labels similar to the traditional BibTeX style \texttt{alpha.bst}, for instance \texttt{[Lan+15]} or \texttt{[LHD17]}
+\item[numeric] Uses numeric labels, such as \texttt{[1]} or \texttt{[37]}
+\end{valuelist}
+
+However, you can also pass non-standard options to make use of other bibliography packages for biblatex.
+For example, by setting the option \texttt{style=ieee} or \texttt{style=ieee-alphabetic} you can use the biblatex-ieee package (see \url{https://ctan.org/pkg/biblatex-ieee}).
+
+\optitem[nty]{bibsorting}{biblatex sorting options}
+
+Sets the sorting order of the bibliography.
+This is a direct interface to the corresponding option of the biblatex package.
+For further information please check out the biblatex documentation \url{http://www.ctan.org/pkg/biblatex}.
+The default is \texttt{nty}.
+Some popular options include:
+
+\begin{valuelist}
+\item[nty] (default) Sort by name, title, year
+\item[nyt] Sort by name, year, title
+\item[none] No sorting at all, entries are processed in the order of their citation
+\end{valuelist}
\end{optionlist}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/my-thesis-setup.tex new/doc/latex/cleanthesis/my-thesis-setup.tex
--- old/doc/latex/cleanthesis/my-thesis-setup.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/cleanthesis/my-thesis-setup.tex 2019-06-26 22:40:49.000000000 +0200
@@ -0,0 +1,77 @@
+% !TEX root = my-thesis.tex
+
+
+% **************************************************
+% Files' Character Encoding
+% **************************************************
+\PassOptionsToPackage{utf8}{inputenc}
+\usepackage{inputenc}
+
+
+% **************************************************
+% Information and Commands for Reuse
+% **************************************************
+\newcommand{\thesisTitle}{The Clean Thesis Style}
+\newcommand{\thesisName}{Ricardo Langner}
+\newcommand{\thesisSubject}{Documentation}
+\newcommand{\thesisDate}{June 21, 2016}
+\newcommand{\thesisVersion}{My First Draft}
+
+\newcommand{\thesisFirstReviewer}{Jane Doe}
+\newcommand{\thesisFirstReviewerUniversity}{\protect{Clean Thesis Style University}}
+\newcommand{\thesisFirstReviewerDepartment}{Department of Clean Thesis Style}
+
+\newcommand{\thesisSecondReviewer}{John Doe}
+\newcommand{\thesisSecondReviewerUniversity}{\protect{Clean Thesis Style University}}
+\newcommand{\thesisSecondReviewerDepartment}{Department of Clean Thesis Style}
+
+\newcommand{\thesisFirstSupervisor}{Jane Doe}
+\newcommand{\thesisSecondSupervisor}{John Smith}
+
+\newcommand{\thesisUniversity}{\protect{Clean Thesis Style University}}
+\newcommand{\thesisUniversityDepartment}{Department of Clean Thesis Style}
+\newcommand{\thesisUniversityInstitute}{Institute for Clean Thesis Dev}
+\newcommand{\thesisUniversityGroup}{Clean Thesis Group (CTG)}
+\newcommand{\thesisUniversityCity}{City}
+\newcommand{\thesisUniversityStreetAddress}{Street address}
+\newcommand{\thesisUniversityPostalCode}{Postal Code}
+
+
+% **************************************************
+% Debug LaTeX Information
+% **************************************************
+%\listfiles
+
+
+% **************************************************
+% Load and Configure Packages
+% **************************************************
+\usepackage[english]{babel} % babel system, adjust the language of the content
+\PassOptionsToPackage{% setup clean thesis style
+ figuresep=colon,%
+ hangfigurecaption=false,%
+ hangsection=true,%
+ hangsubsection=true,%
+ sansserif=false,%
+ configurelistings=true,%
+ colorize=full,%
+ colortheme=bluemagenta,%
+ configurebiblatex=true,%
+ bibsys=biber,%
+ bibfile=bib-refs,%
+ bibstyle=alphabetic,%
+ bibsorting=nty,%
+}{cleanthesis}
+\usepackage{cleanthesis}
+
+\hypersetup{% setup the hyperref-package options
+ pdftitle={\thesisTitle}, % - title (PDF meta)
+ pdfsubject={\thesisSubject},% - subject (PDF meta)
+ pdfauthor={\thesisName}, % - author (PDF meta)
+ plainpages=false, % -
+ colorlinks=false, % - colorize links?
+ pdfborder={0 0 0}, % -
+ breaklinks=true, % - allow line break inside links
+ bookmarksnumbered=true, %
+ bookmarksopen=true %
+}
Binary files old/doc/latex/cleanthesis/my-thesis.pdf and new/doc/latex/cleanthesis/my-thesis.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/my-thesis.tex new/doc/latex/cleanthesis/my-thesis.tex
--- old/doc/latex/cleanthesis/my-thesis.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/cleanthesis/my-thesis.tex 2019-06-26 22:40:49.000000000 +0200
@@ -0,0 +1,124 @@
+% **************************************************
+% Document Class Definition
+% **************************************************
+\documentclass[%
+ paper=A4, % paper size --> A4 is default in Germany
+ twoside=true, % onesite or twoside printing
+ openright, % doublepage cleaning ends up right side
+ parskip=half, % spacing value / method for paragraphs
+ chapterprefix=true, % prefix for chapter marks
+ 11pt, % font size
+ headings=normal, % size of headings
+ bibliography=totoc, % include bib in toc
+ listof=totoc, % include listof entries in toc
+ titlepage=on, % own page for each title page
+ captions=tableabove, % display table captions above the float env
+ chapterprefix=false, % do not display a prefix for chapters
+ appendixprefix=false, % but display a prefix for appendix chapter
+ draft=false, % value for draft version
+]{scrreprt}%
+
+
+% **************************************************
+% Setup YOUR thesis document in this file !
+% **************************************************
+\input{my-thesis-setup}
+
+
+% **************************************************
+% Document CONTENT
+% **************************************************
+\begin{document}
+
+% uncomment the following command to fill up pages with
+% whitespace instead of aligning the first and last lines
+% of a page (see \raggedbottom vs. \flushbottom)
+%\raggedbottom
+
+% --------------------------
+% rename document parts
+% --------------------------
+%\renewcaptionname{ngerman}{\figurename}{Abb.}
+%\renewcaptionname{ngerman}{\tablename}{Tab.}
+\renewcaptionname{english}{\figurename}{Fig.}
+\renewcaptionname{english}{\tablename}{Tab.}
+
+% --------------------------
+% Front matter
+% --------------------------
+\pagenumbering{roman} % roman page numbing (invisible for empty page style)
+\pagestyle{empty} % no header or footers
+\input{content/titlepages} % INCLUDE: all titlepages
+\cleardoublepage
+
+\pagestyle{plain} % display just page numbers
+\input{content/abstract} % INCLUDE: the abstracts (english and german)
+\cleardoublepage
+%
+\input{content/acknowledgement} % INCLUDE: acknowledgement
+\cleardoublepage
+%
+\currentpdfbookmark{\contentsname}{toc}
+\setcounter{tocdepth}{2} % define depth of toc
+\tableofcontents % display table of contents
+\cleardoublepage
+
+% --------------------------
+% Body matter
+% --------------------------
+\pagenumbering{arabic} % arabic page numbering
+\setcounter{page}{1} % set page counter
+\pagestyle{scrheadings} % header and footer style
+
+%% Uncomment the following lines using the \part command
+%% to add part sections
+%\part{Example Part}
+\input{content/chapter-introduction} % INCLUDE: introduction
+\input{content/chapter-related-work} % INCLUDE: related work
+
+%\part{Additional Example Part}
+\input{content/chapter-system} % INCLUDE: system
+\input{content/chapter-concepts} % INCLUDE: concepts
+\input{content/chapter-conclusion} % INCLUDE: conclusion
+
+% --------------------------
+% Back matter
+% --------------------------
+%
+{%
+\setstretch{1.1}
+\renewcommand{\bibfont}{\normalfont\small}
+\setlength{\biblabelsep}{0pt}
+\setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip}
+\printbibliography[nottype=online]
+\newrefcontext[labelprefix={@}]
+\printbibliography[heading=subbibliography,title={Webpages},type=online]
+}
+\cleardoublepage
+
+\listoffigures
+\cleardoublepage
+
+\listoftables
+\cleardoublepage
+
+\lstlistoflistings
+\cleardoublepage
+
+\appendix\cleardoublepage
+\input{content/chapter-appendix} % INCLUDE: appendix
+
+\cleardoublepage
+\input{content/colophon}
+
+\cleardoublepage
+\input{content/declaration}
+\clearpage
+
+\newpage
+\mbox{}
+
+% **************************************************
+% End of Document CONTENT
+% **************************************************
+\end{document}
Binary files old/doc/latex/cleanthesis/thesis-example.pdf and new/doc/latex/cleanthesis/thesis-example.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cleanthesis/thesis-example.tex new/doc/latex/cleanthesis/thesis-example.tex
--- old/doc/latex/cleanthesis/thesis-example.tex 2015-08-28 00:02:35.000000000 +0200
+++ new/doc/latex/cleanthesis/thesis-example.tex 1970-01-01 01:00:00.000000000 +0100
@@ -1,158 +0,0 @@
-% **************************************************
-% Document Class Definition
-% **************************************************
-\documentclass[%
- paper=A4, % paper size --> A4 is default in Germany
- twoside=true, % onesite or twoside printing
- openright, % doublepage cleaning ends up right side
- parskip=full, % spacing value / method for paragraphs
- chapterprefix=true, % prefix for chapter marks
- 11pt, % font size
- headings=normal, % size of headings
- bibliography=totoc, % include bib in toc
- listof=totoc, % include listof entries in toc
- titlepage=on, % own page for each title page
- captions=tableabove, % display table captions above the float env
- draft=false, % value for draft version
-]{scrreprt}%
-
-% **************************************************
-% Debug LaTeX Information
-% **************************************************
-%\listfiles
-
-% **************************************************
-% Information and Commands for Reuse
-% **************************************************
-\newcommand{\thesisTitle}{The Clean Thesis Style}
-\newcommand{\thesisName}{Ricardo Langner}
-\newcommand{\thesisSubject}{Documentation}
-\newcommand{\thesisDate}{August 26, 2015}
-\newcommand{\thesisVersion}{My First Draft}
-
-\newcommand{\thesisFirstReviewer}{Jane Doe}
-\newcommand{\thesisFirstReviewerUniversity}{\protect{Clean Thesis Style University}}
-\newcommand{\thesisFirstReviewerDepartment}{Department of Clean Thesis Style}
-
-\newcommand{\thesisSecondReviewer}{John Doe}
-\newcommand{\thesisSecondReviewerUniversity}{\protect{Clean Thesis Style University}}
-\newcommand{\thesisSecondReviewerDepartment}{Department of Clean Thesis Style}
-
-\newcommand{\thesisFirstSupervisor}{Jane Doe}
-\newcommand{\thesisSecondSupervisor}{John Smith}
-
-\newcommand{\thesisUniversity}{\protect{Clean Thesis Style University}}
-\newcommand{\thesisUniversityDepartment}{Department of Clean Thesis Style}
-\newcommand{\thesisUniversityInstitute}{Institut for Clean Thesis Dev}
-\newcommand{\thesisUniversityGroup}{Clean Thesis Group (CTG)}
-\newcommand{\thesisUniversityCity}{City}
-\newcommand{\thesisUniversityStreetAddress}{Street address}
-\newcommand{\thesisUniversityPostalCode}{Postal Code}
-
-% **************************************************
-% Load and Configure Packages
-% **************************************************
-\usepackage[utf8]{inputenc} % defines file's character encoding
-\usepackage[english]{babel} % babel system, adjust the language of the content
-\usepackage[ % clean thesis style
- figuresep=colon,%
- sansserif=false,%
- hangfigurecaption=false,%
- hangsection=true,%
- hangsubsection=true,%
- colorize=full,%
- colortheme=bluemagenta,%
- bibsys=bibtex,%
- bibfile=bib-refs,%
- bibstyle=alphabetic,%
-]{cleanthesis}
-
-\hypersetup{ % setup the hyperref-package options
- pdftitle={\thesisTitle}, % - title (PDF meta)
- pdfsubject={\thesisSubject},% - subject (PDF meta)
- pdfauthor={\thesisName}, % - author (PDF meta)
- plainpages=false, % -
- colorlinks=false, % - colorize links?
- pdfborder={0 0 0}, % -
- breaklinks=true, % - allow line break inside links
- bookmarksnumbered=true, %
- bookmarksopen=true %
-}
-
-% **************************************************
-% Document CONTENT
-% **************************************************
-\begin{document}
-
-% --------------------------
-% rename document parts
-% --------------------------
-%\renewcaptionname{ngerman}{\figurename}{Abb.}
-%\renewcaptionname{ngerman}{\tablename}{Tab.}
-\renewcaptionname{english}{\figurename}{Fig.}
-\renewcaptionname{english}{\tablename}{Tab.}
-
-% --------------------------
-% Front matter
-% --------------------------
-\pagenumbering{roman} % roman page numbing (invisible for empty page style)
-\pagestyle{empty} % no header or footers
-\input{content/titlepages} % INCLUDE: all titlepages
-\cleardoublepage
-
-\pagestyle{plain} % display just page numbers
-\input{content/abstract} % INCLUDE: the abstracts (english and german)
-\cleardoublepage
-%
-\input{content/acknowledgement} % INCLUDE: acknowledgement
-\cleardoublepage
-%
-\setcounter{tocdepth}{2} % define depth of toc
-\tableofcontents % display table of contents
-\cleardoublepage
-
-% --------------------------
-% Body matter
-% --------------------------
-\pagenumbering{arabic} % arabic page numbering
-\setcounter{page}{1} % set page counter
-\pagestyle{maincontentstyle} % fancy header and footer
-
-\input{content/chapter-introduction} % INCLUDE: introduction
-\input{content/chapter-related-work} % INCLUDE: related work
-\input{content/chapter-system} % INCLUDE: system
-\input{content/chapter-concepts} % INCLUDE: concepts
-\input{content/chapter-conclusion} % INCLUDE: conclusion
-\cleardoublepage
-
-% --------------------------
-% Back matter
-% --------------------------
-{%
-\setstretch{1.1}
-\renewcommand{\bibfont}{\normalfont\small}
-\setlength{\biblabelsep}{0pt}
-\setlength{\bibitemsep}{0.5\baselineskip plus 0.5\baselineskip}
-\printbibliography[nottype=online]
-\printbibliography[heading=subbibliography,title={Webseiten},type=online,prefixnumbers={@}]
-}
-\cleardoublepage
-
-\listoffigures
-\cleardoublepage
-
-\listoftables
-\cleardoublepage
-
-\input{content/colophon}
-\cleardoublepage
-
-\input{content/declaration}
-\clearpage
-\newpage
-\mbox{}
-
-% **************************************************
-% End of Document CONTENT
-% **************************************************
-\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cleanthesis.doc.tlpobj new/tlpkg/tlpobj/cleanthesis.doc.tlpobj
--- old/tlpkg/tlpobj/cleanthesis.doc.tlpobj 2019-02-28 03:25:49.000000000 +0100
+++ new/tlpkg/tlpobj/cleanthesis.doc.tlpobj 2019-06-27 01:54:21.000000000 +0200
@@ -1,15 +1,17 @@
name cleanthesis.doc
category Package
-revision 38221
+revision 51472
shortdesc doc files of cleanthesis
relocated 1
-docfiles size=465
+docfiles size=489
RELOC/doc/latex/cleanthesis/CHANGELOG.md
RELOC/doc/latex/cleanthesis/MANIFEST.md
RELOC/doc/latex/cleanthesis/README.md
+ RELOC/doc/latex/cleanthesis/VERSION
RELOC/doc/latex/cleanthesis/bib-refs.bib
RELOC/doc/latex/cleanthesis/content/abstract.tex
RELOC/doc/latex/cleanthesis/content/acknowledgement.tex
+ RELOC/doc/latex/cleanthesis/content/chapter-appendix.tex
RELOC/doc/latex/cleanthesis/content/chapter-concepts.tex
RELOC/doc/latex/cleanthesis/content/chapter-conclusion.tex
RELOC/doc/latex/cleanthesis/content/chapter-introduction.tex
@@ -22,5 +24,6 @@
RELOC/doc/latex/cleanthesis/doc/cleanthesis-doc.tex
RELOC/doc/latex/cleanthesis/gfx/Clean-Thesis-Figure.pdf
RELOC/doc/latex/cleanthesis/gfx/Clean-Thesis-Logo.pdf
- RELOC/doc/latex/cleanthesis/thesis-example.pdf
- RELOC/doc/latex/cleanthesis/thesis-example.tex
+ RELOC/doc/latex/cleanthesis/my-thesis-setup.tex
+ RELOC/doc/latex/cleanthesis/my-thesis.pdf
+ RELOC/doc/latex/cleanthesis/my-thesis.tex
++++++ cleanthesis.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/cleanthesis/cleanthesis.sty new/tex/latex/cleanthesis/cleanthesis.sty
--- old/tex/latex/cleanthesis/cleanthesis.sty 2015-08-28 00:02:35.000000000 +0200
+++ new/tex/latex/cleanthesis/cleanthesis.sty 2019-06-26 22:40:49.000000000 +0200
@@ -1,5 +1,5 @@
%% cleanthesis.sty
-%% Copyright 2015 R. Langner
+%% Copyright 2019 R. Langner
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -29,7 +29,7 @@
%
% **************************************************
\NeedsTeXFormat{LaTeX2e}
-\ProvidesPackage{cleanthesis}[2015/08/26 v0.3.1 Clean-looking thesis style inspired by Apple's user guide documents]
+\ProvidesPackage{cleanthesis}[2019/06/21 v0.4.0 A clean LaTeX style for thesis documents]
%
% **************************************************
% Package options
@@ -42,11 +42,6 @@
% in an easy way
\RequirePackage{xkeyval}
-% OPTION sansserif
-% --> values = true|false
-\define@boolkey[ct]{cthesis}{sansserif}[true]{}
-\setkeys[ct]{cthesis}{sansserif=false}
-
% OPTION hangfigurecaption
% --> values = true|false
\define@boolkey[ct]{cthesis}{hangfigurecaption}[true]{}
@@ -62,6 +57,21 @@
\define@boolkey[ct]{cthesis}{hangsubsection}[true]{}
\setkeys[ct]{cthesis}{hangsubsection=true}
+% OPTION sansserif
+% --> values = true|false
+\define@boolkey[ct]{cthesis}{sansserif}[false]{}
+\setkeys[ct]{cthesis}{sansserif=false}
+
+% OPTION configurelistings
+% --> values = true|false
+\define@boolkey[ct]{cthesis}{configurelistings}[false]{}
+\setkeys[ct]{cthesis}{configurelistings=false}
+
+% OPTION configurebiblatex
+% --> values = true|false
+\define@boolkey[ct]{cthesis}{configurebiblatex}[false]{}
+\setkeys[ct]{cthesis}{configurebiblatex=false}
+
% OPTION figuresep
% --> values = none|colon|period|space|quad|endash
\define@choicekey*[ct]{cthesis}{figuresep}{none,colon,period,space,quad,newline,endash}[endash]{\def\cthesis@figuresep{#1}}
@@ -88,10 +98,19 @@
\setkeys[ct]{cthesis}{bibfile=bib-refs}
% OPTION bibstyle
-% --> values = alphabetic|numeric|authoryear
-\define@choicekey*[ct]{cthesis}{bibstyle}[\val\bibstylenr]{alphabetic,numeric,authoryear}[alphabetic]{\def\cthesis@bibstyle{#1}}
+% --> values = biblatex style options
+\define@key[ct]{cthesis}{bibstyle}[alphabetic]{\def\cthesis@bibstyle{#1}}
\setkeys[ct]{cthesis}{bibstyle=alphabetic}
+% OPTION bibsorting
+% --> values = biblatex sorting options
+\define@key[ct]{cthesis}{bibsorting}[nty]{\def\cthesis@bibsorting{#1}}
+\setkeys[ct]{cthesis}{bibsorting=nty}
+
+% OPTION quotesstyle
+% --> values = csquotes style options
+\define@key[ct]{cthesis}{quotesstyle}[english]{\def\cthesis@quotesstyle{#1}}
+\setkeys[ct]{cthesis}{quotesstyle=english}
\DeclareOptionX*{
\PackageWarning{cleanthesis}{Unknown option â\CurrentOptionâ}%
@@ -99,6 +118,8 @@
\ProcessOptionsX[ct]<cthesis>
+% Checks if bib file exists, if not we throw an error
+\IfFileExists{\cthesis@bibfile.bib}{}{\PackageError{cleanthesis}{Unable to find BibTeX file \cthesis@bibfile.bib!}{Please provide the name of your BibTeX file to the cleanthesis package parameter bibfile.}}
% **************************************************
% Color Definitions
@@ -186,6 +207,7 @@
\definecolor{ctcolorblack}{gray}{0}
\definecolor{ctcolorgray}{gray}{.5}
\definecolor{ctcolorgraylight}{gray}{.8}
+\definecolor{ctcolorgraylighter}{gray}{.95}
% sets the color theme regarding the given package option colortheme
\ifcase\cthesis@colortheme
@@ -203,40 +225,38 @@
% **************************************************
% Font Definitions (see http://www.tug.dk/FontCatalogue/)
% **************************************************
-\RequirePackage[T1]{fontenc} % font types and character verification
-%\ifthenelse{\boolean{@sansserif}}%
+\RequirePackage[T1]{fontenc} % font types and character verification
+
\ifct@cthesis@sansserif
-% {%
- % Using sans-serif fonts
- %
- %\RequirePackage{helvet} % Font: Helvetica
- %\RequirePackage{nimbus} % Font: Nimbus Sans, a clone of the Helvetica
- \RequirePackage{tgheros} % Font: TEX Gyre Heros
- %\RequirePackage{libertine} % Font: Biolinum, the standard sans serif typeface with the Libertine package
- %\RequirePackage[scaled]{berasans} % Font: Bera Sans, a a version of Bitstream Vera Sans slightly enhanced
- \renewcommand*\familydefault{\sfdefault}%
-% }{%
+ % Using sans-serif fonts
+ %
+ %\RequirePackage{helvet} % Font: Helvetica
+ %\RequirePackage{nimbus} % Font: Nimbus Sans, a clone of the Helvetica
+ \RequirePackage{tgheros} % Font: TEX Gyre Heros
+ %\RequirePackage{libertine} % Font: Biolinum, the standard sans serif typeface with the Libertine package
+ %\RequirePackage[scaled]{berasans} % Font: Bera Sans, a a version of Bitstream Vera Sans slightly enhanced
+ \renewcommand*\familydefault{\sfdefault}%
\else
- % Using serif fonts
- %
- \RequirePackage{lmodern} % font set: Latin Modern
- \RequirePackage{charter} % font set: Charter
- %\RequirePackage{fourier} % font set: (basically improved utopia)
-% }
+ % Using serif fonts
+ %
+ \RequirePackage{lmodern} % font set: Latin Modern
+ \RequirePackage{charter} % font set: Charter
+ %\RequirePackage{fourier} % font set: (basically improved utopia)
\fi
% **************************************************
% Load Packages
% **************************************************
-\RequirePackage{fixltx2e} % packages provides fixes to LaTeX2e
\RequirePackage{microtype} % typographic tuning
\RequirePackage{setspace} % for line spacing, e.g. \onehalfspacing
\RequirePackage[]{graphicx} % graphics import features
-\RequirePackage{fancyhdr} % for header and footer modifications
+\RequirePackage{tabularx} % table features
+%\RequirePackage{fancyhdr} % for header and footer modifications
\RequirePackage{enumitem} % for simple list modifications
\RequirePackage{blindtext} % package for blind text
\RequirePackage{textcomp} % different symbols
\RequirePackage{hyperref} % interactive link inside the document
+\RequirePackage[automark]{scrlayer-scrpage}
%
\RequirePackage[ % modify figure and table captions
@@ -253,63 +273,89 @@
% }{}
\fi
%
-\RequirePackage[ % page layout modifications
- paper=a4paper, % - use A4 paper size
- %scale={0.86,0.94}, % - total body size (h,v)
- %scale={0.86,0.94}, % - total body size (h,v)
- nohead, % - no header
- includefoot, % - include footer space
- includemp, % - include side note space
- bindingoffset=0.5cm, % - binding correction
- top=2.25cm, % - total body: top margin
- left=3.75cm, % - total body: left margin (odd pages)
- right=0.75cm, % - total body: right margin (odd pages)
- bottom=1.5cm, % - total body: bottom margin
- marginparwidth=1.75cm, % - width for side note
- marginparsep=10pt, % - space between notes and body text (content)
- footskip=2cm, % - footer skip size
-]{geometry}
+%
+% **************************************************
+% Page construction
+% **************************************************
+\KOMAoption{headinclude}{false} % include header in body?
+\KOMAoption{footinclude}{false} % include footer in body?
+\KOMAoption{footlines}{2.1} % number of foot lines
+\KOMAoption{mpinclude}{false} % include marginpar in body?
+\KOMAoption{BCOR}{25mm} % binding correction
+\KOMAoption{DIV}{12} % number of page divs (divider)
+%
%
\RequirePackage[ % advanced quotes
strict=true, % - warning are errors now
- style=german % - german quotes
+ style=\cthesis@quotesstyle % - german quotes
]{csquotes}
%
-\RequirePackage[ % use biblatex for bibliography
- backend=\cthesis@bibsys, % - use biber backend (bibtex replacement) or bibtex
- bibencoding=utf8, % - use auto file encode
- style=\cthesis@bibstyle, % - use alphabetic (or numeric) bib style
- natbib=true, % - allow natbib commands
- hyperref=true, % - activate hyperref support
- backref=true, % - activate backrefs
- isbn=false, % - don't show isbn tags
- url=false, % - don't show url tags
- doi=false, % - don't show doi tags
- urldate=long, % - display type for dates
- maxnames=3,%
- minnames=1,%
- maxbibnames=5,%
- minbibnames=3,%
- maxcitenames=2,%
- mincitenames=1%
-]{biblatex}
-\bibliography{\cthesis@bibfile}
-\DefineBibliographyStrings{ngerman}{%
- andothers = {{et\,al\adddot}}, % 'et al.' instead of 'u.a.'
- backrefpage = {{zitiert auf Seite}},%
- backrefpages = {{zitiert auf den Seiten}},%
-}
+
+% **************************************************
+% Bibliography
+% **************************************************
+\ifct@cthesis@configurebiblatex
+ \RequirePackage[ % use biblatex for bibliography
+ backend=\cthesis@bibsys, % - use biber backend (bibtex replacement) or bibtex
+ style=\cthesis@bibstyle, % - use alphabetic (or numeric) bib style
+ natbib=true, % - allow natbib commands
+ hyperref=true, % - activate hyperref support
+ backref=true, % - activate backrefs
+ isbn=false, % - don't show isbn tags
+ url=false, % - don't show url tags
+ doi=false, % - don't show doi tags
+ urldate=long, % - display type for dates
+ maxnames=3,%
+ minnames=1,%
+ maxbibnames=5,%
+ minbibnames=3,%
+ maxcitenames=2,%
+ mincitenames=1,%,
+ sorting=\cthesis@bibsorting%
+ ]{biblatex}
+ \bibliography{\cthesis@bibfile}
+ \DefineBibliographyStrings{ngerman}{%
+ andothers = {{et\,al\adddot}}, % 'et al.' instead of 'u.a.'
+ backrefpage = {{zitiert auf Seite}},%
+ backrefpages = {{zitiert auf den Seiten}},%
+ }
+\fi
% **************************************************
% Text Format
% **************************************************
\setstretch{1.2} % value for line spacing, use \setstretch{} or \singlespacing or \onehalfspacing or \doublespacing
-\setlength{\parindent}{0em} % value for paragraph indentation
+%\setlength{\parindent}{0em} % value for paragraph indentation
\clubpenalty = 10000 % prevent single lines at the beginning of a paragraph (Schusterjungen)
\widowpenalty = 10000 % prevent single lines at the end of a paragraph (Hurenkinder)
\displaywidowpenalty = 10000 %
% **************************************************
+% Listing Format
+% **************************************************
+\ifct@cthesis@configurelistings
+ \RequirePackage{listings} % package for listings
+ \lstset{%
+ backgroundcolor=\color{ctcolorgraylighter},
+ linewidth=\textwidth,
+ xleftmargin=10pt,
+ captionpos=b,
+ showspaces=false,
+ showstringspaces=false,
+ showtabs=false,
+ tabsize=2,
+ basicstyle=\footnotesize\ttfamily,
+ frame=leftline,
+ framerule=3pt,
+ framexleftmargin=4pt,
+ rulecolor=\color{ctcolorgraylight},
+ numbers=left,
+ numberstyle=\footnotesize\sffamily\color{ctcolorgray},
+ numbersep=15pt
+ }
+\fi
+
+% **************************************************
% List Definitions
% **************************************************
\newenvironment{my_list}%
@@ -355,70 +401,99 @@
% **************************************************
% Header and Footer
% **************************************************
-\pagestyle{fancy}
+
+\automark[section]{chapter} % automatically marks sections as rightmark
+ % and chapters as leftmark
+\setlength{\footheight}{120pt} % avoids scrlayer-scrpage warning:
+ % footheight to low warning
+\setlength{\footskip}{185pt} % BAD HACK that moves the foot downwards
+\KOMAoption{footwidth}{foot:53pt} % BAD HACK that moves the foot towards
+ % the outer border
+\setkomafont{pagefoot}{\ctfontfootertext} % font for footer
+\setkomafont{pagenumber}{\ctfontfooterpagenumber} % font for page numbers
+
+%% Redefinition of the chaptermark (used for footer mark on even (left) pages)
\renewcommand{\chaptermark}[1]{%
- \markboth{%
- \footnotesize%
- {\color{ctcolorfootermark}\textbf{\chaptername\ \thechapter}}%
- \quad%
- {\color{ctcolorfootertitle}#1}%
- }{}%
+ \markboth{%
+ \ctfontfootertext
+ % use \@chapapp instead of \chaptername to avoid
+ % 'Chapter A Appendix ...', thanks to @farbverlust (issue #47)
+ {\color{ctcolorfootermark}\textbf{\@chapapp\ \thechapter}}%
+ \quad%
+ \protect\begin{minipage}[t]{.65\textwidth}%
+ #1%
+ \protect\end{minipage}%
+ }{}%
}
+
+%% Redefinition of the sectionmark (used for footer mark on odd (right) pages)
+\newlength{\lensectionnumber}
\renewcommand{\sectionmark}[1]{%
- \markright{%
- \footnotesize%
- {\color{ctcolorfootermark}\textbf{\thesection}}%
- \quad%
- {\color{ctcolorfootertitle}#1}%
- }%
-}
-%
-\fancypagestyle{plain}{%
- \fancyhf{}
- \fancyfootoffset[OR]{1.85cm}
- \fancyfoot[OR]{%
- {\ }\tgherosfont%
- {\color{ctcolorfooterline}\rule[-90pt]{1.25pt}{100pt}}%
- \hspace*{10pt}\begin{minipage}[b]{1.5cm}%
- \color{ctcolorfooterpage}\normalsize\textbf{\thepage}%
- \end{minipage}%
- }
- \fancyfootoffset[EL]{1.85cm}
- \fancyfoot[EL]{%
- \tgherosfont%
- \begin{minipage}[b]{1.5cm}%
- \raggedleft\color{ctcolorfooterpage}\normalsize\textbf{\thepage}%
- \end{minipage}%
- \hspace*{10pt}{\color{ctcolorfooterline}\rule[-90pt]{1.25pt}{100pt}}%
- }
- \renewcommand{\headrulewidth}{0pt}
- \renewcommand{\footrulewidth}{0pt}
-}
-%
-\fancypagestyle{maincontentstyle}{%
- \pagestyle{plain}
- \fancyhf{}
- \fancyfootoffset[OR]{1.85cm}
- \fancyfoot[OR]{%
- {\ }\tgherosfont\footnotesize%
- \rightmark%
- \hspace*{0.75cm}{\color{ctcolorfooterline}\rule[-90pt]{1.25pt}{100pt}}%
- \hspace*{10pt}\begin{minipage}[b]{1.5cm}%
- \color{ctcolorfooterpage}\normalsize\textbf{\thepage}%
- \end{minipage}%
- }
- \fancyfootoffset[EL]{1.85cm}
- \fancyfoot[EL]{%
- \tgherosfont\footnotesize%
- \begin{minipage}[b]{1.5cm}%
- \raggedleft\color{ctcolorfooterpage}\normalsize\textbf{\thepage}%
- \end{minipage}%
- \footnotesize%
- \hspace*{10pt}{\color{ctcolorfooterline}\rule[-90pt]{1.25pt}{100pt}}%
- \hspace*{0.75cm}\leftmark%
- }
+ \markright{%
+ \ctfontfootertext
+ \setlength{\lensectionnumber}{0em}
+ \settowidth{\lensectionnumber}{\textbf{\thesection}\quad}
+ \protect\begin{minipage}[t]{.72\textwidth}%
+ {\ }% bad hack to prevent a wrong baseline for the minipage
+ \protect\raggedleft%
+ \hangindent=\lensectionnumber%
+ {\color{ctcolorfootermark}\textbf{\thesection}}%
+ \quad%
+ #1%
+ \protect\end{minipage}%
+ }%
+}
+
+%% Vertical line in the footer (between page number and mark)
+\newcommand{\ctfooterline}{%
+ \color{ctcolorfooterline}\rule[-90pt]{1.25pt}{100pt}%
+}
+
+%% Page number for odd (right) pages
+\newcommand{\ctfooterrightpagenumber}{%
+ \ctfooterline%
+ \hspace*{10pt}%
+ \begin{minipage}[b]{1.5cm}%
+ \pagemark\ %
+ \end{minipage}%
+}
+
+%% Page number for even (left) pages
+\newcommand{\ctfooterleftpagenumber}{%
+ \begin{minipage}[b]{1.5cm}%
+ \raggedleft\pagemark%
+ \end{minipage}%
+ \hspace*{10pt}%
+ \ctfooterline%
+}
+
+%% Defines the content for header and footer
+\lehead{}
+\cehead{}
+\rehead{}
+\lohead{}
+\cohead{}
+\rohead{}
+\lefoot[% > plain
+ \ctfooterleftpagenumber%
+]{% > srcheadings
+ \ctfooterleftpagenumber%
+ \hspace*{0.75cm}%
+ \headmark%
+}
+\cefoot{}
+\refoot{}
+\lofoot{}
+\cofoot{}
+\rofoot[% > plain
+ \ctfooterrightpagenumber%
+]{% > srcheadings
+ \headmark%
+ \hspace*{0.75cm}%
+ \ctfooterrightpagenumber%
}
+
% **************************************************
% New Commands
% **************************************************
@@ -485,13 +560,22 @@
\newcommand{\book}{\fontfamily{pbk}\fontseries{m}\fontsize{11}{13}\selectfont}
\newcommand{\tgherosfont}{\fontfamily{qhv}\selectfont}
-\newcommand{\thesispartlabelfont}{\color{ctcolorpartnum}\book\fontsize{60}{60}\selectfont}
-\newcommand{\thesispartfont}{\color{ctcolorparttext}\huge \tgherosfont\selectfont}
-\newcommand{\thesischapterfont}{\color{ctcolorblack}\huge \fontfamily{phv}\selectfont}
-%\newcommand{\thesissectionfont}{\color{ctcolormain}\LARGE\bfseries \tgherosfont}
-\newcommand{\thesissectionfont}{\color{ctcolorsection}\LARGE \tgherosfont}
-\newcommand{\thesissubsectionfont}{\color{ctcolorsubsection}\Large \tgherosfont}
-\newcommand{\thesisparagraphfont}{\color{ctcolorparagraph}\tgherosfont\small\bfseries}
+\newcommand{\thesispartlabelfont}{\color{ctcolorpartnum}\nobreak\book\fontsize{60}{60}\selectfont}
+\newcommand{\thesispartfont}{\color{ctcolorparttext}\nobreak\normalfont\huge \tgherosfont\selectfont}
+\newcommand{\thesischapterfont}{\color{ctcolorblack}\nobreak\normalfont\huge \fontfamily{phv}\selectfont}
+%\newcommand{\thesissectionfont}{\color{ctcolormain}\nobreak\LARGE\bfseries \tgherosfont}
+\newcommand{\thesissectionfont}{\color{ctcolorsection}\nobreak\normalfont\LARGE \tgherosfont}
+\newcommand{\thesissubsectionfont}{\color{ctcolorsubsection}\nobreak\normalfont\Large \tgherosfont}
+\newcommand{\thesisparagraphfont}{\color{ctcolorparagraph}\nobreak\tgherosfont\small\bfseries}
+
+\newcommand{\ctfontfooterpagenumber}{%
+ \color{ctcolorfooterpage}%
+ \normalfont\normalsize\bfseries \tgherosfont%
+}
+\newcommand{\ctfontfootertext}{%
+ \color{ctcolorfootertitle}%
+ \normalfont\footnotesize \tgherosfont%
+}
%
% headings
\setkomafont{part}{\thesispartfont} % for chapter entries
@@ -514,118 +598,103 @@
% -- modifications regarding sectioning (structural) commands,
% i.e. \part, \chapter, \section, \subsection, \subsubsection, \paragraph
%
-%
-% The package titlesec enables us to modify (style) the sectioning commands
-% -- usage: \titlespacing{\command}{left}{before-sep}{after-sep}[right-sep]
-% -- usage: \titleformat{\command}[shape]{format}{label}{sep}{before}[after]
-% -- usage: \titleclass{\command}{class}
-% -- classes: page (single page), top (like chapters),
-% straight (title in the middle)
-\RequirePackage{titlesec}
-%
+% ---------------------------
% > formats: \part
-\titleclass{\part}{top} % <-- display:
-\assignpagestyle{\part}{empty} % <-- no page numbers/decorations
-\titleformat{\part}%
- [display]%
- {\usekomafont{part}}%
- {\raggedleft{%
- {\thesispartlabelfont%
- \partname\ \thepart\ \quad}%
- {\color{ctcolorpartline}%
- \hspace*{-200pt}\rule[20pt]{600pt}{2pt}}
- }%
- }%
- {0em}%
- {\raggedleft}%
- [\phantomsection]
+% ---------------------------
+\renewcommand*{\partpagestyle}{empty}
+\renewcommand*{\raggedpart}{\raggedleft}
+\renewcommand*\partheadmidvskip{\par\vspace*{3em}}
+\renewcommand*{\partformat}{%
+ \usekomafont{part}%
+ \thesispartlabelfont%
+ \partname\ \thepart\quad%
+ {\color{ctcolorpartline}\hspace*{-200pt}\rule[0pt]{600pt}{2pt}}%
+}
%
+% ---------------------------
% > formats: \chapter
+% ---------------------------
+\renewcommand*\chapterheadstartvskip{\vspace*{-8.75em}}
+\renewcommand*\chapterheadendvskip{\vspace*{2.5\baselineskip}}
+\renewcommand*{\chapterformat}{%
+ \ctchapternumber{\thechapter}%
+}
+\renewcommand{\chapterlinesformat}[3]{%
+ \ctchaptertitle{#3}%
+ #2%
+}
+%\renewcommand{\chapterlineswithprefixformat}[3]{%
+% \ctchaptertitle{\@chapapp\ \thechapter: #3}%
+% #2%
+%}
+\newcommand{\ctchapternumber}[1]{%
+ \usekomafont{chapter}%
+ \begin{minipage}[t]{0.3\textwidth}%
+ \raggedleft{%
+ {\color{ctcolorchapterline}\rule[-5pt]{2pt}{5cm}}%
+ \quad%
+ {\color{ctcolorchapternum}\fontsize{60}{60}\selectfont#1}%
+ }%
+ \end{minipage}%
+}
+\newcommand{\ctchaptertitle}[1]{%
+ \usekomafont{chapter}%
+ \begin{minipage}[t]{0.7\textwidth}%
+ \vspace*{5.85em}%
+ \raggedright%
+ #1%
+ \end{minipage}%
+}
%
-% The following command is used to avoid overlapping
-% of the chapter headline text, see bug/ticket #1
-% Solution adapted according to the comment from "Gonzalo Medina" - Thanks
-% http://tex.stackexchange.com/questions/165878/width-of-chapter-section-with-...
-\newcommand\ctformatchapter[1]{\parbox[t]{\dimexpr\textwidth-4em\relax}{\raggedright#1}}
-%
-\titleformat{\chapter}[display]%
- {\usekomafont{chapter}}%
- {\vspace{-8em}\raggedleft{%
- {\color{ctcolorchapterline}%
- \rule[-5pt]{2pt}{5cm}}\quad%
- {\color{ctcolorchapternum}
- \fontsize{60}{60}\selectfont\thechapter}%
- }%
- }%
- {-2.1em}%
- {\ctformatchapter}%
- [\phantomsection]
-%
+% ---------------------------
% > formats: \section
-\titlespacing{\section}{0em}{.75em}{.2em}%[0pt]
-%\ifthenelse{\boolean{@sectionlabeloutside}}%
+% ---------------------------
\ifct@cthesis@hangsection
-% {%
- \titleformat{\section}[hang]%
- {\usekomafont{section}}%
- {\color{ctcolorblack}\thesection\hspace*{10pt}}%
- {0pt}%
- {\raggedright}%
- [\phantomsection]
-% }{%
+ \renewcommand*{\sectionformat}{%
+ \usekomafont{section}%
+ \makebox[0pt][r]{\color{ctcolorblack}\thesection\hspace*{10pt}}%
+ }
\else
- \titleformat{\section}[block]%
- {\usekomafont{section}}%
- {\color{ctcolorblack}\thesection\hspace*{10pt}}%
- {0pt}%
- {\raggedright}%
- [\phantomsection]
-% }
+ \renewcommand*{\sectionformat}{%
+ \usekomafont{section}%
+ {\color{ctcolorblack}\thesection\hspace*{10pt}}%
+ }
\fi
%
+% ---------------------------
% > formats: \subsection
-\titlespacing{\subsection}{0em}{.5em}{0em}%[0pt]
-%\ifthenelse{\boolean{@subsectionlabeloutside}}%
+% ---------------------------
\ifct@cthesis@hangsubsection
-% {%
- \titleformat{\subsection}[hang]%
- {\usekomafont{subsection}}%
- {\color{ctcolorblack}\thesubsection\hspace*{10pt}}%
- {0pt}%
- {\raggedright}%
- [\phantomsection]
-% }{%
+ \renewcommand*{\subsectionformat}{%
+ \usekomafont{subsection}%
+ \makebox[0pt][r]{\color{ctcolorblack}\thesubsection\hspace*{10pt}}%
+ }
\else
- \titleformat{\subsection}[block]%
- {\usekomafont{subsection}}%
- {\color{ctcolorblack}\thesubsection\hspace*{10pt}}%
- {0pt}%
- {\raggedright}%
- [\phantomsection]
-% }
+ \renewcommand*{\subsectionformat}{%
+ \usekomafont{subsection}%
+ {\color{ctcolorblack}\thesubsection\hspace*{10pt}}%
+ }
\fi
%
-% > formats: \paragraph
-\titlespacing{\paragraph}{0pt}{\parsep}{1em}%[0pt]
-% \titleformat{\paragraph}[runin]%
- % {\usekomafont{paragraph}}%
- % {}%
- % {}%
- % {}%
- % []
-%
%
% **************************************************
-% ToC, LoF, LoT
+% ToC, LoF, LoT, LoL
% **************************************************
%
% -- modifications regarding the table of contents,
-% the list of figures and the list of tables
+% the list of figures, list of tables,
+% and list of listings
%
%
% The tocloft package enables us to control the typographic design of the
% table of contents, list of figures and list of tables
\RequirePackage{tocloft}
+% - fixes wrong fonts in the toc, thanks to magnucki
+\renewcommand{\cftchapfont}{\usefont{T1}{bch}{b}{n}\selectfont}
+\renewcommand{\cfttoctitlefont}{\thesischapterfont}
+\renewcommand{\cftloftitlefont}{\thesischapterfont}
+\renewcommand{\cftlottitlefont}{\thesischapterfont}
+%
%
% > adjusts the indention for figure and table entries (lof and lot)
% -- \cftsetindents{entry}{indent}{numwidth} sets the entry's indent to
@@ -634,6 +703,23 @@
\cftsetindents{table}{0em}{3em}
%
%
+\ifct@cthesis@configurelistings
+ % makes lol to look like lof
+ \makeatletter
+ \begingroup\let\newcounter\@gobble\let\setcounter\@gobbletwo
+ \globaldefs\@ne \let\c@loldepth\@ne
+ \newlistof{listings}{lol}{\lstlistlistingname}
+ \endgroup
+ \let\l@lstlisting\l@listings
+ \AtBeginDocument{\addtocontents{lol}{\protect\addvspace{10\p@}}}
+ \makeatother
+ \renewcommand{\lstlistoflistings}{\listoflistings}
+ \renewcommand\lstlistlistingname{List of Listings}
+ \renewcommand{\cftloltitlefont}{\thesischapterfont}
+ \cftsetindents{listings}{0em}{3em}
+\fi
+%
+%
%
% **************************************************
% Mishmash
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cleanthesis.tlpobj new/tlpkg/tlpobj/cleanthesis.tlpobj
--- old/tlpkg/tlpobj/cleanthesis.tlpobj 2019-02-28 03:25:50.000000000 +0100
+++ new/tlpkg/tlpobj/cleanthesis.tlpobj 2019-06-27 01:54:22.000000000 +0200
@@ -1,14 +1,14 @@
name cleanthesis
category Package
-revision 38221
+revision 51472
shortdesc A clean LaTeX style for thesis documents
relocated 1
longdesc The package offers a clean, simple, and elegant LaTeX style for
longdesc thesis documents.
-runfiles size=6
+runfiles size=7
RELOC/tex/latex/cleanthesis/cleanthesis.sty
catalogue-ctan /macros/latex/contrib/cleanthesis
-catalogue-date 2016-06-24 19:18:15 +0200
+catalogue-date 2019-06-25 21:53:35 +0200
catalogue-license lppl1.3
catalogue-topics dissertation
-catalogue-version 0.3.1
+catalogue-version 0.4.0
++++++ clearsans.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/clearsans/README new/doc/fonts/clearsans/README
--- old/doc/fonts/clearsans/README 2014-06-25 17:10:24.000000000 +0200
+++ new/doc/fonts/clearsans/README 2019-10-25 23:01:54.000000000 +0200
@@ -1,4 +1,4 @@
-This is the README for the clearsans package, version 2014-05-28.
+This is the README for the clearsans package, version 2019-10-25.
This package provides LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX support
for the Clear Sans family of fonts (version 1.0), designed by Daniel
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/clearsans.doc.tlpobj new/tlpkg/tlpobj/clearsans.doc.tlpobj
--- old/tlpkg/tlpobj/clearsans.doc.tlpobj 2019-02-28 03:25:50.000000000 +0100
+++ new/tlpkg/tlpobj/clearsans.doc.tlpobj 2020-03-24 01:56:48.000000000 +0100
@@ -1,6 +1,6 @@
name clearsans.doc
category Package
-revision 34405
+revision 54512
shortdesc doc files of clearsans
relocated 1
docfiles size=58
++++++ clearsans.tar.xz ++++++
++++ 1973 lines of diff (skipped)
++++++ clrscode.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/clrscode/clrscode.tex new/doc/latex/clrscode/clrscode.tex
--- old/doc/latex/clrscode/clrscode.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/clrscode/clrscode.tex 2019-05-15 22:38:29.000000000 +0200
@@ -0,0 +1,744 @@
+% $Id$
+% $Log$
+
+\documentclass[11pt,mtbold]{article}
+\usepackage{mathtime}
+\usepackage{clrscode}
+\input{page}
+
+\newcommand{\subheading}[1]{\subsubsection*{#1}}
+\newcommand{\clrscode}{\texttt{clrscode}}
+\newcommand{\Codebox}{\texttt{codebox}}
+
+\begin{document}
+
+\title{Using the \clrscode{} Package in \LaTeXe}
+\author{Thomas H. Cormen \\ thc@cs.dartmouth.edu}
+\date{June 11, 2003}
+
+\maketitle
+
+\section{Introduction}
+\label{sec:intro}
+
+This document describes how to use the \clrscode{} package in
+\LaTeXe{} to typeset pseudocode in the style of \textit{Introduction
+to Algorithms}, Second edition, by Cormen, Leiserson, Rivest, and
+Stein (CLRS) \cite{CLRS01}. You use the commands in the same way we
+did in writing CLRS, and your output will look just like the
+pseudocode in the text.
+
+\section{Setup}
+\label{sec:setup}
+
+To get the \clrscode{} package, download
+http://www.cs.dartmouth.edu/\~{ }thc/clrscode/clrscode.sty .
+To use the package, include the following line in your source file:
+
+{\small
+\begin{verbatim}
+\usepackage{clrscode}
+\end{verbatim}
+}
+
+\noindent The \clrscode{} package itself includes the line
+
+{\small
+\begin{verbatim}
+\usepackage{latexsym}
+\end{verbatim}
+}
+
+\noindent This line is necessary in order to get the character $\rhd$
+for comments in pseudocode. Therefore, you will need to have the
+\texttt{latexsym} package installed and available on your system.
+
+\section{Typesetting names}
+\label{sec:names}
+
+Pseudocode in CLRS uses four types of names: identifiers, procedures,
+constants, and fixed functions. We provide commands \verb`\id`,
+\verb`\proc`, \verb`\const`, and \verb`\func` for these names. Each
+of these commands takes one argument, which is the name being typeset.
+These commands work both in and out of math mode. When used in math
+mode, and when the name given as an argument contains a dash, the dash
+is typeset as a hyphen rather than as a minus sign.
+
+\begin{description}
+
+\item[Identifiers:] Identifiers are used for variable and attribute
+names. When a variable name is just a single letter, e.g., the
+identifier $j$ in line~2 of \proc{Insertion-Sort} on page~17, we just
+typeset it in math mode: \verb`$j$`.
+
+Identifiers consisting of two or more letters, e.g., the attribute
+\id{length} in the same line of \proc{Insertion-Sort}, should not be
+typeset in this way. (See page~51 of Lamport \cite{Lamport93}.)
+Although \LaTeXe{} provides the \verb`\mathit` command for typesetting
+multiletter identifiers, we use our \verb`\id` command instead:
+\verb`\id{length}`. We recommend that you use it, too. Since the
+\verb`\id` command may be used both in and out of math mode, the source
+text
+
+{\small
+\begin{verbatim}
+We use the \id{length} attribute to denote the length of an array,
+e.g., $\id{length}[A]$.
+\end{verbatim}
+}
+
+\noindent will produce
+\begin{quote}
+We use the \id{length} attribute to denote the length of an array,
+e.g., $\id{length}[A]$.
+\end{quote}
+
+\sloppy
+
+To see how a dash turns into a hyphen, consider line~3
+of \proc{Max-Heapify} on page~130. Its source contains the text
+\verb`$l \leq \id{heap-size}[A]$`, which typesets as $l \leq
+\id{heap-size}[A]$. Using \verb`$l \leq \mathit{heap-size}[A]$` would
+produce $l \leq \mathit{heap-size}[A]$, with a minus sign rather than
+a hyphen in the identifier.
+
+\fussy
+
+\item[Procedures:] For procedure names, use the \verb`\proc` command.
+It typesets procedure names in small caps, and dashes (which occur
+frequently in our procedure names) are typeset as hyphens. Thus, the
+source \verb`\proc{Insertion-Sort}` produces \proc{Insertion-Sort}.
+Since you can use the \verb`\proc` command both in and out of math mode,
+the source text
+
+{\small
+\begin{verbatim}
+We call \proc{Insertion-Sort} with an array $A$, so that the
+call is $\proc{Insertion-Sort}(A)$.
+\end{verbatim}
+}
+
+\noindent will produce
+\begin{quote}
+We call \proc{Insertion-Sort} with an array $A$, so that the
+call is $\proc{Insertion-Sort}(A)$.
+\end{quote}
+
+\item[Constants:] We typeset constants like \const{nil}, \const{true},
+and \const{red} in small caps with the \verb`\const` command, e.g.,
+\verb`\const{nil}`, \verb`\const{true}`, and \verb`\const{red}`. I
+don't think that any of our constants have dashes in them, but the
+\verb`\const` command would typeset a dash within a constant name as a
+hyphen, so that \verb`$\const{red-and-black}$` will produce
+$\const{red-and-black}$.
+
+\item[Fixed functions:] We typeset the names of fixed functions in
+plain old roman with the \verb`\func` command, e.g., \func{level} and
+\func{out-degree}. By a ``fixed function,'' we mean a function that
+is a specific, given function. For example, the $\sin$ function is
+typically typeset in roman; $\sin x$ looks right, but wouldn't
+$\id{sin} x$ look strange? Yet, on page~42, $\Theta(g(n))$ looks
+right, but $\Theta(\textrm{g}(n))$ would look wrong, since $g$ is a
+variable that stands for any one of a number of functions.
+
+As with the other commands for names, a dash within a function name will
+typeset as a hyphen, so that \verb`$\func{out-degree}$` will produce
+$\func{out-degree}$ rather than $\textrm{out}-\textrm{degree}$. Note
+that \LaTeXe{} provides commands for many fixed functions, such as
+$\sin$ and $\log$; Table 3.9 on page~44 of~\cite{Lamport93} lists
+these ``log-like'' functions.
+
+\end{description}
+
+There is one other command that doesn't really fit anywhere else, so
+I'll mention it here. We denote subarrays with the ``$\twodots$''
+notation, which is produced by the \verb`\twodots` command. Thus, the
+source text \verb`$A[1 \twodots j-1]$` will produce $A[1 \twodots
+j-1]$. The \verb`\twodots` command must be used in math mode.
+
+\section{The \Codebox{} environment}
+\label{sec:codebox}
+
+We typeset pseudocode by putting it in a \Codebox{} environment. A
+\Codebox{} is a section of code that will not break across pages (I
+hope).
+
+\subheading{Contents of a \Codebox{}}
+
+Each procedure should go in a separate \Codebox{}, even if you have
+multiple procedures appearing consecutively. The only possible reason
+I can think of to put more than one procedure in a single \Codebox{}
+is to ensure that the procedures appear on the same page. If you
+really need your procedures to appear on the same page, there are
+other means in \LaTeXe, such as the \texttt{minipage} environment,
+that you can use. Moreover, if you have written your procedures so
+that they have to appear on the same page, you should probably be
+asking yourself whether they are too interdependent.
+
+The typical structure within a \Codebox{} is as follows. Usually, the
+first line is the name of a procedure, along with a list of
+parameters. (Not all \Codebox{}es include procedure names; for
+example, see the pseudocode near the bottom of page~306 of CLRS\@.)
+After the line containing the procedure name comes one or more lines
+of code, usually numbered. Some of the lines may be unnumbered, being
+continuations of previous lines. In rare cases, when there is just
+one line of code per procedure, we don't bother numbering the line;
+see the \proc{Parent}, \proc{Left}, and \proc{Right} procedures on
+page~128 for example. Lines are usually numbered starting from~1, but
+again there are exceptions, such as the pseudocode near the bottom of
+page~306.
+
+\subheading{Using \texttt{$\backslash$Procname} to name the procedure}
+
+The \verb`\Procname` command specifies the name of the procedure. It
+takes as a parameter the procedure name and parameters, typically all
+in math mode. \verb`\Procname` makes its argument flush left against
+the margin, and it leaves a little bit of extra space below the line.
+For example, here is how we typeset the \proc{Insertion-Sort}
+procedure on page~17:
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Insertion-Sort}(A)$}
+\li \For $j \gets 2$ \To $\id{length}[A]$
+\li \Do
+ $\id{key} \gets A[j]$
+\li \Comment Insert $A[j]$ into the sorted sequence
+ $A[1 \twodots j-1]$.
+\li $i \gets j-1$
+\li \While $i > 0$ and $A[i] > \id{key}$
+\li \Do
+ $A[i+1] \gets A[i]$
+\li $i \gets i-1$
+ \End
+\li $A[i+1] \gets \id{key}$
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+\subheading{Using \texttt{$\backslash$li} and \texttt{$\backslash$zi}
+to start new lines}
+
+To start a new, numbered line, use the \verb`\li` command. To start a
+new, \emph{un}numbered line, use the \verb`\zi` command. Note that
+since a \Codebox{} is not like the \verb`verbatim` environment, the
+line breaks within the source text do not correspond to the line
+breaks in the typeset output.
+
+\subheading{Tabs}
+
+I find that it is best to set the tab stops to every 4 characters when
+typing in and displaying pseudocode source with the \clrscode{}
+package. I use emacs, and to get the tabs set up the way I want them,
+my \mbox{\texttt{tex-mode.el}} file includes the line
+\verb`(setq tab-width 4)`. For reasons I do not understand, sometimes
+emacs ``forgets'' this setting, and I have to do a little friendly
+persuasion.
+
+A \Codebox{} environment has a \verb`tabbing` environment within it.
+The tab stops come in pairs, in that each pair of tab stops gives one
+level of indentation. Tab stops are paired up so that when we typeset
+the keywords \kw{then} and \kw{else}, they have the correct vertical
+alignment. In other words, within each pair of tab stops, the first
+stop is where \kw{then} and \kw{else} begin, and the second stop
+completes a full level of indentation. For the most part, you won't
+need to be concerned with tabs. The primary exception is when you
+want to include a comment at the end of a line of pseudocode, and
+especially when you want to include comments after several lines and
+you want the comments to vertically align. Note that the
+\verb`tabbing` environment within a codebox has nothing to do with
+tabs that you enter in your source code; when you press the TAB key,
+that's the same as pressing the space bar in the eyes of \LaTeXe{}.
+
+\subheading{Commands for keywords}
+
+As you can see from the source for \proc{Insertion-Sort}, there are
+commands \verb`\For`, \verb`\Do`, and \verb`\While` that produce the
+keywords \kw{for}, \kw{do}, and \kw{while}. \verb`\Do` and some other
+commands also affect indentation.
+
+Sometimes you want to include a keyword in the main text, as I have
+done in several places in this document. Use the \verb`\kw` command
+to do so. For example, to produce a sentence that appeared two
+paragraphs ago, I typed in the following:
+
+{\small
+\begin{verbatim}
+Tab stops are paired up so that when we typeset the keywords \kw{then}
+and \kw{else}, they have the correct vertical alignment.
+\end{verbatim}
+}
+
+The following commands simply produce their corresponding keywords,
+typeset in boldface: \verb`\For`, \verb`\To`, \verb`\Downto`,
+\verb`\By`, \verb`\While`, \verb`\If`, \verb`\Return`, \verb`\Goto`,
+and \verb`\Error`. Although you could achieve the same effect with
+the \verb`\kw` command (e.g., \verb`\kw{for}` instead of \verb`\For`),
+you will find it easier and more readable to use the above commands.
+The \verb`\Comment` command simply produces the comment symbol~$\rhd$.
+None of the above commands affects indentation.
+
+In \kw{for} loops and \kw{while} loops, the important commands are
+\verb`\Do` and \verb`\End`. \verb`\Do` produces the keyword \kw{do},
+and it also increments the indentation level. \verb`\End` simply
+decrements the indentation level, and it is the way to end any
+\kw{for} or \kw{while} loop or otherwise decrement the indentation
+level.
+
+As you can see from the above example, I like to place each \verb`\Do`
+and \verb`\End` on its own line. You can of course format your source
+text as you like, but I find that the way I format pseudocode makes it
+easy to match up \verb`\Do`-\verb`\End` pairs.
+
+We also use \verb`\End` to terminate an \kw{if}-\kw{then} or
+\kw{if}-\kw{then}-\kw{else} construct. For an example of
+\kw{if}-\kw{then}, here's the \proc{Merge-Sort} procedure on page~32:
+
+\newpage
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Merge-Sort}(A, p, r)$}
+\li \If $p < r$
+\li \Then
+ $q \gets \floor{(p + r) / 2}$
+\li $\proc{Merge-Sort}(A, p, q)$
+\li $\proc{Merge-Sort}(A, q+1, r)$
+\li $\proc{Merge}(A, p, q, r)$
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent For a more complicated example, using
+\kw{if}-\kw{then}-\kw{else}, here's the \proc{Tree-Insert} procedure
+on page~261:
+
+{\footnotesize
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Tree-Insert}(T,z)$}
+\li $y \gets \const{nil}$
+\li $x \gets \id{root}[T]$
+\li \While $x \neq \const{nil}$
+\li \Do
+ $y \gets x$
+\li \If $\id{key}[z] < \id{key}[x]$
+\li \Then $x \gets \id{left}[x]$
+\li \Else $x \gets \id{right}[x]$
+ \End
+ \End
+\li $p[z] \gets y$
+\li \If $y = \const{nil}$
+\li \Then
+ $\id{root}[T] \gets z$\>\>\>\>\>\>\>\>\Comment Tree $T$ was empty
+\li \Else
+ \If $\id{key}[z] <\ id{key}[y]$
+\li \Then $\id{left}[y]\ gets z$
+\li \Else $\id{right}[y] \gets z$
+ \End
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent As you can see, I like to line up the \verb`\End` commands
+under the \verb`\Then` and \verb`\Else` commands. I could just as
+easily have chosen to line up \verb`\End` under the \verb`\If` command
+instead. I also sometimes elect to put the ``then'' or ``else'' code
+on the same source line as the \verb`\Then` or \verb`\Else` command,
+especially when that code is short.
+
+The \proc{Tree-Insert} example also shows how we put a comment on the
+same line as code. Via the tab command \verb`\>`, we explicitly tab
+to where we want the comment to begin and then use the \verb`\Comment`
+command to produce the comment symbol. When there are several lines
+with comments, you probably want them to align vertically. I just add
+tab characters, using a trial-and-error approach, until I am pleased
+with the result. For example, here's how we produced the
+\proc{KMP-Matcher} procedure on page~926:
+
+\newpage
+
+{\footnotesize
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{KMP-Matcher}(T,P)$}
+\li $n \gets \id{length}[T]$
+\li $m \gets \id{length}[P]$
+\li $\pi \gets \proc{Compute-Prefix-Function}(P)$
+\li $q \gets 0$\>\>\>\>\>\>\>\>\>\>\Comment Number of characters matched.
+\li \For $i \gets 1$ \To $n$\>\>\>\>\>\>\>\>\>\>\Comment
+ Scan the text from left to right.
+\li \Do
+ \While $q > 0$ and $\Px{q+1} \neq \Tx{i}$
+\li \Do $q \gets \pi[q]$\>\>\>\>\>\>\Comment Next character does not match.
+ \End
+\li \If $\Px{q+1} = \Tx{i}$
+\li \Then $q \gets q+1$\>\>\>\>\>\>\Comment Next character matches.
+ \End
+\li \If $q = m$\>\>\>\>\>\>\>\>\Comment Is all of $P$ matched?
+\li \Then
+ print ``Pattern occurs with shift'' $i-m$
+\li $q \gets \pi[q]$\>\>\>\>\>\>\Comment Look for the next match.
+ \End
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent All six comments align nicely.
+
+For a \kw{repeat} loop, use the \verb`\Repeat` and \verb`\Until`
+commands, as in the \proc{Hash-Insert} procedure on page~238:
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Hash-Insert}(T,k)$}
+\li $i \gets 0$
+\li \Repeat
+ $j \gets h(k,i)$
+\li \If $T[j] = \const{nil}$
+\li \Then
+ $T[j]\gets k$
+\li \Return $j$
+\li \Else
+ $i \gets i+1$
+ \End
+\li \Until $i = m$
+\li \Error ``hash table overflow''
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent Note that the \verb`\Until` command has an implied
+\verb`\End`.
+
+Sometimes, you need more complicated ``\kw{if}-ladders'' than you can
+get from the \verb`\Then` and \verb`\Else` commands. The
+\proc{Randomized-Select} procedure on page~186 provides an example,
+and it uses the \verb`\ElseIf` and \verb`\ElseNoIf` commands:
+
+\newpage
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Randomized-Select}(A, p, r, i)$}
+\li \If $p = r$
+\li \Then \Return $A[p]$
+ \End
+\li $q \gets \proc{Randomized-Partition}(A, p, r)$
+\li $k \gets q - p +1$
+\li \If $i = k$\>\>\>\>\Comment the pivot value is the answer
+\li \Then \Return $A[q]$
+\li \ElseIf $i < k$
+\li \Then \Return $\proc{Randomized-Select}(A, p, q-1, i)$
+\li \ElseNoIf \Return $\proc{Randomized-Select}(A, q+1, r, i-k)$
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent For an \kw{if}-ladder, use \verb`\Then` for the first case,
+\verb`\ElseNoIf` for the last case, and \verb`\ElseIf` for all
+intermediate cases. An \kw{if}-ladder is terminated by \verb`\End`.
+As another example, here is the \proc{Segments-Intersect} procedure on
+page~937:
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Segments-Intersect}(p_1, p_2, p_3, p_4)$}
+\li $d_1 \gets \proc{Direction}(p_3, p_4, p_1)$
+\li $d_2 \gets \proc{Direction}(p_3, p_4, p_2)$
+\li $d_3 \gets \proc{Direction}(p_1, p_2, p_3)$
+\li $d_4 \gets \proc{Direction}(p_1, p_2, p_4)$
+\li \If $((d_1 > 0 \mbox{ and } d_2 < 0) \mbox{ or }
+ (d_1 < 0 \mbox{ and } d_2 > 0))$ and
+ \Indentmore
+\zi $((d_3 > 0 \mbox{ and } d_4 < 0) \mbox{ or }
+ (d_3 < 0 \mbox{ and } d_4 > 0))$
+ \End
+\li \Then \Return \const{true}
+\li \ElseIf $d_1 = 0$ and $\proc{On-Segment}(p_3, p_4, p_1)$
+\li \Then \Return \const{true}
+\li \ElseIf $d_2 = 0$ and $\proc{On-Segment}(p_3, p_4, p_2)$
+\li \Then \Return \const{true}
+\li \ElseIf $d_3 = 0$ and $\proc{On-Segment}(p_1, p_2, p_3)$
+\li \Then \Return \const{true}
+\li \ElseIf $d_4 = 0$ and $\proc{On-Segment}(p_1, p_2, p_4)$
+\li \Then \Return \const{true}
+\li \ElseNoIf \Return \const{false}
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+This example also shows our first use of an unnumbered line: the
+second half of the tests on line~5. We use \verb`\zi` to indicate
+that we're starting an unnumbered line.
+
+\subheading{Indentation}
+
+We also wish to indent the unnumbered line after line~5 by one level
+more than the line above it. We do so with the \verb`\Indentmore`
+command. The \verb`\End` command following the indented line
+decrements the indentation level back to what it was prior to the
+\verb`\Indentmore`. If I had wanted to indent the line by two levels,
+I would have used two \verb`\Indentmore` commands before the line and
+two \verb`\End` commands afterward. (Recall that \verb`\End` simply
+decrements the indentation level.)
+
+Upon seeing the \verb`\end{codebox}` command, the \Codebox{}
+environment checks that the indentation level is back to where it was
+when it started, namely an indentation level of~0. If it is not, you
+will get a warning message like the following:
+
+{\small
+\begin{verbatim}
+Warning: Indentation ends at level 1 in codebox on page 1.
+\end{verbatim}
+}
+
+\noindent This message would indicate that there is one missing
+\verb`\End` command. On the other hand, you might have one too many
+\verb`\End` commands, in which case you would get
+
+{\small
+\begin{verbatim}
+Warning: Indentation ends at level -1 in codebox on page 1.
+\end{verbatim}
+}
+
+\subheading{Right justification}
+
+The final two commands, \verb`\RComment` and \verb`\Flushright`, are
+infrequently used and pertain to right justification.
+\verb`\RComment` produces a comment that is flush against the right
+margin. For example, here is how we typeset the
+\proc{Binomial-Heap-Union} procedure on page~463:
+
+\newpage
+
+{\footnotesize
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Binomial-Heap-Union}(H_1,H_2)$}
+\li $H \gets \proc{Make-Binomial-Heap}()$
+\li $\id{head}[H] \gets \proc{Binomial-Heap-Merge}(H_1,H_2)$
+\li free the objects $H_1$ and $H_2$ but not the lists they point to
+\li \If $\id{head}[H] = \const{nil}$
+\li \Then \Return $H$
+ \End
+\li $\id{prev-x} \gets \const{nil}$
+\li $x \gets \id{head}[H]$
+\li $\id{next-x} \gets \id{sibling}[x]$
+\li \While $\id{next-x} \neq \const{nil}$
+\li \Do
+ \If $(\id{degree}[x] \neq \id{degree}[\id{next-x}])$ or
+\zi \Flushright $(\id{sibling}[\id{next-x}] \neq \const{nil}$
+ and $\id{degree}[\id{sibling}[\id{next-x}]] = \id{degree}[x])$
+\li \Then
+ $\id{prev-x} \gets x$
+ \RComment Cases 1 and 2
+\li $x \gets \id{next-x}$
+ \RComment Cases 1 and 2
+\li \Else
+ \If $\id{key}[x] \leq \id{key}[\id{next-x}]$
+\li \Then
+ $\id{sibling}[x] \gets \id{sibling}[\id{next-x}]$
+ \RComment Case 3
+\li $\proc{Binomial-Link}(\id{next-x},x)$
+ \RComment Case 3
+\li \Else
+ \If $\id{prev-x} = \const{nil}$
+ \RComment Case 4
+\li \Then $\id{head}[H] \gets \id{next-x}$
+ \RComment Case 4
+\li \Else $\id{sibling}[\id{prev-x}] \gets
+ \id{next-x}$
+ \RComment Case 4
+ \End
+\li $\proc{Binomial-Link}(x,\id{next-x})$
+ \RComment Case 4
+\li $x \gets \id{next-x}$
+ \RComment Case 4
+ \End
+ \End
+\li $\id{next-x} \gets \id{sibling}[x]$
+ \End
+\li \Return $H$
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent This procedure is also the only place in CLRS in which we
+used the \verb`\Flushright` command. It puts the unnumbered line
+following line~10 flush against the right margin.
+
+\subheading{Referencing line numbers}
+
+In the source files for CLRS, there are no absolute references to line
+numbers. We use \emph{only} symbolic references. The \Codebox{}
+environment is set up to allow you to place \verb`\label` commands on
+lines of pseudocode and then reference these labels. The references
+will resolve to the line numbers. Our convention is that any label
+for a line number begins with \verb`\li:`, but you can name the labels
+any way that you like.
+
+For example, here's how we \emph{really} wrote the
+\proc{Insertion-Sort} procedure on page~17:
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Insertion-Sort}(A)$}
+\li \For $j \gets 2$ \To $\id{length}[A]$
+ \label{li:ins-sort-for}
+\li \Do $\id{key} \gets A[j]$ \label{li:ins-sort-pick}
+ \label{li:ins-sort-for-body-begin}
+\li \Comment Insert $A[j]$ into the sorted sequence
+ $A[1 \twodots j-1]$.
+\li $i \gets j-1$ \label{li:ins-sort-find-begin}
+\li \While $i > 0$ and $A[i] > \id{key}$
+ \label{li:ins-sort-while}
+\li \Do
+ $A[i+1] \gets A[i]$ \label{li:ins-sort-while-begin}
+\li $i \gets i-1$ \label{li:ins-sort-find-end}
+ \label{li:ins-sort-while-end}
+ \End
+\li $A[i+1] \gets \id{key}$ \label{li:ins-sort-ins}
+ \label{li:ins-sort-for-body-end}
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent Note that any line may have multiple labels. As an example
+of referencing these labels, here's the beginning of the first item
+under ``Pseudocode conventions'' on page~19:
+
+{\small
+\begin{verbatim}
+\item For example, the body of the \kw{for} loop that begins on
+line~\ref{li:ins-sort-for} consists of lines
+\ref{li:ins-sort-for-body-begin}--\ref{li:ins-sort-for-body-end},
+and the body of the \kw{while} loop that begins on
+line~\ref{li:ins-sort-while} contains lines
+\ref{li:ins-sort-while-begin}--\ref{li:ins-sort-while-end} but
+not line~\ref{li:ins-sort-for-body-end}.
+\end{verbatim}
+}
+
+\subheading{Setting line numbers}
+
+On rare occasions, we needed to start line numbers somewhere other
+than~1. Use the \verb`setlinenumber` command to set the next line
+number. For example, in Exercise~24.2-2 on page~594, we want the line
+number to be the same as a line number within the
+\proc{Dag-Shortest-Paths} procedure on page~592. Here's the source
+for the exercise:
+
+{\small
+\begin{verbatim}
+Suppose we change line~\ref{li:dag-sp-loop-begin} of
+\proc{Dag-Shortest-Paths} to read
+
+\begin{codebox}
+\setlinenumber{li:dag-sp-loop-begin}
+\li \For the first $\card{V}-1$ vertices, taken in topologically sorted order
+\end{codebox}
+Show that the procedure would remain correct.
+\end{verbatim}
+}
+
+\noindent The \proc{Dag-Shortest-Paths} procedure is
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Dag-Shortest-Paths}(G,w,s)$}
+\li topologically sort the vertices of $G$ \label{li:dag-sp-topo-sort}
+\li $\proc{Initialize-Single-Source}(G,s)$ \label{li:dag-sp-init}
+\li \For each vertex $u$, taken in topologically sorted order
+ \label{li:dag-sp-loop-begin}
+\li \Do
+ \For each vertex $v \in \id{Adj}[u]$
+ \label{li:dag-sp-inner-begin}
+\li \Do $\proc{Relax}(u,v,w)$ \label{li:dag-sp-loop-end}
+ \End
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+Even more rarely (just once, in fact), we needed to set a line number
+to be some other line number plus an offset. That was in the two
+lines of pseudocode near the bottom of page~306, where the first line
+number had to be one greater than the number of the last line of
+\proc{Left-Rotate} on page~278. Use the \verb`setlinenumberplus`
+command:
+
+{\footnotesize
+\begin{verbatim}
+\begin{codebox}
+\setlinenumberplus{li:left-rot-parent}{1}
+\li $\id{size}[y] \gets \id{size}[x]$
+\li $\id{size}[x] \gets \id{size}[\id{left}[x]] + \id{size}[\id{right}[x]] + 1$
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent Here, the last line of \proc{Left-Rotate} has
+\verb`\label{li:left-rot-parent}`.
+
+\section{Reporting bugs}
+\label{sec:bugs}
+
+If you find errors in the \clrscode{} package, please send me email
+(thc@cs.dartmouth.edu). It would be best if your message included
+everything I would require to elicit the error myself.
+
+The \texttt{clrscode.sty} file contains the following disclaimer:
+
+{\small
+\begin{verbatim}
+% Written for general distribution by Thomas H. Cormen, June 2003.
+
+% The author grants permission for anyone to use this macro package and
+% to distribute it unchanged without further restriction. If you choose
+% to modify this package, you must indicate that you have modified it
+% prior to your distributing it. I don't want to get bug reports about
+% changes that *you* have made!
+\end{verbatim}
+}
+
+\noindent I have enough trouble keeping up with my own bugs; I don't
+want to hear about bugs that others have introduced in the package!
+
+\section{Revision history}
+
+\begin{itemize}
+
+\item 11 June 2003. Initial revision of document and code.
+
+\end{itemize}
+
+\begin{thebibliography}{9}
+
+\bibitem{CLRS01} Thomas H. Cormen, Charles E. Leiserson, Ronald L.
+Rivest, and Clifford Stein. \textit{Introduction to Algorithms},
+second edition. The MIT Press and McGraw-Hill, 2001.
+
+\bibitem{Lamport93} Leslie Lamport. \textit{\LaTeX: A Document
+Preparation System User's Guide and Reference Manual}.
+Addison-Wesley, 1993.
+
+\end{thebibliography}
+
+\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/clrscode/page.tex new/doc/latex/clrscode/page.tex
--- old/doc/latex/clrscode/page.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/clrscode/page.tex 2019-05-15 22:38:29.000000000 +0200
@@ -0,0 +1,18 @@
+\setlength{\oddsidemargin}{0in}
+\setlength{\evensidemargin}{0in}
+\setlength{\textwidth}{6.5in}
+\setlength{\topmargin}{0in}
+\setlength{\textheight}{8.5in}
+\setlength{\headheight}{0pt}
+\setlength{\headsep}{0pt}
+
+\setcounter{topnumber}{3}%
+\def\topfraction{.7}%
+\setcounter{bottomnumber}{1}
+\def\bottomfraction{.3}
+\setcounter{totalnumber}{5}%
+\def\textfraction{.1}% was .2
+\def\floatpagefraction{.7}% was .7
+\setcounter{dbltopnumber}{2}
+\def\dbltopfraction{.7}
+\def\dblfloatpagefraction{.5}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/clrscode.doc.tlpobj new/tlpkg/tlpobj/clrscode.doc.tlpobj
--- old/tlpkg/tlpobj/clrscode.doc.tlpobj 2019-02-28 03:25:54.000000000 +0100
+++ new/tlpkg/tlpobj/clrscode.doc.tlpobj 2019-05-16 01:38:19.000000000 +0200
@@ -1,8 +1,10 @@
name clrscode.doc
category Package
-revision 15878
+revision 51136
shortdesc doc files of clrscode
relocated 1
-docfiles size=11
+docfiles size=19
RELOC/doc/latex/clrscode/README
RELOC/doc/latex/clrscode/clrscode.pdf
+ RELOC/doc/latex/clrscode/clrscode.tex
+ RELOC/doc/latex/clrscode/page.tex
++++++ clrscode.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/clrscode.tlpobj new/tlpkg/tlpobj/clrscode.tlpobj
--- old/tlpkg/tlpobj/clrscode.tlpobj 2019-02-28 03:25:54.000000000 +0100
+++ new/tlpkg/tlpobj/clrscode.tlpobj 2019-05-16 01:38:19.000000000 +0200
@@ -1,6 +1,6 @@
name clrscode
category Package
-revision 15878
+revision 51136
shortdesc Typesets pseudocode as in Introduction to Algorithms
relocated 1
longdesc This package allows you to typeset pseudocode in the style of
@@ -13,7 +13,7 @@
RELOC/tex/latex/clrscode/clrscode.sty
catalogue-also newalg clrscode3e
catalogue-ctan /macros/latex/contrib/clrscode
-catalogue-date 2016-06-24 19:18:15 +0200
+catalogue-date 2019-05-15 17:29:17 +0200
catalogue-license lppl
catalogue-topics pseudocode
catalogue-version 1.7
++++++ clrscode3e.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/clrscode3e/README.TEXLIVE new/doc/latex/clrscode3e/README.TEXLIVE
--- old/doc/latex/clrscode3e/README.TEXLIVE 2014-08-10 01:20:30.000000000 +0200
+++ new/doc/latex/clrscode3e/README.TEXLIVE 1970-01-01 01:00:00.000000000 +0100
@@ -1,7 +0,0 @@
-The following files have been removed in the TeX Live installation of
-the current package, typically due to duplication, lack of space, or
-missing source code. You can find these files on CTAN at
- http://mirror.ctan.org/macros/latex/contrib/clrscode3e
-If questions or concerns, email tex-live@tug.org.
-
- clrscode3e.pdf
Binary files old/doc/latex/clrscode3e/clrscode3e.pdf and new/doc/latex/clrscode3e/clrscode3e.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/clrscode3e/clrscode3e.tex new/doc/latex/clrscode3e/clrscode3e.tex
--- old/doc/latex/clrscode3e/clrscode3e.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/clrscode3e/clrscode3e.tex 2019-05-15 22:38:43.000000000 +0200
@@ -0,0 +1,999 @@
+\documentclass[11pt]{article}
+\usepackage{times}
+\usepackage[mtpcal,mtphrb,zswash,subscriptcorrection]{mtpro2}
+\usepackage{clrscode3e}
+\usepackage{url}
+\urlstyle{rm}
+\input{page}
+
+\newcommand{\subheading}[1]{\subsubsection*{#1}}
+\newcommand{\clrscodethree}{\texttt{clrscode3e}}
+\newcommand{\Codebox}{\texttt{codebox}}
+\newcommand{\defn}[1]{\textit{\textbf{#1}}}
+
+\begin{document}
+
+\title{Using the \clrscodethree{} Package in \LaTeXe}
+\author{Thomas H. Cormen \\ thc@cs.dartmouth.edu}
+\date{February 20, 2018}
+
+\maketitle
+
+\section{Introduction}
+\label{sec:intro}
+
+This document describes how to use the \clrscodethree{} package in
+\LaTeXe{} to typeset pseudocode in the style of \textit{Introduction
+to Algorithms}, Third edition, by Cormen, Leiserson, Rivest, and Stein
+(CLRS 3/e) \cite{CLRS09}. You use the commands\footnote{We use the
+term ``command'' rather than ``macro'' throughout this document,
+though ``macro'' would work just as well.} in the same way we did in
+writing CLRS 3/e, and your output will look just like the pseudocode
+in the text.
+
+\section{Setup}
+\label{sec:setup}
+
+To get the \clrscodethree{} package, download
+\url{http://www.cs.dartmouth.edu/~thc/clrscode/clrscode3e.sty}, and
+put it where it will be found when you run \LaTeXe{}. To use the
+package, include the following line in your source file:
+
+{\small
+\begin{verbatim}
+\usepackage{clrscode3e}
+\end{verbatim}
+}
+
+\noindent The \clrscodethree{} package itself includes the line
+
+{\small
+\begin{verbatim}
+\RequirePackage{graphics} % needed for \scalebox command
+\end{verbatim}
+}
+
+\noindent This line is necessary in order to get the right spacing for
+the $\isequal$ symbol that we use for equality tests. Therefore, you
+will need to have the \texttt{graphics} package installed and
+available on your system.
+
+\section{Typesetting names}
+\label{sec:names}
+
+Pseudocode in CLRS 3/e uses four types of names: identifiers,
+procedures, constants, and fixed functions. We provide commands
+\verb`\id`, \verb`\proc`, \verb`\const`, and \verb`\func` for these
+names. Each of these commands takes one argument, which is the name
+being typeset. These commands work both in and out of math mode.
+When used in math mode, and when the name given as an argument
+contains a dash, the dash is typeset as a hyphen rather than as a
+minus sign.
+
+\begin{description}
+
+\item[Identifiers:] Use identifiers for variable names of more than
+one character. When a variable name is just a single character, e.g.,
+the identifier~$j$ in line~1 of \proc{Insertion-Sort} on page~18, we
+just typeset it in math mode rather than using the \verb`\id` command:
+\verb`$j$`.
+
+\sloppy
+
+Do not typeset identifiers consisting of two or more characters, e.g.,
+the variable \id{key} in line~2 of \proc{Insertion-Sort}, in this way.
+(See page~51 of Lamport \cite{Lamport93}.) Although \LaTeXe{}
+provides the \verb`\mathit` command for typesetting multiletter
+identifiers, use our \verb`\id` command instead: \verb`\id{key}`,
+rather than \verb`\mathit{key}` or---horrors!---\verb`$key$`. Since
+the \verb`\id` command may be used both in and out of math mode, the
+source text
+
+\fussy
+
+{\small
+\begin{verbatim}
+Line~5 uses the variable \id{key} in the test $A[i] > \id{key}$.
+\end{verbatim}
+}
+
+\noindent will produce
+\begin{quote}
+Line~5 uses the variable \id{key} in the test $A[i] > \id{key}$.
+\end{quote}
+
+To see how a dash turns into a hyphen, consider line~1 of
+\proc{Find-Max-Crossing-Subarray} on page~71. It contains the
+variable \id{left-sum}. Typesetting this variable name by
+\verb`\id{left-sum}` produces a hyphen in the identifier, but
+typesetting it by \verb`\mathit{left-sum}` would produce
+$\mathit{left-sum}$, with a minus sign---rather than a hyphen---in the
+identifier.
+
+\item[Procedures:] For procedure names, use the \verb`\proc` command.
+It typesets procedure names in small caps, and dashes (which occur
+frequently in our procedure names) are typeset as hyphens. Thus, the
+source \verb`\proc{Insertion-Sort}` produces \proc{Insertion-Sort}.
+Since you can use the \verb`\proc` command both in and out of math mode,
+the source text
+
+{\small
+\begin{verbatim}
+We call \proc{Insertion-Sort} with an array $A$, so that the
+call is $\proc{Insertion-Sort}(A)$.
+\end{verbatim}
+}
+
+\noindent will produce
+\begin{quote}
+We call \proc{Insertion-Sort} with an array $A$, so that the
+call is $\proc{Insertion-Sort}(A)$.
+\end{quote}
+
+\item[Constants:] We typeset constants such as \const{nil},
+\const{true}, and \const{red} in small caps with the \verb`\const`
+command, e.g., \verb`\const{nil}`, \verb`\const{true}`, and
+\verb`\const{red}`. The \verb`\const` command typesets a dash within
+a constant name as a hyphen, so that, as on page~409,
+\verb`\const{no-such-path}` will produce $\const{no-such-path}$.
+
+\item[Fixed functions:] We typeset the names of fixed functions in
+plain old roman with the \verb`\func` command, e.g., \func{level} and
+\func{out-degree}. By a ``fixed function,'' we mean a function that
+is a specific, given function. For example, the $\sin$ function is
+typically typeset in roman; $\sin x$ looks right, but wouldn't
+$\id{sin}\ x$ look strange? Yet, on page~44, $\Theta(g(n))$ looks
+right, but $\Theta(\textrm{g}(n))$ would look wrong, since $g$ is a
+variable that stands for any one of a number of functions.
+
+As with the other commands for names, a dash within a function name
+will typeset as a hyphen, so that \verb`\func{out-degree}` will
+produce \func{out-degree} rather than $\textrm{out}-\textrm{degree}$.
+Note that \LaTeXe{} provides commands for many fixed functions, such
+as $\sin$ and $\log$; Table 3.9 on page~44 of Lamport \cite{Lamport93}
+lists these ``log-like'' functions.
+
+\end{description}
+
+\section{Typesetting object attributes}
+\label{sec:attributes}
+
+In the first two editions of the book, we used square brackets for
+object attributes. For example, we represented the length of an
+array~$A$ by $\id{length}[A]$. Based on requests from readers, we
+switched to the object-like dot-notation in the third edition, so that
+we now denote the length of array~$A$ by \attrib{A}{length}.
+
+You might think that you could typeset \attrib{A}{length} by
+\verb`$A.\id{length}$`, but that would produce $A.\id{length}$, which
+has not quite enough space after the dot. Therefore, we created a set
+of commands to typeset object attributes. Each one may be used either
+in or out of math mode.
+
+Most of the time, we use the \verb`\attrib` command, which takes two
+arguments: the name of the object and the name of the attribute.
+Let's make a couple of definitions:
+\begin{itemize}
+
+\item An \defn{i-string} is a string that you would use in an
+\verb`\id` command, typically one or more non-Greek letters, numerals,
+or dashes.
+
+\item An \defn{x-string} is a string that you would not use in an
+\verb`\id` command, typically because it has a subscript or one or
+more Greek letters.
+
+\item As a special, and very common, case, a single non-Greek letter
+can count as either an i-string or an x-string.
+
+\end{itemize}
+
+\noindent The \verb`\attrib` command works well when the object name
+is an x-string and the attribute name is an \mbox{i-string}. For
+example, to produce \attrib{A}{length}, use \verb`\attrib{A}{length}`.
+Here, we treat the object name,~$A$, as an x-string. The attribute
+name, \id{length}, is of course an i-string.
+
+If all your objects are x-strings and all your attributes are
+i-strings, then the \verb`\attrib` command will be all you need. We
+provide several other commands for other situations that arose when we
+produced CLRS~3/e.
+
+The four basic attribute commands are \verb`\attribxi`,
+\verb`\attribxx`, \verb`\attribii`, and \verb`\attribix`. Each takes
+two arguments: the object name and the attribute name. The last two
+letters of the command name tell you what type of strings the
+arguments should be. The next-to-last letter tells you about the
+object name, and the last letter tells you about the attribute name.
+\verb`i` indicates that the argument will be treated as an \verb`\id`,
+in which case the command calls the \verb`\id` command and also puts
+the right amount of space between the argument and the dot.
+
+\begin{itemize}
+
+\item You may use \verb`\attribxi` precisely when you would use
+\verb`\attrib`. In fact, \verb`\attrib` is just a call to
+\verb`\attribxi`.
+
+\item Use \verb`\attribxx` when both the object name and attribute
+names are x-strings. For example, you would use \verb`\attribxx` if
+the attribute name has a subscript, so that to produce
+\attribxx{y}{c_i}, you would use \verb`\attribxx{y}{c_i}`. Another
+situation in which you would use \verb`\attribxx` is when the
+attribute name is a Greek letter: to produce \attribxx{v}{\pi}, use
+\verb`\attribxx{v}{\pi}`.
+
+\item If both the object name and attribute name are i-strings, then
+you should use \verb`\attribii`. For example,
+\verb`\attribii{item}{key}` produces \attribii{item}{key}, and
+\verb`\attribii{prev-item}{np}` produces \attribii{prev-item}{np}.
+
+\item If the object name is an i-string and the attribute name is an
+x-string, then use \verb`\attribix`. (We never had this situation
+arise in CLRS 3/e.) But if we had wanted to produce
+\attribix{item}{\pi}, we would have used \verb`\attribix{item}{\pi}`.
+
+\end{itemize}
+
+For convenience, the \clrscodethree{} package also contains commands
+for cascading attributes, such as \attribb{x}{left}{size}. These
+commands string together calls to the appropriate \verb`\attribxi` and
+\verb`\attribxx` commands. The number of arguments they take depends
+on how many attributes you are stringing together.
+
+\begin{itemize}
+
+\item When you have two attributes, use \verb`\attribb`, which takes
+an object name and two attribute names: \verb`\attribb{x}{left}{size}`
+produces \attribb{x}{left}{size}. This command assumes that the
+object name is an x-string and both attribute names are i-strings.
+
+\item For three attributes, use \verb`\attribbb`, which takes an
+object name (an x-string) and three object names (i-strings): to
+produce \attribbb{y}{p}{left}{size}, use
+\verb`\attribbb{y}{p}{left}{size}`.
+
+\item For four attributes, use \verb`\attribbbb`, which is like
+\verb`\attribbb` but with one additional attribute tacked on. We
+never needed to use this command in CLRS 3/e.
+
+\item The \verb`\attribbxxi` command is for one level of cascading
+where the first attribute given is an \mbox{x-string}. For example,
+\verb`\attribbxxi{x}{c_i}{n}` produces \attribbxxi{x}{c_i}{n}.
+
+\end{itemize}
+
+If your cascading attributes do not fit any of these descriptions,
+you'll have to roll your own command from the \verb`\attribxx` and
+\verb`\attribxi` (or \verb`\attrib`) commands. For example, suppose
+you want to produce \attribxx{\attribxi{x}{left}}{\id{key_i}}.
+Because it has a subscript, $\id{key}_i$ is an x-string, and so you
+should not use \verb`\attribb`. Instead, use
+\verb`\attribxx{\attribxi{x}{left}}{\id{key_i}}`. (You could replace
+the call of \verb`\attribxi` by a call of \verb`\attrib`.) Note that
+this call treats $\id{key_i}$ as an attribute of \attrib{x}{left},
+which is correct, rather than treating \attribii{left}{\id{key}_i} as
+an attribute of~$x$, which is not correct.
+
+Edges of a graph can have attributes, too, and the \clrscodethree{}
+package provides two commands for attributes of edges. These commands
+assume that the edges are of the form $(u,v)$, where the vertices $u$
+and~$v$ are x-strings. They take three parameters: the two vertices
+that define the edge and the name of the attribute.
+\begin{itemize}
+
+\item When the attribute name is an i-string, use \verb`\attribe`.
+For example, to produce \attribe{u}{v}{c}, use
+\verb`\attribe{u}{v}{c}`.
+
+\item When the attribute name is an x-string, use \verb`\attribex`.
+For example, to produce \attribex{u}{v}{c'}, use
+\verb`\attribex{u}{v}{c'}`.
+
+\end{itemize}
+
+\section{Miscellaneous commands}
+\label{sec:misc}
+
+The \clrscodethree{} package contains three commands that don't really
+fit anywhere else, so let's handle them here. All three must be used
+in math mode.
+
+\begin{itemize}
+
+\item We denote subarrays with the ``$\twodots$'' notation, which is
+produced by the \verb`\twodots` command. Thus, the source text
+\verb`$A[1 \twodots j-1]$` will produce $A[1 \twodots j-1]$.
+
+\item We use the \verb`\gets` command for the assignment operator.
+For example, line~4 of \proc{Insertion-Sort} on page~18 is
+\verb`$i \gets j - 1$`, producing $i \gets j - 1$.
+
+\item We use the \verb`\isequal` command to test for equality with the
+$\isequal$ symbol. For example, line~1 of
+\proc{Find-Maximum-Subarray} on page~72 contains the test $\id{high}
+\isequal \id{low}$, which we get by typesetting
+\verb`$\id{high} \isequal \id{low}$`.
+
+\end{itemize}
+
+You might wonder why we bother with the \verb`\gets` command when we
+could just typeset an equals sign directly. The answer is that in the
+first two editions of \textit{Introduction to Algorithms}, we used a
+different symbol (a left arrow) for the assignment operator, and it
+made sense to use a command for that. Many readers told us that they
+preferred to use an equals sign for assignment---as many programming
+languages use---and so we made this change for the third edition. But
+it's a good idea to continue using the \verb`\gets` command so that we
+can easily change our assignment operator should we desire to do so in
+the future.
+
+Once we decided to use the equals sign for assignment, we could no
+longer use it for equality tests. We created the \verb`\isequal`
+command for equality tests, and we decided to base it on the double
+equals sign used for equality tests in C, C++, and Java. Typesetting
+it as \verb`==` in math mode produces $==$, which is too wide for our
+tastes. Our \verb`\isequal` command calls the \verb`\scalebox`
+command from the \texttt{graphics} package to narrow the symbol, and
+it puts a nice amount of space between the equals signs: $\isequal$.
+
+\section{The \Codebox{} environment}
+\label{sec:codebox}
+
+We typeset pseudocode by putting it in a \Codebox{} environment. A
+\Codebox{} is a section of code that does not break across pages.
+
+\subheading{Contents of a \Codebox{}}
+
+Each procedure should go in a separate \Codebox{}, even if you have
+multiple procedures appearing consecutively. The only possible reason
+I can think of to put more than one procedure in a single \Codebox{}
+is to ensure that the procedures appear on the same page. If you
+really need your procedures to appear on the same page, then you
+should consider using other means in \LaTeXe, such as the
+\texttt{minipage} environment. Moreover, if you have written your
+procedures so that they have to appear on the same page, you should
+probably be asking yourself whether they are too interdependent.
+
+The typical structure within a \Codebox{} is as follows. Usually, the
+first line is the name of a procedure, along with a list of
+parameters. (Not all \Codebox{}es include procedure names; for
+example, see the pseudocode on page~343 of CLRS 3/e.) After the line
+containing the procedure name come one or more lines of code, usually
+numbered. Some of the lines may be unnumbered, being continuations of
+previous lines. Lines are usually numbered starting from~1, but again
+there are exceptions, such as the pseudocode on page~343.
+
+\subheading{Using \texttt{$\backslash$Procname} to name the procedure}
+
+The \verb`\Procname` command specifies the name of the procedure. It
+takes as a parameter the procedure name and parameters, typically all
+in math mode. \verb`\Procname` makes its argument flush left against
+the margin, and it leaves a little bit of extra space below the line.
+For example, here is how we typeset the \proc{Insertion-Sort}
+procedure on page~18:
+
+\pagebreak
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Insertion-Sort}(A)$}
+\li \For $j \gets 2$ \To $\attrib{A}{length}$
+\li \Do
+ $\id{key} \gets A[j]$
+\li \Comment Insert $A[j]$ into the sorted sequence
+ $A[1 \twodots j-1]$.
+\li $i \gets j-1$
+\li \While $i > 0$ and $A[i] > \id{key}$
+\li \Do
+ $A[i+1] \gets A[i]$
+\li $i \gets i-1$
+ \End
+\li $A[i+1] \gets \id{key}$
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+\subheading{Using \texttt{$\backslash$li} and \texttt{$\backslash$zi}
+to start new lines}
+
+To start a new, numbered line, use the \verb`\li` command. To start a
+new, \emph{un}numbered line, use the \verb`\zi` command. Note that
+since a \Codebox{} is not like the \verb`verbatim` environment, the
+line breaks within the source text do not correspond to the line
+breaks in the typeset output.
+
+\subheading{Tabs}
+
+I find that it is best to set the tab stops in the text editor to
+every 4 characters when typing in and displaying pseudocode source
+with the \clrscodethree{} package. I use emacs, and to get the tabs
+set up the way I want them, my \mbox{\texttt{tex-mode.el}} file
+includes the line \verb`(setq tab-width 4)`.
+
+A \Codebox{} environment has a \verb`tabbing` environment within it.
+Each tab stop gives one level of indentation. We designed the
+indentation so that the body of an \kw{else} clause starts at just the
+right indentation. For the most part, you won't need to be concerned
+with tabs. The primary exception is when you want to include a
+comment at the end of a line of pseudocode, and especially when you
+want to include comments after several lines and you want the comments
+to vertically align.
+
+If you used the \texttt{clrscode} package from the second edition of
+the book, you might notice different tabbing behavior when you port
+your pseudocode to the \clrscodethree{} package. Where the
+\texttt{clrscode} package used two tab stops for each level of loop
+indentation, the \clrscodethree{} package uses just one tab stop. We
+made this change in the \clrscodethree{} package because the third
+edition eliminates the keyword \kw{then} and left-aligns \kw{else}
+with its corresponding \kw{if}.
+
+Note that the \verb`tabbing` environment within a codebox has nothing
+to do with tabs that you enter in your source code; when you press the
+TAB key, that's the same as pressing the space bar in the eyes of
+\LaTeXe{}.
+
+\subheading{Commands for keywords}
+
+As you can see from the source for \proc{Insertion-Sort}, the commands
+\verb`\For` and \verb`\While` produce the keywords \kw{for} and
+\kw{while} in boldface within a \Codebox{}.
+
+Sometimes you want to include a keyword in the main text, as I have
+done in several places in this document. Use the \verb`\kw` command
+to do so. For example, to produce the previous paragraph, I typed in
+the following:
+
+{\small
+\begin{verbatim}
+As you can see from the source for \proc{Insertion-Sort}, the commands
+\verb`\For` and \verb`\While` produce the keywords \kw{for} and
+\kw{while} in boldface within a \texttt{codebox}.
+\end{verbatim}
+}
+
+The following commands simply produce their corresponding keywords,
+typeset in boldface: \verb`\For`, \verb`\To`, \verb`\Downto`,
+\verb`\By`, \verb`\While`, \verb`\If`, \verb`\Return`, \verb`\Goto`
+(which does not appear in CLRS 3/e, but you might wish to use),
+\verb`\Error`, \verb`\Spawn`, \verb`\Sync`, and \verb`\Parfor` (which
+produces the compound keyword \mbox{\kw{parallel~for}}). Although you
+could achieve the same effect with the \verb`\kw` command (e.g.,
+\verb`\kw{for}` instead of \verb`\For`), you will find it easier and
+more readable to use the above commands in pseudocode. The
+\verb`\Comment` command simply produces the comment symbol
+\CommentSymbol, followed by a space. To get the comment symbol
+without a following space, use \verb`\CommentSymbol`. None of the
+above commands affects indentation.
+
+\subheading{Loops}
+
+The \proc{Insertion-Sort} example above shows typical ways to typeset
+\kw{for} and \kw{while} loops. In these loops, the important commands
+are \verb`\Do` and \verb`\End`. \verb`\Do` increments the indentation
+level to start the body. Put \verb`\Do` on a line starting with
+\verb`\li`, but don't put either \verb`\li` or \verb`\zi` between the
+\verb`\Do` command and the first statement of the loop body. Use
+\verb`\li` or \verb`\zi` in front of all loop-body statements after
+the first one. \verb`\End` simply decrements the indentation level,
+and you use it to end any \kw{for} or \kw{while} loop, or otherwise
+decrement the indentation level.
+
+In the first two editions of the book, the body of a \kw{for} or
+\kw{while} loop began with the keyword \kw{do}. Responding to
+requests from readers to make pseudocode more like C, C++, and Java,
+we eliminated this keyword in the third edition.
+
+As you can see from the above example, I like to place each \verb`\Do`
+and \verb`\End` on its own line. You can format your source text any
+way you like, but I find that the way I format pseudocode makes it
+easy to match up \verb`\Do`-\verb`\End` pairs.
+
+If you want your \kw{for} loop to decrease the loop variable in each
+iteration, use \verb`\Downto` rather than \verb`\To`. If you want the
+stride to be a value other than~$1$, use the \verb`\By` command. For
+example, line~6 of \proc{Iterative-FFT} on page~917 is typeset as
+\begin{verbatim}
+\For $k \gets 0$ \To $n-1$ \By $m$
+\end{verbatim}
+
+Loops that use the \kw{repeat}-\kw{until} structure are a bit
+different. We use the \verb`\Repeat` and \verb`\Until`
+commands, as in the \proc{Hash-Insert} procedure on page~270:
+
+\pagebreak
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Hash-Insert}(T,k)$}
+\li $i \gets 0$
+\li \Repeat
+\li $j \gets h(k,i)$
+\li \If $T[j] \isequal \const{nil}$
+\li \Then
+ $T[j] \gets k$
+\li \Return $j$
+\li \Else
+ $i \gets i+1$
+ \End
+\li \Until $i \isequal m$
+\li \Error ``hash table overflow''
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent Note that the \verb`\Until` command has an implied
+\verb`\End`.
+
+\subheading{Typesetting \kw{if} statements}
+
+As you can see from the above example of \proc{Hash-Insert}, we
+typeset \kw{if} statements with the commands \verb`\If`, \verb`\Then`,
+\verb`\Else`, and \verb`\End`. In the first two editions of the book,
+the keyword \kw{then} appeared in pseudocode, but---again mindful of
+requests from our readers to make our pseudocode more like C, C++, and
+Java---we eliminated the keyword \kw{then} in the third edition. The
+\verb`\Then` command remains, however, in order to indent the code
+that runs when the test in the \kw{if} clause evaluates to
+\const{true}.
+
+We use \verb`\End` to terminate an \kw{if} statement, whether or not
+it has an \kw{else} clause. For an example of an \kw{if} statement
+without an \kw{else} clause, here's the \proc{Merge-Sort} procedure on
+page~34:
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Merge-Sort}(A, p, r)$}
+\li \If $p < r$
+\li \Then
+ $q \gets \floor{(p + r) / 2}$
+\li $\proc{Merge-Sort}(A, p, q)$
+\li $\proc{Merge-Sort}(A, q+1, r)$
+\li $\proc{Merge}(A, p, q, r)$
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+Note: the command \verb`\floor` is our own. It is defined as
+
+{\small
+\begin{verbatim}
+\newcommand{\floor}[1]{\left\lfloor #1 \right\rfloor}
+\end{verbatim}
+}
+
+The \proc{Hash-Insert} procedure above shows how to typeset an \kw{if}
+statement that has an \kw{else} clause. For a more complicated
+example, using nested \kw{if} statements, here's the
+\proc{Cascading-Cut} procedure on page~519:
+
+\pagebreak
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Cascading-Cut}(H,y)$}
+\li $z \gets \attrib{y}{p}$
+\li \If $z \neq \const{nil}$
+\li \Then
+ \If $\attrib{y}{mark} \isequal \const{false}$
+\li \Then $\attrib{y}{mark} \gets \const{true}$
+\li \Else
+ $\proc{Cut}(H,y,z)$
+\li $\proc{Cascading-Cut}(H,z)$
+ \End
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent Note that \verb`\Then` and \verb`\Else` always follow an
+\verb`\li` command to start a new numbered line. As with the
+\verb`\Do` command, don't put either \verb`\li` or \verb`\zi` between
+\verb`\Then` or \verb`\Else` and the statement that follows.
+
+As you can see, I line up the \verb`\End` commands under the
+\verb`\Then` and \verb`\Else` commands. I could just as easily have
+chosen to line up \verb`\End` under the \verb`\If` command instead. I
+also sometimes elect to put the ``then'' or ``else'' code on the same
+source line as the \verb`\Then` or \verb`\Else` command, especially
+when that code is one short line, such as in line~4 of
+\proc{Cascading-Cut}.
+
+Sometimes, you need more complicated ``\kw{if}-ladders'' than you can
+get from the \verb`\Then` and \verb`\Else` commands. The
+\proc{Transplant} procedure on page~296 provides an example,
+and it uses the \verb`\ElseIf` and \verb`\ElseNoIf` commands:
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Transplant}(T, u, v)$}
+\li \If $\attrib{u}{p} \isequal \const{nil}$
+\li \Then $\attrib{T}{root} \gets v$
+\li \ElseIf $u \isequal \attribb{u}{p}{left}$
+\li \Then $\attribb{u}{p}{left} \gets v$
+\li \ElseNoIf
+ $\attribb{u}{p}{right} \gets v$
+ \End
+\li \If $v \neq \const{nil}$
+\li \Then $\attrib{v}{p} \gets \attrib{u}{p}$
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent For an \kw{if}-ladder, use \verb`\Then` for the first case,
+\verb`\ElseNoIf` for the last case, and \verb`\ElseIf` followed by
+\verb`\Then` for all intermediate cases. You use \verb`\ElseNoIf`
+like you use \verb`\Else` in that it follows an \verb`\li` command,
+you don't follow it with \verb`\Then`, and, because it terminates an
+\kw{if}-ladder, it's followed by \verb`\End`. I usually line up the
+terminating \verb`\End` with \verb`\If`, the \verb`\ElseIf` commands,
+and \verb`\ElseNoIf`, but the way you line it up won't change the
+typeset output.
+
+As another example, here is the \proc{Segments-Intersect} procedure on
+page~1018:
+
+\pagebreak
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Segments-Intersect}(p_1, p_2, p_3, p_4)$}
+\li $d_1 \gets \proc{Direction}(p_3, p_4, p_1)$
+\li $d_2 \gets \proc{Direction}(p_3, p_4, p_2)$
+\li $d_3 \gets \proc{Direction}(p_1, p_2, p_3)$
+\li $d_4 \gets \proc{Direction}(p_1, p_2, p_4)$
+\li \If $((d_1 > 0 \mbox{ and } d_2 < 0) \mbox{ or }
+ (d_1 < 0 \mbox{ and } d_2 > 0))$ and
+ \Indentmore
+\zi $((d_3 > 0 \mbox{ and } d_4 < 0) \mbox{ or }
+ (d_3 < 0 \mbox{ and } d_4 > 0))$
+ \End
+\li \Then \Return \const{true}
+\li \ElseIf $d_1 \isequal 0$ and $\proc{On-Segment}(p_3, p_4, p_1)$
+\li \Then \Return \const{true}
+\li \ElseIf $d_2 \isequal 0$ and $\proc{On-Segment}(p_3, p_4, p_2)$
+\li \Then \Return \const{true}
+\li \ElseIf $d_3 \isequal 0$ and $\proc{On-Segment}(p_1, p_2, p_3)$
+\li \Then \Return \const{true}
+\li \ElseIf $d_4 \isequal 0$ and $\proc{On-Segment}(p_1, p_2, p_4)$
+\li \Then \Return \const{true}
+\li \ElseNoIf \Return \const{false}
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+This example also shows our first use of an unnumbered line: the
+second half of the tests on line~5. We use \verb`\zi` to indicate
+that we're starting an unnumbered line.
+
+\subheading{Indentation levels}
+
+In the \proc{Segments-Intersect} procedure, we indent the unnumbered
+line after line~5 by one level more than the line above it. We do so
+with the \verb`\Indentmore` command. The \verb`\End` command
+following the indented line decrements the indentation level back to
+what it was prior to the \verb`\Indentmore`. If I had wanted to
+indent the line by two levels, I would have used two
+\verb`\Indentmore` commands before the line and two \verb`\End`
+commands afterward. (Recall that \verb`\End` simply decrements the
+indentation level.)
+
+Upon seeing the \verb`\end{codebox}` command, the \Codebox{}
+environment checks that the indentation level is back to where it was
+when it started, namely an indentation level of~0. If it is not, you
+will get a warning message like the following:
+
+{\small
+\begin{verbatim}
+Warning: Indentation ends at level 1 in codebox on page 1.
+\end{verbatim}
+}
+
+\noindent This message would indicate that there is one missing
+\verb`\End` command. On the other hand, you might have one too many
+\verb`\End` commands, in which case you would get
+
+{\small
+\begin{verbatim}
+Warning: Indentation ends at level -1 in codebox on page 1.
+\end{verbatim}
+}
+
+\noindent Whenever the indentation level is nonzero upon hitting an
+\verb`\end{codebox}` command, you'll get a warning telling you what
+the indentation level was.
+
+\subheading{Tabs and comments}
+
+Line~3 of \proc{Insertion-Sort} shows how to make a line that is only
+a comment. It's a little more tricky to put a comment at the end of a
+line of code. Using the tab command \verb`\>`, explicitly tab to
+where you want the comment to begin and then use the \verb`\Comment`
+command to produce the comment symbol. When several lines contain
+comments, you probably want them to align vertically. I just add tab
+characters, using a trial-and-error approach, until I am pleased with
+the result. For example, here's how we produced the
+\proc{KMP-Matcher} procedure on page~1005:
+
+{\footnotesize
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{KMP-Matcher}(T,P)$}
+\li $n \gets \attrib{T}{length}$
+\li $m \gets \attrib{P}{length}$
+\li $\pi \gets \proc{Compute-Prefix-Function}(P)$
+\li $q \gets 0$\>\>\>\>\>\>\>\>\Comment number of characters matched
+\li \For $i \gets 1$ \To $n$\>\>\>\>\>\>\>\>\Comment scan the text from left to right
+\li \Do
+ \While $q>0$ and $\Px{q+1}\ne \Tx{i}$
+\li \Do $q \gets \pi[q]$\>\>\>\>\>\>\Comment next character does not match
+ \End
+\li \If $\Px{q+1} \isequal \Tx{i}$
+\li \Then $q \gets q+1$\>\>\>\>\>\>\Comment next character matches
+ \End
+\li \If $q \isequal m$\>\>\>\>\>\>\>\Comment is all of $P$ matched?
+\li \Then
+ print ``Pattern occurs with shift'' $i-m$
+\li $q \gets \pi[q]$\>\>\>\>\>\>\Comment look for the next match
+ \End
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent All six comments align nicely.
+
+Note: the commands \verb`\Px` and \verb`\Tx` are our own, with the
+definitions
+
+{\small
+\begin{verbatim}
+\newcommand{\Px}[1]{P[#1]}
+\newcommand{\Tx}[1]{T[#1]}
+\end{verbatim}
+}
+
+We used the command \verb`\RComment` to justify a comment against the
+right margin. We used this command only in the \proc{RB-Insert-Fixup}
+procedure on page~316 and the \proc{RB-Delete-Fixup} procedure on
+page~326. For example, here's how we typeset line~5 of
+\proc{RB-Insert-Fixup}:
+
+{\small
+\begin{verbatim}
+\li \Then
+ $\attribb{z}{p}{color}\gets \const{black}$
+ \RComment case 1
+\end{verbatim}
+}
+
+\subheading{Referencing line numbers}
+
+The source files for CLRS 3/e contain no absolute references to line
+numbers. We use \emph{only} symbolic references. The \Codebox{}
+environment is set up to allow you to place \verb`\label` commands on
+lines of pseudocode and then reference these labels. The references
+will resolve to the line numbers. Our convention is that any label
+for a line number begins with \verb`\li:`, but you can name the labels
+any way that you like.
+
+For example, here's how we \emph{really} wrote the
+\proc{Insertion-Sort} procedure on page~18:
+
+\pagebreak
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Insertion-Sort}(A)$}
+\li \For $j \gets 2$ \To $\attrib{A}{length}$
+ \label{li:ins-sort-for}
+\li \Do
+ $\id{key} \gets A[j]$ \label{li:ins-sort-pick}
+ \label{li:ins-sort-for-body-begin}
+\li \Comment Insert $A[j]$ into the sorted sequence
+ $A[1 \twodots j-1]$.
+\li $i \gets j-1$ \label{li:ins-sort-find-begin}
+\li \While $i > 0$ and $A[i] > \id{key}$
+ \label{li:ins-sort-while}
+\li \Do
+ $A[i+1] \gets A[i]$ \label{li:ins-sort-while-begin}
+\li $i \gets i-1$ \label{li:ins-sort-find-end}
+ \label{li:ins-sort-while-end}
+ \End
+\li $A[i+1] \gets \id{key}$ \label{li:ins-sort-ins}
+ \label{li:ins-sort-for-body-end}
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent Note that any line may have multiple labels. As an example
+of referencing these labels, here's the beginning of the first item
+under ``Pseudocode conventions'' on page~19:
+
+{\small
+\begin{verbatim}
+\item Indentation indicates block structure. For example, the body of
+the \kw{for} loop that begins on line~\ref{li:ins-sort-for} consists
+of lines
+\ref{li:ins-sort-for-body-begin}--\ref{li:ins-sort-for-body-end}, and
+the body of the \kw{while} loop that begins on
+line~\ref{li:ins-sort-while} contains lines
+\ref{li:ins-sort-while-begin}--\ref{li:ins-sort-while-end} but not
+line~\ref{li:ins-sort-for-body-end}.
+\end{verbatim}
+}
+
+\subheading{Setting line numbers}
+
+On rare occasions, we needed to start line numbers somewhere other
+than~1. Use the \verb`setlinenumber` command to set the next line
+number. For example, in Exercise~24.2-2 on page~657, we want the line
+number to be the same as a line number within the
+\proc{Dag-Shortest-Paths} procedure on page~655. Here's the source
+for the exercise:
+
+{\small
+\begin{verbatim}
+Suppose we change line~\ref{li:dag-sp-loop-begin} of
+\proc{Dag-Shortest-Paths} to read
+
+\begin{codebox}
+\setlinenumber{li:dag-sp-loop-begin}
+\li \For the first $\card{V}-1$ vertices, taken in topologically sorted order
+\end{codebox}
+Show that the procedure would remain correct.
+\end{verbatim}
+}
+
+\noindent The \proc{Dag-Shortest-Paths} procedure is
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Dag-Shortest-Paths}(G,w,s)$}
+\li topologically sort the vertices of $G$ \label{li:dag-sp-topo-sort}
+\li $\proc{Initialize-Single-Source}(G,s)$ \label{li:dag-sp-init}
+\li \For each vertex $u$, taken in topologically sorted order
+ \label{li:dag-sp-loop-begin}
+\li \Do
+ \For each vertex $v \in \attrib{G}{Adj}[u]$
+ \label{li:dag-sp-inner-begin}
+\li \Do $\proc{Relax}(u,v,w)$ \label{li:dag-sp-loop-end}
+ \End
+ \End
+\end{codebox}
+\end{verbatim}
+}
+
+Even more rarely (just once, in fact), we needed to set a line number
+to be some other line number plus an offset. That was in the two
+lines of pseudocode on page~343, where the first line number had to be
+one greater than the number of the last line of \proc{Left-Rotate} on
+page~313. Use the \verb`setlinenumberplus` command:
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\setlinenumberplus{li:left-rot-parent}{1}
+\li $\attrib{y}{size} \gets \attrib{x}{size}$
+\li $\attrib{x}{size} \gets \attribb{x}{left}{size}
+ + \attribb{x}{right}{size} + 1
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent Here, the last line of \proc{Left-Rotate} has
+\verb`\label{li:left-rot-parent}`.
+
+\subheading{Indenting long argument lists in procedure calls}
+
+You might find that you have to call a procedure with an argument list
+so long that the call requires more than one line. When this
+situation arises, it often looks best to align the second and
+subsequent lines of arguments with the first argument. The only place
+we did so was in the $\proc{Sum-Arrays}'$ procedure in Problem~27-1 on
+page~805.
+
+To get this style of alignment, use the \verb`\Startalign` and
+\verb`\Stopalign` commands, in concert with the \verb`\>` command of
+\LaTeXe{}. The \verb`\Startalign` command takes an argument that is
+the text string that you wish to align just to the right of. Start
+each line that you want to indent with \verb`\>`. Use the
+\verb`\Stopalign` command to restore indentation to its state from
+before the \verb`\Startalign` command.
+
+The source code for $\proc{Sum-Arrays}'$ shows how to use these
+commands:
+
+\pagebreak
+
+{\small
+\begin{verbatim}
+\begin{codebox}
+\Procname{$\proc{Sum-Arrays}{$'$}(A, B, C)$}
+\li $n \gets \attrib{A}{length}$
+\li $\id{grain-size} \gets\ \ ?$ \>\>\>\>\>\>\Comment to be determined
+\li $r \gets \ceil{n/\id{grain-size}}$
+\li \For $k \gets 0$ \To $r-1$
+\li \Do
+ \Spawn $\proc{Add-Subarray}(A, B, C, k\cdot\id{grain-size}+1,$
+\Startalign{\Spawn $\proc{Add-Subarray}($}
+\> $\min((k+1)\cdot\id{grain-size}, n))$
+\Stopalign
+ \End
+\li \Sync
+\end{codebox}
+\end{verbatim}
+}
+
+\noindent The second line of arguments in the call to
+\proc{Add-Subarray} starts right under the first parameter, $A$, in
+the call.
+
+\section{Reporting bugs}
+\label{sec:bugs}
+
+If you find errors in the \clrscodethree{} package, please send me
+email (thc@cs.dartmouth.edu). It would be best if your message
+included everything I would require to elicit the error myself.
+
+The \texttt{clrscode3e.sty} file contains the following disclaimer:
+
+{\small
+\begin{verbatim}
+% Written for general distribution by Thomas H. Cormen, March 2009.
+
+% The author grants permission for anyone to use this macro package and
+% to distribute it unchanged without further restriction. If you choose
+% to modify this package, you must indicate that you have modified it
+% prior to your distributing it. I don't want to get bug reports about
+% changes that *you* have made!
+\end{verbatim}
+}
+
+\noindent I have enough trouble keeping up with my own bugs; I don't
+want to hear about bugs that others have introduced in the package!
+
+\section{Revision history}
+
+\begin{itemize}
+
+\item 20 February 2018. Included definitions for the commands
+\verb`\floor`, \verb`\Px`, and \verb`\Tx`. Changed \verb`\procdecl`
+and \verb`\procdecltag` commands to \verb`\proc`.
+
+\item 27 January 2010. Corrected an error in the documentation. The
+first line after a \verb`\Repeat` command should begin with
+\verb`\li`.
+
+\item 23 March 2009. Initial revision of document and code.
+
+\end{itemize}
+
+\begin{thebibliography}{9}
+
+\bibitem{CLRS09} Thomas H. Cormen, Charles E. Leiserson, Ronald L.
+Rivest, and Clifford Stein. \textit{Introduction to Algorithms},
+third edition. The MIT Press, 2009.
+
+\bibitem{Lamport93} Leslie Lamport. \textit{\LaTeX: A Document
+Preparation System User's Guide and Reference Manual}.
+Addison-Wesley, 1993.
+
+\end{thebibliography}
+
+\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/clrscode3e/page.tex new/doc/latex/clrscode3e/page.tex
--- old/doc/latex/clrscode3e/page.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/clrscode3e/page.tex 2019-05-15 22:38:43.000000000 +0200
@@ -0,0 +1,18 @@
+\setlength{\oddsidemargin}{0in}
+\setlength{\evensidemargin}{0in}
+\setlength{\textwidth}{6.5in}
+\setlength{\topmargin}{0in}
+\setlength{\textheight}{8.5in}
+\setlength{\headheight}{0pt}
+\setlength{\headsep}{0pt}
+
+\setcounter{topnumber}{3}%
+\def\topfraction{.7}%
+\setcounter{bottomnumber}{1}
+\def\bottomfraction{.3}
+\setcounter{totalnumber}{5}%
+\def\textfraction{.1}% was .2
+\def\floatpagefraction{.7}% was .7
+\setcounter{dbltopnumber}{2}
+\def\dbltopfraction{.7}
+\def\dblfloatpagefraction{.5}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/clrscode3e.doc.tlpobj new/tlpkg/tlpobj/clrscode3e.doc.tlpobj
--- old/tlpkg/tlpobj/clrscode3e.doc.tlpobj 2019-02-28 03:25:54.000000000 +0100
+++ new/tlpkg/tlpobj/clrscode3e.doc.tlpobj 2019-05-16 01:38:19.000000000 +0200
@@ -1,8 +1,10 @@
name clrscode3e.doc
category Package
-revision 34887
+revision 51137
shortdesc doc files of clrscode3e
relocated 1
-docfiles size=2
+docfiles size=31
RELOC/doc/latex/clrscode3e/README
- RELOC/doc/latex/clrscode3e/README.TEXLIVE
+ RELOC/doc/latex/clrscode3e/clrscode3e.pdf
+ RELOC/doc/latex/clrscode3e/clrscode3e.tex
+ RELOC/doc/latex/clrscode3e/page.tex
++++++ clrscode3e.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/clrscode3e.tlpobj new/tlpkg/tlpobj/clrscode3e.tlpobj
--- old/tlpkg/tlpobj/clrscode3e.tlpobj 2019-02-28 03:25:54.000000000 +0100
+++ new/tlpkg/tlpobj/clrscode3e.tlpobj 2019-05-16 01:38:20.000000000 +0200
@@ -1,6 +1,6 @@
name clrscode3e
category Package
-revision 34887
+revision 51137
shortdesc Typesets pseudocode as in Introduction to Algorithms
relocated 1
longdesc This package allows you to typeset pseudocode in the style of
@@ -13,6 +13,6 @@
RELOC/tex/latex/clrscode3e/clrscode3e.sty
catalogue-also newalg clrscode
catalogue-ctan /macros/latex/contrib/clrscode3e
-catalogue-date 2016-06-24 19:18:15 +0200
+catalogue-date 2019-05-15 17:42:59 +0200
catalogue-license lppl
catalogue-topics pseudocode
++++++ clrstrip.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/clrstrip/README.md new/doc/latex/clrstrip/README.md
--- old/doc/latex/clrstrip/README.md 2018-07-30 23:12:14.000000000 +0200
+++ new/doc/latex/clrstrip/README.md 2020-01-24 22:47:22.000000000 +0100
@@ -1,6 +1,6 @@
clrstrip: place contents into a full width colour strip
-Copyright (C) 2018 by Jonathan P. Spratte
+Copyright (C) 2018-2020 by Jonathan P. Spratte
This package may be distributed and/or modified under the conditions of the
LaTeX Project Public License (LPPL), either version 1.3c of this license or (at
Binary files old/doc/latex/clrstrip/clrstrip.pdf and new/doc/latex/clrstrip/clrstrip.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/clrstrip.doc.tlpobj new/tlpkg/tlpobj/clrstrip.doc.tlpobj
--- old/tlpkg/tlpobj/clrstrip.doc.tlpobj 2019-02-28 03:25:54.000000000 +0100
+++ new/tlpkg/tlpobj/clrstrip.doc.tlpobj 2020-01-25 01:55:08.000000000 +0100
@@ -1,8 +1,8 @@
name clrstrip.doc
category Package
-revision 49570
+revision 53537
shortdesc doc files of clrstrip
relocated 1
-docfiles size=96
+docfiles size=49
RELOC/doc/latex/clrstrip/README.md
RELOC/doc/latex/clrstrip/clrstrip.pdf
++++++ clrstrip.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/clrstrip/clrstrip.sty new/tex/latex/clrstrip/clrstrip.sty
--- old/tex/latex/clrstrip/clrstrip.sty 2019-01-01 23:50:26.000000000 +0100
+++ new/tex/latex/clrstrip/clrstrip.sty 2020-01-24 22:47:22.000000000 +0100
@@ -13,7 +13,7 @@
%% See http://www.latex-project.org/lppl.txt
%% --------------------------------------------------------------
%%
-%% Copyright (C) 2018 Jonathan P. Spratte
+%% Copyright (C) 2018-2020 Jonathan P. Spratte
%%
%% This work may be distributed and/or modified under the conditions of the
%% LaTeX Project Public License (LPPL), either version 1.3c of this license or
@@ -29,10 +29,10 @@
%% and the derived files clrstrip.pdf and
%% clrstrip.sty.
%%
-\newcommand*\clrstrip@date{2018-12-31}
+\newcommand*\clrstrip@date{2020-01-23}
\ProvidesPackage{clrstrip}
[\clrstrip@date\space place contents into a full width colour strip]
-\RequirePackage{keyval}
+\RequirePackage{expkv}
\newsavebox\clrstrip@box
\newlength\clrstrip@innerT
\clrstrip@innerT\medskipamount
@@ -45,29 +45,9 @@
\newlength\clrstrip@width
\newlength\clrstrip@left
\clrstrip@left1sp
-\newcommand*\clrstrip@oarg{}
-\newcommand*\clrstrip@marg{}
-\newcommand*\clrstrip@key{\define@key{clrstrip}}
-\newcommand*\clrstrip@strip[1]
- {%
- \begingroup
- \ifx\clrstrip@oarg\@empty
- \color{#1}%
- \else
- \expandafter\color\expandafter[\clrstrip@oarg]{#1}%
- \fi
- \advance\clrstrip@innerT\ht\clrstrip@box
- \advance\clrstrip@innerB\dp\clrstrip@box
- \rlap
- {%
- \hskip-\paperwidth
- \vrule
- width 2\paperwidth
- height \clrstrip@innerT
- depth \clrstrip@innerB
- }%
- \endgroup
- }
+\newcommand*\clrstrip@arg{}
+\newcommand*\clrstrip@key{\protected\ekvdef{clrstrip}}
+\newcommand*\clrstrip@keyNV{\protected\ekvdefNoVal{clrstrip}}
\newcommand\clrstrip@start[1][]
{%
\colorstripSet{#1}%
@@ -76,6 +56,8 @@
\fi
\setbox\clrstrip@box\vbox\bgroup
\hsize\clrstrip@width
+ \linewidth\hsize
+ \color@setgroup
\clrstrip@preventIndent
}
\newcommand*\clrstrip@afterheading{\@afterindentfalse\@afterheading}
@@ -90,21 +72,38 @@
\clrstrip@key{outer bot}{\clrstrip@outerB#1\relax}
\clrstrip@key{width}{\clrstrip@width#1\relax}
\clrstrip@key{left}{\clrstrip@left#1\relax}
-\clrstrip@key{afterheading}[]{\let\clrstrip@preventIndent\clrstrip@afterheading}
-\clrstrip@key{noindent}[]{\let\clrstrip@preventIndent\clrstrip@noindent}
-\newcommand*\colorstripSet{\setkeys{clrstrip}}
+\clrstrip@keyNV{afterheading}{\let\clrstrip@preventIndent\clrstrip@afterheading}
+\clrstrip@keyNV{noindent}{\let\clrstrip@preventIndent\clrstrip@noindent}
+\protected\def\colorstripSet{\ekvset{clrstrip}}
\newenvironment{colorstrip}[2][]
{%
- \def\clrstrip@oarg{#1}%
- \def\clrstrip@marg{#2}%
+ \def\clrstrip@arg{#1}%
+ \ifx\clrstrip@arg\@empty
+ \def\clrstrip@arg{{#2}}%
+ \else
+ \def\clrstrip@arg{[{#1}]{#2}}%
+ \fi
\clrstrip@start
}
{%
+ \color@endgroup
\egroup
\par
\vskip\clrstrip@outerT
\noindent
- \expandafter\clrstrip@strip\expandafter{\clrstrip@marg}%
+ \begingroup
+ \expandafter\color\clrstrip@arg
+ \advance\clrstrip@innerT\ht\clrstrip@box
+ \advance\clrstrip@innerB\dp\clrstrip@box
+ \rlap
+ {%
+ \hskip-\paperwidth
+ \vrule
+ width 2\paperwidth
+ height \clrstrip@innerT
+ depth \clrstrip@innerB
+ }%
+ \endgroup
\ifdim\clrstrip@left=1sp
\advance\clrstrip@width-\linewidth
\clrstrip@left-.5\clrstrip@width
@@ -112,6 +111,7 @@
\rlap{\hskip\clrstrip@left\copy\clrstrip@box}%
\par
\vskip\clrstrip@outerB
+ \@endpetrue
}
%%
%%
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/clrstrip.tlpobj new/tlpkg/tlpobj/clrstrip.tlpobj
--- old/tlpkg/tlpobj/clrstrip.tlpobj 2019-02-28 03:25:54.000000000 +0100
+++ new/tlpkg/tlpobj/clrstrip.tlpobj 2020-01-25 01:55:08.000000000 +0100
@@ -1,6 +1,6 @@
name clrstrip
category Package
-revision 49570
+revision 53537
shortdesc Place contents into a full width colour strip
relocated 1
longdesc This lightweight package provides the colorstrip environment,
@@ -10,6 +10,5 @@
catalogue-also tcolorbox
catalogue-contact-repository https://github.com/Skillmon/ltx_clrstrip
catalogue-ctan /macros/latex/contrib/clrstrip
-catalogue-date 2018-12-31 21:41:42 +0100
catalogue-license lppl1.3c
catalogue-topics colour
++++++ cluttex.doc.tar.xz ++++++
++++ 3999 lines of diff (skipped)
++++++ cluttex.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/texmf-dist/scripts/cluttex/cluttex.lua new/texmf-dist/scripts/cluttex/cluttex.lua
--- old/texmf-dist/scripts/cluttex/cluttex.lua 2019-02-23 00:18:23.000000000 +0100
+++ new/texmf-dist/scripts/cluttex/cluttex.lua 2020-02-06 21:51:06.000000000 +0100
@@ -344,7 +344,7 @@
if os.type == "windows" then
package.preload["texrunner.shellutil"] = function(...)
--[[
- Copyright 2016 ARATA Mizuki
+ Copyright 2016,2019 ARATA Mizuki
This file is part of ClutTeX.
@@ -363,6 +363,7 @@
]]
local string_gsub = string.gsub
+local os_execute = os.execute
-- s: string
local function escape(s)
@@ -370,14 +371,21 @@
end
+local function has_command(name)
+ local result = os_execute("where " .. escape(name) .. " > NUL 2>&1")
+ -- Note that os.execute returns a number on Lua 5.1 or LuaTeX
+ return result == 0 or result == true
+end
+
return {
escape = escape,
+ has_command = has_command,
}
end
else
package.preload["texrunner.shellutil"] = function(...)
--[[
- Copyright 2016 ARATA Mizuki
+ Copyright 2016,2019 ARATA Mizuki
This file is part of ClutTeX.
@@ -400,6 +408,7 @@
local table = table
local table_insert = table.insert
local table_concat = table.concat
+local os_execute = os.execute
-- s: string
local function escape(s)
@@ -430,8 +439,15 @@
end
+local function has_command(name)
+ local result = os_execute("which " .. escape(name) .. " > /dev/null")
+ -- Note that os.execute returns a number on Lua 5.1 or LuaTeX
+ return result == 0 or result == true
+end
+
return {
escape = escape,
+ has_command = has_command,
}
end
end
@@ -542,6 +558,7 @@
-- options_and_params, i = parseoption(arg, options)
-- options[i] = {short = "o", long = "option" [, param = true] [, boolean = true] [, allow_single_hyphen = false]}
+-- options_and_params[j] = {"option", "value"}
-- arg[i], arg[i + 1], ..., arg[#arg] are non-options
local function parseoption(arg, options)
local i = 1
@@ -581,6 +598,7 @@
elseif o.boolean and name == "no-" .. o.long then
-- --no-option
opt = o
+ param = false
break
end
end
@@ -620,6 +638,7 @@
elseif o.boolean and name == "no-" .. o.long then
-- -no-option
opt = o
+ param = false
break
end
elseif o.long and #name >= 2 and (o.long == name or (o.boolean and name == "no-" .. o.long)) then
@@ -673,7 +692,7 @@
end
package.preload["texrunner.tex_engine"] = function(...)
--[[
- Copyright 2016 ARATA Mizuki
+ Copyright 2016,2019 ARATA Mizuki
This file is part of ClutTeX.
@@ -700,7 +719,7 @@
--[[
engine.name: string
engine.type = "onePass" or "twoPass"
-engine:build_command(inputfile, options)
+engine:build_command(inputline, options)
options:
halt_on_error: boolean
interaction: string
@@ -714,7 +733,6 @@
output_format: "pdf" or "dvi"
draftmode: boolean (pdfTeX / XeTeX / LuaTeX)
fmt: string
- tex_injection: string
lua_initialization_script: string (LuaTeX only)
engine.executable: string
engine.supports_pdf_generation: boolean
@@ -726,8 +744,9 @@
local engine_meta = {}
engine_meta.__index = engine_meta
engine_meta.dvi_extension = "dvi"
-function engine_meta:build_command(inputfile, options)
- local command = {self.executable, "-recorder"}
+function engine_meta:build_command(inputline, options)
+ local executable = options.engine_executable or self.executable
+ local command = {executable, "-recorder"}
if options.fmt then
table.insert(command, "-fmt=" .. options.fmt)
end
@@ -764,11 +783,7 @@
table.insert(command, v)
end
end
- if type(options.tex_injection) == "string" then
- table.insert(command, shellutil.escape(options.tex_injection .. "\\input " .. inputfile)) -- TODO: what if filename contains spaces?
- else
- table.insert(command, shellutil.escape(inputfile))
- end
+ table.insert(command, shellutil.escape(inputline))
return table.concat(command, " ")
end
@@ -1118,8 +1133,9 @@
for l in io.lines(auxfile) do
local subauxfile = string_match(l, "\\@input{(.+)}")
if subauxfile then
- if fsutil.isfile(subauxfile) then
- parse_aux_file(pathutil.join(outdir, subauxfile), outdir, report, seen)
+ local subauxfile_abs = pathutil.abspath(subauxfile, outdir)
+ if fsutil.isfile(subauxfile_abs) then
+ parse_aux_file(subauxfile_abs, outdir, report, seen)
else
local dir = pathutil.join(outdir, pathutil.dirname(subauxfile))
if not fsutil.isdir(dir) then
@@ -1144,8 +1160,11 @@
end
elseif name == "@input" then
local subauxfile = string_match(l, "\\@input{(.+)}")
- if subauxfile and fsutil.isfile(subauxfile) then
- extract_bibtex_from_aux_file(pathutil.join(outdir, subauxfile), outdir, biblines)
+ if subauxfile then
+ local subauxfile_abs = pathutil.abspath(subauxfile, outdir)
+ if fsutil.isfile(subauxfile_abs) then
+ extract_bibtex_from_aux_file(subauxfile_abs, outdir, biblines)
+ end
end
end
end
@@ -1177,17 +1196,19 @@
-- Packages coded in Lua doesn't follow -output-directory option and doesn't write command to the log file
initscript:write(string.format("local output_directory = %q\n", options.output_directory))
+ -- tex.jobname may not be available when io.open is called for the first time
+ initscript:write(string.format("local jobname = %q\n", options.jobname))
initscript:write([==[
local luawritelog
local function openluawritelog()
if not luawritelog then
- luawritelog = assert(io_open(output_directory .. "/" .. tex.jobname .. ".cluttex-fls", "w"))
+ luawritelog = assert(io_open(output_directory .. "/" .. jobname .. ".cluttex-fls", "w"))
end
return luawritelog
end
io.open = function(fname, mode)
-- luatexja-ruby
- if mode == "w" and fname == tex.jobname .. ".ltjruby" then
+ if mode == "w" and fname == jobname .. ".ltjruby" then
fname = output_directory .. "/" .. fname
end
if type(mode) == "string" and string.find(mode, "w") ~= nil then
@@ -1348,7 +1369,7 @@
end
package.preload["texrunner.handleoption"] = function(...)
local COPYRIGHT_NOTICE = [[
-Copyright (C) 2016,2018-2019 ARATA Mizuki
+Copyright (C) 2016-2020 ARATA Mizuki
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
@@ -1385,6 +1406,9 @@
xelatex, xetex, latex, etex, tex,
platex, eptex, ptex,
uplatex, euptex, uptex,
+ --engine-executable=COMMAND+OPTIONs
+ The actual TeX command to use.
+ [default: ENGINE]
-o, --output=FILE The name of output file.
[default: JOBNAME.pdf or JOBNAME.dvi]
--fresh Clean intermediate files before running TeX.
@@ -1400,17 +1424,26 @@
--dvipdfmx-option[s]=OPTION[s] Same for dvipdfmx.
--makeindex=COMMAND+OPTIONs Command to generate index, such as
`makeindex' or `mendex'.
- --bibtex=COMMAND+OPTIONs Command for BibTeX, such as
+ --bibtex=COMMAND+OPTIONs Command for BibTeX, such as
`bibtex' or `pbibtex'.
- --biber[=COMMAND+OPTIONs] Command for Biber.
+ --biber[=COMMAND+OPTIONs] Command for Biber.
--makeglossaries[=COMMAND+OPTIONs] Command for makeglossaries.
-h, --help Print this message and exit.
-v, --version Print version information and exit.
-V, --verbose Be more verbose.
- --color=WHEN Make ClutTeX's message colorful. WHEN is one of
- `always', `auto', or `never'. [default: auto]
+ --color[=WHEN] Make ClutTeX's message colorful. WHEN is one of
+ `always', `auto', or `never'.
+ [default: `auto' if --color is omitted,
+ `always' if WHEN is omitted]
--includeonly=NAMEs Insert '\includeonly{NAMEs}'.
--make-depends=FILE Write dependencies as a Makefile rule.
+ --print-output-directory Print the output directory and exit.
+ --package-support=PKG1[,PKG2,...]
+ Enable special support for some shell-escaping
+ packages.
+ Currently supported: minted, epstopdf
+ --check-driver=DRIVER Check that the correct driver file is loaded.
+ DRIVER is one of `dvipdfmx', `dvips', `dvisvgm'.
--[no-]shell-escape
--shell-restricted
@@ -1435,6 +1468,10 @@
param = true,
},
{
+ long = "engine-executable",
+ param = true,
+ },
+ {
short = "o",
long = "output",
param = true,
@@ -1482,6 +1519,17 @@
long = "make-depends",
param = true
},
+ {
+ long = "print-output-directory",
+ },
+ {
+ long = "package-support",
+ param = true
+ },
+ {
+ long = "check-driver",
+ param = true
+ },
-- Options for TeX
{
long = "synctex",
@@ -1585,6 +1633,10 @@
if options.halt_on_error == nil then
options.halt_on_error = true
end
+
+ if options.output_format == nil then
+ options.output_format = "pdf"
+ end
end
-- inputfile, engine, options = handle_cluttex_options(arg)
@@ -1596,6 +1648,7 @@
local options = {
tex_extraoptions = {},
dvipdfmx_extraoptions = {},
+ package_support = {},
}
CLUTTEX_VERBOSITY = 0
for _,option in ipairs(option_and_params) do
@@ -1606,6 +1659,10 @@
assert(options.engine == nil, "multiple --engine options")
options.engine = param
+ elseif name == "engine-executable" then
+ assert(options.engine_executable == nil, "multiple --engine-executable options")
+ options.engine_executable = param
+
elseif name == "output" then
assert(options.output == nil, "multiple --output options")
options.output = param
@@ -1655,6 +1712,24 @@
assert(options.make_depends == nil, "multiple --make-depends options")
options.make_depends = param
+ elseif name == "print-output-directory" then
+ assert(options.print_output_directory == nil, "multiple --print-output-directory options")
+ options.print_output_directory = true
+
+ elseif name == "package-support" then
+ local known_packages = {["minted"] = true, ["epstopdf"] = true}
+ for pkg in string.gmatch(param, "[^,%s]+") do
+ options.package_support[pkg] = true
+ if not known_packages[pkg] and CLUTTEX_VERBOSITY >= 1 then
+ message.warn("ClutTeX provides no special support for '"..pkg.."'.")
+ end
+ end
+
+ elseif name == "check-driver" then
+ assert(options.check_driver == nil, "multiple --check-driver options")
+ assert(param == "dvipdfmx" or param == "dvips" or param == "dvisvgm", "wrong value for --check-driver option")
+ options.check_driver = param
+
-- Options for TeX
elseif name == "synctex" then
assert(options.synctex == nil, "multiple --synctex options")
@@ -1765,6 +1840,27 @@
set_default_values(options)
+ if options.output_format == "pdf" then
+ if options.check_driver ~= nil then
+ error("--check-driver can only be used when the output format is DVI.")
+ end
+ if engine.supports_pdf_generation then
+ if engine.is_luatex then
+ options.check_driver = "luatex"
+ elseif engine.name == "xetex" or engine.name == "xelatex" then
+ options.check_driver = "xetex"
+ elseif engine.name == "pdftex" or engine.name == "pdflatex" then
+ options.check_driver = "pdftex"
+ else
+ message.warning("Unknown engine: "..engine.name)
+ message.warning("Driver check will not work.")
+ end
+ else
+ -- ClutTeX uses dvipdfmx to generate PDF from DVI output.
+ options.check_driver = "dvipdfmx"
+ end
+ end
+
return inputfile, engine, options
end
@@ -2073,7 +2169,7 @@
local function exec_msg(commandline)
if use_colors then
- io.stderr:write(CMD.fg_x_white, CMD.bg_red, "[EXEC]", CMD.reset, " ", CMD.fg_red, commandline, CMD.reset, "\n")
+ io.stderr:write(CMD.fg_x_white, CMD.bg_red, "[EXEC]", CMD.reset, " ", CMD.fg_cyan, commandline, CMD.reset, "\n")
else
io.stderr:write("[EXEC] ", commandline, "\n")
end
@@ -2124,8 +2220,9 @@
info = info_msg,
}
end
+package.preload["texrunner.fswatcher_windows"] = function(...)
--[[
- Copyright 2016,2018-2019 ARATA Mizuki
+ Copyright 2019 ARATA Mizuki
This file is part of ClutTeX.
@@ -2143,7 +2240,673 @@
along with ClutTeX. If not, see http://www.gnu.org/licenses/.
]]
-CLUTTEX_VERSION = "v0.2"
+local ffi = require "ffi"
+local bitlib = assert(bit32 or bit, "Neither bit32 (Lua 5.2) nor bit (LuaJIT) found") -- Lua 5.2 or LuaJIT
+
+ffi.cdef[[
+typedef int BOOL;
+typedef unsigned int UINT;
+typedef uint32_t DWORD;
+typedef void *HANDLE;
+typedef uintptr_t ULONG_PTR;
+typedef uint16_t WCHAR;
+typedef struct _OVERLAPPED {
+ ULONG_PTR Internal;
+ ULONG_PTR InternalHigh;
+ union {
+ struct {
+ DWORD Offset;
+ DWORD OffsetHigh;
+ };
+ void *Pointer;
+ };
+ HANDLE hEvent;
+} OVERLAPPED;
+typedef struct _FILE_NOTIFY_INFORMATION {
+ DWORD NextEntryOffset;
+ DWORD Action;
+ DWORD FileNameLength;
+ WCHAR FileName[?];
+} FILE_NOTIFY_INFORMATION;
+typedef void (__stdcall *LPOVERLAPPED_COMPLETION_ROUTINE)(DWORD dwErrorCode, DWORD dwNumberOfBytesTransfered, OVERLAPPED *lpOverlapped);
+DWORD GetLastError();
+BOOL CloseHandle(HANDLE hObject);
+HANDLE CreateFileA(const char *lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, void *lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile);
+HANDLE CreateIoCompletionPort(HANDLE fileHandle, HANDLE existingCompletionPort, ULONG_PTR completionKey, DWORD numberOfConcurrentThreads);
+BOOL ReadDirectoryChangesW(HANDLE hDirectory, void *lpBuffer, DWORD nBufferLength, BOOL bWatchSubtree, DWORD dwNotifyFilter, DWORD *lpBytesReturned, OVERLAPPED *lpOverlapped, LPOVERLAPPED_COMPLETION_ROUTINE lpOverlappedCompletionRoutine);
+BOOL GetQueuedCompletionStatus(HANDLE CompletionPort, DWORD *lpNumberOfBytes, ULONG_PTR *lpCompletionKey, OVERLAPPED **lpOverlapped, DWORD dwMilliseconds);
+int MultiByteToWideChar(UINT CodePage, DWORD dwFlags, const char *lpMultiByteStr, int cbMultiByte, WCHAR *lpWideCharStr, int cchWideChar);
+int WideCharToMultiByte(UINT CodePage, DWORD dwFlags, const WCHAR *lpWideCharStr, int cchWideChar, char *lpMultiByteStr, int cbMultiByte, const char *lpDefaultChar, BOOL *lpUsedDefaultChar);
+DWORD GetFullPathNameA(const char *lpFileName, DWORD nBufferLength, char *lpBuffer, char **lpFilePart);
+uint64_t GetTickCount64();
+]]
+
+-- LuaTeX's FFI does not equate a null pointer with nil.
+-- On LuaJIT, ffi.NULL is just nil.
+local NULL = ffi.NULL
+
+-- GetLastError
+local ERROR_FILE_NOT_FOUND = 0x0002
+local ERROR_PATH_NOT_FOUND = 0x0003
+local ERROR_ACCESS_DENIED = 0x0005
+local ERROR_INVALID_PARAMETER = 0x0057
+local ERROR_INSUFFICIENT_BUFFER = 0x007A
+local WAIT_TIMEOUT = 0x0102
+local ERROR_ABANDONED_WAIT_0 = 0x02DF
+local ERROR_NOACCESS = 0x03E6
+local ERROR_INVALID_FLAGS = 0x03EC
+local ERROR_NOTIFY_ENUM_DIR = 0x03FE
+local ERROR_NO_UNICODE_TRANSLATION = 0x0459
+local KnownErrors = {
+ [ERROR_FILE_NOT_FOUND] = "ERROR_FILE_NOT_FOUND",
+ [ERROR_PATH_NOT_FOUND] = "ERROR_PATH_NOT_FOUND",
+ [ERROR_ACCESS_DENIED] = "ERROR_ACCESS_DENIED",
+ [ERROR_INVALID_PARAMETER] = "ERROR_INVALID_PARAMETER",
+ [ERROR_INSUFFICIENT_BUFFER] = "ERROR_INSUFFICIENT_BUFFER",
+ [ERROR_ABANDONED_WAIT_0] = "ERROR_ABANDONED_WAIT_0",
+ [ERROR_NOACCESS] = "ERROR_NOACCESS",
+ [ERROR_INVALID_FLAGS] = "ERROR_INVALID_FLAGS",
+ [ERROR_NOTIFY_ENUM_DIR] = "ERROR_NOTIFY_ENUM_DIR",
+ [ERROR_NO_UNICODE_TRANSLATION] = "ERROR_NO_UNICODE_TRANSLATION",
+}
+
+-- CreateFile
+local FILE_FLAG_BACKUP_SEMANTICS = 0x02000000
+local FILE_FLAG_OVERLAPPED = 0x40000000
+local OPEN_EXISTING = 3
+local FILE_SHARE_READ = 0x00000001
+local FILE_SHARE_WRITE = 0x00000002
+local FILE_SHARE_DELETE = 0x00000004
+local FILE_LIST_DIRECTORY = 0x1
+local INVALID_HANDLE_VALUE = ffi.cast("void *", -1)
+
+-- ReadDirectoryChangesW / FILE_NOTIFY_INFORMATION
+local FILE_NOTIFY_CHANGE_FILE_NAME = 0x00000001
+local FILE_NOTIFY_CHANGE_DIR_NAME = 0x00000002
+local FILE_NOTIFY_CHANGE_ATTRIBUTES = 0x00000004
+local FILE_NOTIFY_CHANGE_SIZE = 0x00000008
+local FILE_NOTIFY_CHANGE_LAST_WRITE = 0x00000010
+local FILE_NOTIFY_CHANGE_LAST_ACCESS = 0x00000020
+local FILE_NOTIFY_CHANGE_CREATION = 0x00000040
+local FILE_NOTIFY_CHANGE_SECURITY = 0x00000100
+local FILE_ACTION_ADDED = 0x00000001
+local FILE_ACTION_REMOVED = 0x00000002
+local FILE_ACTION_MODIFIED = 0x00000003
+local FILE_ACTION_RENAMED_OLD_NAME = 0x00000004
+local FILE_ACTION_RENAMED_NEW_NAME = 0x00000005
+
+-- WideCharToMultiByte / MultiByteToWideChar
+local CP_ACP = 0
+local CP_UTF8 = 65001
+
+local C = ffi.C
+
+local function format_error(name, lasterror, extra)
+ local errorname = KnownErrors[lasterror] or string.format("error code %d", lasterror)
+ if extra then
+ return string.format("%s failed with %s (0x%04x) [%s]", name, errorname, lasterror, extra)
+ else
+ return string.format("%s failed with %s (0x%04x)", name, errorname, lasterror)
+ end
+end
+local function wcs_to_mbs(wstr, wstrlen, codepage)
+ -- wstr: FFI uint16_t[?]
+ -- wstrlen: length of wstr, or -1 if NUL-terminated
+ if wstrlen == 0 then
+ return ""
+ end
+ codepage = codepage or CP_ACP
+ local dwFlags = 0
+ local result = C.WideCharToMultiByte(codepage, dwFlags, wstr, wstrlen, nil, 0, nil, nil)
+ if result <= 0 then
+ -- Failed
+ local lasterror = C.GetLastError()
+ -- Candidates: ERROR_INSUFFICIENT_BUFFER, ERROR_INVALID_FLAGS, ERROR_INVALID_PARAMETER, ERROR_NO_UNICODE_TRANSLATION
+ return nil, format_error("WideCharToMultiByte", lasterror)
+ end
+ local mbsbuf = ffi.new("char[?]", result)
+ result = C.WideCharToMultiByte(codepage, dwFlags, wstr, wstrlen, mbsbuf, result, nil, nil)
+ if result <= 0 then
+ -- Failed
+ local lasterror = C.GetLastError()
+ -- Candidates: ERROR_INSUFFICIENT_BUFFER, ERROR_INVALID_FLAGS, ERROR_INVALID_PARAMETER, ERROR_NO_UNICODE_TRANSLATION
+ return nil, format_error("WideCharToMultiByte", lasterror)
+ end
+ return ffi.string(mbsbuf, result)
+end
+local function mbs_to_wcs(str, codepage)
+ -- str: Lua string
+ if str == "" then
+ return ffi.new("WCHAR[0]")
+ end
+ codepage = codepage or CP_ACP
+ local dwFlags = 0
+ local result = C.MultiByteToWideChar(codepage, dwFlags, str, #str, nil, 0)
+ if result <= 0 then
+ local lasterror = C.GetLastError()
+ -- ERROR_INSUFFICIENT_BUFFER, ERROR_INVALID_FLAGS, ERROR_INVALID_PARAMETER, ERROR_NO_UNICODE_TRANSLATION
+ return nil, format_error("MultiByteToWideChar", lasterror)
+ end
+ local wcsbuf = ffi.new("WCHAR[?]", result)
+ result = C.MultiByteToWideChar(codepage, dwFlags, str, #str, wcsbuf, result)
+ if result <= 0 then
+ local lasterror = C.GetLastError()
+ return nil, format_error("MultiByteToWideChar", lasterror)
+ end
+ return wcsbuf, result
+end
+
+
+local function get_full_path_name(filename)
+ local bufsize = 1024
+ local buffer
+ local filePartPtr = ffi.new("char*[1]")
+ local result
+ repeat
+ buffer = ffi.new("char[?]", bufsize)
+ result = C.GetFullPathNameA(filename, bufsize, buffer, filePartPtr)
+ if result == 0 then
+ local lasterror = C.GetLastError()
+ return nil, format_error("GetFullPathNameA", lasterror, filename)
+ elseif bufsize < result then
+ -- result: buffer size required to hold the path + terminating NUL
+ bufsize = result
+ end
+ until result < bufsize
+ local fullpath = ffi.string(buffer, result)
+ local filePart = ffi.string(filePartPtr[0])
+ local dirPart = ffi.string(buffer, ffi.cast("intptr_t", filePartPtr[0]) - ffi.cast("intptr_t", buffer)) -- LuaTeX's FFI doesn't support pointer subtraction
+ return fullpath, filePart, dirPart
+end
+
+--[[
+ dirwatche.dirname : string
+ dirwatcher._rawhandle : cdata HANDLE
+ dirwatcher._overlapped : cdata OVERLAPPED
+ dirwatcher._buffer : cdata char[?]
+]]
+local dirwatcher_meta = {}
+dirwatcher_meta.__index = dirwatcher_meta
+function dirwatcher_meta:close()
+ if self._rawhandle ~= nil then
+ C.CloseHandle(ffi.gc(self._rawhandle, nil))
+ self._rawhandle = nil
+ end
+end
+local function open_directory(dirname)
+ local dwShareMode = bitlib.bor(FILE_SHARE_READ, FILE_SHARE_WRITE, FILE_SHARE_DELETE)
+ local dwFlagsAndAttributes = bitlib.bor(FILE_FLAG_BACKUP_SEMANTICS, FILE_FLAG_OVERLAPPED)
+ local handle = C.CreateFileA(dirname, FILE_LIST_DIRECTORY, dwShareMode, nil, OPEN_EXISTING, dwFlagsAndAttributes, nil)
+ if handle == INVALID_HANDLE_VALUE then
+ local lasterror = C.GetLastError()
+ print("Failed to open "..dirname)
+ return nil, format_error("CreateFileA", lasterror, dirname)
+ end
+ return setmetatable({
+ dirname = dirname,
+ _rawhandle = ffi.gc(handle, C.CloseHandle),
+ _overlapped = ffi.new("OVERLAPPED"),
+ _buffer = ffi.new("char[?]", 1024),
+ }, dirwatcher_meta)
+end
+function dirwatcher_meta:start_watch(watchSubtree)
+ local dwNotifyFilter = bitlib.bor(FILE_NOTIFY_CHANGE_FILE_NAME, FILE_NOTIFY_CHANGE_DIR_NAME, FILE_NOTIFY_CHANGE_ATTRIBUTES, FILE_NOTIFY_CHANGE_SIZE, FILE_NOTIFY_CHANGE_LAST_WRITE, FILE_NOTIFY_CHANGE_LAST_ACCESS, FILE_NOTIFY_CHANGE_CREATION, FILE_NOTIFY_CHANGE_SECURITY)
+ local buffer = self._buffer
+ local bufferSize = ffi.sizeof(buffer)
+ local result = C.ReadDirectoryChangesW(self._rawhandle, buffer, bufferSize, watchSubtree, dwNotifyFilter, nil, self._overlapped, nil)
+ if result == 0 then
+ local lasterror = C.GetLastError()
+ return nil, format_error("ReadDirectoryChangesW", lasterror, self.dirname)
+ end
+ return true
+end
+local ActionTable = {
+ [FILE_ACTION_ADDED] = "added",
+ [FILE_ACTION_REMOVED] = "removed",
+ [FILE_ACTION_MODIFIED] = "modified",
+ [FILE_ACTION_RENAMED_OLD_NAME] = "rename_from",
+ [FILE_ACTION_RENAMED_NEW_NAME] = "rename_to",
+}
+function dirwatcher_meta:process(numberOfBytes)
+ -- self._buffer received `numberOfBytes` bytes
+ local buffer = self._buffer
+ numberOfBytes = math.min(numberOfBytes, ffi.sizeof(buffer))
+ local ptr = ffi.cast("char *", buffer)
+ local structSize = ffi.sizeof("FILE_NOTIFY_INFORMATION", 1)
+ local t = {}
+ while numberOfBytes >= structSize do
+ local notifyInfo = ffi.cast("FILE_NOTIFY_INFORMATION*", ptr)
+ local nextEntryOffset = notifyInfo.NextEntryOffset
+ local action = notifyInfo.Action
+ local fileNameLength = notifyInfo.FileNameLength
+ local fileName = notifyInfo.FileName
+ local u = { action = ActionTable[action], filename = wcs_to_mbs(fileName, fileNameLength / 2) }
+ table.insert(t, u)
+ if nextEntryOffset == 0 or numberOfBytes <= nextEntryOffset then
+ break
+ end
+ numberOfBytes = numberOfBytes - nextEntryOffset
+ ptr = ptr + nextEntryOffset
+ end
+ return t
+end
+
+--[[
+ watcher._rawport : cdata HANDLE
+ watcher._pending : array of {
+ action = ..., filename = ...
+ }
+ watcher._directories[dirname] = {
+ dir = directory watcher,
+ dirname = dirname,
+ files = { [filename] = user-supplied path } -- files to watch
+ }
+ watcher[i] = i-th directory (_directories[dirname] for some dirname)
+]]
+
+local fswatcher_meta = {}
+fswatcher_meta.__index = fswatcher_meta
+local function new_watcher()
+ local port = C.CreateIoCompletionPort(INVALID_HANDLE_VALUE, nil, 0, 0)
+ if port == NULL then
+ local lasterror = C.GetLastError()
+ return nil, format_error("CreateIoCompletionPort", lasterror)
+ end
+ return setmetatable({
+ _rawport = ffi.gc(port, C.CloseHandle), -- ?
+ _pending = {},
+ _directories = {},
+ }, fswatcher_meta)
+end
+local function add_directory(self, dirname)
+ local t = self._directories[dirname]
+ if not t then
+ local dirwatcher, err = open_directory(dirname)
+ if not dirwatcher then
+ return dirwatcher, err
+ end
+ t = { dirwatcher = dirwatcher, dirname = dirname, files = {} }
+ table.insert(self, t)
+ local i = #self
+ local result = C.CreateIoCompletionPort(dirwatcher._rawhandle, self._rawport, i, 0)
+ if result == NULL then
+ local lasterror = C.GetLastError()
+ return nil, format_error("CreateIoCompletionPort", lasterror, dirname)
+ end
+ self._directories[dirname] = t
+ local result, err = dirwatcher:start_watch(false)
+ if not result then
+ return result, err
+ end
+ end
+ return t
+end
+function fswatcher_meta:add_file(path, ...)
+ local fullpath, filename, dirname = get_full_path_name(path)
+ local t, err = add_directory(self, dirname)
+ if not t then
+ return t, err
+ end
+ t.files[filename] = path
+ return true
+end
+local INFINITE = 0xFFFFFFFF
+local function get_queued(self, timeout)
+ local startTime = C.GetTickCount64()
+ local timeout_ms
+ if timeout == nil then
+ timeout_ms = INFINITE
+ else
+ timeout_ms = timeout * 1000
+ end
+ local numberOfBytesPtr = ffi.new("DWORD[1]")
+ local completionKeyPtr = ffi.new("ULONG_PTR[1]")
+ local lpOverlapped = ffi.new("OVERLAPPED*[1]")
+ repeat
+ local result = C.GetQueuedCompletionStatus(self._rawport, numberOfBytesPtr, completionKeyPtr, lpOverlapped, timeout_ms)
+ if result == 0 then
+ local lasterror = C.GetLastError()
+ if lasterror == WAIT_TIMEOUT then
+ return nil, "timeout"
+ else
+ return nil, format_error("GetQueuedCompletionStatus", lasterror)
+ end
+ end
+ local numberOfBytes = numberOfBytesPtr[0]
+ local completionKey = tonumber(completionKeyPtr[0])
+ local dir_t = assert(self[completionKey], "invalid completion key: " .. tostring(completionKey))
+ local t = dir_t.dirwatcher:process(numberOfBytes)
+ dir_t.dirwatcher:start_watch(false)
+ local found = false
+ for i,v in ipairs(t) do
+ local path = dir_t.files[v.filename]
+ if path then
+ found = true
+ table.insert(self._pending, {path = path, action = v.action})
+ end
+ end
+ if found then
+ return true
+ end
+ if timeout_ms ~= INFINITE then
+ local tt = C.GetTickCount64()
+ timeout_ms = timeout_ms - (tt - startTime)
+ startTime = tt
+ end
+ until timeout_ms < 0
+ return nil, "timeout"
+end
+function fswatcher_meta:next(timeout)
+ if #self._pending > 0 then
+ local result = table.remove(self._pending, 1)
+ get_queued(self, 0) -- ignore error
+ return result
+ else
+ local result, err = get_queued(self, timeout)
+ if result == nil then
+ return nil, err
+ end
+ return table.remove(self._pending, 1)
+ end
+end
+function fswatcher_meta:close()
+ if self._rawport ~= nil then
+ for i,v in ipairs(self) do
+ v.dirwatcher:close()
+ end
+ C.CloseHandle(ffi.gc(self._rawport, nil))
+ self._rawport = nil
+ end
+end
+--[[
+local watcher = require("fswatcher_windows").new()
+assert(watcher:add_file("rdc-sync.c"))
+assert(watcher:add_file("sub2/hoge"))
+for i = 1, 10 do
+ local result, err = watcher:next(2)
+ if err == "timeout" then
+ print(os.date(), "timeout")
+ else
+ assert(result, err)
+ print(os.date(), result.path, result.action)
+ end
+end
+watcher:close()
+]]
+return {
+ new = new_watcher,
+}
+end
+package.preload["texrunner.safename"] = function(...)
+--[[
+ Copyright 2019 ARATA Mizuki
+
+ This file is part of ClutTeX.
+
+ ClutTeX 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.
+
+ ClutTeX 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 ClutTeX. If not, see http://www.gnu.org/licenses/.
+]]
+
+local string = string
+local table = table
+
+local function dounsafechar(c)
+ if c == " " then
+ return "_"
+ else
+ return string.format("_%02x", c:byte(1))
+ end
+end
+
+local function escapejobname(name)
+ return (string.gsub(name, "[%s\"$%%&'();<>\\^`|]", dounsafechar))
+end
+
+local function handlespecialchar(s)
+ return (string.gsub(s, "[%\\%%^%{%}%~%#]", "~\\%1"))
+end
+
+local function handlespaces(s)
+ return (string.gsub(s, " +", function(s) return string.rep(" ", #s, "~") end))
+end
+
+local function handlenonascii(s)
+ return (string.gsub(s, "[\x80-\xFF]+", "\\detokenize{%1}"))
+end
+
+local function safeinput(name, engine)
+ local escaped = handlespaces(handlespecialchar(name))
+ if engine.name == "pdftex" or engine.name == "pdflatex" then
+ escaped = handlenonascii(escaped)
+ end
+ if name == escaped then
+ return string.format("\\input\"%s\"", name)
+ else
+ return string.format("\\begingroup\\escapechar-1\\let~\\string\\edef\\x{\"%s\" }\\expandafter\\endgroup\\expandafter\\input\\x", escaped)
+ end
+end
+
+return {
+ escapejobname = escapejobname,
+ safeinput = safeinput,
+}
+end
+package.preload["texrunner.checkdriver"] = function(...)
+--[[
+ Copyright 2020 ARATA Mizuki
+
+ This file is part of ClutTeX.
+
+ ClutTeX 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.
+
+ ClutTeX 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 ClutTeX. If not, see http://www.gnu.org/licenses/.
+]]
+local assert = assert
+local ipairs = ipairs
+local error = error
+local string = string
+local pathutil = require "texrunner.pathutil"
+local message = require "texrunner.message"
+
+local right_values = {
+ dvips = {
+ graphics = "dvips",
+ expl3 = "dvips",
+ hyperref = "dvips",
+ xypic = "dvips",
+ },
+ dvipdfmx = {
+ graphics = "dvipdfmx",
+ expl3 = "dvipdfmx",
+ hyperref = "dvipdfmx",
+ xypic = "pdf",
+ },
+ dvisvgm = {
+ graphics = "dvisvgm",
+ expl3 = "dvisvgm",
+ },
+ xetex = {
+ graphics = "xetex",
+ expl3 = "xdvipdfmx",
+ hyperref = "xetex",
+ xypic = "pdf",
+ },
+ pdftex = {
+ graphics = "pdftex",
+ expl3 = "pdfmode",
+ hyperref = "pdftex",
+ xypic = "pdf",
+ },
+ luatex = {
+ graphics = "luatex",
+ expl3 = "pdfmode",
+ hyperref = "luatex",
+ xypic = "pdf",
+ },
+}
+
+-- expected_driver: one of "dvips", "dvipdfmx", "dvisvgm", "pdftex", "xetex", "luatex"
+local function checkdriver(expected_driver, filelist)
+ if CLUTTEX_VERBOSITY >= 1 then
+ message.info("checkdriver: expects ", expected_driver)
+ end
+
+ local loaded = {}
+ for i,t in ipairs(filelist) do
+ if t.kind == "input" then
+ local basename = pathutil.basename(t.path)
+ loaded[basename] = true
+ end
+ end
+
+ local graphics_driver = nil -- "dvipdfmx" | "dvips" | "dvisvgm" | "pdftex" | "luatex" | "xetex" | "unknown"
+ if loaded["graphics.sty"] or loaded["color.sty"] then
+ if loaded["dvipdfmx.def"] then
+ graphics_driver = "dvipdfmx"
+ elseif loaded["dvips.def"] then
+ graphics_driver = "dvips"
+ elseif loaded["dvisvgm.def"] then
+ graphics_driver = "dvisvgm"
+ elseif loaded["pdftex.def"] then
+ graphics_driver = "pdftex"
+ elseif loaded["luatex.def"] then
+ graphics_driver = "luatex"
+ elseif loaded["xetex.def"] then
+ graphics_driver = "xetex"
+ else
+ -- Not supported: dvipdf, dvipsone, emtex, textures, pctexps, pctexwin, pctexhp, pctex32, truetex, tcidvi, vtex
+ graphics_driver = "unknown"
+ end
+ end
+ local expl3_driver = nil -- "pdfmode" | "dvisvgm" | "xdvipdfmx" | "dvipdfmx" | "dvips" | "unknown"
+ if loaded["expl3-code.tex"] or loaded["expl3.sty"] or loaded["l3backend-dvips.def"] or loaded["l3backend-dvipdfmx.def"] or loaded["l3backend-xdvipdfmx.def"] or loaded["l3backend-pdfmode.def"] then
+ if loaded["l3backend-pdfmode.def"] then
+ expl3_driver = "pdfmode" -- pdftex, luatex
+ elseif loaded["l3backend-dvisvgm.def"] then
+ expl3_driver = "dvisvgm"
+ elseif loaded["l3backend-xdvipdfmx.def"] then
+ expl3_driver = "xdvipdfmx"
+ elseif loaded["l3backend-dvipdfmx.def"] then
+ expl3_driver = "dvipdfmx"
+ elseif loaded["l3backend-dvips.def"] then
+ expl3_driver = "dvips"
+ else
+ -- TODO: driver=latex2e?
+ expl3_driver = "unknown"
+ end
+ end
+ local hyperref_driver = nil -- "luatex" | "pdftex" | "xetex" | "dvipdfmx" | "dvips" | "unknown"
+ if loaded["hyperref.sty"] then
+ if loaded["hluatex.def"] then
+ hyperref_driver = "luatex"
+ elseif loaded["hpdftex.def"] then
+ hyperref_driver = "pdftex"
+ elseif loaded["hxetex.def"] then
+ hyperref_driver = "xetex"
+ elseif loaded["hdvipdfm.def"] then
+ hyperref_driver = "dvipdfmx"
+ elseif loaded["hdvips.def"] then
+ hyperref_driver = "dvips"
+ else
+ -- Not supported: dvipson, dviwind, tex4ht, texture, vtex, vtexhtm, xtexmrk, hypertex
+ hyperref_driver = "unknown"
+ end
+ -- TODO: dvisvgm?
+ end
+ local xypic_driver = nil -- "pdf" | "dvips" | "unknown"
+ if loaded["xy.tex"] then
+ if loaded["xypdf.tex"] then
+ xypic_driver = "pdf" -- pdftex, luatex, xetex, dvipdfmx
+ elseif loaded["xydvips.tex"] then
+ xypic_driver = "dvips"
+ else
+ -- Not supported: dvidrv, dvitops, oztex, 17oztex, textures, 16textures, xdvi
+ xypic_driver = "unknown"
+ end
+ -- TODO: dvisvgm?
+ end
+
+ if CLUTTEX_VERBOSITY >= 1 then
+ message.info("checkdriver: graphics=", tostring(graphics_driver))
+ message.info("checkdriver: expl3=", tostring(expl3_driver))
+ message.info("checkdriver: hyperref=", tostring(hyperref_driver))
+ message.info("checkdriver: xypic=", tostring(xypic_driver))
+ end
+
+ local expected = assert(right_values[expected_driver], "invalid value for expected_driver")
+ if graphics_driver ~= nil and expected.graphics ~= nil and graphics_driver ~= expected.graphics then
+ message.diag("The driver option for graphics(x)/color is missing or wrong.")
+ message.diag("Consider setting '", expected.graphics, "' option.")
+ end
+ if expl3_driver ~= nil and expected.expl3 ~= nil and expl3_driver ~= expected.expl3 then
+ message.diag("The driver option for expl3 is missing or wrong.")
+ message.diag("Consider setting 'driver=", expected.expl3, "' option when loading expl3.")
+ end
+ if hyperref_driver ~= nil and expected.hyperref ~= nil and hyperref_driver ~= expected.hyperref then
+ message.diag("The driver option for hyperref is missing or wrong.")
+ message.diag("Consider setting '", expected.hyperref, "' option.")
+ end
+ if xypic_driver ~= nil and expected.xypic ~= nil and xypic_driver ~= expected.xypic then
+ message.diag("The driver option for Xy-pic is missing or wrong.")
+ if expected_driver == "dvipdfmx" then
+ message.diag("Consider setting 'dvipdfmx' option or running \\xyoption{pdf}.")
+ elseif expected_driver == "pdftex" then
+ message.diag("Consider setting 'pdftex' option or running \\xyoption{pdf}.")
+ elseif expected.xypic == "pdf" then
+ message.diag("Consider setting 'pdf' package option or running \\xyoption{pdf}.")
+ elseif expected.xypic == "dvips" then
+ message.diag("Consider setting 'dvips' option.")
+ end
+ end
+end
+
+--[[
+filelist[i] = {path = ""}
+]]
+
+return {
+ checkdriver = checkdriver,
+}
+end
+--[[
+ Copyright 2016-2020 ARATA Mizuki
+
+ This file is part of ClutTeX.
+
+ ClutTeX 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.
+
+ ClutTeX 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 ClutTeX. If not, see http://www.gnu.org/licenses/.
+]]
+
+CLUTTEX_VERSION = "v0.5"
-- Standard libraries
local coroutine = coroutine
@@ -2162,8 +2925,12 @@
local luatexinit = require "texrunner.luatexinit"
local recoverylib = require "texrunner.recovery"
local message = require "texrunner.message"
+local safename = require "texrunner.safename"
local extract_bibtex_from_aux_file = require "texrunner.auxfile".extract_bibtex_from_aux_file
local handle_cluttex_options = require "texrunner.handleoption".handle_cluttex_options
+local checkdriver = require "texrunner.checkdriver".checkdriver
+
+os.setlocale("", "ctype") -- Workaround for recent Universal CRT
-- arguments: input file name, jobname, etc...
local function genOutputDirectory(...)
@@ -2180,12 +2947,17 @@
local inputfile, engine, options = handle_cluttex_options(arg)
-local jobname = options.jobname or pathutil.basename(pathutil.trimext(inputfile))
+local jobname_for_output
+if options.jobname == nil then
+ local basename = pathutil.basename(pathutil.trimext(inputfile))
+ options.jobname = safename.escapejobname(basename)
+ jobname_for_output = basename
+else
+ jobname_for_output = options.jobname
+end
+local jobname = options.jobname
assert(jobname ~= "", "jobname cannot be empty")
-if options.output_format == nil then
- options.output_format = "pdf"
-end
local output_extension
if options.output_format == "dvi" then
output_extension = engine.dvi_extension or "dvi"
@@ -2194,13 +2966,13 @@
end
if options.output == nil then
- options.output = jobname .. "." .. output_extension
+ options.output = jobname_for_output .. "." .. output_extension
end
-- Prepare output directory
if options.output_directory == nil then
local inputfile_abs = pathutil.abspath(inputfile)
- options.output_directory = genOutputDirectory(inputfile_abs, jobname, options.engine)
+ options.output_directory = genOutputDirectory(inputfile_abs, jobname, options.engine_executable or options.engine)
if not fsutil.isdir(options.output_directory) then
assert(fsutil.mkdir_rec(options.output_directory))
@@ -2220,6 +2992,12 @@
os.exit(1)
end
+-- --print-output-directory
+if options.print_output_directory then
+ io.write(options.output_directory, "\n")
+ os.exit(0)
+end
+
local pathsep = ":"
if os.type == "windows" then
pathsep = ";"
@@ -2258,6 +3036,7 @@
local recorderfile2 = path_in_output_directory("cluttex-fls")
local tex_options = {
+ engine_executable = options.engine_executable,
interaction = options.interaction,
file_line_error = options.file_line_error,
halt_on_error = options.halt_on_error,
@@ -2284,7 +3063,7 @@
-- should_rerun, newauxstatus = single_run([auxstatus])
-- This function should be run in a coroutine.
local function single_run(auxstatus, iteration)
- local minted = false
+ local minted, epstopdf = false, false
local bibtex_aux_hash = nil
local mainauxfile = path_in_output_directory("aux")
if fsutil.isfile(recorderfile) then
@@ -2297,7 +3076,9 @@
for _,fileinfo in ipairs(filelist) do
if string.match(fileinfo.path, "minted/minted%.sty$") then
minted = true
- break
+ end
+ if string.match(fileinfo.path, "epstopdf%.sty$") then
+ epstopdf = true
end
end
if options.bibtex then
@@ -2316,14 +3097,38 @@
end
--local timestamp = os.time()
+ local tex_injection = ""
+
if options.includeonly then
- tex_options.tex_injection = string.format("%s\\includeonly{%s}", tex_options.tex_injection or "", options.includeonly)
+ tex_injection = string.format("%s\\includeonly{%s}", tex_options.tex_injection or "", options.includeonly)
end
- if minted and not (tex_options.tex_injection and string.find(tex_options.tex_injection,"minted") == nil) then
- tex_options.tex_injection = string.format("%s\\PassOptionsToPackage{outputdir=%s}{minted}", tex_options.tex_injection or "", options.output_directory)
+ if minted or options.package_support["minted"] then
+ local outdir = options.output_directory
+ if os.type == "windows" then
+ outdir = string.gsub(outdir, "\\", "/") -- Use forward slashes
+ end
+ tex_injection = string.format("%s\\PassOptionsToPackage{outputdir=%s}{minted}", tex_injection or "", outdir)
+ if not options.package_support["minted"] then
+ message.diag("You may want to use --package-support=minted option.")
+ end
+ end
+ if epstopdf or options.package_support["epstopdf"] then
+ local outdir = options.output_directory
+ if os.type == "windows" then
+ outdir = string.gsub(outdir, "\\", "/") -- Use forward slashes
+ end
+ if string.sub(outdir, -1, -1) ~= "/" then
+ outdir = outdir.."/" -- Must end with a directory separator
+ end
+ tex_injection = string.format("%s\\PassOptionsToPackage{outdir=%s}{epstopdf}", tex_injection or "", outdir)
+ if not options.package_support["epstopdf"] then
+ message.diag("You may want to use --package-support=epstopdf option.")
+ end
end
+ local inputline = tex_injection .. safename.safeinput(inputfile, engine)
+
local current_tex_options, lightweight_mode = tex_options, false
if iteration == 1 and options.start_with_draft then
current_tex_options = {}
@@ -2340,7 +3145,7 @@
current_tex_options.draftmode = false
end
- local command = engine:build_command(inputfile, current_tex_options)
+ local command = engine:build_command(inputline, current_tex_options)
local execlog -- the contents of .log file
@@ -2376,6 +3181,10 @@
logfile:close()
end
+ if options.check_driver ~= nil then
+ checkdriver(options.check_driver, filelist)
+ end
+
if options.makeindex then
-- Look for .idx files and run MakeIndex
for _,file in ipairs(filelist) do
@@ -2610,7 +3419,90 @@
if options.watch then
-- Watch mode
+
+ local fswatcherlib
+ if os.type == "windows" then
+ -- Windows: Try built-in filesystem watcher
+ local succ, result = pcall(require, "texrunner.fswatcher_windows")
+ if not succ and CLUTTEX_VERBOSITY >= 1 then
+ message.warn("Failed to load texrunner.fswatcher_windows: " .. result)
+ end
+ fswatcherlib = result
+ end
+
+ local do_watch
+ if fswatcherlib then
+ if CLUTTEX_VERBOSITY >= 2 then
+ message.info("Using built-in filesystem watcher for Windows")
+ end
+ do_watch = function(files)
+ local watcher = assert(fswatcherlib.new())
+ for _,path in ipairs(files) do
+ assert(watcher:add_file(path))
+ end
+ local result = assert(watcher:next())
+ if CLUTTEX_VERBOSITY >= 2 then
+ message.info(string.format("%s %s", result.action, result.path))
+ end
+ watcher:close()
+ return true
+ end
+ elseif shellutil.has_command("fswatch") then
+ if CLUTTEX_VERBOSITY >= 2 then
+ message.info("Using `fswatch' command")
+ end
+ do_watch = function(files)
+ local fswatch_command = {"fswatch", "--one-event", "--event=Updated", "--"}
+ for _,path in ipairs(files) do
+ table.insert(fswatch_command, shellutil.escape(path))
+ end
+ local fswatch_command_str = table.concat(fswatch_command, " ")
+ if CLUTTEX_VERBOSITY >= 1 then
+ message.exec(fswatch_command_str)
+ end
+ local fswatch = assert(io.popen(fswatch_command_str, "r"))
+ for l in fswatch:lines() do
+ for _,path in ipairs(files) do
+ if l == path then
+ fswatch:close()
+ return true
+ end
+ end
+ end
+ return false
+ end
+ elseif shellutil.has_command("inotifywait") then
+ if CLUTTEX_VERBOSITY >= 2 then
+ message.info("Using `inotifywait' command")
+ end
+ do_watch = function(files)
+ local inotifywait_command = {"inotifywait", "--event=modify", "--event=attrib", "--format=%w", "--quiet"}
+ for _,path in ipairs(files) do
+ table.insert(inotifywait_command, shellutil.escape(path))
+ end
+ local inotifywait_command_str = table.concat(inotifywait_command, " ")
+ if CLUTTEX_VERBOSITY >= 1 then
+ message.exec(inotifywait_command_str)
+ end
+ local inotifywait = assert(io.popen(inotifywait_command_str, "r"))
+ for l in inotifywait:lines() do
+ for _,path in ipairs(files) do
+ if l == path then
+ inotifywait:close()
+ return true
+ end
+ end
+ end
+ return false
+ end
+ else
+ message.error("Could not watch files because neither `fswatch' nor `inotifywait' was installed.")
+ message.info("See ClutTeX's manual for details.")
+ os.exit(1)
+ end
+
local success, status = do_typeset()
+ -- TODO: filenames here can be UTF-8 if command_line_encoding=utf-8
local filelist, filemap = reruncheck.parse_recorder_file(recorderfile, options)
if engine.is_luatex and fsutil.isfile(recorderfile2) then
filelist, filemap = reruncheck.parse_recorder_file(recorderfile2, options, filelist, filemap)
@@ -2621,26 +3513,21 @@
table.insert(input_files_to_watch, fileinfo.abspath)
end
end
- local fswatch_command = {"fswatch", "--event=Updated", "--"}
- for _,path in ipairs(input_files_to_watch) do
- table.insert(fswatch_command, shellutil.escape(path))
- end
- if CLUTTEX_VERBOSITY >= 1 then
- message.exec(table.concat(fswatch_command, " "))
- end
- local fswatch = assert(io.popen(table.concat(fswatch_command, " "), "r"))
- for l in fswatch:lines() do
- local found = false
- for _,path in ipairs(input_files_to_watch) do
- if l == path then
- found = true
- break
+
+ while do_watch(input_files_to_watch) do
+ local success, status = do_typeset()
+ if not success then
+ -- error
+ else
+ local filelist, filemap = reruncheck.parse_recorder_file(recorderfile, options)
+ if engine.is_luatex and fsutil.isfile(recorderfile2) then
+ filelist, filemap = reruncheck.parse_recorder_file(recorderfile2, options, filelist, filemap)
end
- end
- if found then
- local success, status = do_typeset()
- if not success then
- -- Not successful
+ input_files_to_watch = {}
+ for _,fileinfo in ipairs(filelist) do
+ if fileinfo.kind == "input" then
+ table.insert(input_files_to_watch, fileinfo.abspath)
+ end
end
end
end
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cluttex.tlpobj new/tlpkg/tlpobj/cluttex.tlpobj
--- old/tlpkg/tlpobj/cluttex.tlpobj 2019-02-28 03:25:55.000000000 +0100
+++ new/tlpkg/tlpobj/cluttex.tlpobj 2020-02-08 01:55:43.000000000 +0100
@@ -1,6 +1,6 @@
name cluttex
category Package
-revision 50090
+revision 53698
shortdesc An automation tool for running LaTeX
longdesc This is another tool for the automation of LaTeX document
longdesc processing, like latexmk or arara. The main feature of this
@@ -12,12 +12,11 @@
longdesc set. Furthermore, cluttex can watch input files for changes
longdesc (using an external program).
depend cluttex.ARCH
-runfiles size=21
+runfiles size=29
texmf-dist/scripts/cluttex/cluttex.lua
catalogue-contact-bugs https://github.com/minoki/cluttex/issues
catalogue-contact-repository https://github.com/minoki/cluttex
catalogue-ctan /support/cluttex
-catalogue-date 2019-02-22 09:26:57 +0100
-catalogue-license gpl3
+catalogue-license gpl3+
catalogue-topics compilation use-lua
-catalogue-version 0.2
+catalogue-version 0.5
++++++ cm-mf-extra-bold.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cm-mf-extra-bold.tlpobj new/tlpkg/tlpobj/cm-mf-extra-bold.tlpobj
--- old/tlpkg/tlpobj/cm-mf-extra-bold.tlpobj 2019-02-28 03:26:12.000000000 +0100
+++ new/tlpkg/tlpobj/cm-mf-extra-bold.tlpobj 2020-03-24 01:56:49.000000000 +0100
@@ -1,6 +1,6 @@
name cm-mf-extra-bold
category Package
-revision 45796
+revision 54512
shortdesc Extra Metafont files for CM
relocated 1
longdesc The bundle provides bold versions of cmcsc, cmex, cmtex and
@@ -21,6 +21,5 @@
RELOC/fonts/tfm/public/cm-mf-extra-bold/cmbtt9.tfm
RELOC/fonts/tfm/public/cm-mf-extra-bold/cmttb10.tfm
catalogue-ctan /fonts/cm/mf-extra/bold
-catalogue-date 2017-11-12 11:19:12 +0100
-catalogue-license gplpd
+catalogue-license gpl pd
catalogue-topics font font-mf
++++++ cmexb.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cmexb.doc.tlpobj new/tlpkg/tlpobj/cmexb.doc.tlpobj
--- old/tlpkg/tlpobj/cmexb.doc.tlpobj 2019-02-28 03:27:12.000000000 +0100
+++ new/tlpkg/tlpobj/cmexb.doc.tlpobj 2020-03-04 23:50:30.000000000 +0100
@@ -1,6 +1,6 @@
name cmexb.doc
category Package
-revision 45677
+revision 54074
shortdesc doc files of cmexb
relocated 1
docfiles size=1
++++++ cmexb.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cmexb.tlpobj new/tlpkg/tlpobj/cmexb.tlpobj
--- old/tlpkg/tlpobj/cmexb.tlpobj 2019-02-28 03:27:12.000000000 +0100
+++ new/tlpkg/tlpobj/cmexb.tlpobj 2020-03-04 23:50:30.000000000 +0100
@@ -1,6 +1,6 @@
name cmexb
category Package
-revision 45677
+revision 54074
shortdesc cmexb10 metrics and Type 1
relocated 1
longdesc Computer Modern Math Extension bold, metrics and .pfb file.
++++++ cmpj.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cmpj/README new/doc/latex/cmpj/README
--- old/doc/latex/cmpj/README 2017-05-10 23:12:18.000000000 +0200
+++ new/doc/latex/cmpj/README 2019-07-18 22:33:40.000000000 +0200
@@ -85,6 +85,10 @@
CHANGES
+RELEASE NOTES FOR VERSION 3.02:
+
+* cmpj3.sty and cmpj2.sty use new 'droid' font families names.
+
RELEASE NOTES FOR VERSION 3.01:
* New cmpj3.sty using 'newtx' fonts for text and math and
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cmpj/cmpjxampl.bib new/doc/latex/cmpj/cmpjxampl.bib
--- old/doc/latex/cmpj/cmpjxampl.bib 2017-05-10 23:12:18.000000000 +0200
+++ new/doc/latex/cmpj/cmpjxampl.bib 2019-07-18 22:33:40.000000000 +0200
@@ -34,7 +34,7 @@
abstract="We propose a microscopic approach for investigating the behavior of a symmetric binary fluid mixture in the vicinity of the vapor-liquid critical point. The problem can be reduced to calculating the partition function of a 3D Ising model in an external field. For a square-well symmetric binary mixture, we express the parameters of the critical point as functions of the microscopic parameter r measuring the relative strength of interactions between the particles of dissimilar and similar species. The calculations are performed at intermediate ($\lambda$=1.5) and moderately long ($\lambda$=2) intermolecular potential ranges. The obtained results agree well with the results of computer simulations.",
issn="1573-9333",
doi="10.1007/BF02551084",
- OPTurl="http://dx.doi.org/10.1007/BF02551084",
+ OPTurl="https://doi.org/10.1007/BF02551084",
note = {[Teor. Mat. Fiz., 2000, \textbf{124}, No.~2, 339--352 (in Russian), \bibdoi{10.4213/tmf643}]},
}
@@ -86,7 +86,7 @@
abstract="A desirable goal of scientific management is to introduce, if it exists, a simple and reliable way to measure the scientific excellence of publicly funded research institutions and universities to serve as a basis for their ranking and financing. While citation-based indicators and metrics are easily accessible, they are far from being universally accepted as way to automate or inform evaluation processes or to replace evaluations based on peer review. Here we consider absolute measurements of research excellence at an amalgamated, institutional level and specific measures of research excellence as performance per head. Using biology research institutions in the UK as a test case, we examine the correlations between peer review-based and citation-based measures of research excellence on these two scales. We find that citation-based indicators are very highly correlated with peer-evaluated measures of group strength, but are poorly correlated with group quality. Thus, and almost paradoxically, our analysis indicates that citation counts could possibly form a basis for deciding on, how to fund research institutions, but they should not be used as a basis for ranking them in terms of quality.",
issn="1588-2861",
doi="10.1007/s11192-012-0874-7",
- OPTurl="http://dx.doi.org/10.1007/s11192-012-0874-7",
+ OPTurl="https://doi.org/10.1007/s11192-012-0874-7",
note="(in press)",
}
@@ -142,7 +142,7 @@
OPTyear = {year},
OPTnote = {note},
OPTannote = {annote},
- url={http://earthdata.nasa.gov/labs/worldview/?map=-24.484375,14.05078125,50.75,62.14453125&products=baselayers.VIIRS_CityLights_2012~overlays.sedac_bound&switch=geographic},
+ url={https://earthdata.nasa.gov/labs/worldview/?map=-24.484375,14.05078125,50.75,62.14453125&products=baselayers.VIIRS_CityLights_2012~overlays.sedac_bound&switch=geographic},
}
@misc{han12,
Binary files old/doc/latex/cmpj/template.pdf and new/doc/latex/cmpj/template.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cmpj/template.tex new/doc/latex/cmpj/template.tex
--- old/doc/latex/cmpj/template.tex 2017-05-10 23:12:18.000000000 +0200
+++ new/doc/latex/cmpj/template.tex 2019-07-18 22:33:40.000000000 +0200
@@ -6,9 +6,9 @@
%%% in the Condensed Matter Physics journal %%%
%%% using LaTeX2e %%%
%%% %%%
-%%% Last time modified: May 8, 2017 %%%
+%%% Last time modified: July 17, 2019 %%%
%%% %%%
-%%% Copyright (C) 2017 by the Institute for Condensed Matter Physics %%%
+%%% Copyright (C) 2019 by the Institute for Condensed Matter Physics %%%
%%% of the National Academy of Sciences of Ukraine %%%
%%% %%%
%%% This file can be redistributed and/or modified under the terms %%%
@@ -106,7 +106,7 @@
%
\keywords Up to six keywords (\href{https://physh.aps.org/browse}{Physics Subject Headings})
%
-\pacs Up to six PACS numbers
+\pacs Up to six \href{https://journals.aps.org/PACS}{PACS} numbers
\end{abstract}
@@ -149,7 +149,7 @@
\\ [1ex]
or from the Comprehensive \TeX\ Archive Network (CTAN)
\nopagebreak\\ [1ex]
-\centerline{\texttt{\url{http://www.ctan.org/pkg/cmpj}}.}
+\centerline{\texttt{\url{https://www.ctan.org/pkg/cmpj}}.}
\smallskip
@@ -224,7 +224,7 @@
Please use the full classification system which
is available online at
\\ [1ex]
-\centerline{\texttt{\url{http://journals.aps.org/PACS/}}}
+\centerline{\texttt{\url{https://journals.aps.org/PACS}}}
\\ [1ex]
There should be no more than six numbers, the principal number
should be placed first, and the check characters should always be
@@ -649,8 +649,8 @@
e.g. in Ukrainian, unpublished, private communication, in press) \cite{Bus89,Mel00,Mry94,Sta11}.
For journals without volume numbers place the issue number instead as in reference~\cite{Mry94}.
The names of all authors of cited papers should be given.
-Title of journal should be abbreviated according to the ISO~4 ``\href{http://www.issn.org/services/online-services/access-to-the-ltwa/}{List of Title Word Abbreviations}'' standard (see, \texttt{\url{http://woodward.library.ubc.ca/research-help/journal-abbreviations/}} or \texttt{\url{http://cassi.cas.org/search.jsp}} for the ready for use lists of journal titles).
-Please supply \href{http://www.crossref.org/guestquery/}{DOI} for
+Title of journal should be abbreviated according to the ISO~4 ``\href{https://www.issn.org/services/online-services/access-to-the-ltwa/}{List of Title Word Abbreviations}'' standard (see, \texttt{\url{https://woodward.library.ubc.ca/research-help/journal-abbreviations/}} or \texttt{\url{https://cassi.cas.org/search.jsp}} for the ready for use lists of journal titles).
+Please supply \href{https://www.crossref.org/guestquery/}{DOI} for
e-version of the papers if available \cite{Bus89,Mel00,Mry94,Sta11,Scient2012}.
For books, the following order is required (skip irrelevant information):
@@ -664,14 +664,14 @@
in English \cite{Mel00,Sta04,Yuk87}. Indicate materials accepted for
publications by adding ``(in press)'' \cite{Scient2012}. If a preprint
exists of the paper not yet accepted for publication, give the e-print
-\href{http://arxiv.org}{arXiv} number \cite{Shv04}.
+\href{https://arxiv.org}{arXiv} number \cite{Shv04}.
Any web resources should be cited as references \cite{url2}.
Please avoid references to unpublished materials, private communication
and web pages \cite{han12,url2}.
It is important to confirm the accuracy of bibliographic information
in references. This has become more important now that the journal
-is online. To ensure that the \href{http://www.crossref.org/}{CrossRef}
+is online. To ensure that the \href{https://www.crossref.org/}{CrossRef}
facility can hyper-link to the articles quoted in the bibliography,
\textbf{multiple references must not be used}. I.e., a list of
references under the same number is not allowed: each reference has
@@ -691,7 +691,7 @@
\textbf{39}, 207--214, \doi{10.1103/PhysRevB.39.207}.
\bibitem{Mel00} Melnyk R.S., Patsahan O.V., Theor. Math. Phys., 2000, \textbf{124}, No.~2,
1145--1156, \doi{10.1007/BF02551084}, [Teor. Mat. Fiz., 2000, \textbf{124}, No.~2,
- 339--352 (in Russian), \bibdoi{10.4213/tmf643}].
+ 339--352 (in Russian), \doi{10.4213/tmf643}].
\bibitem{Mry94} Mryglod I.M., Tokarchuk M.V., Condens. Matter Phys., 1994, \textbf{3},
116--133, \doi{10.5488/CMP.3.116}.
\bibitem{Sta11} Stasyuk I.V., Velychko O.V., Condens. Matter Phys., 2011, \textbf{14},
@@ -713,7 +713,7 @@
\bibitem{Shv04} Shvaika A.M., Vorobyov O., Freericks J.K., Devereaux T.P.,Preprint
\arxiv{cond-mat/0408400}, 2004.
\bibitem{url2} {EOSDIS} {W}orldview. {C}ity {L}ights,
- URL~\url{http://earthdata.nasa.gov/labs/worldview/?map=-24.484375,14.05078125,50.75,62.14453125&products=baselayers.VIIRS_CityLights_2012~overlays.sedac_bound&switch=geographic}.
+ URL~\url{https://earthdata.nasa.gov/labs/worldview/?map=-24.484375,14.05078125,50.75,62.14453125&products=baselayers.VIIRS_CityLights_2012~overlays.sedac_bound&switch=geographic}.
\bibitem{han12} Han Y., Kida T., Ikeda M., Hagiwara M., Stre\v{c}ka J., Honda Z.,
(unpublished).
\end{thebibliography}
@@ -742,20 +742,20 @@
A lot of useful (and free) information one can find at
``\TeX{} Users Group'' web site
\\ [1ex]
-\centerline{\texttt{\url{http://www.tug.org/}}.}
+\centerline{\texttt{\url{https://www.tug.org/}}.}
\smallskip
``The Not So Short Introduction to \LaTeXe{}'' by Tobias Oetiker is an
absolutely necessary book for beginners:
\\ [1ex]
-\centerline{\texttt{\url{http://ctan.org/tex-archive/info/lshort/}}}
+\centerline{\texttt{\url{https://ctan.org/pkg/lshort}}}
\\ [1ex]
(available in a variety of languages including Ukrainian). Ukrainian
\TeX{}nicians will find a plenty of language-specific information
at Andrij Shvaika's ``\TeX{} \& Ukrainian'' Web-page
\\ [1ex]
-\centerline{\texttt{\url{http://ph.icmp.lviv.ua/~ashv/tex/TeXandUkrainian.win.html}}.}
+\centerline{\texttt{\url{http://ph.icmp.lviv.ua/~ashv/tex/TeXandUkrainian.html}}.}
\smallskip
@@ -771,15 +771,15 @@
comprehensive (and free) tutorials on the subject one can mention
%``IOP Style Guide''
%\\ [1ex]
-%\centerline{\texttt{\url{http://www.iop.org/websupport/file_53266.pdf}},}
+%\centerline{\texttt{\url{https://www.iop.org/websupport/file_53266.pdf}},}
%\\ [1ex]
``Physical Review Style and Notation Guide''
\\ [1ex]
-\centerline{\texttt{\url{http://publish.aps.org/files/styleguide-pr.pdf}},}
+\centerline{\texttt{\url{https://publish.aps.org/files/styleguide-pr.pdf}},}
\\ [1ex]
and ``Reviews of Modern Physics Style Guide''
\\ [1ex]
-\centerline{\texttt{\url{http://rmp.aps.org/files/rmpguide.pdf}}}
+\centerline{\texttt{\url{https://rmp.aps.org/files/rmpguide.pdf}}}
\\ [1ex]
Remember: ``\textit{Ignorantia non est argumentum}'' and
``\textit{Scientia potentia est}''!
@@ -798,7 +798,7 @@
207--214, \doi{10.1103/PhysRevB.39.207}.
\bibitem{Mel00} Melnyk R.S., Patsahan O.V., Theor. Math. Phys., 2000, \textbf{124}, No.~2,
1145--1156, \doi{10.1007/BF02551084}, [Teor. Mat. Fiz., 2000, \textbf{124}, No.~2,
- 339--352 (in Russian), \bibdoi{10.4213/tmf643}].
+ 339--352 (in Russian), \doi{10.4213/tmf643}].
\bibitem{Mry94} Mryglod I.M., Tokarchuk M.V., Condens. Matter Phys., 1994, \textbf{3},
116--133, \doi{10.5488/CMP.3.116}.
\bibitem{Sta11} Stasyuk I.V., Velychko O.V., Condens. Matter Phys., 2011, \textbf{14},
@@ -820,7 +820,7 @@
\bibitem{Shv04} Shvaika A.M., Vorobyov O., Freericks J.K., Devereaux T.P., Preprint
\arxiv{cond-mat/0408400}, 2004.
\bibitem{url2} {EOSDIS} {W}orldview. {C}ity {L}ights,
- URL~\url{http://earthdata.nasa.gov/labs/worldview/?map=-24.484375,14.05078125,50.75,62.14453125&products=baselayers.VIIRS_CityLights_2012~overlays.sedac_bound&switch=geographic}.
+ URL~\url{https://earthdata.nasa.gov/labs/worldview/?map=-24.484375,14.05078125,50.75,62.14453125&products=baselayers.VIIRS_CityLights_2012~overlays.sedac_bound&switch=geographic}.
\bibitem{han12} Han Y., Kida T., Ikeda M., Hagiwara M., Stre\v{c}ka J., Honda Z., (unpublished).
\end{thebibliography}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cmpj.doc.tlpobj new/tlpkg/tlpobj/cmpj.doc.tlpobj
--- old/tlpkg/tlpobj/cmpj.doc.tlpobj 2019-02-28 03:27:14.000000000 +0100
+++ new/tlpkg/tlpobj/cmpj.doc.tlpobj 2019-07-20 01:53:10.000000000 +0200
@@ -1,9 +1,9 @@
name cmpj.doc
category Package
-revision 44283
+revision 51661
shortdesc doc files of cmpj
relocated 1
-docfiles size=172
+docfiles size=171
RELOC/doc/latex/cmpj/README
RELOC/doc/latex/cmpj/cmpjxampl.bib
RELOC/doc/latex/cmpj/eps_demo.eps
++++++ cmpj.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/cmpj/cmpj2.sty new/tex/latex/cmpj/cmpj2.sty
--- old/tex/latex/cmpj/cmpj2.sty 2017-05-10 23:12:18.000000000 +0200
+++ new/tex/latex/cmpj/cmpj2.sty 2019-07-18 22:33:40.000000000 +0200
@@ -7,9 +7,9 @@
%%% http://www.icmp.lviv.ua/journal/ %%%
%%% using LaTeX2e %%%
%%% %%%
-%%% Last time modified: May 8, 2017 %%%
+%%% Last time modified: July 17, 2019 %%%
%%% %%%
-%%% Copyright (C) 2013 by the Institute for Condensed Matter Physics %%%
+%%% Copyright (C) 2019 by the Institute for Condensed Matter Physics %%%
%%% of the National Academy of Sciences of Ukraine %%%
%%% all rights reserved. %%%
%%% %%%
@@ -22,11 +22,11 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{cmpj2}
- [2017/05/08 v2.07
+ [2019/07/17 v2.08
The Condensed Matter Physics journal package]
\def\filename{cmpj2.sty}
-\def\fileversion{2.07}
-\def\filedate{2017/05/08}
+\def\fileversion{2.08}
+\def\filedate{2019/07/17}
\immediate\write32{This is '\filename' v\fileversion \space <\filedate> ^^J%
the Condensed Matter Physics journal package}
@@ -83,9 +83,9 @@
\edef\_{_}%
\edef\textless{\@percentchar3C}% instead of {\string<} for Apple
\edef\textgreater{\@percentchar3E}% instead of {\sting>} for Apple
- \edef\x{\toks1={\noexpand\href{\doiURL#1}}}%
+ \edef\x{\toks2={\noexpand\href{\doiURL#1}}}%
\x
- \edef\x{\endgroup\doitext\the\toks1 \the\toks0}%
+ \edef\x{\endgroup\doitext\the\toks2 \the\toks0}%
\x
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -317,18 +317,34 @@
}
\def\cmpj@sf@droid{
- \IfFileExists{t2afds.fd}{
- \IfFileExists{omltxmi.fd}{\RequirePackage{txfonts}}{}
- \IfFileExists{fmlfutm.fd}{\RequirePackage{fourier}}{}
- \IfFileExists{omltxmi.fd}{\re@DeclareMathSymbol{\varkappa}{\mathord}{AMSb}{123}}{}
- \RequirePackage[default,scale=0.86]{droidserif}
- \RequirePackage[defaultsans,scale=0.86]{droidsans}
- \RequirePackage[defaultmono,scale=0.86]{droidmono}
- \def\lat@sf{fds}
- \def\cyr@sf{fds}
- }{\cmpj@sf@helvet}
+ \IfFileExists{t2afds.fd}{
+ \IfFileExists{omltxmi.fd}{\RequirePackage{txfonts}}{}
+ \IfFileExists{fmlfutm.fd}{\RequirePackage{fourier}}{}
+ \IfFileExists{omltxmi.fd}{\re@DeclareMathSymbol{\varkappa}{\mathord}{AMSb}{123}}{}
+ \RequirePackage[default,scale=0.86]{droidserif}
+ \RequirePackage[defaultsans,scale=0.86]{droidsans}
+ \RequirePackage[defaultmono,scale=0.86]{droidmono}
+ \def\lat@sf{fds}
+ \def\cyr@sf{fds}
+% \newcommand\hmmax{0} % default 3
+% \newcommand\bmmax{0} % default 4
+ }{
+ \IfFileExists{T2Adroidsans.fd}{
+ \IfFileExists{omltxmi.fd}{\RequirePackage{txfonts}}{}
+ \IfFileExists{fmlfutm.fd}{\RequirePackage{fourier}}{}
+ \IfFileExists{omltxmi.fd}{\re@DeclareMathSymbol{\varkappa}{\mathord}{AMSb}{123}}{}
+ \RequirePackage[default,scale=0.86]{droidserif}
+ \RequirePackage[defaultsans,scale=0.86]{droidsans}
+ \RequirePackage[defaultmono,scale=0.86]{droidsansmono}
+ \def\lat@sf{droidsans}
+ \def\cyr@sf{droidsans}
+% \newcommand\hmmax{0} % default 3
+% \newcommand\bmmax{0} % default 4
+ }{\cmpj@sf@helvet}
+ }
}
+
\DeclareOption{droid}{\let\cmpj@sf\cmpj@sf@droid}
\DeclareOption{helvet}{\let\cmpj@sf\cmpj@sf@helvet}
@@ -438,7 +454,7 @@
\def\doinumber#1{\def\doi@number{#1}}
%\def\bibdoi#1{\href{\doiURL#1}{\doitext#1}}
\def\bibdoi{\doi}
-\def\arxiv#1{\href{http://arxiv.org/abs/#1}{arXiv:#1}}
+\def\arxiv#1{\href{https://arxiv.org/abs/#1}{arXiv:#1}}
\def\archive[#1]#2{Preprint #1:#2}
\def\eprint{\@ifnextchar[\archive{Preprint \arxiv}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/cmpj/cmpj3.sty new/tex/latex/cmpj/cmpj3.sty
--- old/tex/latex/cmpj/cmpj3.sty 2017-05-10 23:12:18.000000000 +0200
+++ new/tex/latex/cmpj/cmpj3.sty 2019-07-18 22:33:40.000000000 +0200
@@ -7,9 +7,9 @@
%%% http://www.icmp.lviv.ua/journal/ %%%
%%% using LaTeX2e %%%
%%% %%%
-%%% Last time modified: May 8, 2017 %%%
+%%% Last time modified: July 17, 2019 %%%
%%% %%%
-%%% Copyright (C) 2017 by the Institute for Condensed Matter Physics %%%
+%%% Copyright (C) 2019 by the Institute for Condensed Matter Physics %%%
%%% of the National Academy of Sciences of Ukraine %%%
%%% all rights reserved. %%%
%%% %%%
@@ -22,11 +22,11 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\NeedsTeXFormat{LaTeX2e}
\ProvidesPackage{cmpj3}
- [2017/05/08 v3.01
+ [2019/07/17 v3.02
The Condensed Matter Physics journal package]
\def\filename{cmpj3.sty}
-\def\fileversion{3.01}
-\def\filedate{2017/05/08}
+\def\fileversion{3.02}
+\def\filedate{2019/07/17}
\immediate\write32{This is '\filename' v\fileversion \space <\filedate> ^^J%
the Condensed Matter Physics journal package}
@@ -84,9 +84,9 @@
\edef\_{_}%
\edef\textless{\@percentchar3C}% instead of {\string<} for Apple
\edef\textgreater{\@percentchar3E}% instead of {\sting>} for Apple
- \edef\x{\toks1={\noexpand\href{\doiURL#1}}}%
+ \edef\x{\toks2={\noexpand\href{\doiURL#1}}}%
\x
- \edef\x{\endgroup\doitext\the\toks1 \the\toks0}%
+ \edef\x{\endgroup\doitext\the\toks2 \the\toks0}%
\x
}
%%%%%%% end doi.sty %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -328,8 +328,8 @@
\def\cmpj@sf@droid{
\IfFileExists{t2afds.fd}{
- \RequirePackage{textcomp}
- \RequirePackage{amsmath,amssymb}
+ \RequirePackage{textcomp}
+ \RequirePackage{amsmath,amssymb}
\IfFileExists{omltxmi.fd}{\RequirePackage{txfonts}}{}
\IfFileExists{fmlfutm.fd}{\RequirePackage{fourier}}{}
\IfFileExists{omltxmi.fd}{\re@DeclareMathSymbol{\varkappa}{\mathord}{AMSb}{123}}{}
@@ -338,22 +338,39 @@
\RequirePackage[defaultmono,scale=0.86]{droidmono}
\def\lat@sf{fds}
\def\cyr@sf{fds}
- \def\cyr@rm{fdr}
- }{\cmpj@sf@helvet}
+ \def\cyr@rm{fdr}
+% \newcommand\hmmax{0} % default 3
+% \newcommand\bmmax{0} % default 4
+ }{
+ \IfFileExists{T2Adroidsans.fd}{
+ \RequirePackage{textcomp}
+ \RequirePackage{amsmath,amssymb}
+ \IfFileExists{omltxmi.fd}{\RequirePackage{txfonts}}{}
+ \IfFileExists{fmlfutm.fd}{\RequirePackage{fourier}}{}
+ \IfFileExists{omltxmi.fd}{\re@DeclareMathSymbol{\varkappa}{\mathord}{AMSb}{123}}{}
+ \RequirePackage[default,scale=0.86]{droidserif}
+ \RequirePackage[defaultsans,scale=0.86]{droidsans}
+ \RequirePackage[defaultmono,scale=0.86]{droidsansmono}
+ \def\lat@sf{droidsans}
+ \def\cyr@sf{droidsans}
+ \def\cyr@rm{droidserif}
+% \newcommand\hmmax{0} % default 3
+% \newcommand\bmmax{0} % default 4
+ }{\cmpj@sf@helvet}
+ }
}
\def\cmpj@sf@newtx{
\IfFileExists{omlntxmi.fd}{
- \IfFileExists{t2afdr.fd}{\RequirePackage[default,scale=0.86]{droidserif}}{}
+ \IfFileExists{t2afdr.fd}{\RequirePackage[default,scale=0.86]{droidserif}\def\cyr@rm{fdr}}{}
+ \IfFileExists{T2Adroidserif.fd}{\RequirePackage[default,scale=0.86]{droidserif}\def\cyr@rm{droidserif}}{}
\RequirePackage[largesc,scaled=1.03]{newtxtext}
- \IfFileExists{t2afds.fd}{\RequirePackage[defaultsans,scale=0.86]{droidsans}}{}
- \IfFileExists{t2afdm.fd}{\RequirePackage[defaultmono,scale=0.86]{droidmono}}{}
+ \IfFileExists{t2afds.fd}{\RequirePackage[defaultsans,scale=0.86]{droidsans}\def\lat@sf{fds}\def\cyr@sf{fds}}{}
+ \IfFileExists{T2Adroidsans.fd}{\RequirePackage[defaultsans,scale=0.86]{droidsans}\def\lat@sf{droidsans}\def\cyr@sf{droidsans}}{}
+ \IfFileExists{t2afdm.fd}{\RequirePackage[defaultmono,scale=0.86]{droidmono}\def\cyr@tt{fdm}}{}
+ \IfFileExists{T2Adroidsansmono.fd}{\RequirePackage[defaultmono,scale=0.86]{droidsansmono}\def\cyr@tt{droidsansmono}}{}
\RequirePackage[upint,varg,scaled=1.03]{newtxmath}
% \IfFileExists{omlntxmi.fd}{\RequirePackage[utopia,smallerops,vvarbb,timesmathacc]{newtxmath}}{}
- \def\lat@sf{fds}
- \def\cyr@sf{fds}
- \def\cyr@rm{fdr}
- \def\cyr@tt{fdm}
}{\cmpj@sf@droid}
}
@@ -378,7 +395,7 @@
\def\cc@by@copyright{%
% \def\@@copyright{\raisebox{-8pt}{\includegraphics[width=16mm]{cmpj-cc-by}\space}}
\def\@@copyright{}
- \authorcopyright{\raisebox{-2pt}{\includegraphics[width=16mm]{cmpj-cc-by-small}\space}\footnotesize\sf@phv This work is licensed under a \href{http://creativecommons.org/licenses/by/4.0/}{\textsl{Creative Commons Attribution 4.0 International License}}. Further distribution of this work must maintain attribution to the author(s) and the published articles title, journal citation, and DOI.}
+ \authorcopyright{\raisebox{-2pt}{\includegraphics[width=16mm]{cmpj-cc-by-small}\space}\footnotesize\sf@phv This work is licensed under a \href{https://creativecommons.org/licenses/by/4.0/}{\textsl{Creative Commons Attribution 4.0 International License}}. Further distribution of this work must maintain attribution to the author(s) and the published article's title, journal citation, and DOI.}
}
\DeclareOption{nocopyright}{\let\print@copyright\no@copyright}
@@ -484,7 +501,7 @@
\def\doinumber#1{\def\doi@number{#1}}
%\def\bibdoi#1{\href{\doiURL#1}{\doitext#1}}
\def\bibdoi{\doi}
-\def\arxiv#1{\href{http://arxiv.org/abs/#1}{arXiv:#1}}
+\def\arxiv#1{\href{https://arxiv.org/abs/#1}{arXiv:#1}}
\def\archive[#1]#2{Preprint #1:#2}
\def\eprint{\@ifnextchar[\archive{Preprint \arxiv}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cmpj.tlpobj new/tlpkg/tlpobj/cmpj.tlpobj
--- old/tlpkg/tlpobj/cmpj.tlpobj 2019-02-28 03:27:15.000000000 +0100
+++ new/tlpkg/tlpobj/cmpj.tlpobj 2019-07-20 01:53:10.000000000 +0200
@@ -1,13 +1,13 @@
name cmpj
category Package
-revision 44283
+revision 51661
shortdesc Style for the journal Condensed Matter Physics
relocated 1
longdesc The package contains macros and some documentation for
longdesc typesetting papers for submission to the Condensed Matter
longdesc Physics journal published by the Institute for Condensed Matter
longdesc Physics of the National Academy of Sciences of Ukraine.
-runfiles size=75
+runfiles size=76
RELOC/bibtex/bst/cmpj/cmpj.bst
RELOC/tex/latex/cmpj/cmp-logo.eps
RELOC/tex/latex/cmpj/cmp-logo.pdf
@@ -18,7 +18,7 @@
RELOC/tex/latex/cmpj/cmpj3.sty
catalogue-contact-home http://www.icmp.lviv.ua/journal/Instructions.html
catalogue-ctan /macros/latex/contrib/cmpj
-catalogue-date 2017-05-10 15:16:26 +0200
+catalogue-date 2019-07-18 13:31:22 +0200
catalogue-license lppl
catalogue-topics physics journalpub
-catalogue-version 3.01
+catalogue-version 3.02
++++++ cmsrb.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/cmsrb/README.md new/doc/fonts/cmsrb/README.md
--- old/doc/fonts/cmsrb/README.md 2019-03-22 21:48:29.000000000 +0100
+++ new/doc/fonts/cmsrb/README.md 2020-04-13 00:27:38.000000000 +0200
@@ -1,16 +1,17 @@
The cmsrb font package
-version 3.0 (March 22, 2019)
+version 4.0 (March 30, 2020)
UroÅ¡ StefanoviÄ
This material is subject to the GNU General Public License.
The cmsrb family provides Adobe Type 1 Computer Modern font for Serbian and Macedonian language.
-Supported encodings are: T1, T2A, TS1, X2 and OT2.
+Supported encodings are: T1, T2A, TS1, X2 and OT2; plus the experimental encodings ECMSRB1 and ECMSRB2.
The cmsrb package includes the correct shapes for italic letters \cyrb, \cyrg, \cyrd, \cyrp and \cyrt.
-Also, in OT2 encoding support for letters \cyrgje, \cyrkje, \cyrsje and \cyrzje are added.
This package is very simple to use: just put
\usepackage{cmsrb}
+or
+ \usepackage[math]{cmsrb}
in preamble of the document.
See 'cmsrb.pdf' of 'cmsrb-SR.pfd' for more informations.
Binary files old/doc/fonts/cmsrb/cmsrb-SR.pdf and new/doc/fonts/cmsrb/cmsrb-SR.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/cmsrb/cmsrb-SR.tex new/doc/fonts/cmsrb/cmsrb-SR.tex
--- old/doc/fonts/cmsrb/cmsrb-SR.tex 2019-03-22 21:48:29.000000000 +0100
+++ new/doc/fonts/cmsrb/cmsrb-SR.tex 2020-04-13 00:27:38.000000000 +0200
@@ -1,15 +1,15 @@
\documentclass{article}
-\usepackage[OT2, T1, T2A]{fontenc}
+\usepackage[OT2, T1, TS1, X2, ECMSRB1, ECMSRB2, T2A]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage[serbianc]{babel}
+\usepackage[a4paper,top=2.0cm,left=3cm,right=2.5cm,bottom=2cm,includefoot,includehead]{geometry}
-\usepackage[nomath]{cmsrb}
-\DeclareSymbolFont{cmsrbex}{OMX}{cmsrbex}{m}{n}
-\DeclareMathSymbol{\srbintop}{\mathop}{cmsrbex}{"52}
-\DeclareMathSymbol{\srbointop}{\mathop}{cmsrbex}{"49}
-\newcommand{\srbint}{\relax\srbintop\displaylimits}
-\newcommand{\srboint}{\relax\srbointop\displaylimits}
+\usepackage{cmsrb}
+\usepackage{cmupint}
+\let\enint\intop
+
+\usepackage{amssymb}
\input glyphtounicode.tex
\pdfgentounicode=1
@@ -21,13 +21,29 @@
\newcommand{\example}[1]{{\fontencoding{T2A}\selectfont #1} & \textcmsuper{#1}}
\newcommand\otinput[1]{{\fontencoding{T1}\selectfont \verb"#1"} & {\fontencoding{OT2}\selectfont #1}}
+\newcommand\ecminput[1]{{\fontencoding{T1}\selectfont \verb"#1"} & {\fontencoding{ECMSRB1}\selectfont #1} & {\fontencoding{ECMSRB2}\selectfont #1}}
\DeclareTextSymbolDefault{\dj}{T1}
+\newcounter{primer}
+\newcounter{rezultat}
+\newenvironment{primer}{\VerbatimEnvironment\refstepcounter{primer}\par\medskip
+ \noindent\textbf{ÐÑОЌеÑ~\theprimer: }
+\begin{Verbatim}
+}{\end{Verbatim}\medskip}
+\newenvironment{rezultat}{\refstepcounter{rezultat}\par\medskip
+\noindent\textbf{РезÑлÑаÑ~\therezultat: }\\ }{\medskip}
+
+\makeatletter
+\newcommand{\manuallabel}[2]{\def\@currentlabel{#2}\label{#1}}
+\makeatother
+
+\usepackage{fonttable}
+
\begin{document}
\title{ÐÐ°ÐºÐµÑ \texttt{cmsrb}}
\author{УÑÐŸÑ Ð¡ÑеÑаМПвОÑ\footnote{\texttt{urostajms@gmail.com}}}
- \date{\today{} в3.0}
+ \date{\today{} веÑзОÑа 4.0}
\maketitle
\section{ÐаÑÑП \textsf{cmsrb}?}
@@ -36,7 +52,7 @@
\section{ÐаÑакÑеÑОÑÑОке пакеÑа}
- ЀПМÑПвО \textsf{cmsrb} ÑÑ Ð¿ÑПÑОÑеÑе \textit{Computer Modern} ÑПМÑПва за ÑÑпÑкО О ЌакеЎПМÑкО ÑезОк за \TeX{} (\LaTeX). ÐПЎÑжаМа кПЎОÑаÑа ÑÑ \textit{T1}, \textit{TS1}, \textit{T2A}, \textit{X2} О \textit{OT2}. ÐПЎÑжаМО ÑÑОлПвО ÑПМÑа ÑÑ ÑеÑОÑМО, ÑаМÑ-ÑеÑОÑМО О МепÑПпПÑÑОПМалМО, за велОÑÐžÐœÑ 10\textit{pt}.
+ ЀПМÑПвО \textsf{cmsrb} ÑÑ Ð¿ÑПÑОÑеÑе \textit{Computer Modern} ÑПМÑПва за ÑÑпÑкО О ЌакеЎПМÑкО ÑезОк за \TeX{} (\LaTeX). ÐПЎÑжаМа кПЎОÑаÑа ÑÑ \texttt{T1}, \texttt{TS1}, \texttt{T2A}, \texttt{X2} О \texttt{OT2}, каП О екÑпеÑОЌеМÑалМа кПЎОÑаÑа \texttt{ECMSRB1} О \texttt{ECMSRB2}. ÐПЎÑжаМО ÑÑОлПвО ÑПМÑа ÑÑ ÑеÑОÑМО, ÑаМÑ-ÑеÑОÑМО О МепÑПпПÑÑОПМалМО, за велОÑÐžÐœÑ 10\textit{pt}.
ÐÐ²Ð°Ñ Ð¿Ð°ÐºÐµÑ Ñе ÑеЎМПÑÑаваМ за кПÑОÑÑеÑе: ÑаЌП Ñе пПÑÑебМП Ўа ÑÑавОЌП
\begin{verbatim}
@@ -58,11 +74,11 @@
\section{ÐаÑакÑеÑОÑÑОке \textit{OT2} кПЎОÑаÑа}
- ÐПЎОÑаÑе \textit{OT2} Ñе ОзЌеÑеМП какП бО пПЎÑжалП пÑавОлМП пÑебаÑОваÑе Оз лаÑОМОÑе Ñ ÑОÑОлОÑÑ Ñ ÑÑпÑкПЌ ÑезОкÑ. ÐÑеЌа ÑПЌе, \textsf{ts}, \textsf{kh}, \textsf{ch} О ÑлОÑМе лОгаÑÑÑе ÑÑ ÑклПÑеМе Оз кПЎОÑаÑа (вОЎО ÑабелÑ~\ref{t1}).
+ ÐПЎОÑаÑе \texttt{OT2} Ñе ОзЌеÑеМП какП бО пПЎÑжалП пÑавОлМП пÑебаÑОваÑе Оз лаÑОМОÑе Ñ ÑОÑОлОÑÑ Ñ ÑÑпÑкПЌ ÑезОкÑ. ÐÑеЌа ÑПЌе, \textsf{ts}, \textsf{kh}, \textsf{ch} О ÑлОÑМе лОгаÑÑÑе ÑÑ ÑклПÑеМе Оз кПЎОÑаÑа (вОЎО ÑабелÑ~\ref{t1}).
- У \textit{OT2} кПЎОÑаÑÑ ÑÑ ÐŽÐŸÐŽÐ°Ñа ЌакеЎПМÑка ÑлПва РО Ð, каП О ÑÑМПгПÑÑка ÑлПва \CYRSJE{} О \CYRZJE.
+ У \texttt{OT2} кПЎОÑаÑÑ ÑÑ ÐŽÐŸÐŽÐ°Ñа ЌакеЎПМÑка ÑлПва РО Ð, ÑÑМПгПÑÑка ÑлПва \CYRSJE{} О \CYRZJE, каП О ПЎÑеÑеМО пÑавПпОÑМО зМаÑО.
- Ðпак, МОÑе пÑепПÑÑÑÑОвП кПÑОÑÑеÑе \textit{OT2} кПЎОÑаÑа; бПÑО ÐžÐ·Ð±ÐŸÑ Ð·Ð° ÑÑпÑкО ÑезОк Ñе \textit{T2A} кПЎОÑаÑе О \textit{utf8} ÑМПÑ. ÐПЎОÑаÑе \textit{OT2} Ñе ÐŽÐŸÐ±Ð°Ñ ÐžÐ·Ð±ÐŸÑ Ð°ÐºÐŸ Ð²ÐµÑ ÐžÐŒÐ°ÐŒÐŸ ЎПкÑÐŒÐµÐœÑ ÐœÐ°Ð¿ÐžÑаМ лаÑОМОÑПЌ â ÑаЎа Ñе бОÑО ÑеЎМПÑÑавМП пÑебаÑОÑО га Ñ ÑОÑОлОÑÑ.
+ Ðпак, МОÑе пÑепПÑÑÑÑОвП кПÑОÑÑеÑе \texttt{OT2} кПЎОÑаÑа; бПÑО ÐžÐ·Ð±ÐŸÑ Ð·Ð° ÑÑпÑкО ÑезОк Ñе \texttt{T2A} кПЎОÑаÑе О \textit{utf8} ÑМПÑ. ÐПЎОÑаÑе \texttt{OT2} Ñе ÐŽÐŸÐ±Ð°Ñ ÐžÐ·Ð±ÐŸÑ Ð°ÐºÐŸ Ð²ÐµÑ ÐžÐŒÐ°ÐŒÐŸ ЎПкÑÐŒÐµÐœÑ ÐœÐ°Ð¿ÐžÑаМ лаÑОМОÑПЌ â ÑаЎа Ñе бОÑО ÑеЎМПÑÑавМП пÑебаÑОÑО га Ñ ÑОÑОлОÑÑ.
\begin{table}
\newcolumntype{C}{>{\centering\arraybackslash}X}%
@@ -106,139 +122,256 @@
\otinput{\'G} & \otinput{\'K} & \otinput{\'g} & \otinput{\'k} \\ \hline
\otinput{\'S} & \otinput{\'Z} & \otinput{\'s} & \otinput{\'z} \\ \hline
\end{tabularx}
- \caption{ÐПЎОÑаÑе \textit{OT2} за Ð¿Ð°ÐºÐµÑ \textsf{cmsrb}.}\label{t1}
+ \caption{ÐПЎОÑаÑе \texttt{OT2} за Ð¿Ð°ÐºÐµÑ \textsf{cmsrb}.}\label{t1}
\end{table}
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[OT2,T1]{fontenc}
+\usepackage[serbian]{babel}
+\newcommand{\test}%
+{Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.}
+\begin{document}
+\test \\
+\fontencoding{OT2}\selectfont \test \\
+Akcenti: \'a\`a\C a\f a\=a\^a\"a\u a
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+\indent {\fontencoding{T1}\selectfont Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.} \\
+{\fontencoding{OT2}\selectfont Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos. \\ Akcenti: \'a\`a\C a\f a\=a\^a\"a\u a}
+\end{rezultat}
+
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[OT2,T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[serbian]{babel}
+\newcommand{\test}%
+{Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.}
+\begin{document}
+\textit{\test} \\
+\fontencoding{OT2}\selectfont \textit{\test}
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+\indent{\fontencoding{T1}\selectfont \textit{Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.}} \\
+{\fontencoding{OT2}\selectfont \textit{Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.}}
+\end{rezultat}
+
\section{ÐаÑакÑеÑОÑÑОке \textit{T1} кПЎОÑаÑа}
- ÐПЎОÑаÑе \textit{T1} ÑаЎа пПЎÑжава кПМвеÑзОÑÑ ÐžÐ· ÑОÑОлОÑе Ñ Ð»Ð°ÑОМОÑÑ (вОЎО пÑОЌеÑ~7).
+ ÐПЎОÑаÑе \texttt{T1} ÑаЎа пПЎÑжава кПМвеÑзОÑÑ ÐžÐ· ÑОÑОлОÑе Ñ Ð»Ð°ÑОМОÑÑ (вОЎО пÑОЌеÑ~\ref{prim:t1}).
+
+ Ðа пПзОÑОÑО 208 Ñе МалазО ÑлПвП {\fontencoding{T1}\selectfont Ä (\texttt{U+0110})} ÑЌеÑÑП ÑлПва {\fontencoding{TS1}\selectfont \DH{} \fontencoding{T1}\selectfont (\texttt{U+00D0})}, ÑОЌе Ñе ПЌПгÑÑава кПпОÑаÑе ОлО пÑеÑÑага ÑекÑÑа МапОÑаМПг Ма лаÑОМОÑО.
+
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[T2A,T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[serbian]{babel}
+\begin{document}
+ÐÑбазМО ÑеÑеÑÑОÑа ÑаÑавПг лОÑа Ñ
ПÑе Ўа ЌО пПкаже ÑÑПÑ.
+\end{document}
+\end{primer}
+\manuallabel{prim:t1}{\theprimer}
+
+\begin{rezultat}
+\indent Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.
+\end{rezultat}
+
+
+ \section{ÐаÑакÑеÑОÑÑОке \textit{T2A} кПЎОÑаÑа}
+
+ ÐОÑОлОÑка ÑлПва \texttt{Ð} О \texttt{Ñ} МОÑÑ Ð¿ÐŸÐŽÑжаМа Ñ \texttt{T2A} кПЎОÑаÑÑ; збПг ÑПга ÑÑ ÐŸÐœÐ° пПÑÑавÑеМа ÑЌеÑÑП лаÑОМОÑкОÑ
ÑлПва \texttt{J} О \texttt{j}.
+ ТП ЎаÑе бПÑО ÑезÑлÑÐ°Ñ Ñ ÑОÑОлОÑкПЌ ÑекÑÑÑ, алО ÑП ÑакПÑе зМаÑО Ўа Ñе Ñа лаÑОМОÑка ÑлПва Ме Малазе Ñ ÐŸÐ²ÐŸÐŒ кПЎОÑаÑÑ, па Ñе пПÑÑебМП вПЎОÑО ÑаÑÑМа пÑОлОкПЌ кПпОÑаÑа О пÑеÑÑаге лаÑОМОÑкПг ÑекÑÑа МапОÑаМПг \texttt{T2A} кПЎОÑаÑеЌ.
+
+ СлПва {\fontencoding{X2}\selectfont \char"81, \char"89, \char"86, \char"91, \char"A1, \char"A9, \char"A6, \char"B1} ÑÑ ÑклПÑеМа Оз кПЎОÑаÑа \texttt{T2A}, а ÑЌеÑÑП ÑОÑ
ÑÑ ÑÑавÑеМа ÑлПва \char"81, \char"89, \char"86, \char"91, \char"A1, \char"A9, \char"A6, \char"B1.
+
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[T2A]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[serbianc]{babel}
+\DeclareTextSymbolDefault{\dj}{T1}
+\begin{document}
+\textit{Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.\\
+ÐÑбазМО ÑеÑеÑÑОÑа ÑаÑавПг лОÑа Ñ
ПÑе Ўа ЌО пПкаже ÑÑПÑ.} \\
+ÐкÑеМÑО: \'{О}\`{О}\C{О}\f{О}\={О}\^{О}\"{О}\u{О}
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+\indent {\textit{Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.\\ ÐÑбазМО ÑеÑеÑÑОÑа ÑаÑавПг лОÑа Ñ
ПÑе Ўа ЌО пПкаже ÑÑПÑ.} \\ ÐкÑеМÑО: \'{О}\`{О}\C{О}\f{О}\={О}\^{О}\"{О}\u{О}}
+\end{rezultat}
+
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[T2A]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[serbianc]{babel}
+\begin{document}
+\textit{абвгЎÑÑежз\'{з}ÑОÑклÑЌМÑПпÑÑ\'{Ñ}ÑÑÑÑÑÑ
ÑÑÑÑ}
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+\indent {\textit{абвгЎÑÑежз\'{з}ÑОÑклÑЌМÑПпÑÑ\'{Ñ}ÑÑÑÑÑÑ
ÑÑÑÑ}}
+\end{rezultat}
+
+ \section{ÐаÑакÑеÑОÑÑОке \textit{TS1} кПЎОÑаÑа}
+
+ У \texttt{TS1} кПЎОÑаÑÑ Ñе МалазО ÑлПвП {\fontencoding{TS1}\selectfont \DH} (\texttt{U+00D0}) кПÑе Ñе ÑклПÑеМП Оз \texttt{T1} кПЎОÑаÑа.
+ ТакПÑе, Ñ \texttt{TS1} кПЎОÑаÑÑ Ñе Малазе ÑлПва б, г, ÐŽ, п, Ñ Ñа ÑÑÑкОЌ ПблОкПЌ кÑÑзОва.
+
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[TS1,T2A]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[serbianc]{babel}
+\begin{document}
+\textit{бгЎпÑ} \fontencoding{TS1}\selectfont \textit{Ð±Ð³ÐŽÐ¿Ñ \DH}
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+ \indent \textit{бгЎпÑ} {\fontencoding{TS1}\selectfont \textit{Ð±Ð³ÐŽÐ¿Ñ \DH}}
+\end{rezultat}
\section{ÐаÑеЌаÑОка}
ÐÐ°ÐºÐµÑ \textsf{cmsrb} ÑÑОÑава пПЎÑазÑЌеваМе \textit{Computer Modern} ЌаÑеЌаÑОÑке ÑПМÑПве, алО ÑÑОÑа ÑаЌП велОÑОМе веÑе ОлО ÑеЎМаке 10\textit{pt}, за бПÑО вОзÑелМО еÑекаÑ.
- ТакПÑе, Ð¿Ð°ÐºÐµÑ ÑаЎа ЌеÑа пПЎÑазÑЌеваМО зМак за ОМÑегÑал $\int$ Ñ $\srbint$ (ÑÑпÑавМО ОМÑегÑал Ñе ÑÑаЎОÑОПМалМП кПÑОÑÑеМ Ñ ÑÑпÑкПЌ ÑезОкÑ, Ñа \verb|\limits| ПпÑОÑПЌ).
- ÐМаÑе, пÑПЌеМе Ñ ÐŒÐ°ÑеЌаÑОÑкОЌ ÑПМÑПвОЌа ÐŒÐŸÐ³Ñ ÐŽÐ° Ñе ÑпÑеÑе кПÑОÑÑеÑеЌ \textsf{nomath} ПпÑОÑе:
+ ÐкП Ñе кПÑОÑÑО \textsf{math} ПпÑОÑа ÑаЎа Ñе бОÑО ÑÑОÑаМ Ð¿Ð°ÐºÐµÑ \textsf{cmupint} кПÑО ЌеÑа пПЎÑазÑЌеваМО зМак за ОМÑегÑал $\enint$ Ñ $\int$ (ÑÑпÑавМО ОМÑегÑал Ñе ÑÑаЎОÑОПМалМП кПÑОÑÑеМ Ñ ÑÑпÑкПЌ ÑезОкÑ, Ñа \verb|\limits| ПпÑОÑПЌ).
+ ТакПÑе, Ñ ÑÑпÑкПЌ ÑÐµÐ·ÐžÐºÑ Ð±ÐŸÑе Ñе кПÑОÑÑеÑе зМакПва $\leqslant$ О $\geqslant$ ÑЌеÑÑП зМакПва $\leq$ О $\geq$. ÐкП Ñе кПÑОÑÑО \textsf{math} ПпÑОÑа ÑÑОÑаÑе Ñе Ð¿Ð°ÐºÐµÑ \textsf{amssymb} О ÑО зМаÑО Ñе аÑÑПЌаÑÑкО бОÑО пÑПЌеÑеМО (ОÑÑП важО за $\nleqslant$ О $\ngeqslant$).
+
+ ÐпÑОÑа Ñе кПÑОÑÑО Ма ÑлеЎеÑО МаÑОМ:
\begin{verbatim}
- \usepackage[nomath]{cmsrb}
+ \usepackage[math]{cmsrb}
\end{verbatim}
+
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\newcommand{\ud}{\,\mathrm{d}}
+\begin{document}
+$$ \int_0^1 e^x\ud x \geq 0 $$
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+$$ \enint\nolimits_0^1 e^x\,\mathrm{d} x \geq 0 $$
+\end{rezultat}
- \section{ÐÑОЌеÑО}
+\begin{primer}
+\documentclass{article}
+\usepackage[math]{cmsrb}
+\newcommand{\ud}{\,\mathrm{d}}
+\begin{document}
+$$ \int_0^1 e^x\ud x \geq 0 $$
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+$$ \int_0^1 e^x\,\mathrm{d} x \geqslant 0 $$
+\end{rezultat}
+
+
+ \section{ÐкÑпеÑОЌеМÑалМа кПЎОÑаÑа}
+
+ ÐПЎОÑаÑа \texttt{ECMSRB1} О \texttt{ECMSRB2} ÑÑ ÐœÐ°Ð¿ÑавÑеМа ÑаЌП за ÐŸÐ²Ð°Ñ Ð¿Ð°ÐºÐµÑ. СлОÑМа ÑÑ Ñа \texttt{OT2} кПЎОÑаÑеЌ, алО ÑаЎÑже ÑпеÑОÑОÑМе лОгаÑÑÑе О акÑеМÑе (вОЎО ÑабелÑ~\ref{t3}). Ðа кПЌплеÑÐœÑ ÑÐ°Ð±ÐµÐ»Ñ ÐºÐ°ÑакÑеÑа кПÑО ÑÑ Ð¿ÐŸÐŽÑжаМО ПвОЌ кПЎОÑаÑеЌ пПглеЎаÑО Ñабеле Ма ÑÑÑаМаЌа~\pageref{ecs1} О \pageref{ecs2}. ÐÑМПвМа МаЌеМа ПвОÑ
кПЎОÑаÑа Ñе пОÑаÑе ÑекÑÑа Ма ÑÑпÑкПЌ ÑÐµÐ·ÐžÐºÑ ÑаЌП \texttt{ASCII} каÑакÑеÑОЌа, каП О ÑеЎМПÑÑавМП пÑебаÑОваÑе Оз лаÑОМОÑе Ñ ÑОÑОлОÑÑ.
+
+ \begin{table}[h!]
+ \newcolumntype{C}{>{\centering\arraybackslash}X}%
+ \begin{tabularx}{\textwidth}{|C C C|C C C|C C C|}
+ \hline
+ Улаз & \texttt{ECMSRB1} & \texttt{ECMSRB2} & Улаз & \texttt{ECMSRB1} & \texttt{ECMSRB2} &Улаз & \texttt{ECMSRB1} & \texttt{ECMSRB2} \\ \hline
+ \hline
+ \ecminput{CX} & \ecminput{CY} & \ecminput{DX} \\ \hline
+ \ecminput{DY} & \ecminput{EY} & \ecminput{GY} \\ \hline
+ \ecminput{KY} & \ecminput{LJ} & \ecminput{LY} \\ \hline
+ \ecminput{NJ} & \ecminput{NY} & \ecminput{SX} \\ \hline
+ \ecminput{SXY} & \ecminput{ZX} & \ecminput{ZY} \\ \hline
+ \ecminput{ZXY} & \ecminput{\EZH} & \ecminput{} \\ \hline
+ \hline
+ \ecminput{Cx} & \ecminput{Cy} & \ecminput{Dx} \\ \hline
+ \ecminput{Dy} & \ecminput{Ey} & \ecminput{Gy} \\ \hline
+ \ecminput{Ky} & \ecminput{Lj} & \ecminput{Ly} \\ \hline
+ \ecminput{Nj} & \ecminput{Ny} & \ecminput{Sx} \\ \hline
+ \ecminput{Sxy} & \ecminput{Zx} & \ecminput{Zy} \\ \hline
+ \ecminput{Zxy} & \ecminput{} & \ecminput{} \\ \hline
+ \hline
+ \ecminput{cx} & \ecminput{cy} & \ecminput{dx} \\ \hline
+ \ecminput{dy} & \ecminput{ey} & \ecminput{gy} \\ \hline
+ \ecminput{ky} & \ecminput{lj} & \ecminput{ly} \\ \hline
+ \ecminput{nj} & \ecminput{ny} & \ecminput{sx} \\ \hline
+ \ecminput{sxy} & \ecminput{zx} & \ecminput{zy} \\ \hline
+ \ecminput{zxy} & \ecminput{\ezh} & \ecminput{} \\ \hline
+ \hline
+ \ecminput{\`a} & \ecminput{\'a} & \ecminput{\^a} \\ \hline
+ \ecminput{\T a} & \ecminput{\D a} & \ecminput{\H a} \\ \hline
+ \ecminput{\r a} & \ecminput{\R a} & \ecminput{\v a} \\ \hline
+ \ecminput{\u a} & \ecminput{\U a} & \ecminput{\=a} \\ \hline
+ \ecminput{\b a} & \ecminput{\.a} & \ecminput{\d a} \\ \hline
+ \ecminput{\c a} & \ecminput{\k a} & \ecminput{\"a} \\ \hline
+ \ecminput{\C a} & \ecminput{\~a} & \ecminput{\f a} \\ \hline
+ \end{tabularx}
+ \caption{ÐПЎОÑаÑа \texttt{ECMSRB1} О \texttt{ECMSRB2} за Ð¿Ð°ÐºÐµÑ \textsf{cmsrb}.}\label{t3}
+ \end{table}
+
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[ECMSRB1]{fontenc}
+\usepackage[serbian]{babel}
+\begin{document}
+Ljubazni fenjerdxija cxadyavog lica hocye da mi pokazxe sxtos.
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+ \indent {\fontencoding{ECMSRB1}\selectfont Ljubazni fenjerdxija cxadyavog lica hocye da mi pokazxe sxtos.}
+\end{rezultat}
+
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[ECMSRB2]{fontenc}
+\usepackage[serbian]{babel}
+\begin{document}
+Ljubazni fenjerdxija cxadyavog lica hocye da mi pokazxe sxtos.
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+\indent {\fontencoding{ECMSRB2}\selectfont Ljubazni fenjerdxija cxadyavog lica hocye da mi pokazxe sxtos.}
+\end{rezultat}
- \noindent\textbf{ÐÑÐžÐŒÐµÑ 1: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage{cmsrb}
- \usepackage[OT2,T1]{fontenc}
- \usepackage[serbian]{babel}
- \newcommand{\test}%
- {Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.}
- \begin{document}
- \test \\
- \fontencoding{OT2}\selectfont \test \\
- Akcenti: \'a\`a\C a\f a\=a\^a\"a\u a
- \end{document}
- \end{Verbatim}
-
- \noindent\textbf{РезÑлÑÐ°Ñ 1:} \\
- \indent Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos. \\
- {\fontencoding{OT2}\selectfont Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos. \\ Akcenti: \'a\`a\C a\f a\=a\^a\"a\u a}\\[1cm]
-
- \noindent\textbf{ÐÑÐžÐŒÐµÑ 2: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage{cmsrb}
- \usepackage[OT2,T1]{fontenc}
- \usepackage[utf8]{inputenc}
- \usepackage[serbian]{babel}
- \newcommand{\test}%
- {Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.}
- \begin{document}
- \textit{\test} \\
- \fontencoding{OT2}\selectfont \textit{\test}
- \end{document}
- \end{Verbatim}
-
- \noindent\textbf{РезÑлÑÐ°Ñ 2:} \\
- \indent \textit{Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.} \\
- {\fontencoding{OT2}\selectfont \textit{Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.}}\\[1cm]
-
- \fontencoding{T2A}\selectfont
-
- \noindent\textbf{ÐÑÐžÐŒÐµÑ 3: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage{cmsrb}
- \usepackage[T2A]{fontenc}
- \usepackage[utf8]{inputenc}
- \usepackage[serbianc]{babel}
- \DeclareTextSymbolDefault{\dj}{T1}
- \begin{document}
- \textit{Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.\\
- ÐÑбазМО ÑеÑеÑÑОÑа ÑаÑавПг лОÑа Ñ
ПÑе Ўа ЌО пПкаже ÑÑПÑ.} \\
- ÐкÑеМÑО: \'{О}\`{О}\C{О}\f{О}\={О}\^{О}\"{О}\u{О}
- \end{document}
- \end{Verbatim}
-
- \noindent\textbf{РезÑлÑÐ°Ñ 3:} \\
- \indent {\textit{Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.\\ ÐÑбазМО ÑеÑеÑÑОÑа ÑаÑавПг лОÑа Ñ
ПÑе Ўа ЌО пПкаже ÑÑПÑ.} \\ ÐкÑеМÑО: \'{О}\`{О}\C{О}\f{О}\={О}\^{О}\"{О}\u{О}}\\[1cm]
-
- \noindent\textbf{ÐÑÐžÐŒÐµÑ 4: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage{cmsrb}
- \usepackage[T2A]{fontenc}
- \usepackage[utf8]{inputenc}
- \usepackage[serbianc]{babel}
- \begin{document}
- \textit{абвгЎÑÑежз\'{з}ÑОÑклÑЌМÑПпÑÑ\'{Ñ}ÑÑÑÑÑÑ
ÑÑÑÑ}
- \end{document}
- \end{Verbatim}
-
- \noindent\textbf{РезÑлÑÐ°Ñ 4:} \\
- \indent {\textit{абвгЎÑÑежз\'{з}ÑОÑклÑЌМÑПпÑÑ\'{Ñ}ÑÑÑÑÑÑ
ÑÑÑÑ}}\\[1cm]
-
- \noindent\textbf{ÐÑÐžÐŒÐµÑ 5: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage{cmsrb}
- \newcommand{\ud}{\,\mathrm{d}}
- \begin{document}
- $$ \int_0^1 e^x\ud x $$
- \end{document}
- \end{Verbatim}
-
- \noindent\textbf{РезÑлÑÐ°Ñ 5:} \\
- $$ \srbint_0^1 e^x\,\mathrm{d} x $$ \\[1cm]
-
- \noindent\textbf{ÐÑÐžÐŒÐµÑ 6: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage[nomath]{cmsrb}
- \newcommand{\ud}{\,\mathrm{d}}
- \begin{document}
- $$ \int_0^1 e^x\ud x $$
- \end{document}
- \end{Verbatim}
-
- \noindent\textbf{РезÑлÑÐ°Ñ 6:} \\
- $$ \int_0^1 e^x\,\mathrm{d} x $$\\[1cm]
-
- \noindent\textbf{ÐÑÐžÐŒÐµÑ 7: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage{cmsrb}
- \usepackage[T1]{fontenc}
- \usepackage[utf8]{inputenc}
- \usepackage[serbian]{babel}
- \begin{document}
- ÐÑбазМО ÑеÑеÑÑОÑа ÑаÑавПг лОÑа Ñ
ПÑе Ўа ЌО пПкаже ÑÑПÑ.
- \end{document}
- \end{Verbatim}
+ \section{ÐÑÑПÑОÑа веÑзОÑа}
- \noindent\textbf{РезÑлÑÐ°Ñ 7:} \\
- \indent Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.
+ \subsection*{4.0}
- \section{ÐÑÑПÑОÑа веÑзОÑа}
+ \begin{itemize}
+ \item Све ПпÑОÑе ÑклПÑеМе, ПпÑОÑа \textsf{math} ЎПЎаÑа.
+ \item ÐзЌеÑеМа кПЎОÑаÑа \texttt{T1}, \texttt{T2A}, \texttt{TS1}, \texttt{OT2}.
+ \item СлПвП \textsf{б} зМаÑаÑМП пПбПÑÑаМП Ñ ÑвОЌ ÑÑОлПвОЌа.
+ \item ÐПЎаÑа екÑпеÑОЌеМÑалМа кПЎОÑаÑа \texttt{ECMSRB1} О \texttt{ECMSRB2}.
+ \end{itemize}
+
+ \subsection*{3.1}
+
+ \begin{itemize}
+ \item ÐÑпÑавÑеМО багПвО.
+ \item ÐпÑОÑе \textsf{noint} О \textsf{nosymb} ÑÑ ÐŽÐŸÐŽÐ°Ñе.
+ \item ÐзЌеÑеМО зМаÑО $\leq$, $\geq$, $\nleq$, $\ngeq$.
+ \end{itemize}
\subsection*{3.0}
@@ -260,5 +393,19 @@
\begin{itemize}
\item ÐекПлОкП \verb|.map| ÑаÑлПва ÑпПÑеМП Ñ ÑеЎаМ.
\end{itemize}
+
+ \pagebreak
+
+ \appendix
+
+ \section{ÐПЎОÑаÑе \textit{ECMSRB1}}\label{ecs1}
+
+ \fonttable{ecmsrb1cmsrbrr}
+
+ \pagebreak
+
+ \section{ÐПЎОÑаÑе \textit{ECMSRB2}}\label{ecs2}
+
+ \fonttable{ecmsrb2cmsrbrr}
\end{document}
Binary files old/doc/fonts/cmsrb/cmsrb.pdf and new/doc/fonts/cmsrb/cmsrb.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/cmsrb/cmsrb.tex new/doc/fonts/cmsrb/cmsrb.tex
--- old/doc/fonts/cmsrb/cmsrb.tex 2019-03-22 21:48:29.000000000 +0100
+++ new/doc/fonts/cmsrb/cmsrb.tex 2020-04-13 00:27:38.000000000 +0200
@@ -1,14 +1,14 @@
\documentclass{article}
-\usepackage[OT2, T2A, T1]{fontenc}
+\usepackage[OT2, TS1, X2, ECMSRB1, ECMSRB2, T2A, T1]{fontenc}
\usepackage[utf8]{inputenc}
+\usepackage[a4paper,top=2.0cm,left=3cm,right=2.5cm,bottom=2cm,includefoot,includehead]{geometry}
-\usepackage[nomath]{cmsrb}
-\DeclareSymbolFont{cmsrbex}{OMX}{cmsrbex}{m}{n}
-\DeclareMathSymbol{\srbintop}{\mathop}{cmsrbex}{"52}
-\DeclareMathSymbol{\srbointop}{\mathop}{cmsrbex}{"49}
-\newcommand{\srbint}{\relax\srbintop\displaylimits}
-\newcommand{\srboint}{\relax\srbointop\displaylimits}
+\usepackage{cmsrb}
+\usepackage{cmupint}
+\let\enint\intop
+
+\usepackage{amssymb}
\input glyphtounicode.tex
\pdfgentounicode=1
@@ -20,13 +20,29 @@
\newcommand{\example}[1]{{\fontencoding{T2A}\selectfont #1} & \textcmsuper{#1}}
\newcommand\otinput[1]{{\fontencoding{T1}\selectfont \verb"#1"} & {\fontencoding{OT2}\selectfont #1}}
+\newcommand\ecminput[1]{{\fontencoding{T1}\selectfont \verb"#1"} & {\fontencoding{ECMSRB1}\selectfont #1} & {\fontencoding{ECMSRB2}\selectfont #1}}
\DeclareTextSymbolDefault{\dj}{T1}
+\newcounter{primer}
+\newcounter{rezultat}
+\newenvironment{primer}{\VerbatimEnvironment\refstepcounter{primer}\par\medskip
+ \noindent\textbf{Example~\theprimer: }
+ \begin{Verbatim}
+ }{\end{Verbatim}\medskip}
+\newenvironment{rezultat}{\refstepcounter{rezultat}\par\medskip
+ \noindent\textbf{Result~\therezultat: }\\ }{\medskip}
+
+\makeatletter
+\newcommand{\manuallabel}[2]{\def\@currentlabel{#2}\label{#1}}
+\makeatother
+
+\usepackage{fonttable}
+
\begin{document}
\title{The \texttt{cmsrb} package}
\author{UroÅ¡ StefanoviÄ\footnote{\texttt{urostajms@gmail.com}}}
- \date{\today{} v3.0}
+ \date{\today{} v4.0}
\maketitle
\section{Why \textsf{cmsrb}?}
@@ -35,7 +51,7 @@
\section{Package Features}
- The \textsf{cmsrb} fonts are the extensions of the Computer Modern fonts for Serbian and Macedonian languages for \TeX{} (\LaTeX). Support files are provided for T1, TS1, T2A, X2 and OT2 encodings. Supported font styles are serif, sans-serif and mono, for size 10pt.
+ The \textsf{cmsrb} fonts are the extensions of the Computer Modern fonts for Serbian and Macedonian languages for \TeX{} (\LaTeX). Support files are provided for \texttt{T1}, \texttt{TS1}, \texttt{T2A}, \texttt{X2} and \texttt{OT2} encodings, but also for the experimental \texttt{ECMSRB1} and \texttt{ECMSRB2} encodings. Supported font styles are serif, sans-serif and mono, for size 10pt.
This package is very simple to use: just put
\begin{verbatim}
@@ -57,11 +73,11 @@
\section{OT2 Features}
- The OT2 encoding is modified to match the rules of Latin to Cyrillic transcription in Serbian language. Therefore, the \textsf{ts}, \textsf{kh}, \textsf{ch} and similar ligatures are removed from the encoding (see Table~\ref{t1}).
+ The \texttt{OT2} encoding is modified to match the rules of Latin to Cyrillic transcription in Serbian language. Therefore, the \textsf{ts}, \textsf{kh}, \textsf{ch} and similar ligatures are removed from the encoding (see Table~\ref{t1}).
- In OT2 encoding Macedonian letters Ð and Ð are added, with Montenegrin letters \CYRSJE{} and \CYRZJE.
+ In \texttt{OT2} encoding Macedonian letters {\fontencoding{T2A}\selectfont Ð} and {\fontencoding{T2A}\selectfont Ð} are added, with Montenegrin letters {\fontencoding{T2A}\selectfont\CYRSJE} and {\fontencoding{T2A}\selectfont\CYRZJE}, and also some orthographic symbols are included.
- However, it is not recommended to use the OT2 encoding; better choice for Serbian language is T2A encoding and utf8 input. One can use OT2 encoding if they already have a document written in Latin---in which case it would be easy to transcribe it to Cyrillic.
+ However, it is not recommended to use the \texttt{OT2} encoding; better choice for Serbian language is \texttt{T2A} encoding and utf8 input. One can use \texttt{OT2} encoding if they already have a document written in Latin---in which case it would be easy to transcribe it to Cyrillic.
\begin{table}
\newcolumntype{C}{>{\centering\arraybackslash}X}%
@@ -105,139 +121,261 @@
\otinput{\'G} & \otinput{\'K} & \otinput{\'g} & \otinput{\'k} \\ \hline
\otinput{\'S} & \otinput{\'Z} & \otinput{\'s} & \otinput{\'z} \\ \hline
\end{tabularx}
- \caption{OT2 encoding in \textsf{cmsrb} package.}\label{t1}
+ \caption{\texttt{OT2} encoding in \textsf{cmsrb} package.}\label{t1}
\end{table}
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[OT2,T1]{fontenc}
+\usepackage[serbian]{babel}
+\newcommand{\test}%
+{Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.}
+\begin{document}
+\test \\
+\fontencoding{OT2}\selectfont \test \\
+Akcenti: \'a\`a\C a\f a\=a\^a\"a\u a
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+\indent {\fontencoding{T1}\selectfont Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.} \\
+{\fontencoding{OT2}\selectfont Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos. \\ Akcenti: \'a\`a\C a\f a\=a\^a\"a\u a}
+\end{rezultat}
+
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[OT2,T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[serbian]{babel}
+\newcommand{\test}%
+{Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.}
+\begin{document}
+\textit{\test} \\
+\fontencoding{OT2}\selectfont \textit{\test}
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+\indent{\fontencoding{T1}\selectfont \textit{Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.}} \\
+{\fontencoding{OT2}\selectfont \textit{Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.}}
+\end{rezultat}
+
\section{T1 Features}
+
+ The \texttt{T1} encoding now support conversion from Cyrillic to Latin script (see Example~\ref{prim:t1}).
+
+ On the position 208 now is the letter Ä (\texttt{U+0110}) instead of the letter {\fontencoding{TS1}\selectfont \DH} (\texttt{U+00D0}), which enable copying and searching in the Serbian or Croatian Latin text.
+
+\fontencoding{T2A}\selectfont
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[T2A,T1]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[serbian]{babel}
+\begin{document}
+ÐÑбазМО ÑеÑеÑÑОÑа ÑаÑавПг лОÑа Ñ
ПÑе Ўа ЌО пПкаже ÑÑПÑ.
+\end{document}
+\end{primer}
+\manuallabel{prim:t1}{\theprimer}
+\fontencoding{T1}\selectfont
+
+\begin{rezultat}
+\indent Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.
+\end{rezultat}
+
+ \section{T2A Features}
+
+ The Cyrillic letters {\fontencoding{T2A}\selectfont\texttt{Ð}} and {\fontencoding{T2A}\selectfont\texttt{Ñ}} are not supported in the \texttt{T2A} encoding, so they are placed instead of the Latin letters \texttt{J} and \texttt{j}.
+ This give us the better results in the Cyrillic text, but that also means this Latin letter are not present in the \texttt{T2A} encoding, so be carefull during searching and copying Latin text in this encoding.
- The T1 encoding now support conversion from Cyrillic to Latin script (see Example~7).
+ The letters {\fontencoding{X2}\selectfont \char"81, \char"89, \char"86, \char"91, \char"A1, \char"A9, \char"A6, \char"B1} are removed from the \texttt{T2A} encoding, and on their places now are the letters {\fontencoding{T2A}\selectfont \char"81, \char"89, \char"86, \char"91, \char"A1, \char"A9, \char"A6, \char"B1}.
+
+\fontencoding{T2A}\selectfont
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[T2A]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[serbianc]{babel}
+\DeclareTextSymbolDefault{\dj}{T1}
+\begin{document}
+\textit{Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.\\
+ÐÑбазМО ÑеÑеÑÑОÑа ÑаÑавПг лОÑа Ñ
ПÑе Ўа ЌО пПкаже ÑÑПÑ.} \\
+ÐкÑеМÑО: \'{О}\`{О}\C{О}\f{О}\={О}\^{О}\"{О}\u{О}
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+\indent {\textit{Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.\\ ÐÑбазМО ÑеÑеÑÑОÑа ÑаÑавПг лОÑа Ñ
ПÑе Ўа ЌО пПкаже ÑÑПÑ.} \\ ÐкÑеМÑО: \'{О}\`{О}\C{О}\f{О}\={О}\^{О}\"{О}\u{О}}
+\end{rezultat}
+
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[T2A]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[serbianc]{babel}
+\begin{document}
+\textit{абвгЎÑÑежз\'{з}ÑОÑклÑЌМÑПпÑÑ\'{Ñ}ÑÑÑÑÑÑ
ÑÑÑÑ}
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+\indent {\textit{абвгЎÑÑежз\'{з}ÑОÑклÑЌМÑПпÑÑ\'{Ñ}ÑÑÑÑÑÑ
ÑÑÑÑ}}
+\end{rezultat}
+\fontencoding{T1}\selectfont
+
+\section{TS1 Features}
+
+In the \texttt{TS1} encoding we can find the letter {\fontencoding{TS1}\selectfont \DH} (\texttt{U+00D0}), which is removed from the \texttt{T1} encoding.
+Also, in the \texttt{TS1} encoding now are the letters {\fontencoding{T2A}\selectfont б, г, ÐŽ, п, Ñ} with Russian italic shape.
+
+\fontencoding{T2A}\selectfont
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[TS1,T2A]{fontenc}
+\usepackage[utf8]{inputenc}
+\usepackage[serbianc]{babel}
+\begin{document}
+\textit{бгЎпÑ} \fontencoding{TS1}\selectfont \textit{Ð±Ð³ÐŽÐ¿Ñ \DH}
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+\indent \textit{бгЎпÑ} {\fontencoding{TS1}\selectfont \textit{Ð±Ð³ÐŽÐ¿Ñ \DH}}
+\end{rezultat}
+\fontencoding{T1}\selectfont
\section{Math}
The \textsf{cmsrb} package load default Computer Modern math fonts, but load only fonts with size lower or equal 10pt, for better visual effect.
- Also, it change integral sign from $\int$ to $\srbint$ (upright integral is traditionally used in Serbian language, with \verb|\limits| option).
- However, one can use \textsf{nomath} option to prevent any change in math fonts:
+ If the option \textsf{math} is used, then the package \textsf{cmupint} will be loaded, and the integral sign will be changed from $\enint$ to $\int$ (upright integral is traditionally used in Serbian language, with \verb|\limits| option).
+ Also, in Serbian language is better to use the symbols $\leqslant$ and $\geqslant$ than the symbols $\leq$ О $\geq$. If the \textsf{math} option is used the package \textsf{amssymb} will be loaded and this symbols will be changed (also $\nleqslant$ and $\ngeqslant$ will be used).
+
+ We use this option like this:
\begin{verbatim}
- \usepackage[nomath]{cmsrb}
+ \usepackage[math]{cmsrb}
\end{verbatim}
+
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\newcommand{\ud}{\,\mathrm{d}}
+\begin{document}
+$$ \int_0^1 e^x\ud x \geq 0 $$
+\end{document}
+\end{primer}
- \section{Examples}
-
- \noindent\textbf{Example 1: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage{cmsrb}
- \usepackage[OT2,T1]{fontenc}
- \usepackage[serbian]{babel}
- \newcommand{\test}%
- {Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.}
- \begin{document}
- \test \\
- \fontencoding{OT2}\selectfont \test \\
- Akcenti: \'a\`a\C a\f a\=a\^a\"a\u a
- \end{document}
- \end{Verbatim}
-
- \noindent\textbf{Result 1:} \\
- \indent Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos. \\
- {\fontencoding{OT2}\selectfont Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos. \\ Akcenti: \'a\`a\C a\f a\=a\^a\"a\u a}\\[1cm]
-
- \noindent\textbf{Example 2: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage{cmsrb}
- \usepackage[OT2,T1]{fontenc}
- \usepackage[utf8]{inputenc}
- \usepackage[serbian]{babel}
- \newcommand{\test}%
- {Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.}
- \begin{document}
- \textit{\test} \\
- \fontencoding{OT2}\selectfont \textit{\test}
- \end{document}
- \end{Verbatim}
-
- \noindent\textbf{Result 2:} \\
- \indent \textit{Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.} \\
- {\fontencoding{OT2}\selectfont \textit{Ljubazni fenjerd\v zija \v ca\dj avog lica ho\'ce da mi poka\v ze \v stos.}}\\[1cm]
-
- \fontencoding{T2A}\selectfont
-
- \noindent\textbf{Example 3: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage{cmsrb}
- \usepackage[T2A]{fontenc}
- \usepackage[utf8]{inputenc}
- \usepackage[serbianc]{babel}
- \DeclareTextSymbolDefault{\dj}{T1}
- \begin{document}
- \textit{Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.\\
- ÐÑбазМО ÑеÑеÑÑОÑа ÑаÑавПг лОÑа Ñ
ПÑе Ўа ЌО пПкаже ÑÑПÑ.} \\
- ÐкÑеМÑО: \'{О}\`{О}\C{О}\f{О}\={О}\^{О}\"{О}\u{О}
- \end{document}
- \end{Verbatim}
-
- \noindent\textbf{Result 3:} \\
- \indent {\textit{Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.\\ ÐÑбазМО ÑеÑеÑÑОÑа ÑаÑавПг лОÑа Ñ
ПÑе Ўа ЌО пПкаже ÑÑПÑ.} \\ ÐкÑеМÑО: \'{О}\`{О}\C{О}\f{О}\={О}\^{О}\"{О}\u{О}}\\[1cm]
-
- \noindent\textbf{Example 4: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage{cmsrb}
- \usepackage[T2A]{fontenc}
- \usepackage[utf8]{inputenc}
- \usepackage[serbianc]{babel}
- \begin{document}
- \textit{абвгЎÑÑежз\'{з}ÑОÑклÑЌМÑПпÑÑ\'{Ñ}ÑÑÑÑÑÑ
ÑÑÑÑ}
- \end{document}
- \end{Verbatim}
-
- \noindent\textbf{Result 4:} \\
- \indent {\textit{абвгЎÑÑежз\'{з}ÑОÑклÑЌМÑПпÑÑ\'{Ñ}ÑÑÑÑÑÑ
ÑÑÑÑ}}\\[1cm]
-
- \noindent\textbf{Example 5: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage{cmsrb}
- \newcommand{\ud}{\,\mathrm{d}}
- \begin{document}
- $$ \int_0^1 e^x\ud x $$
- \end{document}
- \end{Verbatim}
-
- \noindent\textbf{Result 5:} \\
- $$ \srbint_0^1 e^x\,\mathrm{d} x $$ \\[1cm]
-
- \noindent\textbf{Example 6: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage[nomath]{cmsrb}
- \newcommand{\ud}{\,\mathrm{d}}
- \begin{document}
- $$ \int_0^1 e^x\ud x $$
- \end{document}
- \end{Verbatim}
-
- \noindent\textbf{Result 6:} \\
- $$ \int_0^1 e^x\,\mathrm{d} x $$\\[1cm]
-
- \noindent\textbf{Example 7: }
- \begin{Verbatim}
- \documentclass{article}
- \usepackage{cmsrb}
- \usepackage[T1]{fontenc}
- \usepackage[utf8]{inputenc}
- \usepackage[serbian]{babel}
- \begin{document}
- ÐÑбазМО ÑеÑеÑÑОÑа ÑаÑавПг лОÑа Ñ
ПÑе Ўа ЌО пПкаже ÑÑПÑ.
- \end{document}
- \end{Verbatim}
+\begin{rezultat}
+$$ \enint\nolimits_0^1 e^x\,\mathrm{d} x \geq 0 $$
+\end{rezultat}
+
+\begin{primer}
+\documentclass{article}
+\usepackage[math]{cmsrb}
+\newcommand{\ud}{\,\mathrm{d}}
+\begin{document}
+$$ \int_0^1 e^x\ud x \geq 0 $$
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+$$ \int_0^1 e^x\,\mathrm{d} x \geqslant 0 $$
+\end{rezultat}
+
+ \section{Experimental encodings}
+
+ The encodings \texttt{ECMSRB1} and \texttt{ECMSRB2} are created for this package only. They are similar to \texttt{OT2} encoding, but they contain specific ligatures and accents (see Table~\ref{t3}). For the complete list of characters used in this encodings see Tables on Pages~\pageref{ecs1} and \pageref{ecs2}. The purposes of this encodins are writting Serbian text using only \texttt{ASCII} characters, and making simple conversions from Latin to Cyrillic.
+
+ \begin{table}[h!]
+ \newcolumntype{C}{>{\centering\arraybackslash}X}%
+ \begin{tabularx}{\textwidth}{|C C C|C C C|C C C|}
+ \hline
+ Input & \texttt{ECMSRB1} & \texttt{ECMSRB2} & Input & \texttt{ECMSRB1} & \texttt{ECMSRB2} &Улаз & \texttt{ECMSRB1} & \texttt{ECMSRB2} \\ \hline
+ \hline
+ \ecminput{CX} & \ecminput{CY} & \ecminput{DX} \\ \hline
+ \ecminput{DY} & \ecminput{EY} & \ecminput{GY} \\ \hline
+ \ecminput{KY} & \ecminput{LJ} & \ecminput{LY} \\ \hline
+ \ecminput{NJ} & \ecminput{NY} & \ecminput{SX} \\ \hline
+ \ecminput{SXY} & \ecminput{ZX} & \ecminput{ZY} \\ \hline
+ \ecminput{ZXY} & \ecminput{\EZH} & \ecminput{} \\ \hline
+ \hline
+ \ecminput{Cx} & \ecminput{Cy} & \ecminput{Dx} \\ \hline
+ \ecminput{Dy} & \ecminput{Ey} & \ecminput{Gy} \\ \hline
+ \ecminput{Ky} & \ecminput{Lj} & \ecminput{Ly} \\ \hline
+ \ecminput{Nj} & \ecminput{Ny} & \ecminput{Sx} \\ \hline
+ \ecminput{Sxy} & \ecminput{Zx} & \ecminput{Zy} \\ \hline
+ \ecminput{Zxy} & \ecminput{} & \ecminput{} \\ \hline
+ \hline
+ \ecminput{cx} & \ecminput{cy} & \ecminput{dx} \\ \hline
+ \ecminput{dy} & \ecminput{ey} & \ecminput{gy} \\ \hline
+ \ecminput{ky} & \ecminput{lj} & \ecminput{ly} \\ \hline
+ \ecminput{nj} & \ecminput{ny} & \ecminput{sx} \\ \hline
+ \ecminput{sxy} & \ecminput{zx} & \ecminput{zy} \\ \hline
+ \ecminput{zxy} & \ecminput{\ezh} & \ecminput{} \\ \hline
+ \hline
+ \ecminput{\`a} & \ecminput{\'a} & \ecminput{\^a} \\ \hline
+ \ecminput{\T a} & \ecminput{\D a} & \ecminput{\H a} \\ \hline
+ \ecminput{\r a} & \ecminput{\R a} & \ecminput{\v a} \\ \hline
+ \ecminput{\u a} & \ecminput{\U a} & \ecminput{\=a} \\ \hline
+ \ecminput{\b a} & \ecminput{\.a} & \ecminput{\d a} \\ \hline
+ \ecminput{\c a} & \ecminput{\k a} & \ecminput{\"a} \\ \hline
+ \ecminput{\C a} & \ecminput{\~a} & \ecminput{\f a} \\ \hline
+ \end{tabularx}
+ \caption{Encodings \texttt{ECMSRB1} and \texttt{ECMSRB2} for the package \textsf{cmsrb}.}\label{t3}
+ \end{table}
+
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[ECMSRB1]{fontenc}
+\usepackage[serbian]{babel}
+\begin{document}
+Ljubazni fenjerdxija cxadyavog lica hocye da mi pokazxe sxtos.
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+\indent {\fontencoding{ECMSRB1}\selectfont Ljubazni fenjerdxija cxadyavog lica hocye da mi pokazxe sxtos.}
+\end{rezultat}
+
+\begin{primer}
+\documentclass{article}
+\usepackage{cmsrb}
+\usepackage[ECMSRB2]{fontenc}
+\usepackage[serbian]{babel}
+\begin{document}
+Ljubazni fenjerdxija cxadyavog lica hocye da mi pokazxe sxtos.
+\end{document}
+\end{primer}
+
+\begin{rezultat}
+\indent {\fontencoding{ECMSRB2}\selectfont Ljubazni fenjerdxija cxadyavog lica hocye da mi pokazxe sxtos.}
+\end{rezultat}
+
+
+ \section{Version history}
+
+ \subsection*{4.0}
+
+ \begin{itemize}
+ \item All options are removed, the option \textsf{math} is added.
+ \item Fixed encodings \texttt{T1}, \texttt{T2A}, \texttt{TS1}, \texttt{OT2}.
+ \item Letter {\fontencoding{T2A}\selectfont\textsf{б}} is significantly improved in all styles.
+ \item Experimental encodings \texttt{ECMSRB1} and \texttt{ECMSRB2} are added.
+ \end{itemize}
- \noindent\textbf{Result 7:} \\
- \indent Ljubazni fenjerdÅŸija ÄaÄavog lica hoÄe da mi pokaÅŸe Å¡tos.
+ \subsection*{3.1}
- \section{Version history}
+ \begin{itemize}
+ \item Bugs fixed.
+ \item Options \textsf{noint} and \textsf{nosymb} are active.
+ \item Symbols $\leq$, $\geq$, $\nleq$, $\ngeq$ are changed.
+ \end{itemize}
\subsection*{3.0}
@@ -259,5 +397,19 @@
\begin{itemize}
\item The separate \verb|.map| files merged into one.
\end{itemize}
+
+ \pagebreak
+
+ \appendix
+
+ \section{Encoding ECMSRB1}\label{ecs1}
+
+ \fonttable{ecmsrb1cmsrbrr}
+
+ \pagebreak
+
+ \section{Encoding ECMSRB2}\label{ecs2}
+
+ \fonttable{ecmsrb2cmsrbrr}
\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cmsrb.doc.tlpobj new/tlpkg/tlpobj/cmsrb.doc.tlpobj
--- old/tlpkg/tlpobj/cmsrb.doc.tlpobj 2019-03-24 02:24:07.000000000 +0100
+++ new/tlpkg/tlpobj/cmsrb.doc.tlpobj 2020-04-13 01:54:40.000000000 +0200
@@ -1,9 +1,9 @@
name cmsrb.doc
category Package
-revision 50531
+revision 54706
shortdesc doc files of cmsrb
relocated 1
-docfiles size=217
+docfiles size=256
RELOC/doc/fonts/cmsrb/README.md
RELOC/doc/fonts/cmsrb/cmsrb-SR.pdf
RELOC/doc/fonts/cmsrb/cmsrb-SR.tex
++++++ cmsrb.tar.xz ++++++
++++ 64537 lines of diff (skipped)
++++++ cnltx.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cnltx/README new/doc/latex/cnltx/README
--- old/doc/latex/cnltx/README 2015-08-18 00:16:52.000000000 +0200
+++ new/doc/latex/cnltx/README 2019-11-01 21:58:55.000000000 +0100
@@ -1,5 +1,5 @@
--------------------------------------------------------------------------
-the CNLTX bundle v0.13 2015/08/17
+the CNLTX bundle v0.15 2019/11/01
LaTeX tools and documenting facilities
@@ -8,7 +8,7 @@
Web: https://github.com/cgnieder/cnltx/
E-Mail: contact@mychemistry.eu
--------------------------------------------------------------------------
-Copyright 2013-2015 Clemens Niederberger
+Copyright 2013--2019 Clemens Niederberger
This work may be distributed and/or modified under the
conditions of the LaTeX Project Public License, either version 1.3
Binary files old/doc/latex/cnltx/cnltx_en.pdf and new/doc/latex/cnltx/cnltx_en.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/cnltx/cnltx_en.tex new/doc/latex/cnltx/cnltx_en.tex
--- old/doc/latex/cnltx/cnltx_en.tex 2015-08-18 00:16:52.000000000 +0200
+++ new/doc/latex/cnltx/cnltx_en.tex 2019-11-01 21:58:55.000000000 +0100
@@ -13,7 +13,7 @@
% Web: https://github.com/cgnieder/cnltx/
% E-Mail: contact@mychemistry.eu
% --------------------------------------------------------------------------
-% Copyright 2013-2015 Clemens Niederberger
+% Copyright 2013--2019 Clemens Niederberger
%
% This work may be distributed and/or modified under the
% conditions of the LaTeX Project Public License, either version 1.3
@@ -131,6 +131,7 @@
}
}
+\usepackage{csquotes}
\defbibheading{bibliography}[\bibname]{\section{#1}}
\makeatletter
@@ -352,8 +353,7 @@
and actually loads most if not all of the bundle.
\item The module \cnltxbase\ is also intended as a programming tools package
that will be used in other packages eventually. For example it is used by
- the \pkg{cntformats} package from the \bnd{exsheets}
- bundle~\cite{bnd:exsheets}.
+ the \pkg{cntformats} package.
\item In case parts of this bundle prove useful to be used in a document the
recommended way is to add
\begin{sourcecode}[gobble=6]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cnltx.doc.tlpobj new/tlpkg/tlpobj/cnltx.doc.tlpobj
--- old/tlpkg/tlpobj/cnltx.doc.tlpobj 2019-02-28 03:27:21.000000000 +0100
+++ new/tlpkg/tlpobj/cnltx.doc.tlpobj 2019-11-02 16:11:42.000000000 +0100
@@ -1,9 +1,9 @@
name cnltx.doc
category Package
-revision 38138
+revision 52601
shortdesc doc files of cnltx
relocated 1
-docfiles size=223
+docfiles size=221
RELOC/doc/latex/cnltx/README
RELOC/doc/latex/cnltx/cnltx_en.pdf
RELOC/doc/latex/cnltx/cnltx_en.tex
++++++ cnltx.tar.xz ++++++
++++ 1957 lines of diff (skipped)
++++++ cochineal.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/cochineal/README new/doc/fonts/cochineal/README
--- old/doc/fonts/cochineal/README 2018-12-17 22:29:24.000000000 +0100
+++ new/doc/fonts/cochineal/README 2020-01-08 22:39:45.000000000 +0100
@@ -13,13 +13,53 @@
part of all distributions of LaTeX version 2003/12/01 or later. Those files and
LaTeX support file cochineal.sty are
- Copyright (c) 2016--2018 Michael Sharpe
+ Copyright (c) 2016--2019 Michael Sharpe
Files provided "as is", with no warranties.
The support files are provided in encodings OT1, T1, TS1 and LY1 for users of Western scripts, LGR for Greek scripts and T2A and OT2 for Cyrillic scripts.
-Current version: 1.049
+Current version: 1.060
+
+Changes in version 1.059
+1. Corrected two errors in the map file.
+2. Added the most recent versions of the math italic and math upright virtual fonts, some of which were omitted from version 1.059.
+
+Changes in version 1.059
+Eight files were inadvertently not included in recent updates. This omission is now corrected.
+
+Changes in version 1.058
+The TS1 encoded fonts were revised so that about a dozen new glyphs were added, most importantly asteriskcentered, which is required if you use a third level of \itemize. See the documentation for the new fonttable. (Thanks Frank Mittelbach.)
+
+Changes in version 1.057
+Added missing map entries.
+
+Changes in version 1.056
+1. The math support files have been reworked to provide the ability to generate output satisfying the requirements of PDF/A-1b.
+2. At the same time, the math metrics were reworked. It appears that in regular weight, the accent positions had become detached from reality and required a complete overhaul.
+
+Changes in version 1.055
+Removed four duplicate entries in Cochineal.map.
+
+Changes in version 1.054
+Changes to the sty and fd files and to the relevant tfm files so that the theoremfont option now works correctly.
+
+Changes in version 1.053
+Small changes to spacing of accents in some Greek glyphs.
+
+Changes in version 1.052
+Changed all occurrences of \let\Cochineal@@swashQ\@empty in the fd files to \global\let\Cochineal@@swashQ\@empty to prevent problems that could occr if the fd file is loaded within a group. (Thanks Frank Mittelbach.)
+
+Changes in version 1.051
+1. Modified the handling of U+1E9E and related glyphs in the otf lookups to work better outside TeX.
+2. Small changes to theorem fonts and to documentation.
+
+Changes in version 1.050
+1. Corrected code in a number of fd files that could led to source being ignored. (Thanks to Frank Mittelbach who diagnosed the problem and suggested fixes.)
+2. Corrected the theorem font which was missing glyphs Tcedilla and tcedilla.
+3. Added U+1E9E, which may be used as capital germandbls, and a small caps version thereof. These are supplements to the existing symbol SS and its small caps version, and are available so far only via unicode processing.
+4. Added a number of superior symbols, including comma, period, plus, hyphen, slash, exclam and numbersign.
+5. Added an entry to smcp tables to make longs point to the small cap glyph s.sc.
Changes in version 1.049
Corrected an error that resulted in a loss of f-ligatures in some encodings. (Thanks to DB Miller who reported this.)
Binary files old/doc/fonts/cochineal/cochineal-doc.pdf and new/doc/fonts/cochineal/cochineal-doc.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/cochineal/cochineal-doc.tex new/doc/fonts/cochineal/cochineal-doc.tex
--- old/doc/fonts/cochineal/cochineal-doc.tex 2018-12-17 22:29:24.000000000 +0100
+++ new/doc/fonts/cochineal/cochineal-doc.tex 2019-06-23 22:56:12.000000000 +0200
@@ -1,11 +1,10 @@
% !TEX TS-program = pdflatexmk
-% Template file for TeXShop by Michael Sharpe, LPPL
-\documentclass[11pt]{amsart}
+\documentclass[11pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage[parfill]{parskip}% Begin paragraphs with an empty line rather than an indent
\usepackage{graphicx}
\pdfmapfile{=Cochineal.map}
-\pdfmapfile{=newtx.map}
+%\pdfmapfile{=newtx.map}
%\usepackage{amssymb}% don't use with newtxmath
%SetFonts
% cochineal+newtxmath
@@ -14,9 +13,8 @@
\usepackage{textcomp}
\usepackage[varqu,varl]{zi4}% inconsolata
\usepackage{amsmath,amsthm}
-\usepackage[cochineal,bigdelims,cmintegrals,vvarbb]{newtxmath}
+\usepackage[cochineal,vvarbb]{newtxmath}
% option vvarbb gives you stix blackboard bold
-\useosf % use oldstyle figures except in math
\usepackage[cal=boondoxo]{mathalfa}% less slanted than STIX cal
\usepackage{bm}
%SetFonts
@@ -76,11 +74,15 @@
\item {\tt sups}: use superior figures to make footnote markers, rather than the \LaTeX's default markers;
\item {\tt swashQ}: use Cochineal's swash \Qswash\ instead of its tamer default version, \Qnoswash;
\item {\tt scosf}: always use oldstyle figures within a small caps block;
-\item {\tt theoremfont}: for theorem statements in the {\tt plain} style, use a doctored version of italics that has upright figures, braces, brackets, parentheses, exclamation mark, colon and semicolon.
+\item {\tt theoremfont}: for theorem statements in the {\tt plain} style, use a doctored version of italics that has upright figures, braces, brackets, parentheses, exclamation mark, colon and semicolon. It is implemented as the {\tt slanted} shape, and there are two options you can add to the call to the {\tt cochineal} package to modify the way it outputs figures.
+
+The default (neither of the following options is set) is to use upright figures within theorem text, but in the same alignment (proportional or tabular) and the same style (lining or oldstyle) as in general text.
+
+Option {\tt thmtabular} causes figures in theorem text to render in tabular alignment, while option {\tt thmlining} causes figure styles to render in lining rather than oldstyle. The two may be used in conjunction, forcing figures in theorem text to render as tabular lining figures.
\end{itemize}
\section*{Mathematical accompaniment}
-The package contains fonts for use as math letters that are derived from Cochineal Roman and Greek glyphs and the newtxmath family. Note that $v$ and $\nu$ (Greek {\tt nu}) are quite distinct. Here's a sample.
+The package contains fonts for use as math letters that are derived from Cochineal Roman and Greek glyphs and the {\tt newtxmath} family. Note that $v$ and $\nu$ (Greek {\tt nu}) are quite distinct. Here's a sample.
\begin{verbatim}
% preamble should include, in this order:
@@ -127,4 +129,25 @@
\newpage
The OT$2$ encoding (supposedly obsolete, but still useful) is intended for limited use in producing Russian characters with a Western keyboard, making by means of \TeX\ a transliteration of ASCII for most characters in the range 33--122, and providing ligatures to generate the rest. See the documentation of {\tt nimbus15} for further details.
\fonttable{Cochineal-Roman-tlf-ot2}
+\newpage
+\section*{Additional glyphs for use in German orthography}
+Prior to version {\tt1.050}, {\tt cochineal} offered basic support for German orthography, having all required accented glyphs and the lower case \ss, as well as a small caps \textsc{\ss}. Under LaTeX, the T$1$ encoding contained \verb|S_S|, but only as a synthesized character in the {\tt tfm}. Unicode users could not make use of \verb|S_S| as it was not present in the~{\tt otf}. So, with unicode tex processing:
+\begin{verbatim}
+{\addfontfeature{StylisticSet=1}\ss\ \textsc{\ss}}
+\end{verbatim}
+typesets, as in LaTeX processing, to
+
+\ss\ \textsc{\ss}
+
+Note also that in unicode processing, in order to obtain the expected case change behavior, it may be necessary to add in your preamble:
+\begin{verbatim}
+\uccode`Ã="1E9E
+\end{verbatim}
+
+
+ As of version {\tt1.050} of {\tt cochineal}, there are now glyphs in each style for {\tt U+1E9E} and for its small caps version, as well as \verb|S_S| as a real character, accessible under unicode TeX. The glyphs may be used as the uppercase and small caps versions of {\tt germandbls}. Currently, the new glyphs are not available in any of the LaTeX encodings and must be used via unicode TeX.
+
+The following tables show how to access the new glyphs in unicode TeX. Note that you will need to set {\tt StylisticSet=1} if you wish not to use the new sharp-s glyphs.
+
+\includegraphics{newgermanglyphs-crop}
\end{document}
\ No newline at end of file
Binary files old/doc/fonts/cochineal/newgermanglyphs-crop.pdf and new/doc/fonts/cochineal/newgermanglyphs-crop.pdf differ
Binary files old/doc/fonts/cochineal/newgermanglyphs.pdf and new/doc/fonts/cochineal/newgermanglyphs.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/cochineal/newgermanglyphs.tex new/doc/fonts/cochineal/newgermanglyphs.tex
--- old/doc/fonts/cochineal/newgermanglyphs.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/fonts/cochineal/newgermanglyphs.tex 2019-05-19 22:50:43.000000000 +0200
@@ -0,0 +1,108 @@
+% !TEX TS-program = XeLaTeX
+\documentclass[11pt]{article}
+\usepackage{geometry}
+\usepackage{fontspec}
+%\uccode`Ã=\SS
+%\renewcommand{\SS}{{\addfontfeature{RawFeature=+ss01}\symbol{"1E9E}}}
+\defaultfontfeatures{Mapping=tex-text}
+\setromanfont{cochineal}
+\pagestyle{empty}
+%\setromanfont{cochineal}[StylisticSet=1]
+%\setromanfont{cochineal}[StylisticSet=2]
+%\setsansfont[Scale=MatchLowercase,Mapping=tex-text]{LMSans}
+%\setmonofont[Scale=MatchLowercase]{courierN}
+%\newunicodechar{Ã}{\ss}
+%\usepackage{fonttable}
+%\usepackage[ngerman]{babel}
+%\usepackage{polyglossia}
+%\setmainlanguage{german}
+%\def\longs{\symbol{"017F}}
+\begin{document}
+\noindent New symbols:
+\begin{center}
+ \begin{tabular}{@{} lcl @{}}
+ \hline
+ Glyph name & glyph & macro\\
+ \hline
+ {\tt uni1E9E} & \symbol{"1E9E} &\verb|\symbol{"1E9E}|\\
+ {\tt uni1E9E.ss01} & {\addfontfeature{StylisticSet=1}\symbol{"1E9E}} & \verb|{\addfontfeature{StylisticSet=1}\symbol{"1E9E}}| \\
+ {\tt germandbls.sc} & \textsc{\ss} & \verb|{\textsc{\ss}}| \\
+ {\tt germandbls.sc.ss01} & {\addfontfeature{StylisticSet=1}\textsc{\ss}} & \verb|{\addfontfeature{StylisticSet=1}\textsc{\ss}}| \\
+ \hline
+ \end{tabular}
+\end{center}
+
+%{\bfseries
+%\begin{center}
+% \begin{tabular}{@{} lcl @{}}
+% \hline
+% Glyph name & glyph & macro\\
+% \hline
+% {\tt uni1E9E} & \symbol{"1E9E} &\verb|\symbol{"1E9E}|\\
+% {\tt uni1E9E.alt} & {\addfontfeature{StylisticSet=1}\symbol{"1E9E}} & \verb|{\addfontfeature{StylisticSet=1}\symbol{"1E9E}}| \\
+% {\tt germandbls.sc.ss01} & {\addfontfeature{StylisticSet=1}\textsc{\ss}} & \verb|{\addfontfeature{StylisticSet=1}\textsc{\ss}}| \\
+% \hline
+% \end{tabular}
+%\end{center}
+%}
+ \noindent Effect of choice of {\tt StylisticSet}:
+
+\begin{center}
+ \begin{tabular}{@{} ccccc @{}}
+ \hline
+ StylisticSet & \verb|\ss| & \verb|\SS| & \verb|\MakeUppercase{\ss}| & \verb|\textsc{\ss}| \\
+ \hline
+ None & \ss & \SS & \MakeUppercase{\ss} & \textsc{\ss}\\
+
+ =1 & {\addfontfeature{StylisticSet=1}\ss} & {\addfontfeature{StylisticSet=1}\SS} & {\addfontfeature{StylisticSet=1}\MakeUppercase{\ss}} & {\addfontfeature{StylisticSet=1}\textsc{\ss}}\\
+ \hline
+ \end{tabular}
+\end{center}
+
+%{\itshape
+%\begin{center}
+% \begin{tabular}{@{} ccccc @{}}
+% \hline
+% StylisticSet & \verb|\ss| & \verb|\SS| & \verb|\MakeUppercase{\ss}| & \verb|\textsc{\ss}| \\
+% \hline
+% None & \ss & \SS & \MakeUppercase{\ss} & \textsc{\ss}\\
+%
+% =1 & {\addfontfeature{StylisticSet=1}\ss} & {\addfontfeature{StylisticSet=1}\SS} & {\addfontfeature{StylisticSet=1}\MakeUppercase{\ss}} & {\addfontfeature{StylisticSet=1}\textsc{\ss}}\\
+% \hline
+% \end{tabular}
+%\end{center}
+%}
+%
+%\bfseries
+%\begin{center}
+% \begin{tabular}{@{} ccccc @{}}
+% \hline
+% StylisticSet & \verb|\ss| & \verb|\SS| & \verb|\MakeUppercase{\ss}| & \verb|\textsc{\ss}| \\
+% \hline
+% None & \ss & \SS & \MakeUppercase{\ss} & \textsc{\ss}\\
+%
+% =1 & {\addfontfeature{StylisticSet=1}\ss} & {\addfontfeature{StylisticSet=1}\SS} & {\addfontfeature{StylisticSet=1}\MakeUppercase{\ss}} & {\addfontfeature{StylisticSet=1}\textsc{\ss}}\\
+% \hline
+% \end{tabular}
+%\end{center}
+%
+%\itshape
+%\begin{center}
+% \begin{tabular}{@{} ccccc @{}}
+% \hline
+% StylisticSet & \verb|\ss| & \verb|\SS| & \verb|\MakeUppercase{\ss}| & \verb|\textsc{\ss}| \\
+% \hline
+% None & \ss & \SS & \MakeUppercase{\ss} & \textsc{\ss}\\
+%
+% =1 & {\addfontfeature{StylisticSet=1}\ss} & {\addfontfeature{StylisticSet=1}\SS} & {\addfontfeature{StylisticSet=1}\MakeUppercase{\ss}} & {\addfontfeature{StylisticSet=1}\textsc{\ss}}\\
+% \hline
+% \end{tabular}
+%\end{center}
+
+%{\addfontfeature{StylisticSet=2}
+%
+%\ss\ \MakeUppercase{\ss} \SS\ \textsc{\ss}
+%
+%}
+%\expandafter\show\csname SS\endcsname
+\end{document}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/cochineal.doc.tlpobj new/tlpkg/tlpobj/cochineal.doc.tlpobj
--- old/tlpkg/tlpobj/cochineal.doc.tlpobj 2019-02-28 03:27:34.000000000 +0100
+++ new/tlpkg/tlpobj/cochineal.doc.tlpobj 2020-03-24 01:56:49.000000000 +0100
@@ -1,11 +1,14 @@
name cochineal.doc
category Package
-revision 49436
+revision 54512
shortdesc doc files of cochineal
relocated 1
-docfiles size=90
+docfiles size=102
RELOC/doc/fonts/cochineal/OFL-FAQ.txt
RELOC/doc/fonts/cochineal/OFL.txt
RELOC/doc/fonts/cochineal/README
RELOC/doc/fonts/cochineal/cochineal-doc.pdf
RELOC/doc/fonts/cochineal/cochineal-doc.tex
+ RELOC/doc/fonts/cochineal/newgermanglyphs-crop.pdf
+ RELOC/doc/fonts/cochineal/newgermanglyphs.pdf
+ RELOC/doc/fonts/cochineal/newgermanglyphs.tex
++++++ cochineal.tar.xz ++++++
++++ 18755 lines of diff (skipped)
++++++ codepage.doc.tar.xz ++++++
Binary files old/doc/latex/codepage/demo.zip and new/doc/latex/codepage/demo.zip differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/codepage/voyel850.tex new/doc/latex/codepage/voyel850.tex
--- old/doc/latex/codepage/voyel850.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/codepage/voyel850.tex 2019-06-29 00:42:49.000000000 +0200
@@ -0,0 +1,32 @@
+\documentstyle[codepage]{article}
+
+\codepage{\EightFiveZero}{\CM}
+
+\begin{document}
+\begin{center}
+\Large \sc Les voyelles
+\end{center}
+\begin{verse}
+A noir, E blanc, I rouge, O bleu: voyelles,\\
+Je dirai quelque jour vos naissances latentes:\\
+A, noir corset velu des mouches clatantes\\
+Qui bombinent autour des puanteurs cruelles,
+
+Golfs d'ombre; et, candeurs des vapeurs et des tentes,\\
+Lances des glaciers fiers, rois blancs, frissons d'ombelles;\\
+I, pourpres, sang crach, rire des lvres belles\\
+Dans la colre ou les ivresses pnitentes;
+
+U, cycles, vibrements divins des mers virides,\\
+Paix des ptis sems d'animaux, paix des rides\\
+Que l'alchimie imprime aux grands fronts studieux;
+
+O, suprme Clairon plein des strideurs tranges,\\
+Silences traverss des Mondes et des Anges:\\
+-- O l'Omga, rayon violet de Ses Yeux!\\
+\end{verse}
+
+\begin{flushright}
+A. Rimbaud
+\end{flushright}
+\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/latex/codepage/voyeliso.tex new/doc/latex/codepage/voyeliso.tex
--- old/doc/latex/codepage/voyeliso.tex 1970-01-01 01:00:00.000000000 +0100
+++ new/doc/latex/codepage/voyeliso.tex 2019-06-29 00:42:49.000000000 +0200
@@ -0,0 +1,32 @@
+\documentstyle[codepage]{article}
+
+\codepage{\IsoOne}{\CM}
+
+\begin{document}
+\begin{center}
+\Large \sc Les voyelles
+\end{center}
+\begin{verse}
+A noir, E blanc, I rouge, O bleu: voyelles,\\
+Je dirai quelque jour vos naissances latentes:\\
+A, noir corset velu des mouches éclatantes\\
+Qui bombinent autour des puanteurs cruelles,
+
+Golfs d'ombre; et, candeurs des vapeurs et des tentes,\\
+Lances des glaciers fiers, rois blancs, frissons d'ombelles;\\
+I, pourpres, sang craché, rire des lèvres belles\\
+Dans la colère ou les ivresses pénitentes;
+
+U, cycles, vibrements divins des mers virides,\\
+Paix des pâtis semés d'animaux, paix des rides\\
+Que l'alchimie imprime aux grands fronts studieux;
+
+O, suprême Clairon plein des strideurs étranges,\\
+Silences traversés des Mondes et des Anges:\\
+-- O l'Oméga, rayon violet de Ses Yeux!\\
+\end{verse}
+
+\begin{flushright}
+A. Rimbaud
+\end{flushright}
+\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/codepage.doc.tlpobj new/tlpkg/tlpobj/codepage.doc.tlpobj
--- old/tlpkg/tlpobj/codepage.doc.tlpobj 2019-02-28 03:27:44.000000000 +0100
+++ new/tlpkg/tlpobj/codepage.doc.tlpobj 2019-06-29 01:53:49.000000000 +0200
@@ -1,11 +1,12 @@
name codepage.doc
category Package
-revision 21126
+revision 51502
shortdesc doc files of codepage
relocated 1
-docfiles size=81
+docfiles size=82
RELOC/doc/latex/codepage/LISEZMOI
RELOC/doc/latex/codepage/README
RELOC/doc/latex/codepage/codepage.pdf
- RELOC/doc/latex/codepage/demo.zip
RELOC/doc/latex/codepage/frintro.pdf
+ RELOC/doc/latex/codepage/voyel850.tex
+ RELOC/doc/latex/codepage/voyeliso.tex
++++++ codepage.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/codepage.tlpobj new/tlpkg/tlpobj/codepage.tlpobj
--- old/tlpkg/tlpobj/codepage.tlpobj 2019-02-28 03:27:44.000000000 +0100
+++ new/tlpkg/tlpobj/codepage.tlpobj 2019-06-29 01:53:49.000000000 +0200
@@ -1,6 +1,6 @@
name codepage
category Package
-revision 21126
+revision 51502
shortdesc Support for variant code pages
relocated 1
longdesc The package provides a mechanism for inputting non-ASCII text.
++++++ coelacanth.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/coelacanth/README new/doc/fonts/coelacanth/README
--- old/doc/fonts/coelacanth/README 2017-09-11 22:47:09.000000000 +0200
+++ new/doc/fonts/coelacanth/README 2020-04-14 23:06:20.000000000 +0200
@@ -1,5 +1,5 @@
This is the README for the coelacanth package, version 0.005
-(2017-09-10).
+(2020-04-13).
This package provides LaTeX, pdfLaTeX, XeLaTeX and LuaLaTeX
support for Coelecanth fonts, designed by Ben Whitmore.
Binary files old/doc/fonts/coelacanth/coelacanth-samples.pdf and new/doc/fonts/coelacanth/coelacanth-samples.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/coelacanth/coelacanth-samples.tex new/doc/fonts/coelacanth/coelacanth-samples.tex
--- old/doc/fonts/coelacanth/coelacanth-samples.tex 2017-09-11 22:47:09.000000000 +0200
+++ new/doc/fonts/coelacanth/coelacanth-samples.tex 2019-10-11 23:10:33.000000000 +0200
@@ -1,16 +1,18 @@
\documentclass{article}
+
\usepackage[T1]{fontenc}
\usepackage{coelacanth}
-\newcommand{\Section}[1]{\section*{\scshape#1}}
+\newcommand{\Section}[1]{\section*{\large\scshape#1}}
\renewcommand{\,}{\kern0.2ex}
\usepackage{lipsum}
\begin{document}
-\begin{center}\huge
-\textsc{C\,o\,e\,l\,a\,c\,a\,n\,t\,h}\\[0.5ex]
+\begin{center}\LARGE
+\textbf{\textsc{C\,o\,e\,l\,a\,c\,a\,n\,t\,h}\\[0.5ex]}
\end{center}
+
\Section{Regular}
\lipsum[1]
@@ -23,6 +25,7 @@
\Section{Small Caps}
\textsc{\lipsum[5]}
+
\Section{Default Numbers}
1234567890
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/coelacanth.doc.tlpobj new/tlpkg/tlpobj/coelacanth.doc.tlpobj
--- old/tlpkg/tlpobj/coelacanth.doc.tlpobj 2019-02-28 03:27:44.000000000 +0100
+++ new/tlpkg/tlpobj/coelacanth.doc.tlpobj 2020-04-15 01:54:36.000000000 +0200
@@ -1,9 +1,9 @@
name coelacanth.doc
category Package
-revision 45270
+revision 54736
shortdesc doc files of coelacanth
relocated 1
-docfiles size=41
+docfiles size=20
RELOC/doc/fonts/coelacanth/LICENSE.md
RELOC/doc/fonts/coelacanth/README
RELOC/doc/fonts/coelacanth/coelacanth-samples.pdf
++++++ coelacanth.tar.xz ++++++
/work/SRC/openSUSE:Factory/texlive-specs-e/coelacanth.tar.xz /work/SRC/openSUSE:Factory/.texlive-specs-e.new.3606/coelacanth.tar.xz differ: char 26, line 1
++++++ colortbl.doc.tar.xz ++++++
Binary files old/doc/latex/colortbl/colortbl-DE.pdf and new/doc/latex/colortbl/colortbl-DE.pdf differ
Binary files old/doc/latex/colortbl/colortbl.pdf and new/doc/latex/colortbl/colortbl.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/colortbl.doc.tlpobj new/tlpkg/tlpobj/colortbl.doc.tlpobj
--- old/tlpkg/tlpobj/colortbl.doc.tlpobj 2019-02-28 03:27:57.000000000 +0100
+++ new/tlpkg/tlpobj/colortbl.doc.tlpobj 2020-01-26 01:56:51.000000000 +0100
@@ -1,6 +1,6 @@
name colortbl.doc
category Package
-revision 49404
+revision 53545
shortdesc doc files of colortbl
relocated 1
docfiles size=152
++++++ colortbl.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/latex/colortbl/colortbl.sty new/tex/latex/colortbl/colortbl.sty
--- old/tex/latex/colortbl/colortbl.sty 2018-12-13 23:50:26.000000000 +0100
+++ new/tex/latex/colortbl/colortbl.sty 2020-01-25 23:23:37.000000000 +0100
@@ -8,14 +8,14 @@
%%
%%
%% Source File: `colortbl.dtx'.
-%% Copyright 1996 1998 1999 2012 2018 David Carlisle
+%% Copyright 1996 1998 1999 2012 2018 2020 David Carlisle
%%
%% This file may be distributed under the terms of the LPPL.
%% See readme for details.
%%
\NeedsTeXFormat{LaTeX2e}[1995/06/01]
\ProvidesPackage{colortbl}
- [2018/12/12 v1.0d Color table columns (DPC)]
+ [2020/01/04 v1.0e Color table columns (DPC)]
\edef\@tempa{%
\noexpand\AtEndOfPackage{%
\catcode`\noexpand\^^A\the\catcode`\^^A\relax}}
@@ -320,11 +320,13 @@
##2%
\global\setbox\@ne\HH@box\doublerulesep\doublerulesep}}%
\HH@let!}\else
+ \ifx\@tempb\@sptoken\let\next\HH@spacelet\else
\PackageWarning{hhline}%
{\meaning\@tempb\space ignored in \noexpand\hhline argument%
\MessageBreak}%
- \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
+ \fi\fi\fi\fi\fi\fi\fi\fi\fi\fi\fi
\next}
+\lowercase{\def\HH@spacelet} {\futurelet\@tempb \HH@loop}
\fi}
\AtBeginDocument{
\ifx\longtable\@undefined\else
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/colortbl.tlpobj new/tlpkg/tlpobj/colortbl.tlpobj
--- old/tlpkg/tlpobj/colortbl.tlpobj 2019-02-28 03:27:57.000000000 +0100
+++ new/tlpkg/tlpobj/colortbl.tlpobj 2020-01-26 01:56:51.000000000 +0100
@@ -1,6 +1,6 @@
name colortbl
category Package
-revision 49404
+revision 53545
shortdesc Add colour to LaTeX tables
relocated 1
longdesc The package allows rows and columns to be coloured, and even
@@ -9,7 +9,6 @@
RELOC/tex/latex/colortbl/colortbl.sty
catalogue-also xcolor
catalogue-ctan /macros/latex/contrib/colortbl
-catalogue-date 2018-12-12 22:35:53 +0100
catalogue-license lppl
catalogue-topics colour table
-catalogue-version 1.0d
+catalogue-version 1.0e
++++++ combofont.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/lualatex/combofont/README.md new/doc/lualatex/combofont/README.md
--- old/doc/lualatex/combofont/README.md 2017-07-03 22:59:09.000000000 +0200
+++ new/doc/lualatex/combofont/README.md 2019-06-08 23:43:09.000000000 +0200
@@ -2,7 +2,8 @@
An EXPERIMENTAL package to add nfss-declaration of combo fonts to a luaLaTeX document
-Version 0.2 copyright Ulrike Fischer 2017-
+Version 0.3 2019/06/08
+copyright Ulrike Fischer
## License
Binary files old/doc/lualatex/combofont/combofont-test-fira-math.pdf and new/doc/lualatex/combofont/combofont-test-fira-math.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/lualatex/combofont/combofont-test-fira-math.tex new/doc/lualatex/combofont/combofont-test-fira-math.tex
--- old/doc/lualatex/combofont/combofont-test-fira-math.tex 2017-07-03 22:59:09.000000000 +0200
+++ new/doc/lualatex/combofont/combofont-test-fira-math.tex 2019-06-08 23:43:09.000000000 +0200
@@ -1,5 +1,5 @@
% !Mode:: "TeX:DE:UTF-8:Main"
-
+%% Date 2017/07/03 Version 0.2 combofont example
\documentclass[parskip=full]{scrartcl}
\usepackage{luacode}
@@ -26,7 +26,7 @@
)
\end{luacode}
-\usepackage{unicode-math}
+\usepackage[math-style=upright]{unicode-math}
\usepackage{combofont}
\setmainfont{Fira Sans}
@@ -41,19 +41,19 @@
{%
{},
0x30-0x39,
- 0x61-0x7A
+ 0x61-0x7A*0x03B1-0x03C9
}
\setupcombofont{FiraMathScript}
{%
file:texgyrepagella-math.otf:mode=base;script=math;language=DFLT;+ssty=0 at #1pt,
file:firasans-regular.otf at #1pt,
- file:firasans-regularitalic.otf at #1pt
+ file:firasans-italic.otf at #1pt
}
{%
{},
0x30-0x39,
- 0x61-0x7A
+ 0x61-0x7A*0x03B1-0x03C9
}
\setupcombofont{FiraMathScriptScript}
@@ -65,20 +65,20 @@
{%
{},
0x30-0x39,
- 0x61-0x7A
+ 0x61-0x7A*0x03B1-0x03C9
}
-
-% Mathversion bold need Script and ScriptScript declarations too!
+
+% Mathversion bold need Script and ScriptScript declarations too!
\setupcombofont{FiraMathBold}
{%
file:texgyrepagella-math.otf:mode=base;script=math;language=DFLT; at #1pt,
file:firasans-regular.otf at #1pt,
- file:firasans-regularitalic.otf at #1pt
+ file:firasans-italic.otf at #1pt
}
{%
{},
0x30-0x39,
- 0x61-0x7A
+ 0x61-0x7A*0x03B1-0x03C9
}
@@ -101,17 +101,10 @@
\SetSymbolFont{operators}{bold}{TU}{FiraMath}{bx}{n}
-% Map a etc to the ascii range. Original values can be found with
-% [\Umathcharclass `\a] [\Umathcharfam `\a] [\Umathcharslot `\a]
-
-\Umathcode `\a = "7 "0 "61
-\Umathcode `\b = "7 "0 "62
-\Umathcode `\c = "7 "0 "63
-\Umathcode `\d = "7 "0 "64
-\Umathcode `\e = "7 "0 "65
-\Umathcode `\f = "7 "0 "66
-\Umathcode `\g = "7 "0 "67
-\Umathcode `\h = "7 "0 "68
+% Map "a" etc to the ascii range. Original values can be found with
+%[\Umathcharclass `\a] [\Umathcharfam `\a] [\Umathcharslot `\a]
+% not needed because of math-style=upright
+%\Umathcode `\a = "7 "0 "61
\begin{document}
Binary files old/doc/lualatex/combofont/combofont.pdf and new/doc/lualatex/combofont/combofont.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/lualatex/combofont/combofont.tex new/doc/lualatex/combofont/combofont.tex
--- old/doc/lualatex/combofont/combofont.tex 2017-07-03 22:59:09.000000000 +0200
+++ new/doc/lualatex/combofont/combofont.tex 2019-06-08 23:43:09.000000000 +0200
@@ -1,8 +1,9 @@
% !Mode:: "TeX:DE:UTF-8:Main"
-\RequirePackage{luatex85}
\documentclass[parskip=half-,egregdoesnotlikesansseriftitles]{scrartcl}
\usepackage{combofont}
\usepackage{ydoc-code,ydoc-desc}
+\usepackage[english]{babel}
+\usepackage[autostyle]{csquotes}
\usepackage{fontspec}
\usepackage{xcolor}
@@ -38,7 +39,9 @@
\DeclareFontShape{TU} {combotest}{m}{n}{<->combo*combotest-regular}{}
\DeclareFontShape{TU} {combotest}{bx}{n}{<->combo*combotest-bold}{}
-\title{The \texttt{combofont} package}
+\title{The \texttt{combofont} package \\
+{\normalsize Version \csname UlrikeFischer@package@ufcombofont@version\endcsname\
+from \csname UlrikeFischer@package@ufcombofont@date\endcsname}}
\author{Ulrike Fischer\thanks{fischer@troubleshooting-tex.de}}
\newcommand\package[1]{\texttt{#1}}
\begin{document}
@@ -46,29 +49,29 @@
\section{Status: EXPERIMENTAL}
-This is a EXPERIMENTAL package.
+This is an EXPERIMENTAL package.
-It can disappear without notice e.\,g. if the \package{luaotfload} changes so that it no longer work, or if luatex changes, or if \package{fontspec} includes the code.
+It can disappear without notice e.\,g. if the \package{luaotfload} changes so that it no longer works, or if luatex changes, or if \package{fontspec} includes the code.
-It is also possible that syntax and commands change in a incompatible way. So if you use it in a production environment: \textbf{You have been warned}.
+It is also possible that syntax and commands change in an incompatible way. So if you use it in a production environment: \textbf{You have been warned}.
\section{Introduction}
-In version 2.7. \package{luaotfload} supports combining characters from multiple fonts into a single virtualized one.
+In version 2.7 \package{luaotfload} supports combining characters from multiple fonts into a single virtualized one.
That means that one can build a font that takes e.g. the capital letters from a sans serif font and the lowercase letters from a serif font. Or a font that pulls in missing greek or cyrillic glyphs from another font.
-The methods pulls in \emph{only} glyphs. It is not suitable for every imaginable font combination -- some drawbacks are described below -- and one should use it with care. Nevertheless it is a quite neat extension of the tools to manipulate fonts.
+The method pulls in \emph{only} glyphs. It is not suitable for every imaginable font combination -- some drawbacks are described below -- and one should use it with care. Nevertheless it is a quite neat extension of the tools to manipulate fonts.
-The main problem with the examples in the \package{luaotfload} manual is that it creates fonts of a fix size. This means that they don't respond to command like \verb+\large+ or \verb+\footnotesize+.
+The main problem with the examples in the \package{luaotfload} manual is that they create fonts of a fix size. This means that they don't respond to command like \verb+\large+ or \verb+\footnotesize+.
-After trying around a bit and then asking a question (https://tex.stackexchange.com/questions/371647/call-a-luatex-combo-font-thro...) I got from David Carlisle the idea to use a \texttt{size}-Funktion which one define with \verb+\DeclareSizeFunction+ to inject the needed code to size the combo-font in a nfss-\verb+\DeclareFontShape+-command.
+After trying around a bit and then asking a question (https://tex.stackexchange.com/questions/371647/call-a-luatex-combo-font-thro...) I got from David Carlisle the idea to use a \texttt{size}-Funktion which one defines with \verb+\DeclareSizeFunction+ to inject the needed code to size the combo-font in a nfss-\verb+\DeclareFontShape+-command.
\package{combofont.sty} is the result.
It is not meant as a production package but as package that helps to exploit the use of combo fonts.
\section{Requirements}
-You need at least an up-to-date TeXLive 2016. TeXLive 2017 with luatex 1.0.4. or a current miktex is better.
+You need at least an up-to-date TeXLive 2016. TeXLive 2017 with luatex 1.0.4 or a current miktex is better.
\textbf{Change Version 0.2, 3.7.2017}: The style no longer loads the now obsolete \texttt{l3regex}, it assumes that it is loaded by \texttt{expl3}. In older \TeX-systems you will have to load the package.
@@ -88,7 +91,7 @@
\DescribeMacro\setupcombofont{<name>}{<comma list of basefonts>}{<comma list of ranges and code-points>}
\begin{description}
- \item[\marg{name}] is the name of the font. It should be some unique ascii-string without spaces. If you intent to define lots of fonts it would be a good idea to think about a sensible naming sheme. In the example here I simply used \texttt{combotest-regular} and \texttt{combotest-bold}.
+ \item[\marg{name}] is the name of the font. It should be some unique ascii-string without spaces. If you intend to define lots of fonts it would be a good idea to think about a sensible naming sheme. In the example here I simply used \texttt{combotest-regular} and \texttt{combotest-bold}.
\item[\marg{comma list of basefonts}] This should be a list of font declarations you want to use to build your combo font. The syntax used is described in the \package{luaotfload} manual. Example:
@@ -105,8 +108,8 @@
\item[Order of the fonts] The first font is the main font which will receive the glyphs. So think carefully which font is should be and setup its font features correctly. \package{combofont} defines as a helper command \verb+\combodefaultfeat+ which sets \texttt{mode=node;script=latn;language=DFLT;+tlig;}.
\item[Size declaration] The font description should end with a size declaration line \verb+at #1pt+. When processing the font \verb+#1+ will be replaced by the current font size. As you can see in the second font you can do calculations. \emph{Don't forget the size declaration!}
-
-\item Be careful with the commas: there shouldn't be one after the last font.
+
+\item Be careful with the commas: there shouldn't be one after the last font.
\end{description}
\item[\marg{comma list of ranges and code-points}] This is a comma list of settings which describe which glyphs are taken from the respective font. Example:
@@ -124,13 +127,13 @@
\item There should be as many settings as there are fonts.
\item Empty entries should be marked with a pair of braces (normally the first entry is empty).
\item You can add ranges of code points and single code points. Blocks are separated by an asterix \verb+*+. The example set the uppercase letters and the exclamation and the question mark.
-\item The keyword \texttt{fallback} means that this font is used for âmissing glyphsâ (in the example for the cyrillic glyphs).
+\item The keyword \texttt{fallback} means that this font is used for \enquote{missing glyphs} (in the example for the cyrillic glyphs).
\end{enumerate}
\end{description}
\subsection{Write \texttt{nfss}-declarations}
-After all the fonts you need have been setup, you can write suitable \texttt{nfss}-declaration which make it possible to call the font by family and other font commands. Example:
+After all the fonts you need have been setup, you can write suitable \texttt{nfss}-declarations which make it possible to call the font by family and other font commands. Example:
\begin{verbatim}
\DeclareFontFamily{TU}{combotest}{}
@@ -183,17 +186,17 @@
\minisec{Important points:}
\begin{enumerate}
\item This a first try to get something working in math. It is in no way finished or complete, I'm rather certain that something will be missing or even faulty.
-\item Start with a real math font with a math constants table.
-\item Don't expect to get a perfect sans serif math font this way without work. It can take quite some time to adjust everything. Also a text font is not really meant to be used as math font.
+\item Start with a real math font with a math constants table.
+\item Don't expect to get a perfect sans serif math font this way without work. It can take quite some time to adjust everything. Also a text font is not really meant to be used as math font.
\item The lua-code for the font patch compares \texttt{fontdata.psname} with the string \\\texttt{TeXGyrePagellaMath-Regular} to restrict the patch to the specific font.
The font name database of luaotfload-names.lua contains for \textsf{TeX Gyre Pagella Math} these entries:
-
+
\begin{verbatim}
["plainname"]="TeXGyrePagellaMath-Regular",
["psname"]="texgyrepagellamathregular",
\end{verbatim}
-
+
As you can see the correct string for the comparision with \texttt{fontdata.psname} is in \verb+["plainname"]+ and not in \verb+["psname"]+. Don't ask me why. \texttt{luaotfload} seems to copy the infos around quite a lot. So when adapting the code to other fonts, test with various font names if it seems not to work.
\end{enumerate}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/combofont.doc.tlpobj new/tlpkg/tlpobj/combofont.doc.tlpobj
--- old/tlpkg/tlpobj/combofont.doc.tlpobj 2019-02-28 03:27:59.000000000 +0100
+++ new/tlpkg/tlpobj/combofont.doc.tlpobj 2019-06-09 01:38:35.000000000 +0200
@@ -1,6 +1,6 @@
name combofont.doc
category Package
-revision 44746
+revision 51348
shortdesc doc files of combofont
relocated 1
docfiles size=29
++++++ combofont.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tex/lualatex/combofont/combofont.sty new/tex/lualatex/combofont/combofont.sty
--- old/tex/lualatex/combofont/combofont.sty 2017-07-03 22:59:09.000000000 +0200
+++ new/tex/lualatex/combofont/combofont.sty 2019-06-08 23:43:09.000000000 +0200
@@ -1,21 +1,29 @@
+% !Mode:: "TeX:DE:UTF-8:Main"
+%28.05.2018
+\def\UlrikeFischer@package@ufcombofont@date{2019/06/08}\def\UlrikeFischer@package@ufcombofont@version{0.3}
+
\RequirePackage{xparse}
-\ProvidesExplPackage {combofont} {2017/07/03} {0.2}
+\ProvidesExplPackage {combofont} {\UlrikeFischer@package@ufcombofont@date}{\UlrikeFischer@package@ufcombofont@version}
{An EXPERIMENTAL package to add nfss-declaration of combo fonts to a luaLaTeX document}
% highly experimental! Comments to Ulrike Fischer. fischer@troubleshooting-tex.de
+\prop_if_exist:NT \g_msg_module_name_prop
+ {
+ \prop_gput:Nnn \g_msg_module_name_prop { ufcombo }{ combofont }
+ }
-\msg_new:nnn {combo} {need-luatex}
+\msg_new:nnn {ufcombo} {need-luatex}
{
The~ combofont~package~requires~LuaLaTeX.~Quitting.
}
-\msg_new:nnn {combo} {combofont-already-exists}
+\msg_new:nnn {ufcombo} {combofont-already-exists}
{
The~combofont~#1~has~already~been~set~up.~I~won't~overwrite~it
}
\sys_if_engine_luatex:F
{
- \msg_fatal:nn {combo} {need-luatex}
+ \msg_fatal:nn {ufcombo} {need-luatex}
\endinput
}
@@ -28,29 +36,29 @@
\tl_set:Nn\l_tmpa_tl { #2 }
\regex_replace_all:nnN {\#1} {\c{f@size}} \l_tmpa_tl
% \tl_show:N\l_tmpa_tl
- \seq_if_exist:cTF { l__combo_#1_basefonts_seq }
+ \seq_if_exist:cTF { l__ufcombo_#1_basefonts_seq }
{
- \msg_warning:nnn { combo} {combofont-already-exists} { #1 }
+ \msg_warning:nnn { ufcombo} {combofont-already-exists} { #1 }
}
{
- \seq_new:c { l__combo_#1_basefonts_seq }
- \seq_set_split:cnV { l__combo_#1_basefonts_seq } { , }\l_tmpa_tl
- %%\seq_show:c {l__combo_#1_basefonts_seq }
- \seq_new:c { l__combo_#1_combodesc_seq }
- \seq_set_from_clist:cn { l__combo_#1_combodesc_seq } { #3 }
- %%\seq_show:c { l__combo_#1_combodesc_seq }
- \__combo_build_combodesc:n { #1 }
+ \seq_new:c { l__ufcombo_#1_basefonts_seq }
+ \seq_set_split:cnV { l__ufcombo_#1_basefonts_seq } { , }\l_tmpa_tl
+ %%\seq_show:c {l__ufcombo_#1_basefonts_seq }
+ \seq_new:c { l__ufcombo_#1_combodesc_seq }
+ \seq_set_from_clist:cn { l__ufcombo_#1_combodesc_seq } { #3 }
+ %%\seq_show:c { l__ufcombo_#1_combodesc_seq }
+ \__ufcombo_build_combodesc:n { #1 }
}
}
-\cs_new:Nn \__combo_call_basefonts:n
+\cs_new:Nn \__ufcombo_call_basefonts:n
{
\int_zero:N \l_tmpa_int
- \seq_map_inline:cn {l__combo_#1_basefonts_seq}
+ \seq_map_inline:cn {l__ufcombo_#1_basefonts_seq}
{
\int_incr:N \l_tmpa_int
- \exp_args:Nc \font { l_combo_tmpfont_\int_to_roman:n{\l_tmpa_int}_tl } = ##1
+ \exp_args:Nc \font { l__ufcombo_tmpfont_\int_to_roman:n{\l_tmpa_int}_tl } = ##1
}
}
@@ -59,38 +67,38 @@
-\cs_new:Nn \__combo_build_combodesc:n
+\cs_new:Nn \__ufcombo_build_combodesc:n
{
- \tl_new:c { l__combo_#1_combodesc_tl }
- \tl_set:cx { l__combo_#1_combodesc_tl } { \tl_to_str:n { " } combo \tl_to_str:n { : }~ }
- \int_step_inline:nnnn { 1 } { 1 } { \seq_count:c { l__combo_#1_basefonts_seq } }
+ \tl_new:c { l__ufcombo_#1_combodesc_tl }
+ \tl_set:cx { l__ufcombo_#1_combodesc_tl } { \tl_to_str:n { " } combo \tl_to_str:n { : }~ }
+ \int_step_inline:nnnn { 1 } { 1 } { \seq_count:c { l__ufcombo_#1_basefonts_seq } }
{
- \tl_put_right:cn { l__combo_#1_combodesc_tl } { ##1~->~\fontid }
- \exp_args:Nnc \tl_put_right:cn { l__combo_#1_combodesc_tl }
+ \tl_put_right:cn { l__ufcombo_#1_combodesc_tl } { ##1~->~\fontid }
+ \exp_args:Nnc \tl_put_right:cn { l__ufcombo_#1_combodesc_tl }
{
- l_combo_tmpfont_\int_to_roman:n{##1}_tl
+ l__ufcombo_tmpfont_\int_to_roman:n{##1}_tl
}
- \tl_set:Nx\l_tmpa_tl { \seq_item:cn {l__combo_#1_combodesc_seq } {##1} }
+ \tl_set:Nx\l_tmpa_tl { \seq_item:cn {l__ufcombo_#1_combodesc_seq } {##1} }
\tl_if_empty:NF \l_tmpa_tl
{
- \tl_put_right:cx { l__combo_#1_combodesc_tl}
+ \tl_put_right:cx { l__ufcombo_#1_combodesc_tl}
{
- ,~ \seq_item:cn {l__combo_#1_combodesc_seq } {##1}
+ ,~ \seq_item:cn {l__ufcombo_#1_combodesc_seq } {##1}
}
}
- \tl_put_right:cx { l__combo_#1_combodesc_tl} {\tl_to_str:n{;}}
+ \tl_put_right:cx { l__ufcombo_#1_combodesc_tl} {\tl_to_str:n{;}}
}
- \tl_put_right:cx { l__combo_#1_combodesc_tl } { \tl_to_str:n { " } }
- %% \tl_show:c { l__combo_#1_combodesc_tl }
+ \tl_put_right:cx { l__ufcombo_#1_combodesc_tl } { \tl_to_str:n { " } }
+ %% \tl_show:c { l__ufcombo_#1_combodesc_tl }
}
-\DeclareSizeFunction{combo}{\__combo_sfcnt:}
+\DeclareSizeFunction{combo}{\__ufcombo_sfcnt:}
-\cs_new:Nn\__combo_sfcnt:
+\cs_new:Nn\__ufcombo_sfcnt:
{
- % \tl_show:c {l__combo_\use:c{mandatory@arg}_combodesc_tl}
- \__combo_call_basefonts:n { \mandatory@arg }
- \tl_set_eq:Nc \external@font { l__combo_\use:c{mandatory@arg}_combodesc_tl}
+ % \tl_show:c {l__ufcombo_\use:c{mandatory@arg}_combodesc_tl}
+ \__ufcombo_call_basefonts:n { \mandatory@arg }
+ \tl_set_eq:Nc \external@font { l__ufcombo_\use:c{mandatory@arg}_combodesc_tl}
}%
\tl_new:N\combodefaultfeat
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/combofont.tlpobj new/tlpkg/tlpobj/combofont.tlpobj
--- old/tlpkg/tlpobj/combofont.tlpobj 2019-02-28 03:27:59.000000000 +0100
+++ new/tlpkg/tlpobj/combofont.tlpobj 2019-06-09 01:38:36.000000000 +0200
@@ -1,6 +1,6 @@
name combofont
category Package
-revision 44746
+revision 51348
shortdesc Add NFSS-declarations of combo fonts to LuaLaTeX documents
relocated 1
longdesc This highly experimental package can be used to add
@@ -13,8 +13,10 @@
longdesc environment: You have been warned.
runfiles size=1
RELOC/tex/lualatex/combofont/combofont.sty
+catalogue-contact-repository https://github.com/u-fischer/combofont
+catalogue-contact-support https://github.com/u-fischer/combofont
catalogue-ctan /macros/luatex/latex/combofont
-catalogue-date 2017-07-03 18:05:12 +0200
+catalogue-date 2019-06-08 16:41:14 +0200
catalogue-license lppl1.3c
catalogue-topics luatex font-mgmt
-catalogue-version 0.2
+catalogue-version 0.3
++++++ comfortaa.doc.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/comfortaa/CHANGES new/doc/fonts/comfortaa/CHANGES
--- old/doc/fonts/comfortaa/CHANGES 2012-08-28 00:08:44.000000000 +0200
+++ new/doc/fonts/comfortaa/CHANGES 2019-06-25 23:32:27.000000000 +0200
@@ -1,28 +1,44 @@
-Changelog for version 1.1:
- - fix small caps series in TS1 encoding
+VERSION 3.2:
+ - Fix ligatures for hyphens
-Changelog for version 1.2:
- - clean comfortaa-fixlatin.etx
-
-Changelog for version 1.3:
- - fix comfortaa-fixglyphs.mtx
-
-Changelog for version 1.4:
- - remove "light" class option
- - fix documentation
- - add samples PDF
-
-Changelog for version 2.0:
- - complete rewrite of the fontinst driver file
- - rename .vf and .tfm files based on the pattern <font>-<encoding>
- - modify paths of the archive: documentation is now in
+VERSION 3.1:
+ - Fix OT1 encoding with slanted shape
+ - Fix packaging according to CTAN guidelines
+
+VERSION 3.0:
+ - Update .ttf files to version 3.001
+ - Complete rewrite of the TeX metric file generation (otftotfm is now
+ used instead of fontinst)
+ - Support for XeLaTeX and LuaLaTeX
+ - Drop faked smallcaps support
+ - Fix kerning with uppercase Greek diacritics
+ - Add "scaled" alias option
+
+VERSION 2.3:
+ - Update fonts to version 2.003
+
+VERSION 2.2:
+ - Update fonts to version 2.002
+
+VERSION 2.1:
+ - Fix bad weight substitution when using light weight and slanted shape
+
+VERSION 2.0:
+ - Complete rewrite of the fontinst driver file
+ - Rename .vf and .tfm files based on the pattern <font>-<encoding>
+ - Modify paths of the archive: documentation is now in
doc/fonts/comfortaa/ and sources in source/fonts/comfortaa/
-Changelog for version 2.1:
- - fix bad weight substitution when using light weight and slanted shape
+VERSION 1.4:
+ - Remove "light" class option
+ - Fix documentation
+ - Add samples PDF
+
+VERSION 1.3:
+ - Fix comfortaa-fixglyphs.mtx
-Changelog for version 2.2:
- - update fonts to version 2.002
+VERSION 1.2:
+ - Clean comfortaa-fixlatin.etx
-Changelog for version 2.2:
- - update fonts to version 2.003
\ No newline at end of file
+VERSION 1.1:
+ - Fix small caps series in TS1 encoding
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/comfortaa/README new/doc/fonts/comfortaa/README
--- old/doc/fonts/comfortaa/README 2012-08-28 00:08:44.000000000 +0200
+++ new/doc/fonts/comfortaa/README 2019-06-25 23:32:27.000000000 +0200
@@ -1,18 +1,16 @@
------------------------
- Comfortaa, version 2.3
+ Comfortaa, version 3.1
------------------------
-Comfortaa is a sans-serif font comfortable in every aspect designed by Jonas
-Aakerlund. This font, delivered under the OFL version 1.1, is available on
-Jonas's deviantArt web page at
-http://aajohan.deviantart.com/art/Comfortaa-font-105395949 as TrueType files.
+Comfortaa is a rounded geometric sans-serif type designed by Johan
+Aakerlund. The font, which includes three weights, is available on Johan's
+deviantArt web page as TTF-flavored OpenType files licensed under the OFL
+version 1.1.
-This package provides support for this font in LaTeX. It includes the original
-TrueType fonts, as well as Type 1 versions, converted for this package using
-FontForge for full support with Dvips.
-
-Installation and usage instructions are described in
-doc/latex/comfortaa/comfortaa.pdf.
+This package provides support for this font family in LaTeX, including XeLaTeX
+and LuaLaTeX. It includes the original OpenType fonts, as well as Type 1
+versions, converted for this package using FontForge for full support with LaTeX
+and Dvips.
This package is released under the LaTeX Project Public License, either version
1.3c or above, with the exception of the .ttf and .pfb files, released under the
Binary files old/doc/fonts/comfortaa/comfortaa-samples.pdf and new/doc/fonts/comfortaa/comfortaa-samples.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/comfortaa/comfortaa-samples.tex new/doc/fonts/comfortaa/comfortaa-samples.tex
--- old/doc/fonts/comfortaa/comfortaa-samples.tex 2011-08-27 00:22:42.000000000 +0200
+++ new/doc/fonts/comfortaa/comfortaa-samples.tex 1970-01-01 01:00:00.000000000 +0100
@@ -1,89 +0,0 @@
-%% comfortaa-samples.tex
-%% Copyright 2011 Mohamed El Morabity
-%
-% 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 Mohamed El Morabity
-%
-% This work consists of all files listed in manifest.txt.
-
-\documentclass{article}
-
-\usepackage[greek,russian,francais,american]{babel}
-\usepackage{comfortaa}
-\usepackage[LGR,T2A,T1,OT1]{fontenc}
-\usepackage[utf8x]{inputenc}
-\usepackage{microtype}
-\usepackage{textcomp}
-
-\newcommand{\latinSample}{%
- \foreignlanguage{francais}{%
- Tous les êtres humains naissent libres et égaux en dignité et en droits. Ils sont doués de raison et de conscience et doivent agir les uns envers les autres dans un esprit de fraternité.%
- }%
-}
-
-\newcommand{\cyrillicSample}{%
- \foreignlanguage{russian}{%
- ÐÑе лÑЎО ÑПжЎаÑÑÑÑ ÑвПбПЎМÑЌО О ÑавМÑЌО в ÑвПеЌ ЎПÑÑПОМÑÑве О пÑаваÑ
. ÐМО ÐœÐ°ÐŽÐµÐ»ÐµÐœÑ ÑазÑЌПЌ О ÑПвеÑÑÑÑ Ðž ÐŽÐŸÐ»Ð¶ÐœÑ Ð¿ÐŸÑÑÑпаÑÑ Ð² ПÑМПÑеМОО ÐŽÑÑг ÐŽÑÑга в ÐŽÑÑ
е бÑаÑÑÑва.%
- }%
-}
-
-\newcommand{\greekSample}{%
- \foreignlanguage{greek}{%
- 'Îλοι οι άΜΞÏÏÏοι γεΜΜιοÏÎœÏαι ελεÏΞεÏοι και ίÏοι ÏÏηΜ αΟιοÏÏÎÏεια και Ïα ΎικαιÏΌαÏα. ÎίΜαι ÏÏοικιÏÎŒÎΜοι Όε λογική και ÏÏ
ΜείΎηÏη, και οÏείλοÏ
Îœ Μα ÏÏ
ÎŒÏεÏιÏÎÏοΜÏαι ΌεÏÎ±ÎŸÏ ÏοÏ
Ï ÎŒÎµ ÏΜεÏΌα αΎελÏοÏÏΜηÏ.%
- }%
-}
-
-\newcommand{\miscSample}{%
- 0123456789 fi fl \textperthousand{} \textcopyright{} \textregistered{} \texttrademark{} \texteuro{} \textsterling{} \textyen%
-}
-
-\newcommand{\fontSample}[2]{%
- {\usefont{T1}{fco}{#1}{#2} \latinSample}
-
- {\usefont{T2A}{fco}{#1}{#2} \cyrillicSample}
-
- {\usefont{LGR}{fco}{#1}{#2} \greekSample}%
-
- {\fontfamily{fco}\fontseries{#1}\fontshape{#2}\selectfont\miscSample}\\%
-}
-
-\begin{document}
-
-\section*{Comfortaa Light}
-
-\fontSample{l}{n}
-
-\fontSample{l}{sl}
-
-\fontSample{l}{sc}
-
-\fontSample{l}{scsl}
-
-\section*{Comfortaa Regular}
-
-\fontSample{m}{n}
-
-\fontSample{m}{sl}
-
-\fontSample{m}{sc}
-
-\fontSample{m}{scsl}
-
-\section*{Comfortaa Bold}
-
-\fontSample{b}{n}
-
-\fontSample{b}{sl}
-
-\fontSample{b}{sc}
-
-\fontSample{b}{scsl}
-
-\end{document}
Binary files old/doc/fonts/comfortaa/comfortaa.pdf and new/doc/fonts/comfortaa/comfortaa.pdf differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/comfortaa/comfortaa.tex new/doc/fonts/comfortaa/comfortaa.tex
--- old/doc/fonts/comfortaa/comfortaa.tex 2012-08-28 00:08:44.000000000 +0200
+++ new/doc/fonts/comfortaa/comfortaa.tex 1970-01-01 01:00:00.000000000 +0100
@@ -1,226 +0,0 @@
-%% comfortaa.tex
-%% Copyright 2011, 2012 Mohamed El Morabity
-%
-% 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 Mohamed El Morabity
-%
-% This work consists of all files listed in manifest.txt.
-
-\documentclass{article}
-
-\usepackage[american]{babel}
-\usepackage{booktabs}
-\usepackage[default]{comfortaa}
-\usepackage{microtype}
-\usepackage{multirow}
-\usepackage{path}
-\usepackage{varioref}
-\usepackage[colorlinks]{hyperref}
-
-\hypersetup{%
- pdftitle={LaTeX support for Comfortaa},%
- pdfauthor={Mohamed El Morabity}%
-}%
-
-\newcommand{\acronym}[1]{\textsc{\lowercase{#1}}}
-\newcommand{\code}{\texttt}
-\newcommand{\command}{\texttt}
-\newcommand{\email}[1]{\href{mailto:#1}{\nolinkurl{#1}}}
-\newcommand{\name}{}
-\newcommand{\package}{\texttt}
-\newcommand{\parameter}[1]{\textnormal{\textit{#1}}}
-\newcommand{\program}{}
-
-\title{\LaTeX{} support for Comfortaa\\Version~2.3}
-
-\author{Mohamed \name{El~Morabity}\\\email{melmorabity@fedoraproject.org}}
-
-\begin{document}
-
-\maketitle
-
-\tableofcontents
-
-\section{Introduction}
-
-Comfortaa is a sans-serif font comfortable in every aspect designed by Johan
-\name{Aakerlund}. This font, which includes three weights (see
-figure~\vref{styles}), is available on Johan's deviantArt web
-page~\cite{comfortaa} as TrueType files licensed under the \acronym{OFL}
-version~1.1.
-
-\begin{figure}
- \centering
- {%
- \fcofamily%
- {\fontseries{l}\selectfont Comfortaa Light}\\
- Comfortaa Regular\\
- {\bfseries Comfortaa Bold}%
- }
- \caption{Available styles for Comfortaa}
- \label{styles}
-\end{figure}
-
-This package provides support for this font in \LaTeX{}. It includes the
-original TrueType fonts, as well as Type~1 versions, converted for this package
-using \program{FontForge} for full support with \program{Dvips}.
-
-\section{Installation}
-
-These directions assume that your \TeX{} distribution is
-\acronym{TDS}-compliant.
-
-Once the \path|comfortaa.zip| archive extracted:
-\begin{enumerate}
-\item Copy \path|doc/|, \path|fonts/|, \path|source/|, and \path|tex/|
- directories to your \path|texmf/| directory (either your local or global
- \path|texmf/| directory).
-\item Run \command{mktexlsr} to refresh the file name database and make \TeX{}
- aware of the new files.
-\item Run \command{updmap --enable Map comfortaa.map} to make \program{Dvips},
- \program{dvipdf} and \program{pdf\TeX} aware of the new fonts.
-\end{enumerate}
-
-Note that this package requires the \package{keyval}~\cite{keyval} and
-\package{slantsc}~\cite{slantsc} (to handle italic/slanted small caps) ones to
-work.
-
-\section{Usage}
-
-\subsection{Calling Comfortaa}
-
-You can use the Comfortaa font in a \LaTeX{} document by adding the command
-\begin{verbatim}
-\usepackage{comfortaa}
-\end{verbatim}
-to the preamble. The package supplies the \code{\char`\\fcofamily} command to
-switch the current font to Comfortaa.
-
-\subsection{Options}
-
-\subsubsection{Comfortaa as default (sans-serif) font}
-
-You can set \LaTeX{} to use Comfortaa as standard font throughout the whole
-document by passing the \code{default} option to the package:
-\begin{verbatim}
-\usepackage[default]{comfortaa}
-\end{verbatim}
-To set Comfortaa as default sans-serif only:
-\begin{verbatim}
-\usepackage[defaultsans]{comfortaa}
-\end{verbatim}
-
-\subsubsection{Font scaling}
-
-The font can be up- and downscaled by any factor. This can be used to make
-Comfortaa more friendly when used in company with other type faces, e.g., to
-adapt the x-height. The package option \code{scale=\parameter{ratio}} will scale
-the font according to \parameter{ratio} (1.0 by default), for example:
-\begin{verbatim}
-\usepackage[scale=0.95]{comfortaa}
-\end{verbatim}
-
-\subsection{Encodings}
-
-The following encodings are supported:
-\begin{description}
-\item[Latin] OT1, T1, TS1 (partial)
-\item[Cyrillic] T2A, T2B, T2C, X2
-\item[Greek] LGR (monotonic only)
-\end{description}
-To use one or another encoding, give the \LaTeX{} name to the \package{fontenc}
-package as usual, as in
-\begin{verbatim}
-\usepackage[T1]{fontenc}
-\usepackage{comfortaa}
-\end{verbatim}
-
-Note that, as usual with OT1 encoded fonts, kerning with accented characters is
-treated poorly, if at all. Note difference in kerning between these two encoding
-in table~\vref{kerning}.
-\begin{table}
-\centering
- \begin{tabular}{ll}
- \toprule
- OT1-encoded&{\fcofamily Te T\'e}\\
- \midrule
- T1-encoded&{\fcofamily\fontencoding{T1}\selectfont Te T\'e}\\
- \bottomrule
- \end{tabular}
- \caption{Kerning with OT1 and T1 encodings}
- \label{kerning}
-\end{table}
-It is therefore advised to always use the Comfortaa fonts in any encoding than
-OT1 when typing diacritics.
-
-\subsection{Available weights and variants}
-
-Table~\vref{nfss} lists the available font series and shapes with their
-\acronym{NFSS} classification. Parenthesized combinations are provided via
-substitutions.
-\begin{table}
- \centering
- \begin{tabular}{llll}
- \toprule
- family&encoding&series&shape\\
- \midrule
- \multirow{4}{*}{fco}&OT1,T1,&\multirow{4}{*}{l, m, b (bx)}&\multirow{3}{*}{n, sl (it), sc, scsl (scit)}\\
- &T2A, T2B, T2C, X2,&&\\
- &LGR&&\\
- \cmidrule{2-2}
- \cmidrule{4-4}
- &TS1&&n, sl (it)\\
- \bottomrule
- \end{tabular}
- \caption{Available font series and shapes for Comfortaa}
- \label{nfss}
-\end{table}
-Notice that the slanted shapes are faked ones, as well as the small capitals
-(reduced to 80\%).
-
-\section{Known bugs and improvements}
-
-Please send bug reports and suggestions about the Comfortaa \LaTeX{} support to
-\href{mailto:melmorabity@fedoraproject.org}{Mohamed \name{El~Morabity}}, not to
-Johan \name{Aakerlund}. Johan only distributes the TrueType font files
-themselves.
-
-\subsection{Small dotless ``j''}
-
-The Comfortaa font files do not provide any dotless ``j'' glyph. This \LaTeX{}
-support provides a faked one ({\fcofamily\j}), available by typing
-\code{\char`\\j}, and built using the \command{t1dotlessj} command (from
-LCDF~Typetools~\cite{lcdf}).
-
-\subsection{Searching for words containing ligatures in \acronym{PDF} documents}
-
-Searching for words typeset in Comfortaa and containing ligatures (such as
-``fi'' or ``fl'') in \acronym{PDF} documents is currently only possible if the
-\acronym{PDF} was generated using \program{pdf\TeX}~1.40 or above.
-
-\section{License}
-
-This package is released under the \LaTeX{} project public license, either
-version~1.3c or above~\cite{lppl}. Anyway both the TrueType and Type~1 files are
-delivered under the Open Font License version~1.1~\cite{ofl}.
-
-\begin{thebibliography}{9}
-\bibitem{comfortaa}
- \url{http://aajohan.deviantart.com/art/Comfortaa-font-105395949}
-\bibitem{keyval}
- \url{http://www.ctan.org/tex-archive/macros/latex/required/graphics/}
-\bibitem{slantsc}
- \url{http://www.ctan.org/tex-archive/macros/latex/contrib/slantsc/}
-\bibitem{lcdf} \url{http://www.lcdf.org/type/}
-\bibitem{lppl} \url{http://www.latex-project.org/lppl/lppl-1-3c.html}
-\bibitem{ofl} \url{http://scripts.sil.org/OFL_web}
-\end{thebibliography}
-
-\end{document}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/doc/fonts/comfortaa/manifest.txt new/doc/fonts/comfortaa/manifest.txt
--- old/doc/fonts/comfortaa/manifest.txt 2012-08-28 00:08:44.000000000 +0200
+++ new/doc/fonts/comfortaa/manifest.txt 1970-01-01 01:00:00.000000000 +0100
@@ -1,254 +0,0 @@
-./source/fonts/comfortaa/comfortaa-fixgreek.mtx
-./source/fonts/comfortaa/comfortaa-dotlessj.etx
-./source/fonts/comfortaa/comfortaa-02.etx
-./source/fonts/comfortaa/comfortaa-fixtextcomp.mtx
-./source/fonts/comfortaa/comfortaa-drv.tex
-./source/fonts/comfortaa/comfortaa-map.tex
-./source/fonts/comfortaa/comfortaa-fixlatin.mtx
-./source/fonts/comfortaa/Makefile
-./source/fonts/comfortaa/comfortaa-01.etx
-./source/fonts/comfortaa/comfortaa-03.etx
-./source/fonts/comfortaa/comfortaa-fixcyrillic.mtx
-./source/fonts/comfortaa/comfortaa-diacritics.mtx
-./source/fonts/comfortaa/ttf2type1.pe
-./fonts/afm/public/comfortaa/Comfortaa-Light.afm
-./fonts/afm/public/comfortaa/Comfortaa-Light-LCDFJ.afm
-./fonts/afm/public/comfortaa/Comfortaa-Regular-LCDFJ.afm
-./fonts/afm/public/comfortaa/Comfortaa-Bold.afm
-./fonts/afm/public/comfortaa/Comfortaa-Bold-LCDFJ.afm
-./fonts/afm/public/comfortaa/Comfortaa-Regular.afm
-./fonts/map/dvips/comfortaa/comfortaa.map
-./fonts/truetype/public/comfortaa/Comfortaa-Regular.ttf
-./fonts/truetype/public/comfortaa/Comfortaa-Light.ttf
-./fonts/truetype/public/comfortaa/Comfortaa-Bold.ttf
-./fonts/type1/public/comfortaa/Comfortaa-Bold-LCDFJ.pfb
-./fonts/type1/public/comfortaa/Comfortaa-Regular.pfb
-./fonts/type1/public/comfortaa/Comfortaa-Light-LCDFJ.pfb
-./fonts/type1/public/comfortaa/Comfortaa-Bold.pfb
-./fonts/type1/public/comfortaa/Comfortaa-Light.pfb
-./fonts/type1/public/comfortaa/Comfortaa-Regular-LCDFJ.pfb
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-t2c.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-t2a.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-SmallCaps-x2.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-ot1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-lgr.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-t1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-SmallCaps-lgr.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-t2b.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-t2c.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-t1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-t2a.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-ts1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-ot1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-t2a.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-ot1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-ts1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-t2b.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-t2a.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-SmallCaps-t2b.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-t2a.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-t2c.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-lgr.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-SmallCaps-t1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-t2c.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-ts1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-ts1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-x2.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-t1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-SmallCaps-ot1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-SmallCaps-t1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-t2a.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-SmallCaps-t2c.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-t2c.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-t1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-ot1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-SmallCaps-t2a.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-x2.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-t1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-t2b.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-t2c.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-x2.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-t1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-SmallCaps-t2c.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-t2c.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-ot1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-ts1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-SmallCaps-t2c.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-SmallCaps-x2.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-t2b.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-t1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-SmallCaps-t2a.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-t1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-t2a.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-SmallCaps-t2b.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-SmallCaps-x2.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-lgr.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-SmallCaps-lgr.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-lgr.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-x2.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-SmallCaps-t1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-t2b.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-SmallCaps-lgr.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-x2.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-ot1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-lgr.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-t2a.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-t2b.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-ot1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-SmallCaps-ot1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-ot1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-x2.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-t2a.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-SmallCaps-t2b.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-ts1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-SmallCaps-t2a.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-t2c.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-t2c.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-t1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-t2b.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-x2.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-t2b.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-t2b.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-ot1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-x2.vf
-./fonts/vf/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-lgr.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-x2.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-lgr.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-SmallCaps-ot1.vf
-./fonts/vf/public/comfortaa/Comfortaa-Regular-lgr.vf
-./fonts/vf/public/comfortaa/Comfortaa-Light-lgr.vf
-./fonts/tfm/public/comfortaa/Comfortaa-Light-ts1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-t1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-t2a.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-x2.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-ot1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-t2b.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-01.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-dotlessj.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-t2c.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-x2.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-ot1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-x2.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-t1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-lgr.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-03.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-ot1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-t2a.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-SmallCaps-t2c.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-t2a.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-SmallCaps-t2a.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-01.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-x2.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-SmallCaps-t2b.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-t2b.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-SmallCaps-x2.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-t2c.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-ot1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-ts1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-03.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-t2c.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-t2a.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-02.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-SmallCaps-ot1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-t1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-SmallCaps-x2.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-t2b.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-SmallCaps-ot1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-ts1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-t1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-01.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-lgr.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-t2b.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-ot1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-SmallCaps-t1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-dotlessj.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-03.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-SmallCaps-t1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-x2.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-t2c.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-t1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-SmallCaps-lgr.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-SmallCaps-lgr.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-t2a.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-lgr.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-ot1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-dotlessj.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-SmallCaps-x2.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-01.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-t2b.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-ts1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-02.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-01.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-lgr.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-t2c.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-lgr.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-02.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-ot1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-02.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-t2b.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-SmallCaps-t2b.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-SmallCaps-t2c.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-lgr.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-lgr.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-t2b.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-SmallCaps-t2a.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-t2c.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-dotlessj.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-ts1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-t1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-t2a.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-02.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-SmallCaps-t2b.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-SmallCaps-ot1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-x2.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-SmallCaps-lgr.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-SmallCaps-t2c.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-02.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-SmallCaps-t2a.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-t1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-ts1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-t2c.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-x2.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-03.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-t2a.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-t2c.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-03.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-ot1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-ot1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-t2a.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-t2c.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-01.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-lgr.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-dotlessj.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-SmallCaps-t1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-SmallCaps-t2b.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Light-Slanted-t2b.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-03.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-t1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-t2a.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-t1.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-Slanted-SmallCaps-x2.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-lgr.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Regular-Slanted-SmallCaps-x2.tfm
-./fonts/tfm/public/comfortaa/Comfortaa-Bold-dotlessj.tfm
-./fonts/enc/dvips/comfortaa/comfortaa-02.enc
-./fonts/enc/dvips/comfortaa/comfortaa-dotlessj.enc
-./fonts/enc/dvips/comfortaa/comfortaa-01.enc
-./fonts/enc/dvips/comfortaa/comfortaa-03.enc
-./tex/latex/comfortaa/x2fco.fd
-./tex/latex/comfortaa/t2bfco.fd
-./tex/latex/comfortaa/comfortaa.sty
-./tex/latex/comfortaa/t2cfco.fd
-./tex/latex/comfortaa/lgrfco.fd
-./tex/latex/comfortaa/ts1fco.fd
-./tex/latex/comfortaa/t2afco.fd
-./tex/latex/comfortaa/t1fco.fd
-./tex/latex/comfortaa/ot1fco.fd
-./doc/fonts/comfortaa/comfortaa.tex
-./doc/fonts/comfortaa/comfortaa-samples.tex
-./doc/fonts/comfortaa/README
-./doc/fonts/comfortaa/CHANGES
-./doc/fonts/comfortaa/comfortaa.pdf
-./doc/fonts/comfortaa/comfortaa-samples.pdf
-./README
-./manifest.txt
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/tlpkg/tlpobj/comfortaa.doc.tlpobj new/tlpkg/tlpobj/comfortaa.doc.tlpobj
--- old/tlpkg/tlpobj/comfortaa.doc.tlpobj 2019-02-28 03:27:59.000000000 +0100
+++ new/tlpkg/tlpobj/comfortaa.doc.tlpobj 2020-03-24 01:57:02.000000000 +0100
@@ -1,13 +1,10 @@
name comfortaa.doc
category Package
-revision 27536
+revision 54512
shortdesc doc files of comfortaa
relocated 1
-docfiles size=103
+docfiles size=89
RELOC/doc/fonts/comfortaa/CHANGES
RELOC/doc/fonts/comfortaa/README
RELOC/doc/fonts/comfortaa/comfortaa-samples.pdf
- RELOC/doc/fonts/comfortaa/comfortaa-samples.tex
RELOC/doc/fonts/comfortaa/comfortaa.pdf
- RELOC/doc/fonts/comfortaa/comfortaa.tex
- RELOC/doc/fonts/comfortaa/manifest.txt
++++++ comfortaa.tar.xz ++++++
++++ 22245 lines of diff (skipped)