Inkscape.org
Beyond the Basics Understanding symbol tags
  1. #1
    liviux liviux @liviux

    Hi everyone,

     

    I've been working a lot with custom symbols in the last year, but I created so many (more than four hundreds drew by hand) that I easily get lost to find them.

    I have a basic organization by grouping them into a separate .svg file with a title that become by default the category title, but to go deeper I tried to understand how tags work. Though, this process seems to me not very intuitive...

    By far, if I take a symbol, go to the object property menu, and add whatever keyword (with or without #) in the "label" field and click set, nothing happens, the hashtag is not applied. If I write something into the "title" field instead, and then add again the same symbol with the + button in the current document category, the keyword is applied. I can also apply many keywords separeted with comma, as far as I enter them in the title field and not in the label field.

     

    The problem is that once I create the new symbol with the linked keywords, inkscape renames it something like "use 1-06" and it is impossible to read the keywords I applied previously in the object property menu.

    So in other words if I apply the word "arrow" to a symbol, I can search by typing "arrow" in the symbol search bar, but there is no way to remember which keyword I associated with that symbol. And of course you cannot remember all keyword you assigned to 400 symbols...

    Do you have any tips for organizing large groups of symbols and being able to seach them by keyword in the search bar ?

     

    Thank you in advance,

    Best regards

  2. #2
    Tyler Durden Tyler Durden @TylerDurden

    I'm able to search by ID... is that not viable for your workflow? 

  3. #3
    liviux liviux @liviux

    ID is the same as label, unfortunately it does not work for me. The only field I can use to search is "title".

    I'm using Inkscape 1.3 in Ubuntu 22.04.

  4. #4
    Tyler Durden Tyler Durden @TylerDurden

    Here's an example:

     

  5. #5
    COD COD @COD

    Tyler - is it possible to search for a symbol by title  - not in the document but in all the symbol svg files? 

  6. #6
    liviux liviux @liviux
    *

    Hi Tyler,

     

    Thank you for your answer. Maybe my question was not well formulated.

    The exemple you show allow to seach and identify an existing symbol used in the canvas. I don't need this.

    Actually what I'm trying to do is looking for a symbol in the search field within the symbol menu (not the find/replace).

    For instance, let's say I'm drawing and I need a tree symbol. I know that there is one in the library but I don't want to scroll for several hundred symbols. I would like to be able to assign tags, labels, or keywords and being able to search for them in the search field.

    Output
  7. #7
    Tyler Durden Tyler Durden @TylerDurden

    Seems to work with ID here:

  8. #8
    liviux liviux @liviux
    *

    Yes, but the problem with this method is that the ID is randomly assigned by Inkscape when you add a symbol in the library.

    If you set a logical ID by yourself into the appropriate field, it does not work anymore.

    The whole point here is trying to set a tag that we can remember in order to better organize the library and find the symbols more easily.

    If I use the ID as you suggest, once you add the symbol back, Inkscape assign a new random ID to it.

  9. #9
    COD COD @COD

    liviux - If you put the title in the search box - every symbol set with that search string will show. in 1.3. Seeattached file.

    I just did this. 

    I haven't tried wild card searches though

  10. #10
    COD COD @COD
    *

    Sorry image was cropped too closely

     

    The search result was J01 in 8 different symbol set files. 

  11. #11
    COD COD @COD

    I tried creating a symbol that included tags in Description property of the symbol. Unfortunately that doesn't work with the search. Be a nice future feature though. 

  12. #12
    Paddy_CAD Paddy_CAD @Paddy_CAD
    *

    After much experimenting, I think I understand how text labels work in the Symbols dialog. It shows the object title or else the object id if there's no title assigned. Not confusing at all!

    TLDR: Use the Object Properties dialog [shift+ctrl+o] to assign a title to your object before you convert it to a symbol. These titles will be displayed in the Symbols dialog and they are searchable. 

    When creating a symbol from a group, Inkscape retains the id of the originating group. For example, converting a group changes g id="g23" to symbol id="g23" and moves it to the <defs> section of your svg file. Symbols in your drawing are actually clones with the <xlink:href> attribute set to value #g23 linking it to the symbol id. Symbols generated from non-group objects are assigned a sequential id number such as symbol id="symbol12".

    If a title was assigned to the original object (group or other) then this is retained for the symbol and is displayed as the symbol dialog label. If the original object had no title, then neither does the symbol and the symbol id is listed instead.

    For more confusion, symbol id's and titles are generated differently if the original object is a group or another object type. 

    Open the XML Editor [shift+ctrl+x] and expand the <defs> section at the top of the list to see the symbol definitions. Expand one of these and navigate to symbol id="my_symbol_name". You can change this if you want. In the right panel you can select the id attribute and change the value to new_symbol_name. Beware. This will break existing links to clones in your drawing. You can repair these in the Find/Replace dialog [ctrl+f], finding #my_symbol_name and replacing with #new_symbol_name to update the clones. 

    A better solution is to use object titles. Changing these will not break links because the symbol id is untouched. Use the XML editor to expand the symbol id, title id, and title, then update the title text in the right panel.

    It seems that the symbol dialog is only populated when you load a file so save then [File > Revert] to update the list.

  13. #13
    liviux liviux @liviux

    @Paddy_CAD thank you so much!

    Well, after this I think we can affirm that the symbol system is not intuitive at all at can definitely be improved...but you explaination helped a lot understanding how it works.

    Actually I noticed that filling the title field work in every situation (both for groups and path transformed to symbols), but the ID only works for groups and not for paths. So I guess it's a better idea to use the title whenever possible.

    The only downside is that when you trasform something to a symbol, the title you assigned is no longer visible in the object property menu, but I found a workaround. By clicking on the gear of the symbol menu and checking the "show names" button, it is possible to see titles/ID applied . And even when this is not checked by hovering the mouse on the symbol the title pops-up. 

     

    So the problem is solved :) Thank you!

  14. #14
    David248 David248 @David248
    *

    Thanks Paddy : can I add a question. The things I have understood are :

    • Easy case : before adding a symbol
      • Group all the shapes intended to form the symbol.
      • Open object properties (ctrl+shift+O), give it a title and click on "set" button, bottom right.
      • Open Symbol panel, click on + : the title of the group will be used. Later, I want to modify the name displayed in Symbol Panel, I'll have to browse to defs and modify the text value (node) of the title id of the symbol, without loosing links of the clones (see third case).
    • Less easy case : Curing a non used symbol (the symbol has been designed, with an automatically added value) but not used yet
      • Spot the symbol's name in Symbol panel (ctrl + shift + Y)
      • Open XML editor, browse defs to this symbol, change it's Id value
      • Save document and revert.
      • Or use title as described in third case.
    • More tricky : cure a symbol that is used (if you alter its Id, the clones used will loose their link to this symbol).
      • Spot symbol'sname in symbol panel, browse defs in xml editor to this symbol.
      • While the symbol's line is highlighted, click on
        •  "Add New element node" icon and type "title id" then press Tab (an automatic title id will be set), then click on
        • "Add New text node" and click in the right window andf type the desired title
      • If the new name hasn't been refreshed in Symbol panel, save and refresh.

    Question : is there an easier way for case 2 and 3 ?

  15. #15
    David248 David248 @David248

    ... Without unlinking a copy of the symbol, grouping it, giving it a brand new title via object properties panel and doing object to symbol 😆😉

  16. #16
    Tyler Durden Tyler Durden @TylerDurden

    It gets better... 1.2.x versions may behave differently than 1.3.x versions.

  17. #17
    Paddy_CAD Paddy_CAD @Paddy_CAD
    *
    David248

    Question : is there an easier way for case 2 and 3 ?

    Yes. I worked this out in my experiments. 

    You won't break any links if you don't touch the symbol id. Instead use the XML Editor to add a new title to an untitled symbol. Select <symbol id="my_symbol_name"> then click the icon for [New element node] which gives you a data entry prompt. Type title then [enter]. Inkscape will generate a new sequential <title id="title14"> or something like it. Select this and click [New text node]. In the right-hand panel type your object title text. [File > Save] [File > Revert] to refresh the dialog.

  18. #18
    Paddy_CAD Paddy_CAD @Paddy_CAD

    @David248 Sorry. Instead of answering your question, I just repeated your solution. I should remember the carpenter's advice, "Measure twice, and cut once" or in this case "Read twice, and post once".

  19. #19
    David248 David248 @David248

    Don't worry, I make also this often...😊

  20. #20
    COD COD @COD

    A lot of these "fixes" and "workarounds" are simply absurd for the average Inkscape user. How many are capable of editing or even understanding XML? I have even been told that I should write a scipt to fix these things. Really?

     

    I hate to be brutal but I see this a lot on this forum. If you are a geek/nerd - more power to you - but the average user is not going to go  down that far in the grass to solve simple issues.

  21. #21
    Tyler Durden Tyler Durden @TylerDurden

    A nerd solution is better than no solution. Try getting this level of support from Adobe, Corel, Serif or MS.

    If these are "simple" issues, where are the simple solutions?

     

    A fair amount of this particular discussion is focused on the "current document" use of symbols. I'm more interested in the user symbol libraries and how to structure those most efficiently.

     

  22. #22
    RuaridhW RuaridhW @RuaridhW
    *

    Hi so one option would be to use the load "all symbol sets" option and then use the search, but obviously if your symbol files are large this can be quite slow to load.

    The labeling thing got to me especially now that symbols in 1.3 are no longer displayed alphabetically, so i've made myself some extensions to help me manage my symbol libraries including batch add/remove, auto-labelling and sorting.

    I have also just worked out that if you create folders in your symbol library folder you can group your symbol libraries; well using windows version at least. This means that in the symbol library drop down the folders are alpha sorted and then the libraries within those folders are alpha sorted.

    e.g. the drop downs 

     

    Symbol Folder Sorting
  23. #23
    RuaridhW RuaridhW @RuaridhW
    *

    In case anyone is interested, i've found that the symbol search box is a bit too small for quick use with my screen resolution setup. However, i have found the glade file where the size is defined.

    Obviously take all due precautions when monkeying about with program files, but this is how i did it and it hasn't caused any issues in my win 11 installation.

    the file location is:

    C:\Program Files\Inkscape\share\inkscape\ui\dialog-symbols.glade

    i used notepad to adjust the bit of code GtkSearchEntry width-chars. I think it was default set at 10 or 15 i've change mine to 35:

    <object class="GtkSearchEntry" id="search">
      <property name="visible">True</property>
      <property name="can-focus">True</property>
      <property name="tooltip-text" translatable="yes">Search for symbol</property>
      <property name="width-chars">35</property>
      <property name="primary-icon-name">edit-find-symbolic</property>
      <property name="primary-icon-activatable">False</property>
      <property name="primary-icon-sensitive">False</property>
    </object>