「Graphviz」- 学习指南

=
研究对象
Graphviz
研究工具
能查看的资料差不多也只剩官方文档了:https://www.graphviz.org/documentation/ 中文类的介绍书还没有找到。不过有一本英文的:Graphviz
研究目标
通过 Graphviz 完成绘图;[……]

READ MORE

「GRAPHVIZ」- 概念术语

DOT 语言
Wikipedia/DOT Graphviz/The Dot Language
以下是定义 DOT 语言的抽象语法。关键字以粗体显示,非关键字以普通文本显示;关键字型的文字字符用单引号引用;括号((、))表示需要时分组;方括号([、])表示为可选项;垂直条(|)表示单选,即有且只能有一个。语法如下:

graph : [ strict ] (graph | digraph) [ ID ] ‘{‘ stmt_list ‘}’
stmt_list : [ stmt [ ‘;’ ] stmt_list ]
stmt : node_stmt
| edge_stmt
| attr_stmt
| ID ‘=’ ID
| subgraph
attr_stmt : (graph | node | edge) attr_list
attr_list : ‘[‘ [ a_list ] ‘]’ [ attr_list ]
a_list : ID ‘=’ ID [ (‘;’ | ‘,’) ] [ a_list ]
edge_stmt : (node_id | subgraph) edgeRHS [ attr_list ]
edgeRHS : edgeop (node_id | subgraph) [ edgeRHS ]
node_stmt : node_id [ attr_list ]
node_id : ID [ port ]
port : ‘:’ ID [ ‘:’ compass_pt ]
| ‘:’ compass_pt
subgraph : [ subgraph [ ID ] ] ‘{‘ stmt_list ‘}’
compass_pt : (n | ne | e | se | s | sw | w | nw | c | _)

关键字node, edge, graph, digraph, subgraph, strict是大小写无关的。还要注意,允许的 compass_pt 的值不是关键字,所以这些字符串可以在其他地方用作普通标识符,相反,解析器实际上会接受任何标识符;
Layout
About / Graph Visualization / Layout
dot,hierarchical or layered drawings of directed graphs.
neato,”spring model” layouts.
fdp,stands for Force-Directed Placement.
sfdp,stands for Scalable Force-Directed Placement.[……]

READ MORE

「Graphviz」- 安装

从发行版的源中安装

# CentOS
yum install graphviz

# Kali GNU/Linux Rolling
apt-get install graphviz

使用源码编译安装
参考BLFS/Graphviz-2.38.0
安装的可执行程序
acyclic 是一个过滤器,它将有向图作为输入,并输出具有相反边的足够边的图的副本,以使图非循环。
bcomps 将图分解成双连通的组件,将组件打印到标准输出。
ccomps 将图分解成其连接的组件,将组件打印到标准输出。
cluster 以DOT格式作为输入图形,找到节点集群并用此信息扩充图形。
dijkstra 读取图形流,并计算每个节点距离sourcenode的距离。
edgepaint 边缘着色消除交叉边缘。
gc 是wc的一个图形模拟,它将标准输出打印到输入文件中包含的节点、边、连接组件、簇的数量。如果给出多个图,它还会打印所有图的总数。
gvcolor 是从初始种子值设置节点颜色的过滤器。颜色从尾部到头部沿着边缘流动,并且在节点处被平均(作为HSB向量)。
gvgen 生成各种简单的,有规律的抽象图。
gvmap 以DOT格式输入图形,找到节点集群,并以xdot格式将集群高亮显示为地理样式的地图。
gvmap.sh 是运行gvmap的管道。
gvpack 读入一系列图形,将这些图形组合成一个单一的布局,并产生一个单一的图形作为输入图形的联合。
nop 读取图形流,并在标准输出上打印(规范)格式的每一个。 如果没有给出文件,它从stdin读取。
osage 绘制聚类图。作为输入,它将采用DOT格式的任何图形。
prune 以点使用的相同格式读取有向图,并通过选项删除在命令行上指定的节点上的子图。
sccmap 将有向图分解为强连通分量和分量间关系的辅助映射。在此映射中,每个组件都折叠为一个节点。生成的图形打印到标准输出。
tred 计算有向图的传递性减少,并将结果图打印到标准输出。这消除了传递性隐含的边缘。 节点和子图不受影响。
unflatten 是dot的预处理器,用于改善具有多叶或断开节点的图的纵横比。 这种图形的通常布局通常非常宽或很高。
与布局有关的命令
twopi 使用「径向布局(radial layout)」绘制图形。 基本上,选择一个节点作为中心,放在原点。剩下的节点放置在以原点为中心的一系列同心圆上,每一个圆圈的距离都是固定的。
circo 使用「圆形布局(circular layout)」绘制图形。
dot 绘制「有向图(directed graph)」。 它适用于[……]

