Figlet包装在R中:如何更改cat / message输出的宽度/大小?

问题描述

我可以增加线条的大小或宽度吗?

例如,以下内容在第二个“ a”之后包裹,我希望所有内容都在一行上。

#install.packages("Rfiglet")
library(Rfiglet)


figlet('starwars',respect.linebreaks = FALSE,smush = TRUE,font = "starwars")
     _______.___________.    ___      .______     ____    __    ____  ___      
    /       |           |   /   \     |   _  \    \   \  /  \  /   / /   \     
   |   (----`---|  |----`  /  ^  \    |  |_)  |    \   \/    \/   / /  ^  \    
    \   \       |  |      /  /_\  \   |      /      \            / /  /_\  \   
.----)   |      |  |     /  _____  \  |  |\  \----.  \    /\    / /  _____  \  
|_______/       |__|    /__/     \__\ | _| `._____|   \__/  \__/ /__/     \__\ 
                                                                               
.______          _______.
|   _  \        /       |
|  |_)  |      |   (----`
|      /        \   \    
|  |\  \----.----)   |   
| _| `._____|_______/  

options(width = 999)没有任何改变。

解决方法

根据内部的figlet函数,很可能根据输入的字符数来确定是否必须以1行或2行打印文本。

figlet函数返回一个字符向量,我们可以通过使用hack来实现所需的功能。当输出分布在两行中时,我们可以使用paste合并这两行,并将类更改回'figlet'

library(Rfiglet)
tmp <- figlet('starwars',respect.linebreaks = TRUE,smush = FALSE,font = "starwars")

n <- length(tmp)
tmp1 <- paste(tmp[1:(n/2)],tmp[(n/2 + 1):n])
class(tmp1) <- 'figlet'
tmp1
     _______..___________.    ___      .______     ____    __    ____       ___      .______           _______.
    /       ||           |   /   \     |   _  \    \   \  /  \  /   /      /   \     |   _  \         /       |
   |   (----``---|  |----`  /  ^  \    |  |_)  |    \   \/    \/   /      /  ^  \    |  |_)  |       |   (----`
    \   \        |  |      /  /_\  \   |      /      \            /      /  /_\  \   |      /         \   \    
.----)   |       |  |     /  _____  \  |  |\  \----.  \    /\    /      /  _____  \  |  |\  \----..----)   |   
|_______/        |__|    /__/     \__\ | _| `._____|   \__/  \__/      /__/     \__\ | _| `._____||_______/