Custom layout inset without arguments

Andrew Parsloe ajparsloe at gmail.com
Sat Apr 18 21:39:25 UTC 2020


On 19/04/2020 6:36 am, Richard Kimberly Heck wrote:
> On 4/18/20 9:49 AM, Gaston Gloesener wrote:
>>
>> InsetLayout "Flex:projectNameInset"
>>
>>   LabelString “My Project Name"
>>
>>   LatexType Command
>>
>>   LaTexName projectName
>>
>>   LyxType "custom"
>>
>>   Decoration Classic
>>
>>   Preamble
>>
>>     \newcommand*{\projectName}{ My Project Name }
>>
>>   EndPreamble
>>
>> End
>>
>> The problem with this InsetLayout is that LyX always displays a red 
>> parameter input box after the insert of the inset and this is quite 
>> annoying in this use case as such insets will be quite common in the 
>> document. Is there any method for removing this as this macro does 
>> not require any arguments. I tried to set LatexType to None with no 
>> success and did not identify any other potential solution. Also 
>> google did not show me any potential solutions for this.
>>
>> After some research and looking up in files provided with LyX I seem 
>> to understand that basically insets are always expected to have some 
>> type of conments and the use I make of it here is more a work-a-round 
>> than a solution. At least I was unable to locate an inset where no 
>> content was excpected.
>>
>> So the question remains:
>>
>>   * Is there a way to prevent LyX from asking for some content (red box)
>>   * If not, is there another solutioin than the one used here to
>>     achieve the same goals and avoid that input box ?
>>   * would it be possible to add an attribute to InsetLayout to
>>     disable the contents box in the doc text in a future version ?
>>     (like NoContent)
>>
> This is bug #4066: https://www.lyx.org/trac/ticket/4066. There's at 
> least some intention to try to figure it out before 2.4.0. For now, 
> the workaround you mention is the only one available.
>
> Riki
>
But you can eliminate the red box from showing by closing the inset 
(click on the inset label to toggle open/closed).

Alternatively, there is a hybrid Latex/LyX solution, that avoids going 
to the menu to insert custom insets and uses keyboard shortcuts instead.

1. Ensure instant preview is On (Tools > Preferences > Look & Feel > 
Display)

2. Assign a keyboard shortcut to preview-insert (Tools > Preferences > 
Editing > Shortcuts > Cursor, Mouse and Editing Functions). Now that 
printing directly from LyX is no longer supported the shortcut Ctrl+P is 
available.

3. Enter in the preamble (Document > Settings > Latex Preamble)

\newcommand*{\projectName}{ My Project Name }

and click OK.

To enter the project name in the document,

4. insert a preview inset (Ctrl+P)

5. insert an ert inset (Ctrl+L) inside the preview inset. On a QWERTY 
keyboard, the P and L  keys are diagonal neighbours so steps 4 & 5 
involve holding the ctrl key down and tapping P and L in quick succession.

6. enter \projectName in the ert inset

7. move the cursor outside the insets. The preview does its magic and 
the project name is shown.

Andrew


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.lyx.org/pipermail/lyx-users/attachments/20200419/901deab8/attachment.html>


More information about the lyx-users mailing list