Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | core: set more precision of the SVG heights to avoid page overflow with %%fit2box Reported by Laurent Yin. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
c1fdec018d3e17b9cf4c30dacc7502bc |
| User & Date: | jef 2025-05-25 11:20:12.111 |
Context
|
2025-05-25
| ||
| 13:29 | batch: tosvg: crash since previous commit ... (check-in: ff4e617199 user: jef tags: trunk) | |
| 11:20 | core: set more precision of the SVG heights to avoid page overflow with %%fit2box ... (check-in: c1fdec018d user: jef tags: trunk) | |
|
2025-05-24
| ||
| 17:17 | modules: fit2box: fix: keep the exact page scale to avoid page overflow ... (check-in: c0db0e2b00 user: jef tags: trunk) | |
Changes
Changes to core/svg.js.
| ︙ | ︙ | |||
1360 1361 1362 1363 1364 1365 1366 | ' tune' + tunes.length + '"\n' // tune index for play posy *= cfmt.scale if (user.imagesize != undefined) head += user.imagesize else head += ' width="' + w | | | | 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 | ' tune' + tunes.length + '"\n' // tune index for play posy *= cfmt.scale if (user.imagesize != undefined) head += user.imagesize else head += ' width="' + w + 'px" height="' + posy.toFixed(2) + 'px"' head += ' viewBox="0 0 ' + w + ' ' + posy.toFixed(2) + '">\n' head += fulldefs if (cfmt.bgcolor) head += '<rect width="100%" height="100%" fill="' + cfmt.bgcolor + '"/>\n' if (style || font_style) head += '<style>' + font_style + style + '\n</style>\n' |
| ︙ | ︙ |
Changes to modules/fit2box.js.
| ︙ | ︙ | |||
119 120 121 122 123 124 125 |
user.img_out = io // restore the normal output
return // no SVG
}
while (1) {
sv = r.shift() // next music line
if (!sv)
break
| | | 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 |
user.img_out = io // restore the normal output
return // no SVG
}
while (1) {
sv = r.shift() // next music line
if (!sv)
break
v = sv.match(/viewBox="0 0 ([\d.]+) ([\d.]+)"/)
cl = sv.match(/class="([^"]+)"/) // "
//console.log("- sv ====\n"+sv+"\n ====\n cl:"+cl)
if (!tit // the first SVG is the tune header
|| cl[1] == "header"
|| cl[1] == "footer") {
hh += +v[2]
if (cl[1] != "header"
|
| ︙ | ︙ |
Changes to modules/page.js.
| ︙ | ︙ | |||
353 354 355 356 357 358 359 | abc2svg.page.close_page(page) abc2svg.page.open_page(page, 0) } page.blk = [] // in block page.hb = page.h // keep the offset of the start of tune break case "<svg": // SVG image | | | 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 |
abc2svg.page.close_page(page)
abc2svg.page.open_page(page, 0)
}
page.blk = [] // in block
page.hb = page.h // keep the offset of the start of tune
break
case "<svg": // SVG image
h = Number(p.match(/viewBox="0 0 [\d.]+ ([\d.]+)"/)[1])
while (h + page.h >= page.hmax) { // if (still) page overflow
ht = page.blk ? 0 :
this.cfmt().topspace // tune continuation
if (page.blk) {
if (!page.hb) { // overflow on the first page
blkcpy(page)
|
| ︙ | ︙ |