主页 > 电脑硬件  > 

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

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行高和列宽的单位不统一,而是在特定视图的情况下,的确存在那种幻觉;转变一下视图就可以了。

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

标签:

Excel的行高、列宽单位不统一?还是LaTeX靠谱由讯客互联电脑硬件栏目发布,感谢您对讯客互联的认可,以及对我们原创作品以及文章的青睐,非常欢迎各位朋友分享到个人网站或者朋友圈,但转载请说明文章出处“Excel的行高、列宽单位不统一?还是LaTeX靠谱