From 32a229eb318e40b0fc6368e270b2cf21b8d59549 Mon Sep 17 00:00:00 2001 From: Context Git Mirror Bot Date: Mon, 7 Jul 2014 18:15:04 +0200 Subject: 2014-07-07 17:50:00 --- tex/context/base/cont-new.mkiv | 2 +- tex/context/base/context-version.pdf | Bin 4431 -> 4436 bytes tex/context/base/context.mkiv | 2 +- tex/context/base/data-tre.lua | 24 ++-- tex/context/base/page-lay.mkiv | 7 +- tex/context/base/publ-ini.mkiv | 50 +++++--- tex/context/base/publ-jrn.lua | 138 +++++++++++++++++++++ tex/context/base/status-files.pdf | Bin 24897 -> 24922 bytes tex/context/base/status-lua.pdf | Bin 249610 -> 249917 bytes tex/generic/context/luatex/luatex-fonts-merged.lua | 2 +- 10 files changed, 194 insertions(+), 31 deletions(-) create mode 100644 tex/context/base/publ-jrn.lua (limited to 'tex') diff --git a/tex/context/base/cont-new.mkiv b/tex/context/base/cont-new.mkiv index f0977ee79..c21e50c86 100644 --- a/tex/context/base/cont-new.mkiv +++ b/tex/context/base/cont-new.mkiv @@ -11,7 +11,7 @@ %C therefore copyrighted by \PRAGMA. See mreadme.pdf for %C details. -\newcontextversion{2014.07.06 22:50} +\newcontextversion{2014.07.07 17:48} %D This file is loaded at runtime, thereby providing an excellent place for %D hacks, patches, extensions and new features. diff --git a/tex/context/base/context-version.pdf b/tex/context/base/context-version.pdf index 7e082ed9e..171f98b51 100644 Binary files a/tex/context/base/context-version.pdf and b/tex/context/base/context-version.pdf differ diff --git a/tex/context/base/context.mkiv b/tex/context/base/context.mkiv index 60e0f18c5..2e5cc632b 100644 --- a/tex/context/base/context.mkiv +++ b/tex/context/base/context.mkiv @@ -28,7 +28,7 @@ %D up and the dependencies are more consistent. \edef\contextformat {\jobname} -\edef\contextversion{2014.07.06 22:50} +\edef\contextversion{2014.07.07 17:48} \edef\contextkind {beta} %D For those who want to use this: diff --git a/tex/context/base/data-tre.lua b/tex/context/base/data-tre.lua index 940701c3f..044e205c5 100644 --- a/tex/context/base/data-tre.lua +++ b/tex/context/base/data-tre.lua @@ -6,18 +6,18 @@ if not modules then modules = { } end modules ['data-tre'] = { license = "see context related readme files" } --- tree://e:/temporary/mb-mp/**/drawing.jpg" --- tree://e:/temporary/mb-mp/**/Drawing.jpg" --- tree://t:./**/tufte.tex" --- tree://t:/./**/tufte.tex" --- tree://t:/**/tufte.tex" --- dirlist://e:/temporary/mb-mp/**/drawing.jpg" --- dirlist://e:/temporary/mb-mp/**/Drawing.jpg" --- dirlist://e:/temporary/mb-mp/**/just/some/place/drawing.jpg" --- dirlist://e:/temporary/mb-mp/**/images/drawing.jpg" --- dirlist://e:/temporary/mb-mp/**/images/drawing.jpg?option=fileonly" --- dirlist://///storage-2/resources/mb-mp/**/drawing.jpg" --- dirlist://e:/**/drawing.jpg" +-- tree://e:/temporary/mb-mp/**/drawing.jpg +-- tree://e:/temporary/mb-mp/**/Drawing.jpg +-- tree://t:./**/tufte.tex +-- tree://t:/./**/tufte.tex +-- tree://t:/**/tufte.tex +-- dirlist://e:/temporary/mb-mp/**/drawing.jpg +-- dirlist://e:/temporary/mb-mp/**/Drawing.jpg +-- dirlist://e:/temporary/mb-mp/**/just/some/place/drawing.jpg +-- dirlist://e:/temporary/mb-mp/**/images/drawing.jpg +-- dirlist://e:/temporary/mb-mp/**/images/drawing.jpg?option=fileonly +-- dirlist://///storage-2/resources/mb-mp/**/drawing.jpg +-- dirlist://e:/**/drawing.jpg local find, gsub, lower = string.find, string.gsub, string.lower local basename, dirname, joinname = file.basename, file.dirname, file .join diff --git a/tex/context/base/page-lay.mkiv b/tex/context/base/page-lay.mkiv index ccb60f1e8..f25316c63 100644 --- a/tex/context/base/page-lay.mkiv +++ b/tex/context/base/page-lay.mkiv @@ -1,4 +1,4 @@ -%D \module + %D \module %D [ file=page-lay, %D version=2000.10.20, % copied from main-001 %D title=\CONTEXT\ Page Macros, @@ -1491,6 +1491,11 @@ \definepapersize [A3plus] [\c!width=329mm,\c!height=483mm] +%D For Alan: + +\definepapersize [business] [\c!width=85mm,\c!height=55mm] +\definepapersize [businessUS] [\c!width=3.5in,\c!height=2in] + %D We can now default to a reasonable size. We match the print %D paper size with the typeset paper size. This setting should %D come after the first layout specification (already done). diff --git a/tex/context/base/publ-ini.mkiv b/tex/context/base/publ-ini.mkiv index bf8c29363..7f89e306e 100644 --- a/tex/context/base/publ-ini.mkiv +++ b/tex/context/base/publ-ini.mkiv @@ -43,6 +43,7 @@ \registerctxluafile{publ-ini}{1.001} \registerctxluafile{publ-oth}{1.001} % this could become an option \registerctxluafile{publ-fnd}{1.001} % new method (for the moment only local) +\registerctxluafile{publ-jrn}{1.001} \unprotect @@ -466,8 +467,8 @@ [\s!btx] \setuplist - [\s!btx]% - [\c!state=\v!start]% + [\s!btx] + [\c!state=\v!start] \appendtoks \ifx\currentbtxrenderingparent\empty @@ -515,21 +516,29 @@ \let\completelistofpublications\completebtxrendering \let\placelistofpublications \placebtxrendering -\def\publ_place_list_check_criterium - {\edef\currentbtxcriterium{\btxrenderingparameter\c!criterium}% \v!cite will become \s!cite - \ifx\currentbtxcriterium\empty - \let\currentbtxcriterium\v!previous - \else\ifx\currentbtxcriterium\v!cite - \let\currentbtxcriterium\v!here - \fi\fi} +\newtoks\everybtxlistrendering + +\appendtoks + \let\currentlist\s!btx + \let\currentbtxlist\currentbtxrendering + % + \edef\currentbtxcriterium{\btxrenderingparameter\c!criterium}% \v!cite will become \s!cite + \ifx\currentbtxcriterium\empty + \let\currentbtxcriterium\v!previous + \else\ifx\currentbtxcriterium\v!cite + \let\currentbtxcriterium\v!here + \fi\fi + % + \iflocation + \letinteractionparameter\c!style\empty + \fi +\to \everybtxlistrendering \def\publ_place_list_complete[#1][#2]% title might become obsolete, just headtext {\begingroup \edef\currentbtxrendering{#1}% \setupcurrentbtxrendering[#2]% - \let\currentlist\s!btx - \let\currentbtxlist\currentbtxrendering - \publ_place_list_check_criterium + \the\everybtxlistrendering \edef\currentbtxrenderingtitle{\btxrenderingparameter\c!title}% \ifx\currentbtxrenderingtitle\empty \normalexpanded{\startnamedsection[\v!chapter][\c!reference=\currentbtxrendering,\c!title={\headtext{\currentbtxrendering}}]}% @@ -544,9 +553,7 @@ {\begingroup \edef\currentbtxrendering{#1}% \setupcurrentbtxrendering[#2]% - \let\currentlist\s!btx - \let\currentbtxlist\currentbtxrendering - \publ_place_list_check_criterium + \the\everybtxlistrendering \publ_place_list_indeed \endgroup} @@ -1030,6 +1037,19 @@ \stopcontextdefinitioncode +%D Journals + +\unexpanded\def\btxloadjournallist [#1]{\ctxcommand{btxloadjournallist("#1")}} +\unexpanded\def\btxsavejournallist [#1]{\ctxcommand{btxsavejournallist("#1")}} +\unexpanded\def\btxaddjournal [#1][#2]{\ctxcommand{btxaddjournal("#1"."#2")}} + \def\btxexpandedjournal #1{\ctxcommand{btxexpandedjournal("#1")}} % \unexpanded ? + \def\btxabbreviatedjournal#1{\ctxcommand{btxabbreviatedjournal("#1")}} % \unexpanded ? + +% \btxloadjournallist[list.txt] % Foo Journal of Bars = FBJ \n .... +% +% \btxexpandedjournal[fbj] +% \btxabbreviatedjournal[foo journal of bars] + %D Defaults: \setupbtxrendering diff --git a/tex/context/base/publ-jrn.lua b/tex/context/base/publ-jrn.lua new file mode 100644 index 000000000..31d618dd6 --- /dev/null +++ b/tex/context/base/publ-jrn.lua @@ -0,0 +1,138 @@ +if not modules then modules = { } end modules ['publ-jrn'] = { + version = 1.001, + comment = "this module part of publication support", + author = "Hans Hagen, PRAGMA-ADE, Hasselt NL", + copyright = "PRAGMA ADE / ConTeXt Development Team", + license = "see context related readme files" +} + +-- require("char-utf") + +-- Abhandlungen aus dem Westfälischen Museum für Naturkunde = Abh. Westfäl. Mus. Nat.kd. +-- Abhandlungen der Naturforschenden Gesellschaft in Zürich = Abh. Nat.forsch. Ges. Zür. +-- Abhandlungen des Naturwissenschaftlichen Vereins zu Bremen = Abh. Nat.wiss. Ver. Bremen + +local find = string.find +local P, C, S, Cs, lpegmatch, lpegpatterns = lpeg.P, lpeg.C, lpeg.S, lpeg.Cs, lpeg.match, lpeg.patterns + +local lower = characters.lower + +local report_journals = logs.reporter("publications","journals") + +local journals = { } +publications.journals = journals + +local expansions = { } +local abbreviations = { } +local nofexpansions = 0 +local nofabbreviations = 0 + +local valid = 1 - S([[ ."':;,-]]) +local pattern = Cs((valid^1 + P(1)/"")^1) + +local function simplify(name) + -- we have utf but it doesn't matter much if we lower the bytes + return name and lower(lpegmatch(pattern,name)) or name +end + +local function add(expansion,abbreviation) + if expansion and abbreviation then + local se = simplify(expansion) + local sa = simplify(abbreviation) + if not expansions[sa] then + expansions[sa] = expansion + nofexpansions = nofexpansions + 1 + end + if not abbreviations[se] then + abbreviations[se] = abbreviation + nofabbreviations = nofabbreviations + 1 + end + end +end + +local whitespace = lpegpatterns.whitespace^0 +local separator = whitespace * lpeg.P("=") * whitespace +local endofline = lpegpatterns.space^0 * (lpegpatterns.newline + P(-1)) +local splitter = whitespace * C((1-separator)^1) * separator * C((1-endofline)^1) +local pattern = (splitter / add)^0 + +function journals.load(filename) + if not filename then + return + end-- error + if file.suffix(filename,"txt") then + local data = io.loaddata(filename) + if type(data) ~= "string" then + return + elseif find(data,"=") then + -- expansion = abbreviation + lpegmatch(pattern,data) + end + elseif file.suffix(filename,"lua") then + local data = table.load(filename) + if type(data) ~= "table" then + return + else + local de = data.expansions + local da = data.abbreviations + if de and da then + -- { expansions = { a = e }, abbreviations = { e = a } } + if next(expansions) then + table.merge(expansions,de) + else + expansions = de + end + if next(abbreviations) then + table.merge(abbreviations,da) + else + abbreviations = da + end + elseif #data > 0 then + -- { expansion, abbreviation }, ... } + for i=1,#data do + local d = d[i] + add(d[1],d[2]) + end + else + -- { expansion = abbreviation, ... } + for expansion, abbreviation in data do + add(expansion,abbreviation) + end + end + end + end + report_journals("file %a loaded, %s expansions, %s abbreviations",filename,nofexpansions,nofabbreviations) +end + +function journals.save(filename) + table.save(filename,{ expansions = expansions, abbreviations = abbreviations }) +end + +function journals.add(expansion,abbreviation) + add(expansion,abbreviation) +end + +function journals.expanded(name) + local s = simplify(name) + return expansions[s] or expansions[simplify(abbreviations[s])] or name +end + +function journals.abbreviated(name) + local s = simplify(name) + return abbreviations[s] or abbreviations[simplify(expansions[s])] or name +end + +commands.btxloadjournallist = journals.load +commands.btxsavejournallist = journals.save +commands.btxaddjournal = function(...) context(journals.add(...)) end +commands.btxexpandedjournal = function(name) context(journals.expanded(name)) end +commands.btxabbreviatedjournal = function(name) context(journals.abbreviated(name)) end + +-- journals.load("e:/tmp/journals.txt") +-- journals.save("e:/tmp/journals.lua") + +-- inspect(journals.expanded ("Z. Ökol. Nat.schutz")) +-- inspect(journals.abbreviated("Z. Ökol. Nat. schutz")) + +typesetters.manipulators.methods.expandedjournal = journals.expanded +typesetters.manipulators.methods.abbreviatedjournal = journals.abbreviated diff --git a/tex/context/base/status-files.pdf b/tex/context/base/status-files.pdf index 85d00dfa0..a37c74d32 100644 Binary files a/tex/context/base/status-files.pdf and b/tex/context/base/status-files.pdf differ diff --git a/tex/context/base/status-lua.pdf b/tex/context/base/status-lua.pdf index b0160abbc..6f309ed57 100644 Binary files a/tex/context/base/status-lua.pdf and b/tex/context/base/status-lua.pdf differ diff --git a/tex/generic/context/luatex/luatex-fonts-merged.lua b/tex/generic/context/luatex/luatex-fonts-merged.lua index 2f26be70e..ea3a8cc12 100644 --- a/tex/generic/context/luatex/luatex-fonts-merged.lua +++ b/tex/generic/context/luatex/luatex-fonts-merged.lua @@ -1,6 +1,6 @@ -- merged file : luatex-fonts-merged.lua -- parent file : luatex-fonts.lua --- merge date : 07/06/14 22:50:12 +-- merge date : 07/07/14 17:48:35 do -- begin closure to overcome local limits and interference -- cgit v1.2.3