Score:1

ฉันจะกำหนดค่า fontconfig เพื่อจับคู่ชื่อแบบอักษรกับยัติภังค์ได้อย่างไร

ธง cn

ฉันมีปัญหากับ fontconfig ในการจดจำไฟล์ ui-monospace ฟอนต์ที่หลายเว็บไซต์ (รวมถึงไซต์ Github และ Stack Exchange) เพิ่งเริ่มใช้ Firefox ยังไม่มีการอ้างอิง CSS พิเศษสำหรับแบบอักษรของระบบ (ดู ข้อผิดพลาด FF 1226042, ร่างข้อมูลจำเพาะ, และมัน ฉันสามารถใช้รายการ) และ FF ยังถูกหลอกโดย fontconfig ซึ่งจะตอบสนองฟอนต์ใด ๆ ด้วยการกำหนดค่าเริ่มต้นสำหรับ sans-serif

เพื่อเป็นการแก้ปัญหา ฉันต้องการใช้นามแฝงนี้แทนชื่อฟอนต์นี้อย่างชัดเจนกับฟอนต์ monospace ที่ฉันต้องการ (ซึ่งก็คือ แพนิคแซนส์ซึ่งเป็นตัวแปร DejaVu Sans Mono ที่ปรับแต่งแล้วซึ่งดันเครื่องหมายขีดล่างขึ้นเล็กน้อย) แต่เนื่องจากคำถามนี้คลุมเครือมากคำถามนี้จึงใช้ เดจาวู ซันส์ โมโน.

ความพยายามครั้งแรกของฉันในการแก้ปัญหานี้ไม่ได้ผล:

  <alias>
    <family>ui-monospace</family>
    <prefer><family>DejaVu Sans Mono</family></prefer>
  </alias>

ความพยายามอีกครั้งที่ประสบความสำเร็จมากกว่าสำหรับฟอนต์อื่นๆ:

  <match>
    <test name="family"><string>ui-monospace</string></test>
    <edit name="family" mode="assign" binding="strong">
      <string>DejaVu Sans Mono</string>
    </edit>
  </match>

เมื่อฉันบันทึกและล้างแคช มันไม่ทำงาน:

$ grep ui.monospace ~/.config/fontconfig/fonts.conf
    <test name="family"><string>ui-monospace</string></test>
$fc-แคช-ฉ
$ fc-match 'ui-โมโนสเปซ'
Carlito-Regular.ttf: "Carlito" "ปกติ"
$ fc-match sans-serif
Carlito-Regular.ttf: "Carlito" "ปกติ"

นั่นไม่ได้ผล นี่คือส่วนที่อยากรู้อยากเห็น: มันใช้งานได้เมื่อฉันใช้ช่องว่างแทนยัติภังค์:

$ sed -i 's/ui-monospace/ui monospace/' ~/.config/fontconfig/fonts.conf
$ grep ui.monospace ~/.config/fontconfig/fonts.conf
    <test name="family"><string>ui โมโนสเปซ</string></test>
$fc-แคช-ฉ
$ fc-match 'ui โมโนสเปซ'
DejaVuSansMono.ttf: "DejaVu Sans Mono" "หนังสือ"

ดูเหมือนว่าปัญหาคือยัติภังค์ ฉันไม่เห็นเอกสารใด ๆ (หรือรายงานข้อผิดพลาด) ที่แนะนำปัญหานี้ เดอะ เอกสาร fontconfig สำหรับ <string> อย่าจดบันทึกตัวละครที่ผิดกฎหมายหรือวิธีหลบหนี ฉันได้ลองกำหนดเป็น <string>ui\-monospace</string> และ <string>ui&#45;monospace</string> (และ -) แต่ไม่มีสิ่งใดทำงาน

ฉันจะกำหนดค่า fontconfig เพื่อจับคู่ชื่อแบบอักษรกับยัติภังค์ได้อย่างไร

eg flag
ฉันคิดว่ามันเป็นปัญหากับเปลือก ลองอีกครั้งด้วย `fc-match "ui\-monospace"` มันใช้ได้กับฉันกับเปลือกปลา
cn flag
ยัติภังค์ไม่ใช่อักขระพิเศษสำหรับเชลล์ (หากมี `fc-match 'ui-monospace'` น่าจะใช้ได้) การหลบหนีนั้นจะต้องเห็นโดย _fc-match_ ไม่ใช่เชลล์ดังที่แสดงโดยการทำงานของ `fc-match "ui\-monospace"
eg flag
ใช่ ส่วนแรกของความคิดเห็นของฉันผิด ฉันหมายถึง "อินเทอร์เฟซบรรทัดคำสั่ง" ซึ่งตรงกันข้ามกับ API เช่น pango... อย่างไรก็ตาม ดูเหมือนว่า `fc-match` ต้องการการหลบหนี แต่การกำหนดค่าควรทำงานกับยัติภังค์ในไฟล์กำหนดค่า
Score:0
ธง co

ฉันใส่ตัวอย่างนี้ไว้ที่ส่วนบนสุดของฉัน ~/.config/fontconfig/fonts.conf และใช้งานได้:

  <match target="pattern">
    <test qual="any" name="family">
      <string>ui-monospace</string>
    </test>
    <edit name="family" mode="assign" binding="same">
      <string>monospace</string>
    </edit>
  </match>

จะต้องอยู่ด้านบนสุดก่อนส่วนที่ระบุว่าฉันชอบโมโนสเปซใด

ตรวจสอบบน GitHub และโดย fc-match 'ui\-โมโนสเปซ'.

cn flag
ใช่ แต่นั่นจะส่งเครื่องหมายแบ็กสแลชตามตัวอักษรในการเรียกการแข่งขัน หากคุณทำ `fc-match 'ui-monospace'` หรือ `fc-match ui-monospace` หรือ `fc-match "ui-monospace"` จะไม่ทำงาน ตามที่ Nicolas Goy ระบุไว้ใน [comment to the questions](https://askubuntu.com/q/1355091/260416#comment2347914_1355091) นี่เป็นข้อบกพร่องในบรรทัดคำสั่ง `fc-match` ฉันยังมีข้อผิดพลาดในการแสดงแบบอักษรอื่น ๆ ในแอป GUI ของฉันซึ่งแก้ไขได้ด้วยการรีบูต
co flag
@AdamKatz ต้องหนีอักขระหลายตัวเช่น `-` หรือ `:` เพราะมีความหมายพิเศษสำหรับ fontconfig ส่วนที่อยู่หลัง `-` จะถูกตีความเป็น `ขนาด` (แต่ไม่ใช่ตัวเลขจะถูกละเว้น) อย่างไรก็ตาม ในไฟล์กำหนดค่า มีการระบุให้ทดสอบกับ `family` อยู่แล้ว

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา