word一种样式和格式如何设置两种字体

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了word一种样式和格式如何设置两种字体相关的知识,希望对你有一定的参考价值。

比如说我要新建一个名为“正文段落”的新样式,即对正文进行样式设定
正文里面有中文也有英文,首行缩进两字符,中文要求宋体小四,英文要求用times new roman 12磅,那我应该怎么设置这种样式呢?我设置的怎么都是一种字体啊?而且用着用着自己就会出现好多种新的样式
问题是我发现好像只能设一种,你要会告诉我啊,怎么设两种,怎么把中文西文区分开

 假设将样式中的“标题1”由黑色改为红色,步骤如下:

1、在“样式和格式”窗口中,鼠标在“标题1”上单击右键,点击“修改”;

2、在“修改样式”对话框中,点击“格式”下的“字体”;

3、在“字体”中的“字体颜色”中选择“红色”的图标,点击“确定”;

4、返回到“修改样式”对话框中,点击确定即可,效果如下图。

说明:这种方法是将所有样式为“标题1”的文字全部修改,而不是“标题1”的样式则不会改变。另外,除了颜色,字体大小、字型、段落格式等等都可以在“修改样式”中修改。

参考技术A 将鼠标放在样式上,出现下拉框,点修改样式-格式-字体出现对话框,里面可以分别设置中文和西文字体,这样用这个样式打出来的中文和西文就是不同的字体。另外中文小四的字号对应的西文字号就是12磅,所以字号是统一的。本回答被提问者采纳 参考技术B 你就自己设样式啊,设定成2种不就好了。。

如何在官员的Word文档中获取样式格式?

我想用officer编写一些文档,并且在我用read_docx()加载的Word文档中有一些预定义的样式。现在,我可以看一下样式,但是我特别想知道每种样式具有的字体类型或字体大小,而我找不到。这就是我能找到的全部:

Document <- read_docx(FILEPATH)
head(Document$styles)
  style_type style_id style_name is_custom is_default
1  paragraph   Normal     Normal     FALSE       TRUE
2  paragraph Heading1  heading 1     FALSE      FALSE
3  paragraph Heading2  heading 2     FALSE      FALSE
4  paragraph Heading3  heading 3     FALSE      FALSE
5  paragraph Heading4  heading 4     FALSE      FALSE
6  paragraph Heading5  heading 5     FALSE      FALSE

很遗憾,没有字体大小或字体类型的列。我确实需要R中标题1的字体大小(例如10)和字体类型(例如“ Times New Roman”),因为函数style的参数body_add_par不足以达到我的目的。有没有办法做到这一点?

编辑:如果解决方案不是来自officer,那也很好。

答案

我找不到在官员中执行此操作的方法。实际上,最后,我不得不解析docx的xml内容以获得字体。

事实证明,并非所有样式都有字体集。有些继承自其他样式,有些仅采用Word提供的默认值。无论如何,解析xml很麻烦,因此有点麻烦/杂乱。

首先,您需要解压缩docx以获得其样式xml。如果您有officer,那么您还将拥有所需的zip软件包,因此我们将使用此软件包:

library(zip)
doc_path <- "my_file_path.docx"
unzip(doc_path, files = "word/styles.xml", exdir = path.expand("~/"))

现在我们需要解析xml:

read_xml(path.expand("~/word/styles.xml")) %>%
xml_nodes(xpath = "//w:style")             %>%
lapply(xml_new_root)                       %>%
lapply(function(x) data.frame(
  name = x %>% xml_node(xpath = "//w:name") %>% xml_attr("val"),
  based_on = x %>% xml_node(xpath = "//w:basedOn") %>% xml_attr("val"),
  font = x %>% xml_node(xpath = "//w:rFonts") %>% xml_attr("ascii"),
  size = x %>% xml_node(xpath = "//w:sz") %>% xml_attr("val"),
  stringsAsFactors = F)) %>%
{do.call("rbind", .)} -> font_table

这为我们提供了字体表,但是从继承等中可以推断出很多缺失值:


read_xml(path.expand("~/word/styles.xml")) %>%
xml_node(xpath = "//w:docDefaults//w:rPr") %>% 
xml_new_root -> defaults

default_size <- xml_node(defaults, xpath = "//w:sz") %>% xml_attr("val")
default_font <- xml_node(defaults, xpath = "//w:rFonts") %>% xml_attr("ascii")
if(is.na(default_font))
  default_font <- xml_node(defaults, xpath = "//w:rFonts") %>% xml_attr("asciiTheme")

font_table$size[is.na(font_table$size) & is.na(font_table$based_on)] <- default_size
font_table$font[is.na(font_table$font)] <- default_font
font_table$based_on[is.na(font_table$based_on)] <- "default"

现在我们有:

font_table
#>                      name             based_on            font size
#> 1                  Normal              default      minorHAnsi   24
#> 2               heading 2               Normal      minorHAnsi   26
#> 3  Default Paragraph Font              default      minorHAnsi   24
#> 4            Normal Table              default      minorHAnsi   24
#> 5                 No List              default      minorHAnsi   24
#> 6              Table Grid          TableNormal      minorHAnsi <NA>
#> 7          List Paragraph               Normal      minorHAnsi <NA>
#> 8            Normal (Web)               Normal Times New Roman <NA>
#> 9            Balloon Text               Normal          Tahoma   16
#> 10      Balloon Text Char DefaultParagraphFont          Tahoma   16
#> 11         Heading 2 Char DefaultParagraphFont      minorHAnsi   26

以上是关于word一种样式和格式如何设置两种字体的主要内容,如果未能解决你的问题,请参考以下文章

Word中的样式如何设置成两字体

WORD 里文档视图里的标题字体怎么变大?(有图)

word第二讲(0806)

怎么设置标题样式?

在word中怎样将字体颜色变成渐变色?

如何在官员的Word文档中获取样式格式?