From 5c7e829eff86ccacecc114a5c1d9ee6d8a1691b6 Mon Sep 17 00:00:00 2001 From: Jean-Marc Lasgouttes Date: Fri, 12 May 2000 13:11:20 +0000 Subject: [PATCH] Dekel patch to add EndLabelString tag to layout files. git-svn-id: svn://svn.lyx.org/lyx/lyx-devel/trunk@731 a592a061-630c-0410-9148-cb99ea01b6c8 --- ChangeLog | 16 ++++ NEWS | 5 +- lib/layouts/broadway.layout | 5 +- lib/layouts/heb-article.layout | 150 ++++++++++++++++++++------------- lib/layouts/hollywood.layout | 6 +- src/buffer.C | 2 + src/layout.C | 11 ++- src/layout.h | 8 +- src/text.C | 21 ++++- 9 files changed, 154 insertions(+), 70 deletions(-) diff --git a/ChangeLog b/ChangeLog index 5553394acf..a844e75457 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,19 @@ +20000-05-11 Dekel Tsur + + * src/layout.C: Add new keyword "endlabelstring" to layout file + + * src/text.C (GetVisibleRow): Draw endlabel string. + + * lib/layouts/broadway.layout + * lib/layouts/hollywood.layout: Added endlabel for the + Parenthetical layout. + + * lib/layouts/heb-article.layout: Do not use slanted font shape + for Theorem like environments. + + * src/buffer.C (makeLaTeXFile): Always add "american" to + the UsedLanguages list if document language is RTL. + 2000-05-11 Jean-Marc Lasgouttes * add addendum to README.OS2 and small patch (from SMiyata) diff --git a/NEWS b/NEWS index 705edafc52..ab7a3d1899 100644 --- a/NEWS +++ b/NEWS @@ -37,8 +37,9 @@ User-visible changes: (The color ones, and -mono -fastselection, -reverse) - new lyxrc variables: \show_banner [true|false] to remove the banner - screen, and \backupdir_path to tell where the backup files created - by lyx should be stored. + screen, \backupdir_path to tell where the backup files created + by lyx should be stored, and \override_x_deadkeys to tell whether + lyx should provide its own accent keys handling (default is true). diff --git a/lib/layouts/broadway.layout b/lib/layouts/broadway.layout index 787d9ec2bc..aa4ce16f0e 100644 --- a/lib/layouts/broadway.layout +++ b/lib/layouts/broadway.layout @@ -141,8 +141,7 @@ Style Speaker End # Parenthetical instruction to speaker (in parenthises, l.c.) -# The ( will automatically appear on screen, both () will be -# in print, so don't type any. +# The ( and ) will automatically appear on screen, so don't type any. Style Parenthetical Margin Static LatexType Environment @@ -151,6 +150,8 @@ Style Parenthetical AlignPossible Center LabelType Static LabelString ( + EndLabelType Static + EndLabelString ) Font Family Roman diff --git a/lib/layouts/heb-article.layout b/lib/layouts/heb-article.layout index 15f378f10d..0b10bf3914 100644 --- a/lib/layouts/heb-article.layout +++ b/lib/layouts/heb-article.layout @@ -2,18 +2,98 @@ # \DeclareLaTeXClass[article]{article (Hebrew)} # Hebrew article textclass definition file. # Author: Dekel Tsur +# Few changes by Baruch Even Input article Preamble -\newtheorem{theorem}{\R{\mem\shin\pe\tet}}[section] -\newtheorem{lemma}[theorem]{\R{\lamed\mem\he}} -\newtheorem{claim}[theorem]{\R{\tet\ayin\nun\he}} -\newtheorem{corollary}[theorem]{\R{\mem\samekh\qof\nun\he}} -\newenvironment{proof}{\R{\em \he\vav\kaf\het\he:}}{\hfill\rule{2mm}{2mm}\par\vspace{2mm}} +\usepackage{theorem} +\theorembodyfont{\upshape} +\newtheorem{theorem}{\R{משפט}}[section] +\make@lr\thetheorem EndPreamble -# Proof style declaration +Style Comment + LabelString ":הרעה" +End + +Style Abstract + LabelString "ריצקת" +End + +Style Theorem + Margin First_Dynamic + LatexType Environment + LatexName theorem + NextNoIndent 1 + LabelSep xx + ParIndent MMM + ParSkip 0.4 + ItemSep 0.2 + TopSep 0.7 + BottomSep 0.7 + ParSep 0.3 + Align Block + AlignPossible Block, Left + LabelType Static + LabelString ".# טפשמ" + # standard font definition + Font + Shape Up + Size Normal + EndFont + # label font definition + LabelFont + Shape Up + Series Bold + EndFont +End + +Style Lemma + CopyStyle Theorem + LatexName lemma + LabelString ".# המל" + Preamble +\newtheorem{lemma}[theorem]{\R{למה}} + EndPreamble +End + +Style Corollary + CopyStyle Theorem + LatexName corollary + LabelString ".# הנקסמ" + Preamble +\newtheorem{corollary}[theorem]{\R{מסקנה}} + EndPreamble +End + +Style Claim + CopyStyle Theorem + LatexName claim + LabelString ".# הנעט" + Preamble +\newtheorem{claim}[theorem]{\R{טענה}} + EndPreamble +End + +Style Definition + CopyStyle Theorem + LatexName definition + LabelString ".# הרדגה" + Preamble +\newtheorem{definition}[theorem]{\R{הגדרה}} + EndPreamble +End + +Style Remarks + CopyStyle Theorem + LatexName remark + LabelString ".# הרעה" + Preamble +\newtheorem{remark}[theorem]{\R{הערה}} + EndPreamble +End + Style Proof Margin First_Dynamic LatexType Environment @@ -38,60 +118,10 @@ Style Proof EndFont # label font definition LabelFont - Shape Italic - EndFont -End - -Style Theorem - Margin First_Dynamic - LatexType Environment - LatexName theorem - NextNoIndent 1 - LabelSep xx - ParIndent MMM - ParSkip 0.4 - ItemSep 0.2 - TopSep 0.7 - BottomSep 0.7 - ParSep 0.3 - Align Block - AlignPossible Block, Left - LabelType Static - LabelString ".# טפשמ" - # standard font definition - Font - Shape Italic - Size Normal - EndFont - # label font definition - LabelFont - Shape Up + Shape Normal Series Bold EndFont + Preamble +\newenvironment{proof}{\R{\textbf{הוכחה:}}}{\hfill\rule{2mm}{2mm}\par\vspace{2mm}} + EndPreamble End - -Style Corollary - CopyStyle Theorem - LatexName corollary - LabelString ".# הנקסמ" -End - -Style Lemma - CopyStyle Theorem - LatexName lemma - LabelString ".# המל" -End - -Style Claim - CopyStyle Theorem - LatexName claim - LabelString ".# הנעט" -End - -Style Comment - LabelString ": הרעה" -End - -Style Abstract - LabelString "ריצקת" -End \ No newline at end of file diff --git a/lib/layouts/hollywood.layout b/lib/layouts/hollywood.layout index 800ac81bfa..bb1a4a9851 100644 --- a/lib/layouts/hollywood.layout +++ b/lib/layouts/hollywood.layout @@ -164,8 +164,7 @@ Style Speaker End # Parenthetical instruction to speaker (in parenthises, l.c.) -# The ( will automatically appear on screen, both () will be -# in print, so don't type any. +# The ( and ) will automatically appear on screen, so don't type any. Style Parenthetical Margin Static LatexType Environment @@ -178,6 +177,9 @@ Style Parenthetical AlignPossible Left LabelType Static LabelString ( + EndLabelType Static + EndLabelString ) + Font Family Typewriter Series Medium diff --git a/src/buffer.C b/src/buffer.C index 5ad15c8fea..be74bf1351 100644 --- a/src/buffer.C +++ b/src/buffer.C @@ -1739,6 +1739,8 @@ void Buffer::makeLaTeXFile(string const & fname, // language should be a parameter to \documentclass bool use_babel = false; + if (params.language_info->RightToLeft) // This seems necessary + features.UsedLanguages.insert(default_language); if (params.language != "default" || !features.UsedLanguages.empty() ) { use_babel = true; diff --git a/src/layout.C b/src/layout.C index 853114a7c2..37898f0384 100644 --- a/src/layout.C +++ b/src/layout.C @@ -77,6 +77,7 @@ enum LayoutTags { LT_LABELSTRING, LT_LABELSTRING_APPENDIX, LT_LABELTYPE, + LT_ENDLABELSTRING, LT_ENDLABELTYPE, LT_LATEXNAME, LT_LATEXPARAM, @@ -141,6 +142,7 @@ bool LyXLayout::Read (LyXLex & lexrc, LyXTextClass const & tclass) { "bottomsep", LT_BOTTOMSEP }, { "copystyle", LT_COPYSTYLE }, { "end", LT_END }, + { "endlabelstring", LT_ENDLABELSTRING }, { "endlabeltype", LT_ENDLABELTYPE }, { "fill_bottom", LT_FILL_BOTTOM }, { "fill_top", LT_FILL_TOP }, @@ -371,6 +373,11 @@ bool LyXLayout::Read (LyXLex & lexrc, LyXTextClass const & tclass) labelstring_ = lexrc.GetString(); break; + case LT_ENDLABELSTRING: // endlabel string definition + if (lexrc.next()) + endlabelstring_ = lexrc.GetString(); + break; + case LT_LABELSTRING_APPENDIX: // label string appendix definition if (lexrc.next()) labelstring_appendix_ = lexrc.GetString(); @@ -613,7 +620,8 @@ void LyXLayout::readLabelType(LyXLex & lexrc) static keyword_item endlabelTypeTags[] = { { "box", END_LABEL_BOX }, { "filled_box", END_LABEL_FILLED_BOX }, - { "no_label", END_LABEL_NO_LABEL } + { "no_label", END_LABEL_NO_LABEL }, + { "static", END_LABEL_STATIC } }; void LyXLayout::readEndLabelType(LyXLex & lexrc) @@ -625,6 +633,7 @@ void LyXLayout::readEndLabelType(LyXLex & lexrc) case LyXLex::LEX_UNDEF: lexrc.printError("Unknown labeltype tag `$$Token'"); break; + case END_LABEL_STATIC: case END_LABEL_BOX: case END_LABEL_FILLED_BOX: case END_LABEL_NO_LABEL: diff --git a/src/layout.h b/src/layout.h index f29ebb2572..bc9dd8c153 100644 --- a/src/layout.h +++ b/src/layout.h @@ -153,9 +153,11 @@ enum LYX_END_LABEL_TYPES { /// END_LABEL_FILLED_BOX, /// + END_LABEL_STATIC, + /// END_LABEL_ENUM_FIRST = END_LABEL_NO_LABEL, /// - END_LABEL_ENUM_LAST = END_LABEL_FILLED_BOX + END_LABEL_ENUM_LAST = END_LABEL_STATIC }; /* Fix labels are printed flushright, manual labels flushleft. @@ -201,6 +203,7 @@ public: string const & obsoleted_by() const { return obsoleted_by_; } string const & latexname() const { return latexname_; } string const & labelstring() const { return labelstring_; } + string const & endlabelstring() const { return endlabelstring_; } string const & preamble() const { return preamble_; } string const & latexparam() const { return latexparam_; } string const & labelstring_appendix() const { @@ -339,6 +342,9 @@ private: /// Label string. "Abstract", "Reference", "Caption"... string labelstring_; + /// + string endlabelstring_; + /// Label string inside appendix. "Appendix", ... string labelstring_appendix_; diff --git a/src/text.C b/src/text.C index aa747375da..a702305f0a 100644 --- a/src/text.C +++ b/src/text.C @@ -4210,8 +4210,10 @@ void LyXText::GetVisibleRow(int offset, Row * row_ptr, long y) // draw an endlabel int endlabel = row_ptr->par->GetEndLabel(); - if (endlabel == END_LABEL_BOX || - endlabel == END_LABEL_FILLED_BOX) { + switch (endlabel) { + case END_LABEL_BOX: + case END_LABEL_FILLED_BOX: + { LyXFont font = GetFont(row_ptr->par, last); int size = int(0.75 * lyxfont::maxAscent(font)); int y = (offset + row_ptr->baseline) - size; @@ -4238,6 +4240,21 @@ void LyXText::GetVisibleRow(int offset, Row * row_ptr, long y) } else pain.fillRectangle(x, y, size, size, LColor::eolmarker); + break; + } + case END_LABEL_STATIC: + { + LyXTextClass::LayoutList::size_type layout = row_ptr->par->GetLayout(); + string tmpstring = textclasslist.Style(buffer->params.textclass, + layout).endlabelstring(); + font = GetFont(row_ptr->par, -2); + int tmpx = is_rtl ? int(x) - lyxfont::width(tmpstring, font) + : paperwidth - RightMargin(row_ptr) - row_ptr->fill; + pain.text( tmpx, offset + row_ptr->baseline, tmpstring, font); + break; + } + case END_LABEL_NO_LABEL: + break; } }