]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.75
authorfred <fred>
Sun, 24 Mar 2002 19:47:52 +0000 (19:47 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:47:52 +0000 (19:47 +0000)
input/book.tex [new file with mode: 0644]
lily/break.cc
lily/wordwrap.cc

diff --git a/input/book.tex b/input/book.tex
new file mode 100644 (file)
index 0000000..9a1e164
--- /dev/null
@@ -0,0 +1,67 @@
+% should be scriptified, probably
+\documentclass{article}
+\input lilyponddefs
+\title{Bach's Cello suites}
+
+\author{A.U.Thor}
+\begin{document}
+\maketitle
+
+\section{Banjo}
+
+It is normal to have some text around various figures. Such as this
+text which is merely to add some weight to the page. In het midden van
+mei/Als de nachtegaals zingen/En de avondglans huwt/aan de morgense schijn.
+Als de schuchtere geur/ van de bloeiende seringen/zich mengt met de
+geur/van de late jasmijn. Op een tochtje langs de rijn.
+
+\def\EndLilyPondOutput{}
+\begin{figure}[h]
+  \begin{center}
+    \leavevmode
+    \input bach1.out
+    \caption{original}
+  \end{center}
+\end{figure}
+
+Voglio centocinquante gramme di gorgonzola, tre di questi pannini e due bionde
+ragazze con ciocolatta e panna, per favore. Presto! Non posso parlare
+o scrivere la lingua italiana, ma provo.
+
+\section{Hammond-organ and electric guitar}
+
+It is normal to have some text around various figures. Such as this
+text which is merely to add some weight to the page. In het midden van
+mei/Als de nachtegaals zingen/En de avondglans huwt/aan de morgense schijn.
+Als de schuchtere geur/ van de bloeiende seringen/zich mengt met de
+geur/van de late jasmijn. Op een tochtje langs de rijn.
+
+\begin{figure}[h]
+  \begin{center}
+    \leavevmode
+\input bach2.out
+    
+    \caption{interpretation 1}
+  \end{center}
+\end{figure}
+
+It is normal to have some text around various figures. Such as this
+text which is merely to add some weight to the page. In het midden van
+mei/Als de nachtegaals zingen/En de avondglans huwt/aan de morgense schijn.
+Als de schuchtere geur/ van de bloeiende seringen/zich mengt met de
+geur/van de late jasmijn. Op een tochtje langs de rijn.
+
+\begin{figure}[h]
+  \begin{center}
+    \leavevmode
+\input bach3.out
+    
+    \caption{interpretation 2}
+  \end{center}
+\end{figure}
+
+Voglio centocinquante gramme di gorgonzola, tre di questi pannini e due bionde
+ragazze con ciocolatta e panna, per favore. Presto! Non posso parlare
+o scrivere la lingua italiana, ma provo.
+
+\end{document}
index 0f0aabe68113f4166402e6e6b0b028b29d7fbf98..826346f4b3cf8846cb1e3a4a69581a75f6385538 100644 (file)
@@ -20,22 +20,35 @@ Line_of_cols
 Break_algorithm::find_breaks() const
 {
     Line_of_cols retval;
-    for (iter_top(pscore_.cols,c); c.ok(); c++)
+    for (iter_top(pscore_.cols,c); c.ok(); c++) {
        if (c->breakable_b())
            retval.push(c);
-    assert(retval.top() == pscore_.cols.bottom().ptr());
+    }
+    if ( linelength <=0)
+       while ( retval.size() >2)
+           retval.del(1);
+
     return retval;
 }
 
+void
+Break_algorithm::generate_spacing_problem(Line_of_cols curline, Spacing_problem & sp)const
+{
+    sp.add_column(curline[0], true, 0.0);
+    for (int i=1; i< curline.size()-1; i++)
+       sp.add_column(curline[i]);
+
+    if ( linelength > 0)
+       sp.add_column(curline.top(), true, linelength);
+    else
+       sp.add_column(curline.top());
+}
 
 Col_hpositions
 Break_algorithm::stupid_solution(Line_of_cols curline)const
 {
     Spacing_problem sp;
-    sp.add_column(curline[0], true, 0.0);
-    for (int i=1; i< curline.size()-1; i++)
-       sp.add_column(curline[i]);
-    sp.add_column(curline.top(), true, linelength);
+    generate_spacing_problem(curline, sp);
    Col_hpositions colhpos;
    colhpos.cols = curline;
    colhpos.energy = INFTY;
@@ -49,11 +62,7 @@ Col_hpositions
 Break_algorithm::solve_line(Line_of_cols curline) const
 {
    Spacing_problem sp;
-
-   sp.add_column(curline[0], true, 0.0);
-   for (int i=1; i< curline.size()-1; i++)
-       sp.add_column(curline[i]);
-   sp.add_column(curline.top(), true, linelength);
+   generate_spacing_problem(curline, sp);
 
    // misschien  moeven uit Spacing_problem? 
    for (iter_top(pscore_.suz,i); i.ok(); i++) {
@@ -80,6 +89,9 @@ Break_algorithm::Break_algorithm(PScore&s)
 bool
 Break_algorithm::feasible(Line_of_cols curline) const
 {
+    if (linelength <=  0)
+       return true;
+    
     Real l =0;
     for (int i=0; i < curline.size(); i++)
        l +=curline[i]->width().length();
@@ -99,3 +111,11 @@ Break_algorithm::problem_OK() const
     assert(end->breakable_b());
 #endif
 }
+
+Array<Col_hpositions>
+Break_algorithm::solve()const
+{
+
+    return do_solve();
+}
+
index f0ddf035e3aeb981821bb8dd236daade0748b55b..5aefed16f3fc0e55e19a69b2fc4162a5f911777b 100644 (file)
@@ -17,7 +17,7 @@
    
     */
 Array<Col_hpositions>
-Word_wrap::solve()
+Word_wrap::do_solve()const
 {
     problem_OK();
     iter_top(pscore_.cols,curcol);