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
This commit is contained in:
Jean-Marc Lasgouttes 2000-05-12 13:11:20 +00:00
parent 1fc7671591
commit 5c7e829eff
9 changed files with 154 additions and 70 deletions

View File

@ -1,3 +1,19 @@
20000-05-11 Dekel Tsur <dekel@math.tau.ac.il>
* 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 <Jean-Marc.Lasgouttes@inria.fr>
* add addendum to README.OS2 and small patch (from SMiyata)

5
NEWS
View File

@ -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).

View File

@ -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

View File

@ -2,18 +2,98 @@
# \DeclareLaTeXClass[article]{article (Hebrew)}
# Hebrew article textclass definition file.
# Author: Dekel Tsur <dekel@math.tau.ac.il>
# Few changes by Baruch Even <baruch.even@writeme.com>
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

View File

@ -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

View File

@ -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;

View File

@ -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:

View File

@ -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_;

View File

@ -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;
}
}