mailing-list for TeXmacs Users

Text archives Help


Re: [TeXmacs] Inline v block context + Documentation of newer features and of the source editor?


Chronological Thread 
  • From: Karl Hegbloom <address@hidden>
  • To: Sam Liddicott <address@hidden>
  • Cc: texmacs-users <address@hidden>
  • Subject: Re: [TeXmacs] Inline v block context + Documentation of newer features and of the source editor?
  • Date: Thu, 29 Sep 2016 00:04:44 +0000

Ok, so it /does/ matter if it's entered on one line or line-broken into several. That must affect whether it returns in-line or block content.

I like the use of merge for that,  I think. 


On Wed, Sep 28, 2016, 03:49 Sam Liddicott <address@hidden> wrote:
I think I had better explain how the macro works:

There will be a specialised internal macro called:
ov-<get-label|<arg|x>> so that we effectively have a different macro
for each argument type.
But afaik there could be any number of possible types in the future,
and I only want to override for document (block) type.
So the first think I do is define ov-WHATEVER for the actual argument
type, and make it just call the old-verbaitim:

<with|<merge|ov-|<get-label|<arg|x>>>|<macro|x|<old-verbatim|<arg|x>>>

so that ensures that there will be a macro defined for the current
argument type.

Then I define the special behavour macro which may overwrite the one
we just defined but that's OK:

ov-document|<macro|x|<with|par-par-sep|0fn|<small|<old-verbatim|<arg|x>>>>>

then we have the actual body of this macro, where it will call one of
the previous macross that were defined in the with block:
<compound|<merge|ov-|<get-label|<arg|x>>>|<arg|x>>>

the use of compound..merge is what avoids an <if> clause which would
make the argument inaccessible to the editor.

Here is the full macro spaced out for readability, but as this must
work as an inline macro too, it must be entered all on one line

<assign|verbatim|
  <macro|x|<with|
    <merge|ov-|<get-label|<arg|x>>>|
        <macro|x|<old-verbatim|<arg|x>>>|
    ov-document|<macro|x|
        <with|par-par-sep|0fn|<small|<old-verbatim|<arg|x>>>>>|
    <compound|<merge|ov-|<get-label|<arg|x>>>|<arg|x>>>
  >
>



On Wed, Sep 28, 2016 at 10:39 AM, Sam Liddicott <address@hidden> wrote:
> Sorry for the delay in replying:
>
> Here is an example. Note with it uses <merge> and <get-label> to avoid
> an <if> clause which would make arguments inaccessible.
>
> It gives a verbatim, which if not applied to a block (document) is
> normal, but if applied to a block reduces the font size and removes
> the paragraph separation.
>
> The old-verbatim is a bit of a hack, I have not been successful in
> duplicating tex's renew-command in texmacs yet.
>
> <assign|old-verbatim|<value|verbatim>>
>
> <assign|verbatim|<macro|x|<with|<merge|ov-|<get-label|<arg|x>>>|<macro|x|<old-verbatim|<arg|x>>>|ov-document|<macro|x|<with|par-par-sep|0fn|<small|<old-verbatim|<arg|x>>>>>|<compound|<merge|ov-|<get-label|<arg|x>>>|<arg|x>>>>>
>
> Sam
>
> On Mon, Sep 26, 2016 at 9:02 PM, Karl Hegbloom <address@hidden> wrote:
>> Sam, do you recall which style files those are, to assist me in finding
>> them? Are they part of the TeXmacs distribution?
>>
>> On Mon, Sep 26, 2016 at 11:50 AM Sam Liddicott <address@hidden> wrote:
>>>
>>> In the past I've done macros that behave differently depending if their
>>> argument is document (block) or not.
>>>
>>> You probably need to do that
>>>
>>> Sam
>>>
>>>
>>> On 22 Sep 2016 5:26 p.m., "Karl Hegbloom" <address@hidden> wrote:
>>>>
>>>> I was goofing around trying to create a \redact{} macro, and having
>>>> trouble getting it to work right because the \phantom {} macro is inline and
>>>> so when I try to wrap a block of text (where the text has a line break
>>>> inside a paragraph) it gets turned into one long line. I want the \redact
>>>> macro so that I can wrap things like people's names, social security
>>>> numbers, telephone numbers, and home addresses with it in a legal filing,
>>>> and then produce a redacted copy for more-public consumption.
>>>>
>>>> The \redact macro has a \with inside wrapping an \if so that a global
>>>> setting can control whether \redact renders as text or as redacted text.
>>>>
>>>> I'm finding the source editor to be confusing because sometimes I think
>>>> the macro needs to be line broken and indented,  but other times it belongs
>>>> all written in one line... Q: does writing the macro with a line break and
>>>> indenting cause it to be block context? How can I control that? How can I,
>>>> for example, cause the text inside the branches of an \if or \case to appear
>>>> as block context content, fully line-broken?... or as inline content, if
>>>> that's what I want? I could not get an \if to split like that.
>>>>
>>>> I found \repeat-through {}{} which uses \datoms {}{} to write /
>>>> characters through each character of the tract inside of it, and it works
>>>> for both inline and block text. It's great, but I can still read the text. I
>>>> had been using a composition of \gnawed and \degraded font effects to
>>>> achieve redaction. I want it to be unreadable but not solid black, since
>>>> that wastes ink when printing. I also want the PDF produced when redaction
>>>> is enabled to not carry the actual text (as internal strings that can be
>>>> found with, e.g., grep or a text editor. When I tried to use those font
>>>> effects within the \datoms, it slowed down TeXmacs to the point that it was
>>>> unusable.
>>>>
>>>> So then I started experimenting with the items under the Insert  -> Fold
>>>> menu. I'm finding that those are not very well documented yet and I'm having
>>>> a hard time figuring out how to use them. I think that the "it turns into
>>>> one long line" problem happens no matter what I tried anyway.
>>>>
>>>> Also, I think there might be documentation files in the source repository
>>>> that are not becoming part of the documentation available from the help
>>>> menu. Are they out of date? Or forgotten due to other projects' higher
>>>> precedence?



Archive powered by MHonArc 2.6.19.

Top of page