mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-09 18:31:04 +00:00
Transform InsetNomenclature to a collapsible
Fixes: #10460, #12595, #6353
This commit is contained in:
parent
66afab4497
commit
a5841b3312
@ -7,6 +7,10 @@ changes happened in particular if possible. A good example would be
|
|||||||
|
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
2024-08-12 Jürgen Spitzmüller <spitz@lyx.org>
|
||||||
|
* Format incremented to 627: Transform nomenclature inset to
|
||||||
|
collapsible.
|
||||||
|
|
||||||
2024-07-21 Jürgen Spitzmüller <spitz@lyx.org>
|
2024-07-21 Jürgen Spitzmüller <spitz@lyx.org>
|
||||||
* Format incremented to 626: Support for manuel longest label in
|
* Format incremented to 626: Support for manuel longest label in
|
||||||
\printnomencl (via new param option set_width "textwidth").
|
\printnomencl (via new param option set_width "textwidth").
|
||||||
|
@ -36569,7 +36569,11 @@ nomencl
|
|||||||
|
|
||||||
installed.
|
installed.
|
||||||
You find it in the \SpecialChar TeX
|
You find it in the \SpecialChar TeX
|
||||||
catalogue,
|
catalog
|
||||||
|
\change_deleted -712698321 1723454635
|
||||||
|
ue
|
||||||
|
\change_unchanged
|
||||||
|
,
|
||||||
|
|
||||||
\begin_inset CommandInset citation
|
\begin_inset CommandInset citation
|
||||||
LatexCommand cite
|
LatexCommand cite
|
||||||
@ -36579,7 +36583,13 @@ literal "true"
|
|||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
or in the package manager of your \SpecialChar LaTeX
|
or in the package manager of your \SpecialChar LaTeX
|
||||||
-system.
|
|
||||||
|
\change_inserted -712698321 1723454632
|
||||||
|
|
||||||
|
\change_deleted -712698321 1723454632
|
||||||
|
-
|
||||||
|
\change_unchanged
|
||||||
|
system.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
@ -36603,7 +36613,13 @@ arg "nomencl-insert"
|
|||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
.
|
.
|
||||||
A gray box labeled
|
A
|
||||||
|
\change_deleted -712698321 1723454657
|
||||||
|
gray box
|
||||||
|
\change_inserted -712698321 1723454660
|
||||||
|
collapsible inset
|
||||||
|
\change_unchanged
|
||||||
|
labeled
|
||||||
\begin_inset Quotes eld
|
\begin_inset Quotes eld
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
@ -36615,7 +36631,17 @@ Nom
|
|||||||
\begin_inset Quotes erd
|
\begin_inset Quotes erd
|
||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
is inserted and a window pops up asking for the nomenclature entry.
|
is inserted
|
||||||
|
\change_deleted -712698321 1723454685
|
||||||
|
and a window pops up asking for the nomenclature entry
|
||||||
|
\change_unchanged
|
||||||
|
.
|
||||||
|
|
||||||
|
\change_inserted -712698321 1723454710
|
||||||
|
If the cursor is after a word,
|
||||||
|
this is copied into the inset.
|
||||||
|
\change_unchanged
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
@ -36630,9 +36656,25 @@ Symbol
|
|||||||
Description
|
Description
|
||||||
\family default
|
\family default
|
||||||
of the term or symbol.
|
of the term or symbol.
|
||||||
|
|
||||||
|
\change_inserted -712698321 1723454817
|
||||||
|
The former is inserted into the collapsible inset directly,
|
||||||
|
the latter into the
|
||||||
|
\family sans
|
||||||
|
Description
|
||||||
|
\family default
|
||||||
|
sub-inset which is automatically inserted or can be inserted via the
|
||||||
|
\family sans
|
||||||
|
Insert
|
||||||
|
\family default
|
||||||
|
menu.
|
||||||
|
\change_unchanged
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
|
||||||
|
\change_deleted -712698321 1723454741
|
||||||
\begin_inset Note Greyedout
|
\begin_inset Note Greyedout
|
||||||
status open
|
status open
|
||||||
|
|
||||||
@ -36653,6 +36695,8 @@ Literal
|
|||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\change_unchanged
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
@ -36682,6 +36726,11 @@ Layout
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
|
||||||
|
\change_inserted -712698321 1723454941
|
||||||
|
Within the nomenclature inset,
|
||||||
|
you can use math and formatting as usual.
|
||||||
|
\change_deleted -712698321 1723454925
|
||||||
If you have symbols in formulas,
|
If you have symbols in formulas,
|
||||||
you have to define them in the
|
you have to define them in the
|
||||||
\family sans
|
\family sans
|
||||||
@ -36749,6 +36798,8 @@ Sigma
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
|
||||||
|
\change_deleted -712698321 1723454925
|
||||||
(A short introduction to the \SpecialChar LaTeX
|
(A short introduction to the \SpecialChar LaTeX
|
||||||
syntax is given in section
|
syntax is given in section
|
||||||
\begin_inset space ~
|
\begin_inset space ~
|
||||||
@ -36766,6 +36817,8 @@ nolink "false"
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
|
||||||
|
\change_deleted -712698321 1723454925
|
||||||
You cannot use the
|
You cannot use the
|
||||||
\family sans
|
\family sans
|
||||||
Text
|
Text
|
||||||
@ -36851,6 +36904,8 @@ emphasized
|
|||||||
emph
|
emph
|
||||||
\series default
|
\series default
|
||||||
.
|
.
|
||||||
|
\change_unchanged
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
@ -36899,6 +36954,8 @@ serif
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
|
|
||||||
|
\change_deleted -712698321 1723454959
|
||||||
If the characters |
|
If the characters |
|
||||||
\begin_inset space \space{}
|
\begin_inset space \space{}
|
||||||
\end_inset
|
\end_inset
|
||||||
@ -36931,6 +36988,8 @@ literal "true"
|
|||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
|
|
||||||
|
\change_unchanged
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
@ -36961,8 +37020,20 @@ Sort order
|
|||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
The nomenclature entries are sorted alphabetically by the \SpecialChar LaTeX
|
The nomenclature entries are sorted alphabetically by the \SpecialChar LaTeX
|
||||||
-code of the symbol definition.
|
|
||||||
This leads to undesired results when you,
|
\change_deleted -712698321 1723454966
|
||||||
|
-
|
||||||
|
\change_inserted -712698321 1723454966
|
||||||
|
|
||||||
|
\change_unchanged
|
||||||
|
code of the symbol definition.
|
||||||
|
This leads to undesired results
|
||||||
|
\change_deleted -712698321 1723454971
|
||||||
|
when
|
||||||
|
\change_inserted -712698321 1723454971
|
||||||
|
if
|
||||||
|
\change_unchanged
|
||||||
|
you,
|
||||||
for example,
|
for example,
|
||||||
have symbols in formulas.
|
have symbols in formulas.
|
||||||
Suppose you have nomenclature entries for the symbols
|
Suppose you have nomenclature entries for the symbols
|
||||||
@ -37040,7 +37111,9 @@ $
|
|||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
To control the sort order,
|
To control the sort order,
|
||||||
you can edit the
|
you can
|
||||||
|
\change_deleted -712698321 1723454992
|
||||||
|
edit the
|
||||||
\family sans
|
\family sans
|
||||||
Sort
|
Sort
|
||||||
\begin_inset space ~
|
\begin_inset space ~
|
||||||
@ -37048,7 +37121,19 @@ Sort
|
|||||||
|
|
||||||
as
|
as
|
||||||
\family default
|
\family default
|
||||||
field of the nomenclature dialog.
|
field of the nomenclature dialog
|
||||||
|
\change_inserted -712698321 1723455033
|
||||||
|
use the
|
||||||
|
\family sans
|
||||||
|
Sort as
|
||||||
|
\family default
|
||||||
|
subinset which is to be found in the
|
||||||
|
\family sans
|
||||||
|
Insert
|
||||||
|
\family default
|
||||||
|
menu
|
||||||
|
\change_unchanged
|
||||||
|
.
|
||||||
Then the nomenclature entry will be sorted by this entry and not the symbol definition.
|
Then the nomenclature entry will be sorted by this entry and not the symbol definition.
|
||||||
For the example given,
|
For the example given,
|
||||||
you can insert
|
you can insert
|
||||||
|
@ -35929,8 +35929,7 @@ nomencl
|
|||||||
|
|
||||||
installiert sein.
|
installiert sein.
|
||||||
Sie finden es im \SpecialChar TeX
|
Sie finden es im \SpecialChar TeX
|
||||||
-Katalog,
|
-Katalog
|
||||||
|
|
||||||
\begin_inset CommandInset citation
|
\begin_inset CommandInset citation
|
||||||
LatexCommand cite
|
LatexCommand cite
|
||||||
key "TeX-Katalog"
|
key "TeX-Katalog"
|
||||||
@ -35956,11 +35955,13 @@ arg "nomencl-insert"
|
|||||||
\end_inset
|
\end_inset
|
||||||
|
|
||||||
wählen.
|
wählen.
|
||||||
Ein graues Kästchen mit der Aufschrift
|
Eine aufklappbare Einfügung mit der Aufschrift
|
||||||
\family sans
|
\family sans
|
||||||
Nom
|
Nom
|
||||||
\family default
|
\family default
|
||||||
wird eingefügt und ein Dialogfenster geöffnet.
|
wird eingefügt.
|
||||||
|
Falls der Cursor direkt hinter einem Wort steht,
|
||||||
|
wird dieses hineinkopiert.
|
||||||
Ein Nomenklatur-Eintrag besteht aus zwei Hauptteilen:
|
Ein Nomenklatur-Eintrag besteht aus zwei Hauptteilen:
|
||||||
das
|
das
|
||||||
\family sans
|
\family sans
|
||||||
@ -35971,30 +35972,12 @@ Symbol
|
|||||||
Beschreibung
|
Beschreibung
|
||||||
\family default
|
\family default
|
||||||
.
|
.
|
||||||
\end_layout
|
Ersteres wird direkt in die Einfügung geschrieben,
|
||||||
|
letzteres in die Untereinfügung
|
||||||
\begin_layout Standard
|
|
||||||
\begin_inset Note Greyedout
|
|
||||||
status open
|
|
||||||
|
|
||||||
\begin_layout Plain Layout
|
|
||||||
|
|
||||||
\series bold
|
|
||||||
Achtung:
|
|
||||||
|
|
||||||
\series default
|
|
||||||
Um \SpecialChar TeX
|
|
||||||
-Code für Nomenklatureinträge verwenden zu können,
|
|
||||||
muss die Option
|
|
||||||
\family sans
|
\family sans
|
||||||
Unformatiert
|
Beschreibung
|
||||||
\family default
|
\family default
|
||||||
im Nomenklatur-Dialog aktiviert sein.
|
.
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
@ -36024,139 +36007,7 @@ Layout
|
|||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Wenn Sie Symbole in Formeln haben,
|
Innerhalb der Nomenklatur-Einfügung können Sie wie üblich Text formatieren und den Mathe-Modus verwenden.
|
||||||
müssen diese im
|
|
||||||
\family sans
|
|
||||||
Symbol
|
|
||||||
\family default
|
|
||||||
Feld als \SpecialChar LaTeX
|
|
||||||
-Formel eingegeben werden.
|
|
||||||
Um z.
|
|
||||||
\begin_inset space \thinspace{}
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
B.
|
|
||||||
„
|
|
||||||
\begin_inset Formula $\sigma$
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
“ zu bekommen,
|
|
||||||
fügt man dies ein:
|
|
||||||
\begin_inset Newline newline
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
|
|
||||||
\series bold
|
|
||||||
$
|
|
||||||
\backslash
|
|
||||||
sigma$
|
|
||||||
\begin_inset Newline newline
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
|
|
||||||
\series default
|
|
||||||
Das Zeichen '$' beginnt/beendet die Formel.
|
|
||||||
Der \SpecialChar LaTeX
|
|
||||||
-Befehl für den griechischen Buchstaben ist dessen Name beginnend mit einem umgekehrten Schrägstrich '
|
|
||||||
\backslash
|
|
||||||
'.
|
|
||||||
Für große griechische Buchstaben beginnt der Befehl mit einem Großbuchstaben:
|
|
||||||
|
|
||||||
\series bold
|
|
||||||
|
|
||||||
\backslash
|
|
||||||
Sigma
|
|
||||||
\series default
|
|
||||||
.
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
(Eine kurze Einführung in die \SpecialChar LaTeX
|
|
||||||
-Syntax ist in Abschnitt
|
|
||||||
\begin_inset space ~
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
|
|
||||||
\begin_inset CommandInset ref
|
|
||||||
LatexCommand ref
|
|
||||||
reference "subsec:LaTeX-Syntax"
|
|
||||||
nolink "false"
|
|
||||||
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
zu finden.)
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
Man kann den
|
|
||||||
\family sans
|
|
||||||
Textstil
|
|
||||||
\family default
|
|
||||||
Dialog nicht verwenden,
|
|
||||||
um den Beschreibungstext zu formatieren,
|
|
||||||
sondern man muss \SpecialChar LaTeX
|
|
||||||
-Befehle verwenden.
|
|
||||||
Zum Beispiel lautet die Beschreibung für den Nomenklatureintrag für „
|
|
||||||
\begin_inset Formula $\sigma$
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
“ in diesem Dokument:
|
|
||||||
\begin_inset Newline newline
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
|
|
||||||
\series bold
|
|
||||||
Sinnsloseintrag für das Zeichen
|
|
||||||
\backslash
|
|
||||||
textsf{sigma}
|
|
||||||
\series default
|
|
||||||
|
|
||||||
\begin_inset Newline newline
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
Der Befehl
|
|
||||||
\series bold
|
|
||||||
|
|
||||||
\backslash
|
|
||||||
textsf
|
|
||||||
\series default
|
|
||||||
setzt die Schrift auf
|
|
||||||
\family sans
|
|
||||||
serifenlos
|
|
||||||
\family default
|
|
||||||
.
|
|
||||||
Für
|
|
||||||
\series bold
|
|
||||||
fett
|
|
||||||
\series default
|
|
||||||
verwenden Sie den Befehl
|
|
||||||
\series bold
|
|
||||||
|
|
||||||
\backslash
|
|
||||||
textbf
|
|
||||||
\series default
|
|
||||||
,
|
|
||||||
für
|
|
||||||
\family typewriter
|
|
||||||
Schreibmaschine
|
|
||||||
\family default
|
|
||||||
|
|
||||||
\series bold
|
|
||||||
|
|
||||||
\backslash
|
|
||||||
texttt
|
|
||||||
\series default
|
|
||||||
,
|
|
||||||
für
|
|
||||||
\emph on
|
|
||||||
hervorgehoben
|
|
||||||
\series bold
|
|
||||||
\emph default
|
|
||||||
|
|
||||||
\backslash
|
|
||||||
emph
|
|
||||||
\series default
|
|
||||||
.
|
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
@ -36198,48 +36049,6 @@ serifenlos
|
|||||||
.
|
.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
\begin_layout Standard
|
|
||||||
Sollen die Zeichen |
|
|
||||||
\begin_inset space \space{}
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
,
|
|
||||||
\begin_inset space \space{}
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
!
|
|
||||||
\begin_inset space \space{}
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
,
|
|
||||||
@ und
|
|
||||||
\begin_inset space \space{}
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
"
|
|
||||||
\begin_inset space \space{}
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
in Nomenklatureinträgen mit \SpecialChar TeX
|
|
||||||
-Code erscheinen,
|
|
||||||
müssen sie geschützt werden.
|
|
||||||
indem man ein Prozentzeichen davor setzt.
|
|
||||||
Um zu verhindern,
|
|
||||||
dass das Anführungszeichen nachfolgende Zeichen beeinflusst,
|
|
||||||
wird es mit einem leeren \SpecialChar TeX
|
|
||||||
-Klammerpaar abgeschlossen:
|
|
||||||
%"{}
|
|
||||||
\begin_inset CommandInset nomenclature
|
|
||||||
LatexCommand nomenclature
|
|
||||||
symbol "%@, %|, %!, %\"{}"
|
|
||||||
description "Sonderzeichen im Nomenklatur-Kontext, denen für literale Ausgabe ,\\%` vorangestellt werden muss "
|
|
||||||
literal "true"
|
|
||||||
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
|
|
||||||
\end_layout
|
|
||||||
|
|
||||||
\begin_layout Subsection
|
\begin_layout Subsection
|
||||||
Nomenklatur-Einträge sortieren
|
Nomenklatur-Einträge sortieren
|
||||||
\begin_inset Index idx
|
\begin_inset Index idx
|
||||||
@ -36326,24 +36135,16 @@ a
|
|||||||
|
|
||||||
\begin_layout Standard
|
\begin_layout Standard
|
||||||
Um das zu ändern,
|
Um das zu ändern,
|
||||||
können Sie etwas ins Feld
|
verwenden Sie die Untereinfügung
|
||||||
\family sans
|
\family sans
|
||||||
Einsortieren
|
Sortieren als
|
||||||
\begin_inset space \space{}
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
als
|
|
||||||
\family default
|
\family default
|
||||||
schreiben,
|
,
|
||||||
zum Beispiel
|
die Sie im Menü
|
||||||
\family typewriter
|
\family sans
|
||||||
sigma
|
Einfügen
|
||||||
\family default
|
\family default
|
||||||
bei
|
finden.
|
||||||
\begin_inset Formula $\sigma$
|
|
||||||
\end_inset
|
|
||||||
|
|
||||||
.
|
|
||||||
Dann stimmt die Sortierreihenfolge wieder.
|
Dann stimmt die Sortierreihenfolge wieder.
|
||||||
\end_layout
|
\end_layout
|
||||||
|
|
||||||
|
@ -453,6 +453,37 @@ InsetLayout IndexMacro:subentry
|
|||||||
LabelString "Subentry"
|
LabelString "Subentry"
|
||||||
End
|
End
|
||||||
|
|
||||||
|
InsetLayout Nomenclature
|
||||||
|
LabelString Nom
|
||||||
|
LatexType command
|
||||||
|
LatexName nomenclature
|
||||||
|
Decoration classic
|
||||||
|
Font
|
||||||
|
Size Small
|
||||||
|
EndFont
|
||||||
|
LabelFont
|
||||||
|
Color nomlabel
|
||||||
|
Size Small
|
||||||
|
EndFont
|
||||||
|
MultiPar false
|
||||||
|
CustomPars false
|
||||||
|
ForcePlain true
|
||||||
|
ContentAsLabel true
|
||||||
|
AddToToc nomencl
|
||||||
|
Argument 1
|
||||||
|
LabelString "Sort as"
|
||||||
|
Tooltip "Sort this entry as specified in the inset"
|
||||||
|
EndArgument
|
||||||
|
Argument post:1
|
||||||
|
LabelString "Description"
|
||||||
|
Tooltip "Description of the entry"
|
||||||
|
AutoInsert 1
|
||||||
|
Mandatory 1
|
||||||
|
EscapeChars %!@|
|
||||||
|
EndArgument
|
||||||
|
EscapeChars %!@|
|
||||||
|
End
|
||||||
|
|
||||||
InsetLayout Box
|
InsetLayout Box
|
||||||
InheritFont false
|
InheritFont false
|
||||||
LabelFont
|
LabelFont
|
||||||
|
@ -237,7 +237,7 @@ def lyx2latex(document, lines):
|
|||||||
|
|
||||||
content = ""
|
content = ""
|
||||||
ert_end = 0
|
ert_end = 0
|
||||||
note_end = 0
|
note_end = -1
|
||||||
hspace = ""
|
hspace = ""
|
||||||
|
|
||||||
for curline in range(len(lines)):
|
for curline in range(len(lines)):
|
||||||
|
@ -21,18 +21,19 @@ import re
|
|||||||
|
|
||||||
# Uncomment only what you need to import, please (lyx2lyx_tools):
|
# Uncomment only what you need to import, please (lyx2lyx_tools):
|
||||||
# convert_info_insets, get_ert, hex2ratio, insert_to_preamble,
|
# convert_info_insets, get_ert, hex2ratio, insert_to_preamble,
|
||||||
# length_in_bp, lyx2latex, lyx2verbatim,
|
# length_in_bp, lyx2verbatim,
|
||||||
# revert_flex_inset, revert_flex_inset, revert_font_attrs,
|
# revert_flex_inset, revert_flex_inset, revert_font_attrs,
|
||||||
# revert_language, str2bool
|
# revert_language, str2bool
|
||||||
from lyx2lyx_tools import (
|
from lyx2lyx_tools import (
|
||||||
add_to_preamble,
|
add_to_preamble,
|
||||||
latex_length,
|
latex_length,
|
||||||
|
lyx2latex,
|
||||||
put_cmd_in_ert
|
put_cmd_in_ert
|
||||||
)
|
)
|
||||||
|
|
||||||
# Uncomment only what you need to import, please (parser_tools):
|
# Uncomment only what you need to import, please (parser_tools):
|
||||||
# check_token, count_pars_in_inset, del_complete_lines,
|
# check_token, count_pars_in_inset, del_complete_lines,
|
||||||
# del_value, find_complete_lines, find_end_of, find_end_of_layout,
|
# del_value, find_complete_lines, find_end_of,
|
||||||
# find_re, find_substring, find_token_backwards, find_token_exact,
|
# find_re, find_substring, find_token_backwards, find_token_exact,
|
||||||
# find_tokens, get_bool_value, get_containing_inset,
|
# find_tokens, get_bool_value, get_containing_inset,
|
||||||
# get_containing_layout, get_option_value,
|
# get_containing_layout, get_option_value,
|
||||||
@ -40,6 +41,7 @@ from lyx2lyx_tools import (
|
|||||||
from parser_tools import (
|
from parser_tools import (
|
||||||
del_token,
|
del_token,
|
||||||
find_end_of_inset,
|
find_end_of_inset,
|
||||||
|
find_end_of_layout,
|
||||||
find_re,
|
find_re,
|
||||||
find_token,
|
find_token,
|
||||||
get_quoted_value,
|
get_quoted_value,
|
||||||
@ -479,6 +481,145 @@ def revert_nomencl_textwidth(document):
|
|||||||
i = j
|
i = j
|
||||||
|
|
||||||
|
|
||||||
|
def convert_nomencl(document):
|
||||||
|
"""Convert nomencl inset to collapsible."""
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
while True:
|
||||||
|
i = find_token(document.body, "\\begin_inset CommandInset nomenclature", i)
|
||||||
|
if i == -1:
|
||||||
|
return
|
||||||
|
|
||||||
|
j = find_end_of_inset(document.body, i)
|
||||||
|
if j == -1:
|
||||||
|
document.warning(
|
||||||
|
"Malformed LyX document: Can't find end of command inset at line %d" % i
|
||||||
|
)
|
||||||
|
i += 1
|
||||||
|
continue
|
||||||
|
|
||||||
|
literal = get_quoted_value(document.body, "literal", i, j)
|
||||||
|
prefix = get_quoted_value(document.body, "prefix", i, j)
|
||||||
|
symbol = get_quoted_value(document.body, "symbol", i, j)
|
||||||
|
description = get_quoted_value(document.body, "description", i, j)
|
||||||
|
|
||||||
|
newins = ["\\begin_inset Nomenclature", "status open", "", "\\begin_layout Plain Layout"]
|
||||||
|
if prefix:
|
||||||
|
newins += ["\\begin_inset Argument 1",
|
||||||
|
"status open",
|
||||||
|
"",
|
||||||
|
"\\begin_layout Plain Layout",
|
||||||
|
prefix,
|
||||||
|
"\\end_layout",
|
||||||
|
"",
|
||||||
|
"\\end_inset",
|
||||||
|
""]
|
||||||
|
if literal == "true":
|
||||||
|
newins += put_cmd_in_ert(symbol.replace("\\\\", "\\").replace("\\\"", "\""))
|
||||||
|
else:
|
||||||
|
newins += [symbol.replace("\\\"", "\"")]
|
||||||
|
if description:
|
||||||
|
newins += ["\\begin_inset Argument post:1",
|
||||||
|
"status open",
|
||||||
|
"",
|
||||||
|
"\\begin_layout Plain Layout"]
|
||||||
|
if literal == "true":
|
||||||
|
newins += put_cmd_in_ert(description.replace("\\\\", "\\").replace("\\\"", "\""))
|
||||||
|
else:
|
||||||
|
newins += [description.replace("\\\"", "\"")]
|
||||||
|
newins += ["\\end_layout",
|
||||||
|
"",
|
||||||
|
"\\end_inset",
|
||||||
|
""]
|
||||||
|
newins += ["\\end_layout",
|
||||||
|
"",
|
||||||
|
"\\end_inset"]
|
||||||
|
document.body[i : j + 1] = newins
|
||||||
|
|
||||||
|
|
||||||
|
def revert_nomencl(document):
|
||||||
|
"""Revert nomencl inset to InsetCommand."""
|
||||||
|
|
||||||
|
i = 0
|
||||||
|
while True:
|
||||||
|
i = find_token(document.body, "\\begin_inset Nomenclature", i)
|
||||||
|
if i == -1:
|
||||||
|
return
|
||||||
|
|
||||||
|
j = find_end_of_inset(document.body, i)
|
||||||
|
if j == -1:
|
||||||
|
document.warning(
|
||||||
|
"Malformed LyX document: Can't find end of command inset at line %d" % i
|
||||||
|
)
|
||||||
|
i += 1
|
||||||
|
continue
|
||||||
|
|
||||||
|
arg = find_token(document.body, "\\begin_inset Argument 1", i, j)
|
||||||
|
prefix = []
|
||||||
|
if arg != -1:
|
||||||
|
endarg = find_end_of_inset(document.body, arg)
|
||||||
|
argbeginPlain = find_token(
|
||||||
|
document.body, "\\begin_layout Plain Layout", arg, endarg
|
||||||
|
)
|
||||||
|
if argbeginPlain == -1:
|
||||||
|
document.warning("Malformed LyX document: Can't find optarg plain Layout")
|
||||||
|
continue
|
||||||
|
argendPlain = find_end_of_inset(document.body, argbeginPlain)
|
||||||
|
prefix = document.body[argbeginPlain + 1 : argendPlain - 2]
|
||||||
|
|
||||||
|
# remove Arg insets and paragraph, if it only contains this inset
|
||||||
|
if (
|
||||||
|
document.body[arg - 1] == "\\begin_layout Plain Layout"
|
||||||
|
and find_end_of_layout(document.body, arg - 1) == endarg + 3
|
||||||
|
):
|
||||||
|
del document.body[arg - 1 : endarg + 4]
|
||||||
|
else:
|
||||||
|
del document.body[arg : endarg + 1]
|
||||||
|
|
||||||
|
arg = find_token(document.body, "\\begin_inset Argument post:1", i, j)
|
||||||
|
description = []
|
||||||
|
if arg != -1:
|
||||||
|
endarg = find_end_of_inset(document.body, arg)
|
||||||
|
argbeginPlain = find_token(
|
||||||
|
document.body, "\\begin_layout Plain Layout", arg, endarg
|
||||||
|
)
|
||||||
|
if argbeginPlain == -1:
|
||||||
|
document.warning("Malformed LyX document: Can't find arg 1 plain Layout")
|
||||||
|
continue
|
||||||
|
argendPlain = find_end_of_inset(document.body, argbeginPlain)
|
||||||
|
description = document.body[argbeginPlain + 1 : argendPlain - 2]
|
||||||
|
|
||||||
|
# remove Arg insets and paragraph, if it only contains this inset
|
||||||
|
if (
|
||||||
|
document.body[arg - 1] == "\\begin_layout Plain Layout"
|
||||||
|
and find_end_of_layout(document.body, arg - 1) == endarg + 3
|
||||||
|
):
|
||||||
|
del document.body[arg - 1 : endarg + 4]
|
||||||
|
else:
|
||||||
|
del document.body[arg : endarg + 1]
|
||||||
|
|
||||||
|
beginPlain = find_token(document.body, "\\begin_layout Plain Layout", i)
|
||||||
|
endPlain = find_end_of_layout(document.body, beginPlain)
|
||||||
|
symbol = document.body[beginPlain + 1 : endPlain]
|
||||||
|
literal = "false"
|
||||||
|
if "\\begin_inset ERT" in symbol or "\\begin_inset ERT" in description:
|
||||||
|
literal = "true"
|
||||||
|
|
||||||
|
newins = ["\\begin_inset CommandInset nomenclature", "LatexCommand nomenclature"]
|
||||||
|
if prefix:
|
||||||
|
newins += ["prefix \"" + lyx2latex(document, prefix) + "\""]
|
||||||
|
if symbol:
|
||||||
|
newins += ["symbol \"" + lyx2latex(document, symbol) + "\""]
|
||||||
|
if description:
|
||||||
|
newins += ["description \"" + lyx2latex(document, description) + "\""]
|
||||||
|
newins += ["literal \"" + literal + "\""]
|
||||||
|
|
||||||
|
j = find_end_of_inset(document.body, i)
|
||||||
|
document.body[i : j] = newins
|
||||||
|
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
# Conversion hub
|
# Conversion hub
|
||||||
#
|
#
|
||||||
@ -490,11 +631,13 @@ convert = [
|
|||||||
[623, [convert_he_letter]],
|
[623, [convert_he_letter]],
|
||||||
[624, [convert_biblatex_chicago]],
|
[624, [convert_biblatex_chicago]],
|
||||||
[625, []],
|
[625, []],
|
||||||
[626, []]
|
[626, []],
|
||||||
|
[627, [convert_nomencl]]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
revert = [
|
revert = [
|
||||||
|
[626, [revert_nomencl]],
|
||||||
[625, [revert_nomencl_textwidth]],
|
[625, [revert_nomencl_textwidth]],
|
||||||
[624, [revert_nptextcite]],
|
[624, [revert_nptextcite]],
|
||||||
[623, [revert_biblatex_chicago]],
|
[623, [revert_biblatex_chicago]],
|
||||||
|
@ -393,7 +393,7 @@ Menuset
|
|||||||
Captions
|
Captions
|
||||||
Indices
|
Indices
|
||||||
OptSubmenu "Index Properties" "index_properties"
|
OptSubmenu "Index Properties" "index_properties"
|
||||||
Item "Nomenclature Entry...|y" "nomencl-insert"
|
Item "Nomenclature Entry|y" "nomencl-insert"
|
||||||
Separator
|
Separator
|
||||||
Item "Table...|T" "tabular-insert"
|
Item "Table...|T" "tabular-insert"
|
||||||
Item "Graphics...|G" "dialog-show-new-inset graphics"
|
Item "Graphics...|G" "dialog-show-new-inset graphics"
|
||||||
|
@ -289,6 +289,7 @@ ColorSet::ColorSet()
|
|||||||
{ Color_footlabel, N_("footnote label"), "footlabel", "#00aaff", blue, "footlabel" },
|
{ Color_footlabel, N_("footnote label"), "footlabel", "#00aaff", blue, "footlabel" },
|
||||||
{ Color_indexlabel, N_("index label"), "indexlabel", Green, teal, "indexlabel" },
|
{ Color_indexlabel, N_("index label"), "indexlabel", Green, teal, "indexlabel" },
|
||||||
{ Color_marginlabel, N_("margin note label"), "marginlabel", "#aa55ff", violet, "marginlabel" },
|
{ Color_marginlabel, N_("margin note label"), "marginlabel", "#aa55ff", violet, "marginlabel" },
|
||||||
|
{ Color_nomlabel, N_("nomenclature label"), "nomlabel", "#ff6d2f", "#ff6d2f", "nomlabel" },
|
||||||
{ Color_urllabel, N_("URL label"), "urllabel", blue, blue, "urllabel" },
|
{ Color_urllabel, N_("URL label"), "urllabel", blue, blue, "urllabel" },
|
||||||
{ Color_urltext, N_("URL text"), "urltext", blue, "#86a4ff", "urltext" },
|
{ Color_urltext, N_("URL text"), "urltext", blue, "#86a4ff", "urltext" },
|
||||||
{ Color_depthbar, N_("depth bar"), "depthbar", IndianRed, IndianRed, "depthbar" },
|
{ Color_depthbar, N_("depth bar"), "depthbar", IndianRed, IndianRed, "depthbar" },
|
||||||
|
@ -105,6 +105,8 @@ enum ColorCode {
|
|||||||
Color_indexlabel,
|
Color_indexlabel,
|
||||||
/// Label color for margin notes
|
/// Label color for margin notes
|
||||||
Color_marginlabel,
|
Color_marginlabel,
|
||||||
|
/// Label color for nomenclature insets
|
||||||
|
Color_nomlabel,
|
||||||
/// Text color for phantom insets
|
/// Text color for phantom insets
|
||||||
Color_phantomtext,
|
Color_phantomtext,
|
||||||
/// Label color for URL insets
|
/// Label color for URL insets
|
||||||
|
108
src/Text.cpp
108
src/Text.cpp
@ -3643,8 +3643,10 @@ bool doInsertInset(Cursor & cur, Text * text,
|
|||||||
|
|
||||||
bool gotsel = false;
|
bool gotsel = false;
|
||||||
bool move_layout = false;
|
bool move_layout = false;
|
||||||
|
bool const copy_cotext = cmd.action() == LFUN_INDEX_INSERT
|
||||||
|
|| cmd.action() == LFUN_NOMENCL_INSERT;
|
||||||
if (cur.selection()) {
|
if (cur.selection()) {
|
||||||
if (cmd.action() == LFUN_INDEX_INSERT)
|
if (copy_cotext)
|
||||||
copySelectionToTemp(cur);
|
copySelectionToTemp(cur);
|
||||||
else {
|
else {
|
||||||
cutSelectionToTemp(cur, pastesel);
|
cutSelectionToTemp(cur, pastesel);
|
||||||
@ -3662,7 +3664,7 @@ bool doInsertInset(Cursor & cur, Text * text,
|
|||||||
}
|
}
|
||||||
cur.clearSelection();
|
cur.clearSelection();
|
||||||
gotsel = true;
|
gotsel = true;
|
||||||
} else if (cmd.action() == LFUN_INDEX_INSERT) {
|
} else if (copy_cotext) {
|
||||||
gotsel = text->selectWordWhenUnderCursor(cur, WHOLE_WORD);
|
gotsel = text->selectWordWhenUnderCursor(cur, WHOLE_WORD);
|
||||||
copySelectionToTemp(cur);
|
copySelectionToTemp(cur);
|
||||||
cur.clearSelection();
|
cur.clearSelection();
|
||||||
@ -3708,10 +3710,41 @@ bool doInsertInset(Cursor & cur, Text * text,
|
|||||||
*/
|
*/
|
||||||
if (!move_layout)
|
if (!move_layout)
|
||||||
cur.paragraph().setPlainOrDefaultLayout(bparams.documentClass());
|
cur.paragraph().setPlainOrDefaultLayout(bparams.documentClass());
|
||||||
// FIXME: what does this do?
|
// Insert auto-insert arguments
|
||||||
if (cmd.action() == LFUN_FLEX_INSERT)
|
bool autoargs = false, inautoarg = false;
|
||||||
return true;
|
Layout::LaTeXArgMap args = cur.inset().getLayout().args();
|
||||||
|
for (auto const & argt : args) {
|
||||||
|
Layout::latexarg arg = argt.second;
|
||||||
|
if (!inautoarg && arg.insertonnewline && cur.pos() > 0) {
|
||||||
|
FuncRequest cmd2(LFUN_PARAGRAPH_BREAK);
|
||||||
|
lyx::dispatch(cmd2);
|
||||||
|
}
|
||||||
|
if (arg.autoinsert) {
|
||||||
|
// The cursor might have been invalidated by the replaceSelection.
|
||||||
|
cur.buffer()->changed(true);
|
||||||
|
// If we had already inserted an arg automatically,
|
||||||
|
// leave this now in order to insert the next one.
|
||||||
|
if (inautoarg) {
|
||||||
|
cur.leaveInset(cur.inset());
|
||||||
|
cur.setCurrentFont();
|
||||||
|
cur.posForward();
|
||||||
|
if (arg.insertonnewline && cur.pos() > 0) {
|
||||||
|
FuncRequest cmd2(LFUN_PARAGRAPH_BREAK);
|
||||||
|
lyx::dispatch(cmd2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (prefixIs(argt.first, "post:"))
|
||||||
|
cur.pos() = cur.paragraph().size();
|
||||||
|
else
|
||||||
|
cur.pos() = 0;
|
||||||
|
FuncRequest cmd2(LFUN_ARGUMENT_INSERT, argt.first);
|
||||||
|
lyx::dispatch(cmd2);
|
||||||
|
autoargs = true;
|
||||||
|
inautoarg = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
Cursor old = cur;
|
Cursor old = cur;
|
||||||
|
if (!autoargs)
|
||||||
cur.leaveInset(*inset);
|
cur.leaveInset(*inset);
|
||||||
if (cmd.action() == LFUN_PREVIEW_INSERT
|
if (cmd.action() == LFUN_PREVIEW_INSERT
|
||||||
|| cmd.action() == LFUN_IPA_INSERT)
|
|| cmd.action() == LFUN_IPA_INSERT)
|
||||||
@ -5517,17 +5550,20 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
|
|||||||
case LFUN_BOX_INSERT:
|
case LFUN_BOX_INSERT:
|
||||||
case LFUN_BRANCH_INSERT:
|
case LFUN_BRANCH_INSERT:
|
||||||
case LFUN_PHANTOM_INSERT:
|
case LFUN_PHANTOM_INSERT:
|
||||||
|
case LFUN_FLEX_INSERT:
|
||||||
case LFUN_ERT_INSERT:
|
case LFUN_ERT_INSERT:
|
||||||
case LFUN_INDEXMACRO_INSERT:
|
case LFUN_INDEXMACRO_INSERT:
|
||||||
case LFUN_LISTING_INSERT:
|
case LFUN_LISTING_INSERT:
|
||||||
case LFUN_MARGINALNOTE_INSERT:
|
case LFUN_MARGINALNOTE_INSERT:
|
||||||
case LFUN_ARGUMENT_INSERT:
|
case LFUN_ARGUMENT_INSERT:
|
||||||
case LFUN_INDEX_INSERT:
|
case LFUN_INDEX_INSERT:
|
||||||
|
case LFUN_NOMENCL_INSERT:
|
||||||
case LFUN_PREVIEW_INSERT:
|
case LFUN_PREVIEW_INSERT:
|
||||||
case LFUN_SCRIPT_INSERT:
|
case LFUN_SCRIPT_INSERT:
|
||||||
case LFUN_IPA_INSERT: {
|
case LFUN_IPA_INSERT: {
|
||||||
// Indexes reset font formatting (#11961)
|
// Indexes and Nomencl reset font formatting (#11961)
|
||||||
bool const resetfont = cmd.action() == LFUN_INDEX_INSERT;
|
bool const resetfont = cmd.action() == LFUN_INDEX_INSERT
|
||||||
|
|| cmd.action() == LFUN_NOMENCL_INSERT;
|
||||||
// Open the inset, and move the current selection
|
// Open the inset, and move the current selection
|
||||||
// inside it.
|
// inside it.
|
||||||
doInsertInset(cur, this, cmd, true, true, resetfont);
|
doInsertInset(cur, this, cmd, true, true, resetfont);
|
||||||
@ -5539,51 +5575,6 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case LFUN_FLEX_INSERT: {
|
|
||||||
// Open the inset, and move the current selection
|
|
||||||
// inside it.
|
|
||||||
bool const sel = cur.selection();
|
|
||||||
doInsertInset(cur, this, cmd, true, true);
|
|
||||||
// Insert auto-insert arguments
|
|
||||||
bool autoargs = false, inautoarg = false;
|
|
||||||
Layout::LaTeXArgMap args = cur.inset().getLayout().args();
|
|
||||||
for (auto const & argt : args) {
|
|
||||||
Layout::latexarg arg = argt.second;
|
|
||||||
if (!inautoarg && arg.insertonnewline && cur.pos() > 0) {
|
|
||||||
FuncRequest cmd2(LFUN_PARAGRAPH_BREAK);
|
|
||||||
lyx::dispatch(cmd2);
|
|
||||||
}
|
|
||||||
if (arg.autoinsert) {
|
|
||||||
// The cursor might have been invalidated by the replaceSelection.
|
|
||||||
cur.buffer()->changed(true);
|
|
||||||
// If we had already inserted an arg automatically,
|
|
||||||
// leave this now in order to insert the next one.
|
|
||||||
if (inautoarg) {
|
|
||||||
cur.leaveInset(cur.inset());
|
|
||||||
cur.setCurrentFont();
|
|
||||||
cur.posForward();
|
|
||||||
if (arg.insertonnewline && cur.pos() > 0) {
|
|
||||||
FuncRequest cmd2(LFUN_PARAGRAPH_BREAK);
|
|
||||||
lyx::dispatch(cmd2);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
FuncRequest cmd2(LFUN_ARGUMENT_INSERT, argt.first);
|
|
||||||
lyx::dispatch(cmd2);
|
|
||||||
autoargs = true;
|
|
||||||
inautoarg = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!autoargs) {
|
|
||||||
if (sel)
|
|
||||||
cur.leaveInset(cur.inset());
|
|
||||||
cur.posForward();
|
|
||||||
}
|
|
||||||
// Some insets are numbered, others are shown in the outline pane so
|
|
||||||
// let's update the labels and the toc backend.
|
|
||||||
cur.forceBufferUpdate();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case LFUN_TABULAR_INSERT: {
|
case LFUN_TABULAR_INSERT: {
|
||||||
// if there were no arguments, just open the dialog
|
// if there were no arguments, just open the dialog
|
||||||
if (cmd.argument().empty()) {
|
if (cmd.argument().empty()) {
|
||||||
@ -5710,19 +5701,6 @@ void Text::dispatch(Cursor & cur, FuncRequest & cmd)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case LFUN_NOMENCL_INSERT: {
|
|
||||||
InsetCommandParams p(NOMENCL_CODE);
|
|
||||||
if (cmd.argument().empty()) {
|
|
||||||
p["symbol"] =
|
|
||||||
bv->cursor().innerText()->getStringForDialog(bv->cursor());
|
|
||||||
cur.clearSelection();
|
|
||||||
} else
|
|
||||||
p["symbol"] = cmd.argument();
|
|
||||||
string const data = InsetCommand::params2string(p);
|
|
||||||
bv->showDialog("nomenclature", data);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case LFUN_INDEX_PRINT: {
|
case LFUN_INDEX_PRINT: {
|
||||||
InsetCommandParams p(INDEX_PRINT_CODE);
|
InsetCommandParams p(INDEX_PRINT_CODE);
|
||||||
if (cmd.argument().empty())
|
if (cmd.argument().empty())
|
||||||
|
@ -233,11 +233,8 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd)
|
|||||||
case LFUN_IPA_INSERT:
|
case LFUN_IPA_INSERT:
|
||||||
return new InsetIPA(buf);
|
return new InsetIPA(buf);
|
||||||
|
|
||||||
case LFUN_NOMENCL_INSERT: {
|
case LFUN_NOMENCL_INSERT:
|
||||||
InsetCommandParams icp(NOMENCL_CODE);
|
return new InsetNomencl(buf);
|
||||||
icp["symbol"] = cmd.argument();
|
|
||||||
return new InsetNomencl(buf, icp);
|
|
||||||
}
|
|
||||||
|
|
||||||
case LFUN_TABULAR_INSERT: {
|
case LFUN_TABULAR_INSERT: {
|
||||||
if (cmd.argument().empty())
|
if (cmd.argument().empty())
|
||||||
@ -380,11 +377,8 @@ Inset * createInsetHelper(Buffer * buf, FuncRequest const & cmd)
|
|||||||
return new InsetListings(buf, par);
|
return new InsetListings(buf, par);
|
||||||
}
|
}
|
||||||
|
|
||||||
case NOMENCL_CODE: {
|
case NOMENCL_CODE:
|
||||||
InsetCommandParams icp(code);
|
return new InsetNomencl(buf);
|
||||||
InsetCommand::string2params(to_utf8(cmd.argument()), icp);
|
|
||||||
return new InsetNomencl(buf, icp);
|
|
||||||
}
|
|
||||||
|
|
||||||
case REF_CODE: {
|
case REF_CODE: {
|
||||||
InsetCommandParams icp(code);
|
InsetCommandParams icp(code);
|
||||||
@ -585,9 +579,6 @@ Inset * readInset(Lexer & lex, Buffer * buf)
|
|||||||
case LINE_CODE:
|
case LINE_CODE:
|
||||||
inset.reset(new InsetLine(buf, inscmd));
|
inset.reset(new InsetLine(buf, inscmd));
|
||||||
break;
|
break;
|
||||||
case NOMENCL_CODE:
|
|
||||||
inset.reset(new InsetNomencl(buf, inscmd));
|
|
||||||
break;
|
|
||||||
case NOMENCL_PRINT_CODE:
|
case NOMENCL_PRINT_CODE:
|
||||||
inset.reset(new InsetPrintNomencl(buf, inscmd));
|
inset.reset(new InsetPrintNomencl(buf, inscmd));
|
||||||
break;
|
break;
|
||||||
@ -689,6 +680,8 @@ Inset * readInset(Lexer & lex, Buffer * buf)
|
|||||||
inset.reset(new InsetIPA(buf));
|
inset.reset(new InsetIPA(buf));
|
||||||
} else if (tmptok == "IPADeco") {
|
} else if (tmptok == "IPADeco") {
|
||||||
inset.reset(new InsetIPADeco(buf, tmptok));
|
inset.reset(new InsetIPADeco(buf, tmptok));
|
||||||
|
} else if (tmptok == "Nomenclature") {
|
||||||
|
inset.reset(new InsetNomencl(buf));
|
||||||
} else if (tmptok == "Preview") {
|
} else if (tmptok == "Preview") {
|
||||||
inset.reset(new InsetPreview(buf));
|
inset.reset(new InsetPreview(buf));
|
||||||
} else {
|
} else {
|
||||||
|
@ -41,7 +41,6 @@
|
|||||||
#include "GuiLog.h"
|
#include "GuiLog.h"
|
||||||
#include "GuiLyXFiles.h"
|
#include "GuiLyXFiles.h"
|
||||||
#include "GuiMathMatrix.h"
|
#include "GuiMathMatrix.h"
|
||||||
#include "GuiNomenclature.h"
|
|
||||||
#include "GuiNote.h"
|
#include "GuiNote.h"
|
||||||
#include "GuiParagraph.h"
|
#include "GuiParagraph.h"
|
||||||
#include "GuiPhantom.h"
|
#include "GuiPhantom.h"
|
||||||
@ -111,9 +110,6 @@ Dialog * createDialog(GuiView & gv, string const & name)
|
|||||||
case MATH_SPACE_CODE:
|
case MATH_SPACE_CODE:
|
||||||
widget = new GuiHSpace(true);
|
widget = new GuiHSpace(true);
|
||||||
break;
|
break;
|
||||||
case NOMENCL_CODE:
|
|
||||||
widget = new GuiNomenclature;
|
|
||||||
break;
|
|
||||||
case NOMENCL_PRINT_CODE:
|
case NOMENCL_PRINT_CODE:
|
||||||
widget = new GuiPrintNomencl;
|
widget = new GuiPrintNomencl;
|
||||||
break;
|
break;
|
||||||
|
@ -1,91 +0,0 @@
|
|||||||
/**
|
|
||||||
* \file GuiNomencl.cpp
|
|
||||||
* This file is part of LyX, the document processor.
|
|
||||||
* Licence details can be found in the file COPYING.
|
|
||||||
*
|
|
||||||
* \author John Levon
|
|
||||||
* \author O. U. Baran
|
|
||||||
*
|
|
||||||
* Full author contact details are available in file CREDITS.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <config.h>
|
|
||||||
|
|
||||||
#include "GuiNomenclature.h"
|
|
||||||
|
|
||||||
#include "qt_helpers.h"
|
|
||||||
|
|
||||||
#include "insets/InsetNomencl.h"
|
|
||||||
|
|
||||||
using namespace std;
|
|
||||||
|
|
||||||
namespace lyx {
|
|
||||||
namespace frontend {
|
|
||||||
|
|
||||||
GuiNomenclature::GuiNomenclature(QWidget * parent) : InsetParamsWidget(parent)
|
|
||||||
{
|
|
||||||
setupUi(this);
|
|
||||||
connect(symbolED, SIGNAL(textChanged(QString)),
|
|
||||||
this, SIGNAL(changed()));
|
|
||||||
connect(descriptionTE, SIGNAL(textChanged()),
|
|
||||||
this, SIGNAL(changed()));
|
|
||||||
connect(literalCB, SIGNAL(clicked()),
|
|
||||||
this, SIGNAL(changed()));
|
|
||||||
|
|
||||||
setFocusProxy(descriptionTE);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void GuiNomenclature::paramsToDialog(Inset const * inset)
|
|
||||||
{
|
|
||||||
InsetNomencl const * nomencl = static_cast<InsetNomencl const *>(inset);
|
|
||||||
InsetCommandParams const & params = nomencl->params();
|
|
||||||
|
|
||||||
prefixED->setText(toqstr(params["prefix"]));
|
|
||||||
symbolED->setText(toqstr(params["symbol"]));
|
|
||||||
literalCB->setChecked(params["literal"] == "true");
|
|
||||||
QString description = toqstr(params["description"]);
|
|
||||||
description.replace("\\\\","\n");
|
|
||||||
descriptionTE->setPlainText(description);
|
|
||||||
descriptionTE->setFocus();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
docstring GuiNomenclature::dialogToParams() const
|
|
||||||
{
|
|
||||||
InsetCommandParams params(insetCode());
|
|
||||||
params["prefix"] = qstring_to_ucs4(prefixED->text());
|
|
||||||
params["symbol"] = qstring_to_ucs4(symbolED->text());
|
|
||||||
QString description = descriptionTE->toPlainText();
|
|
||||||
description.replace('\n',"\\\\");
|
|
||||||
params["description"] = qstring_to_ucs4(description);
|
|
||||||
params["literal"] = literalCB->isChecked()
|
|
||||||
? from_ascii("true") : from_ascii("false");
|
|
||||||
return from_utf8(InsetNomencl::params2string(params));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool GuiNomenclature::initialiseParams(std::string const & sdata)
|
|
||||||
{
|
|
||||||
InsetCommandParams p(insetCode());
|
|
||||||
if (!InsetCommand::string2params(sdata, p))
|
|
||||||
return false;
|
|
||||||
symbolED->setText(toqstr(p["symbol"]));
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
bool GuiNomenclature::checkWidgets(bool readonly) const
|
|
||||||
{
|
|
||||||
symbolED->setReadOnly(readonly);
|
|
||||||
descriptionTE->setReadOnly(readonly);
|
|
||||||
if (!InsetParamsWidget::checkWidgets())
|
|
||||||
return false;
|
|
||||||
QString const description = descriptionTE->toPlainText();
|
|
||||||
return !symbolED->text().isEmpty() && !description.isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace frontend
|
|
||||||
} // namespace lyx
|
|
||||||
|
|
||||||
#include "moc_GuiNomenclature.cpp"
|
|
@ -1,47 +0,0 @@
|
|||||||
// -*- C++ -*-
|
|
||||||
/**
|
|
||||||
* \file GuiNomenclature.h
|
|
||||||
* This file is part of LyX, the document processor.
|
|
||||||
* Licence details can be found in the file COPYING.
|
|
||||||
*
|
|
||||||
* \author John Levon
|
|
||||||
* \author Kalle Dalheimer
|
|
||||||
* \author O. U. Baran
|
|
||||||
*
|
|
||||||
* Full author contact details are available in file CREDITS.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef GUINOMENCLATURE_H
|
|
||||||
#define GUINOMENCLATURE_H
|
|
||||||
|
|
||||||
#include "ui_NomenclUi.h"
|
|
||||||
|
|
||||||
#include "InsetParamsWidget.h"
|
|
||||||
|
|
||||||
namespace lyx {
|
|
||||||
namespace frontend {
|
|
||||||
|
|
||||||
class GuiNomenclature : public InsetParamsWidget, public Ui::NomenclUi
|
|
||||||
{
|
|
||||||
Q_OBJECT
|
|
||||||
|
|
||||||
public:
|
|
||||||
GuiNomenclature(QWidget * parent = 0);
|
|
||||||
|
|
||||||
private:
|
|
||||||
/// \name InsetParamsWidget inherited methods
|
|
||||||
//@{
|
|
||||||
InsetCode insetCode() const override { return NOMENCL_CODE; }
|
|
||||||
FuncCode creationCode() const override { return LFUN_INSET_INSERT; }
|
|
||||||
QString dialogTitle() const override { return qt_("Nomenclature Settings"); }
|
|
||||||
void paramsToDialog(Inset const *) override;
|
|
||||||
docstring dialogToParams() const override;
|
|
||||||
bool checkWidgets(bool readonly) const override;
|
|
||||||
bool initialiseParams(std::string const &) override;
|
|
||||||
//@}
|
|
||||||
};
|
|
||||||
|
|
||||||
} // namespace frontend
|
|
||||||
} // namespace lyx
|
|
||||||
|
|
||||||
#endif // GUINOMENCLATURE_H
|
|
@ -77,7 +77,7 @@ void GuiPrintNomencl::paramsToDialog(InsetCommandParams const & params)
|
|||||||
|
|
||||||
void GuiPrintNomencl::paramsToDialog(Inset const * inset)
|
void GuiPrintNomencl::paramsToDialog(Inset const * inset)
|
||||||
{
|
{
|
||||||
InsetNomencl const * nomencl = static_cast<InsetNomencl const *>(inset);
|
InsetPrintNomencl const * nomencl = static_cast<InsetPrintNomencl const *>(inset);
|
||||||
paramsToDialog(nomencl->params());
|
paramsToDialog(nomencl->params());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -94,7 +94,7 @@ docstring GuiPrintNomencl::dialogToParams() const
|
|||||||
else if (set_width == from_ascii("textwidth"))
|
else if (set_width == from_ascii("textwidth"))
|
||||||
width = qstring_to_ucs4(valueLE->text());
|
width = qstring_to_ucs4(valueLE->text());
|
||||||
params["width"] = width;
|
params["width"] = width;
|
||||||
return from_ascii(InsetNomencl::params2string(params));
|
return from_ascii(InsetPrintNomencl::params2string(params));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
#include "GuiInfo.h"
|
#include "GuiInfo.h"
|
||||||
#include "GuiLabel.h"
|
#include "GuiLabel.h"
|
||||||
#include "GuiLine.h"
|
#include "GuiLine.h"
|
||||||
#include "GuiNomenclature.h"
|
|
||||||
#include "GuiPrintNomencl.h"
|
#include "GuiPrintNomencl.h"
|
||||||
#include "GuiTabular.h"
|
#include "GuiTabular.h"
|
||||||
#include "GuiVSpace.h"
|
#include "GuiVSpace.h"
|
||||||
|
@ -101,7 +101,6 @@ SOURCEFILES = \
|
|||||||
GuiLog.cpp \
|
GuiLog.cpp \
|
||||||
GuiLyXFiles.cpp \
|
GuiLyXFiles.cpp \
|
||||||
GuiMathMatrix.cpp \
|
GuiMathMatrix.cpp \
|
||||||
GuiNomenclature.cpp \
|
|
||||||
GuiNote.cpp \
|
GuiNote.cpp \
|
||||||
GuiPainter.cpp \
|
GuiPainter.cpp \
|
||||||
GuiParagraph.cpp \
|
GuiParagraph.cpp \
|
||||||
@ -216,7 +215,6 @@ MOCHEADER = \
|
|||||||
GuiLog.h \
|
GuiLog.h \
|
||||||
GuiLyXFiles.h \
|
GuiLyXFiles.h \
|
||||||
GuiMathMatrix.h \
|
GuiMathMatrix.h \
|
||||||
GuiNomenclature.h \
|
|
||||||
GuiNote.h \
|
GuiNote.h \
|
||||||
GuiParagraph.h \
|
GuiParagraph.h \
|
||||||
GuiPhantom.h \
|
GuiPhantom.h \
|
||||||
@ -308,7 +306,6 @@ UIFILES = \
|
|||||||
MathMatrixUi.ui \
|
MathMatrixUi.ui \
|
||||||
MathsUi.ui \
|
MathsUi.ui \
|
||||||
ModulesUi.ui \
|
ModulesUi.ui \
|
||||||
NomenclUi.ui \
|
|
||||||
NoteUi.ui \
|
NoteUi.ui \
|
||||||
NumberingUi.ui \
|
NumberingUi.ui \
|
||||||
OutputUi.ui \
|
OutputUi.ui \
|
||||||
|
@ -1,91 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<ui version="4.0">
|
|
||||||
<class>NomenclUi</class>
|
|
||||||
<widget class="QWidget" name="NomenclUi">
|
|
||||||
<property name="geometry">
|
|
||||||
<rect>
|
|
||||||
<x>0</x>
|
|
||||||
<y>0</y>
|
|
||||||
<width>319</width>
|
|
||||||
<height>223</height>
|
|
||||||
</rect>
|
|
||||||
</property>
|
|
||||||
<property name="windowTitle">
|
|
||||||
<string>Nomenclature</string>
|
|
||||||
</property>
|
|
||||||
<layout class="QGridLayout" name="gridLayout_2">
|
|
||||||
<item row="0" column="0">
|
|
||||||
<layout class="QGridLayout" name="gridLayout">
|
|
||||||
<item row="0" column="0">
|
|
||||||
<widget class="QLabel" name="symbolLA">
|
|
||||||
<property name="text">
|
|
||||||
<string>Sy&mbol:</string>
|
|
||||||
</property>
|
|
||||||
<property name="buddy">
|
|
||||||
<cstring>symbolED</cstring>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="0" column="1">
|
|
||||||
<widget class="QLineEdit" name="symbolED">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string/>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QLabel" name="descrLA">
|
|
||||||
<property name="text">
|
|
||||||
<string>Des&cription:</string>
|
|
||||||
</property>
|
|
||||||
<property name="buddy">
|
|
||||||
<cstring>descriptionTE</cstring>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="1" column="1">
|
|
||||||
<widget class="QTextEdit" name="descriptionTE">
|
|
||||||
<property name="acceptRichText">
|
|
||||||
<bool>false</bool>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
|
||||||
<widget class="QLabel" name="prefixLA">
|
|
||||||
<property name="text">
|
|
||||||
<string>Sort &as:</string>
|
|
||||||
</property>
|
|
||||||
<property name="buddy">
|
|
||||||
<cstring>prefixED</cstring>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="1">
|
|
||||||
<widget class="QLineEdit" name="prefixED"/>
|
|
||||||
</item>
|
|
||||||
<item row="3" column="1">
|
|
||||||
<widget class="QCheckBox" name="literalCB">
|
|
||||||
<property name="toolTip">
|
|
||||||
<string>Pass content of the `Symbol' and `Description' fields literally to LaTeX. Check this if you want to enter LaTeX code.</string>
|
|
||||||
</property>
|
|
||||||
<property name="text">
|
|
||||||
<string>Li&teral</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</item>
|
|
||||||
</layout>
|
|
||||||
</widget>
|
|
||||||
<layoutdefault spacing="6" margin="11"/>
|
|
||||||
<tabstops>
|
|
||||||
<tabstop>symbolED</tabstop>
|
|
||||||
<tabstop>descriptionTE</tabstop>
|
|
||||||
<tabstop>prefixED</tabstop>
|
|
||||||
</tabstops>
|
|
||||||
<includes>
|
|
||||||
<include location="local">qt_i18n.h</include>
|
|
||||||
</includes>
|
|
||||||
<resources/>
|
|
||||||
<connections/>
|
|
||||||
</ui>
|
|
@ -52,6 +52,7 @@ class InsetIterator;
|
|||||||
class InsetLayout;
|
class InsetLayout;
|
||||||
class InsetList;
|
class InsetList;
|
||||||
class InsetMath;
|
class InsetMath;
|
||||||
|
class InsetNomencl;
|
||||||
class InsetTabular;
|
class InsetTabular;
|
||||||
class InsetText;
|
class InsetText;
|
||||||
class Language;
|
class Language;
|
||||||
@ -154,6 +155,8 @@ public:
|
|||||||
virtual InsetArgument const * asInsetArgument() const { return nullptr; }
|
virtual InsetArgument const * asInsetArgument() const { return nullptr; }
|
||||||
/// is this inset based on the InsetIndex class?
|
/// is this inset based on the InsetIndex class?
|
||||||
virtual InsetIndex const * asInsetIndex() const { return nullptr; }
|
virtual InsetIndex const * asInsetIndex() const { return nullptr; }
|
||||||
|
/// is this inset based on the InsetNomencl class?
|
||||||
|
virtual InsetNomencl const * asInsetNomencl() const { return nullptr; }
|
||||||
/// is this inset based on the InsetGraphics class?
|
/// is this inset based on the InsetGraphics class?
|
||||||
virtual InsetGraphics * asInsetGraphics() { return nullptr; }
|
virtual InsetGraphics * asInsetGraphics() { return nullptr; }
|
||||||
/// is this inset based on the InsetGraphics class?
|
/// is this inset based on the InsetGraphics class?
|
||||||
|
@ -76,8 +76,6 @@ static ParamInfo const & findInfo(InsetCode code, string const & cmdName)
|
|||||||
return InsetLabel::findInfo(cmdName);
|
return InsetLabel::findInfo(cmdName);
|
||||||
case LINE_CODE:
|
case LINE_CODE:
|
||||||
return InsetLine::findInfo(cmdName);
|
return InsetLine::findInfo(cmdName);
|
||||||
case NOMENCL_CODE:
|
|
||||||
return InsetNomencl::findInfo(cmdName);
|
|
||||||
case NOMENCL_PRINT_CODE:
|
case NOMENCL_PRINT_CODE:
|
||||||
return InsetPrintNomencl::findInfo(cmdName);
|
return InsetPrintNomencl::findInfo(cmdName);
|
||||||
case REF_CODE:
|
case REF_CODE:
|
||||||
@ -216,8 +214,6 @@ string InsetCommandParams::getDefaultCmd(InsetCode code)
|
|||||||
return InsetLabel::defaultCommand();
|
return InsetLabel::defaultCommand();
|
||||||
case LINE_CODE:
|
case LINE_CODE:
|
||||||
return InsetLine::defaultCommand();
|
return InsetLine::defaultCommand();
|
||||||
case NOMENCL_CODE:
|
|
||||||
return InsetNomencl::defaultCommand();
|
|
||||||
case NOMENCL_PRINT_CODE:
|
case NOMENCL_PRINT_CODE:
|
||||||
return InsetPrintNomencl::defaultCommand();
|
return InsetPrintNomencl::defaultCommand();
|
||||||
case REF_CODE:
|
case REF_CODE:
|
||||||
@ -255,8 +251,6 @@ bool InsetCommandParams::isCompatibleCommand(InsetCode code, string const & s)
|
|||||||
return InsetLabel::isCompatibleCommand(s);
|
return InsetLabel::isCompatibleCommand(s);
|
||||||
case LINE_CODE:
|
case LINE_CODE:
|
||||||
return InsetLine::isCompatibleCommand(s);
|
return InsetLine::isCompatibleCommand(s);
|
||||||
case NOMENCL_CODE:
|
|
||||||
return InsetNomencl::isCompatibleCommand(s);
|
|
||||||
case NOMENCL_PRINT_CODE:
|
case NOMENCL_PRINT_CODE:
|
||||||
return InsetPrintNomencl::isCompatibleCommand(s);
|
return InsetPrintNomencl::isCompatibleCommand(s);
|
||||||
case REF_CODE:
|
case REF_CODE:
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
#include <config.h>
|
#include <config.h>
|
||||||
|
|
||||||
#include "InsetNomencl.h"
|
#include "InsetNomencl.h"
|
||||||
#include "InsetNote.h"
|
#include "InsetArgument.h"
|
||||||
|
|
||||||
#include "Buffer.h"
|
#include "Buffer.h"
|
||||||
#include "Cursor.h"
|
#include "Cursor.h"
|
||||||
@ -51,62 +51,80 @@ namespace lyx {
|
|||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
InsetNomencl::InsetNomencl(Buffer * buf, InsetCommandParams const & p)
|
InsetNomencl::InsetNomencl(Buffer * buf)
|
||||||
: InsetCommand(buf, p)
|
: InsetCollapsible(buf)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
ParamInfo const & InsetNomencl::findInfo(string const & /* cmdName */)
|
|
||||||
{
|
|
||||||
static ParamInfo param_info_;
|
|
||||||
if (param_info_.empty()) {
|
|
||||||
param_info_.add("prefix", ParamInfo::LATEX_OPTIONAL);
|
|
||||||
param_info_.add("symbol", ParamInfo::LATEX_REQUIRED,
|
|
||||||
ParamInfo::ParamHandling(ParamInfo::HANDLING_LATEXIFY
|
|
||||||
| ParamInfo::HANDLING_INDEX_ESCAPE));
|
|
||||||
param_info_.add("description", ParamInfo::LATEX_REQUIRED,
|
|
||||||
ParamInfo::ParamHandling(ParamInfo::HANDLING_LATEXIFY
|
|
||||||
| ParamInfo::HANDLING_INDEX_ESCAPE));
|
|
||||||
param_info_.add("literal", ParamInfo::LYX_INTERNAL);
|
|
||||||
}
|
|
||||||
return param_info_;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
docstring InsetNomencl::screenLabel() const
|
|
||||||
{
|
|
||||||
size_t const maxLabelChars = 25;
|
|
||||||
docstring label = _("Nom: ") + getParam("symbol");
|
|
||||||
support::truncateWithEllipsis(label, maxLabelChars);
|
|
||||||
return label;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
docstring InsetNomencl::toolTip(BufferView const & /*bv*/, int /*x*/, int /*y*/) const
|
docstring InsetNomencl::toolTip(BufferView const & /*bv*/, int /*x*/, int /*y*/) const
|
||||||
{
|
{
|
||||||
docstring tip = _("Nomenclature Symbol: ") + getParam("symbol") + "\n";
|
docstring tip = _("Nomenclature Symbol: ") + getSymbol();
|
||||||
tip += _("Description: ") + "\t"
|
docstring const desc = getDescription();
|
||||||
+ subst(getParam("description"), from_ascii("\\\\"), from_ascii("\n\t"));
|
if (!desc.empty())
|
||||||
if (!getParam("prefix").empty())
|
tip += "\n" + _("Description: ") + "\t" + getDescription();
|
||||||
tip += "\n" + _("Sorting: ") + getParam("prefix");
|
docstring const prefix = getPrefix();
|
||||||
|
if (!prefix.empty())
|
||||||
|
tip += "\n" + _("Sorting: ") + prefix;
|
||||||
return tip;
|
return tip;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int InsetNomencl::plaintext(odocstringstream & os,
|
void InsetNomencl::write(ostream & os) const
|
||||||
OutputParams const &, size_t) const
|
|
||||||
{
|
{
|
||||||
docstring s = "[" + getParam("symbol") + ": " + getParam("description") + "]";
|
os << to_utf8(layoutName()) << endl;
|
||||||
os << s;
|
InsetCollapsible::write(os);
|
||||||
return s.size();
|
}
|
||||||
|
|
||||||
|
|
||||||
|
docstring InsetNomencl::getSymbol() const
|
||||||
|
{
|
||||||
|
return text().asString();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
docstring InsetNomencl::getPrefix() const
|
||||||
|
{
|
||||||
|
docstring res;
|
||||||
|
for (auto const & elem : paragraphs()[0].insetList()) {
|
||||||
|
if (InsetArgument const * x = elem.inset->asInsetArgument())
|
||||||
|
if (x->name() == "1")
|
||||||
|
res = x->text().asString(AS_STR_INSETS);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
docstring InsetNomencl::getDescription() const
|
||||||
|
{
|
||||||
|
docstring res;
|
||||||
|
for (auto const & elem : paragraphs()[0].insetList()) {
|
||||||
|
if (InsetArgument const * x = elem.inset->asInsetArgument())
|
||||||
|
if (x->name() == "post:1")
|
||||||
|
res = x->text().asString(AS_STR_INSETS);
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int InsetNomencl::plaintext(odocstringstream & os,
|
||||||
|
OutputParams const & rp, size_t) const
|
||||||
|
{
|
||||||
|
docstring const desc = getDescription();
|
||||||
|
os << "[";
|
||||||
|
InsetText::plaintext(os, rp);
|
||||||
|
if (!desc.empty())
|
||||||
|
os << ": " << desc;
|
||||||
|
os << "]";
|
||||||
|
return os.str().size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetNomencl::docbook(XMLStream & xs, OutputParams const &) const
|
void InsetNomencl::docbook(XMLStream & xs, OutputParams const &) const
|
||||||
{
|
{
|
||||||
docstring attr = "linkend=\"" + xml::cleanID(from_ascii("nomen") + getParam("symbol")) + "\"";
|
docstring const symbol = getSymbol();
|
||||||
|
docstring attr = "linkend=\"" + xml::cleanID(from_ascii("nomen") + symbol) + "\"";
|
||||||
xs << xml::StartTag("glossterm", attr);
|
xs << xml::StartTag("glossterm", attr);
|
||||||
xs << xml::escapeString(getParam("symbol"));
|
xs << xml::escapeString(symbol);
|
||||||
xs << xml::EndTag("glossterm");
|
xs << xml::EndTag("glossterm");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -120,16 +138,15 @@ docstring InsetNomencl::xhtml(XMLStream &, OutputParams const &) const
|
|||||||
void InsetNomencl::validate(LaTeXFeatures & features) const
|
void InsetNomencl::validate(LaTeXFeatures & features) const
|
||||||
{
|
{
|
||||||
features.require("nomencl");
|
features.require("nomencl");
|
||||||
InsetCommand::validate(features);
|
InsetCollapsible::validate(features);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void InsetNomencl::addToToc(DocIterator const & cpit, bool output_active,
|
void InsetNomencl::addToToc(DocIterator const & cpit, bool output_active,
|
||||||
UpdateType, TocBackend & backend) const
|
UpdateType, TocBackend & backend) const
|
||||||
{
|
{
|
||||||
docstring const str = getParam("symbol");
|
|
||||||
TocBuilder & b = backend.builder("nomencl");
|
TocBuilder & b = backend.builder("nomencl");
|
||||||
b.pushItem(cpit, str, output_active);
|
b.pushItem(cpit, getSymbol(), output_active);
|
||||||
b.pop();
|
b.pop();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -312,16 +329,20 @@ void InsetPrintNomencl::docbook(XMLStream & xs, OutputParams const & runparams)
|
|||||||
Inset const * inset = par.getInset(dit.top().pos());
|
Inset const * inset = par.getInset(dit.top().pos());
|
||||||
if (!inset)
|
if (!inset)
|
||||||
return;
|
return;
|
||||||
InsetCommand const * ic = inset->asInsetCommand();
|
InsetNomencl const * in = inset->asInsetNomencl();
|
||||||
if (!ic)
|
if (!in)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
// FIXME We need a link to the paragraph here, so we
|
// FIXME We need a link to the paragraph here, so we
|
||||||
// need some kind of struct.
|
// need some kind of struct.
|
||||||
docstring const symbol = ic->getParam("symbol");
|
docstring const symbol = in->getSymbol();
|
||||||
docstring const desc = ic->getParam("description");
|
docstring const desc = in->getDescription();
|
||||||
docstring const prefix = ic->getParam("prefix");
|
docstring const prefix = in->getPrefix();
|
||||||
docstring const sortas = prefix.empty() ? symbol : prefix;
|
// lowercase sortkey since map is case sensitive
|
||||||
|
docstring sortas = prefix.empty() ? lowercase(symbol) : lowercase(prefix);
|
||||||
|
// assure key uniqueness
|
||||||
|
while (entries.find(sortas) != entries.end())
|
||||||
|
sortas += "a";
|
||||||
|
|
||||||
entries[sortas] = NomenclEntry(symbol, desc, &par);
|
entries[sortas] = NomenclEntry(symbol, desc, &par);
|
||||||
}
|
}
|
||||||
@ -371,7 +392,7 @@ void InsetPrintNomencl::docbook(XMLStream & xs, OutputParams const & runparams)
|
|||||||
|
|
||||||
|
|
||||||
namespace {
|
namespace {
|
||||||
docstring nomenclWidest(Buffer const & buffer, OutputParams const & runparams)
|
docstring nomenclWidest(Buffer const & buffer)
|
||||||
{
|
{
|
||||||
// nomenclWidest() determines and returns the widest used
|
// nomenclWidest() determines and returns the widest used
|
||||||
// nomenclature symbol in the document
|
// nomenclature symbol in the document
|
||||||
@ -394,8 +415,7 @@ docstring nomenclWidest(Buffer const & buffer, OutputParams const & runparams)
|
|||||||
nomencl = static_cast<InsetNomencl const *>(inset);
|
nomencl = static_cast<InsetNomencl const *>(inset);
|
||||||
// Use proper formatting. We do not escape makeindex chars here
|
// Use proper formatting. We do not escape makeindex chars here
|
||||||
docstring symbol = nomencl ?
|
docstring symbol = nomencl ?
|
||||||
nomencl->params().prepareCommand(runparams, nomencl->getParam("symbol"),
|
nomencl->getSymbol()
|
||||||
ParamInfo::HANDLING_LATEXIFY)
|
|
||||||
: docstring();
|
: docstring();
|
||||||
// strip out % characters which are used as escape in nomencl
|
// strip out % characters which are used as escape in nomencl
|
||||||
// but act as comment in our context here
|
// but act as comment in our context here
|
||||||
@ -426,7 +446,7 @@ void InsetPrintNomencl::latex(otexstream & os, OutputParams const & runparams_in
|
|||||||
OutputParams runparams = runparams_in;
|
OutputParams runparams = runparams_in;
|
||||||
bool const autowidth = getParam("set_width") == "auto";
|
bool const autowidth = getParam("set_width") == "auto";
|
||||||
if (autowidth || getParam("set_width") == "textwidth") {
|
if (autowidth || getParam("set_width") == "textwidth") {
|
||||||
docstring widest = autowidth ? nomenclWidest(buffer(), runparams)
|
docstring widest = autowidth ? nomenclWidest(buffer())
|
||||||
: getParam("width");
|
: getParam("width");
|
||||||
// Set the label width via nomencl's command \nomlabelwidth.
|
// Set the label width via nomencl's command \nomlabelwidth.
|
||||||
// This must be output before the command \printnomenclature
|
// This must be output before the command \printnomenclature
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
#ifndef INSET_NOMENCL_H
|
#ifndef INSET_NOMENCL_H
|
||||||
#define INSET_NOMENCL_H
|
#define INSET_NOMENCL_H
|
||||||
|
|
||||||
|
#include "InsetCollapsible.h"
|
||||||
#include "InsetCommand.h"
|
#include "InsetCommand.h"
|
||||||
|
|
||||||
|
|
||||||
@ -23,10 +23,10 @@ class LaTeXFeatures;
|
|||||||
|
|
||||||
/** Used to insert nomenclature entries
|
/** Used to insert nomenclature entries
|
||||||
*/
|
*/
|
||||||
class InsetNomencl : public InsetCommand {
|
class InsetNomencl : public InsetCollapsible {
|
||||||
public:
|
public:
|
||||||
///
|
///
|
||||||
InsetNomencl(Buffer * buf, InsetCommandParams const &);
|
InsetNomencl(Buffer * buf);
|
||||||
|
|
||||||
/// \name Public functions inherited from Inset class
|
/// \name Public functions inherited from Inset class
|
||||||
//@{
|
//@{
|
||||||
@ -48,18 +48,15 @@ public:
|
|||||||
void docbook(XMLStream &, OutputParams const &) const override;
|
void docbook(XMLStream &, OutputParams const &) const override;
|
||||||
/// Does nothing at the moment.
|
/// Does nothing at the moment.
|
||||||
docstring xhtml(XMLStream &, OutputParams const &) const override;
|
docstring xhtml(XMLStream &, OutputParams const &) const override;
|
||||||
|
///
|
||||||
|
InsetNomencl const * asInsetNomencl() const override { return this; }
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
/// \name Static public methods obligated for InsetCommand derived classes
|
|
||||||
//@{
|
|
||||||
///
|
///
|
||||||
static ParamInfo const & findInfo(std::string const &);
|
docstring getSymbol() const;
|
||||||
///
|
///
|
||||||
static std::string defaultCommand() { return "nomenclature"; }
|
docstring getDescription() const;
|
||||||
///
|
///
|
||||||
static bool isCompatibleCommand(std::string const & s)
|
docstring getPrefix() const;
|
||||||
{ return s == "nomenclature"; }
|
|
||||||
//@}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
/// \name Private functions inherited from Inset class
|
/// \name Private functions inherited from Inset class
|
||||||
@ -68,10 +65,12 @@ private:
|
|||||||
Inset * clone() const override { return new InsetNomencl(*this); }
|
Inset * clone() const override { return new InsetNomencl(*this); }
|
||||||
//@}
|
//@}
|
||||||
|
|
||||||
/// \name Private functions inherited from InsetCommand class
|
/// \name Private functions inherited from InsetCollapsible class
|
||||||
//@{
|
//@{
|
||||||
///
|
///
|
||||||
docstring screenLabel() const override;
|
docstring layoutName() const override { return from_ascii("Nomenclature"); }
|
||||||
|
///
|
||||||
|
void write(std::ostream & os) const override;
|
||||||
//@}
|
//@}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -5005,36 +5005,13 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer,
|
|||||||
|
|
||||||
if (t.cs() == "nomenclature") {
|
if (t.cs() == "nomenclature") {
|
||||||
context.check_layout(os);
|
context.check_layout(os);
|
||||||
begin_command_inset(os, "nomenclature", "nomenclature");
|
begin_inset(os, "Nomenclature\n");
|
||||||
string prefix = convert_literate_command_inset_arg(p.getArg('[', ']'));
|
os << "status open\n";
|
||||||
if (!prefix.empty())
|
set<string> pass_thru_cmds = context.pass_thru_cmds;
|
||||||
os << "prefix " << '"' << prefix << '"' << "\n";
|
// These commands have special meanings in Nomenclature
|
||||||
// nomencl activates %
|
context.pass_thru_cmds.insert("%");
|
||||||
CatCode savecc = p.catcode('%');
|
parse_text_in_inset(p, os, FLAG_ITEM, outer, context, "Nomenclature");
|
||||||
p.setCatcode('%', catActive);
|
context.pass_thru_cmds = pass_thru_cmds;
|
||||||
string symbol = p.verbatim_item();
|
|
||||||
p.setCatcode('%', savecc);
|
|
||||||
// escape quotation marks
|
|
||||||
symbol = subst(symbol, "\"", "\\\"");
|
|
||||||
pair<bool, string> sym = convert_latexed_command_inset_arg(symbol);
|
|
||||||
bool literal = !sym.first;
|
|
||||||
string description = p.verbatim_item();
|
|
||||||
// escape quotation marks
|
|
||||||
description = subst(description, "\"", "\\\"");
|
|
||||||
pair<bool, string> desc = convert_latexed_command_inset_arg(description);
|
|
||||||
literal |= !desc.first;
|
|
||||||
if (literal) {
|
|
||||||
symbol = subst(symbol, "\n", " ");
|
|
||||||
description = subst(description, "\n", " ");
|
|
||||||
} else {
|
|
||||||
symbol = sym.second;
|
|
||||||
description = desc.second;
|
|
||||||
}
|
|
||||||
string lit = literal ? "\"true\"" : "\"false\"";
|
|
||||||
os << "symbol " << '"' << symbol;
|
|
||||||
os << "\"\ndescription \""
|
|
||||||
<< description << "\"\n"
|
|
||||||
<< "literal " << lit << "\n";
|
|
||||||
end_inset(os);
|
end_inset(os);
|
||||||
preamble.registerAutomaticallyLoadedPackage("nomencl");
|
preamble.registerAutomaticallyLoadedPackage("nomencl");
|
||||||
continue;
|
continue;
|
||||||
|
@ -32,8 +32,8 @@ extern char const * const lyx_version_info;
|
|||||||
|
|
||||||
// Do not remove the comment below, so we get merge conflict in
|
// Do not remove the comment below, so we get merge conflict in
|
||||||
// independent branches. Instead add your own.
|
// independent branches. Instead add your own.
|
||||||
#define LYX_FORMAT_LYX 626 // spitz: printnomencl setwidth
|
#define LYX_FORMAT_LYX 627 // spitz: nomencl collapsible
|
||||||
#define LYX_FORMAT_TEX2LYX 626
|
#define LYX_FORMAT_TEX2LYX 627
|
||||||
|
|
||||||
#if LYX_FORMAT_TEX2LYX != LYX_FORMAT_LYX
|
#if LYX_FORMAT_TEX2LYX != LYX_FORMAT_LYX
|
||||||
#ifndef _MSC_VER
|
#ifndef _MSC_VER
|
||||||
|
Loading…
Reference in New Issue
Block a user