当前位置: 首页 > news >正文

Excel的行高、列宽单位不统一?还是LaTeX靠谱

想要生成田字格、米字格、带拼音标准,方便小学生书法和练字。Word,Excel之类所见即所得是最容易相当的方式。但它们处理带田字格之类背景时,如果没有专用模板、奇奇怪怪的插件,使用起来会碰到各种问题。比如,Word里面用表格、打虚线,然后文字可以表格中或漂浮的文本框、艺术字,但问题是文字和网格的对齐非常困难,不容易调整;Excel里面也可以调网格,但Excel就很难所见即所得,打印出来文字和网格总会发生意想不到的漂移。——而且顺便发现Excel中还有本文标题中提到的“问题”(这个问题是视图没有切换到page layout导致的,这是本文解释的初衷)。

大家都以所接触的世界为“黑箱”(不看文档的情况下),通过各种互动和观察,尝试理解“黑箱”的工作原理。尝试用Excel制作田字格的时候,发现。
在这里插入图片描述但对比下来,还是用LaTeX生成田字格最合适。因为Excel并非严格所见即所得,看到的并非能够严格按照所见打印出来的。Office局限性足见一斑。而用LaTeX生成类似的效果明显更好:

本来这篇博客只是想解释一下,Excel中并不存在行高、列宽单位不统一的问题,顺便吐糟了一下Office总是不如LaTeX。于是想到不妨用LaTeX来做!而且搜索、加上特种大语言模型齐上阵,调整代码,很快就得到了想要的效果。——附带证明了LaTeX完成这类任务,简直就是神一样的存在!秒杀Office和各种插件及技巧。我搜索的时候发现有秀出LaTeX效果的网友,却不肯分享好用的代码。我对此深不以为然。所以,调整出好用的代码之后,我特地把代码和效果都分享出来,方便其他人用。为什么?这些主要是方便中国的孩子,以及对中国语言文字感兴趣的人。当然要免费分享。

在这里插入图片描述下面的代码是在CTeX 3.x里面依次使用 LaTeX, dvips, ps2pdf编译得到PDF;其它方式或许也能用。但我没有专门尝试。

