1
votes

I am using lyx and want to use the LaTeX package dsfont to display a unity matrix with double stroke. So, I put

 \usepackage{dsfont}

in my document preamble and put

\mathds{1}

in my equation. However, lyx does not recognize the command in the document, so just print \mathds in red color. When I compile the document, lyx does not complain about not knowing the command. However, in the resulting pdf, I just see "{1}" in my formula. And if I look at the tex Document which I produce by exporting to tex, lyx actually put the following code in the document:

\mathds \{1\}

Any idea what is wrong here?

2
I gave a workaround, but note that if you were interested in adding support for \mathds directly in LyX, look at the file lib/symbols. You don't need to know any C++. Just add the symbol, package, and LaTeX. If you do this, please post a patch at lyx.org/trac or send an email to [email protected]scottkosty

2 Answers

2
votes

The problem is that LyX does not support ERT in math (I think someone is working on this). You can workaround this by defining a math macro (Insert > Math > Macro).

Here is the LyX display (you can customize it in the macro):

enter image description here

Here is the output:

enter image description here

Here is the resulting document:

#LyX 2.2 created this file. For more info see http://www.lyx.org/
\lyxformat 474
\begin_document
\begin_header
\textclass article
\begin_preamble
\usepackage{dsfont}
\end_preamble
\use_default_options true
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_math auto
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize default
\spacing single
\use_hyperref false
\papersize default
\use_geometry false
\use_package amsmath 1
\use_package amssymb 1
\use_package cancel 1
\use_package esint 1
\use_package mathdots 1
\use_package mhchem 1
\use_package stackrel 1
\use_package stmaryrd 1
\use_package undertilde 1
\cite_engine basic
\cite_engine_type default
\biblio_style plain
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\justification true
\use_refstyle 1
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\mds}[1]{\mathds{#1}}
{MDS\{#1\}}
\end_inset


\end_layout

\begin_layout Standard
\begin_inset Formula $\mds 1$
\end_inset


\end_layout

\end_body
\end_document

And the resulting .tex file (exported from LyX):

#LyX 2.2 created this file. For more info see http://www.lyx.org/
\lyxformat 474
\begin_document
\begin_header
\textclass article
\begin_preamble
\usepackage{dsfont}
\end_preamble
\use_default_options true
\maintain_unincluded_children false
\language english
\language_package default
\inputencoding auto
\fontencoding global
\font_roman default
\font_sans default
\font_typewriter default
\font_math auto
\font_default_family default
\use_non_tex_fonts false
\font_sc false
\font_osf false
\font_sf_scale 100
\font_tt_scale 100
\graphics default
\default_output_format default
\output_sync 0
\bibtex_command default
\index_command default
\paperfontsize default
\spacing single
\use_hyperref false
\papersize default
\use_geometry false
\use_package amsmath 1
\use_package amssymb 1
\use_package cancel 1
\use_package esint 1
\use_package mathdots 1
\use_package mhchem 1
\use_package stackrel 1
\use_package stmaryrd 1
\use_package undertilde 1
\cite_engine basic
\cite_engine_type default
\biblio_style plain
\use_bibtopic false
\use_indices false
\paperorientation portrait
\suppress_date false
\justification true
\use_refstyle 1
\index Index
\shortcut idx
\color #008000
\end_index
\secnumdepth 3
\tocdepth 3
\paragraph_separation indent
\paragraph_indentation default
\quotes_language english
\papercolumns 1
\papersides 1
\paperpagestyle default
\tracking_changes false
\output_changes false
\html_math_output 0
\html_css_as_file 0
\html_be_strict false
\end_header

\begin_body

\begin_layout Standard
\begin_inset FormulaMacro
\newcommand{\mds}[1]{\mathds{#1}}
{MDS\{#1\}}
\end_inset


\end_layout

\begin_layout Standard
\begin_inset Formula $\mds 1$
\end_inset


\end_layout

\end_body
\end_document
0
votes

Assuming I'd like to use it in more than once, I made a simple module for that. It redefines \mathbb to \mathds.

Just copy the content below in a text file and save it to the user layouts folder (see location in Help > About). Reconfigure LyX and activate it in the document settings.

#\DeclareLyXModule{DS-Font}
#DescriptionBegin
# If you like the DS font, just include this package. It should be compatible with any other package.
# It defines \mathbb to be \mathds and maps the original \mathbb to \mathbbOld
#DescriptionEnd
#
#Author: Quirin F. Schroll  aka.  Bolpat

Format 60

AddToPreamble
    \usepackage{dsfont}
    \newcommand{\mathbbOld}{\mathbb}
    \renewcommand{\mathbb}{\mathds}
EndPreamble