Jump to content
You must now use your email address to sign in [click for more info] ×

Feature request: formatted text snippets as assets


Recommended Posts

I do a lot of documents with math in them, and have recurrent "words" that involve some fairly tedious Unicode glyph selection and character formatting (fonts, styles, baseline adjustment, kerning, etc.) to get the proper appearance.  While I use externally-generated SVG for block/display math text, there's still a lot of inline math for which placing SVG images is not a good solution.  I would like to define these recurring "words" as (text) assets, and be able to drag them into a text flow.

Currently, the best I can do is define a text frame containing one or more "words" as an asset, drag the text frame into the page, copy the desired text snippet from the text frame, paste the snippet into the desired text flow, then delete the unwanted asset text frame.  I'm requesting a tidier workflow for text snippet assets.   The benefit is by no means limited to mathematical documents.  Anyone working with boilerplate language could also benefit from text assets.

Link to comment
Share on other sites

1 hour ago, sfriedberg said:

Currently, the best I can do is define a text frame containing one or more "words" as an asset, drag the text frame into the page, copy the desired text snippet from the text frame, paste the snippet into the desired text flow, then delete the unwanted asset text frame.  I'm requesting a tidier workflow for text snippet assets. 

Do you have any specific behavior in mind? Different to the current topic title it appears assets of formatted text aren't a missing feature.

So it seems you ask for different workflows when creating and/or placing a text snippet or asset. I wonder why you place a bunch of text snippets in 1 text frame as 1 asset in your description, which of cause requires to get rid of unused items afterwards. Is it to create less assets / create them faster? How about 1 snippet per asset?

It appears for text snippets the workflow would be more charming if I could simply select an asset and get it placed at a current text cursor position – instead the asset needs to get dragged as an additional object on top of the current text frame and deselects this frame. However, to avoid the additional copy/paste action I can insert it as inline pinned object with 1 click – which might not be wanted in every situation.


Nevertheless, for text snippets it appears more flexible to me not to use assets at all but the feature of dragging text between frames. This way I can place it more precisely (compared to using the pinning button). Holding the OPT key when moving the text maintains it for later use and moves a copy. For this workflow it appears more useful to have all snippets in 1 text frame – as you described. If you need to scale such a placed text snippet and its single glyphs have different sizes then a pinned object (asset?) maybe more useful.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

13 hours ago, sfriedberg said:

Currently, the best I can do is define a text frame containing one or more "words" as an asset, drag the text frame into the page, copy the desired text snippet from the text frame, paste the snippet into the desired text flow, then delete the unwanted asset text frame.

You might also consider saving your snippets as artistic text, then:

  1. Inserting the text cursor into a text frame where you want to put your snippet;
  2. Dragging the asset over the cursor;
  3. Clicking the Pin Inline button on the Toolbar;
  4. Adjusting the size of the snippet if needed to make it fit as you want it to.

-- Walt
Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases
PC:
    Desktop:  Windows 11 Pro, version 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 

    Laptop:  Windows 11 Pro, version 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
iPad:  iPad Pro M1, 12.9": iPadOS 17.4.1, Apple Pencil 2, Magic Keyboard 
Mac:  2023 M2 MacBook Air 15", 16GB memory, macOS Sonoma 14.4.1

Link to comment
Share on other sites

1 hour ago, walt.farrell said:

You might also consider saving your snippets as artistic text, then:

1. Inserting the text cursor into a text frame where you want to put your snippet;

Walt, this method is shown in the first video above.

And it appears that your 1. (placing the text cursor first) is entirely useless since the text frame becomes deselected once you pick + move an asset. Also it's hard to release the asset exactly at the correct position to get it pinned where desired + expected. The asset seems to get pinned with/at its top left corner's position – but while moving its bounding box isn't displayed and isn't at the tip of the visible move cursor.

2 hours ago, walt.farrell said:

4. Adjusting the size of the snippet if needed to make it fit as you want it to.

With the according pinning settings the scaling can be done by APub automatically while pinning.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

On 1/2/2021 at 3:41 PM, thomaso said:

Do you have any specific behavior in mind?

Yes, I'd like to select an asset with my cursor and drag it to a position in a text frame and release the cursor, leaving a copy of the formatted text snippet in the text flow.

Different to the current topic title it appears assets of formatted text aren't a missing feature.

I can create a text frame containing text, but I cannot select some text and create an asset from it.  Does not work.  Did you mean something else?

So it seems you ask for different workflows when creating and/or placing a text snippet or asset.

Not really.  I want to use the same workflow for placing any kind of asset.

