Skip to content

Commit

Permalink
Merge pull request #1024 from rpspringuel/extras
Browse files Browse the repository at this point in the history
Extras
  • Loading branch information
henryso committed Mar 10, 2016
2 parents 87f45bf + cd714a6 commit 52c64cb
Show file tree
Hide file tree
Showing 6 changed files with 45 additions and 21 deletions.
16 changes: 1 addition & 15 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,21 +65,7 @@ As of v3.0.0 this project adheres to [Semantic Versioning](http://semver.org/).
- Controls for tuning horizontal episema vertical position. See GregorioRef for details (for the change request, see [#872](https://github.com/gregorio-project/gregorio/issues/872)).
- More dimensions are tunable: `overhepisemalowshift`, `overhepisemahighshift`, `underhepisemalowshift`, `underhepisemahighshift`, `hepisemamiddleshift`, `vepisemalowshift`, `vepisemahighshift`, `linepunctummorashift`, `spacepunctummorashift`, `spaceamonepespunctummorashift`, `lineporrectuspunctummorashift`, `spaceporrectuspunctummorashift`, `raresignshift`. See GregorioRef for details (for the change request for most of these, see comments in [#872](https://github.com/gregorio-project/gregorio/issues/872)).
- A new dimension, `intersyllablespacestretchhyphen` is now available to add stretching in the case of syllables separated by an hyphen (see comments in [#922](https://github.com/gregorio-project/gregorio/issues/922))
- A new algorithm for placing bar syllables has been added and is now the default. It should make both bars and text centered between respectively notes and text of previous and following syllable. It can be configured in many ways through the following:
- `maxbaroffsettextright`
- `maxbaroffsettextleft`
- `maxbaroffsettextright@nobar`
- `maxbaroffsettextleft@nobar`
- `maxbaroffsettextright@eol`
- `maxbaroffsettextleft@eol`
- `bar@*@standalone@text` (where `*` is the type of bar)
- `bar@*@standalone@notext` (where `*` is the type of bar)
- `interwordspacetext@bars`
- `interwordspacetext@bars@euouae`
- `interwordspacetext@bars@notext`
- `interwordspacetext@bars@notext@euouae`
- `bar@rubber`
The old spacing can be activated with `\gresetbarspacing{old}`. See the following for various aspects of the implementation:
- A new algorithm for placing bar syllables has been added and is now the default. See UPGRADE.md for more details. The old spacing can be activated with `\gresetbarspacing{old}`. See the following for various aspects of the implementation:
- [#767](https://github.com/gregorio-project/gregorio/issues/767)
- [#919](https://github.com/gregorio-project/gregorio/issues/919)
- [#944](https://github.com/gregorio-project/gregorio/issues/944)
Expand Down
22 changes: 19 additions & 3 deletions UPGRADE.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,13 +56,28 @@ In the past, Gregorio handled the notes of an `<eu>` block like any other, which

#### New algorithm

A new algorithm has been implemented but is turned off by default. We hope this will be a significant improvement over previous one, but it still has a few bugs. You can turn it on with
A new algorithm has been implemented and is turned on by default. We hope this will be a significant improvement over the previous one. The primary goal of the new algorithm is to place the bar line exactly between the notes which surround it and do the same with the text associated with the bar line. However, it will also keep the text and bar reasonably close together and with sufficent space between the bar syallable and the surrounding syllables (possibly introducing space to meet the competing interests). The new algorithm introduces several new spaces allowing the user to tune the algorithm:
- `maxbaroffsettextright`
- `maxbaroffsettextleft`
- `maxbaroffsettextright@nobar`
- `maxbaroffsettextleft@nobar`
- `maxbaroffsettextright@eol`
- `maxbaroffsettextleft@eol`
- `bar@*@standalone@text` (where `*` is the type of bar)
- `bar@*@standalone@notext` (where `*` is the type of bar)
- `interwordspacetext@bars`
- `interwordspacetext@bars@euouae`
- `interwordspacetext@bars@notext`
- `interwordspacetext@bars@notext@euouae`
- `bar@rubber`
If you prefer the old bar spacing algorithm, you can revert to that with:

```
\gresetbarspacing{new}
\gresetbarspacing{old}
```

If you do give it a try, please be sure to report any bugs you find.
Another big change in this algorithm is that empty syllables, i.e. ones without any notes, are now treated as a 0-width bar, not as a 0-width note. Thus if you were using this sort of syllable to insert space into your score, chances are the results will be different under the new algorithm and will require you to re-tweak your scores.


#### Renaming of spaces

Expand Down Expand Up @@ -103,6 +118,7 @@ If you were using `\scorereference`, `\GreScoreReference`, and/or `\grescorerefe

Three descending notes that have no other markings (such as liquescentia) will now be rendered as a clivis followed by a punctum. The older, incorrect behavior was to group them as three punctums joined by `!`. If you prefer this behavior, explicitly separate the notes with `!`.


## 4.0

### Font changes
Expand Down
2 changes: 2 additions & 0 deletions doc/Command_Index_User.tex
Original file line number Diff line number Diff line change
Expand Up @@ -787,6 +787,8 @@ \subsubsection{Text Elements}
\#1 & number & The number of lines required by the initial. If \texttt{0}, the score will have no separated initial.\\
\end{argtable}

\textbf{Nota Bene:} As currently implemented, you cannot set an initial which is larger than 2 lines and in order to do so you must set manual line breaks in the gabc for the first two lines.

\macroname{\textbackslash gresetmodenumbersystem}{\#1}{gregoriotex-main.tex}
Sets the number system used for the mode number.

Expand Down
5 changes: 3 additions & 2 deletions macosx/create_package.sh
Original file line number Diff line number Diff line change
Expand Up @@ -54,8 +54,9 @@ else
./build.sh --arch=x86_64
# If the build process fails we halt this script here, since we can't build the
# package without a properly compiled version of Gregorio.
if [ ! $? -eq 0 ]; then
exit $?
exit_code=$?
if [ ! $exit_code -eq 0 ]; then
exit $exit_code
fi
make DESTDIR=$BUILDDIR install
./install-gtex.sh dir:$BUILDDIR/tmp/gregorio
Expand Down
5 changes: 5 additions & 0 deletions tex/gregoriotex-main.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1249,6 +1249,11 @@

%macro called at the end of a score
\def\GreEndScore{%
\ifnum\gre@biginitial=1\relax%
\ifnum\gre@knownline<3\relax%
\gre@error{Score ended before finding the end\MessageBreak of the second line of a 2-line initial. Make sure\MessageBreak you have at least two manual line breaks in \MessageBreak your gabc}%
\fi%
\fi%
\global\gre@lastoflinecount=0\relax %
\gre@useautoeolcustos%
\GreEndEUOUAE{}%
Expand Down
16 changes: 15 additions & 1 deletion tex/gregoriotex-syllable.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1240,7 +1240,21 @@
}%
}%

\def\gresetinitiallines#1{\def\gre@initiallines{#1}}%
\def\gresetinitiallines#1{%
\IfInteger{#1}%
{%
\ifnum#1>-1\relax%
\ifnum#1<3\relax%
\def\gre@initiallines{#1}%
\else%
\gre@error{The argument for \protect\gresetinitiallines\space must be 0, 1, or 2}%
\fi%
\else%
\gre@error{The argument for \protect\gresetinitiallines\space must be positive}%
\fi%
}%
{\gre@error{\protect\gresetinitiallines\space takes a positive integer argument}}%
}%
\gresetinitiallines{1}% default to one-line initials

\def\GreSetInitialStyle#1{%%% DEPRECATED by 4.1
Expand Down

0 comments on commit 52c64cb

Please sign in to comment.