Python解决方案编写工具。
项目描述
solman
Solutions manual编写工具。尽管这个工具是用Python编写的,但用户不需要在编写解决方案时编写任何Python代码。相反,解决方案将作为单个markdown文件(.md)在具有意义的目录结构中单独编写。这个包的目的是将这些单独的解决方案转换为各种输出,包括单个LaTeX文件以及Pelican兼容的博客文章/网页。
解决方案组
一个SolutionGroup代表一组相关的解决方案。问题解决方案必须通过子目录进行分组。每个问题解决方案都是一个单独的".md"文件,但SolutionGroup可以转换为单个LaTeX文件。练习解决方案文件以"ex-"前缀开始,问题解决方案以"prob-"前缀开始(在需要区分的情况下)。
解决方案组结构
一个SolutionGroup有几个重要的部分
- 章节 问题解决方案的分组层次,通常是文本中问题来源的章节或部分。
- 解决方案 可能包含LaTeX的markdown文件。每个文件代表一个问题的解决方案,允许问题之间进行最大程度的版本控制。
- 元数据 在目录结构顶部的一个YAML文件,包含相关的元数据字段。
具体来说,元数据文件必须包含以下字段
- 作者 问题的作者
- 书籍 问题的来源
- 类别 分组的分类描述(例如,“数学”或“物理”)
- 名称 分组的名称
- 解决方案作者 解决方案的作者
元数据文件还可以包含以下可选字段
- ISBN 文本来源的ISBN
- 参考文献文件 包含参考文献的BibTeX文件,包括".bib"扩展名
- 章节前缀 (默认"章节")- 章节标题的前缀
- 解决方案日期 (默认datetime.date.today)- 解决方案的日期。只有当解决方案不再可能更改时才设置此值。
- 子类别 对于该组的通用子类别标签,例如“线性代数”或“力学”
- 标签 问题标签的逗号分隔列表
示例文件结构
下面的文件结构代表一个名为“demo”的解决方案集的示例,其中包含两个部分(1和2),每个部分都有1个练习解决方案和2个问题解决方案。注意问题解决方案前缀为"prob-",练习解决方案前缀为"ex-"。还要注意元文件位于目录顶部。BibTeX文件是可选的。
demo
├── 1
│ ├── ex-1.md
│ ├── prob-1.md
│ └── prob-2.md
├── 2
│ ├── ex-1.md
│ ├── prob-1.md
│ └── prob-2.md
├── meta.yml
└── references.bib
创建解决方案组
创建解决方案组很简单。一旦您有了符合上述标准的目录结构,将SolutionGroup.from_meta函数指向您的元文件,所有解决方案文件都将自动发现。假设在上面的示例中,“demo”文件夹位于主目录中(或“~”)。那么下面的代码就足以创建相关的SolutionGroup
>>> from solman import SolutionGroup
>>> s = SolutionGroup.from_meta("~/demo/meta.yaml")
>>> s.name
"SampleName"
将解决方案转换为LaTeX
解决方案组可以将所有解决方案编译成单个LaTeX文件。每个解决方案文件(.md)使用PanDoc [1] 从Markdown转换为LaTeX源。使用Jinja模板 [2] 将生成的LaTeX源片段合并。最后,使用latexmk(正确处理文档引用的构建,例如目录或参考文献)将其转换为PDF。SolutionGroup类有一个用于创建LaTeX文件的方法
>>> s.to_latex('~/sample.tex') # will output a combined LaTeX file
将解决方案转换为PDF
与将解决方案转换为LaTeX类似,将解决方案转换为PDF(通过先转换为LaTeX)只需调用SolutionGroup的"to_pdf"方法。
>>> s.to_pdf('~/sample.pdf') # will output a combined PDF file
参考文献
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
solman-0.0.2.tar.gz的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 3e505415bf484a0e7d116e1c4168bf6b67966a1afc792c197f3bdeb3d43e0d12 |
|
MD5 | e55e109bd54500984644a3bcf2cbcd9a |
|
BLAKE2b-256 | 71b5bd2bfbbda5d8aa7020a9589b3268309759eec929ccff53223a527937bdda |
solman-0.0.2-py3-none-any.whl的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ccbfde1a6271b1a4583095bf76c87032d724fde1791d172e25f83fdc8cdb595a |
|
MD5 | 54488abf7337189ea33bf809043b05e1 |
|
BLAKE2b-256 | ee7693964ef2748fbf1dd55dce40a045f8e25add988de11e2edab487927e87ac |