checkbox全选子集全选父级也自动_编写学位论文时如何给表格和图片自动编号

50a3b1e81a18321f3ee4f21acbee8940.png

引言

最近和论文格式的检测系统斗智斗勇,可以说是摸清了系统的脾气并且能够把错误数控制在0。其中,论文正文的表格和图片自动编号的问题还是挺有意思的,特此记录一下。

需求

  • 对于表格,系统要求表格题注处于表格*上方*,并按“表 x-y 标题”的格式标注,其中x为本章序号,y为章内的表格序号。如“表 1-1”表示第一章的第一个表格。
  • 对于图片,系统要求图片题注处于表格*下方*,并按“图 x-y 标题”的格式标注,其中x为本章序号,y为章内的图片序号。如“图 1-1”表示第一章的第一个图片。

思路

  • 利用 Word 的“插入题注”功能,并在编号中包括章节号。
  • 章节号有效的前提是本章一级标题已被编号。

步骤

给本章一级标题编号。

以第一章为例,首先全选第一章标题,然后选择“标题1”样式(前提是“标题1”样式已经设置成符合学校要求的格式,可右键点击自行设置)。

3f8e6b2dd734bb23c24d800675c16f4e.png

然后,展开“编号”菜单,“定义新编号格式”。

fda900b3b3cb69f089a7123154c6aeef.png

98c21a5348b40427304508b3eefd176c.png

在这里,先定义一个“第 x 章”的编号格式,其中 x 为数字1, 2, 3, ...

8d5663798bd1898c5b41d1b23d9647b7.png

大多数情况下,学校会要求使用“一,二,三...”,但这是最后的步骤,这里先不采用。

1511a0e4ae289038bd3865d7277955ea.png

可以看到,第一章的标题变成了“第 1 章”,这时候是不符合学校要求的,但这样的设置才能让自动编号是以“1-1”的格式,而不是“一-1”。

574c8113bb63ccd08622459725dd95a1.png

右键点击一个图片或表格,选择“插入题注”

396e3e064001a7dea685c4820870aa0c.png

建立需要的标签,比如“图”、“表”。

ea6c387c178e144d11f9bb69db5bd183.png

然后选择刚才建立的标签。

9a0912752978ced8329791dea6801752.png

点击“编号”,勾选“包含章节号”,选择“标题1”。

相信到这里可以明白设置“标题1”样式和编号的意义。

b42e7122cc1020ea1d28e16857a5a02a.png

成功编号。后面的图片或表格依次插入题注即可。

fd499c57844de221275f9bd0cfe0ecc7.png

若以后要手动更新序号,可用 Ctrl+A 全选,然后右键点击要更新的序号,“更新域”即可。

a1dbd704c83ad365ef9609d4e30d418e.png

检查所有表格和图片都已有序编号之后,将一级标题的编号切换为“第(一、二、三...)章”即可。

1248e283805ed0773238d9f9ff6355a9.png

3fd1aeef0501f6c847cb9bc6649b4cd1.png

04f92d5b50e290ef1f1c1e433775afd5.png

注意(重要)

Word另存为PDF时往往会自动更新域,导致会出现如“一.1”的情况出现,因此在转换时要先禁止自动更新域,或使用Adobe Acrobat的插件另存为。导出PDF后注意检查编号是否正确,确保正确了再拿去打印!(没错我就是被坑了...)

拓展

更硬核的玩法,可以参考此处:https://blog.csdn.net/buaazt/article/details/70257619

历史

2019年5月20日0-4点:实践并成文

2019年7月17日:补充“注意”部分

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在 Ant Design 的表格中,可以使用 `Checkbox` 组件来实现全选功能。以下是一个简单的实现示例: 1. 在表格的列定义中添加一个 `render` 函数,用于渲染 `Checkbox` 组件: ```javascript const columns = [ { title: '姓名', dataIndex: 'name', }, { title: '年龄', dataIndex: 'age', }, { title: '操作', render: (text, record) => ( <Checkbox onChange={handleSelect(record.key)} /> ), }, ]; ``` 2. 在表格上面添加一个 `Checkbox` 组件,用于触发全选操作: ```javascript const handleSelectAll = (e) => { setData( data.map((item) => { return { ...item, selected: e.target.checked, }; }) ); }; return ( <div> <Checkbox onChange={handleSelectAll}>全选</Checkbox> <Table columns={columns} dataSource={data} rowSelection={{ selectedRowKeys: selectedKeys, onChange: handleSelectChange, }} /> </div> ); ``` 3. 在 `handleSelect` 函数中更新选中状态,并根据选中状态更新全选状态: ```javascript const handleSelect = (key) => (e) => { setData( data.map((item) => { if (item.key === key) { return { ...item, selected: e.target.checked, }; } return item; }) ); const selectedAll = data.every((item) => item.selected); setSelectedAll(selectedAll); }; ``` 完整的示例代码: ```javascript import React, { useState } from 'react'; import { Table, Checkbox } from 'antd'; const data = [ { key: '1', name: 'John Brown', age: 32, selected: false, }, { key: '2', name: 'Jim Green', age: 42, selected: false, }, { key: '3', name: 'Joe Black', age: 32, selected: false, }, ]; const Demo = () => { const [selectedAll, setSelectedAll] = useState(false); const [selectedKeys, setSelectedKeys] = useState([]); const handleSelectAll = (e) => { setData( data.map((item) => { return { ...item, selected: e.target.checked, }; }) ); setSelectedAll(e.target.checked); setSelectedKeys(e.target.checked ? data.map((item) => item.key) : []); }; const handleSelectChange = (selectedRowKeys) => { setSelectedKeys(selectedRowKeys); setSelectedAll(selectedRowKeys.length === data.length); }; const handleSelect = (key) => (e) => { setData( data.map((item) => { if (item.key === key) { return { ...item, selected: e.target.checked, }; } return item; }) ); const selectedAll = data.every((item) => item.selected); setSelectedAll(selectedAll); setSelectedKeys( data.filter((item) => item.selected).map((item) => item.key) ); }; const columns = [ { title: '姓名', dataIndex: 'name', }, { title: '年龄', dataIndex: 'age', }, { title: '操作', render: (text, record) => ( <Checkbox onChange={handleSelect(record.key)} /> ), }, ]; return ( <div> <Checkbox onChange={handleSelectAll} checked={selectedAll}> 全选 </Checkbox> <Table columns={columns} dataSource={data} rowSelection={{ selectedRowKeys: selectedKeys, onChange: handleSelectChange, }} /> </div> ); }; export default Demo; ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值