From: Uwe Stöhr Date: Mon, 24 Oct 2011 21:07:00 +0000 (+0000) Subject: tex2lyx: support for the LaTeX command \rule X-Git-Tag: 2.1.0beta1~2509 X-Git-Url: https://git.lyx.org/gitweb/?a=commitdiff_plain;h=8ed06703aaafcb638d26cd3f05d2b6429fc63a44;p=features.git tex2lyx: support for the LaTeX command \rule git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@39957 a592a061-630c-0410-9148-cb99ea01b6c8 --- diff --git a/src/tex2lyx/TODO.txt b/src/tex2lyx/TODO.txt index be58261958..ee6172e891 100644 --- a/src/tex2lyx/TODO.txt +++ b/src/tex2lyx/TODO.txt @@ -79,7 +79,6 @@ Format LaTeX feature LyX feature 394 \makebox InsetBox use_makebox 396 nameref.sty InsetRef 399 automatic mathdots loading \use_mathdots -400 other rules than \lyxline InsetLine 401 feyn.sty InsetMathDiagram 402 \addcontentsline InsetBibtex bibtotoc option 404 refstyle.sty InsetRef diff --git a/src/tex2lyx/test/test-insets.tex b/src/tex2lyx/test/test-insets.tex index a6a5cdfe3a..82299ac717 100644 --- a/src/tex2lyx/test/test-insets.tex +++ b/src/tex2lyx/test/test-insets.tex @@ -273,6 +273,7 @@ Now use them all: The following tow don't work, but they should??? %\macros{x} \macrot{x} + \section{Special formattings\index{Special formattings}} \subsection{LyX line} @@ -289,8 +290,20 @@ test {\Huge \lyxline{\Huge}}{\Huge \par} + +\subsection{rules} + +test\rule[0.001\textwidth]{1\columnwidth}{0.05\textheight} + test +\rule[0.5ex]{1\columnwidth}{1pt} + +\noindent \rule{1ex}{0.5cc}test + +\textcolor{red}{\rule[-4ex]{5in}{1cm}} + + \subsection{Line breaks} They can also or be broken by a newline\\ diff --git a/src/tex2lyx/text.cpp b/src/tex2lyx/text.cpp index d59081a10b..758ddc120b 100644 --- a/src/tex2lyx/text.cpp +++ b/src/tex2lyx/text.cpp @@ -2470,6 +2470,24 @@ void parse_text(Parser & p, ostream & os, unsigned flags, bool outer, end_inset(os); } + else if (t.cs() == "rule") { + string offset = ""; + string width; + string thickness; + if (p.hasOpt()) + offset = p.getArg('[', ']'); + width = p.getArg('{', '}'); + thickness = p.getArg('{', '}'); + + context.check_layout(os); + begin_command_inset(os, "line", "rule"); + if (!offset.empty()) + os << "offset \"" << translate_len(offset) << "\"\n"; + os << "width \"" << translate_len(width) << "\"\n" + "height \"" << translate_len(thickness) << "\"\n"; + end_inset(os); + } + else if (is_known(t.cs(), known_phrases) || (t.cs() == "protect" && p.next_token().cat() == catEscape &&