I wonder why you place a bunch of text snippets in 1 text frame as 1 asset in your description, which of cause requires to get rid of unused items afterwards. Is it to create less assets / create them faster? How about 1 snippet per asset?

If I could make text snippets as assets, I would make individual assets.  Since I have to introduce a text frame, it is considerably less tedious to have a collection of text snippets in a common text frame, especially as I frequently need several snippets in quick succession.

It appears for text snippets the workflow would be more charming if I could simply select an asset and get it placed at a current text cursor position – instead the asset needs to get dragged as an additional object on top of the current text frame and deselects this frame. However, to avoid the additional copy/paste action I can insert it as inline pinned object with 1 click – which might not be wanted in every situation.

I absolutely do not want little tiny text frames pinned inline in my text flow, sorry.  Similar objection to dealing with artistic text.

Nevertheless, for text snippets it appears more flexible to me not to use assets at all but the feature of dragging text between frames.

Congratulations, you have achieved unity with my workflow.  I still want better.

My responses inline in blue.

Link to comment
Share on other sites

On 1/4/2021 at 2:10 AM, sfriedberg said:

Do you have any specific behavior in mind?

Yes, I'd like to select an asset with my cursor and drag it to a position in a text frame and release the cursor, leaving a copy of the formatted text snippet in the text flow.

(...)

Nevertheless, for text snippets it appears more flexible to me not to use assets at all but the feature of dragging text between frames.

Congratulations, you have achieved unity with my workflow.  I still want better.

To me it sounds your idea can be summed up with your first + last answers ... and they seem to be unrelated to "assets" in terms of Affinity which are always objects ('containers') with one or more layers. Even though you confirm my assumption of drag & drop text (available as shown in the 2nd video above), I still don't understand what your "I still want better" request would be in detail, considering that text in Affinity always needs a container object.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

@thomasoI thought it was perfectly crystal clear that I am requesting that assets be extended to include another category of objects, namely formatted text snippets.

If I may paraphrase, I requested "please add X to the available options", and you replied "X is not one of the options".   That response is correct, but rather missing the point of requesting an additional option.

Link to comment
Share on other sites

By your paraphrase I see how my previous response may sound contradictory or destructive. But, sorry, to me it's indeed not clear what workflow exactly with what app behavior you would appreciate in detail (... what of it exists already / what detail is lacking?).
– Is there an example you can show visually, from whatever app?

For instance do you want to use the text cursor or the move cursor (as currently used in the asset panel). For text snippet dragging the text cursor currently requires to select a specific area of available text, while the move cursor can select an entire object (text, curve, image...) but can't select just parts (words, snippets) of a text.
– So, do you mean, your request concerns a new, different way of behavior & usage of either the move or the text cursors? Or even a new, additional tool, combining selected behaviors of text + move cursors?

Also I wonder if dragging of a formatted text snippet into a current text would help only or could even disturb, since any snippet will use specific style(s), e.g. font(s) and size(s), while the specific style of the snippet's last character will be used when you continue typing after pasting a snippet.
– So do you mean, your request also concerns the way how text styles get handled while typing within a text frame? What behavior would you prefer?

Like so...?

However, I might still misunderstand your desire, currently in my impression it would require bit much development effort, with possibly influencing tools and general text style behavior ... just for dragging text in a way different from the already existing text dragging features.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

@thomasoIn one way, your questions are good for me, because I never imagined that anyone would have any difficulty understanding what I was requesting.  Obviously, I failed to communicate successfully.   Now, how can I complete the job of communication without being excessively pedantic, belaboring every seemingly obvious detail, and generally bogging down the discussion with a thicket of hedges, caveats and explicitly enumerated exceptions to the general principle?  Clearly, you feel I need to say something more.  I, on the other hand, believe you are over-thinking the problem rather substantially.

"What detail is lacking?"  The ability to put fomatted text in the assets as text rather than as a frame containing text.

"Do you want to use the text cursor or the move cursor?"  It is entirely routine across the software industry that drag-and-drop is both context- and content-sensitive.  That is, when dragging an object of type A, the cursor is appropriate for the supported operations on objects of type A, and reflects whether or not the cursor is positioned over a suitable drop target for objects of type A.  So, if objects of type "text snippet" are added to assets, and one selects an asset of that type and begins dragging it, the cursor should be the appropriate cursor for dragging and dropping text, and the cursor should reflect when it is over an appropriate drop target.  In the simplest implementation, suitable drop targets would be text frames.  One can imagine that Affinity could also support the page background, either creating a new text frame or converting the text to artistic text.  However, I am not requesting the latter enhancements.

