我刚刚发现 kvoptions 包可以将选项传递给我的 sty 文件。我想传递文档的标题,但它包含西班牙语字符(á、é、í、ó、ú),无法很好地呈现。我在我的文档中完美地使用了这些字符,但不适用于 \style@variable 命令。我该如何使用它?我是 LaTeX 新手。这是文档
\documentclass[a4paper, 11pt]{article}
\usepackage[titulo={Práctica 1: Búsquedas con trayectorias simples}]{estilo}
\begin{document}
\maketitle
\end{document}
这是 estilo.sty 文件。
\ProvidesPackage{estilo}
%Comandos para configurar el idioma
\usepackage[spanish,activeacute]{babel}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc} %Necesario para el uso de las comillas latinas.
\usepackage{geometry} % Used to adjust the document margins
%Package for options management
\RequirePackage{kvoptions}
\DeclareStringOption[MetaHeuristicas]{titulo}
\ProcessKeyvalOptions*
%Importante que esta sea la última órden del preámbulo
\usepackage{hyperref}
\hypersetup{
pdftitle=\estilo@titulo,
pdfauthor={Me},
unicode,
breaklinks=true, % so long urls are correctly broken across lines
colorlinks=true,
urlcolor=blue,
linkcolor=darkorange,
citecolor=darkgreen
}
输出
编辑:如果我在加载 estilo.sty 之前加载 [utf8]{inputenc},我会得到这个
答案1
\usepackage
LaTeX 首先读取的包选项:
输入文件的 8 位字节具有类别代码 12(其他),如数字。
\usepackage[utf8]{inputenc}
使这些字节处于活动状态。然后,活动字符字节解码这些字节以获取 Unicode 字符表示的宏。LaTeX 以困难的方式扩展选项(
\edef
),假设选项只是简单的 ASCII 字母和数字。软件包kvoptions-patch
修补了 LaTeX 选项解析,以支持键值设置值中的任意宏没有扩大它们。
文档的开始现在看起来像:
\documentclass[a4paper, 11pt]{article}
\usepackage[utf8]{inputenc}
\usepackage{kvoptions-patch}
\usepackage[titulo={Práctica 1: Búsquedas con trayectorias simples}]{estilo}
(如果在viakvoptions-patch
之前加载,则宏也可以用于全局选项的选项值。)\documentclass
\RequirePackage{kvoptions-patch}
关于选项处理的更强大的接口是在包加载后使用宏,例如:
\usepackage{estilo}
\estilosetup{titulo={...}}
答案2
当读入选项时estilo
,包inputenc
尚未加载。您可以使用\scantokens
estilo.sty
\ProvidesPackage{estilo}
%Comandos para configurar el idioma
\usepackage[T1]{fontenc} %Necesario para el uso de las comillas latinas.
\usepackage[utf8]{inputenc}
\usepackage[spanish,activeacute]{babel}
\usepackage{geometry} % Used to adjust the document margins
%Package for options management
\RequirePackage{kvoptions}
\DeclareStringOption[MetaHeuristicas]{titulo}
\ProcessKeyvalOptions*
\@ifundefined{estilo@titulo}{}{%
\scantokens\expandafter{\expandafter\def\expandafter\estilo@titulo\expandafter{\estilo@titulo}}%
}
%Importante que esta sea la última órden del preámbulo
\usepackage{hyperref}
\hypersetup{
pdftitle=\estilo@titulo,
pdfauthor={Me},
unicode,
breaklinks=true, % so long urls are correctly broken across lines
colorlinks=true,
urlcolor=blue,
linkcolor=darkorange,
citecolor=darkgreen
}
test.tex
\documentclass[a4paper, 11pt]{article}
\usepackage[titulo={Práctica 1: Búsquedas con trayectorias simples}]{estilo}
\begin{document}
\maketitle
\end{document}
信息窗口
输出pdfinfo
> pdfinfo -enc UTF-8 test.pdf
Title: Práctica 1: Búsquedas con trayectorias simples
Subject:
Keywords:
Author: Me
Creator: LaTeX with hyperref package
Producer: pdfTeX-1.40.16
CreationDate: Mon Apr 4 18:45:39 2016
ModDate: Mon Apr 4 18:45:39 2016
Tagged: no
Form: none
Pages: 1
Encrypted: no
Page size: 595.276 x 841.89 pts (A4) (rotated 0 degrees)
File size: 36484 bytes
Optimized: no
PDF version: 1.5