View Issue Details

IDProjectCategoryView StatusLast Update
0005975ScribusStory Editor / Text Framespublic2024-03-23 17:04
Reportermecirt Assigned Tocbradney  
PrioritynormalSeverityfeatureReproducibilityalways
Status resolvedResolutionfixed 
PlatformAMD64OSLinuxOS VersionOpenSuSE 10.2
Product Version1.3.4 
Fixed in Version1.7.0.svn 
Summary0005975: Wish: generate TOC from paragraph styles
DescriptionThe current TOC editor unfortunately isn't very useful for me. I want to use Scribus to create book layouts, where text may flow between frames as adjustments are made. Thus, text headings (which appear in the TOC) can also flow from one frame to another, and marking a frame as a TOC item is not sufficient, because I do not know which frame a heading will end up in.

Therefore, I'd like to see the TOC generator functionality extended to be able to extract TOC information from paragraph styles - in particular, to be able to mark a particular paragraph style as "include in TOC", and then all paragraphs that get assigned this particular style (a Heading one) would get added to the TOC, with their page number included.

To my understanding, the current TOC generator is not able to do this.

/ Tomas
TagsNo tags attached.
PatchNo

Relationships

related to 0004484 assignedcezaryece TOC generation: Several issues 
related to 0001371 assignedcezaryece Considering writing plugin to generate TOCs, Indexes, and "Continued on pg ... " messages 
related to 0001773 closedcbradney Extra attributes on frames and documents 
has duplicate 0008796 resolvedcbradney [feature request] more usable TOC 
has duplicate 0015640 closedjghali Wish: generate TOC from paragraph styles 
related to 0015049 confirmed Numbered Headings in different Text-Frames, when opening the document ... 

Activities

janD

2008-01-18 21:03

reporter   ~0018651

Last edited: 2008-01-18 21:04

This is my most wanted feature too.
A Programm without Style-Based TOC-Generation is almost useless for longer or structured Publications.

rdevries

2008-01-19 06:27

reporter   ~0018652

I agree that it would be a great feature.

louisdesjardins

2008-01-19 14:59

developer   ~0018656

Great idea!

Same could apply to Index, through character style (word style?). What do you think?

I guess that from the programming point of view, once we have that tag possibility set for paragraph style, the path is cleared for extending the similar feature to other kinds of styles. Right?

rdevries

2008-01-20 10:07

reporter   ~0018670

Yes indeed. It also would be handy if you can use other kind of styles in your TOC.

janD

2008-01-27 16:35

reporter   ~0018744

Once we have a function to locate specific styles on a page, it should be no problem to generate indexes too.
The problem is: The feature seems to be not planned. Endnotes and index is "acknowledged", but it is not clear, if "our" feature (status "new")is coming, although I think that the index-Feature-functions should make a style-based TOC possible as well.
TOC is mentioned in the Scribus-Roadmap (1.3.9) but it is "done" (so it is the one we have now)
It would be good if someone could find out if a style-based TOC-generation is planned. (maybe for the 1.3.9 ?)

Thaddeus

2011-01-06 23:24

reporter   ~0025303

Here is a Scripter script that could be adapted to do a TOC. I wrote it to search for string across the entire document.

Thaddeus

2011-01-06 23:24

reporter  

cezaryece

2011-01-10 11:03

updater   ~0025320

Style based TOC is under construction, see http://bugs.scribus.net/view.php?id=8796

JLuc

2017-11-29 19:04

developer   ~0044677

Thaddeus, your script hangs on scribus 1.5.3
It runs, messages "Finished" "All Done. Total hits found = 25" but never comes back to me.
I have to kill scribus.

Do you have a possible fix or an idea of what is the issue ?

JLuc

2017-11-29 19:23

developer   ~0044678

Last edited: 2017-11-29 19:23

OK i fixed the issue.
Here is updated script.
It runs for scribus 1.5.4 svn.
As is, it's far from being user friendly, but it's a possible start point to create an index builder. And there is more to do to create a TOC.

FindInTxtFrames.py (6,398 bytes)   
#!/usr/bin/env python
# -*- coding: utf-8 -*-

"""
  Find and report occurrences of a search-for string by using regular
  expressions. On the first run it creates a text frame
  (TxtFrameFind_Tfm) on first page if it does not exist elsewhere.
  By Thaddeus Koehller (a94e94c3e89ba4ff457ff6599d1aab295ba4be43)
"""

import string, re

try:
   from scribus import *
except ImportError:
   print "This script only runs from within Scribus."
   sys.exit(1)

#----------------------------------------------------------------------
PgIdx_int=1;                PgQty_int=0;                             TxtFrameCnt_int=0;        TxtHitCnt_int=0; i=-1;
PageItems_lst=[];           PgItem_lst=[];                           FramesContent_lst=[];     RegExRes_lst = [];
FrameContent_str="";        TxtFrameFind_str='TxtFrameFind_Tfm';
UserRegEx_str='';           RegExRes_str='';
TxtFrameFind_obj = None;

UserRegEx_str = valueDialog('Enter Regular Expression','Examples:\n\d{1,4}\sof\s\d{1,4}\n\s\s.+?\s\s\n.*__\n', '\s{3}.+?\s{3}');

if len(UserRegEx_str)<=0:
   statusMessage('Nothing to Do...')
   messageBox("Finished", 'Nothing to Do...', icon=scribus.ICON_NONE, button1=scribus.BUTTON_OK);
   exit();