Regarding selecting the asset to be dragged onto the page, this should behave as for all other assets.  The entire asset is selected and copied.  No new mechanism (or complication) is required or desired.

Regarding the impact of a dropped text snippet on the text surrounding the drop point, the existing text, both preceding and following the drop/insertion point, should not be affected by any styling of the inserted text asset.  This is the existing behavior if you drag styled text from one location in a text frame to another location.  Why would one want a different behavior when dragging from the assets panel rather than from within the text flow?  After insertion, the text asset is simply part of the text flow. (Which is a principal reason that inlining tiny text frames or artistic text is not a happy alternative.)  Therefore, if the user (re)positions the text cursor into a styled span of the inserted asset and begins typing, the current behavior will naturally apply.  So, I am expecting the existing behavior to apply and am at something of a loss to understand why you would question this.

While only the Affinity staff can comment on the potential difficulty of fulfilling this request with certain knowledge, in my analysis the most significant task would be the addition of an additional class of objects to the assets collection.  The mechanics of dragging and dropping formatted text already exist.

 

Link to comment
Share on other sites

6 hours ago, sfriedberg said:

"What detail is lacking?"  The ability to put fomatted text in the assets as text rather than as a frame containing text.

Technically, you can do that already. You just start with Artistic Text rather than Frame Text.

But you still cannot easily get that text inserted into an existing text flow in a frame.

I suspect that any new function that provides what you want will have to work significantly differently than current assets work, and would not use a drag-based mechanism. A better mechanism for what you describe, I think, would be one where you right-click on a text asset that you've saved, and choose a new option "Copy Text". After that you would use Edit > Paste to insert it into the text frame where you want it.

There are still issues to consider (which relate to what @thomaso has mentioned), such as: should the asset contain a representation of the formatted text as local formatting, or should it actually record any character (or paragraph) text styles applied to the text asset? That is, consider that the text may have explicit italic or bold or color attributes applied, or it may have a character text style applied, or both. Or a combination of characteristics from a paragraph text style and a character text style and added local formatting.

Or, for a text asset that has a character text style assigned, consider this scenario. Say that the character text style Character 1 is applied to the asset, and you:

  • drag that text asset into a document that does not have Character 1 defined.  Should it become defined there?
    or
  • drag that text asset into a document that has Character 1 defined, but defined differently. Should the format of the text asset be changed to match the local definition of Character 1? Or should the format be retained, and a new Character text style Character 2 be defined for it?

Similar considerations occur if the text asset has a paragraph text style assigned to it.

And, if the text asset has a paragraph style, and you put it into a paragraph with a different paragraph text style, what happens then.

Basically, your idea is an intriguing one, and would be useful, but has some major complications to consider when designing/implementing it.

-- Walt
Designer, Photo, and Publisher V1 and V2 at latest retail and beta releases
PC:
    Desktop:  Windows 11 Pro, version 23H2, 64GB memory, AMD Ryzen 9 5900 12-Core @ 3.00 GHz, NVIDIA GeForce RTX 3090 

    Laptop:  Windows 11 Pro, version 23H2, 32GB memory, Intel Core i7-10750H @ 2.60GHz, Intel UHD Graphics Comet Lake GT2 and NVIDIA GeForce RTX 3070 Laptop GPU.
iPad:  iPad Pro M1, 12.9": iPadOS 17.4.1, Apple Pencil 2, Magic Keyboard 
Mac:  2023 M2 MacBook Air 15", 16GB memory, macOS Sonoma 14.4.1

Link to comment
Share on other sites

9 hours ago, sfriedberg said:

"What detail is lacking?"  The ability to put fomatted text in the assets as text rather than as a frame containing text.

This sounds to require an entirely new type of object in Affinity: Text without container. – Do you agree?
If yes:
a.) Would this new object type have a layer of its own? Without loosing its no-container property?
b.) Do you think developing a new object type is indeed a good idea if its only goal is to slightly shorten the existing workflows of dragging/copying selected text?

9 hours ago, sfriedberg said:

"Do you want to use the text cursor or the move cursor?" (...)
(...) So, if objects of type "text snippet" are added to assets, and one selects an asset of that type and begins dragging it, the cursor should be the appropriate cursor for dragging and dropping text, and the cursor should reflect when it is over an appropriate drop target.

Concerning items in containers: Affinity is currently working this way. – Do you agree?
Concerning containerless text snippets: When you currently work within a text frame you have the text cursor active, to move certain parts of text you need to press SHIFT + Mouse Down and hover over the wanted area to make it selected, or, alternatively use various multiple-click for words, lines, paragraphs. – Is this the workflow you expect for new text snippet types, too?