READ MORE

「Emacs」-配置 Graphviz、DOT 语言支持

有人做了graphviz-dot-mode,可以在Emacs中支持DOT语言、字体锁定、缩进、生成预览图、错误定位,支持Emacs的版本有GNU Emacs和XEmacs。
如下截图:

功能特征

支持DOT语言;
字体锁定;
缩进;
预览图;
错误定位;

支持Emacs的版本有GNU Emacs和XEmacs。
安装graphviz-dot-mode包
(1). 先到GitHub克隆grphviz-dot-mode,主要的还是graphviz-dot-mode.el文件;
(2). 然后在$HOME/.emacs配置文件中引入graphviz-dot-mode.el文件:

;; <path>为包含graphviz-dot-mode.el文件的文件夹;
(add-to-list ‘load-path “<path>”)
(require ‘graphviz-dot-mode)

详细的安装方法可以参考源码目录下的REDEME.md文件中的说明。
使用方法及快捷键
使用方法依旧可以参考README.md文件中的说明,这里只做简单的说明。
字体锁定使自动的;缩进和其他模式中是相同的,tab、M-j、C-M-q; 注释和其他模式也是相同的M-;; 使用M-x compile或者C-c c进行编译,之后M-x next-error也会起作用; 使用C-c p进行编译后预览图片;
相关的地址
项目在GitHub的地址:https://github.com/ppareit/graphviz-dot-mode 作者个人主页:http://ppareit.github.io/graphviz-dot-mode/ YouTube视频:https://www.youtube.com/watch?v=WEEuaN62hNI
参考文献
GitHub/graphviz-dot-mode:https://github.com/ppareit/graphviz-dot-mode#using-graphviz-dot-mode 利用emacs+graphviz绘制流程图:http://blog.csdn.net/abcamus/article/details/52878248?utm_source=itdadao&utm_medium=referral[……]

READ MORE

「Graphviz」- 使用以及 DOT 语言入门

问题描述
该笔记将记录:通过 Graphviz 绘图的快速入门,常用的图形控制,常见问题的解决办法;
解决方案
使用 Graphviz 绘制图的主要工作集中在编写 DOT 脚本文件,Graphviz 通过解析 DOT 脚本文件产生图。
./diagram.dot 是个简单的 DOT 脚本,通过 dot -Tjpg ./diagram.dot > /tmp/demo.png 命令生成图片:
上面是一个简单的示例,当然这只是一个极其简单的示例,只是为了稍作演示;
各个节点的样式也是可以自定义的,下面看一个稍微复杂的例子:

digraph structs {
// 定义节点的形状,矩形
node [shape=record];

// 定义节点及节点的属性、样式等;
struct1 [shape = record, label = “<f0> left|<f1> mid dle|<f2> right”];
struct2 [shape = record, label = “<f0> First|<f1> Second”];
struct3 [shape = record, label = “Hello\nWorld |{ b |{<f0> c|<d3> d|e}| f}| g | h”];

// 定义节点之间的关系;
struct1:f0 -> struct2;
struct1:f2 -> struct3:d3;
struct1 -> struct3:f0;
}

