From 7b20cc5258f88cfa441e479b9093eb9a65122ffd Mon Sep 17 00:00:00 2001 From: =?utf8?q?Uwe=20St=C3=B6hr?= Date: Mon, 10 Nov 2014 02:23:05 +0100 Subject: [PATCH] tex2lyx: backport new features from master - support for bibtopic, \nameref and 2 math fonts --- src/tex2lyx/Preamble.cpp | 11 +++++++++ src/tex2lyx/TODO.txt | 4 ---- src/tex2lyx/test/test-insets.lyx.lyx | 12 ++++++++++ src/tex2lyx/test/test-insets.tex | 3 ++- src/tex2lyx/text.cpp | 35 ++++++++++++++++++++++++++-- status.21x | 6 +++++ 6 files changed, 64 insertions(+), 7 deletions(-) diff --git a/src/tex2lyx/Preamble.cpp b/src/tex2lyx/Preamble.cpp index c87b766d08..f138348b90 100644 --- a/src/tex2lyx/Preamble.cpp +++ b/src/tex2lyx/Preamble.cpp @@ -768,6 +768,14 @@ void Preamble::handle_package(Parser &p, string const & name, h_font_math = "minion-ntxm"; } + if (name == "iwona") + if (opts == "math") + h_font_math = "iwona-math"; + + if (name == "kurier") + if (opts == "math") + h_font_math = "kurier-math"; + // after the detection and handling of special cases, we can remove the // fonts, otherwise they would appear in the preamble, see bug #7856 if (is_known(name, known_roman_fonts) || is_known(name, known_sans_fonts) @@ -958,6 +966,9 @@ void Preamble::handle_package(Parser &p, string const & name, h_cite_engine_type = "authoryear"; } + else if (name == "bibtopic") + h_use_bibtopic = "true"; + else if (name == "hyperref") handle_hyperref(options); diff --git a/src/tex2lyx/TODO.txt b/src/tex2lyx/TODO.txt index 17979db985..afd7ce414b 100644 --- a/src/tex2lyx/TODO.txt +++ b/src/tex2lyx/TODO.txt @@ -18,7 +18,6 @@ Format LaTeX feature LyX feature 226 nothing (impossible to import) InsetBranch, \branch...\end_branch 226 transformations InsetExternal 228 draft InsetExternal -232 bibtopic InsetBibTeX 254 esint.sty \use_esint 267 XeTeX utf8 encoding 270 \alert, \structure (beamer) layout @@ -46,7 +45,6 @@ Format LaTeX feature LyX feature 390 forward/reverse search \forward_search, \forward_macro 391 decimal alignment in tables InsetTabular 392 new beamer format InsetLayout -396 nameref.sty InsetRef 399 automatic mathdots loading \use_mathdots 407 vertical offset for multirows InsetTabular 411 support for polyglossia \language_package (the cases of no package, of babel and of custom package is supported) @@ -80,7 +78,6 @@ Format LaTeX feature LyX feature 459 beamer: \begin{frame}, \begin_layout Frame \begin{frame}[plain], \begin_layout PlainFrame \begin{frame}[fragile] \begin_layout FragileFrame -461 support for kurier math font (the other kurier fonts are already supported) 462 New libertine LaTeX fonts: \usepackage[scale|scaled|ttscale=$val]{libertineMono-type1} \font_typewriter @@ -96,7 +93,6 @@ Format LaTeX feature LyX feature \twocolumn[]{}{} Layout Twocolumn, InsetArgument \item[]<> InsetArgument \begin{enumerate|itemize|...}[] InsetArgument -467 support for iwona math font (the other iwona fonts are already supported) General diff --git a/src/tex2lyx/test/test-insets.lyx.lyx b/src/tex2lyx/test/test-insets.lyx.lyx index a90bec9315..25f372b5dd 100644 --- a/src/tex2lyx/test/test-insets.lyx.lyx +++ b/src/tex2lyx/test/test-insets.lyx.lyx @@ -250,6 +250,18 @@ reference "lab:test" LatexCommand formatted reference "lab:test" +\end_inset + + as well as textual references like +\begin_inset space ~ + +\end_inset + + +\begin_inset CommandInset ref +LatexCommand nameref +reference "lab:test" + \end_inset . The command diff --git a/src/tex2lyx/test/test-insets.tex b/src/tex2lyx/test/test-insets.tex index 5009086cb9..5fd3930307 100644 --- a/src/tex2lyx/test/test-insets.tex +++ b/src/tex2lyx/test/test-insets.tex @@ -86,7 +86,8 @@ Of course there are other kind of references, like page reference~\pageref{lab:test}, but also equation reference~\eqref{lab:test} (from amsmath package), or varioref's equivalents~\vref{lab:test} and~\vpageref{lab:test}, without -forgetting pretty references like~\prettyref{lab:test}. +forgetting pretty references like~\prettyref{lab:test} as well as textual +references like~\nameref{lab:test}. The command \secref{lab:test} will be parsed in ERT, since LyX does not support refstyle and prettyref natively at the same time. diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp index e5b720997d..6f88d8e414 100644 --- a/src/tex2lyx/text.cpp +++ b/src/tex2lyx/text.cpp @@ -112,10 +112,10 @@ string parse_text_snippet(Parser & p, unsigned flags, const bool outer, char const * const known_ref_commands[] = { "ref", "pageref", "vref", - "vpageref", "prettyref", "eqref", 0 }; + "vpageref", "prettyref", "nameref", "eqref", 0 }; char const * const known_coded_ref_commands[] = { "ref", "pageref", "vref", - "vpageref", "formatted", "eqref", 0 }; + "vpageref", "formatted", "nameref", "eqref", 0 }; char const * const known_refstyle_commands[] = { "algref", "chapref", "corref", "eqref", "enuref", "figref", "fnref", "lemref", "parref", "partref", "propref", @@ -1525,6 +1525,37 @@ void parse_environment(Parser & p, ostream & os, bool outer, preamble.registerAutomaticallyLoadedPackage("color"); } + else if (name == "btSect") { + eat_whitespace(p, os, parent_context, false); + parent_context.check_layout(os); + begin_command_inset(os, "bibtex", "bibtex"); + string bibstyle = "plain"; + if (p.hasOpt()) { + bibstyle = p.getArg('[', ']'); + p.skip_spaces(true); + } + string const bibfile = p.getArg('{', '}'); + eat_whitespace(p, os, parent_context, false); + Token t = p.get_token(); + if (t.asInput() == "\\btPrintCited") { + p.skip_spaces(true); + os << "btprint " << '"' << "btPrintCited" << '"' << "\n"; + } + if (t.asInput() == "\\btPrintNotCited") { + p.skip_spaces(true); + os << "btprint " << '"' << "btPrintNotCited" << '"' << "\n"; + } + if (t.asInput() == "\\btPrintAll") { + p.skip_spaces(true); + os << "btprint " << '"' << "btPrintAll" << '"' << "\n"; + } + os << "bibfiles " << '"' << bibfile << '"' << "\n"; + os << "options " << '"' << bibstyle << '"' << "\n"; + parse_text_in_inset(p, os, FLAG_END, outer, parent_context); + end_inset(os); + p.skip_spaces(); + } + else if (name == "framed" || name == "shaded") { eat_whitespace(p, os, parent_context, false); parse_outer_box(p, os, FLAG_END, outer, parent_context, name, ""); diff --git a/status.21x b/status.21x index 16c763b76f..b58c57eea1 100644 --- a/status.21x +++ b/status.21x @@ -38,6 +38,12 @@ What's new * TEX2LYX IMPROVEMENTS +- Sectioned bibliographies using the package bibtopic are now transformed. + +- Support for textual references (LaTeX-command \namref from the package + nameref). + +- Support for the Math fonts of the fonts Iwona and Kurier. * USER INTERFACE -- 2.39.5