If yes: Isn't this the way you currently can work with a text frame asset containing formatted content snippets?
If not:
c.) What exactly would be different during a select + move + place action of a containerless text snippet?
d.) Would it possibly require – additionally to the new object type – a new tool/cursor, to handle it properly as expected?

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

4 hours ago, walt.farrell said:

There are still issues to consider (...), such as: should the asset contain a representation of the formatted text as local formatting, or should it actually record any character (or paragraph) text styles applied to the text asset?

Walt, in my understanding your mentioned subject of saved text styles isn't relevant for this topic.

It exists besides this new feature requets and is solved in Affinity already (haven't you ever tried it yourself yet?): A text frame with such conditions used as asset gets its saved styles added to the styles panel once you drag the asset into a different document. If the style exists already then the styles of the asset get added and renamed with an additional number:

1943153845_assettextframeswithsavedstyles.jpg.2600c68cef4f94d10db52af87ebc7021.jpg


But, regardless of saved or not-saved formatting, it might be relevant, how @sfriedberg would expect a snippet to influence the text which gets typed behind a placed snippet. As shown in my last video above such text would continue with a style of the placed item, which can differ from the style of the placed snippet. That might reduce the benefit of the required improvement, especially if it requires a new developed type of object. Or, depending on sfriedbergs answer (= feature requests definition), it might even require a new behavior of styles within texts.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

Another idea/guess: @sfriedberg, unfortunately you still avoid to show a visual sample for the use of your feature request. You mention, besides formatting requirements, also " "words" that involve some fairly tedious Unicode glyph selection ". That makes me think at least concerning text content that using the available auto-correct customization can be helpful for your needs (though my quick test didn't include cumbersome Unicode glyphs).

1. In Preferences > Auto-Correct define + "Add" a desired pair of in- & output text.

1800610798_auto-corrsnippetmath-setupNone2.jpg.e3089e12129c68a7247a19d97efd37e9.jpg

2. Then it gets replaced accordingly as soon I type a blank space afterwards. So "snip1 " gets replaced, whereas "snip12" is ignored as expected. In my test it gets replaced even with "While Typing" unticked, maybe because it was ticked it before.

macOS 10.14.6 | MacBookPro Retina 15" | Eizo 27" | Affinity V1

Link to comment
Share on other sites

Looks more to me here, that the whole request initially is more related to the absence of some build-in math/formular generation & snippets modul. I don't think reusing the available Assets panel is the right way here for such specific things. Also preformatted text snippets will, or might interference probably with the initial setup text styles settings and flow here then. - All in all the whole depends on if and how flexible different formated text can then be overall mixed and used in already predefined and applied text styles.

☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan
☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2

Link to comment
Share on other sites

On 1/2/2021 at 11:22 PM, sfriedberg said:

I do a lot of documents with math in them, and have recurrent "words" that involve some fairly tedious Unicode glyph selection and character formatting (fonts, styles, baseline adjustment, kerning, etc.) to get the proper appearance.  While I use externally-generated SVG for block/display math text, there's still a lot of inline math for which placing SVG images is not a good solution.  I would like to define these recurring "words" as (text) assets, and be able to drag them into a text flow.

Currently, the best I can do is define a text frame containing one or more "words" as an asset, drag the text frame into the page, copy the desired text snippet from the text frame, paste the snippet into the desired text flow, then delete the unwanted asset text frame.  I'm requesting a tidier workflow for text snippet assets.   The benefit is by no means limited to mathematical documents.  Anyone working with boilerplate language could also benefit from text assets.

I think was a perfectly clear request and a useful one for Serif and thus Publisher. Text assets as described by @sfriedberg would be a logic and useful addition. In his scenario, of course, but also others.

Lets see if it the request results in creative thoughts and lines of code in Nottingham. The request was directed at Serif anyway !

  • "The user interface is supposed to work for me - I am not supposed to work for the user interface."
  • Computer-, operating system- and software agnostic; I am a result oriented professional. Look for a fanboy somewhere else.
  • “When a wise man points at the moon the imbecile examines the finger.” ― Confucius
  • Not an Affinity user og forum user anymore. The software continued to disappoint and not deliver.
Link to comment
Share on other sites

7 hours ago, thomaso said:

You mention, besides formatting requirements, also " "words" that involve some fairly tedious Unicode glyph selection ". That makes me think at least concerning text content that using the available auto-correct customization can be helpful for your needs

No, that's really not helpful in my situation.

Link to comment
Share on other sites

8 hours ago, thomaso said:

t might be relevant, how @sfriedberg would expect a snippet to influence the text which gets typed behind a placed snippet. As shown in my last video above such text would continue with a style of the placed item, which can differ from the style of the placed snippet.

I already gave a very specific reply to this.  The behavior should be exactly the current behavior you get when selecting a span of styled text in a text frame and dragging and dropping it at some other location in the text frame.

Link to comment
Share on other sites

8 hours ago, thomaso said:

Concerning containerless text snippets: When you currently work within a text frame you have the text cursor active, to move certain parts of text you need to press SHIFT + Mouse Down and hover over the wanted area to make it selected, or, alternatively use various multiple-click for words, lines, paragraphs. – Is this the workflow you expect for new text snippet types, too?

I already gave a very speciic reply to this.  The behavior should be analogous to the current behavior you get when selecting an asset and initiating a drag mouse gesture; the entire asset is selected.  If Affinity wants to offer more complex options for selecting substrings of a text snippet asset, that's fine, but it's not what I am requesting.

Link to comment
Share on other sites

8 hours ago, thomaso said:

This sounds to require an entirely new type of object in Affinity: Text without container. – Do you agree?
If yes:
a.) Would this new object type have a layer of its own? Without loosing its no-container property?
b.) Do you think developing a new object type is indeed a good idea if its only goal is to slightly shorten the existing workflows of dragging/copying selected text?

