标签: hyphenation

如何在 TextView 中强制断字?(分词上的字符“-”)

我正在使用一个 TextView 扩展类,它像打字机一样写一个字符串,每个字符一个字符。它工作正常,但是当写一个不适合当前行的单词时,它会产生烦人的行为并从当前行中删除不适合的工作并将其写入下一行。

欢迎大家。我需要知道如何告诉 TextView 使用断字,它必须像这样强制断字:

superlargewo-
rd

verylarg-
eword
Run Code Online (Sandbox Code Playgroud)

这意味着放置字符 - 而不是将单词传递到下一行

怎么能强制进入TextView?

android hyphenation textview

6
推荐指数
1
解决办法
2106
查看次数

setHyphenation 和 breakStrategy 在 TextView 中无法按预期工作

我试图在 TextView 中添加连字符来破坏长单词。例如,我有一个文本视图,其文本是“推荐”。因为该单词对于一行来说太长,所以我想在第一行中添加“Recommend-”,在第二行中添加“ation”,如下所示:

在此输入图像描述

但事实上,我得到了

在此输入图像描述

这是我对 TextView 的内容:

<TextView
   android:id="@+id/textViewid"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:text="@string/long_text"
   android:breakStrategy="high_quality"
   android:hyphenationFrequency="full" />
Run Code Online (Sandbox Code Playgroud)

我尝试了breakStrategy值和hyphenationFrequency值的不同组合,但没有成功。知道为什么它会以这种方式或其他方式使连字起作用吗?提前致谢!

android hyphenation

6
推荐指数
0
解决办法
1289
查看次数

Jetpack Compose 文本连字符

如何使用 Jetpack Compose 在 Android 中正确换行?我从网络上了解了该功能,我在网络上用于&shy;此类情况。

我定义了带有可能换行符的字符串值,如下所示:Korrespondenz\u00ADsprache。不幸的是,这不适用于 Android。

我使用下面的代码

Text(
    text = "Korrespondenz\u00ADsprache",
    style = MaterialTheme.typography.h4
)
Run Code Online (Sandbox Code Playgroud)

目前结果如下所示:

在此输入图像描述

预期结果应如下所示:

在此输入图像描述

android hyphenation android-jetpack-compose android-compose-textfield

6
推荐指数
1
解决办法
1714
查看次数

如何防止LaTeX连接包含破折号的单词?

我想全局阻止LaTeX用'Objective-C'连字.我知道\ hyphenation命令,但我不知道如何使用它.如果我将'Objective-C'传递给此命令,破折号将被视为提示在那里连字.

我发现的一个解决方案是每次使用时将Objective-C包装到mbox中.但是,我正在编写的文档包含了很多这个名称,并且每次将它包装到mbox中都很难看(就像在源代码中定义一个命令并一遍又一遍地使用它一样).

我对任何建议都很满意!

最好,JP

latex hyphen hyphenation

5
推荐指数
1
解决办法
4844
查看次数

CSS连字符在Firefox中不起作用?

我试图使用CSS连字符.它们在IE 11和Safari中工作,但在Firefox中无法正常工作,我不确定为什么.这是一个例子:

.container{
    width: 16.6667%;
    background:#ccc;
}
h3{
    font-size: 0.95rem;
    font-weight: 600;
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
    hyphens: auto;
}
Run Code Online (Sandbox Code Playgroud)
<div class="container">
<h3>DIAGNOSEVERFAHREN</h3>
</div>
Run Code Online (Sandbox Code Playgroud)

当您在Firefox中运行代码段时,该字DIAGNOSEVERFAHREN溢出容器并且不会中断.在Safari和IE中,它像我期望的那样打破.为什么这不适用于Firefox?

编辑

正如萨芬Tanalin的注意回答一个必须包括lang属性为连字符才能正常工作.我有这个作为我的<html>标签:

<html class="no-js" lang="de">
Run Code Online (Sandbox Code Playgroud)

css firefox hyphenation css-hyphens

5
推荐指数
2
解决办法
8189
查看次数

Word 单行空间不足

我有一个字体大小很大的 TextView,如果我有一个长单词,则只有最后一个字符会放入下一行。例如 :

