我用 svg 手工制作了练习。见附件。非常麻烦。
如果我可以用 markdown 写练习曲,然后使用 pandoc magic,我或许可以学习如何创建一个基本练习库。尽可能简单,但也尽可能“像教科书一样”,使用 Andika 的开放四、七和小节等。
在 markdown 之下,我希望学习如何使用比这更复杂的 pandoc 命令行参数进行调整:
~/lk$ pandoc --variable mainfont="Andika" lk-markdown-base-file.md --pdf-engine=xelatex -o lk-md-xelatex-pdf.pdf
我从https://pandoc.org/demos.html,以下是降价内容:
Andika fractions 0123456789
$\frac{1}{1}+\frac{1}{4}=\frac{4}{4}·\frac{1}{1}+\frac{1}{1}·\frac{1}{4}=\frac{4}{4}+\frac{1}{4}=\frac{5}{4}$
$\frac{1}{2}+\frac{1}{5}=\frac{5}{5}·\frac{1}{2}+\frac{2}{2}·\frac{1}{5}=\frac{5}{10}+\frac{2}{10}=$
$\frac{1}{3}+\frac{1}{6}=\frac{6}{6}·\frac{1}{3}+\frac{3}{3}·\frac{1}{6}=\frac{6}{18}+$
$\frac{1}{4}+\frac{1}{7}=\frac{7}{7}·\frac{1}{4}+\frac{4}{4}·\frac{1}{7}=$
$\frac{1}{5}+\frac{1}{8}=\frac{8}{8}·\frac{1}{5}+\frac{5}{5}·$
$\frac{1}{6}+\frac{1}{9}=\frac{9}{9}·\frac{1}{6}+$
$\frac{1}{7}+\frac{1}{10}=\frac{10}{10}·$
$\frac{1}{8}+\frac{1}{11}=$
$\frac{1}{9}+$
如果我可以与 Andika 一起完成这样的分数练习而无需编写 svg 程序,那就太棒了!
答案1
总结:
您需要告诉 pandoc 在 YAML 标头中使用哪种字体:
---
mainfont: Andika
mainfontoptions:
- CharacterVariant=1
- CharacterVariant=4
- CharacterVariant=6
- CharacterVariant=7
mathspec: true
mathfont: Andika
mathfontoptions:
- CharacterVariant=1
- CharacterVariant=4
- CharacterVariant=6
- CharacterVariant=7
---
# Markdown below
这仅适用于 XeLaTeX。如果您需要适用于 LuaLaTeX 的解决方案,请参阅Mico 的回答。
可以使用 otf 字体功能¹激活开放数字。你可以这样做fontspec
:
\documentclass{article}
\usepackage{fontspec}
\setmainfont[CharacterVariant={1,4,6,7}]{Andika}
\usepackage{parskip}
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
\begin{document}
Andika fractions 0123456789
\end{document}
Andika 现在可以在文本模式下工作,但不能在数学模式下工作。要在数学模式下使用 Andika,您必须加载mathspec
而不是fontspec
:
\documentclass{article}
\usepackage{mathspec}
\setmainfont[CharacterVariant={1,4,6,7}]{Andika}
\setmathfont(Digits,Latin)[CharacterVariant={1,4,6,7}]{Andika}
\usepackage{parskip}
\setlength{\parindent}{0pt}
\setlength{\parskip}{6pt plus 2pt minus 1pt}
\begin{document}
Andika fractions 0123456789
\(\frac{1}{1}+\frac{1}{4}=\frac{4}{4}\cdot\frac{1}{1}+\frac{1}{1}\cdot\frac{1}{4}=\frac{4}{4}+\frac{1}{4}=\frac{5}{4}\)
\(\frac{1}{2}+\frac{1}{5}=\frac{5}{5}\cdot\frac{1}{2}+\frac{2}{2}\cdot\frac{1}{5}=\frac{5}{10}+\frac{2}{10}=\)
\(\frac{1}{3}+\frac{1}{6}=\frac{6}{6}\cdot\frac{1}{3}+\frac{3}{3}\cdot\frac{1}{6}=\frac{6}{18}+\)
\(\frac{1}{4}+\frac{1}{7}=\frac{7}{7}\cdot\frac{1}{4}+\frac{4}{4}\cdot\frac{1}{7}=\)
\(\frac{1}{5}+\frac{1}{8}=\frac{8}{8}\cdot\frac{1}{5}+\frac{5}{5}\cdot\)
\(\frac{1}{6}+\frac{1}{9}=\frac{9}{9}\cdot\frac{1}{6}+\)
\(\frac{1}{7}+\frac{1}{10}=\frac{10}{10}\cdot\)
\(\frac{1}{8}+\frac{1}{11}=\)
\(\frac{1}{9}+\)
\end{document}
要使用此解决方案,pandoc
您必须告诉它使用mathspec
上面的选项并指定主字体和数学字体。您可以在 YAML 标头²中执行此操作:
---
mainfont: Andika
mainfontoptions:
- CharacterVariant=1
- CharacterVariant=4
- CharacterVariant=6
- CharacterVariant=7
mathspec: true
mathfont: Andika
mathfontoptions:
- CharacterVariant=1
- CharacterVariant=4
- CharacterVariant=6
- CharacterVariant=7
---
Andika fractions 0123456789
$\frac{1}{1}+\frac{1}{4}=\frac{4}{4}\cdot\frac{1}{1}+\frac{1}{1}\cdot\frac{1}{4}=\frac{4}{4}+\frac{1}{4}=\frac{5}{4}$
$\frac{1}{2}+\frac{1}{5}=\frac{5}{5}\cdot\frac{1}{2}+\frac{2}{2}\cdot\frac{1}{5}=\frac{5}{10}+\frac{2}{10}=$
$\frac{1}{3}+\frac{1}{6}=\frac{6}{6}\cdot\frac{1}{3}+\frac{3}{3}\cdot\frac{1}{6}=\frac{6}{18}+$
$\frac{1}{4}+\frac{1}{7}=\frac{7}{7}\cdot\frac{1}{4}+\frac{4}{4}\cdot\frac{1}{7}=$
$\frac{1}{5}+\frac{1}{8}=\frac{8}{8}\cdot\frac{1}{5}+\frac{5}{5}\cdot$
$\frac{1}{6}+\frac{1}{9}=\frac{9}{9}\cdot\frac{1}{6}+$
$\frac{1}{7}+\frac{1}{10}=\frac{10}{10}\cdot$
$\frac{1}{8}+\frac{1}{11}=$
$\frac{1}{9}+$
现在您可以照常调用 pandoc:
$ pandoc input.md --pdf-engine=xelatex -o output.pdf
- 您可以使用
otfinfo -f Andika-R.ttf
它来列出所有可用的字体功能。 - 可以使用简单的 YAML 序列。
答案2
1
这是一个适用于 LuaLaTeX 和 XeLaTeX 的解决方案,同时使用数字、4
、6
、7
和的非默认变体9
。此外,它还采用了一个环境,以帮助水平和垂直array
对齐所有分数项、+
符号和符号。=
请注意,由于 Andika 是一种文本字体,而不是数学字体,因此只有数学术语中的数字采用 Andika;所有其他字形(例如+
和=
)均使用拉丁现代数学呈现。
下面的代码实际上提供了两个解决方案,而不仅仅是一个解决方案。第一个使用显示样式的数学运算,而第二个使用文本样式的数学运算。差异最明显地体现在项的大小上\frac
。
\documentclass{article}
\usepackage{array} % for '\newcolumntype' macro
\usepackage{booktabs} % for '\addlinespace' macro
\newcolumntype{C}{>{{}}c<{{}}} % column type for = and + operators
\newcolumntype{H}{>{\displaystyle}c}
\usepackage{unicode-math}
\setmainfont{Andika}[CharacterVariant={1,4,6,7}]
\setmathfont{Latin Modern Math}
\setmathfont{Andika}[range=up/{num},
CharacterVariant={1,4,6,7}]
\begin{document}
Andika numerals 0123456789
Solution 1: display-style math and fractions
\[
\setlength{\arraycolsep}{0pt}
\begin{array}{*{8}{HC}H}
\frac{1}{1} &+&\frac{1}{4} &=& \frac{4}{4} &\cdot& \frac{1}{1} &+&
\frac{1}{1} &\cdot& \frac{1}{4} &=& \frac{4}{4} &+&\frac{1}{4} &=&
\frac{5}{4}\\ \addlinespace
\frac{1}{2} &+&\frac{1}{5} &=& \frac{5}{5} &\cdot& \frac{1}{2} &+&
\frac{2}{2} &\cdot& \frac{1}{5} &=& \frac{5}{10} &+&\frac{2}{10}&=&
\\ \addlinespace
\frac{1}{3} &+&\frac{1}{6} &=& \frac{6}{6} &\cdot& \frac{1}{3} &+&
\frac{3}{3} &\cdot& \frac{1}{6} &=& \frac{6}{18} &+&\\
\addlinespace
\frac{1}{4} &+&\frac{1}{7} &=& \frac{7}{7} &\cdot& \frac{1}{4} &+&
\frac{4}{4} &\cdot& \frac{1}{7} &=& \\ \addlinespace
\frac{1}{5} &+&\frac{1}{8} &=& \frac{8}{8} &\cdot& \frac{1}{5} &+&
\frac{5}{5} &\cdot& \\ \addlinespace
\frac{1}{6} &+&\frac{1}{9} &=& \frac{9}{9} &\cdot& \frac{1}{6} &+&
\\ \addlinespace
\frac{1}{7} &+&\frac{1}{10} &=& \frac{10}{10} &\cdot&
\\ \addlinespace
\frac{1}{8} &+&\frac{1}{11} &=& \\ \addlinespace
\frac{1}{9} &+&\\
\end{array}
\]
Solution 2: text-style math and fractions
\[
\setlength{\arraycolsep}{0pt}
\begin{array}{*{8}{cC}c}
\frac{1}{1} &+&\frac{1}{4} &=& \frac{4}{4} &\cdot& \frac{1}{1} &+&
\frac{1}{1} &\cdot& \frac{1}{4} &=& \frac{4}{4} &+&\frac{1}{4} &=&
\frac{5}{4}\\ \addlinespace
\frac{1}{2} &+&\frac{1}{5} &=& \frac{5}{5} &\cdot& \frac{1}{2} &+&
\frac{2}{2} &\cdot& \frac{1}{5} &=& \frac{5}{10} &+&\frac{2}{10}&=&
\\ \addlinespace
\frac{1}{3} &+&\frac{1}{6} &=& \frac{6}{6} &\cdot& \frac{1}{3} &+&
\frac{3}{3} &\cdot& \frac{1}{6} &=& \frac{6}{18} &+&\\
\addlinespace
\frac{1}{4} &+&\frac{1}{7} &=& \frac{7}{7} &\cdot& \frac{1}{4} &+&
\frac{4}{4} &\cdot& \frac{1}{7} &=& \\ \addlinespace
\frac{1}{5} &+&\frac{1}{8} &=& \frac{8}{8} &\cdot& \frac{1}{5} &+&
\frac{5}{5} &\cdot& \\ \addlinespace
\frac{1}{6} &+&\frac{1}{9} &=& \frac{9}{9} &\cdot& \frac{1}{6} &+&
\\ \addlinespace
\frac{1}{7} &+&\frac{1}{10} &=& \frac{10}{10} &\cdot&
\\ \addlinespace
\frac{1}{8} &+&\frac{1}{11} &=& \\ \addlinespace
\frac{1}{9} &+&\\
\end{array}
\]
\end{document}