I have twice previously given an explicit and very specific reply to your first question.  Yes, formated text snippets would be a new class of asset.

I have already given a very specific reply to subpart a).  No, it would not have a layer of its own. When dropped the asset text would be inserted into the target text flow EXACTLY AS IF IT WERE SELECTED AND DRAGGED FROM WITHIN THE TEXT FRAME. I believe this is now the fourth time I have stated this.

Answer to subpart b).  Yes, I do.  That's why I made this request to do that very thing,.

Link to comment
Share on other sites

12 hours ago, walt.farrell said:

Or, for a text asset that has a character text style assigned, consider this scenario. Say that the character text style Character 1 is applied to the asset, and you:

  • drag that text asset into a document that does not have Character 1 defined.  Should it become defined there?
    or
  • drag that text asset into a document that has Character 1 defined, but defined differently. Should the format of the text asset be changed to match the local definition of Character 1? Or should the format be retained, and a new Character text style Character 2 be defined for it?

Similar considerations occur if the text asset has a paragraph text style assigned to it.

While probably not of keen interest to all potential users of the requested feature, my motivation for making the request is drive in large part by having to do a lot of ad-hoc character property overrides, such as baseline adjustments.  It would be possible, but incredibly tedious, to make explicit character styles for every adjustment.  Simple example, if I want to have some subscripted variables a_sub_1, a_sub_2, a_sub_i, a_sub_j, etc., I can usually (depending on the font) use subscript positioning for the numeric subscripts, but not for the alphabetic subscripts.  The latter require a font size adjustment and a baseline adjustment to visually comply with the numeric subscripts.  That's a very simple case.

So I definitely want non-styled character property and typography overrides to be preserved when defining assets, and it would be acceptable for my purposes if explicitly styled characters are either
1) reduced to the property values in effect at the time the asset is defined, and the character styles discarded from the asset, or
2) character styles are preserved in the asset, and when the asset is dragged into the document, the corresponding styles are added to the document.
Affinity could do this either way, in whatever manner is most compatible with handling styles on the existing asset types, and it would work for me.

Regarding paragraph styles, let's assume as a guiding principle that text snippet assets never alter the drop target paragraph properties.  I can see at least three possibilities for the impact of the drop target paragraph properties on the inserted text snippet:
1) None:  The inserted text asset appears exactly as it was defined, regardless of any font or typopgraphy settings of the drop target paragraph.  This is the mode I am most interested in.
2) Default:  The inserted text asset adopts only those character properties of the drop target paragraph styling which were inherited (without override) from the asset defining paragraph selection.
3) Override: All character properties of the inserted text asset are taken from the drop target paragraph styling, regardless of any styling present in the asset definition.  This mode would be useless for my motivating problem.
Affinity could use modifier keys to switch between these modes, but if they only offered the first mode, I would be content.

Link to comment
Share on other sites

13 hours ago, sfriedberg said:

1) reduced to the property values in effect at the time the asset is defined, and the character styles discarded from the asset, or
2) character styles are preserved in the asset, and when the asset is dragged into the document, the corresponding styles are added to the document.

I feel like option 2 would be much more helpful, because it gives you the ability to make design tweaks in either the existing document or in new documents that are styled differently.

I think saving formatting without saving character styles would be atypical of what the user might expect.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.