Am Freitag, 21. Juli 2017 um 22:08:48, schrieb Guenter Milde 
<mi...@users.sf.net>
> On 2017-07-20, Kornel Benko wrote:
> > Am Mittwoch, 19. Juli 2017 um 22:23:32, schrieb Kornel Benko 
> > <kor...@lyx.org>
> >> Am Mittwoch, 19. Juli 2017 um 19:48:49, schrieb Guenter Milde 
> >> <mi...@users.sf.net>
> >> > On 2017-07-19, Kornel Benko wrote:
> >> > 
> >> > > [-- Type: text/plain, Encoding: 7bit --]
> >> > 
> >> > > Am Mittwoch, 19. Juli 2017 um 15:00:16, schrieb Kornel Benko 
> >> > > <kor...@lyx.org>
> >> > >> So, maybe better we could omit \textcompwordmark in mono fonts.
> >> > 
> >> > > This patch works for me. It uses vphantom{}, but only between '<<' and 
> >> > > '>>'.
> >> > 
> >> > See my other post for alternatives solving the "missing character" error
> >> > with Unicode fonts for \textcompwordmark.
> 
> >> I have read it. I understand the usage and I don’t insist on removing
> >> textcompwordmark any longer.
> 
> >> I don't insist. I would insist on removing textcompwordmark in mono
> >> fonts, but did not see an easy way.
> 
> > It turned out, it is easy.
> 
> But it is still wrong: 
> 
> * It is LyX policy to keep LaTeX output stable (unless it turns out to be
>   wrong).
> 
> * \textcompwordmark is the correct LaTeX internal character
>   representation (LICR) for u200C (zero width non joiner, ZWNJ).

OK

>   If some fonts are missing this character this is a bug in the fonts or
>   in the code calling this missing character (here tu1enc.def in latex/base/).
>   
> * The workaround should fix the command, not use a different
>   one. Power users are then still able to override our workaround with
>   their own re-definition of \textcompwordmark.

Mark, that the change is done only for mono fonts.

> 
> * Actually, in the case of ZWNJ, just dropping the missing character results
>   in correct output. 
>   --> We don't even need to add a workaround, if we remove
>     the "warning to error conversion for missing characters" for this case.
> 

Please not now. Who may do the work?

> 
> > Output for desired ligatures with the attached patch is:
> >     "\\vphantom{}" if mono mono-fonts
> >     "\\textcompwordmark " else.
> 
> This will only help for documents using DejaVu.  OTOH, it is not required
> for Free* and no help for LatinModern.
> 

No, DejaVu is selected because of endless latex loop, nothing to do with 
\\textcompwordmark

> 
> ...
> 
> > diff --git a/lib/doc/de/Additional.lyx b/lib/doc/de/Additional.lyx
> > index 5ccd07b..539aa6d 100644
> > --- a/lib/doc/de/Additional.lyx
> > +++ b/lib/doc/de/Additional.lyx
> > @@ -41,9 +41,9 @@ shapepar
> >  \language_package default
> >  \inputencoding auto
> >  \fontencoding global
> > -\font_roman "lmodern" "default"
> > -\font_sans "lmss" "default"
> > -\font_typewriter "lmtt" "default"
> > +\font_roman "lmodern" "DejaVu Serif [bitstream]"
> > +\font_sans "lmss" "DejaVu Sans [bitstream]"
> > +\font_typewriter "lmtt" "DejaVu Sans Mono [bitstream]"
> >  \font_math "auto" "auto"
> >  \font_default_family default
> >  \use_non_tex_fonts false
> 
> This fixes the test case but not the problem.

This fixes the lyx file which we provide.

> The correct fix is either an exception to the "error-on-missing-chars"
> feature, or providing the workaround (re-defining to the original default):
> 
>   % ZWNJ missing in many Unicode fonts:
>   \DeclareTextCommand{\textcompwordmark}{\UnicodeEncodingName}{%
>      \leavevmode\kern\z@}
> 
> in LaTeXFeatures.cpp and "require" it in case \textcompwordmark is used in
> documents with "non-TeX fonts" if configure detects TeXLive16 or later.
> 
> Günter

        Kornel

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to