
我有一個自訂等寬字體。我想用它來寫整個文件。 Lorem Ipsum 的輸出顯示我的等寬字體沒有被渲染為等寬字體(即一些字元寬度被壓扁,可能是由於線條渲染演算法)。我需要在 LaTeX 端配置什麼才能使其正常工作?我正在使用 XeLaTeX。
\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\usepackage{fullpage}
\setmainfont{MyFont}
\begin{document}
Hello world hello world Hello world hello world Hello world hello world Hello world hello worldHello world hello world Hello world hello worldHello world hello worldHello world hello world Hello world hello world Hello world hello world Hello world hello world Hello world hello world.
\end{document}
我想自訂每頁到底有多少行,以及每行有多少個字元(因為它是等寬的),或者至少設定字體大小並使整個文件以該大小等寬。
答案1
使用fullpage
不會讓您設定每行的字元數或每頁的行數。這可以用代替來完成geometry
。
然而,對齊會使字元不垂直對齊,因為行通常不可能包含精確的字元數(包括空格)。如果你想要垂直對齊,你需要\raggedright
和\frenchspacing
。
在範例中,我設定每行 72 個字元(最多)和每頁 48 行。
\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\usepackage{geometry}
\usepackage{kantlipsum}
\setmainfont{Latin Modern Mono}
\newlength{\characterwidth}
\settowidth{\characterwidth}{\normalfont x}
\geometry{textwidth=72\characterwidth,lines=48}
\AtBeginDocument{\raggedright\setlength{\parindent}{3\characterwidth}}
\frenchspacing
\begin{document}
\kant[1-4]
\end{document}
第一行在文字區塊周圍有一個框架,以更清楚地顯示問題所在:
如您所見,前兩行在頁邊空白處結束,但第三行少了兩個字元 72;即使啟用連字符,下一個單字也無法容納,因為空格將算作一個字符,而連字符將算作另一個字符。
答案2
請說得更具體一點。至少在間距方面,flushleft
避免間距不均勻。
%!TEX program=xelatex
\documentclass[a4paper,12pt]{article}
\usepackage{fontspec}
\usepackage{fullpage}
\setmainfont{DejaVu Sans Mono}
\begin{document}
\begin{flushleft}
Hello world hello world Hello world hello world Hello world hello world Hello world hello world Hello world hello world Hello world hello worldHello world hello worldHello world hello world Hello world hello world Hello world hello world Hello world hello world Hello world hello world.
\end{flushleft}
\end{document}
每頁的行數,這可能值得您注意: 如何限制一頁中的最大行數?