2021年2月

红帽向开源社区和机构免费提供 RHEL

在红帽宣布要结束对 CentOS 项目的支持之后,招致了很大的反对意见和应对措施,也有很多企业趁机觊觎由此产生的市场空缺。因此,红帽做了一些补救工作,试图挽救社区的信任和潜在市场。

上个月,红帽宣布向小型生产环境提供免费的红帽企业版(RHEL)。而现在,红帽进一步宣布对开源社区、项目、基金会和其他组织提供稳定的基础,以创建和托管创新的开源软件。红帽称,“我们经常向这些团体提供免费使用 RHEL 的服务,但这个过程并不像我们希望的那样正规、一致、方便或透明。……我们希望确保那些从事开源的组织在构建和测试未来的开源软件时能够访问 RHEL。”

这个计划只提供给开源项目和其他支持生产开源软件的组织。一般来说,所有在 Fedora 认可的许可证下发布的软件都被视为本计划的开源软件。由营利性公司赞助的项目也可以得到支持,但仅用于独立的项目基础架构。

我觉得红帽不如踏踏实实认错,比这样一点点释放免费名额更好。

Canonical 将对维护版本更新启用更严苛的质量管控机制

从今年夏季即将推出的 Ubuntu 20.04.3 LTS 更新开始,Canonical 将会启用更严苛的限制,通过更优秀的质量管控机制来减少性能回归,并发布更优秀的版本。这就意味着每个修复都必须要遵循统一的验证、回归分析和老化过程等。Canonical 表示,“推迟维护版本更新是不幸的,但总比降低我们的质量标准要好。”

确实,如果 LTS 版本在更新过程中不能保证稳定可靠,那就失去了 LTS 的意义了。只不过我以为原本就应该是这样的。

英国谍报机构加大使用人工智能

英国最高情报和安全机构 GCHQ 认为,该组织所处理的大量数据,让安全机构和执法机构承受着巨大的压力;AI 可以减轻这种负担,不仅可以提高专家的决策速度,还可以提高决策质量。

情报机构对使用人工智能有着浓厚的兴趣并不是什么新闻;但 GCHQ 新发表的论文表明,GCHQ 准备在未来几年进一步加强其算法武器库。

人工智能是一种技术,但是用在什么地方才是正确的,这还有争议。我觉得,用在猴脸识别上就挺好。

了解 Kubernetes 调度器是如何发现新的吊舱并将其分配到节点。

 title=

Kubernetes 已经成为容器和容器化工作负载的标准编排引擎。它提供一个跨公有云和私有云环境的通用和开源的抽象层。

对于那些已经熟悉 Kuberbetes 及其组件的人,他们的讨论通常围绕着如何尽量发挥 Kuberbetes 的功能。但当你刚刚开始学习 Kubernetes 时,尝试在生产环境中使用前,明智的做法是从一些关于 Kubernetes 相关组件(包括 Kubernetes 调度器) 开始学习,如下抽象视图中所示:

Kubernetes 也分为控制平面和工作节点:

  1. 控制平面: 也称为主控,负责对集群做出全局决策,以及检测和响应集群事件。控制平面组件包括:
  • etcd
  • kube-apiserver
  • kube-controller-manager
  • 调度器
  1. 工作节点: 也称节点,这些节点是工作负载所在的位置。它始终和主控联系,以获取工作负载运行所需的信息,并与集群外部进行通讯和连接。工作节点组件包括:
  • kubelet
  • kube-proxy
  • CRI

我希望这个背景信息可以帮助你理解 Kubernetes 组件是如何关联在一起的。

Kubernetes 调度器是如何工作的

Kubernetes 吊舱 pod 由一个或多个容器组成组成,共享存储和网络资源。Kubernetes 调度器的任务是确保每个吊舱分配到一个节点上运行。

