Showing
3 changed files
with
48 additions
and
37 deletions
| @@ -4,7 +4,7 @@ import 'package:flutter/material.dart'; | @@ -4,7 +4,7 @@ import 'package:flutter/material.dart'; | ||
| 4 | import 'package:flutter_math_fork/flutter_math.dart'; | 4 | import 'package:flutter_math_fork/flutter_math.dart'; |
| 5 | export 'package:flutter_math_fork/flutter_math.dart'; | 5 | export 'package:flutter_math_fork/flutter_math.dart'; |
| 6 | 6 | ||
| 7 | -/// A Calculator. | 7 | +/// A LaTex text view. |
| 8 | class TexText extends StatelessWidget { | 8 | class TexText extends StatelessWidget { |
| 9 | const TexText(this.text, | 9 | const TexText(this.text, |
| 10 | {super.key, | 10 | {super.key, |
| @@ -18,43 +18,50 @@ class TexText extends StatelessWidget { | @@ -18,43 +18,50 @@ class TexText extends StatelessWidget { | ||
| 18 | 18 | ||
| 19 | @override | 19 | @override |
| 20 | Widget build(BuildContext context) { | 20 | Widget build(BuildContext context) { |
| 21 | - return Wrap( | ||
| 22 | - alignment: alignment, | ||
| 23 | - crossAxisAlignment: WrapCrossAlignment.center, | ||
| 24 | - spacing: 4, | ||
| 25 | - children: text | ||
| 26 | - .split("<m>") | ||
| 27 | - .asMap() | ||
| 28 | - .map<int, List<Widget>>( | ||
| 29 | - (index, e) { | ||
| 30 | - if (index.isOdd) { | ||
| 31 | - return MapEntry( | ||
| 32 | - index, | ||
| 33 | - [ | ||
| 34 | - Math.tex( | ||
| 35 | - e, | ||
| 36 | - textStyle: style, | ||
| 37 | - mathStyle: mathStyle, | ||
| 38 | - ), | ||
| 39 | - ], | ||
| 40 | - ); | ||
| 41 | - } | ||
| 42 | - return MapEntry( | ||
| 43 | - index, | ||
| 44 | - e | ||
| 45 | - .split(" ") | ||
| 46 | - .map<Widget>((e) => Text( | 21 | + return Column( |
| 22 | + mainAxisSize: MainAxisSize.min, | ||
| 23 | + crossAxisAlignment: CrossAxisAlignment.values[alignment.index % 3], | ||
| 24 | + children: text.split('\n').map<Widget>( | ||
| 25 | + (e) { | ||
| 26 | + return Wrap( | ||
| 27 | + alignment: alignment, | ||
| 28 | + crossAxisAlignment: WrapCrossAlignment.center, | ||
| 29 | + spacing: 4, | ||
| 30 | + children: e | ||
| 31 | + .split("<m>") | ||
| 32 | + .asMap() | ||
| 33 | + .map<int, List<Widget>>( | ||
| 34 | + (index, e) { | ||
| 35 | + if (index.isOdd) { | ||
| 36 | + return MapEntry( | ||
| 37 | + index, | ||
| 38 | + [ | ||
| 39 | + Math.tex( | ||
| 40 | + e, | ||
| 41 | + textStyle: style, | ||
| 42 | + mathStyle: mathStyle, | ||
| 43 | + ), | ||
| 44 | + ], | ||
| 45 | + ); | ||
| 46 | + } | ||
| 47 | + return MapEntry( | ||
| 48 | + index, | ||
| 49 | + e.split(" ").map<Widget>((e) { | ||
| 50 | + return Text( | ||
| 47 | e, | 51 | e, |
| 48 | style: style, | 52 | style: style, |
| 49 | - )) | ||
| 50 | - .toList(), | ||
| 51 | - ); | ||
| 52 | - }, | ||
| 53 | - ) | ||
| 54 | - .values | ||
| 55 | - .toList() | ||
| 56 | - .expand<Widget>((element) => element) | ||
| 57 | - .toList(), | 53 | + ); |
| 54 | + }).toList(), | ||
| 55 | + ); | ||
| 56 | + }, | ||
| 57 | + ) | ||
| 58 | + .values | ||
| 59 | + .toList() | ||
| 60 | + .expand<Widget>((element) => element) | ||
| 61 | + .toList(), | ||
| 62 | + ); | ||
| 63 | + }, | ||
| 64 | + ).toList(), | ||
| 58 | ); | 65 | ); |
| 59 | } | 66 | } |
| 60 | } | 67 | } |
| 1 | name: tex_text | 1 | name: tex_text |
| 2 | description: This package for Flutter allows you to show text on a Flutter app with LaTex math formula and normal text from string. It is vary easy to use and works for all of the platforms. | 2 | description: This package for Flutter allows you to show text on a Flutter app with LaTex math formula and normal text from string. It is vary easy to use and works for all of the platforms. |
| 3 | -version: 0.0.3 | 3 | +version: 0.0.4 |
| 4 | homepage: https://github.com/saminsohag/flutter_packages/tree/main/tex_text | 4 | homepage: https://github.com/saminsohag/flutter_packages/tree/main/tex_text |
| 5 | 5 | ||
| 6 | environment: | 6 | environment: |
-
Please register or login to post a comment