Estou lendo o TeXBook de Donald Knuth, exercício 2.1. Eu tenho a seguinte entrada:
Alice said, ‘‘I always use an en-dash instead of a hyphen when specifying page numbers like ‘480--491’ in a bibliog
raphy.’’
\bye
Compilar usando pdftex sample.tex
fornece a seguinte saída. O travessão funciona, mas para onde foram as aspas?
Responder1
Responder2
Se você olhar o código fonte do TeXbook, que édisponível no CTAN, você vê
\exercise Explain how to type the following sentence to \TeX: Alice said,
``I always use an en-dash instead of a hyphen when specifying page numbers
like `480--491' in a ^{bibliography}.''
\answer |Alice said, ``I always use an en-dash instead of a hyphen when|\break
|specifying page numbers like `480--491' in a bibliography.''| \
(The wrong answer to this question ends with |'480-49l' in a bibliography."|)
Se você compilar com pdftex
o código
Alice said, ``I always use an en-dash instead of a hyphen when specifying
page numbers like `480--491' in a bibliography.''
\bye
em seguida, copie e cole do PDF, você obterá
Alice disse: “Eu sempre uso um travessão em vez de um hífen ao especificar números de páginas como '480-491' em uma bibliografia”.
porque os leitores de PDF são inteligentes o suficiente.
No entanto, você não deve usar ‘‘
e ’’
, porque os caracteres nos trechos de código do TeXbook na verdade significam
`` ''
Lembre-se de que o TeX usa apenas caracteres ASCII de sete bits, enquanto ‘
e ’
não estão nesse intervalo em nenhuma codificação.
Responder3
Quando TeX eO TeXbookforam escritos, os computadores e software eram diferentes de hoje em dois aspectos:
Cada computador/sistema operacional tinha menos caracteres (geralmente no máximo 256) do que toda a gama de Unicode disponível hoje; em particular, as aspas curvas que você inseriu, nomeadamente '(U+2018 LEFT SINGLE QUOTATION MARK) e '(U+2019 RIGHT SINGLE QUOTATION MARK) não estavam em seus conjuntos de caracteres,
Em vez disso, alguns sistemas, incluindo aqueles com os quais Knuth estava familiarizado, usavam as posições atualmente ocupadas por ` (U+0060 GRAVE ACCENT) e '(U+0027 APOSTROPHE) para caracteres que costumavam parecer visualmente simétricos e serviam ao mesmo propósito. Essa história está bem explicada na páginaAspas ASCII e Unicodepor Markus Kuhn (role para baixo até "O problema") e também nopacote de cotação.
Correspondentemente, o resultado é que:
Se você inserir caracteres não-ASCII no TeX, ele os interpretará mal e (uma séria falha de design, IMO) nem reclamará em voz alta: você terá que procurar no
.log
arquivo. Para evitar que isso aconteça por acidente,Coloque
\tracinglostchars=2
no topo de todos os arquivos (e use um mecanismo derivado do eTeX; o quepdftex
você está usando está bom) e/ouSempre procure no
.log
arquivo sempre que o TeX disser "(veja o arquivo de transcrição para informações adicionais)"
Quando você vê o que parecem ser aspas curvas emO TeXbook, você deve entendê-lo (e digitá-lo) como ` e ' mesmo que isso esteja claramente errado de acordo com o Unicode e as fontes modernas - trate-o como uma peculiaridade dessas fontes.
Bônus: se você deseja apenas usar caracteres Unicode e não se preocupar com os velhos truques para conseguir coisas como aspas duplas e travessões usando ligaduras de caracteres ASCII, você pode usar um mecanismo Unicode como XeTeX ou LuaTeX. Aqui está um arquivo que funciona para o exemplo aqui; compilar com xetex
ou luatex
:
\tracinglostchars=2
% \input luaotfload.sty % Uncomment this line if using LuaTeX
\font\tenrm="[lmroman10-regular]" at 10pt
\rm
Alice said, “I always use an en-dash instead of a hyphen when specifying
page numbers like ‘480–491’ in a bibliography.”
\bye
(É claro que você deve se lembrar de usar um travessão em vez de um hífen e também, ao editar o arquivo de entrada, usar uma fonte na qual você possa facilmente perceber a diferença.)