# RegExPatt_obj = re.compile(r'\d{1,4}\sof\s\d{1,4}',re.I) # look for a string ending with underscores, like BlaBla____
RegExPatt_obj = re.compile(UserRegEx_str,re.I)

# RE Flag 	Meaning
# DOTALL, S 	Make . match any character, including newlines
# IGNORECASE, I 	Do case-insensitive matches
# LOCALE, L 	Do a locale-aware match
# MULTILINE, M 	Multi-line matching, affecting ^ and $
# VERBOSE, X 	Enable verbose REs, which can be organized more cleanly and understandably.
# UNICODE, U 	Makes several escapes like \w, \b, \s and \d dependent on the Unicode character database.

# Python´┐Żs raw string notation for regular expressions; backslashes are not handled in any special way in a string literal prefixed with 'r'
#----------------------------------------------------------------------
if haveDoc():


   setRedraw(False);

   statusMessage("Running script...");
   deselectAll();


   PgQty_int = pageCount();
   while (PgIdx_int <= PgQty_int):
   #......................................................................
   #........................ START - LOOP THRU PAGES .....................
   #......................................................................
      gotoPage(PgIdx_int);
      PageItems_lst = getPageItems();

      for PgItem_lst in PageItems_lst:
      #**********************************************************************
      #**************** START - LOOP THRU ITEMS WITHIN A PAGE ***************
      #**********************************************************************
        if ( (PgItem_lst[1] == 4) and              # It is a Text Frame
             ((PgItem_lst[0] <> TxtFrameFind_str)) # Not our own Frame with the results.
           ):
            TxtFrameCnt_int += 1;
            #messageBox('Testing...',str(PgItem_lst[0]), icon=scribus.ICON_WARNING, button1=scribus.BUTTON_OK);
            FrameContent_str = getText(PgItem_lst[0]); # getText changes paragraph marks (<para/>) with blank spaces (\s).
            RegExRes_lst = RegExPatt_obj.findall(FrameContent_str);
            for RegExRes_str in RegExRes_lst:
               TxtHitCnt_int += 1;
               #  FramesContent_lst.append( [PgIdx_int, FrameContent_str] );
               FramesContent_lst.append( [PgIdx_int, RegExRes_str, PgItem_lst[0]] );
               #if (len(MetafileContent_lst)>0) and not(MetafileContent_lst[-1].endswith('\n')): MetafileContent_lst.append('\n');


      #**********************************************************************
      #**************** END - LOOP THRU ITEMS WITHIN A PAGE *****************
      #**********************************************************************
      PgIdx_int += 1;
   #......................................................................
   #........................ END - LOOP THRU PAGES .......................
   #......................................................................





   #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   #~~~~~~~~~~~~~~~~~~~~~~~~~~ START - PRINT RESULTS ~~~~~~~~~~~~~~~~~~~~~
   #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   gotoPage(1);
   TxtFrameFind_obj = TxtFrameFind_str if objectExists(TxtFrameFind_str) else createText(0.75, 0.75, 10, 6, TxtFrameFind_str);

   selectText(0, getTextLength(TxtFrameFind_obj), TxtFrameFind_obj);
   deleteText(TxtFrameFind_obj);
   #insertText(str(TxtFrameCnt_int) + '\n' + str(TxtHitCnt_int), -1, TxtFrameFind_obj);

   insertText('----------------------------------------------------------------------\nReg. Expression = ' + UserRegEx_str + '\nTotal Frames Found = ' + str(TxtHitCnt_int) + '\n----------------------------------------------------------------------', -1, TxtFrameFind_obj);
   for i in range(len(FramesContent_lst)):
       insertText('\n--------------------Page ' + str(FramesContent_lst[i][0]) + ', Frame "' + FramesContent_lst[i][2] + '"--------------------\n' + FramesContent_lst[i][1], -1, TxtFrameFind_obj);
   insertText('\n----------------------------------  ----------------------------------' , -1, TxtFrameFind_obj);


   #setText(str(TxtFrameCnt_int) + '\n' + str(TxtHitCnt_int), TxtFrameFind_obj);

   selectObject(TxtFrameFind_obj);


   #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   #~~~~~~~~~~~~~~~~~~~~~~~~~~~~ END - PRINT RESULTS ~~~~~~~~~~~~~~~~~~~~~
   #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   statusMessage('All Done.')
   messageBox("Finished", 'All Done.' + '\nTotal Hits Found = ' + str(TxtHitCnt_int), icon=scribus.ICON_NONE, button1=scribus.BUTTON_OK);


   setRedraw(True)
else:
   messageBox('Error in FindInTxtFrames', 'You Need an Open Document.', icon=scribus.ICON_WARNING, button1=scribus.BUTTON_OK)
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
#$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
FindInTxtFrames.py (6,398 bytes)   

michelv

2017-11-30 07:32

reporter   ~0044681

JLuc, nice start. For a TOC, a regular expression on a style would be the thing to have. Is there documentation around on how styles are coded into the files?

JLuc

2017-11-30 08:42

developer   ~0044682

Last edited: 2017-11-30 08:45

You're right.
Scribus .SLA files are XML-like files : open with a plain text editor and spot the place where a style is used.

