From 48d978962d4fbd78c9309582c0eeadeb9c69b835 Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Thu, 30 May 2019 13:12:19 -0400 Subject: [PATCH 01/11] Fix typo --- tex/gregoriotex-common.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tex/gregoriotex-common.tex b/tex/gregoriotex-common.tex index 1e582a511..40c5b6f06 100644 --- a/tex/gregoriotex-common.tex +++ b/tex/gregoriotex-common.tex @@ -17,7 +17,7 @@ % You should have received a copy of the GNU General Public License % along with Gregorio. If not, see . -\gre@declarefileversion{gregoriotex-commonx.tex}{5.2.1}% GREGORIO_VERSION +\gre@declarefileversion{gregoriotex-common.tex}{5.2.1}% GREGORIO_VERSION %%%%%%%%% From 64856ffda147599bc1410388683757e4fc0701e3 Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Thu, 30 May 2019 13:15:15 -0400 Subject: [PATCH 02/11] Remove errors on obsolete distances Obsolete distances will now generate unrecognized distance errors instead of the obsolescence message --- tex/gregoriotex-spaces.tex | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/tex/gregoriotex-spaces.tex b/tex/gregoriotex-spaces.tex index ff8d9c56c..3adaeb143 100644 --- a/tex/gregoriotex-spaces.tex +++ b/tex/gregoriotex-spaces.tex @@ -1600,30 +1600,7 @@ }[\gre@error{Unrecognized option "#3" for \protect\grechangedim\MessageBreak Possible options are: 'scalable', 'fixed', and 'inherited'}]% \gre@dimension{#1}{#2}{#3}% \else% - \IfStrEqCase{#1}{% OBSOLETE - {spacearoundsmallbars}% OBSOLETE - {% OBSOLETE - \gre@obsolete{spacearoundsmallbars}{bar@virgula or bar@minima}% OBSOLETE - }% OBSOLETE - {spacearoundminor}% OBSOLETE - {% OBSOLETE - \gre@obsolete{spacearoundminor}{bar@minor}% OBSOLETE - }% OBSOLETE - {spacearoundmaior}% OBSOLETE - {% OBSOLETE - \gre@obsolete{spacearoundmaior}{bar@maior}% OBSOLETE - }% OBSOLETE - {spacearoundfinalis}% OBSOLETE - {% OBSOLETE - \gre@obsolete{spacearoundfinalis}{bar@finalis}% OBSOLETE - }% OBSOLETE - {spacebeforefinalfinalis}% OBSOLETE - {% OBSOLETE - \gre@obsolete{spacebeforfinalfinalis}{bar@finalfinalis}% OBSOLETE - }% OBSOLETE - }[% OBSOLETE - \gre@error{#1 is not a recognized distance.}% keep this line - ]% OBSOLETE + \gre@error{#1 is not a recognized distance.} \fi% }% From bf294df47f3530686f32f27a0ff62d77effde05d Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Thu, 30 May 2019 13:16:02 -0400 Subject: [PATCH 03/11] Add missing possibility to error message --- tex/gregoriotex-spaces.tex | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tex/gregoriotex-spaces.tex b/tex/gregoriotex-spaces.tex index 3adaeb143..72a61e9d9 100644 --- a/tex/gregoriotex-spaces.tex +++ b/tex/gregoriotex-spaces.tex @@ -1558,7 +1558,7 @@ {inherited}% {\grescaledim{#1}{false}}% }[% all other cases - \gre@error{Unrecognized option "#3" for \protect\grecreatedim\MessageBreak Possible options are: 'scalable' and 'fixed'}% + \gre@error{Unrecognized option "#3" for \protect\grecreatedim\MessageBreak Possible options are: 'scalable' and 'fixed' and 'inherited'}% ]% \gre@dimension{#1}{#2}{#3}% }% From 8034d3a5feaf043c9ece0a4bc2e7b770a2032b0c Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Thu, 30 May 2019 13:34:39 -0400 Subject: [PATCH 04/11] Internalize gsp-default.tex gsp-default.tex is turned into an internal file, not one meant for user access. To do this we rename `\grecreatedim` to `\gre@createdim` (changing it to the internal namespace) and add a version check to the file. We also change how scaling is applied when loading a space configuration file. Instead of rescaling all distances when the space configuration file is loaded, we modify `\grechangedim` so that it individually checks to see if the distance being changed needs to be rescaled. This allows user `gsp-*.tex` files to be partial, only defining the spacings they want to customize. --- tex/gregoriotex-spaces.tex | 11 +- tex/gsp-default.tex | 302 +++++++++++++++++++------------------ 2 files changed, 160 insertions(+), 153 deletions(-) diff --git a/tex/gregoriotex-spaces.tex b/tex/gregoriotex-spaces.tex index 72a61e9d9..bf73fd0be 100644 --- a/tex/gregoriotex-spaces.tex +++ b/tex/gregoriotex-spaces.tex @@ -1548,7 +1548,7 @@ %% This macro creates one dim (#1), setting its value to #2 and sets whether it should scale when the \gre@factor changes (#3, scalable or fixed). Checks that #1 can accept the kind of distance given in #2. %% Note: the distances created by this function are stored as strings, not skip or dimension registers. This allows the user to specify a distance in em or ex units even though the font parameters may not be the same at the time the distance is specified and the time the distance is used. \newif\ifgre@checklength% -\def\grecreatedim#1#2#3{% +\def\gre@createdim#1#2#3{% \csname newif\expandafter\endcsname\csname ifgre@scale@#1\endcsname% \IfStrEqCase{#3}{% {scalable}% @@ -1599,6 +1599,12 @@ % all other cases }[\gre@error{Unrecognized option "#3" for \protect\grechangedim\MessageBreak Possible options are: 'scalable', 'fixed', and 'inherited'}]% \gre@dimension{#1}{#2}{#3}% + %If we are calling grechangedim from a space configuration file and the space + %configuration file is designed for a \gre@factor other than the current one, then we + %need to rescale the distance being changed. + \ifnum\the\gre@factor=\greconffactor\else + \gre@changeonedimenfactor{#1}{\greconffactor}{\gre@factor} % + \fi% \else% \gre@error{#1 is not a recognized distance.} \fi% @@ -1783,9 +1789,6 @@ \ifnum\greconffactor=0\relax% \gre@error{gsp-#1.tex does not have an assigned staff size.\MessageBreak Please edit it to define \protect\greconffactor}% \fi % - \ifnum\the\gre@factor=\greconffactor\else %If the space configuration file is designed for a \gre@factor other than the current one, then we need to rescale the distances. - \gre@changedimenfactor{\greconffactor}{\gre@factor} % - \fi% \greconffactor=0% \relax % }% diff --git a/tex/gsp-default.tex b/tex/gsp-default.tex index 5f741537d..fffed456c 100644 --- a/tex/gsp-default.tex +++ b/tex/gsp-default.tex @@ -19,6 +19,10 @@ % this file contains definitions of spaces and penalties +% version check +\gre@declarefileversion{gsp-default.tex}{5.2.1}% GREGORIO_VERSION + + %% First, the penalties % penalty to force a break on a new line @@ -59,7 +63,7 @@ \else % \grechangecount{pretolerance}{\the\pretolerance}% \fi % -\grecreatedim{emergencystretch}{\the\emergencystretch}{scalable}% +\gre@createdim{emergencystretch}{\the\emergencystretch}{scalable}% % By default, we don't care if a line of score is alone on the page, % if you think it is bad, you can modify the two following values. Assigning % 10000 to them will prevent all orphaned lines (this will certainly improve @@ -96,118 +100,118 @@ \grechangestafflinethickness{17}% % the additional width of the additional lines (compared to the width of the glyph they're associated with) -\grecreatedim{additionallineswidth}{0.14584 cm}{scalable}% +\gre@createdim{additionallineswidth}{0.14584 cm}{scalable}% % width of the additional lines, used only for the custos (maybe should depend on the width of the custos...) % the width is the one for the custos at end of lines, the line for custos in the middle of a score is the same % multiplied by 2. -\grecreatedim{additionalcustoslineswidth}{0.09114 cm}{scalable}% +\gre@createdim{additionalcustoslineswidth}{0.09114 cm}{scalable}% % null space -\grecreatedim{zerowidthspace}{0 cm}{scalable}% +\gre@createdim{zerowidthspace}{0 cm}{scalable}% % space between glyphs in the same element -\grecreatedim{interglyphspace}{0.06927 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +\gre@createdim{interglyphspace}{0.06927 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% % space between an alteration (flat or natural) and the next glyph -\grecreatedim{alterationspace}{0.07747 cm}{scalable}% +\gre@createdim{alterationspace}{0.07747 cm}{scalable}% % space between a clef and a flat (for clefs with flat) -\grecreatedim{clefflatspace}{0.05469 cm plus 0.00638 cm minus 0.00638 cm}{scalable}% +\gre@createdim{clefflatspace}{0.05469 cm plus 0.00638 cm minus 0.00638 cm}{scalable}% % space before a choral sign -\grecreatedim{beforelowchoralsignspace}{0.04556 cm plus 0.00638 cm minus 0.00638 cm}{scalable}% +\gre@createdim{beforelowchoralsignspace}{0.04556 cm plus 0.00638 cm minus 0.00638 cm}{scalable}% % when bolshifts are enabled, minimal space between a clef at the beginning of the line and a leading alteration glyph (should be larger than clefflatspace so that a flatted clef can be distinguished from a flat which is part of the first glyph on a line, but also smaller than spaceafterlineclef, the distance from the clef to the first notes) -\grecreatedim{beforealterationspace}{0.1 cm}{scalable}% +\gre@createdim{beforealterationspace}{0.1 cm}{scalable}% % half-space between elements -\grecreatedim{halfspace}{0.03463 cm plus 0.00091 cm minus 0.00182 cm}{scalable}% +\gre@createdim{halfspace}{0.03463 cm plus 0.00091 cm minus 0.00182 cm}{scalable}% % space between elements -\grecreatedim{interelementspace}{0.06927 cm plus 0.00182 cm minus 0.00363 cm}{scalable}% +\gre@createdim{interelementspace}{0.06927 cm plus 0.00182 cm minus 0.00363 cm}{scalable}% % larger space between elements -\grecreatedim{largerspace}{0.10938 cm plus 0.01822 cm minus 0.00911 cm}{scalable}% +\gre@createdim{largerspace}{0.10938 cm plus 0.01822 cm minus 0.00911 cm}{scalable}% % space between elements in ancient notation -\grecreatedim{nabcinterelementspace}{0.06927 cm plus 0.00182 cm minus 0.00363 cm}{scalable}% +\gre@createdim{nabcinterelementspace}{0.06927 cm plus 0.00182 cm minus 0.00363 cm}{scalable}% % larger space between elements in ancient notation -\grecreatedim{nabclargerspace}{0.10938 cm plus 0.01822 cm minus 0.00911 cm}{scalable}% +\gre@createdim{nabclargerspace}{0.10938 cm plus 0.01822 cm minus 0.00911 cm}{scalable}% % space between elements which has the size of a note -\grecreatedim{glyphspace}{0.21877 cm plus 0.01822 cm minus 0.01822 cm}{scalable}% +\gre@createdim{glyphspace}{0.21877 cm plus 0.01822 cm minus 0.01822 cm}{scalable}% % space before in-line custos -\grecreatedim{spacebeforeinlinecustos}{0.10938 cm plus 0.01822 cm minus 0.00911 cm}{scalable}% +\gre@createdim{spacebeforeinlinecustos}{0.10938 cm plus 0.01822 cm minus 0.00911 cm}{scalable}% % space before end-of-line custos -\grecreatedim{spacebeforeeolcustos}{0.23 cm plus 0 cm minus 0 cm}{scalable}% +\gre@createdim{spacebeforeeolcustos}{0.23 cm plus 0 cm minus 0 cm}{scalable}% % space before punctum mora and augmentum duplex -\grecreatedim{spacebeforesigns}{0.050 cm plus 0.004 cm minus 0.004 cm}{scalable}% +\gre@createdim{spacebeforesigns}{0.050 cm plus 0.004 cm minus 0.004 cm}{scalable}% % when a syllable is shifted left because of a preceding punctum mora, moraadjustmentbar is % also added. Use it to make the syllable a bit further from the punctum mora if you want. % This version is the general case. -\grecreatedim{moraadjustment}{0.050 cm}{scalable}% +\gre@createdim{moraadjustment}{0.050 cm}{scalable}% % This version is for when punctum mora is before a bar. -\grecreatedim{moraadjustmentbar}{0.050 cm}{scalable}% +\gre@createdim{moraadjustmentbar}{0.050 cm}{scalable}% % space after punctum mora and augmentum duplex -\grecreatedim{spaceaftersigns}{0.08203 cm plus 0.0082 cm minus 0.0082 cm}{scalable}% +\gre@createdim{spaceaftersigns}{0.08203 cm plus 0.0082 cm minus 0.0082 cm}{scalable}% % space after a clef at the beginning of a line -\grecreatedim{spaceafterlineclef}{0.23 cm plus 0 cm minus 0.01367 cm}{scalable}% +\gre@createdim{spaceafterlineclef}{0.23 cm plus 0 cm minus 0.01367 cm}{scalable}% % space after a clef at the beginning of a line, when the clef and first note are vertically distant -\grecreatedim{shortspaceafterlineclef}{0.18 cm plus 0 cm minus 0.01367 cm}{scalable}% +\gre@createdim{shortspaceafterlineclef}{0.18 cm plus 0 cm minus 0.01367 cm}{scalable}% % minimal space between notes of different words -\grecreatedim{interwordspacenotes}{0.29 cm plus 0.05 cm minus 0.05 cm}{scalable}% +\gre@createdim{interwordspacenotes}{0.29 cm plus 0.05 cm minus 0.05 cm}{scalable}% % minimal space between notes of the same syllable. -\grecreatedim{intersyllablespacenotes}{0.24 cm}{scalable}% +\gre@createdim{intersyllablespacenotes}{0.24 cm}{scalable}% % stretching added in the case where the text of two syllables of the same word are % separated with an automatic hyphen -\grecreatedim{intersyllablespacestretchhyphen}{0cm plus 0.05cm}{scalable}% +\gre@createdim{intersyllablespacestretchhyphen}{0cm plus 0.05cm}{scalable}% % minimal space between letters of different words. -\grecreatedim{interwordspacetext}{0.17 cm plus 0.05 cm minus 0.05 cm}{scalable}% +\gre@createdim{interwordspacetext}{0.17 cm plus 0.05 cm minus 0.05 cm}{scalable}% % Versions of interword spaces for euouae blocks -\grecreatedim{interwordspacenotes@euouae}{0.23 cm plus 0.1 cm minus 0.05 cm}{scalable}% -\grecreatedim{interwordspacetext@euouae}{0.21 cm plus 0.1 cm minus 0.05 cm}{scalable}% +\gre@createdim{interwordspacenotes@euouae}{0.23 cm plus 0.1 cm minus 0.05 cm}{scalable}% +\gre@createdim{interwordspacetext@euouae}{0.21 cm plus 0.1 cm minus 0.05 cm}{scalable}% % versions of note spaces when the first note of the second syllable is an alteration % those are used in euouae blocks -\grecreatedim{interwordspacenotes@alteration}{0.1 cm plus 0.07 cm minus 0.01 cm}{scalable}% -\grecreatedim{intersyllablespacenotes@alteration}{0.1 cm}{scalable}% +\gre@createdim{interwordspacenotes@alteration}{0.1 cm plus 0.07 cm minus 0.01 cm}{scalable}% +\gre@createdim{intersyllablespacenotes@alteration}{0.1 cm}{scalable}% % space between notes of a bivirga or trivirga -\grecreatedim{bitrivirspace}{0.06927 cm plus 0.00182 cm minus 0.00546 cm}{scalable}% +\gre@createdim{bitrivirspace}{0.06927 cm plus 0.00182 cm minus 0.00546 cm}{scalable}% % space between notes of a bistropha or tristrophae -\grecreatedim{bitristrospace}{0.06927 cm plus 0.00182 cm minus 0.00546 cm}{scalable}% +\gre@createdim{bitristrospace}{0.06927 cm plus 0.00182 cm minus 0.00546 cm}{scalable}% % %%%%%%%%%%%%%%%%%%%% % puncta inclinata % %%%%%%%%%%%%%%%%%%%% % % space between two descending punctum inclinatum -\grecreatedim{punctuminclinatumshift}{-0.03918 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +\gre@createdim{punctuminclinatumshift}{-0.03918 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% % space between two descending or ascending punctum inclinatum at the unison -\grecreatedim{punctuminclinatumunisonshift}{0.05286 cm plus 0.00728 cm minus 0.00455 cm}{scalable}% +\gre@createdim{punctuminclinatumunisonshift}{0.05286 cm plus 0.00728 cm minus 0.00455 cm}{scalable}% % space before descending puncta inclinata -\grecreatedim{beforepunctainclinatashift}{0.05286 cm plus 0.00728 cm minus 0.00455 cm}{scalable}% +\gre@createdim{beforepunctainclinatashift}{0.05286 cm plus 0.00728 cm minus 0.00455 cm}{scalable}% % space between a descending punctum inclinatum and a punctum inclinatum deminutus -\grecreatedim{punctuminclinatumanddebilisshift}{-0.02278 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +\gre@createdim{punctuminclinatumanddebilisshift}{-0.02278 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% % space between two punctum inclinatum deminutus -\grecreatedim{punctuminclinatumdebilisshift}{-0.00728 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +\gre@createdim{punctuminclinatumdebilisshift}{-0.00728 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% % space between descending puncta inclinata, larger ambitus (range=3rd) -\grecreatedim{punctuminclinatumbigshift}{0.07565 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +\gre@createdim{punctuminclinatumbigshift}{0.07565 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% % space between descending puncta inclinata, larger ambitus (range=4th or 5th) -\grecreatedim{punctuminclinatummaxshift}{0.17865 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +\gre@createdim{punctuminclinatummaxshift}{0.17865 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% % space between two ascending punctum inclinatum -\grecreatedim{ascendingpunctuminclinatumshift}{-0.03918 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +\gre@createdim{ascendingpunctuminclinatumshift}{-0.03918 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% % space between a punctum inclinatum and a punctum inclinatum deminutus, ascending -\grecreatedim{ascendingpunctuminclinatumanddebilisshift}{-0.02278 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +\gre@createdim{ascendingpunctuminclinatumanddebilisshift}{-0.02278 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% % space between ascending puncta inclinata, larger ambitus (range=3rd) -\grecreatedim{ascendingpunctuminclinatumbigshift}{0.07565 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +\gre@createdim{ascendingpunctuminclinatumbigshift}{0.07565 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% % space between ascending puncta inclinata, larger ambitus (range=4th or 5th) -\grecreatedim{ascendingpunctuminclinatummaxshift}{0.17865 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +\gre@createdim{ascendingpunctuminclinatummaxshift}{0.17865 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% % space between a punctum inclinatum and a no-bar glyph one pitch below -\grecreatedim{descendinginclinatumtonobarshift}{-0.00073 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +\gre@createdim{descendinginclinatumtonobarshift}{-0.00073 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% % space between a punctum inclinatum and a no-bar glyph two pitches below -\grecreatedim{descendinginclinatumtonobarbigshift}{0.10927 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +\gre@createdim{descendinginclinatumtonobarbigshift}{0.10927 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% % space between a punctum inclinatum and a no-bar glyph three or four pitches below -\grecreatedim{descendinginclinatumtonobarmaxshift}{0.23927 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +\gre@createdim{descendinginclinatumtonobarmaxshift}{0.23927 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% % space between a punctum inclinatum and a no-bar glyph one pitch above -\grecreatedim{ascendinginclinatumtonobarshift}{-0.02473 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +\gre@createdim{ascendinginclinatumtonobarshift}{-0.02473 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% % space between a punctum inclinatum and a no-bar glyph two pitches above -\grecreatedim{ascendinginclinatumtonobarbigshift}{0.04427 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +\gre@createdim{ascendinginclinatumtonobarbigshift}{0.04427 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% % space between a punctum inclinatum and a no-bar glyph three or four pitches above -\grecreatedim{ascendinginclinatumtonobarmaxshift}{0.12927 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +\gre@createdim{ascendinginclinatumtonobarmaxshift}{0.12927 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% % space between two descending punctum inclinatum glyphs in an ascent -\grecreatedim{descendingpunctuminclinatumascendingshift}{-0.07918 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +\gre@createdim{descendingpunctuminclinatumascendingshift}{-0.07918 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% % space between two ascending punctum inclinatum glyphs in an descent -\grecreatedim{ascendingpunctuminclinatumdescendingshift}{-0.07918 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +\gre@createdim{ascendingpunctuminclinatumdescendingshift}{-0.07918 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% % space between two unison punctum inclinatum glyphs (at the unison) -\grecreatedim{unisonpunctuminclinatumshift}{0.05286 cm plus 0.00728 cm minus 0.00455 cm}{scalable}% +\gre@createdim{unisonpunctuminclinatumshift}{0.05286 cm plus 0.00728 cm minus 0.00455 cm}{scalable}% % %%%%%%%% @@ -216,118 +220,118 @@ % % bars inside syllables % -\grecreatedim{bar@virgula}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +\gre@createdim{bar@virgula}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% % short versions are when the notes are very low (virgula, minima, and minimis only) -\grecreatedim{bar@virgula@short}{0.13 cm plus 0.05 cm minus 0.00469 cm}{scalable}% -\grecreatedim{bar@minimis}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% -\grecreatedim{bar@minimis@short}{0.12 cm plus 0.05 cm minus 0.00469 cm}{scalable}% -\grecreatedim{bar@minima}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% -\grecreatedim{bar@minima@short}{0.12 cm plus 0.05 cm minus 0.00469 cm}{scalable}% -\grecreatedim{bar@minor}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +\gre@createdim{bar@virgula@short}{0.13 cm plus 0.05 cm minus 0.00469 cm}{scalable}% +\gre@createdim{bar@minimis}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +\gre@createdim{bar@minimis@short}{0.12 cm plus 0.05 cm minus 0.00469 cm}{scalable}% +\gre@createdim{bar@minima}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +\gre@createdim{bar@minima@short}{0.12 cm plus 0.05 cm minus 0.00469 cm}{scalable}% +\gre@createdim{bar@minor}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% % dominican bars -\grecreatedim{bar@dominican}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% -\grecreatedim{bar@maior}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% -\grecreatedim{bar@finalis}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +\gre@createdim{bar@dominican}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +\gre@createdim{bar@maior}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +\gre@createdim{bar@finalis}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% % space added before the final divisio finalis (old bar spacing algorithm only) -\grecreatedim{bar@finalfinalis}{0.29169 cm plus 0.07292 cm minus 0.27345 cm}{scalable}% +\gre@createdim{bar@finalfinalis}{0.29169 cm plus 0.07292 cm minus 0.27345 cm}{scalable}% % % bars having their own syllable, with text associated (new bar spacing algorithm only) % plus or minus here will trigger some problems % -\grecreatedim{bar@virgula@standalone@text}{0.2323 cm}{scalable}% -\grecreatedim{bar@virgula@standalone@text@short}{0.19 cm}{scalable}% -\grecreatedim{bar@minimis@standalone@text}{0.2323 cm}{scalable}% -\grecreatedim{bar@minimis@standalone@text@short}{0.19 cm}{scalable}% -\grecreatedim{bar@minima@standalone@text}{0.2323 cm}{scalable}% -\grecreatedim{bar@minima@standalone@text@short}{0.19 cm}{scalable}% -\grecreatedim{bar@minor@standalone@text}{0.2323 cm}{scalable}% -\grecreatedim{bar@dominican@standalone@text}{0.2323 cm}{scalable}% -\grecreatedim{bar@maior@standalone@text}{0.2323 cm}{scalable}% -\grecreatedim{bar@finalis@standalone@text}{0.2323 cm}{scalable}% +\gre@createdim{bar@virgula@standalone@text}{0.2323 cm}{scalable}% +\gre@createdim{bar@virgula@standalone@text@short}{0.19 cm}{scalable}% +\gre@createdim{bar@minimis@standalone@text}{0.2323 cm}{scalable}% +\gre@createdim{bar@minimis@standalone@text@short}{0.19 cm}{scalable}% +\gre@createdim{bar@minima@standalone@text}{0.2323 cm}{scalable}% +\gre@createdim{bar@minima@standalone@text@short}{0.19 cm}{scalable}% +\gre@createdim{bar@minor@standalone@text}{0.2323 cm}{scalable}% +\gre@createdim{bar@dominican@standalone@text}{0.2323 cm}{scalable}% +\gre@createdim{bar@maior@standalone@text}{0.2323 cm}{scalable}% +\gre@createdim{bar@finalis@standalone@text}{0.2323 cm}{scalable}% % actual space before divisio finalis, not additional one -\grecreatedim{bar@finalfinalis@standalone@text}{0.29169 cm}{scalable}% +\gre@createdim{bar@finalfinalis@standalone@text}{0.29169 cm}{scalable}% % % bars having their own syllable, with no text associated (new bar spacing algorithm only) % -\grecreatedim{bar@virgula@standalone@notext}{0.2 cm}{scalable}% -\grecreatedim{bar@virgula@standalone@notext@short}{0.19 cm}{scalable}% -\grecreatedim{bar@minimis@standalone@notext}{0.2 cm}{scalable}% -\grecreatedim{bar@minimis@standalone@notext@short}{0.19 cm}{scalable}% -\grecreatedim{bar@minima@standalone@notext}{0.2 cm}{scalable}% -\grecreatedim{bar@minima@standalone@notext@short}{0.19 cm}{scalable}% -\grecreatedim{bar@minor@standalone@notext}{0.2323 cm}{scalable}% -\grecreatedim{bar@dominican@standalone@notext}{0.2323 cm}{scalable}% -\grecreatedim{bar@maior@standalone@notext}{0.2323 cm}{scalable}% -\grecreatedim{bar@finalis@standalone@notext}{0.2323 cm}{scalable}% -\grecreatedim{bar@finalfinalis@standalone@notext}{0.29169 cm}{scalable}% +\gre@createdim{bar@virgula@standalone@notext}{0.2 cm}{scalable}% +\gre@createdim{bar@virgula@standalone@notext@short}{0.19 cm}{scalable}% +\gre@createdim{bar@minimis@standalone@notext}{0.2 cm}{scalable}% +\gre@createdim{bar@minimis@standalone@notext@short}{0.19 cm}{scalable}% +\gre@createdim{bar@minima@standalone@notext}{0.2 cm}{scalable}% +\gre@createdim{bar@minima@standalone@notext@short}{0.19 cm}{scalable}% +\gre@createdim{bar@minor@standalone@notext}{0.2323 cm}{scalable}% +\gre@createdim{bar@dominican@standalone@notext}{0.2323 cm}{scalable}% +\gre@createdim{bar@maior@standalone@notext}{0.2323 cm}{scalable}% +\gre@createdim{bar@finalis@standalone@notext}{0.2323 cm}{scalable}% +\gre@createdim{bar@finalfinalis@standalone@notext}{0.29169 cm}{scalable}% % % minimal space between letters of different syllable texts for text around bars % (new bar spacing algorithm only) -\grecreatedim{interwordspacetext@bars}{0.18 cm}{scalable}% +\gre@createdim{interwordspacetext@bars}{0.18 cm}{scalable}% % minimal space between letters of different syllable texts for text around bars, % euouae context -\grecreatedim{interwordspacetext@bars@euouae}{0.18 cm}{scalable}% -\grecreatedim{interwordspacetext@bars@notext}{0.19 cm}{scalable}% +\gre@createdim{interwordspacetext@bars@euouae}{0.18 cm}{scalable}% +\gre@createdim{interwordspacetext@bars@notext}{0.19 cm}{scalable}% % minimal space between letters of different syllable texts for text around bars, % euouae context -\grecreatedim{interwordspacetext@bars@notext@euouae}{0.18 cm}{scalable}% +\gre@createdim{interwordspacetext@bars@notext@euouae}{0.18 cm}{scalable}% % rubber length that will be added around bars in new bar spacing algorithm -\grecreatedim{bar@rubber}{0 cm plus 0.025 cm minus 0.025 cm}{scalable}% +\gre@createdim{bar@rubber}{0 cm plus 0.025 cm minus 0.025 cm}{scalable}% % in the case of an alteration after a bar, the alteration will "protrude" left of this value % think of it as some kind of moraadjustmentbar -\grecreatedim{alterationadjustmentbar}{0.07 cm}{scalable}% +\gre@createdim{alterationadjustmentbar}{0.07 cm}{scalable}% % additional space that will appear around bars that are preceded by a custos and followed by a key. -\grecreatedim{spacearoundclefbars}{0.03645 cm plus 0.00455 cm minus 0.0009 cm}{scalable}% +\gre@createdim{spacearoundclefbars}{0.03645 cm plus 0.00455 cm minus 0.0009 cm}{scalable}% % space between the text of previous syllable and text associated with a bar (old bar spacing algorithm only) -\grecreatedim{textbartextspace}{0.24611 cm plus 0.13672 cm minus 0.04921 cm}{scalable}% +\gre@createdim{textbartextspace}{0.24611 cm plus 0.13672 cm minus 0.04921 cm}{scalable}% % minimal space between a note and a bar (old algorithm only) -\grecreatedim{notebarspace}{0.31903 cm plus 0.27345 cm minus 0.02824 cm}{scalable}% +\gre@createdim{notebarspace}{0.31903 cm plus 0.27345 cm minus 0.02824 cm}{scalable}% % Maximum offset between a bar and its associated text when the text goes left of the bar (new bar spacing algorithm only) -\grecreatedim{maxbaroffsettextleft}{0.3 cm}{scalable}% +\gre@createdim{maxbaroffsettextleft}{0.3 cm}{scalable}% % Same as maxbaroffsettextleft when text goes right of the bar -\grecreatedim{maxbaroffsettextright}{0.15 cm}{scalable}% +\gre@createdim{maxbaroffsettextright}{0.15 cm}{scalable}% % Maximum offset between a no-bar (i.e. something like `text()` in gabc) and its associated text when the text goes left of the no-bar (new bar spacing algorithm only) -\grecreatedim{maxbaroffsettextleft@nobar}{12 cm}{scalable}% +\gre@createdim{maxbaroffsettextleft@nobar}{12 cm}{scalable}% % Same as maxbaroffsettextleft@nobar when text goes right of the no-bar -\grecreatedim{maxbaroffsettextright@nobar}{12 cm}{scalable}% +\gre@createdim{maxbaroffsettextright@nobar}{12 cm}{scalable}% % Space between the two bars of a divisio finalis % Maximum offset between a bar and its associated text when the text goes left of the bar and the bar terminates a line (i.e. something line `text(::z)` in gabc) (new bar spacing algorithm only) -\grecreatedim{maxbaroffsettextleft@eol}{0.0 cm}{scalable}% +\gre@createdim{maxbaroffsettextleft@eol}{0.0 cm}{scalable}% % Same as maxbaroffsettextleft@eol when text goes right of the bar -\grecreatedim{maxbaroffsettextright@eol}{0 cm}{scalable}% -\grecreatedim{divisiofinalissep}{0.1094 cm}{scalable}% +\gre@createdim{maxbaroffsettextright@eol}{0 cm}{scalable}% +\gre@createdim{divisiofinalissep}{0.1094 cm}{scalable}% % % % maximal space between two syllables for which we consider a dash is not needed -\grecreatedim{maximumspacewithoutdash}{0 cm}{scalable}% +\gre@createdim{maximumspacewithoutdash}{0 cm}{scalable}% % an extensible space for the beginning of lines -\grecreatedim{afterclefnospace}{0 cm plus 0.27345 cm minus 0 cm}{scalable}% +\gre@createdim{afterclefnospace}{0 cm plus 0.27345 cm minus 0 cm}{scalable}% % space between the initial and the beginning of the score -\grecreatedim{afterinitialshift}{0.2 cm}{scalable}% +\gre@createdim{afterinitialshift}{0.2 cm}{scalable}% % space before the initial -\grecreatedim{beforeinitialshift}{0.2 cm}{scalable}% +\gre@createdim{beforeinitialshift}{0.2 cm}{scalable}% % when bolshifts are enabled, minimum space between beginning of line and first syllable text -\grecreatedim{minimalspaceatlinebeginning}{0.05 cm}{scalable}% +\gre@createdim{minimalspaceatlinebeginning}{0.05 cm}{scalable}% % space to force the initial width to. Ignored when 0. -\grecreatedim{manualinitialwidth}{0 cm}{scalable}% +\gre@createdim{manualinitialwidth}{0 cm}{scalable}% % minimum width of the initial. Ignored when manualinitialwidth is non-zero. -\grecreatedim{minimalinitialwidth}{0 cm}{scalable}% +\gre@createdim{minimalinitialwidth}{0 cm}{scalable}% % distance to move the initial up by -\grecreatedim{initialraise}{0 cm}{scalable}% +\gre@createdim{initialraise}{0 cm}{scalable}% % Space between lines in the annotation -\grecreatedim{annotationseparation}{0.05 cm}{scalable}% +\gre@createdim{annotationseparation}{0.05 cm}{scalable}% % Amount to raise (positive) or lower (negative) the annotations from the default position -\grecreatedim{annotationraise}{-0.2 cm}{scalable}% +\gre@createdim{annotationraise}{-0.2 cm}{scalable}% % Space between lines in the commentary -\grecreatedim{commentaryseparation}{0.05 cm}{scalable}% +\gre@createdim{commentaryseparation}{0.05 cm}{scalable}% % Amount to raise (positive) or lower (negative) the commentary from the default position (base line of bottom commentary aligned with top line of staff) -\grecreatedim{commentaryraise}{0.2 cm}{scalable}% +\gre@createdim{commentaryraise}{0.2 cm}{scalable}% % space at the beginning of the lines if there is no clef -\grecreatedim{noclefspace}{0.1 cm}{scalable}% +\gre@createdim{noclefspace}{0.1 cm}{scalable}% % space around a clef change -\grecreatedim{clefchangespace}{0.27345 cm plus 0.14584 cm minus 0.01367 cm}{scalable}% +\gre@createdim{clefchangespace}{0.27345 cm plus 0.14584 cm minus 0.01367 cm}{scalable}% % When \gre@clivisalignment is 2, this distance is the maximum length of the consonants after vowels for which the clivis will be aligned on its center. -\grecreatedim{clivisalignmentmin}{0.3 cm}{scalable}% +\gre@createdim{clivisalignmentmin}{0.3 cm}{scalable}% %%%%%%%%%%%%%%%%%% % vertical spaces @@ -338,15 +342,15 @@ % it's on a line or in a space % (b) high choral signs and low choral signs that are lower than the note which % are in a space -\grecreatedim{choralsigndownshift}{0.00911 cm}{scalable}% +\gre@createdim{choralsigndownshift}{0.00911 cm}{scalable}% % the amount to shift up: % (a) high choral signs and low choral signs that are lower than the note which % are on a line -\grecreatedim{choralsignupshift}{0.04556 cm}{scalable}% +\gre@createdim{choralsignupshift}{0.04556 cm}{scalable}% % the space for the translation -\grecreatedim{translationheight}{0.5 cm}{scalable}% +\gre@createdim{translationheight}{0.5 cm}{scalable}% %the space above the lines -\grecreatedim{spaceabovelines}{0 cm}{scalable}% +\gre@createdim{spaceabovelines}{0 cm}{scalable}% % this counter is the threshold above which we start accounting notes above % lines for additional space above lines. For instance with a threshold of % 2 and a staff of 4 lines, notes with a pitch of k and l will not interfere @@ -357,64 +361,64 @@ % same, for notes taken into account for nabc vertical position \grechangecount{additionaltopspacenabcthreshold}{4}% %the space between the lines and the bottom of the text -\grecreatedim{spacelinestext}{0.60617 cm}{scalable}% +\gre@createdim{spacelinestext}{0.60617 cm}{scalable}% %the per-note additional space between lines and the bottom of the text -\grecreatedim{noteadditionalspacelinestext}{0.14413 cm}{scalable}% +\gre@createdim{noteadditionalspacelinestext}{0.14413 cm}{scalable}% % this counter is the number of low notes which will add on the % noteadditionalspacelinestext. For instance, with a threshold of 2, every % note below c will add noteadditionalspacelinestext space for each pitch needed % below c, accounting for the various signs. \grechangecount{noteadditionalspacelinestextthreshold}{2}% %the space beneath the text -\grecreatedim{spacebeneathtext}{0 cm}{scalable}% +\gre@createdim{spacebeneathtext}{0 cm}{scalable}% % height of the text above the note line -\grecreatedim{abovelinestextraise}{-0.1 cm}{scalable}% +\gre@createdim{abovelinestextraise}{-0.1 cm}{scalable}% % height that is added at the top of the lines if there is text above the lines (it must be bigger than the text for it to be taken into consideration) -\grecreatedim{abovelinestextheight}{0.3 cm}{scalable}% +\gre@createdim{abovelinestextheight}{0.3 cm}{scalable}% % an additional shift you can give to the brace above the bars if you don't like it -\grecreatedim{braceshift}{0 cm}{scalable}% +\gre@createdim{braceshift}{0 cm}{scalable}% % a shift you can give to the accentus above the curly brace -\grecreatedim{curlybraceaccentusshift}{-0.05 cm}{scalable}% +\gre@createdim{curlybraceaccentusshift}{-0.05 cm}{scalable}% % the amount to shift the over slur up -\grecreatedim{overslurshift}{0.05000 cm}{scalable}% +\gre@createdim{overslurshift}{0.05000 cm}{scalable}% % the amount to shift the under slur up -\grecreatedim{underslurshift}{0.01000 cm}{scalable}% +\gre@createdim{underslurshift}{0.01000 cm}{scalable}% % shift for a horizontal episema over a note in a low position in the space -\grecreatedim{overhepisemalowshift}{0.02287 cm}{scalable}% +\gre@createdim{overhepisemalowshift}{0.02287 cm}{scalable}% % shift for a horizontal episema over a note in a high position in the space -\grecreatedim{overhepisemahighshift}{0.10066 cm}{scalable}% +\gre@createdim{overhepisemahighshift}{0.10066 cm}{scalable}% % shift for a horizontal episema under a note in a low position in the space -\grecreatedim{underhepisemalowshift}{0.02763 cm}{scalable}% +\gre@createdim{underhepisemalowshift}{0.02763 cm}{scalable}% % shift for a horizontal episema under a note in a high position in the space -\grecreatedim{underhepisemahighshift}{0.10981 cm}{scalable}% +\gre@createdim{underhepisemahighshift}{0.10981 cm}{scalable}% % shift for a horizontal episema in the middle of a space -\grecreatedim{hepisemamiddleshift}{0.07206 cm}{scalable}% +\gre@createdim{hepisemamiddleshift}{0.07206 cm}{scalable}% % shift for a vertical episema in a low position in the space -\grecreatedim{vepisemalowshift}{-0.01262 cm}{scalable}% +\gre@createdim{vepisemalowshift}{-0.01262 cm}{scalable}% % shift for a vertical episema in a high position in the space -\grecreatedim{vepisemahighshift}{0.06634 cm}{scalable}% +\gre@createdim{vepisemahighshift}{0.06634 cm}{scalable}% % shift for a punctum mora for a note on a line -\grecreatedim{linepunctummorashift}{-0.06314 cm}{scalable}% +\gre@createdim{linepunctummorashift}{-0.06314 cm}{scalable}% % shift for a punctum mora for a note in a space -\grecreatedim{spacepunctummorashift}{-0.02013 cm}{scalable}% +\gre@createdim{spacepunctummorashift}{-0.02013 cm}{scalable}% % shift for a punctum mora for the second note (in a space) of a pes with ambitus one -\grecreatedim{spaceamonepespunctummorashift}{0.00183 cm}{scalable}% +\gre@createdim{spaceamonepespunctummorashift}{0.00183 cm}{scalable}% % shift for a punctum mora for the second note in a porrectus, on a line -\grecreatedim{lineporrectuspunctummorashift}{0.04575 cm}{scalable}% +\gre@createdim{lineporrectuspunctummorashift}{0.04575 cm}{scalable}% % shift for a punctum mora for the second note in a porrectus, in a space -\grecreatedim{spaceporrectuspunctummorashift}{0.00000 cm}{scalable}% +\gre@createdim{spaceporrectuspunctummorashift}{0.00000 cm}{scalable}% % shift for a rare sign -\grecreatedim{raresignshift}{0.18302 cm}{scalable}% +\gre@createdim{raresignshift}{0.18302 cm}{scalable}% % up-shift for a bracket -\grecreatedim{bracketupshift}{0.03000 cm}{scalable}% +\gre@createdim{bracketupshift}{0.03000 cm}{scalable}% % down-shift for a bracket -\grecreatedim{bracketdownshift}{0.04000 cm}{scalable}% +\gre@createdim{bracketdownshift}{0.04000 cm}{scalable}% % %%%%%%%%%% %% Line spacings %%%%%%%%%% -\grecreatedim{parskip}{1pt plus 1pt}{scalable}% -\grecreatedim{lineskip}{0pt plus 1pt}{scalable}% -\grecreatedim{baselineskip}{55pt plus 5pt minus 5pt}{scalable}% -\grecreatedim{lineskiplimit}{0pt}{scalable}% +\gre@createdim{parskip}{1pt plus 1pt}{scalable}% +\gre@createdim{lineskip}{0pt plus 1pt}{scalable}% +\gre@createdim{baselineskip}{55pt plus 5pt minus 5pt}{scalable}% +\gre@createdim{lineskiplimit}{0pt}{scalable}% From 3574ba9af5629f1bde1e83863ef310f65824458d Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Thu, 30 May 2019 13:43:29 -0400 Subject: [PATCH 05/11] Add internalized gsp-default.tex to VersionManager.py --- VersionManager.py | 1 + 1 file changed, 1 insertion(+) diff --git a/VersionManager.py b/VersionManager.py index d0d35f89b..c39d88a40 100755 --- a/VersionManager.py +++ b/VersionManager.py @@ -65,6 +65,7 @@ "tex/gregoriotex-nabc.lua", "tex/gregoriosyms.sty", "tex/gregoriotex-common.tex", + "tex/gsp-default.tex", "fonts/squarize.py", ] COPYRIGHT_FILES = ["install-gtex.sh", From 4d3ce008a866ee155de0b488cc71648dc76a842b Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Thu, 30 May 2019 14:14:55 -0400 Subject: [PATCH 06/11] Add debug messages Some tests are revealing a fault, these debug messages are to help me identify where. --- tex/gregoriotex-spaces.tex | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tex/gregoriotex-spaces.tex b/tex/gregoriotex-spaces.tex index bf73fd0be..bfecce79c 100644 --- a/tex/gregoriotex-spaces.tex +++ b/tex/gregoriotex-spaces.tex @@ -1876,11 +1876,13 @@ % Math \gre@rubberpermit{#1}% \ifgre@rubber% + \gre@debugmsg{gsp}{scaling a rubber}% % if we have a rubber allowed length we create a temporary skip \let\gre@scaledist\gre@skip@temp@one% \edef\gre@convert{\csname gre@space@skip@#1\endcsname}% \gre@scaledist=\glueexpr(\gre@convert * \number#3 / \number#2)\relax % \else% + \gre@debugmsg{gsp}{scaling a fixed distance}% % otherwise we create a temporary dimen \let\gre@scaledist\gre@dimen@temp@one% \edef\gre@convert{\csname gre@space@dimen@#1\endcsname}% From cdd2fb05e7b20663621e9a978ca9c6c9061feddc Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Thu, 30 May 2019 14:36:02 -0400 Subject: [PATCH 07/11] Stop trying to rescale when greconffactor is 0 `\greconffactor` is set to 0 when we're not loading a space configuration file. `\grechangedim` should only do its rescaling when inside a space configuration file (i.e. `\greconffactor` is not 0). --- tex/gregoriotex-spaces.tex | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/tex/gregoriotex-spaces.tex b/tex/gregoriotex-spaces.tex index bfecce79c..9c5c70e00 100644 --- a/tex/gregoriotex-spaces.tex +++ b/tex/gregoriotex-spaces.tex @@ -1599,11 +1599,13 @@ % all other cases }[\gre@error{Unrecognized option "#3" for \protect\grechangedim\MessageBreak Possible options are: 'scalable', 'fixed', and 'inherited'}]% \gre@dimension{#1}{#2}{#3}% - %If we are calling grechangedim from a space configuration file and the space - %configuration file is designed for a \gre@factor other than the current one, then we - %need to rescale the distance being changed. - \ifnum\the\gre@factor=\greconffactor\else - \gre@changeonedimenfactor{#1}{\greconffactor}{\gre@factor} % + %If we are calling grechangedim from a space configuration file (greconffactor is not 0) + % and the space configuration file is designed for a \gre@factor other than the current + % one, then we need to rescale the distance being changed. + \ifnum\greconffactor=0\else% + \ifnum\the\gre@factor=\greconffactor\else% + \gre@changeonedimenfactor{#1}{\greconffactor}{\gre@factor} % + \fi% \fi% \else% \gre@error{#1 is not a recognized distance.} From 14e1804b18b5e2a4a26c7a4aeae00738da733754 Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Thu, 30 May 2019 14:37:46 -0400 Subject: [PATCH 08/11] Add sample space configuration to documentation --- VersionManager.py | 1 + doc/Makefile.am | 2 +- doc/gsp-sample.tex | 465 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 467 insertions(+), 1 deletion(-) create mode 100644 doc/gsp-sample.tex diff --git a/VersionManager.py b/VersionManager.py index c39d88a40..20125788b 100755 --- a/VersionManager.py +++ b/VersionManager.py @@ -110,6 +110,7 @@ "doc/Gabc.tex", "doc/GregorioRef.lua", "doc/Appendix_Font_Tables.tex", + "doc/gsp-sample.tex', "VersionManager.py", "coverage.sh", "COPYING.md", diff --git a/doc/Makefile.am b/doc/Makefile.am index 7bad55fc3..d060bc654 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -19,7 +19,7 @@ SRCFILES = GregorioRef.tex Command_Index_gregorio.tex \ Command_Index_internal.tex Command_Index_User.tex \ Gabc.tex Appendix_Font_Tables.tex GregorioRef.lua factus.gabc \ - pitches2.gabc pitches3.gabc pitches4.gabc pitches5.gabc + pitches2.gabc pitches3.gabc pitches4.gabc pitches5.gabc gsp-sample.tex NABCSRCFILES = GregorioNabcRef.tex veni.gabc omnes.gabc GREGORIO=gregorio-$(FILENAME_VERSION) diff --git a/doc/gsp-sample.tex b/doc/gsp-sample.tex new file mode 100644 index 000000000..1af999973 --- /dev/null +++ b/doc/gsp-sample.tex @@ -0,0 +1,465 @@ +%GregorioTeX file. +% +% Copyright (C) 2010-2019 The Gregorio Project (see CONTRIBUTORS.md) +% +% This file is part of Gregorio. +% +% Gregorio 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. +% +% Gregorio 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 Gregorio. If not, see . + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% This file is an example of how the various penalties and spacings can be changed to tweak the +%% overall look of a Gregorio score. +%% +%% When customizing this file to your own use, you do not need to include all the penalties and +%% distances listed below. Those not included will fall back onto their default values. +%% +%% The name of all space configuration files should start with `gsp-` and end with `.tex`; what goes +%% in between is up to you (so long as it doesn’t contain spaces). To load a space configuration +%% file called `gsp-sample.tex`, use `\greloadspaceconf{sample}`. The defaults can be reloaded +%% with `\greloadspaceconf{default}`. +%% +%%%%%%%%%%%%%%%%%%%%%%%%% + + +%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% At the risk of oversimplifying, penalties affect line breaks: larger penalties indicate that line +%% breaks should be less likely at the corresponding location, smaller penalties (including negative +%% values) indicate that line breaks are more likely. +%% +%%%%%%%%%%%%%%%%%%%%%%%%% + +% penalty to force a break on a new line +\grechangecount{newlinepenalty}{-10001}% +% penalty to prevent a line break +\grechangecount{nobreakpenalty}{10001}% +% penalty at the end of a syllable which is the end of a word +\grechangecount{endofwordpenalty}{-100}% +% penalty at the end of a syllable which is not the end of a word +\grechangecount{endofsyllablepenalty}{-50}% +% penalty at the end of a syllable which is just a bar, with something printed +% under it +\grechangecount{endafterbarpenalty}{-200}% +% penalty right after a bar with nothing printed +\grechangecount{endafterbaraltpenalty}{-200}% +% penalty at the end of the score +\grechangecount{finalpenalty}{0}% +% penalty at the end of a breakable neumatic element (typically at a space +% between elements) +\grechangecount{endofelementpenalty}{-50}% +% hyphenpenalty will be used in discretionaries, in Gregorio this is used for +% a bar with clef change for example. It also set \exhyphenpenalty. It should +% be close to endafterbarpenalty +\grechangecount{hyphenpenalty}{-200}% +% broken penalty is the vertical penalty inserted after a break on a clef change +% I'm not sure it should be set, but it might be useful... +\grechangecount{brokenpenalty}{0}% + +%% These macro enable the tuning of linepenalty, tolerance, pretolerance +%% and emergencystretch +\grechangecount{looseness}{-1}% +\grechangecount{tolerance}{9000}% +% Workaround for bug 842 (http://tracker.luatex.org/view.php?id=842) +% see http://tug.org/pipermail/luatex/2013-July/004516.html +% The idea is that we use discretionaries (explicit hyphens, though more than hyphens in our case) for clef changes, and we need to give them a special penalty, which is not taken into account if pretolerance is > -1 on LuaTeX < 0.80. For a more detailed explanation see http://tug.org/pipermail/luatex/2013-July/004516.html. +\ifnum\the\luatexversion < 78\relax % + \grechangecount{pretolerance}{-1}% +\else % + \grechangecount{pretolerance}{\the\pretolerance}% +\fi % +\grechangedim{emergencystretch}{\the\emergencystretch}{scalable}% +% By default, we don't care if a line of score is alone on the page, +% if you think it is bad, you can modify the two following values. Assigning +% 10000 to them will prevent all orphaned lines (this will certainly improve +% some spacings a lot). +\grechangecount{widowpenalty}{0}% +\grechangecount{clubpenalty}{0}% + + +%%%%%%%%%%%%%%%%%%% +%% +%% Protrusion factors indicate that certain characters are allowed to extend into the right hand +%% margin when they occur at the end of the line. This allows you to create a more optically +%% straight margin as the eye tends to discount some characters (mostly punctuation) when +%% determining whether the end of several lines of text line up. +%% +%%%%%%%%%%%%%%%%%%% + +% protrusion factor for comma +\gresetprotrusionfactor{,}{0}% +% protrusion factor for semicolon +\gresetprotrusionfactor{;}{0}% +% protrusion factor for colon +\gresetprotrusionfactor{:}{0}% +% protrusion factor for period +\gresetprotrusionfactor{.}{0}% +% protrusion factor for hyphens added automatically in the Lua phase +\gresetprotrusionfactor{eolhyphen}{0}% +% protrusion factor used by without an argument +\gresetprotrusionfactor{default}{1}% + + + + +%%%%%%%%%%%%%%%%%%% +%% +%% The following spacings govern the distance between various elements (names are chosen to +%% indicate when each spacing is used). The macro for changing distances is \grechangedim and +%% it takes 3 arguments: +%% +%% (1) the name of the spacing to be changed +%% (2) the value of the spacing +%% (3) either `scalable` or `fixed` to indicate how the spacing should behave when +%% `\grechangestaffsize` is invoked. If `scalable` then the spacing is proportionally rescaled; +%% if `fixed` it will remain at its given value; if `inherited` then #2 should be the name of +%% another spacing from which this spacing derives its value. +%% +%%%%%%%%%%%%%%%%%%% + +%This count tells gregoriotex what size staff the below values correspond to. +%% The default staff size is 17. At this size the scores should be approximately the size usually +%% seen in a gradual. +%% If you’re creating your own space configuration file, you may set this to some other value, +%% should you so desire. +%% If the current staff size doesn’t match the value given here when the spacing file is loaded, then +%% all scalable distances will be rescaled appropriately. +\greconffactor=17% + +%How thick the lines should be. When set equal to \greconffactor (above) the staff lines will be their default thickness. Larger numbers result in thicker lines. +\grechangestafflinethickness{17}% + +% the additional width of the additional lines (compared to the width of the glyph they're associated with) +\grechangedim{additionallineswidth}{0.14584 cm}{scalable}% +% width of the additional lines, used only for the custos (maybe should depend on the width of the custos...) +% the width is the one for the custos at end of lines, the line for custos in the middle of a score is the same +% multiplied by 2. +\grechangedim{additionalcustoslineswidth}{0.09114 cm}{scalable}% +% null space +\grechangedim{zerowidthspace}{0 cm}{scalable}% +% space between glyphs in the same element +\grechangedim{interglyphspace}{0.06927 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +% space between an alteration (flat or natural) and the next glyph +\grechangedim{alterationspace}{0.07747 cm}{scalable}% +% space between a clef and a flat (for clefs with flat) +\grechangedim{clefflatspace}{0.05469 cm plus 0.00638 cm minus 0.00638 cm}{scalable}% +% space before a choral sign +\grechangedim{beforelowchoralsignspace}{0.04556 cm plus 0.00638 cm minus 0.00638 cm}{scalable}% +% when bolshifts are enabled, minimal space between a clef at the beginning of the line and a leading alteration glyph (should be larger than clefflatspace so that a flatted clef can be distinguished from a flat which is part of the first glyph on a line, but also smaller than spaceafterlineclef, the distance from the clef to the first notes) +\grechangedim{beforealterationspace}{0.1 cm}{scalable}% +% half-space between elements +\grechangedim{halfspace}{0.03463 cm plus 0.00091 cm minus 0.00182 cm}{scalable}% +% space between elements +\grechangedim{interelementspace}{0.06927 cm plus 0.00182 cm minus 0.00363 cm}{scalable}% +% larger space between elements +\grechangedim{largerspace}{0.10938 cm plus 0.01822 cm minus 0.00911 cm}{scalable}% +% space between elements in ancient notation +\grechangedim{nabcinterelementspace}{0.06927 cm plus 0.00182 cm minus 0.00363 cm}{scalable}% +% larger space between elements in ancient notation +\grechangedim{nabclargerspace}{0.10938 cm plus 0.01822 cm minus 0.00911 cm}{scalable}% +% space between elements which has the size of a note +\grechangedim{glyphspace}{0.21877 cm plus 0.01822 cm minus 0.01822 cm}{scalable}% +% space before in-line custos +\grechangedim{spacebeforeinlinecustos}{0.10938 cm plus 0.01822 cm minus 0.00911 cm}{scalable}% +% space before end-of-line custos +\grechangedim{spacebeforeeolcustos}{0.23 cm plus 0 cm minus 0 cm}{scalable}% +% space before punctum mora and augmentum duplex +\grechangedim{spacebeforesigns}{0.050 cm plus 0.004 cm minus 0.004 cm}{scalable}% +% when a syllable is shifted left because of a preceding punctum mora, moraadjustmentbar is +% also added. Use it to make the syllable a bit further from the punctum mora if you want. +% This version is the general case. +\grechangedim{moraadjustment}{0.050 cm}{scalable}% +% This version is for when punctum mora is before a bar. +\grechangedim{moraadjustmentbar}{0.050 cm}{scalable}% +% space after punctum mora and augmentum duplex +\grechangedim{spaceaftersigns}{0.08203 cm plus 0.0082 cm minus 0.0082 cm}{scalable}% +% space after a clef at the beginning of a line +\grechangedim{spaceafterlineclef}{0.23 cm plus 0 cm minus 0.01367 cm}{scalable}% +% space after a clef at the beginning of a line, when the clef and first note are vertically distant +\grechangedim{shortspaceafterlineclef}{0.18 cm plus 0 cm minus 0.01367 cm}{scalable}% +% minimal space between notes of different words +\grechangedim{interwordspacenotes}{0.29 cm plus 0.05 cm minus 0.05 cm}{scalable}% +% minimal space between notes of the same syllable. +\grechangedim{intersyllablespacenotes}{0.24 cm}{scalable}% +% stretching added in the case where the text of two syllables of the same word are +% separated with an automatic hyphen +\grechangedim{intersyllablespacestretchhyphen}{0cm plus 0.05cm}{scalable}% +% minimal space between letters of different words. +\grechangedim{interwordspacetext}{0.17 cm plus 0.05 cm minus 0.05 cm}{scalable}% +% Versions of interword spaces for euouae blocks +\grechangedim{interwordspacenotes@euouae}{0.23 cm plus 0.1 cm minus 0.05 cm}{scalable}% +\grechangedim{interwordspacetext@euouae}{0.21 cm plus 0.1 cm minus 0.05 cm}{scalable}% +% versions of note spaces when the first note of the second syllable is an alteration +% those are used in euouae blocks +\grechangedim{interwordspacenotes@alteration}{0.1 cm plus 0.07 cm minus 0.01 cm}{scalable}% +\grechangedim{intersyllablespacenotes@alteration}{0.1 cm}{scalable}% +% space between notes of a bivirga or trivirga +\grechangedim{bitrivirspace}{0.06927 cm plus 0.00182 cm minus 0.00546 cm}{scalable}% +% space between notes of a bistropha or tristrophae +\grechangedim{bitristrospace}{0.06927 cm plus 0.00182 cm minus 0.00546 cm}{scalable}% +% +%%%%%%%%%%%%%%%%%%%% +% puncta inclinata % +%%%%%%%%%%%%%%%%%%%% +% +% space between two descending punctum inclinatum +\grechangedim{punctuminclinatumshift}{-0.03918 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +% space between two descending or ascending punctum inclinatum at the unison +\grechangedim{punctuminclinatumunisonshift}{0.05286 cm plus 0.00728 cm minus 0.00455 cm}{scalable}% +% space before descending puncta inclinata +\grechangedim{beforepunctainclinatashift}{0.05286 cm plus 0.00728 cm minus 0.00455 cm}{scalable}% +% space between a descending punctum inclinatum and a punctum inclinatum deminutus +\grechangedim{punctuminclinatumanddebilisshift}{-0.02278 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +% space between two punctum inclinatum deminutus +\grechangedim{punctuminclinatumdebilisshift}{-0.00728 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +% space between descending puncta inclinata, larger ambitus (range=3rd) +\grechangedim{punctuminclinatumbigshift}{0.07565 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +% space between descending puncta inclinata, larger ambitus (range=4th or 5th) +\grechangedim{punctuminclinatummaxshift}{0.17865 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +% space between two ascending punctum inclinatum +\grechangedim{ascendingpunctuminclinatumshift}{-0.03918 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +% space between a punctum inclinatum and a punctum inclinatum deminutus, ascending +\grechangedim{ascendingpunctuminclinatumanddebilisshift}{-0.02278 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +% space between ascending puncta inclinata, larger ambitus (range=3rd) +\grechangedim{ascendingpunctuminclinatumbigshift}{0.07565 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +% space between ascending puncta inclinata, larger ambitus (range=4th or 5th) +\grechangedim{ascendingpunctuminclinatummaxshift}{0.17865 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +% space between a punctum inclinatum and a no-bar glyph one pitch below +\grechangedim{descendinginclinatumtonobarshift}{-0.00073 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +% space between a punctum inclinatum and a no-bar glyph two pitches below +\grechangedim{descendinginclinatumtonobarbigshift}{0.10927 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +% space between a punctum inclinatum and a no-bar glyph three or four pitches below +\grechangedim{descendinginclinatumtonobarmaxshift}{0.23927 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +% space between a punctum inclinatum and a no-bar glyph one pitch above +\grechangedim{ascendinginclinatumtonobarshift}{-0.02473 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +% space between a punctum inclinatum and a no-bar glyph two pitches above +\grechangedim{ascendinginclinatumtonobarbigshift}{0.04427 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +% space between a punctum inclinatum and a no-bar glyph three or four pitches above +\grechangedim{ascendinginclinatumtonobarmaxshift}{0.12927 cm plus 0.00363 cm minus 0.00363 cm}{scalable}% +% space between two descending punctum inclinatum glyphs in an ascent +\grechangedim{descendingpunctuminclinatumascendingshift}{-0.07918 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +% space between two ascending punctum inclinatum glyphs in an descent +\grechangedim{ascendingpunctuminclinatumdescendingshift}{-0.07918 cm plus 0.0009 cm minus 0.0009 cm}{scalable}% +% space between two unison punctum inclinatum glyphs (at the unison) +\grechangedim{unisonpunctuminclinatumshift}{0.05286 cm plus 0.00728 cm minus 0.00455 cm}{scalable}% + +% +%%%%%%%% +% bars % +%%%%%%%% +% +% bars inside syllables +% +\grechangedim{bar@virgula}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +% short versions are when the notes are very low (virgula, minima, and minimis only) +\grechangedim{bar@virgula@short}{0.13 cm plus 0.05 cm minus 0.00469 cm}{scalable}% +\grechangedim{bar@minimis}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +\grechangedim{bar@minimis@short}{0.12 cm plus 0.05 cm minus 0.00469 cm}{scalable}% +\grechangedim{bar@minima}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +\grechangedim{bar@minima@short}{0.12 cm plus 0.05 cm minus 0.00469 cm}{scalable}% +\grechangedim{bar@minor}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +% dominican bars +\grechangedim{bar@dominican}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +\grechangedim{bar@maior}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +\grechangedim{bar@finalis}{0.1823 cm plus 0.22787 cm minus 0.00469 cm}{scalable}% +% space added before the final divisio finalis (old bar spacing algorithm only) +\grechangedim{bar@finalfinalis}{0.29169 cm plus 0.07292 cm minus 0.27345 cm}{scalable}% +% +% bars having their own syllable, with text associated (new bar spacing algorithm only) +% plus or minus here will trigger some problems +% +\grechangedim{bar@virgula@standalone@text}{0.2323 cm}{scalable}% +\grechangedim{bar@virgula@standalone@text@short}{0.19 cm}{scalable}% +\grechangedim{bar@minimis@standalone@text}{0.2323 cm}{scalable}% +\grechangedim{bar@minimis@standalone@text@short}{0.19 cm}{scalable}% +\grechangedim{bar@minima@standalone@text}{0.2323 cm}{scalable}% +\grechangedim{bar@minima@standalone@text@short}{0.19 cm}{scalable}% +\grechangedim{bar@minor@standalone@text}{0.2323 cm}{scalable}% +\grechangedim{bar@dominican@standalone@text}{0.2323 cm}{scalable}% +\grechangedim{bar@maior@standalone@text}{0.2323 cm}{scalable}% +\grechangedim{bar@finalis@standalone@text}{0.2323 cm}{scalable}% +% actual space before divisio finalis, not additional one +\grechangedim{bar@finalfinalis@standalone@text}{0.29169 cm}{scalable}% +% +% bars having their own syllable, with no text associated (new bar spacing algorithm only) +% +\grechangedim{bar@virgula@standalone@notext}{0.2 cm}{scalable}% +\grechangedim{bar@virgula@standalone@notext@short}{0.19 cm}{scalable}% +\grechangedim{bar@minimis@standalone@notext}{0.2 cm}{scalable}% +\grechangedim{bar@minimis@standalone@notext@short}{0.19 cm}{scalable}% +\grechangedim{bar@minima@standalone@notext}{0.2 cm}{scalable}% +\grechangedim{bar@minima@standalone@notext@short}{0.19 cm}{scalable}% +\grechangedim{bar@minor@standalone@notext}{0.2323 cm}{scalable}% +\grechangedim{bar@dominican@standalone@notext}{0.2323 cm}{scalable}% +\grechangedim{bar@maior@standalone@notext}{0.2323 cm}{scalable}% +\grechangedim{bar@finalis@standalone@notext}{0.2323 cm}{scalable}% +\grechangedim{bar@finalfinalis@standalone@notext}{0.29169 cm}{scalable}% +% +% minimal space between letters of different syllable texts for text around bars +% (new bar spacing algorithm only) +\grechangedim{interwordspacetext@bars}{0.18 cm}{scalable}% +% minimal space between letters of different syllable texts for text around bars, +% euouae context +\grechangedim{interwordspacetext@bars@euouae}{0.18 cm}{scalable}% +\grechangedim{interwordspacetext@bars@notext}{0.19 cm}{scalable}% +% minimal space between letters of different syllable texts for text around bars, +% euouae context +\grechangedim{interwordspacetext@bars@notext@euouae}{0.18 cm}{scalable}% +% rubber length that will be added around bars in new bar spacing algorithm +\grechangedim{bar@rubber}{0 cm plus 0.025 cm minus 0.025 cm}{scalable}% +% in the case of an alteration after a bar, the alteration will "protrude" left of this value +% think of it as some kind of moraadjustmentbar +\grechangedim{alterationadjustmentbar}{0.07 cm}{scalable}% +% additional space that will appear around bars that are preceded by a custos and followed by a key. +\grechangedim{spacearoundclefbars}{0.03645 cm plus 0.00455 cm minus 0.0009 cm}{scalable}% +% space between the text of previous syllable and text associated with a bar (old bar spacing algorithm only) +\grechangedim{textbartextspace}{0.24611 cm plus 0.13672 cm minus 0.04921 cm}{scalable}% +% minimal space between a note and a bar (old algorithm only) +\grechangedim{notebarspace}{0.31903 cm plus 0.27345 cm minus 0.02824 cm}{scalable}% +% Maximum offset between a bar and its associated text when the text goes left of the bar (new bar spacing algorithm only) +\grechangedim{maxbaroffsettextleft}{0.3 cm}{scalable}% +% Same as maxbaroffsettextleft when text goes right of the bar +\grechangedim{maxbaroffsettextright}{0.15 cm}{scalable}% +% Maximum offset between a no-bar (i.e. something like `text()` in gabc) and its associated text when the text goes left of the no-bar (new bar spacing algorithm only) +\grechangedim{maxbaroffsettextleft@nobar}{12 cm}{scalable}% +% Same as maxbaroffsettextleft@nobar when text goes right of the no-bar +\grechangedim{maxbaroffsettextright@nobar}{12 cm}{scalable}% +% Space between the two bars of a divisio finalis +% Maximum offset between a bar and its associated text when the text goes left of the bar and the bar terminates a line (i.e. something line `text(::z)` in gabc) (new bar spacing algorithm only) +\grechangedim{maxbaroffsettextleft@eol}{0.0 cm}{scalable}% +% Same as maxbaroffsettextleft@eol when text goes right of the bar +\grechangedim{maxbaroffsettextright@eol}{0 cm}{scalable}% +\grechangedim{divisiofinalissep}{0.1094 cm}{scalable}% +% +% +% maximal space between two syllables for which we consider a dash is not needed +\grechangedim{maximumspacewithoutdash}{0 cm}{scalable}% +% an extensible space for the beginning of lines +\grechangedim{afterclefnospace}{0 cm plus 0.27345 cm minus 0 cm}{scalable}% +% space between the initial and the beginning of the score +\grechangedim{afterinitialshift}{0.2 cm}{scalable}% +% space before the initial +\grechangedim{beforeinitialshift}{0.2 cm}{scalable}% +% when bolshifts are enabled, minimum space between beginning of line and first syllable text +\grechangedim{minimalspaceatlinebeginning}{0.05 cm}{scalable}% +% space to force the initial width to. Ignored when 0. +\grechangedim{manualinitialwidth}{0 cm}{scalable}% +% minimum width of the initial. Ignored when manualinitialwidth is non-zero. +\grechangedim{minimalinitialwidth}{0 cm}{scalable}% +% distance to move the initial up by +\grechangedim{initialraise}{0 cm}{scalable}% +% Space between lines in the annotation +\grechangedim{annotationseparation}{0.05 cm}{scalable}% +% Amount to raise (positive) or lower (negative) the annotations from the default position +\grechangedim{annotationraise}{-0.2 cm}{scalable}% +% Space between lines in the commentary +\grechangedim{commentaryseparation}{0.05 cm}{scalable}% +% Amount to raise (positive) or lower (negative) the commentary from the default position (base line of bottom commentary aligned with top line of staff) +\grechangedim{commentaryraise}{0.2 cm}{scalable}% +% space at the beginning of the lines if there is no clef +\grechangedim{noclefspace}{0.1 cm}{scalable}% +% space around a clef change +\grechangedim{clefchangespace}{0.27345 cm plus 0.14584 cm minus 0.01367 cm}{scalable}% +% When \gre@clivisalignment is 2, this distance is the maximum length of the consonants after vowels for which the clivis will be aligned on its center. +\grechangedim{clivisalignmentmin}{0.3 cm}{scalable}% + +%%%%%%%%%%%%%%%%%% +% vertical spaces +%%%%%%%%%%%%%%%%%% + +% the amount to shift down: +% (a) low choral signs that are not lower than the note, regardless of whether +% it's on a line or in a space +% (b) high choral signs and low choral signs that are lower than the note which +% are in a space +\grechangedim{choralsigndownshift}{0.00911 cm}{scalable}% +% the amount to shift up: +% (a) high choral signs and low choral signs that are lower than the note which +% are on a line +\grechangedim{choralsignupshift}{0.04556 cm}{scalable}% +% the space for the translation +\grechangedim{translationheight}{0.5 cm}{scalable}% +%the space above the lines +\grechangedim{spaceabovelines}{0 cm}{scalable}% +% this counter is the threshold above which we start accounting notes above +% lines for additional space above lines. For instance with a threshold of +% 2 and a staff of 4 lines, notes with a pitch of k and l will not interfere +% with the space above lines +\grechangecount{additionaltopspacethreshold}{2}% +% same, for notes taken into account for alt text vertical position +\grechangecount{additionaltopspacealtthreshold}{0}% +% same, for notes taken into account for nabc vertical position +\grechangecount{additionaltopspacenabcthreshold}{4}% +%the space between the lines and the bottom of the text +\grechangedim{spacelinestext}{0.60617 cm}{scalable}% +%the per-note additional space between lines and the bottom of the text +\grechangedim{noteadditionalspacelinestext}{0.14413 cm}{scalable}% +% this counter is the number of low notes which will add on the +% noteadditionalspacelinestext. For instance, with a threshold of 2, every +% note below c will add noteadditionalspacelinestext space for each pitch needed +% below c, accounting for the various signs. +\grechangecount{noteadditionalspacelinestextthreshold}{2}% +%the space beneath the text +\grechangedim{spacebeneathtext}{0 cm}{scalable}% +% height of the text above the note line +\grechangedim{abovelinestextraise}{-0.1 cm}{scalable}% +% height that is added at the top of the lines if there is text above the lines (it must be bigger than the text for it to be taken into consideration) +\grechangedim{abovelinestextheight}{0.3 cm}{scalable}% +% an additional shift you can give to the brace above the bars if you don't like it +\grechangedim{braceshift}{0 cm}{scalable}% +% a shift you can give to the accentus above the curly brace +\grechangedim{curlybraceaccentusshift}{-0.05 cm}{scalable}% +% the amount to shift the over slur up +\grechangedim{overslurshift}{0.05000 cm}{scalable}% +% the amount to shift the under slur up +\grechangedim{underslurshift}{0.01000 cm}{scalable}% +% shift for a horizontal episema over a note in a low position in the space +\grechangedim{overhepisemalowshift}{0.02287 cm}{scalable}% +% shift for a horizontal episema over a note in a high position in the space +\grechangedim{overhepisemahighshift}{0.10066 cm}{scalable}% +% shift for a horizontal episema under a note in a low position in the space +\grechangedim{underhepisemalowshift}{0.02763 cm}{scalable}% +% shift for a horizontal episema under a note in a high position in the space +\grechangedim{underhepisemahighshift}{0.10981 cm}{scalable}% +% shift for a horizontal episema in the middle of a space +\grechangedim{hepisemamiddleshift}{0.07206 cm}{scalable}% +% shift for a vertical episema in a low position in the space +\grechangedim{vepisemalowshift}{-0.01262 cm}{scalable}% +% shift for a vertical episema in a high position in the space +\grechangedim{vepisemahighshift}{0.06634 cm}{scalable}% +% shift for a punctum mora for a note on a line +\grechangedim{linepunctummorashift}{-0.06314 cm}{scalable}% +% shift for a punctum mora for a note in a space +\grechangedim{spacepunctummorashift}{-0.02013 cm}{scalable}% +% shift for a punctum mora for the second note (in a space) of a pes with ambitus one +\grechangedim{spaceamonepespunctummorashift}{0.00183 cm}{scalable}% +% shift for a punctum mora for the second note in a porrectus, on a line +\grechangedim{lineporrectuspunctummorashift}{0.04575 cm}{scalable}% +% shift for a punctum mora for the second note in a porrectus, in a space +\grechangedim{spaceporrectuspunctummorashift}{0.00000 cm}{scalable}% +% shift for a rare sign +\grechangedim{raresignshift}{0.18302 cm}{scalable}% +% up-shift for a bracket +\grechangedim{bracketupshift}{0.03000 cm}{scalable}% +% down-shift for a bracket +\grechangedim{bracketdownshift}{0.04000 cm}{scalable}% +% + +%%%%%%%%%% +%% Line spacings +%%%%%%%%%% +\grechangedim{parskip}{1pt plus 1pt}{scalable}% +\grechangedim{lineskip}{0pt plus 1pt}{scalable}% +\grechangedim{baselineskip}{55pt plus 5pt minus 5pt}{scalable}% +\grechangedim{lineskiplimit}{0pt}{scalable}% From 36483afb7a82ebb6695d3823de753b2b99ef3384 Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Thu, 30 May 2019 14:38:04 -0400 Subject: [PATCH 09/11] CHANGELOG entry --- CHANGELOG.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79260872b..b3d1f5d1c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ As of v3.0.0 this project adheres to [Semantic Versioning](http://semver.org/). ### Fixed - Fixed some problem in 900_gregorio.xml (Scribus render frame tool). First, the use of `filecontents` rather than `filecontents*` was leading to a comment header that made it impossible for Gregorio to find the gabc headers in the temporary score file. Further, some of the indenting (which makes the file more human readable) was leading to errors in the formatting of the created files because they are processed in a way which handles whitespace differently from XML. See [#1457](https://github.com/gregorio-project/gregorio/issues/1457). +### Added +- Default spacings are now designated internal and thus always loaded. `gsp-sample.tex` is added to the `doc` folder to show users how to create their own custom spacing configuration. As part of this change, spacing configuration files no longer need to be complete. Since the default configuration is always loaded at package startup, all needed penalties and spacings will be defined and the user's configuration file need only specify those whose value they wish to customize. Addresses issues raised in [#1460](https://github.com/gregorio-project/gregorio/issues/1460). **This is a change to the user interface and warrants a major release.** + ## [Unreleased][CTAN] ### Fixed - Staff line thickness is now set in gsp-default.tex. This corrects a problem with the staff lines changing thickness when the default spacing configuration is loaded while the staff size is something other than the default (17). See [#1461](https://github.com/gregorio-project/gregorio/issues/1461). From 9ecf4ca9100fdca6004bccac6e540fb6dbf7ffec Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Thu, 30 May 2019 14:48:24 -0400 Subject: [PATCH 10/11] Document namespace changes --- doc/Command_Index_User.tex | 13 +------------ doc/Command_Index_internal.tex | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/doc/Command_Index_User.tex b/doc/Command_Index_User.tex index 0a943802f..bd1e05745 100644 --- a/doc/Command_Index_User.tex +++ b/doc/Command_Index_User.tex @@ -251,17 +251,6 @@ \subsubsection{Overall Size} \subsubsection{Fine Tuning Dimensions} In addition to providing control over the overall size of your scores, Gregorio\TeX\ allows you to fine tune the spacings around and between the various elements using the following functions. -\macroname{\textbackslash grecreatedim}{\{\#1\}\{\#2\}\{\#3\}}{gregoriotex-spaces.tex} -Macro to create one of Gregorio\TeX’s distances. Used to initialize distances in a space configuration file. For an example of such a file, please see \textit{gsp-default.tex}, which contains the default spacing configuration for Gregorio\TeX. - -\begin{argtable} - \#1 & string & The name of the distance to be changed. See \nameref{distances} below.\\ - \#2 & string & The distance in string format. \textbf{Note:} You cannot use a length register for this argument. You \emph{must} use a string because of the way that Gregorio\TeX\ handles spaces.\\ - \#3 & \texttt{fixed} & Distance will not scale when staff size is changed.\\ - & \texttt{scalable} & Distance will scale when staff size is changed.\\ - & \texttt{inherited} & Distance will inherit its value from another distance. When this argument is used, then \#2 should be the name of another Gregorio\TeX\ distance. -\end{argtable} - \macroname{\textbackslash grechangedim}{\{\#1\}\{\#2\}\{\#3\}}{gregoriotex-spaces.tex} Macro to change one of Gregorio\TeX’s distances. This function will check to make sure the distance you are trying to change exists first. @@ -322,7 +311,7 @@ \subsubsection{Fine Tuning Dimensions} \end{argtable} \macroname{\textbackslash greloadspaceconf}{\{\#1\}}{gregoriotex-spaces.tex} -Macro to load a space configuration file. Space configuration file names have the format \verb=gsp-identifier.tex= and must be in the same directory as your project or in your texmf directory. +Macro to load a space configuration file. Space configuration file names have the format \verb=gsp-identifier.tex= and must be in the same directory as your project or in your texmf directory. See \verb=gsp-sample.tex= for an example file. \begin{argtable} \#1 & string & The identifier of the space configuration file. diff --git a/doc/Command_Index_internal.tex b/doc/Command_Index_internal.tex index 662b833d4..4d1f703b9 100644 --- a/doc/Command_Index_internal.tex +++ b/doc/Command_Index_internal.tex @@ -2011,6 +2011,20 @@ \subsection{Protrusion factors} \subsection{Distances} + +\macroname{\textbackslash gre@createdim}{\{\#1\}\{\#2\}\{\#3\}}{gregoriotex-spaces.tex} +Macro to create one of Gregorio\TeX’s distances. Used to initialize distances in \textit{gsp-default.tex}. + +\begin{argtable} + \#1 & string & The name of the distance to be changed. See \nameref{distances} below.\\ + \#2 & string & The distance in string format. \textbf{Note:} You cannot use a length register for this argument. You \emph{must} use a string because of the way that Gregorio\TeX\ handles spaces.\\ + \#3 & \texttt{fixed} & Distance will not scale when staff size is changed.\\ + & \texttt{scalable} & Distance will scale when staff size is changed.\\ + & \texttt{inherited} & Distance will inherit its value from another distance. When this argument is used, then \#2 should be the name of another Gregorio\TeX\ distance. +\end{argtable} + + + All of the distances listed in \nameref{distances} have an internal associated with them, of the form of \verb=\gre@space@*@*=, which stores the value of the distance (in string representation). The first wildcard is either From c7ff57cddf656f7497a2795b6e2bd7c2bb06362f Mon Sep 17 00:00:00 2001 From: "Br. Samuel Springuel" Date: Tue, 11 Jun 2019 20:31:31 -0400 Subject: [PATCH 11/11] Adjust `spacelinestext` The value of `spacelinestext` (distance from the lines to the baseline of the lyrics) was previously a fixed value, which meant that especially large lyrics would overlap with low notes (and small lyrics would seem very far from the lines). By changing it to a font based value, the lyrics should naturally adjust their position based on their size. The converted value corresponds to keeping the lyrics in the same place for 11pt Alegrya (the test font), as this causes the fewest tests to change. --- CHANGELOG.md | 1 + tex/gsp-default.tex | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b3d1f5d1c..c65ff13b1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ As of v3.0.0 this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased][develop] ### Fixed - Fixed some problem in 900_gregorio.xml (Scribus render frame tool). First, the use of `filecontents` rather than `filecontents*` was leading to a comment header that made it impossible for Gregorio to find the gabc headers in the temporary score file. Further, some of the indenting (which makes the file more human readable) was leading to errors in the formatting of the created files because they are processed in a way which handles whitespace differently from XML. See [#1457](https://github.com/gregorio-project/gregorio/issues/1457). +- `spacelinestext` is now based on the lyric font size instead of being a fixed distance. As a result, large lyrics should no longer overlap with low notes. See [#1261](https://github.com/gregorio-project/gregorio/issues/1261). ### Added - Default spacings are now designated internal and thus always loaded. `gsp-sample.tex` is added to the `doc` folder to show users how to create their own custom spacing configuration. As part of this change, spacing configuration files no longer need to be complete. Since the default configuration is always loaded at package startup, all needed penalties and spacings will be defined and the user's configuration file need only specify those whose value they wish to customize. Addresses issues raised in [#1460](https://github.com/gregorio-project/gregorio/issues/1460). **This is a change to the user interface and warrants a major release.** diff --git a/tex/gsp-default.tex b/tex/gsp-default.tex index fffed456c..742c647c2 100644 --- a/tex/gsp-default.tex +++ b/tex/gsp-default.tex @@ -361,7 +361,7 @@ % same, for notes taken into account for nabc vertical position \grechangecount{additionaltopspacenabcthreshold}{4}% %the space between the lines and the bottom of the text -\gre@createdim{spacelinestext}{0.60617 cm}{scalable}% +\gre@createdim{spacelinestext}{3.48471ex}{fixed}% %the per-note additional space between lines and the bottom of the text \gre@createdim{noteadditionalspacelinestext}{0.14413 cm}{scalable}% % this counter is the number of low notes which will add on the