Hot answers tagged microtype
25
In XeLaTeX (or LuaLaTeX), if you are using an opentype/truetype font, you can just load it with the default ligature features (usually just liga) turned off.
In standard LaTeX, the only safe solution that I know is to create special tfm files that do not contain ligatures. The new primitive, '\noligs' in pdftex 1.30 was created specifically so that you do ...
22
A number of answers:
Firstly, microtypography is (in my book) the art of enhancing the appearance of a document while exhibiting the minimum degree of visual obtrubsion, that is, ideally, without even being recognisable: Characters with less optical weight should slightly protrude into the margin to make it appear more even, but they shouldn't stick in your ...
20
To avoid messing up anything else in a document, siunitx is set up to avoid loading font packages and the like. As such, it uses its 'own' version of the \textminus and \textmu, and sets up a minimal amount of support for that. However, that confuses microtype, as you've seen (it should be harmless). Loading textcomp 'fixes' this as siunitx then uses the ...
18
With version 2.5 of the microtype package, available on CTAN since 13 March 2013, the simple answer to my question is "use microtype".
Thanks, Herbert and Joseph, for telling me that this can be done with the microtype package. I did know that microtype can do margin kerning, but I had always thought that this is only about punctuation. In reality, one ...
17
microtype has an optional argument that you can allow to shift the characters more to the right, e.g. [factor=1300]
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern,picture}
\usepackage{microtype}
\textwidth=3.85cm
\begin{document}
\itshape\noindent\makebox(0,0){\put(\textwidth,-2cm){\line(0,-1){80}}}%
This is a small text. If jam is ...
17
Always use it, it should improve full justification. If you want, you can tinker with the variables for expansion and protrusion. A good example where you can see what microtype does is here. Also the microtype documentation provides an interactive example of what each option does.
16
Use the microtype package, loading it with [tracking=smallcaps] should take care of small caps
For all-uppercase words you can use microtype's \textls, e.g.
\newcommand{\versal}[1]{\textscale{0.9}{\textls*[80]{#1}}}
(I came across this here, check the provided “Präambel”, the spacing/scaling might be font specific, so use with care and check your output, ...
16
How does one improve the typesetting of a document? There are no straightforward answers. Traditionally a number of craftsmen and professionals were involved in the publishing of a book. With what is now called "self-publishing" all these decisions now fall on the author's shoulder. The disappointing results can be viewed at Lulu.com
Do you have to read ...
15
If you are using XeTeX (or LuaTeX) then you are most likely using fontspec as well to load OpenType font, so the following should disable any ligatures in the loaded font:
\setmainfont[Ligatures={NoRequired,NoCommon,NoContextual}]{Font Name}
Else, see Taco's answer.
15
Main microtype features can be enabled or disabled on the fly using the \microtypesetup command. In this case we need to locally disable character protrusion:
\documentclass{article}
\usepackage{microtype}
\newenvironment{example}{\microtypesetup{protrusion=false}%
\begin{quote}}{\end{quote}}
\begin{document}
text text text text text text text text text ...
15
If you don't have access to document sources, some pdf viewers can show you what fonts are used. I've tested with AdobeReader and PDF-XChange-viewer and under Properties of the document you will find the list of fonts. Here you have the output from microtype manual under Xchange-viewer.
Just a problem, then you need to find how to use them in your document.
...
14
The following quote from section 9 of the microtype manual suggests that the package author was aware of potential negative effects of font expansion and viewed the default behaviour stretch=20 as sensible:
Expanding the fonts by more than 2%, i. e., setting a stretch limit of more than 20, should be justified by a typographically trained eye. If you are ...
14
The warning for missing font-specific settings is not a bug but a new feature in the latest microtype version. The fallback settings, which are used for fonts unknown to microtype, are by nature incomplete, quite conservative and in no way guaranteed to match all possible fonts; therefore, microtype now draws the user's attention to this potential source of ...
14
Your analysis is correct.
A couple of years ago, the pdftex team has been discussing whether pdftex should indeed try harder. No clear conclusion transpired except that it would probably be too difficult to get it right in all cases, hence the issue was postponed for later consideration ... maybe too late for pdftex now, and to be passed on to luatex.
...
13
With the current microtype from TeXlive 2011, you can do the following:
\documentclass{article}
\usepackage{fontspec,microtype}
\defaultfontfeatures{Ligatures=TeX, Scale=MatchLowercase}
\setmainfont[SmallCapsFeatures={LetterSpace=6}, Numbers={Proportional,OldStyle}]{Minion Pro}
\setsansfont[LetterSpace=3, Numbers={Proportional,OldStyle}]{Myriad Pro}
...
13
Hm, I also use Minion Pro and Myriad Pro … this way:
\documentclass[12pt]{scrbook}
\usepackage[english]{babel}
\usepackage{blindtext}
\pdfprotrudechars=2
\pdfadjustspacing=2
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\newfontfeature{Microtype}{protrusion=default;expansion=default;}
\setmainfont[Microtype,Ligatures=TeX,Numbers=OldStyle]{Minion ...
12
I'd regard this as a bug in csquotes. You can solve it by putting the following code into your preamble, but I can't say if this breaks other things.
\makeatletter
\def\csq@qclose@ii#1{%
\ifdim\lastkern=\csq@omitmarker
#1\csq@eqgroup
\else
\csq@addkern@close
\ifodd\csq@qlevel
\csq@thequote@oclose
...
12
It can depend on where you need to do this, but the standard methods for keeping text together should work for you:
aaa bbb ccc ddd~eee~fff ...
or
aaa bbb ccc \mbox{ddd eee fff} ...
Under no circumstances will ddd eee fff ever break, so you can write the entire organisation name with \mbox and it should do what you want.
12
You can change the default factor like this (5 is not a sensible value but shows the effect quite good:
\documentclass[a4paper, 12pt, oneside, article]{memoir}
\usepackage{fontspec}
\defaultfontfeatures{Ligatures=TeX}
\newfontfeature{Microtype}{protrusion=default;expansion=default;}
\directlua{fonts.protrusions.setups.default.factor=5}
...
12
The following presents a solution for pdftex and Type 1 fonts. Since TeX does not offer any possibility to decompose a ligature into its constituent characters (this information is lost after they have been replaced by the ligature), we have to take the opposite approach: we loop over all glyph pairs in the fonts, typesetting them in a temporary box, and ...
11
In XeLaTeX with the fontspec package you can select a font with the LetterSpace feature:
\newcommand\tracked[1]{%
{\addfontfeature{LetterSpace=2}#1}}
LetterSpace=s is an additional s/F space between letters where F is the font size.
(I swear I once saw an example of letterspacing involving additional glue rather than just fixed space, but I can't see ...
11
kerning is not a "true-false" option. Its purpose is to add some kerning independently of the adjacent letters, for example to set the French semicolon that needs a space before it. However it's not working well: for example, the colon requires a normal interword space before and after it, and this space should stretch or shrink along with the other spaces ...
10
The idea behind the protrusion option in the microtype package is to allow certain characters protrude into the margin, which can help to make the margins look more even to the human eye. As Hàn Thế Thành puts it in his dissertation:
Margin kerning is needed for optical
alignment of the margins of a typeset
text, because mechanical justification
of ...
10
If you compile your document with pdfLaTeX, use the microtype package and its font expansion feature. Microtype will try to horizontally stretch your font (by default from -2% to +2%), and this will affect line breaks (and in your case, possibly make the text fit).
10
Some time ago, I wanted to deactivate hyphenation completely (without switching to \raggedright).
I found out that setting \pretolerance=10000 turns off the complete hyphenation mechanism: it tells TeX to not even look for hyphenation positions.
In addition, there is the parameter \hyphenpenalty. For example, \hyphenpenalty=10000 will (probably) also ...
10
It is my understanding that margin kerning does work but that font expansion doesn't.
This is one of the reasons why I'm currently using pdflatex and not XeLaTeX: OpenType support in XeTeX is very good because of the fontspec package, but XeTeX is not fully compatible with microtype.
You don't explain why you need XeTeX, so I'll explain some possible ...
10
If you use version 2.5 of the microtype package -- still in "late beta", but available online at http://tlcontrib.metatex.org/cgi-bin/package.cgi/action=view/id=608 -- you can use the letterspacing and tracking features of the package -- but not (yet) the kerning features; the latter are available only if the package is used with pdflatex.
% !TEX TS-program ...
9
Personally, I think using the Latin Modern fonts with microtype seems to be a better approach
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage{lmodern,microtype}
\textwidth=3.85cm
\begin{document}
\it\noindent
This is a small text. If jam is what you like, two fingers up,
or whatever. Under certain conditions you see that the left and
right ...
9
I'd define my own microtype-safe environment to consistently have protrusion everywhere. Adjust the 3em to your needs:
\documentclass{article}
\usepackage{microtype}
\newenvironment{mtsafequote}
{\par\bgroup\leftskip=3em\rightskip=3em\noindent\ignorespaces}
{\par\egroup\noindent}
\begin{document}
text text text text text text text text text text ...
9
I really have to apologise for the long delay on this answer. As you discovered this was an unintentional change made while a lot of the package was being re-implemented.
I've spent some time today looking into how this could be resolved; I'm not really sure what the best option is, so I've reverted the package to the old behaviour (not the old code, though ...
Only top voted, non community-wiki answers of a minimum length are eligible
