轻松地将python计算注入word和latex文档!

docal的Python项目详细描述


===
文件
==




…图片::https://img.shields.io/pypi/v/docal.svg
:目标:https://pypi.python.org/pypi/docal

…图片::https://img.shields.io/travis/k1dv5/docal.svg
:目标:https://travis ci.org/k1dv5/docal

…图片::https://readthedocs.org/projects/docal/badge/?version=latest
:目标:https://docal.readthedocs.io/en/latest/?badge=latest
:alt:documentation status






轻松地将python计算注入word和乳胶文档!


*免费软件:麻省理工学院许可证
*文档:https://docal.readthedocs.io.

python编写的计算发送到word或乳胶文档。它在文档中的单独python脚本中计算公式,并用计算结果替换文档中指示计算应在何处的标签。它内置了一个强大的python表达式到latex converter,因此在发送计算结果之前,它会将计算结果及其结果转换为相应的乳胶形式,这使它非常适合制作学术和科学报告。


要求
----

**简要说明**:在本文档中,shell表示windows用户的"命令提示符"或"powershell",linux和macos用户的"sh"或"bash"。

e.如果你想使用一些更先进的东西,比如
数组和矩阵,就需要更多关于python的知识。


``python``并按回车键。如果它编写了python安装的版本号和其他信息,那么您已经安装了它。如果版本号以2开头,那么您可能应该安装python 3(最新版本)。如果您有python 3或更高版本,您就可以去了。如果没有python 3
或者根本没有python,则应转到"python主页"lt;https://www.python.org>;``并安装它,确保在安装过程中选中"将python添加到路径"复选框。

ve
`pandoc<;https://pandoc.org>;`安装在您的系统上(并在您的路径中)。
因为docal内部只处理tex文件,当给定word文件时,它会在内部将其转换为tex,修改它,并使用pandoc将其转换回
word。

install
------

要安装此软件包,(在确保您有正常的Internet连接后),请键入以下命令并按回车键。

。codeblock::shell
pip安装docal

,或者如果您有源代码
。codeblock::shell
pip安装。



用法
==


典型工作流程
----


-用户像往常一样写入文档的静态部分(word或latex),但
为计算部分(double
散列)保留某种唯一的散列标记(\标记名)wrod的符号)。
-计算结果用任何文本编辑器(包括记事本)写在单独的文本文件中,并保存在文档文件旁边。有关
计算文件的语法,请参见下文。但它只是一个带有注释的python脚本。
-该工具通过以下命令调用:

…代码块::shell
docal-s[计算文件]-i[输入文件]-o[输出文件]

代码块::shell
docal-s calcs.py-i document.tex-o document out.tex

将有效。
-那就瞧!我们需要做的是。输出文件可以正常使用。

他的语法很简单。一次只写一行方程式。您在语法中所写的是一个有效的python文件(它只是一个带有很多赋值和注释的脚本)。


在杂凑符号后面。如果哈希符号后面跟着一个
单美元符号(\$),则该行的其余部分将是python
公式,并将转换为内联乳胶公式。如果美元符号后面的
是两个美元符号,则该行的其余部分将
转换为文档中显示的(块)公式。记住,这些
公式仍在注释中,因此除了显示为
公式外,不做任何事情。如果哈希符号后面紧跟着的是正在运行的文本,则它将被转换为段落文本。在所有情况下,当哈希字符紧跟在
后面的变量名(如\ x)之后时,该变量的值将在
处被替换。当一个哈希字符紧接着一个表达式
被类似于{x+2}的松鼠大括号包围时,将在该位置计算和替换