祖萨梅纳尔贝

t

现在我想将文本格式化为如下所示:

祖萨梅纳布 -

t

有可能实现这一目标吗?

android hyphenation textview

5
推荐指数
1
解决办法
828
查看次数

API 23 下的 TextView 断字

在API 23的TextView叫法文本正确: longwooord\u00AD1231232131被正确地从分裂\u00AD导致炭longwooord-1231232131下一行。然而,API 21\u00AD只是被忽略,单词在到达文本区域的右边界时被拆分。有没有办法在 API 21 中复制 API 23 断字行为?

android hyphenation textview soft-hyphen

5
推荐指数
0
解决办法
305
查看次数

带有 TextKit 和两端对齐文本的 iOS 断字

今天是个好日子。我在使用带有文本视图的 TextKit 显示带连字符的对齐文本时遇到问题。我试图通过段落样式和 NSLayoutManager 进行断字,但没有预期的结果。段落样式示例:

let paragraph = NSMutableParagraphStyle()
paragraph.alignment = .justified
paragraph.lineBreakMode = .byWordWrapping
paragraph.hyphenationFactor = 0.85 //here goes the black magic :)
Run Code Online (Sandbox Code Playgroud)

问题是没有连字符的对齐文本看起来很糟糕,因为它拉伸了字母(而不是单词)之间的空间。如果连字符有效,一切看起来都很好。但这里有另一个问题 - 断字被应用于具有当前手机首选语言规则的文本。这意味着,如果手机的首选语言是英语并且文本是西里尔文(例如俄语或乌克兰语),则根本不应用连字符,并且会出现文本拉伸问题。下面是这个问题的样子:

没有连字符的拉伸文本

将手机首选语言更改为文本语言会导致本机连字正常工作,并且对齐的文本也可以正确呈现:

精美渲染的文字

所以我的解决方案是使用 NaturalLanguage 框架确定文本语言并将应用程序首选语言更改为该语言。为了确定文本语言,我使用了这个片段:

import NaturalLanguage

extension String {
    func dominantLanguage() -> Locale? {
        let languageRecognizer = NLLanguageRecognizer()
        languageRecognizer.processString(self)

        if let code = languageRecognizer.dominantLanguage?.rawValue {
            let language = Locale.init(identifier: code)
            return language
        } else if let code = languageRecognizer.languageHypotheses(withMaximum: 3).sorted(by: { (arg0, arg1) -> Bool in
            return arg0.value > arg1.value
            }).first?.key.rawValue …
Run Code Online (Sandbox Code Playgroud)

hyphenation justify ios textkit swift3

5
推荐指数
1
解决办法
334
查看次数

为什么连字符不能与 lang en 一起使用

这段代码有什么问题,连字号不起作用lang="en"

h1 {
  font-size: 2em;
  hyphens: auto;
}

div {
  max-width:200px;
  background: aqua;
}
Run Code Online (Sandbox Code Playgroud)
<div>
  <h1 lang="en">Kindofverylongheadlineevenbiggerthanimagined</h1>
  <h1 lang="en">Internationalization</h1>
  <h1 lang="de">Kindofverylongheadlineevenbiggerthanimagined</h1>
</div>
Run Code Online (Sandbox Code Playgroud)

html hyphenation

5
推荐指数
0
解决办法
1435
查看次数

带连字符的HTML元素属性名称会自动转换为camelcase

我正在构建一个自定义的AngularJS指令来创建一个谷歌地图,我已经在我的标签中的自定义属性中存储了一些谷歌地图选项:

<googlemap zoom-control="true" …></googlemap>
Run Code Online (Sandbox Code Playgroud)

Angular的指令编译方法有参数(tElement, tAttrs, transclude); 当我登录tAttrs到控制台时,该对象具有名称已将连字符转换为camelCase的属性:

来自Chrome Dev Tools的扩展$ tAttrs对象的屏幕截图(属性名称已转换为有效格式)

谁在做Angular或浏览器(在Firefox和Chrome中检查过)?我可以依靠这种行为吗?

PS当我检查DOM时,html元素的属性仍然有连字符.

html json hyphenation angularjs

4
推荐指数
1
解决办法
3254
查看次数