特定のUNIXプログラムが嫌いな場合にファイルパスに沿ってOS Xの空白を処理する方法


5

TeXファイルのコマンドを、一元的に保存している参考文献ファイルに含めようとしています。

ただし、次のようにファイルパスを含める場合

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

私のUnixベースの組版システムは文句を言います。フォルダの名前を変更する以外にそれを修正する方法はありますか?


どの組版プログラムを使用していますか?即時修正はgrgarsideで十分にカバーされていますが、文字列をすべて適切にエスケープするスクリプトを作成することははるかに困難です。特に、それらがモジュール式で、ファイル名を他のスクリプトなどに渡す場合...
bmike

ありがとう@bmike latexのコンテキスト内のtexshopです。エラー出力はコンソールから発生し、空白が問題として明示されます。今、一重引用符で試してください。
ハイレック

それでも動作しませんが、おそらくこれをtex.stackexchangeに移動する必要があります。
ハイレック

回答:


9

bashには、パス名にスペースを含める2つの主な方法があります。

  • バックスラッシュはスペースをエスケープします

    /path/to/folder\ with\ spaces/
  • 引用符で囲む

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

    二重引用符はシェル変数を展開します。単一引用符は使用しません。


1
おそらく、単一引用符を使用して、などの特殊文字の補間を避けたいと思うでしょう$。 値と(おそらく空にされる)端にシェル変数。 です。"/path/to/my/$money"/path/to/my/$money'/path/to/my/$money'/path/to/my/$money
シュヴェルン

@Schwern Thanks-元の質問はスペースに関するものであり、OPのパス内のフォルダー名は変数によって提供された可能性があるため、この理由から二重引用符を選択しましたが、これを完全に推測して作成しなかったことを理解しています私の答えは明らかです。
grg

@Schwern空白が検出されたという別のメッセージをtexコンソールから受け取ったため、実際にはバックスラッシュは機能しませんでした。二重引用符も使用しませんでした。ただし、単一引用符で試してみます。
ハイレック

2

バックスラッシュでスペースをエスケープします。

This\ has\ spaces


1

最後の手段として、シンボリックリンクがあります。

リンクは下位レベルで展開されるため、アプリケーションレベルの引用はスキップされます。

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

これは、ツールチェーンがファイル名を適切にエスケープしたり、任意のUnicodeファイル名とパスを処理できない場合、実際には適切な回避策になる可能性があります。
bmike

0

答えはとても簡単です。OS Xのせいではなく、BibTexのせいです。これは非常に古く、ファイル名またはパスの空白をサポートしていません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.