This is about the speedata Publisher. Room language is English (and perhaps German)
pgundlach on develop
Change MetaPost variables, add … Bugfix caching When having run… Version 4.3.14 and 1 more (compare)
pgundlach on develop
D: new section about compatibil… MP changes: add Td/graphics, ad… MP: csscolors.mp You can now u… and 3 more (compare)
pgundlach on develop
Hyphenation exception language … More flexible Inkscape command … Version 4.3.12 (compare)
pgundlach on develop
Bugfix plain.mp not in the dist… B: Inkscape on windows Don't f… Include plain.mp into distribut… and 1 more (compare)
pgundlach on develop
Better error message for error … Version 4.3.9 Basic MetaPost functionality T… and 1 more (compare)
Thanks, that works, sorry I missed it.
On another topic, is there any way to deal with situations like the below one?
I've been searching around but can't find any starting point at least.
<para>
Please refer to the <link address="page12">Chapter 1</link> for a brief history of the <tool>hammer</tool> and more details about its usage.
</para>
As you can see <para> element has also text and XML child elements alternating.
For the <link> I would like to create a link using <A>
For the <tool> I would like to create a marker.
Is there any way to achieve this in speedata?
<data>
<para>
<val>Please refer to the </val>
<link address="page12">Chapter 1</link>
<val>for a brief history of the </val>
<tool>hammer</tool>
<val>and more details about its usage. </val>
</para>
</data>
@pgundlach That sounds quite complex, these were just some examples, but there are many many more situations, this would mean we should create a pre-processing program to adjust the XML to these requirements.
Something else I noticed, regarding the internal links to a PDF page, the attribute "link" of the <A> element can only be text.
It would be better if this attribute would allow X-path expressions. Because at the moment the link destination has to be hardcoded in the layout. In many cases you can generate the link and the destination with variables.
@MihailCosmin For the first issue: I usually use a preprocessing stage when I get input from some source that I can't control. The publisher comes with Saxon 9 and you can call it with the lua script.
The second issue is quite easy to solve: include your xpath into curly braces, such as link="{ xpath expression }"
@MihailCosmin Good question. Depending on how you output paragraphs / text it could be possible now...
If you output a paragraph one by one with PlaceObject or Output, you can ask for the current frame and line number and draw the rules yourself. If you place multiple objects in one go, you are out of luck in the current version.
This worked well for text paragraphs, but for table rows it won't work, right? For each row I get the row the whole table was output.
I think this is what you meant with "If you place multiple objects in one go, you are out of luck in the current version."
Will there be a solution in the next version?
Found a workaround for the moment. Works quite well.
For each table row I add first an extra <td> with no borders that has and empty paragraph.
I check if the row (from the data) should have a change bar, then output the extra <td> with a border on the left side.
The change bar is a bit more inside the page than the text ones, but it's satisfactory for now.
@EmmanuelOga The data XML is processed while executing the layout.xml file. You could preprocess the data file if you want (that is why saxon is part of the distribution)
The logic in the layout file is a mixture of XSLT and HTML, so not directly comparable. I assume you have found the hello world example in the manual? https://doc.speedata.de/publisher/en/helloworld/#ch-helloworld