依旧执行图生成命令:

dot -TPNG /tmp/demo.dot > /tmp/demo.png

执行该命令后生成的 PNG 图的内容如下:
常见使用示例
Graphviz (dot) examples
参考文献
CSDN/graphviz 简介[……]

READ MORE

「Graphviz」- 常用设置

Graphviz Gallery
https://graphviz.org/gallery/ https://graphviz.gitlab.io/gallery/
Node
Node Shapes/Styles for Nodes 节点样式(style=):filled, invisible, diagonals, rounded, dashed, dotted, solid, bold
边框(Border)样式
Node Shapes/Polygon-based Nodes 边框形状(shape=):box; point; plaintext; plain; triangle; …
How can I hide the node boundary in graphviz? 去除边框:node [shape=plaintext]
背景(Background)填充
why doesn’t fillcolor work with graphviz? – Stack Overflow

nodeEdge0 [fixedsize=true,shape=diamond,label=”.Nojjjj label.”, fillcolor=red, style=filled]

字体(Font)配置
doxygen – how to change default font size for graphviz? – Stack Overflow Graphviz: change font for the whole graph? – Stack Overflow doxygen – how to change default font size for graphviz? – Stack Overflow

strict digraph {
graph [ bgcolor=lightgray, resolution=128, fontname=Arial, fontcolor=blue, fontsize=12 ];
node [ fontname=Arial, fontcolor=blue, fontsize=11];
edge [ fontname=Helvetica, fontcolor=red, fontsize=10 ];
}

补充说明:fontname、fontsize 需要单独设置,而无法进行全局设置;
Edge
方向(dir=):back; both; …[……]

READ MORE

「Graphviz」- 绘制表格

问题描述
我们经常需要绘制网络报文、内存数据结构等等的示意图。这些示意图,多半是种“表格“结构:

我们需要使用标记语言绘制这种表格(比如,在 Zim 中(总之我们有这种需求))。
该笔记将记录:如何使用 Graphviz 绘制表格,以及整理相关文档。
解决方法
我们这里以绘制在 x86 Protected Mode 下的 GDT 段描述符为例。
如下为绘制”GDT 段描述符表格“的 DOT 代码:

digraph G {

graph [pad=”0.5″, nodesep=”0.5″, ranksep=”2″, fontsize=10];
node [shape=plain, fontsize=10,
fontname=”Microsoft YaHei”];

Foo [label=<
<table border=”0″ cellborder=”1″ cellspacing=”0″ cellpadding=”2″>
<tr>
<td colspan=”0″ width=”10″ >00</td>
<td colspan=”0″>01</td>
<td colspan=”0″>02</td>
<td colspan=”0″>03</td>
<td colspan=”0″>04</td>
<td colspan=”0″>05</td>
<td colspan=”0″>06</td>
<td colspan=”0″>07</td>
<td colspan=”0″>08</td>
<td colspan=”0″>09</td>
<td colspan=”0″>10</td>
<td colspan=”0″>11</td>
<td colspan=”0″>12</td>[……]

READ MORE

「LibreOffice Draw」- 绘制网络拓扑图

问题描述
该笔记将记录:在 Linux 中,如何使用 LibreOffice Draw 绘制网路拓扑图,以及相关问题的解决方案。
解决方案
#1 安装 LibreOffice Draw 软件
安装这里就不再介绍。
可以到官网下载,或者从发行版的源中安装(APT, YUM…),或者自己编译。
#2 下载网络拓扑图标
到CISCO下载图标
注意:仅下载JPG文件,并将ZIP文件解压缩到文件夹中。
#3 启动LibreOffice Draw
– 点击「Tools」菜单,选择「Gallery」项,在出现的控件中点击「New Theme」按钮;
– 在「General」选项卡上,输入此图标集合的名称,例如“My Cisco Icons”。
– 在「Files」选项卡上,使用「Find Files…」按钮找到之前解压的图标目录,单击「Select」选择包含图标的目录,然后单击「Add All」以添加所有图标。
– 之后,在之前出现的「Gallery」中就会出现一个“My Cisco Icons”项,点击后就可以看到刚才添加的图标。拖动使用即可。

#4 安装更多的图标
从VRT Systems下载更多图标,向下滚动到页面末尾并下载最新文件。截至今天,请参阅下面的最新图标集文件:
– 点击「Tools」 >> 「Extension Manager」 >> 「Add」 >> 找到下载的.oxt文件。
– 重启LibreOffice Draw后,打开Gallery就可以看到新添加的图标:
注意事项
由于 LibreOffice 版本的不同,有些选项或者菜单的位置也相同。写该文章的时候,我使用的 LibreOffice 的版本为6.1.0.3,某些地方就和作者说的有所出入。
参考文献
How to draw a network diagram with Libre Office draw[……]

READ MORE

「Mermaid」

[……]

READ MORE

「Mermaid」- 安装与升级

Mermaid Cli on Debian
mermaid-js/mermaid-cli: Command line tool for the Mermaid library
我们安装 mermaid-cli 版本,用于与 Zim 集成:

// NPM 环境信息

# nvm ls
-> v13.14.0
default -> v13.14.0
node -> stable (-> v13.14.0) (default)
stable -> 13.14 (-> v13.14.0) (default)
iojs -> N/A (default)
unstable -> N/A (default)
lts/* -> lts/erbium (-> N/A)
lts/argon -> v4.9.1 (-> N/A)
lts/boron -> v6.17.1 (-> N/A)
lts/carbon -> v8.17.0 (-> N/A)
lts/dubnium -> v10.22.1 (-> N/A)
lts/erbium -> v12.19.0 (-> N/A)

// 执行安装命令

# npm install @mermaid-js/mermaid-cli[……]

READ MORE

「Mermaid」- 快速开始(学习笔记)

问题描述
Mermaid,基于 JavaScript 的绘图工具,通过文本定义图解内容,即:我们只需要编写“代码”来描述图解,而图解的创建、布局、渲染等等由工具完成。下面是通过 Mermaid 绘制的图解(复制于官方的 README.md 文件,还有很多其他样式):
| |
学习 Mermaid 的原因是:GitLab 支持渲染在 Markdown 中的 Mermaid 代码,因此我们可以通过 Mermaid 在 REAME.md 中插入图解,方便修改(相比原始的插入固定的图片的方式),因此我们才学习 Mermaid 的使用方法。(当然,除了 Mermaid 之外,GitLab 还支持 PlantUML,但是需要额外配置。既然都是学习“这种新知识”,使用哪个又有什么区别呢?我们认为 Mermaid 被默认启用,也是被官方认同的,所以就学习 Mermaid 使用方法)
该笔记将记录:Mermaid 的学习笔记,记录相关资源,整理常见问题及其处理方法。
学习资料
对于入门学习,可以参考如下文档: 1)mermaid/README.md at develop · mermaid-js/mermaid 2)Flowcharts – Basic Syntax
对于深入学习,可以参考 mermaid – Markdownish syntax for generating flowcharts, sequence diagrams, class diagrams, gantt charts and git graphs. 文档;
编辑工具
使用 Mermaid live editor 可以在线编辑与在线预览。
注释符号
双百分号(%%)
其他问题
如何设置图片大小?
Generated PDF width/height · Issue #35 · mermaidjs/mermaid.cli
只能通过 CSS 或者 命令行参数的形式指定图片大小,也就是说无法在语言中定义图片大小。
参考文献
How do I do comments? · Issue #47 · mermaid-js/mermaid Error: Failed to launch Chrome · Issue #39 · mermaidjs/mermaid.cli[……]

READ MORE

「Mermaid」- 常见问题处理

Running as root without –no-sandbox is not supported
mermaid-cli/linux-sandbox-issue.md at master · mermaid-js/mermaid-cli Solve “The SUID sandbox helper binary was found, but is not configured correctly.” (3 solutions!) | by Authmane Terki | Medium
问题描述
当运行 mmdc 命令时,产生如下错误:

# mmdc -i demo.mmd -o demo.png
/usr/lib/node_modules/@mermaid-js/mermaid-cli/node_modules/puppeteer/lib/cjs/pup
peteer/node/BrowserRunner.js:193
reject(new Error([
^

Error: Failed to launch the browser process!
[1223/191612.455014:FATAL:zygote_host_impl_linux.cc(117)] No usable sandbox! Upd
ate your kernel or see https://chromium.googlesource.com/chromium/src/+/master/d
ocs/linux/suid_sandbox_development.md for more information on developing with th
e SUID sandbox. If you want to live dangerously and need an immediate workaround
, you can try using –no-sandbox.
#0 0x56445399fb39 base::debug::CollectStackTrace()
#1 0x5644539124c3 base::debug::StackTrace::StackTrace()
#2 0x564453922c80 logging::LogMessage::~LogMessage()

原因分析
因为没有什么研究,所以原因我们也并不清楚(这各问题可是经常出现的)。
解决方法
第一步、创建 puppeteer-config.json 文件:

{
“args”: [“–no-sandbox”]
}

第二步、使用该[……]

READ MORE

「Microsoft Visio」- 流程图制作和绘图软件,Flowchart Maker and Diagramming Software

问题描述
该笔记将记录:与 Microsoft Visio 相关的内容,以及常见问题的解决方案。[……]

READ MORE

「Microsoft Visio」- 提取 .vss 文件内的全部图标(Linux)

问题描述
.vss,是 Microsoft Office Visio 2003 工具生成的绘图模板文件,如果保存为绘图是绘图文件,如果为模板就是这种 .vss 文件。
我们下载网元图标文件是 .vss 格式,里面包含各种图标。但我们是 Linux 桌面系统,无法使用 Visio 工具,因此需要提取其中的图标。
该笔记将记录:在 Linux 中,如何使用工具提取 .vss 文件中的全部图标,以及相关问题的处理方法。
解决方案
在 Linux 中,如何需要提取 .vss 文件的图标,使用 kakwa/libvisio2svg 工具。
在 Ubuntu 21.04 中,搜索无果,只能自行编译安装:

# vss2svg-conv

# apt-file search -x bin/vss2svg-conv

# apt-file search -x bin/vss
burp: /usr/bin/vss_strip
libvisio-tools: /usr/bin/vss2raw
libvisio-tools: /usr/bin/vss2text
libvisio-tools: /usr/bin/vss2xhtml

第一步、安装依赖

apt-get install -y librevenge-dev libvisio-dev libwmf-dev libxml2-dev
apt-get install -y gsfonts

# 安装 libemf2svg 类库(仓库未提供,只能自行编译安装)

apt-get install -y gcc g++ cmake
apt-get install -y libpng-dev libc6-dev libfontconfig1-dev libfreetype6-dev

git clone https://github.com/kakwa/libemf2svg.git
git checkout tags/1.1.0 -b 1.1.0

cmake . -DCMAKE_INSTALL_PREFIX=/usr/
make
make install

第二步、安装 Libvisio2svg 工具

git clone https://github.com/kakwa/libvisio2svg.git
git checkout tags/0.5.5 -b 0.5.5

cmake . -DCMAKE_INSTALL_PREFIX=/usr/ -DUNSAFE_FILENAME=ON
make
make install

注意事项:[……]

READ MORE

「PlantUML」- 绘制插图的极佳工具

参考文献
Voyvode / UML diagrams for Zim · GitLab Open-source tool that uses simple textual descriptions to draw beautiful UML diagrams. State Diagram syntax and features[……]

READ MORE

「PlantUML」- 安装

on Debian 10

apt-get install -y plantuml

直接现在安装
发行版的软件通常较旧,Debian 10,plantuml.1.2018.13,现在都 plantuml.1.2021.1 版本,因此我们进行手动安装。

mkdir -pv /opt/plantuml/

wget -P /opt/plantuml/ \
https://phoenixnap.dl.sourceforge.net/project/plantuml/1.2021.1/plantuml.1.2021.1.jar

cat > /opt/plantuml/plantuml.sh <<EOF
#!/bin/sh
dirname=$(dirname $(readlink -f $0))
java -jar $dirname/plantuml.jar ${@
EOF

ln -snf /opt/plantuml/plantuml.sh /usr/local/bin/plantuml

参考文献
Download page[……]

READ MORE

「XMind」- Ideas Grow on Trees

XMind – Mind Mapping Software
How to build a Concept Map using XMind[……]

READ MORE

「XMind」- 安装与升级

XMind 202101132117 on Debian 10
# 02/08/2021 拥抱新事物,使用 XMind 2020 版本,安装过程大致如下:
方法一、通过 deb 安装(默认位于 /opt/XMind 目录中)

# 第一步、访问 https://www.xmind.net/download/xmind/ 进行下载
# 下载 deb 安装包

# 第二步、执行安装命令
dpkg -i XMind-2020-for-Linux-amd-64bit-10.3.1-202101132117.deb

方法二、通过 snap 安装

snap install xmind
snap run xmind

补充说明: 1)我们没有使用 snap 安装。由于我们某些 .xmind 没有保存在 $HOME 中,如果以 snap 安装,需要特殊处理才能选择这些文件; 2)通过 snap 安装,默认位于 /snap/xmind 目录,但不建议直接运行二进制。应该使用 snap run xmind 或者 .desktop 文件;
XMind 8 Update 9 on Debian 10
# 03/09/2020 参考 How to install XMind 8 on generic Linux 文档;[……]

READ MORE

「XMind」- 在 Linux 下,切换 Format 界面非常慢

[……]

READ MORE

「ditaa」- DIagrams Through Ascii Art

ditaa,该工具将字符图(Ascii Art)转为图片。
示例说明
对于如下字符图片:

+——–+ +——-+ +——-+
| | –+ ditaa +–> | |
| Text | +——-+ |diagram|
|Document| |!magic!| | |
| {d}| | | | |
+—+—-+ +——-+ +——-+
: ^
| Lots of work |
+————————-+

通过 ditaa 命令,将生成如下图片:
应用场景
Ceph 官方文档的插图是通过 ditaa 进行绘制的,其托管在 GitHub 中,由 GitHub 负责渲染; https://github.com/ceph/ceph/edit/main/doc/rbd/iscsi-overview.rst
参考文献
ditaa[……]

READ MORE

「draw.io」- diagrams.net

相关链接
GitHub – jgraph/drawio: Source to app.diagrams.net GitHub – jgraph/drawio-desktop: Official electron build of diagrams.net[……]

READ MORE

「draw.io」- 安装(Ubuntu、Debian、CentOS)

问题描述
我们没有采用自建 draw.io 服务,而是使用它的客户端 jgraph/drawio-desktop: Official electron build of diagrams.net 软件。
该笔记将记录:在 Linux 中,安装 drawio-desktop 方法,以及常见问题的解决方法。
解决方案
通过 AppImage 运行

wget https://github.com/jgraph/drawio-desktop/releases/download/v14.6.13/drawio-x86_64-14.6.13.AppImage
chmod u+x drawio-x86_64-14.6.13.AppImage
./drawio-x86_64-14.6.13.AppImage

# 04/12/2022 现在已发布 drawio-desktop v17.4.2 版本;
常见问题处理
chrome-sandbox is owned by root and has mode 4755
Solve “The SUID sandbox helper binary was found, but is not configured correctly.” (3 solutions!) | by Authmane Terki | Medium
问题描述:在启动 drawio-desktop.AppImage 应用时,产生如下错误信息:

[11441:1216/003855.672724:FATAL:setuid_sandbox_host.cc(158)] The SUID sandbox he
lper binary was found, but is not configured correctly. Rather than run without
sandboxing I’m aborting now. You need to make sure that /tmp/.mount_draw.ijM9w4w
/chrome-sandbox is owned by root and has mode 4755.
Trace/breakpoint trap

原因分析:这是个老问题了,只需要在启动时指定 –no-sandbox 选项即可。
解决方案:

drawio-desktop.AppImage –no-sandbox[……]

READ MORE

「draw.io」- 常见问题处理

桌面版导入图标
File ⇒ New Library…[……]

READ MORE

「seqdiag」- 时序图绘制工具

问题描述
该部分笔记将整理 seqdiag 使用方法。本文内容对官方文档进行梳理与摘要。
如何使用
通过,向seqdiag中输入“描述文件”,它会输出时序图。使用seqdiag的步骤: 1)编写.diag文件; 2)将编写好的.diag文件输入seqdiag中,它就会生成类似的序列图;
接下来就介绍如何使用安装并使用seqdiag工具。
安装工具

#!/bin/sh

# 在Debian中,可以安装python-seqdiag软件包:
apt-get install python-seqdiag

# 或者更通用的办法是通过pip安装:
pip install seqdiag

在安装成功后,就可以使用seqdiag(1)命令。
第一步、创建描述文件
创建 simple.diag 文件,内容如下:

seqdiag {
browser -> webserver [label = “GET /index.html”];
browser <– webserver;
browser -> webserver [label = “POST /blog/comment”];
webserver -> database [label = “INSERT comment”];
webserver <– database;
browser <– webserver;
}

第二步、生成序列图
执行 seqdiag simple.diag 命令,该命令会成一张PNG图片,图片的内容为:

快速入门与相关文档
有关特点、安装要求、安装方法、简单示例、字体设置等等内容,参考官方「Introduction of seqdiag」手册。
修改字体 (1)命令行使用-f选项。或者(2)使用配置文件($HOME/.blockdiagrc)自定字体:

[seqdiag]
fontpath = /usr/share/fonts/truetype/ttf-dejavu/DejaVuSerif.ttf

字体大小

seqdiag {
// Set fontsize.
default_fontsize = 16; // default value is 11
}

图形宽度

seqdiag {
edge_length = 300; // 两个列之间的宽度,default value is 192
span_height = 80; // 行高(非整个图形高度),def[……]

READ MORE

「HTML」- 文档管理及操作

HTML 转 TEXT
html2text 将HTML转化为TEXT。当时是和HTML显示格式一致的文本格式。使用-utf8选项来支持UTF-8文本。 Homepage: http://www.mbayer.de/html2text/
lynx lynx -dump input.html > output.txt lynx是一个文字界面的浏览器,但是其–dump选项,可以将页面转化为文本。 Homepage: http://lynx.invisible-island.net/ 类似的工具还有Links:http://links.twibright.com/
w3m w3m -dump input.html > output.txt
links links -dump input.html > output.txt[……]

READ MORE

「Learning」- 获取知识内容的途径

信息采集 —— 其是对学习路线的填充并晚上
教育培训
我们现阶段(12/20/2022)非常倾向于培训机构。诚然机构间的质量参差不齐,但是大多数机构都能做到这几点:(1)引导我们入门;(2)给出完整的知识结构;(3)相关技术发展现状。我们非常关心这几点,所以我们认为培训机构还是值得考虑的(诚然价格也是考虑因素之一);
书籍文献
这类书籍文章也能够引导我们如何学习,也具有入门级别的演示,也具有进阶内容。但是相比培训机构(在知识摄取方式上)效果会差一点:(1)文字的阅读需要耐心和时间,而且断句、理解,都需要时间和精力;
部分书籍,在描述某个技术专题或术语的时候,其并未按照清晰的结构进行描述。我们更倾向于的结构:给出关键性描述(一个词、一句话),并展开解释;
官方文档
效果类似于书籍文章,但是官方文档对新人的友好度较差,不像书籍文章那样经过精心编排和细心解释;
博客文章
相比书籍或文档,博客文章并非系列集合,而是针对某个主题的进一步讨论,其能加深我们对被研究对象的某部分的理解,而非对被研究对象的完整介绍;
常用书籍及文档下载站点
购买电子书
https://bookschina.bookask.com/ https://www.ituring.com.cn/ http://www.broadview.com.cn/
http://e.dangdang.com/index_page.html https://ebooks.jd.com/
caibitim.duckdns
https://book.caibitim.duckdns.org/
PDF Drive – Search and download PDF files for free.
PDF Drive | PDF Drive – Search and download PDF files for free.
Library Genesis
Library Genesis / Library Genesis/Fun(简单搜索页面)
搜索找各专业教科书几乎百发百中 支持诸如 Author, ISBN, MD5 等等高级搜索方法供你花式搜书
Z-Library – Electronic library. Download books free. Finding books
Z-Library – Electronic library. Download books free. Finding books 和 LibGen 的重合度很高,是个商业网站
Sci-Hub – removing barriers in the way of science
Sci-Hub: r[……]

READ MORE

「MHT」- MHTML, MIME HTML

Chrome web store/Save As MHT 该插件能够将网页保存为 MHT 文件;
参考文献
Article – How to open MHT (MIME HTML)…[……]

READ MORE

「Office Suite」- 办公套件

办公套件
YOZO Office
WPS Office – Free Office Download for PC &amp; Mobile, Alternative to MS Office
LibreOffice – Free Office Suite – Based on OpenOffice
# 07/28/2021 以前,总觉得 Libreoffice 运行速度慢。换新电脑才发现,原来是自己配置不行。
AbiWord – a word processing program
https://www.abisource.com/
Office Open XML
Wikipedia/Office Open XML Understanding the Open XML file formats
TODO 文档操作 https://en.wikipedia.org/wiki/Office_Open_XML[……]

READ MORE

「LibreOffice」- 常用配置

关闭拼写检查
Disable Spell Check on LibreOffice
Tools ⇒ Options ⇒ Languages Settings ⇒ Writing Aids[……]

READ MORE

「WPS for Linux」- 使用记录

官网地址:https://www.wps.com/linux 下载地址:http://wps-community.org/downloads
使用问题记录
# 11/25/2020 WPS 11.1.0.9719
打开 XLS 的速度比较慢。
# 01/26/2021 WPS 11.1.0.10161
使用 deb 安装,默认安装目录:/opt/kingsoft/wps-office/
每次新打开 XLS 的速度比较慢,并且在这个过程中,无法关闭 WPS 程序。如果文档已经打开,关闭文档,再打开文档,速度就很快。我们无法解决该问题,只能寻找替代方案。目前(01/26/2021)我们开始使用 YOZO Office 套件,它不存在该问题。
# 12/13/2022 WPS 11.1.0.11664
/opt/kingsoft/wps-office/office6/wpsoffice /prometheus 该进程占用 CPU 较高 最新版WPS CPU占比高- Community – Deepin Technology
常见错误汇总
./office6/wpp: error while loading shared libraries: libpng12.so.0: cannot open shared object file: No such file or directory
原因:缺少libpng12 解决:安装libpng12,amd64的。我使用的发行版为Debian,由于这个包太老了,新的发行版里已经移除了,到Debian官网下载libpng12就可以了。
Some formula symbols might not be displayed correctly due to …
原因:缺少某些字体 解决:在 wps 的安装目录下有个 install_fonts 的脚本,执行这个脚本安装一些相关的字体即可。[……]

READ MORE