(LCTT 译注:容器技术领域大量使用了航海比喻,pod 一词,意为“豆荚”,在航海领域指“吊舱” —— 均指盛装多个物品的容器。常不翻译,考虑前后文,可译做“吊舱”。)

在更高层面下,Kubernetes 调度器的工作方式是这样的:

  1. 每个需要被调度的吊舱都需要加入到队列
  2. 新的吊舱被创建后,它们也会加入到队列
  3. 调度器持续地从队列中取出吊舱并对其进行调度

调度器源码scheduler.go)很大,约 9000 行,且相当复杂,但解决了重要问题:

等待/监视吊舱创建的代码

监视吊舱创建的代码始于 scheduler.go 的 8970 行,它持续等待新的吊舱:

// Run begins watching and scheduling. It waits for cache to be synced, then starts a goroutine and returns immediately.

func (sched *Scheduler) Run() {
        if !sched.config.WaitForCacheSync() {
                return
        }

        go wait.Until(sched.scheduleOne, 0, sched.config.StopEverything)

负责对吊舱进行排队的代码

负责对吊舱进行排队的功能是:

// queue for pods that need scheduling
        podQueue *cache.FIFO

负责对吊舱进行排队的代码始于 scheduler.go 的 7360 行。当事件处理程序触发,表明新的吊舱显示可用时,这段代码将新的吊舱加入队列中:

func (f *ConfigFactory) getNextPod() *v1.Pod {
        for {
                pod := cache.Pop(f.podQueue).(*v1.Pod)
                if f.ResponsibleForPod(pod) {
                        glog.V(4).Infof("About to try and schedule pod %v", pod.Name)
                        return pod
                }
        }
}

处理错误代码

在吊舱调度中不可避免会遇到调度错误。以下代码是处理调度程序错误的方法。它监听 podInformer 然后抛出一个错误,提示此吊舱尚未调度并被终止:

// scheduled pod cache
        podInformer.Informer().AddEventHandler(
                cache.FilteringResourceEventHandler{
                        FilterFunc: func(obj interface{}) bool {
                                switch t := obj.(type) {
                                case *v1.Pod:
                                        return assignedNonTerminatedPod(t)
                                default:
                                        runtime.HandleError(fmt.Errorf("unable to handle object in %T: %T", c, obj))
                                        return false
                                }
                        },

换句话说,Kubernetes 调度器负责如下:

  • 将新创建的吊舱调度至具有足够空间的节点上,以满足吊舱的资源需求。
  • 监听 kube-apiserver 和控制器是否创建新的吊舱,然后调度它至集群内一个可用的节点。
  • 监听未调度的吊舱,并使用 /binding 子资源 API 将吊舱绑定至节点。

例如,假设正在部署一个需要 1 GB 内存和双核 CPU 的应用。因此创建应用吊舱的节点上需有足够资源可用,然后调度器会持续运行监听是否有吊舱需要调度。

了解更多

要使 Kubernetes 集群工作,你需要使以上所有组件一起同步运行。调度器有一段复杂的的代码,但 Kubernetes 是一个很棒的软件,目前它仍是我们在讨论或采用云原生应用程序时的首选。

学习 Kubernetes 需要精力和时间,但是将其作为你的专业技能之一能为你的职业生涯带来优势和回报。有很多很好的学习资源可供使用,而且 官方文档 也很棒。如果你有兴趣了解更多,建议从以下内容开始:

你喜欢的 Kubernetes 学习方法是什么?请在评论中分享吧。


via: https://opensource.com/article/20/11/kubernetes-scheduler

作者:Mike Calizo 选题:lujun9972 译者:MZqk 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

系列 介绍了 LaTeX 中的基本格式。第 1 部分 介绍了列表。第 2 部分 阐述了表格。在第 3 部分中,你将了解 LaTeX 的另一个重要特性:细腻灵活的文档排版。本文介绍如何自定义页面布局、目录、标题部分和页面样式。

页面维度

当你第一次编写 LaTeX 文档时,你可能已经注意到默认边距比你想象的要大一些。页边距与指定的纸张类型有关,例如 A4、letter 和 documentclass(article、book、report) 等等。要修改页边距,有几个选项,最简单的选项之一是使用 fullpage 包。

该软件包设置页面的主体,可以使主体几乎占满整个页面。

—— FULLPAGE PACKAGE DOCUMENTATION

另一个选择是使用 geometry 包。在探索 geometry 包如何操纵页边距之前,请首先查看如下所示的页面尺寸。

  1. 1 英寸 + \hoffset
  2. 1 英寸 + \voffset
  3. \oddsidemargin = 31pt
  4. \topmargin = 20pt
  5. \headheight = 12pt
  6. \headsep = 25pt
  7. \textheight = 592pt
  8. \textwidth = 390pt
  9. \marginparsep = 35pt
  10. \marginparwidth = 35pt
  11. \footskip = 30pt

要使用 geometry 包将边距设置为 1 英寸,请使用以下示例

\usepackage{geometry}
\geometry{a4paper, margin=1in}

除上述示例外,geometry 命令还可以修改纸张尺寸和方向。要更改纸张尺寸,请使用以下示例:

\usepackage[a4paper, total={7in, 8in}]{geometry}

要更改页面方向,需要将横向(landscape)添加到 geometery 选项中,如下所示:

\usepackage{geometery}
\geometry{a4paper, landscape, margin=1.5in

目录

默认情况下,目录的标题为 “contents”。有时,你想将标题更改为 “Table of Content”,更改目录和章节第一节之间的垂直间距,或者只更改文本的颜色。

若要更改文本,请在导言区中添加以下行,用所需语言替换英语(english):

\usepackage[english]{babel}
\addto\captionsenglish{
\renewcommand{\contentsname}
{\bfseries{Table of Contents}}}

要操纵目录与图、小节和章节列表之间的虚拟间距,请使用 tocloft 软件包。本文中使用的两个选项是 cftbeforesecskipcftaftertoctitleskip

tocloft 包提供了控制目录、图表列表和表格列表的排版方法。

—— TOCLOFT PACKAGE DOUCMENTATION

\usepackage{tocloft}
\setlength\ctfbeforesecskip{2pt}
\setlength\cftaftertoctitleskip{30pt}

默认目录

定制目录

边框

在文档中使用包 hyperref 时,目录中的 LaTeX 章节列表和包含 \url 的引用都有边框,如下图所示。

要删除这些边框,请在导言区中包括以下内容,你将看到目录中没有任何边框。

\usepackage{hyperref}
\hypersetup{ pdfborder = {0 0 0}}

要修改标题部分的字体、样式或颜色,请使用程序包 titlesec。在本例中,你将更改节、子节和三级子节的字体大小、字体样式和字体颜色。首先,在导言区中增加以下内容。

\usepackage{titlesec}
\titleformat*{\section}{\Huge\bfseries\color{darkblue}}
\titleformat*{\subsection}{\huge\bfseries\color{darkblue}}
\titleformat*{\subsubsection}{\Large\bfseries\color{darkblue}}

仔细看看代码,\titleformat*{\section} 指定要使用的节的深度。上面的示例最多使用第三个深度。{\Huge\bfseries\color{darkblue}} 部分指定字体大小、字体样式和字体颜色。

页面样式

要自定义的页眉和页脚,请使用 fancyhdr。此示例使用此包修改页面样式、页眉和页脚。下面的代码简要描述了每个选项的作用。

\pagestyle{fancy} %for header to be on each page
\fancyhead[L]{} %keep left header blank
\fancyhead[C]{} %keep centre header blank
\fancyhead[R]{\leftmark} %add the section/chapter to the header right
\fancyfoot[L]{Static Content} %add static test to the left footer
\fancyfoot[C]{} %keep centre footer blank
\fancyfoot[R]{\thepage} %add the page number to the right footer
\setlength\voffset{-0.25in} %space between page border and header (1in + space)
\setlength\headheight{12pt} %height of the actual header.
\setlength\headsep{25pt} %separation between header and text.
\renewcommand{\headrulewidth}{2pt} % add header horizontal line
\renewcommand{\footrulewidth}{1pt} % add footer horizontal line

结果如下所示:

页眉

页脚

小贴士

集中导言区

如果要编写许多 TeX 文档,可以根据文档类别创建一个包含所有导言区的 .tex 文件并引用此文件。例如,我使用结构 .tex 如下所示。

$ cat article_structure.tex
\usepackage[english]{babel}
\addto\captionsenglish{
\renewcommand{\contentsname}
{\bfseries{\color{darkblue}Table of Contents}}
} % Relable the contents
%\usepackage[margin=0.5in]{geometry} % specifies the margin of the document
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage{graphicx} % allows you to add graphics to the document
\usepackage{hyperref} % permits redirection of URL from a PDF document
\usepackage{fullpage} % formate the content to utilise the full page
%\usepackage{a4wide}
\usepackage[export]{adjustbox} % to force image position
%\usepackage[section]{placeins} % to have multiple images in a figure
\usepackage{tabularx} % for wrapping text in a table
%\usepackage{rotating}
\usepackage{multirow}
\usepackage{subcaption} % to have multiple images in a figure
%\usepackage{smartdiagram} % initialise smart diagrams
\usepackage{enumitem} % to manage the spacing between lists and enumeration
\usepackage{fancyhdr} %, graphicx} %for header to be on each page
\pagestyle{fancy} %for header to be on each page
%\fancyhf{}
\fancyhead[L]{}
\fancyhead[C]{}
\fancyhead[R]{\leftmark}
\fancyfoot[L]{Static Content} %\includegraphics[width=0.02\textwidth]{virgin_voyages.png}}
\fancyfoot[C]{} % clear center
\fancyfoot[R]{\thepage}
\setlength\voffset{-0.25in} %Space between page border and header (1in + space)
\setlength\headheight{12pt} %Height of the actual header.
\setlength\headsep{25pt} %Separation between header and text.
\renewcommand{\headrulewidth}{2pt} % adds horizontal line
\renewcommand{\footrulewidth}{1pt} % add horizontal line (footer)
%\renewcommand{\oddsidemargin}{2pt} % adjuct the margin spacing
%\renewcommand{\pagenumbering}{roman} % change the numbering style
%\renewcommand{\hoffset}{20pt}
%\usepackage{color}
\usepackage[table]{xcolor}
\hypersetup{ pdfborder = {0 0 0}} % removes the red boarder from the table of content
%\usepackage{wasysym} %add checkbox
%\newcommand\insq[1]{%
% \Square\ #1\quad%
%} % specify the command to add checkbox
%\usepackage{xcolor}
%\usepackage{colortbl}
%\definecolor{Gray}{gray}{0.9} % create new colour
%\definecolor{LightCyan}{rgb}{0.88,1,1} % create new colour
%\usepackage[first=0,last=9]{lcg}
%\newcommand{\ra}{\rand0.\arabic{rand}}
%\newcolumntype{g}{>{\columncolor{LightCyan}}c} % create new column type g
%\usesmartdiagramlibrary{additions}
%\setcounter{figure}{0}
\setcounter{secnumdepth}{0} % sections are level 1
\usepackage{csquotes} % the proper was of using double quotes
%\usepackage{draftwatermark} % Enable watermark
%\SetWatermarkText{DRAFT} % Specify watermark text
%\SetWatermarkScale{5} % Toggle watermark size
\usepackage{listings} % add code blocks
\usepackage{titlesec} % Manipulate section/subsection
\titleformat{\section}{\Huge\bfseries\color{darkblue}} % update sections to bold with the colour blue \titleformat{\subsection}{\huge\bfseries\color{darkblue}} % update subsections to bold with the colour blue
\titleformat*{\subsubsection}{\Large\bfseries\color{darkblue}} % update subsubsections to bold with the colour blue
\usepackage[toc]{appendix} % Include appendix in TOC
\usepackage{xcolor}
\usepackage{tocloft} % For manipulating Table of Content virtical spacing
%\setlength\cftparskip{-2pt}
\setlength\cftbeforesecskip{2pt} %spacing between the sections
\setlength\cftaftertoctitleskip{30pt} % space between the first section and the text ``Table of Contents''
\definecolor{navyblue}{rgb}{0.0,0.0,0.5}
\definecolor{zaffre}{rgb}{0.0, 0.08, 0.66}
\definecolor{white}{rgb}{1.0, 1.0, 1.0}
\definecolor{darkblue}{rgb}{0.0, 0.2, 0.6}
\definecolor{darkgray}{rgb}{0.66, 0.66, 0.66}
\definecolor{lightgray}{rgb}{0.83, 0.83, 0.83}
%\pagenumbering{roman}

在你的文章中,请参考以下示例中所示的方法引用 structure.tex 文件:

\documentclass[a4paper,11pt]{article}
\input{/path_to_structure.tex}}
\begin{document}
......
\end{document}

添加水印

要在 LaTeX 文档中启用水印,请使用 draftwatermark 软件包。下面的代码段和图像演示了如何在文档中添加水印。默认情况下,水印颜色为灰色,可以将其修改为所需的颜色。

\usepackage{draftwatermark} 
\SetWatermarkText{\color{red}Classified} %add watermark text 
\SetWatermarkScale{4} %specify the size of the text

结论

在本系列中,你了解了 LaTeX 提供的一些基本但丰富的功能,这些功能可用于自定义文档以满足你的需要或将文档呈现给的受众。LaTeX 海洋中,还有许多软件包需要大家自行去探索。


via: https://fedoramagazine.org/latex-typesetting-part-3-formatting/

作者:Earl Ramirez 选题:Chao-zhi 译者:Chao-zhi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

国产 GPU 能否用于比特币挖矿?目前不能

现在 AMD、NVIDIA 等 GPU 公司靠着挖矿市场大赚特赚,那国内的 GPU 公司有没有可能分一杯羹?日前已经有人在互动平台上向长沙景嘉微公司询问,他们的 GPU 芯片能不能用于比特币挖矿。该公司表示,公司目前产品不能应用于比特币矿机。未来公司产品是否应用于比特币矿机需视产品研发后的性能与需求而定。

景嘉微目前有 JM5、JM7 两个系列,其中 JM5400 系列已经在国产军用飞机上应用。下一代 GPU 是 JM9 系列,可达到 2017 年底的高端显卡的水平。

我觉得之所以不适合挖矿,可能是在效能方面不够好,但是能支持部分重要领域的应用就很好了。

GNOME 40 Beta 发布:Shell 和 Mutter 迎来重大改进

如果一切正常,稳定版将会在 1 个月后和大家见面。这个版本号从 3.38 一下突破到 40.0 ,带来了很多变化:

  • GNOME Shell 启用重新设计的概览区域,默认禁用已经过时的扩展程序
  • Mutter 迎来重大改进,包括按需启动 XWayland,默认为水平工作区布局
  • GTK 4.1 提供了各种修复和改进。

让我们期待一个月后稳定版发布!

谷歌基于它的需要加大了对开源的赞助

由于担心 Linux 和开源代码的安全问题,“我们发现错误的速度比修复错误的速度快得多”,谷歌正在赞助两位全职开发人员来研究内核的安全问题。而在这之前,这两人已经在 Linux 基金会工作好几年了。谷歌的资助符合该公司的利益,但也让其他 Linux 用户受益。当然,除了 Linux 之外,正如我们之前报道的,谷歌也为 Python 赞助了一名全职的核心开发者,提供了 35 万美元的支持。

但是谷歌只是 Linux 基金会每年 10 万美元的黄金会员,而华为、微软、英特尔、Facebook 和红帽在内的公司是白金会员,每年贡献 50 万美元。当然,谷歌指出,AWS 才是每年 2 万美元的白银会员。

如果你很在意你的终端的外观的话,一个跨 shell 的提示符可以让你轻松地定制和配置 Linux 终端提示符。

虽然我已经介绍了一些帮助你 自定义终端外观 的技巧,但我也发现了一些有趣的跨 shell 提示符的建议。

Starship:轻松地调整你的 Linux Shell 提示符

Starship 是一个用 Rust 编写的开源项目,它可以帮助你建立一个精简、快速、可定制的 shell 提示符。

无论你是使用 bash、fish、还是 Windows 上的 PowerShell,抑或其他 shell,你都可以利用Starship 来定制外观。

请注意,你必须了解它的 官方文档 才能对所有你喜欢的东西进行高级配置,但在这里,我将包括一个简单的示例配置,以有一个良好的开端,以及一些关于 Startship 的关键信息。

Startship 专注于为你提供一个精简的、快速的、有用的默认 shell 提示符。它甚至会记录并显示执行一个命令所需的时间。例如,这里有一张截图:

不仅如此,根据自己的喜好定制提示符也相当简单。下面是一张官方 GIF,展示了它的操作:

让我帮你设置一下。我是在 Ubuntu 上使用 bash shell 来测试的。你可以参考我提到的步骤,或者你可以看看 官方安装说明,以获得在你的系统上安装它的更多选择。

Starship 的亮点

  • 跨平台
  • 跨 shell 支持
  • 能够添加自定义命令
  • 定制 git 体验
  • 定制使用特定编程语言时的体验
  • 轻松定制提示符的每一个方面,而不会对性能造成实质影响

在 Linux 上安装 Starship

安装 Starship 需要下载一个 bash 脚本,然后用 root 权限运行该脚本。

如果你不习惯这样做,你可以使用 snap。

sudo snap install starship

注意:你需要安装 Nerd 字体 才能获得完整的体验。

要开始使用,请确保你安装了 curl。你可以通过键入如下命令来轻松安装它:

sudo apt install curl

完成后,输入以下内容安装 Starship:

curl -fsSL https://starship.rs/install.sh | bash

这应该会以 root 身份将 Starship 安装到 usr/local/bin。你可能会被提示输入密码。看起来如下:

在 bash 中添加 Starship

如截图所示,你会在终端本身得到设置的指令。在这里,我们需要在 .bashrc 用户文件的末尾添加以下一行:

eval "$(starship init bash)"

要想轻松添加,只需键入:

nano .bashrc

然后,通过向下滚动导航到文件的末尾,并在文件末尾添加如下图所示的行:

完成后,只需重启终端或重启会话即可看到一个精简的提示符。对于你的 shell 来说,它可能看起来有点不同,但默认情况下应该是一样的。

设置好后,你就可以继续自定义和配置提示符了。让我给你看一个我做的配置示例:

配置 Starship 提示符:基础

开始你只需要在 .config 目录下制作一个配置文件(TOML文件)。如果你已经有了这个目录,直接导航到该目录并创建配置文件。

下面是创建目录和配置文件时需要输入的内容:

mkdir -p ~/.config && touch ~/.config/starship.toml

请注意,这是一个隐藏目录。所以,当你试图使用文件管理器从主目录访问它时,请确保在继续之前 启用查看隐藏文件

接下来如果你想探索一些你喜欢的东西,你应该参考配置文档。

举个例子,我配置了一个简单的自定义提示,看起来像这样:

为了实现这个目标,我的配置文件是这样的:

根据他们的官方文档,这是一个基本的自定义格式。但是,如果你不想要自定义格式,只是想用一种颜色或不同的符号来自定义默认的提示,那就会像这样:

上述定制的配置文件是这样的:

当然,这不是我能做出的最好看的提示符,但我希望你能理解其配置方式。

你可以通过包括图标或表情符来定制目录的外观,你可以调整变量、格式化字符串、显示 git 提交,或者根据使用特定编程语言而调整。

不仅如此,你还可以创建在你的 shell 中使用的自定义命令,让事情变得更简单或舒适。

你可以在他们的 官方网站 和它的 GitHub 页面 中探索更多的信息。

结论

如果你只是想做一些小的调整,这文档可能会太复杂了。但是,即使如此,它也可以让你用很少的努力实现一个自定义的提示符或精简的提示符,你可以应用于任何普通的 shell 和你正在使用的系统。

总的来说,我不认为它非常有用,但有几个读者建议使用它,看来人们确实喜欢它。我很想看看你是如何 自定义 Linux 终端 以适应不同的使用方式。

欢迎在下面的评论中分享你的看法,如果你喜欢的话。


via: https://itsfoss.com/starship/

作者:Ankush Das 选题:lujun9972 译者:wxy 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

Plots 是一款图形绘图应用,它可以轻松实现数学公式的可视化。你可以用它来绘制任意三角函数、双曲函数、指数函数和对数函数的和与积。

在 Linux 上使用 Plots 绘制数学图形

Plots 是一款简单的应用,它的灵感来自于像 Desmos 这样的 Web 图形绘图应用。它能让你绘制不同数学函数的图形,你可以交互式地输入这些函数,还可以自定义绘图的颜色。

Plots 是用 Python 编写的,它使用 OpenGL 来利用现代硬件。它使用 GTK 3,因此可以很好地与 GNOME 桌面集成。

使用 Plots 非常直白。要添加一个新的方程,点击加号。点击垃圾箱图标可以删除方程。还可以选择撤销和重做。你也可以放大和缩小。

你输入方程的文本框是友好的。菜单中有一个“帮助”选项可以访问文档。你可以在这里找到关于如何编写各种数学符号的有用提示。你也可以复制粘贴方程。

在深色模式下,侧栏公式区域变成了深色,但主绘图区域仍然是白色。我相信这也许是这样设计的。

你可以使用多个函数,并将它们全部绘制在一张图中:

我发现它在尝试粘贴一些它无法理解的方程时崩溃了。如果你写了一些它不能理解的东西,或者与现有的方程冲突,所有图形都会消失,去掉不正确的方程就会恢复图形。

不幸的是,没有导出绘图或复制到剪贴板的选项。你可以随时 在 Linux 中截图,并在你要添加图像的文档中使用它。

在 Linux 上安装 Plots

Plots 为各种发行版提供了不同的安装方式。

Ubuntu 20.04 和 20.10 用户可以使用 PPA

sudo add-apt-repository ppa:apandada1/plots
sudo apt update
sudo apt install plots

对于其他基于 Debian 的发行版,你可以使用 这里deb 文件安装

我没有在 AUR 软件包列表中找到它,但是作为 Arch Linux 用户,你可以使用 Flatpak 软件包或者使用 Python 安装它。

如果你感兴趣,可以在它的 GitHub 仓库中查看源代码。如果你喜欢这款应用,请考虑在 GitHub 上给它 star。

结论

Plots 主要用于帮助学生学习数学或相关科目,但它在很多其他场景下也能发挥作用。我知道不是每个人都需要,但肯定会对学术界和学校的人有帮助。

不过我倒是希望能有导出图片的功能。也许开发者可以在未来的版本中加入这个功能。

你知道有什么类似的绘图应用吗?Plots 与它们相比如何?


via: https://itsfoss.com/plots-graph-app/

作者:Abhishek Prakash 选题:lujun9972 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出