\documentclass{article}
\usepackage{ctex}
\usepackage{tikz}
\usepackage{geometry}
\usepackage{microtype}
\usepackage{xstring} 
\usepackage{xpinyin}\geometry{a4paper,landscape,margin=1cm}\newcommand\pygrid[2]{%
\fontsize{100}{100}
\begin{tikzpicture}[baseline=(current bounding box.south)]%\tikzstyle help lines=[color=red!90,thin]\path[use as bounding box](0,0) rectangle (1em,1.6em);\draw[help lines,step=0.5em](0,0) grid (1em,1em);\draw[help lines,dashed](0,0) -- (1em,1em)  (0,1em) -- (1em,0);\draw[help lines] (0em,1em) -- (0em,1.6em)(0em,1.6em) -- (1em,1.6em) (1em,1.6em) -- (1em,1em);\draw[help lines,dashed] (0em,1.2em) -- (1em,1.2em);\draw[help lines,dashed] (0em,1.4em) -- (1em,1.4em);\node[inner sep=0pt,anchor=south west](char) at (0em,0.06em)[font=\kaishu, scale=0.92] {#1};      
%  
%  % 拼音标注
%  \node[anchor=south, font=\small, yshift=0.4em]
%  (char)  at (0.5em,1.6em) {#2};    
\end{tikzpicture}
}% \grid for a single character
\newcommand\grid[1]{%
\fontsize{100}{100}\begin{tikzpicture}[baseline=(char.base)]\tikzstyle help lines=[color=red!90,thin]\path[use as bounding box](0,0) rectangle (1em,1em);\draw[help lines,step=0.5em](0,0) grid (1em,1em);\draw[help lines,dashed](0,0) -- (1em,1em)  (0,1em) -- (1em,0);\node[inner sep=0pt,anchor=base west](char) at (0em,0.12em) [font=\kaishu, scale=0.92]{#1}; %调整了位置\end{tikzpicture}%
}% \gridraiseamount is a font-specific value
\newcommand\gridraiseamount{0.12em}\makeatletter
\newcommand\sgrid[1]{%\@for\nextchar:=#1\do{\grid{\nextchar}}% 使用 @for 循环
}
\makeatother\begin{document}
\centering
\grid{}\grid{}\grid{}\grid{}\grid{}
\\[30pt]
\pygrid{\xpinyin{}{ni3}}
{2pt}
\pygrid{\xpinyin{}{zhen1}}
{2pt}
\pygrid{\xpinyin{}{li4}}
{2pt}
\pygrid{\xpinyin{}{hai}}
{2pt}
\\[30pt]
\sgrid{,,,}
\end{document}

可以上面这些,跟 hanzibox:田字格-米字格汉字练习宏包比起来,又孤陋寡闻小儿科。

不过这里就不扯太远了。总而言之,本来是研究Office实现相关功能的,结果发现还是用LaTeX更方便。Office相关的探讨继续如下:

使用应用软件而不看文档、不跟别人交流,也会有类似问题。探索黑箱的网友很多。但有些分享出来的经验,可能是误读,盲人摸象。比如:

在这里插入图片描述

看完这个,直觉,Excel 也是需要打印的、微软虽然Office在字处理方面比LaTeX口碑差,但还不至于到尺寸还没有整明白的地步。实际上,Word、Excel 都可以显示Ruler或标尺(直尺?)出来的。但Excel需要在“页面布局” Page Layout视图模式下。普通视图下面,视图选项卡下面Ruler\标尺\直尺是灰色的,无法勾选或取消而已。

在“视图”View选显卡,直尺\标尺Ruler勾选的情况下,显示标尺,这时候,再选择特定行、特定列,行高或者列高的单位就是统一的cm之类的了:
在这里插入图片描述所以,不是Excel行高和列宽的单位不统一,而是在特定视图的情况下,的确存在那种幻觉;转变一下视图就可以了。

为什么会要求在特定视图下才能够显示统一的单位呢?这个我还不懂,有谁知道答案?

另外,对hanzibox(西北农林大学),我还是有些失望,因为对LaTeX发行版的要求条件太过苛刻了:

基于LaTeX3的带注音和译文的汉字练习宏包

hanzibox是一个用LaTeX3开发的LaTeX宏包,它提供了\hanzibox\hanzidialog
\writegrid三个个命令。这三个命令分别用于排版汉字学习中带有或不带田字格、米字格等背景格子的汉字,并可以根据需要在汉字正上方显示拼音,在正下方显示译文。其中,\hanzibox命令能够根据汉字自动调用xpinyin宏包的\xpinyin*命令实现汉字注音。并且\hanzibox命令提供了\hanzibox*星号版本,其注音功能是通过自动调用xpinyin宏包的\pinyin命令实现的。\hanzidialog命令的注音功能是通过在拼音选项中手动插入xpinyin宏包\pinyin命令实现的。\writegrid命令用于排版作文题目的答题格子纸。

hanzibox 是一个用于学习汉字书写与发音的工具,可以用于汉字学习教案、演示文稿、习题册等文档工作。

该宏包的开发灵感源自Jan Vorisek的hanzibox宏包。但对\hanzibox\hanzidialog命令重新进行了设计,并参考zitie字贴宏包重新用l3draw宏包设计了背景格子。同时,新的宏包也提供了更多命令选项和参数,以期更好地控制排版结果。

目前,hanzibox.sty宏包仅支持XeTeX编译引擎,并且只支持UTF-8编码的LaTeX源文件。

可以通过阅读宏包手册(中文)以也解该宏包更多的使用细节和使用样例。 参与贡献
github仓库: (1). 仓库地址: hanzibox-l3 (2). Issues和PR: issue or pull request.
gitee仓库: (1). 仓库地址: hanzibox-l3 (2). Issues and PR: issue or pull request.
Copyright and Licence

Copyright © 2020-2022 by Nan Geng nangeng@nwafu.edu.cn

This work may be distributed and/or modified under the conditions of
the LaTeX Project Public License, either version 1.3c of this license
or (at your option) any later version. This version of this license is
in http://www.latex-project.org/lppl/lppl-1-3c.txt and the latest
version of this license is in http://www.latex-project.org/lppl.txt
and version 1.3 or later is part of all distributions of LaTeX version
2005/12/01 or later.

This work has the LPPL maintenance status “maintained”.

The Current Maintainer of this work is Nan Geng.

This package consists of the file hanzibox.dtx,
and the derived files hanzibox.sty,
hanzibox.pdf,
hanzibox.ins,
README.md (this file).

相关文章:

Excel的行高、列宽单位不统一?还是LaTeX靠谱

想要生成田字格、米字格、带拼音标准,方便小学生书法和练字。Word,Excel之类所见即所得是最容易相当的方式。但它们处理带田字格之类背景时,如果没有专用模板、奇奇怪怪的插件,使用起来会碰到各种问题。比如,Word里面用…...

(新版本onenet)stm32+esp8266/01s mqtt连接onenet上报温湿度和远程控制(含小程序)

物联网实践教程:微信小程序结合OneNET平台MQTT实现STM32单片机远程智能控制 远程上报和接收数据——汇总 前言 之前在学校获得了一个新玩意:ESP-01sWIFI模块,去搜了一下这个小东西很有玩点,远程控制LED啥的,然后我就想…...

告别GitHub连不上!一分钟快速访问方案

一、当GitHub抽风时,你是否也这样崩溃过? 😡 npm install卡在node-sass半小时不动😭 git clone到90%突然fatal: early EOF🤬 改了半天hosts文件,第二天又失效了... 根本原因:传统代理需要复杂…...

迷你世界脚本对象库接口:ObjectLib

对象库接口:ObjectLib 迷你世界 更新时间: 2023-04-26 20:21:09 具体函数名及描述如下: 序号 函数名 函数描述 1 getAreaData(...) 获取区域数据 2 getPositionData(...) 获取位置数据 3 getLivingData(...) 获取生物数据 4 getItemDat…...

数据库事务、乐观锁及悲观锁

参考:node支付宝支付及同步、异步通知、主动查询支付宝订单状态 以下容结合上述链接查看 1. 什么是数据库事务? 1.1. 连续执行数据库操作 在支付成功后,我们在自定义的paidSuccess里,依次更新了订单状态和用户信息。也就说这里…...

蓝桥王国--dij模板

#include <bits/stdc.h> // 万能头 using namespace std; typedef pair<long long ,int> PII; int n,m; long long d[300011]; struct edge///邻接表 {int v;long long w; }; int vis[300011]; vector<edge> mp[300011];///邻接表 void dij(int s)///dij单源…...

Java基础关键_017_集合(一)

目 录 一、概述 二、Collection 关系结构 1.概览 2.说明 三、Collection 接口 1.通用方法 &#xff08;1&#xff09;add(E e) &#xff08;2&#xff09;size() &#xff08;3&#xff09;addAll(Collection c) &#xff08;4&#xff09;contains(Object o) &#…...

Rust编程实战:Rust实现简单的Web服务,单线程性能问题

知识点 tcp 服务多线程处理 实现功能 启动web服务&#xff0c;访问链接获取页面内容。 单线程web服务 TcpListener 使用 TcpListener 开启服务端口 let listener TcpListener::bind("127.0.0.1:7878").unwrap();处理客户端连接&#xff1a; for stream in lis…...

GitLab 密钥详解:如何安全地使用 SSH 密钥进行身份验证

目录 一、什么是 GitLab SSH 密钥&#xff1f;二、为什么要使用 SSH 密钥&#xff1f;三、如何生成 SSH 密钥&#xff1f;1. Linux/macOS2. Windows 四、将公钥添加到 GitLab五、配置 SSH 客户端六、常见问题及解决方案七、总结 GitLab 是一个功能强大的 Git 仓库管理平台&…...

《论数据分片技术及其应用》审题技巧 - 系统架构设计师

论数据分片技术及其应用写作框架 一、考点概述 本论题“论数据分片技术及其应用”主要考察的是软件工程中数据分片技术的理解、应用及其实际效果分析。考点涵盖以下几个方面&#xff1a; 首先&#xff0c;考生需对数据分片的基本概念有清晰的认识&#xff0c;理解数据分片是…...

【C++】当一个类A中没有声明任何成员变量和成员函数,sizeof(A)是多少?

在 C 中&#xff0c;即使一个类没有任何数据成员&#xff08;即空类&#xff09;&#xff0c;它的大小也不会是 0&#xff0c;而是 1。这主要有以下几个原因&#xff1a; 地址唯一性要求 C 标准规定&#xff0c;每个对象都必须有唯一的地址。如果空类的大小为 0&#xff0c;那么…...

Maven 私服的搭建与使用(一)

一、引言 在 Java 项目开发中&#xff0c;Maven 作为强大的项目管理和构建工具&#xff0c;极大地提高了开发效率&#xff0c;而 Maven 私服在开发过程中也扮演着至关重要的角色。私服是一种特殊的远程仓库&#xff0c;架设在局域网内&#xff0c;代理广域网上的远程仓库&…...

Ubuntu20.04双系统安装及软件安装(五):VSCode

Ubuntu20.04双系统安装及软件安装&#xff08;五&#xff09;&#xff1a;VSCode 打开VScode官网&#xff0c;点击中间左侧的deb文件下载&#xff1a; 系统会弹出下载框&#xff0c;确定即可。 在文件夹的**“下载”目录**&#xff0c;可看到下载的安装包&#xff0c;在该目录下…...

linux网络(3)—— socket编程(1)socket基础认识

欢迎来到博主的专栏&#xff1a;linux网络 博主ID&#xff1a;代码小豪 文章目录 IP与端口号socket字节序问题 IP与端口号 我们现在知道了&#xff0c;只要发送的报文的报头包含目的IP地址和源IP地址&#xff0c;就能通过通信设备&#xff0c;是两台主机进行远程通信&#xff…...

【Kubernets】K8S内部nginx访问Service资源原理说明

文章目录 原理概述**一、核心概念****二、Nginx 访问 Service 的流程****1. Service 的作用****2. Endpoint 的作用****3. Nginx Pod 发起请求****(1) DNS 解析****(2) 流量到达 kube-proxy****(3) 后端 Pod 处理请求** **三、不同代理模式的工作原理****1. iptables 模式****2…...

使用Docker搭建Oracle Database 23ai Free并扩展MAX_STRING_SIZE的完整指南

使用Docker搭建Oracle Database 23ai Free并扩展MAX_STRING_SIZE的完整指南 前言环境准备目录创建启动Docker容器 数据库配置修改进入容器启动SQL*PlusPDB操作与字符串扩展设置配置验证 管理员用户创建注意事项总结 前言 本文将详细讲解在Docker环境中配置Oracle Database 23a…...

使用pytorch和opencv根据颜色相似性提取图像

需求&#xff1a;将下图中的花朵提取出来。 代码&#xff1a; import cv2 import torch import numpy as np import timedef get_similar_colors(image, color_list, threshold):# 将图像和颜色列表转换为torch张量device torch.device(cuda if torch.cuda.is_available() el…...

MySQL 8.X 报错处理

1.重新加载配置 reload the configuration mysql> ALTER INSTANCE RELOAD KEYRING; ERROR 1227 (42000): Access denied; you need (at least one of) the ENCRYPTION_KEY_ADMIN privilege(s) for this operation 提示需要ENCRYPTION_KEY_ADMIN权限 重新授权 GRANT ENCR…...

Ubuntu 22.04安装OpenJDK 17

步骤一&#xff1a;更新软件包 sudo apt update步骤二&#xff1a;安装openjdk-17 sudo apt install openjdk-17-jdk当系统要求输入密码时&#xff0c;请输入密码。然后键入 Y 并按 Enter 继续安装 步骤三&#xff1a;查看安装版本 java -version步骤四&#xff1a;查看安装…...

【时序预测】时间序列有哪些鲁棒的归一化方法

时间序列数据在金融、气象、医疗等领域中广泛存在&#xff0c;而股票数据作为典型的时间序列之一&#xff0c;具有非平稳性、噪声多、波动大等特点。为了更好地进行数据分析和建模&#xff0c;归一化是一个重要的预处理步骤。然而&#xff0c;由于时间序列数据的特殊性&#xf…...

进程地址空间(比特课总结)

一、进程地址空间 1. 环境变量 1 &#xff09;⽤户级环境变量与系统级环境变量 全局属性&#xff1a;环境变量具有全局属性&#xff0c;会被⼦进程继承。例如当bash启动⼦进程时&#xff0c;环 境变量会⾃动传递给⼦进程。 本地变量限制&#xff1a;本地变量只在当前进程(ba…...

Leetcode 3577. Count the Number of Computer Unlocking Permutations

Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接&#xff1a;3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯&#xff0c;要想要能够将所有的电脑解锁&#x…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

【碎碎念】宝可梦 Mesh GO : 基于MESH网络的口袋妖怪 宝可梦GO游戏自组网系统

目录 游戏说明《宝可梦 Mesh GO》 —— 局域宝可梦探索Pokmon GO 类游戏核心理念应用场景Mesh 特性 宝可梦玩法融合设计游戏构想要素1. 地图探索&#xff08;基于物理空间 广播范围&#xff09;2. 野生宝可梦生成与广播3. 对战系统4. 道具与通信5. 延伸玩法 安全性设计 技术选…...

人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式

今天是关于AI如何在教学中增强学生的学习体验&#xff0c;我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育&#xff0c;这并非炒作&#xff0c;而是已经发生的巨大变革。教育机构和教育者不能忽视它&#xff0c;试图简单地禁止学生使…...

基于Springboot+Vue的办公管理系统

角色&#xff1a; 管理员、员工 技术&#xff1a; 后端: SpringBoot, Vue2, MySQL, Mybatis-Plus 前端: Vue2, Element-UI, Axios, Echarts, Vue-Router 核心功能&#xff1a; 该办公管理系统是一个综合性的企业内部管理平台&#xff0c;旨在提升企业运营效率和员工管理水…...

抽象类和接口(全)

一、抽象类 1.概念&#xff1a;如果⼀个类中没有包含⾜够的信息来描绘⼀个具体的对象&#xff0c;这样的类就是抽象类。 像是没有实际⼯作的⽅法,我们可以把它设计成⼀个抽象⽅法&#xff0c;包含抽象⽅法的类我们称为抽象类。 2.语法 在Java中&#xff0c;⼀个类如果被 abs…...

rknn toolkit2搭建和推理

安装Miniconda Miniconda - Anaconda Miniconda 选择一个 新的 版本 &#xff0c;不用和RKNN的python版本保持一致 使用 ./xxx.sh进行安装 下面配置一下载源 # 清华大学源&#xff08;最常用&#xff09; conda config --add channels https://mirrors.tuna.tsinghua.edu.cn…...

相关类相关的可视化图像总结

目录 一、散点图 二、气泡图 三、相关图 四、热力图 五、二维密度图 六、多模态二维密度图 七、雷达图 八、桑基图 九、总结 一、散点图 特点 通过点的位置展示两个连续变量之间的关系&#xff0c;可直观判断线性相关、非线性相关或无相关关系&#xff0c;点的分布密…...

负载均衡器》》LVS、Nginx、HAproxy 区别

虚拟主机 先4&#xff0c;后7...