The output of the script, as is, is not friendly and has to be totaly manualy reworked each time.
I've had an idea to improve this :
the user could provide, on the first page, a special frame with a dedicated Id "IndexTemplate" or "TOCTemplate".
That frame would contain a one-line paragraph with user-choosen styles and with place holders like
- %P for page number,
- %T for text (or title)
- %F for frame name (in case it's usefull for somebody),
Then the script would read that IndexTemplate frame,
find the paragraph text,
replace the place holders with the found values for each found occurence
and paste the result at the end of the result frame.

Then some more refinement would be required :
- For indexes, duplicate pages numbers should only be placed once
- For TOC, not only 1 but several styles should be searched, each corresponding to a title level of the document, and there should be also one paragragh in the TOCTemplate for each TOC level (= for each searched style).
Not sure but it could be this would benefit of enriching the Template frame syntax.

That would provide a general yet powerfull way of creating TOCs and Indexes

michelv

2017-11-30 09:25

reporter   ~0044683

Just looked into the XML:
            <StoryText>
                <DefaultStyle NumerationName="<local block>"/>
                <tab/>
                <ITEXT CH="Introduction"/>
                <para PARENT="Header1" NumerationName="<local block>"/>
ETC

Header1 is my style for a H1 title. That could be linked automatic/manually. Manual entry is error probe, but ok for a start I guess.

Shouldn't be hard to find this; only thing to notice is that the actual text is in a previous block from the Header1 definition.
Another thing I notice: the numbering is done somewhere else. For a TOC this should be replicated exactly.

For automation: The styles could be found from the doc with loadStylesFromFile(...) ?
I don't see a predefined API call in the documentation to simply get the style of a paragraph from the text.

Formatting the TOC:
The TOC entries would probably have a style applied per level within the TOC. For a start it wouldn't be too bad to do this manually after the TOC entries are placed into the frame.
Setting a style on the generated TOC entry could be done with setStyle() ? (if objects are also the strings generated)

There is an open bug (0015049) on the creation of the numbering throughout the document. Probably that same function should be called for the TOC creation?

JLuc

2017-11-30 10:10

developer   ~0044684

Last edited: 2017-11-30 10:11

Ouch : Not all titles have numbering, but knowing the final numbering could be a blocker when required. It reminds me of 0014605 about knowing mark's page numbers .

ale

2017-12-02 16:15

manager   ~0044699

https://github.com/aoloe/scribus-plugin-tableofcontents will probably make some progress very soon...

it's based on the one mentioned by cezary, but "simpler".

as far as i know (as far as i recall) it's not "easy" to do it in python, since you cannot know on which page a bunch of text (a paragraph) is...

izaius

2019-04-08 22:54

reporter   ~0046093

Any word on this one? It seems it was added in cezaryece's custom branch, which is on Git. Is this going to be added into the main build any time soon?

ale

2019-04-09 08:00

manager   ~0046095

cezary's version was a bit "weak".

my "version" -- while being somehow based on cezaary's work --is simpler and more solid... but i'm building it upon a new scripter API that i'm creating "for it".
so it takes time...

collaboration is welcome.

ale

2023-01-29 12:58

manager   ~0049981

there is now a python script that works with scribus 1.6+:

https://github.com/aoloe/scribus-script-repository/tree/master/table-of-contents

thanks to all the people who have tested it and reported bugs + gave ideas for enhancements.

i'm willing to port it to c++, under the condition that the new code replaces the current version of the TOC (which probably has never been used in production).

cbradney

2024-03-18 20:42

administrator   ~0051052

I have committed a paragraph style based TOC generator in 1.7.0 svn. Sample file attached
TocTest1.sla (30,040 bytes)   
<?xml version="1.0" encoding="UTF-8"?>
<SCRIBUSUTF8NEW Version="1.7.0.svn">
    <DOCUMENT ANZPAGES="10" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" PRESET="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" ORIENTATION="0" PAGESIZE="A4" FIRSTNUM="1" BOOK="0" AUTOSPALTEN="1" ABSTSPALTEN="11" UNITS="1" DFONT="Arial Regular" DSIZE="12" DCOL="1" DGAP="0" TabFill="" TabWidth="36" TextDistLeft="0" TextDistRight="0" TextDistBottom="0" TextDistTop="0" FirstLineOffset="1" AUTHOR="" COMMENTS="" KEYWORDS="" PUBLISHER="" DOCDATE="" DOCTYPE="" DOCFORMAT="" DOCIDENT="" DOCSOURCE="" DOCLANGINFO="" DOCRELATION="" DOCCOVER="" DOCRIGHTS="" DOCCONTRIB="" TITLE="" SUBJECT="" VHOCH="33" VHOCHSC="66" VTIEF="33" VTIEFSC="66" VKAPIT="75" BASEGRID="14.4" BASEO="0" AUTOL="100" UnderlinePos="-1" UnderlineWidth="-1" StrikeThruPos="-1" StrikeThruWidth="-1" GROUPC="1" HCMS="0" DPSo="0" DPSFo="0" DPuse="0" DPgam="0" DPbla="1" DPPr="ISO Coated v2 300% (basICColor)" DPIn="sRGB display profile (ICC v2.2)" DPInCMYK="ISO Coated v2 300% (basICColor)" DPIn2="sRGB display profile (ICC v2.2)" DPIn3="ISO Coated v2 300% (basICColor)" DISc="1" DIIm="0" ALAYER="0" LANGUAGE="en_GB" AUTOMATIC="1" AUTOCHECK="0" GUIDELOCK="0" SnapToGuides="0" SnapToGrid="0" SnapToElement="0" MINGRID="20.0012598425197" MAJGRID="100.00062992126" SHOWGRID="0" SHOWGUIDES="1" showcolborders="1" SHOWFRAME="1" SHOWControl="0" SHOWLAYERM="0" SHOWMARGIN="1" SHOWBASE="0" SHOWPICT="1" SHOWLINK="0" rulerMode="1" showrulers="1" showBleed="1" rulerXoffset="0" rulerYoffset="0" GuideRad="10" GRAB="4" POLYC="4" POLYF="0.502045814642449" POLYR="0" POLYIR="0" POLYCUR="0" POLYOCUR="0" POLYS="0" arcStartAngle="30" arcSweepAngle="300" spiralStartAngle="0" spiralEndAngle="1080" spiralFactor="1.2" AutoSave="1" AutoSaveTime="600000" AutoSaveCount="1" AutoSaveKeep="0" AUtoSaveInDocDir="1" AutoSaveDir="" ScratchBottom="20.0012598425197" ScratchLeft="100.00062992126" ScratchRight="100.00062992126" ScratchTop="20.0012598425197" GapHorizontal="0" GapVertical="39.9996850393701" StartArrow="0" EndArrow="0" PEN="Black" BRUSH="None" PENLINE="Black" PENTEXT="Black" StrokeText="Black" TextBackGround="None" TextLineColor="None" TextBackGroundShade="100" TextLineShade="100" TextPenShade="100" TextStrokeShade="100" STIL="1" STILLINE="1" WIDTH="1" WIDTHLINE="1" PENSHADE="100" LINESHADE="100" BRUSHSHADE="100" CPICT="None" PICTSHADE="100" CSPICT="None" PICTSSHADE="100" PICTSCX="1" PICTSCY="1" PSCALE="1" PASPECT="1" EmbeddedPath="0" HalfRes="1" dispX="10.0006299212598" dispY="10.0006299212598" constrain="15" MINORC="#00ff00" MAJORC="#00ff00" GuideC="#000080" BaseC="#f5f5f5" renderStack="2 0 4 1 3" GridType="0" PAGEC="#ffffff" MARGC="#0000ff" RANDF="0" currentProfile="PDF 1.4" calligraphicPenFillColor="Black" calligraphicPenLineColor="Black" calligraphicPenFillColorShade="100" calligraphicPenLineColorShade="100" calligraphicPenLineWidth="1" calligraphicPenAngle="0" calligraphicPenWidth="10" calligraphicPenStyle="1">
        <CheckProfile Name="PDF 1.3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF 1.4" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF 1.5" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF 1.6" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF/X-1a" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="1" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF/X-3" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="1" checkFontNotEmbedded="1" checkFontIsOpenType="1" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PDF/X-4" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="0" minResolution="144" maxResolution="2400" checkAnnotations="1" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="1" checkFontNotEmbedded="1" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <CheckProfile Name="PostScript" ignoreErrors="0" autoCheck="1" checkGlyphs="1" checkOrphans="1" checkOverflow="1" checkPictures="1" checkPartFilledImageFrames="0" checkResolution="1" checkTransparency="1" minResolution="144" maxResolution="2400" checkAnnotations="0" checkRasterPDF="1" checkForGIF="1" ignoreOffLayers="0" checkNotCMYKOrSpot="0" checkDeviceColorsAndOutputIntent="0" checkFontNotEmbedded="0" checkFontIsOpenType="0" checkAppliedMasterDifferentSide="1" checkEmptyTextFrames="1"/>
        <COLOR NAME="Black" SPACE="CMYK" C="0" M="0" Y="0" K="100"/>
        <COLOR NAME="Blue" SPACE="CMYK" C="100" M="100" Y="0" K="0"/>
        <COLOR NAME="Cyan" SPACE="CMYK" C="100" M="0" Y="0" K="0"/>
        <COLOR NAME="Green" SPACE="CMYK" C="100" M="0" Y="100" K="0"/>
        <COLOR NAME="Magenta" SPACE="CMYK" C="0" M="100" Y="0" K="0"/>
        <COLOR NAME="Red" SPACE="CMYK" C="0" M="100" Y="100" K="0"/>
        <COLOR NAME="Registration" SPACE="CMYK" C="100" M="100" Y="100" K="100" Register="1"/>
        <COLOR NAME="White" SPACE="CMYK" C="0" M="0" Y="0" K="0"/>
        <COLOR NAME="Yellow" SPACE="CMYK" C="0" M="0" Y="100" K="0"/>
        <HYPHEN/>
        <CHARSTYLE CNAME="Default Character Style" DefaultStyle="1" FONT="Arial Regular" FONTSIZE="12" FONTFEATURES="" FEATURES="inherit" FCOLOR="Black" FSHADE="100" HyphenWordMin="3" SCOLOR="Black" BGCOLOR="None" BGSHADE="100" SSHADE="100" TXTSHX="5" TXTSHY="-5" TXTOUT="1" TXTULP="-0.1" TXTULW="-0.1" TXTSTP="-0.1" TXTSTW="-0.1" SCALEH="100" SCALEV="100" BASEO="0" KERN="0" LANGUAGE="en_GB"/>
        <STYLE NAME="Default Paragraph Style" DefaultStyle="1" ALIGN="0" DIRECTION="0" LINESPMode="0" LINESP="15" INDENT="0" RMARGIN="0" FIRST="0" VOR="0" NACH="0" ParagraphEffectOffset="0" DROP="0" DROPLIN="2" Bullet="0" Numeration="0" HyphenConsecutiveLines="2" BCOLOR="None" BSHADE="100"/>
        <STYLE NAME="h1" FONTSIZE="20" LANGUAGE="en_GB"/>
        <STYLE NAME="h2" FONTSIZE="18" LANGUAGE="en_GB"/>
        <STYLE NAME="h3" FONTSIZE="16" LANGUAGE="en_GB"/>
        <STYLE NAME="h4" PARENT="h3" FCOLOR="Red"/>
        <STYLE NAME="None" LINESPMode="0" LINESP="15" KERN="0"/>
        <STYLE NAME="TOC" FONT="Georgia Regular" FONTFEATURES="-liga,-clig" LANGUAGE="en_GB">
            <Tabs Type="0" Pos="141.732283464567" Fill="."/>
        </STYLE>
        <STYLE NAME="A Comma Not Inside" LANGUAGE="en_GB"/>
        <TableStyle NAME="Default Table Style" DefaultStyle="1" FillColor="None" FillShade="100">
            <TableBorderLeft>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderLeft>
            <TableBorderRight>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderRight>
            <TableBorderTop>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderTop>
            <TableBorderBottom>
                <TableBorderLine Width="1" PenStyle="1" Color="Black" Shade="100"/>
            </TableBorderBottom>
        </TableStyle>
        <CellStyle NAME="Default Cell Style" DefaultStyle="1" FillColor="None" FillShade="100" LeftPadding="1" RightPadding="1" TopPadding="1" BottomPadding="1"/>
        <LAYERS NUMMER="0" LEVEL="0" NAME="Background" SICHTBAR="1" DRUCKEN="1" EDIT="1" SELECT="0" FLOW="1" TRANS="1" BLEND="0" OUTL="0" LAYERC="#000000"/>
        <Printer firstUse="1" toFile="0" useAltPrintCommand="0" outputSeparations="0" useSpotColors="1" useColor="1" mirrorH="0" mirrorV="0" useICC="0" doGCR="0" doClip="0" setDevParam="0" useDocBleeds="1" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" includePDFMarks="1" PSLevel="3" PrintEngine="3" markLength="20.0013" markOffset="0" BleedTop="0" BleedLeft="0" BleedRight="0" BleedBottom="0" printer="HP_Color_LaserJet_MFP_M183fw__46CF2A_" filename="" separationName="All" printerCommand=""/>
        <PDF firstUse="1" Thumbnails="0" Articles="0" Bookmarks="0" Compress="1" CMethod="0" Quality="0" EmbedPDF="0" MirrorH="0" MirrorV="0" Clip="0" rangeSel="0" rangeTxt="" RotateDeg="0" PresentMode="0" RecalcPic="0" FontEmbedding="0" Grayscale="0" RGBMode="1" UseProfiles="0" UseProfiles2="0" Binding="0" PicRes="300" Resolution="300" Version="14" Intent="1" Intent2="0" SolidP="sRGB display profile (ICC v2.2)" ImageP="sRGB display profile (ICC v2.2)" PrintP="ISO Coated v2 300% (basICColor)" InfoString="" BTop="0" BLeft="0" BRight="0" BBottom="0" useDocBleeds="0" cropMarks="0" bleedMarks="0" registrationMarks="0" colorMarks="0" docInfoMarks="0" markLength="20.0012598425197" markOffset="0" ImagePr="0" PassOwner="" PassUser="" Permissions="-4" Encrypt="0" UseLayers="0" UseLpi="0" UseSpotColors="1" doMultiFile="0" displayBookmarks="0" displayFullscreen="0" displayLayers="0" displayThumbs="0" hideMenuBar="0" hideToolBar="0" fitWindow="0" openAfterExport="0" PageLayout="0" openAction="">
            <LPI Color="" Frequency="0" Angle="0" SpotFunction="0"/>
            <LPI Color="Black" Frequency="133" Angle="45" SpotFunction="3"/>
            <LPI Color="Cyan" Frequency="133" Angle="105" SpotFunction="3"/>
            <LPI Color="Magenta" Frequency="133" Angle="75" SpotFunction="3"/>
            <LPI Color="Yellow" Frequency="133" Angle="90" SpotFunction="3"/>
        </PDF>
        <DocItemAttributes>
            <ItemAttribute Name="TOC" Type="string" Value="" Parameter="" Relationship="none" RelationshipTo="" AutoAddTo="none"/>
        </DocItemAttributes>
        <TablesOfContents>
            <TableOfContents Name="Table of Contents 1" ToCSource="Style" ItemAttributeName="None" FrameName="TOC" ListNonPrinting="0" Style="TOC" NumberPlacement="End">
                <StyleInTOC StyleName="h1"/>
                <StyleInTOC StyleName="h2"/>
                <StyleInTOC StyleName="h3"/>
                <StyleInTOC StyleName="h4"/>
                <StyleInTOC StyleName="A Comma Not Inside"/>
            </TableOfContents>
            <TableOfContents Name="Table of Contents 2" ToCSource="Attribute" ItemAttributeName="TOC" FrameName="TOCAttribute" ListNonPrinting="0" Style="TOC" NumberPlacement="End"/>
        </TablesOfContents>
        <NotesStyles>
            <notesStyle Name="Default" Start="1" Endnotes="0" Type="Type_1_2_3" Range="0" Prefix="" Suffix=")" AutoHeight="1" AutoWidth="1" AutoRemove="1" AutoWeld="1" SuperNote="1" SuperMaster="1" MarksStyle="" NotesStyle=""/>
        </NotesStyles>
        <PageSets>
            <Set Name="Single Page" FirstPage="0" Rows="1" Columns="1"/>
            <Set Name="Facing Pages" FirstPage="1" Rows="1" Columns="2">
                <PageNames Name="Left Page"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="3-Fold" FirstPage="0" Rows="1" Columns="3">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle"/>
                <PageNames Name="Right Page"/>
            </Set>
            <Set Name="4-Fold" FirstPage="0" Rows="1" Columns="4">
                <PageNames Name="Left Page"/>
                <PageNames Name="Middle Left"/>
                <PageNames Name="Middle Right"/>
                <PageNames Name="Right Page"/>
            </Set>
        </PageSets>
        <Sections>
            <Section Number="0" Name="Section 1" From="0" To="9" Type="Type_1_2_3" Start="1" Reversed="0" Active="1" FillChar="0" FieldWidth="0"/>
        </Sections>
        <MASTERPAGE PAGEXPOS="100.00062992126" PAGEYPOS="20.0012598425197" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="0" NAM="Normal" MNAM="" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.00062992126" PAGEYPOS="20.0012598425197" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="0" NAM="" MNAM="Normal" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.00062992126" PAGEYPOS="901.890708661418" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="1" NAM="" MNAM="Normal" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.00062992126" PAGEYPOS="1783.78015748032" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="2" NAM="" MNAM="Normal" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.00062992126" PAGEYPOS="2665.66960629921" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="3" NAM="" MNAM="Normal" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.00062992126" PAGEYPOS="3547.55905511811" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="4" NAM="" MNAM="Normal" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.00062992126" PAGEYPOS="4429.44850393701" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="5" NAM="" MNAM="Normal" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.00062992126" PAGEYPOS="5311.33795275591" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="6" NAM="" MNAM="Normal" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.00062992126" PAGEYPOS="6193.22740157481" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="7" NAM="" MNAM="Normal" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.00062992126" PAGEYPOS="7075.1168503937" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="8" NAM="" MNAM="Normal" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGE PAGEXPOS="100.00062992126" PAGEYPOS="7957.0062992126" PAGEWIDTH="595.275590551181" PAGEHEIGHT="841.889763779528" BORDERLEFT="40" BORDERRIGHT="40" BORDERTOP="40" BORDERBOTTOM="40" NUM="9" NAM="" MNAM="Normal" Size="A4" Orientation="0" LEFT="0" PRESET="0" VerticalGuides="" HorizontalGuides="" AGhorizontalAutoGap="0" AGverticalAutoGap="0" AGhorizontalAutoCount="0" AGverticalAutoCount="0" AGhorizontalAutoRefer="0" AGverticalAutoRefer="0" AGSelection="0 0 0 0" pageEffectDuration="1" pageViewDuration="1" effectType="0" Dm="0" M="0" Di="0"/>
        <PAGEOBJECT XPOS="140.00062992126" YPOS="60.0012598425197" OwnPage="0" ItemID="1214479877" PTYPE="4" WIDTH="200.658576339543" HEIGHT="240.585365853659" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" ANNAME="TOC" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L200.659 0 L200.659 240.585 L0 240.585 L0 0 Z" copath="M0 0 L200.659 0 L200.659 240.585 L0 240.585 L0 0 Z" gXpos="140.00062992126" gYpos="60.0012598425197" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle/>
                <ITEXT CH="Header 1"/>
                <tab/>
                <ITEXT CH="1"/>
                <para PARENT="TOC"/>
                <ITEXT CH="Header 2"/>
                <tab/>
                <ITEXT CH="1"/>
                <para PARENT="TOC"/>
                <ITEXT CH="Header 3"/>
                <tab/>
                <ITEXT CH="1"/>
                <para PARENT="TOC"/>
                <ITEXT CH="Heading 2 again"/>
                <tab/>
                <ITEXT CH="1"/>
                <para PARENT="TOC"/>
                <ITEXT CH="Heading 4"/>
                <tab/>
                <ITEXT CH="1"/>
                <para PARENT="TOC"/>
                <ITEXT CH="A Comma Inside"/>
                <tab/>
                <ITEXT CH="1"/>
                <para PARENT="TOC"/>
                <ITEXT CH="Header 4"/>
                <tab/>
                <ITEXT CH="3"/>
                <para PARENT="TOC"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="377.812805838295" YPOS="60.0012598425197" OwnPage="0" ItemID="736764799" PTYPE="4" WIDTH="277.463414634146" HEIGHT="52.8831496062992" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L277.463 0 L277.463 52.8831 L0 52.8831 L0 0 Z" copath="M0 0 L277.463 0 L277.463 52.8831 L0 52.8831 L0 0 Z" gXpos="377.812805838295" gYpos="60.0012598425197" gWidth="0" gHeight="0" PSTYLE="h1" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="h1"/>
                <ITEXT CH="Header 1"/>
                <trail PARENT="h1"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="383.081098521221" YPOS="141.891023622047" OwnPage="0" ItemID="713825063" PTYPE="4" WIDTH="272.19512195122" HEIGHT="74.9870251584405" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L272.195 0 L272.195 74.987 L0 74.987 L0 0 Z" copath="M0 0 L272.195 0 L272.195 74.987 L0 74.987 L0 0 Z" gXpos="383.081098521221" gYpos="141.891023622047" gWidth="0" gHeight="0" PSTYLE="h2" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="h2"/>
                <ITEXT CH="Header 2"/>
                <trail PARENT="h2"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="381.836481659305" YPOS="237.073170731707" OwnPage="0" ItemID="1159589438" PTYPE="4" WIDTH="273.439738813136" HEIGHT="79.0243902439024" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L273.44 0 L273.44 79.0244 L0 79.0244 L0 0 Z" copath="M0 0 L273.44 0 L273.44 79.0244 L0 79.0244 L0 0 Z" gXpos="381.836481659305" gYpos="237.073170731707" gWidth="0" gHeight="0" PSTYLE="h3" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="h3"/>
                <ITEXT CH="Header 3"/>
                <trail PARENT="h3"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="380.446952179758" YPOS="421.487804878049" OwnPage="0" ItemID="2012912638" PTYPE="4" WIDTH="274.829268292683" HEIGHT="216.878048780488" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L274.829 0 L274.829 216.878 L0 216.878 L0 0 Z" copath="M0 0 L274.829 0 L274.829 216.878 L0 216.878 L0 0 Z" gXpos="380.446952179758" gYpos="421.487804878049" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle/>
                <ITEXT CH="3 May. Bistritz.--Left Munich at 8:35 P.M., on 1st May, arriving at Vienna early next morning; should have arrived at 6:46, but train was an hour late. Buda-Pesth seems a wonderful place, from the glimpse which I got of it from the train and the little I could walk through the streets. I feared to go very far from the station, as we had arrived late and would start as near the correct time as possible."/>
                <para/>
                <ITEXT CH="abcdef"/>
                <para/>
                <ITEXT CH="Heading 2 again"/>
                <para PARENT="h2"/>
                <ITEXT CH="abcdef"/>
                <para/>
                <ITEXT CH="Heading 4"/>
                <para PARENT="h4"/>
                <ITEXT CH="abcdef"/>
                <para/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="381.836481659305" YPOS="2091.8520683695" OwnPage="2" ItemID="451960819" PTYPE="4" WIDTH="273.439738813136" HEIGHT="79.0243902439024" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L273.44 0 L273.44 79.0244 L0 79.0244 L0 0 Z" copath="M0 0 L273.44 0 L273.44 79.0244 L0 79.0244 L0 0 Z" gXpos="381.836481659305" gYpos="328.073170731707" gWidth="0" gHeight="0" PSTYLE="h4" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="h4"/>
                <ITEXT CH="Header 4"/>
                <trail PARENT="h4"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="144.878048780488" YPOS="338.048780487805" OwnPage="0" ItemID="1988471763" PTYPE="4" WIDTH="196.682926829268" HEIGHT="122.048780487805" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" ANNAME="TOCAttribute" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L196.683 0 L196.683 122.049 L0 122.049 L0 0 Z" copath="M0 0 L196.683 0 L196.683 122.049 L0 122.049 L0 0 Z" gXpos="144.878048780488" gYpos="338.048780487805" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle/>
                <ITEXT CH="Just an attribute frame"/>
                <tab/>
                <ITEXT CH="1"/>
                <para PARENT="TOC"/>
            </StoryText>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="151.024251968504" YPOS="525.073170731707" OwnPage="0" ItemID="499650847" PTYPE="4" WIDTH="180.000138275399" HEIGHT="135.558010370655" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L180 0 L180 135.558 L0 135.558 L0 0 Z" copath="M0 0 L180 0 L180 135.558 L0 135.558 L0 0 Z" gXpos="151.024251968504" gYpos="525.073170731707" gWidth="0" gHeight="0" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle/>
                <ITEXT CH="an item with attribute"/>
                <trail/>
            </StoryText>
            <PageItemAttributes>
                <ItemAttribute Name="TOC" Type="string" Value="Just an attribute frame" Parameter="" Relationship="none" RelationshipTo="" AutoAddTo="none"/>
            </PageItemAttributes>
        </PAGEOBJECT>
        <PAGEOBJECT XPOS="381.836481659305" YPOS="648.073170731707" OwnPage="0" ItemID="441972008" PTYPE="4" WIDTH="273.439738813136" HEIGHT="79.0243902439024" FRTYPE="0" CLIPEDIT="0" PWIDTH="1" PLINEART="1" LOCALSCX="1" LOCALSCY="1" LOCALX="0" LOCALY="0" LOCALROT="0" PICART="1" SCALETYPE="1" RATIO="1" COLUMNS="1" COLGAP="0" AUTOTEXT="0" EXTRA="0" TEXTRA="0" BEXTRA="0" REXTRA="0" VAlign="0" FLOP="1" PLTSHOW="0" BASEOF="0" textPathType="0" textPathFlipped="0" path="M0 0 L273.44 0 L273.44 79.0244 L0 79.0244 L0 0 Z" copath="M0 0 L273.44 0 L273.44 79.0244 L0 79.0244 L0 0 Z" gXpos="381.836481659305" gYpos="648.073170731707" gWidth="0" gHeight="0" PSTYLE="A Comma Not Inside" LAYER="0" NEXTITEM="-1" BACKITEM="-1">
            <StoryText>
                <DefaultStyle PARENT="A Comma Not Inside"/>
                <ITEXT CH="A Comma Inside"/>
                <trail PARENT="A Comma Not Inside"/>
            </StoryText>
        </PAGEOBJECT>
    </DOCUMENT>
</SCRIBUSUTF8NEW>
TocTest1.sla (30,040 bytes)   

cbradney

2024-03-19 17:52

administrator   ~0051053

nitramr

2024-03-23 16:17

developer   ~0051064

In r26061 I got a crash when a document is open and I click on File -> Preferences
I could protect the crash by adding a check for m_Doc.

void Prefs_TableOfContents::updateDocParagraphStyleComboBox()
{
    if (!m_Doc)
        return;
                                                                                                                                                                                   
                                                                                                                                                                                   
1 Prefs_TableOfContents::updateDocParagraphStyleComboBox prefs_tableofcontents.cpp 304 0x5555561e04a7
2 Prefs_TableOfContents::restoreDefaults prefs_tableofcontents.cpp 100 0x5555561dd870
3 PreferencesDialog::setupGui preferencesdialog.cpp 177 0x555556149381
4 PreferencesDialog::PreferencesDialog preferencesdialog.cpp 131 0x55555614aab7
5 ScribusMainWindow::slotPrefsOrg scribus.cpp 6469 0x555555d93420
6 ?? 0x7ffff55814f3
7 QAction::triggered(bool) 0x7ffff5e3ff46
8 QAction::activate(QAction::ActionEvent) 0x7ffff5e45239
9 ?? 0x7ffff652d78a
10 ?? 0x7ffff652df3b
11 QWidget::event(QEvent *) 0x7ffff63d1b6f
12 QApplicationPrivate::notify_helper(QObject *, QEvent *) 0x7ffff638b922
13 QApplication::notify(QObject *, QEvent *) 0x7ffff638416e
14 QCoreApplication::notifyInternal2(QObject *, QEvent *) 0x7ffff55369a8
15 QApplicationPrivate::sendMouseEvent(QWidget *, QMouseEvent *, QWidget *, QWidget *, QWidget * *, QPointer<QWidget>&, bool, bool) 0x7ffff6380d78
16 ?? 0x7ffff63dfbaf
17 ?? 0x7ffff63e08f5
18 QApplicationPrivate::notify_helper(QObject *, QEvent *) 0x7ffff638b922
19 QCoreApplication::notifyInternal2(QObject *, QEvent *) 0x7ffff55369a8
20 QGuiApplicationPrivate::processMouseEvent(QWindowSystemInterfacePrivate::MouseEvent *) 0x7ffff5b94d8b
... <Mehr>

cbradney

2024-03-23 17:04

administrator   ~0051065

Thanks, committed. Lots more changes to come still.

Issue History

Date Modified Username Field Change
2007-07-05 11:05 mecirt New Issue
2007-07-05 15:04 christoph_s Relationship added related to 0004484
2007-07-05 15:04 christoph_s Relationship added related to 0001371
2007-07-05 15:04 christoph_s Relationship added related to 0001773
2008-01-18 21:03 janD Note Added: 0018651
2008-01-18 21:04 janD Note Edited: 0018651
2008-01-19 06:27 rdevries Note Added: 0018652
2008-01-19 14:59 louisdesjardins Note Added: 0018656
2008-01-20 10:07 rdevries Note Added: 0018670
2008-01-27 16:35 janD Note Added: 0018744
2008-02-05 18:06 christoph_s Status new => acknowledged
2010-03-16 15:01 mhanski Relationship added has duplicate 0008796
2011-01-06 23:24 Thaddeus Note Added: 0025303
2011-01-06 23:24 Thaddeus File Added: FindInTxtFrames Script & Example.zip
2011-01-10 11:03 cezaryece Note Added: 0025320
2012-06-18 20:13 ale Assigned To => cezaryece
2012-06-18 20:13 ale Status acknowledged => assigned
2015-09-17 20:08 Kunda Category Story Editor / Text Frames => Story Ed/Txt Frames
2015-09-17 20:12 Kunda Category Story Ed/Txt Frames => Story Editor / Text Frames
2017-11-29 18:54 JLuc Assigned To cezaryece =>
2017-11-29 18:54 JLuc Status assigned => new
2017-11-29 18:54 JLuc Patch => No
2017-11-29 19:04 JLuc Note Added: 0044677
2017-11-29 19:23 JLuc File Added: FindInTxtFrames.py
2017-11-29 19:23 JLuc Note Added: 0044678
2017-11-29 19:23 JLuc Note Edited: 0044678
2017-11-30 07:32 michelv Note Added: 0044681
2017-11-30 08:42 JLuc Note Added: 0044682
2017-11-30 08:45 JLuc Note Edited: 0044682
2017-11-30 09:25 michelv Note Added: 0044683
2017-11-30 10:05 JLuc Relationship added parent of 0015049
2017-11-30 10:10 JLuc Note Added: 0044684
2017-11-30 10:11 JLuc Note Edited: 0044684
2017-12-02 16:15 ale Note Added: 0044699
2019-04-08 22:54 izaius Note Added: 0046093
2019-04-09 02:47 izaius Issue cloned: 0015640
2019-04-09 02:47 izaius Relationship added parent of 0015640
2019-04-09 08:00 ale Note Added: 0046095
2019-04-09 08:57 jghali Relationship replaced has duplicate 0015640
2023-01-29 12:58 ale Note Added: 0049981
2024-03-18 20:35 cbradney Assigned To => cbradney
2024-03-18 20:35 cbradney Status new => assigned
2024-03-18 20:38 cbradney Relationship deleted parent of 0015049
2024-03-18 20:38 cbradney Relationship added related to 0015049
2024-03-18 20:38 cbradney Status assigned => resolved
2024-03-18 20:38 cbradney Resolution open => fixed
2024-03-18 20:38 cbradney Fixed in Version => 1.7.0.svn
2024-03-18 20:42 cbradney Note Added: 0051052
2024-03-18 20:42 cbradney File Added: TocTest1.sla
2024-03-19 17:52 cbradney Note Added: 0051053
2024-03-19 17:52 cbradney File Added: Screenshot 2024-03-19 at 18.50.33.png
2024-03-23 16:17 nitramr Note Added: 0051064
2024-03-23 17:04 cbradney Note Added: 0051065