5 votos

Cómo tratar los espacios en blanco en OS X a lo largo de las rutas de archivos cuando a ciertos programas UNIX no les gustan

Estoy intentando incluir un comando en un TeX a un archivo de bibliografía que almaceno de forma centralizada.

Sin embargo, cuando se incluye la ruta del archivo, como

/Foldername with whitespace/ANOTHER folder name with whitespace/nowsinfldrname/bibo.bib

mi sistema de composición tipográfica basado en Unix se queja. Hay alguna forma de corregirlo que no sea cambiar el nombre de mis carpetas?

0 votos

¿Qué programa de composición tipográfica utiliza? La solución inmediata está bien cubierta por grgarside pero tener scripts que escapen correctamente todas las cadenas es mucho más difícil. Especialmente si son modulares y pasan nombres de archivo a otros scripts, etc...

0 votos

Gracias @bmike Es texshop dentro del contexto de latex. La salida de error viene de su consola que hace explícitos los espacios en blanco como un problema. Ahora tratando con las comillas simples.

0 votos

Todavía no funciona, pero tal vez tenga que mover esto a tex.stackexchange en su lugar.

9voto

siva Puntos 23

En bash, hay dos formas principales de tener espacios en los nombres de ruta:

  • La barra diagonal escapa a los espacios

    /path/to/folder\ with\ spaces/
  • Envolver con comillas

    "/path/to/folder with spaces and $variable/"
    
    '/path/to/folder with spaces and a literal $/'

    Las comillas dobles expanden las variables del shell. Las comillas simples no lo hacen.

1 votos

Es probable que desee utilizar comillas simples para evitar la interpolación de caracteres especiales como $ . "/path/to/my/$money" es /path/to/my/ con el valor del $money al final (que probablemente estará vacía). '/path/to/my/$money' es /path/to/my/$money .

0 votos

@Schwern Gracias-Específicamente elegí comillas dobles por esta razón ya que la pregunta original era específicamente acerca de los espacios y el nombre de la carpeta en la ruta de OP puede haber sido proporcionada por una variable, pero entiendo que totalmente presumía esto y no lo dejé claro en mi respuesta.

0 votos

@Schwern Las barras invertidas en realidad no funcionaron ya que recibí otro mensaje de mi consola tex que se detectaron espacios en blanco. Tampoco las comillas dobles. Lo intentaré con comillas simples.

2voto

user1533191 Puntos 21

Escape los espacios con una barra invertida:

This\ has\ spaces

1voto

Jason Duffett Puntos 150

Como último recurso existen los enlaces simbólicos.

el enlace se expande a un nivel inferior, por lo que se omite la cita a nivel de aplicación.

ln -s '/Foldername with whitespace/ANOTHER folder name with whitespace/nowsinfldrname' /tmp/

0 votos

Esto puede ser una buena solución si la cadena de herramientas no es capaz de escapar correctamente los nombres de archivo y/o manejar nombres de archivo y rutas unicode arbitrarios.

0voto

Hirek Puntos 171

La respuesta es muy sencilla. No es culpa de OS X, sino de BibTex. Es bastante antiguo y no admite espacios en blanco en los nombres de archivo ni en las rutas.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X