Adjusted sample file to demonstrate issues

This commit is contained in:
2017-05-25 16:33:46 -04:00
parent 986b700ea6
commit df958c7fc4
2 changed files with 28 additions and 36 deletions

View File

@@ -7,27 +7,14 @@
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<local:LatexViewer FontSize="80">
<!-- e^{\pi i}=-1\{\textrm{in the complex plane} \\\\-->
<local:LatexViewer FontSize="40">
e^{\pi i}=-1\quad\{\textrm{in the complex plane} \\\\
a^x+a^y=a^{x+y} \\
log_ax^n=nlog_ax \\
M^1_2
<!-- A \ \alpha \quad N \ \nu \\-->
<!-- B \ \beta \quad \Xi \ \xi \\-->
<!-- \Gamma \ \gamma \quad O \ \omicron \\-->
<!-- \Delta \ \delta \quad \Pi \ \pi \\-->
<!-- E \ \epsilon \quad P \ \rho \\-->
<!-- Z \ \zeta \quad \Sigma \ \sigma \\-->
<!-- H \ \eta \quad T \ \tau \\-->
<!-- \Theta \ \theta \quad Y \ \upsilon \\-->
<!-- I \ \iota \quad \Phi \ \phi \\-->
<!-- K \ \kappa \quad X \ \chi \\-->
<!-- \Lambda \ \lambda \quad \Psi \ \psi \\-->
<!-- M \ \mu \quad \Omega \ \omega-->
log \sub b x \sup {n} = n \, log_b x \\ <!--adding brackets double counts some space-->
log \sub b x \sup n = n \, log_{b} x \\
M^1_2 <!-- need to fix height calculations and adjust baseline accordingly -->
</local:LatexViewer>
</Grid>

View File

@@ -67,29 +67,34 @@ namespace LatexEditor.Parser.Segments
val = new LatexGlyph(CmFont.Serif, LatexParser.GreekLetters[head.Value]);
if (LatexParser.Spaces.ContainsKey(head.Value))
val = new LatexSpace(LatexParser.Spaces[head.Value]);
if (head.Value == "^")
switch (head.Value)
{
if (PopLatexSegment(tokens, out var content))
{
val = content;
val.Size *= 0.7;
val.Offset = new Point(val.Offset.X, val.Offset.Y + 0.45);
}
}
if (head.Value == "_")
{
if (PopLatexSegment(tokens, out var content))
{
val = content;
val.Size *= 0.7;
val.Offset = new Point(val.Offset.X, val.Offset.Y - 0.45);
}
case "^":
case "sup":
if (PopLatexSegment(tokens, out var content))
{
val = content;
val.Size *= 0.7;
val.Offset = new Point(val.Offset.X, val.Offset.Y + 0.45);
}
break;
case "_":
case "sub":
if (PopLatexSegment(tokens, out content))
{
val = content;
val.Size *= 0.7;
val.Offset = new Point(val.Offset.X, val.Offset.Y - 0.45);
}
break;
}
break;
case "escape":
if (head.Value == "\\")
val = new LatexReturn();
else
val = new LatexGlyph(CmFont.Serif, head.Value[0]);
break;
}