Citações ignoradas pelo pdftex

Citações ignoradas pelo pdftex

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.texfornece a seguinte saída. O travessão funciona, mas para onde foram as aspas?

insira a descrição da imagem aqui

Responder1

Em vez das aspas curvas ‘‘e use

``I always use an en-dash instead of a hyphen when specifying page numbers
like `480--491' in a.''
\bye

insira a descrição da imagem aqui

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 pdftexo 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:

  1. 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,

  2. 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:

  1. 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 .logarquivo. Para evitar que isso aconteça por acidente,

    • Coloque \tracinglostchars=2no topo de todos os arquivos (e use um mecanismo derivado do eTeX; o que pdftexvocê está usando está bom) e/ou

    • Sempre procure no .logarquivo sempre que o TeX disser "(veja o arquivo de transcrição para informações adicionais)"

  2. 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 xetexou 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.)

informação relacionada