表达式(python赋值)
本模块的主要重点。显然,它们在脚本中的计算结果是
正常的,因此变量的值可以一直作为
重复使用,但是当它们出现在文档中时,它们显示为方程式
块,最多可以有三个步骤(显示过程)。如果它是一个
简单的赋值,比如"x=10",它们看起来只有一个步骤,
,因为没有要显示的过程。如果赋值包含要计算的值,但没有像"x=10+5/2"这样的变量引用,或者如果它包含像"x=x\u prime"这样的单个变量引用,则过程将只有两个步骤,第一步是公式,第二步是结果。如果方程既有要求值的东西,又有变量引用,如``x=5*x_prime+10``
,那么它将有三个步骤:方程本身,变量引用被其值替换的方程,以及结果。这些公式可以使用其结尾处的注释进行自定义(见下文)。

第一种选择是单位。如果
编写类似于单元(名称或名称表达式)的内容,如
``n/m**2`,则它们将正确显示为结果旁边的单元,并且每当
引用该变量时,都会显示为其值旁边的单元。下一个选项是步骤的显示类型。如果选项是一个单美元符号,则公式将
内联,如果它有多个单步,则每一步旁边都会出现
其他步骤。如果是双美元符号,方程式将显示为块
(居中)方程式。另一个选项是步骤覆盖。如果是像"12"这样的
数字序列,则只会显示与该数字对应的步骤(在本例中为步骤1和2)。最后一个选项是矩阵和数组
截止大小。如果矩阵的
大小大于10乘10,则将其截断并显示其中的点;如果矩阵的
元素大于10,则将其截断。要覆盖此数字,选项是字母m后跟
数字,如"m6"。如果选项以类似"这是一个注释"的哈希符号开头,则在最后一个步骤旁边将显示一个小注释。


,就像"comment"是
作为一个真正的评论。它不会做任何事情。

图片::https://github.com/k1dv5/docal/raw/dev/common/images/word-in.jpg"word document input"
:alt:word document input

,然后将计算结果写入``foo.py``文件中``foo.docx`
。python

科学函数所必需的科学函数
从数学导入*









第一个三角形的第一边是
x 1=5




1=SqrT(x咞2+y咞1咞1=SqrT(x咞1咞2+y咞1咞2+y咞1咞2咞2咞m

第二个三角形的边的长度为
x咞2=x咞2+y咞2咞2咞2咞2咞m,13



;然后,第二个三角形的我们可以说第一个的斜边如果我们运行命令,那么长1的三角形比长2的三角形长。codeblock::shell
docal foo.py foo.docx

将出现名为"foo out.docx"的第三个文件。会是这样的。

…图片::https://github.com/k1dv5/docal/raw/master/common/images/word-out.jpg"word文档输出"
:alt:word文档输出


已知问题
====

-不能使用需要缩进的python语句。这是因为docal
逐行读取脚本并使用exec进行必要的
赋值,并且由于无法继续使用exec执行已缩进的代码,
这将导致错误。如果你有解决这个问题的想法,请随时与我联系。

-todo:a nice gui


credits
----


>这个包是用cookiecutter和"audreyr/cookiecutter pypackage"项目模板创建的。

_ Cookiecutter:https://github.com/audreyr/Cookiecutter
。_`` audreyr/cookiecutter pypackage``:https://github.com/audreyr/cookiecutter pypackage


==
=
历史
==



<0.4.0(2019-02-08)
----

*pypi上的第一个版本。



欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
空间计数器在Java中不起作用   json在java中表示XPath列表的最佳方式   java报警服务接收器安卓   java注入bean在自定义的all存储库中   java从迁移到Spring MVC 4+Hibernate5   JavaEclipseIDE透视图被缓存,更改没有任何影响   java Hibernate:在将对象插入Derby嵌入式数据库时引发SQLGrammerException   适用于mp4或mp3文件的java Exoplayer自动流媒体质量   安卓如何在java的静态方法中使用这个关键字?   SSL服务器端的spring主机名验证+Tomcat和Java 8   java Eclipse强制刷新IDs   java有可能返回Mono。只是从GetMapping(“/”)处理程序中获取(“索引”)吗?   arraylist当我用java编程时,我遇到了这个错误,有人能告诉我到底出了什么问题吗?   java如何更改Apache CXF web服务中的日期时间格式   Jfoenix ChipView中的java多线程   java任务在Spark上不可序列化